Compare commits

..
Author SHA1 Message Date
CyberCoveandClaude Sonnet 5.5 8e63f6bd0f ci: build admin test bundle once and run partitions against it
ci / check (push) Successful in 15m57s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 13:57:21 -07:00
CyberCoveandClaude Sonnet 5.5 01e50cb8ce ci: run admin test partitions sequentially (parallel browsers stalled on the runner)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 13:19:19 -07:00
CyberCoveandClaude Sonnet 5.5 1a97b8b428 ci: install chromium from the distro archive instead of downloading Chrome
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 12:53:16 -07:00
CyberCoveandClaude Sonnet 5.5 3f2be6fab0 Security: patch-level dependency overrides, electron 42.11.12; add Gitea CI
- Lockfile-only/overrides bumps within the same major for vulnerable
  transitive build/test tooling (see pnpm-overrides.md)
- electron 42.0.1 -> 42.11.12 (same major) for runtime advisories
- .gitea/workflows/ci.yml: single job (build admin, tests, audit)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 12:42:41 -07:00
CyberCoveandClaude Sonnet 5.5 89089dbb9a Rebrand Boundary UI to Threshold; neutralize HashiCorp update/phone-home endpoints
- Product name, app id, installer names, translations, titles -> Threshold
- Desktop: look for threshold CLI first, then boundary; migrate legacy
  Boundary user-data dir; updater/release lookups disabled unless configured
- Remove HashiCorp/IBM logos and art (plain placeholder mark), GitHub
  release workflows and HashiCorp release metadata
- Add NOTICE and README 'About this fork'

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 12:24:16 -07:00
richardtrinh1 25d78b2fc5 chore(deps): upgrade fast-uri to 3.1.8 (#3352) 2026-09-29 10:36:51 -05:00
Zhihe Li 4565676d4b chore: 🤖 Remove merge trigger for ENT (#3351) 2026-09-21 16:07:07 -04:00
Zhihe Li ed9371fab7 chore: 🤖 Update CLI version to correct one (#3336) 2026-07-10 12:17:57 -04:00
Zhihe Li 68a01cfa3a chore: 🤖 Update CLI version (#3335) 2026-07-10 10:17:51 -04:00
Priya Patel b7129e38a8 fix: 🐛 credential library update (#3328)
* fix: 🐛 update credential library serializer

* test: 💍 adds acceptance test

* test: 💍 fix test

* fix: 🐛 fix test

* test: 💍 adds a11y ignore

* chore: 🤖 pr feedback
2026-07-08 14:38:48 -07:00
Lisbet Alvarez 26e27fd24b fix: 🐛 code mirror lint tooltip format issues (#3325)
* fix: 🐛 code mirror lint tooltip format issues

* refactor: 💡 add fallback for parent config

* refactor: 💡 use getOwner to retrieve actual app root element
2026-06-19 12:52:48 -07:00
Zhihe Li d0612c0a46 feat: 🎸 No-op linting errors should be warnings (#3326) 2026-06-19 15:15:58 -04:00
Zhihe Li 347107c109 feat: 🎸 Add discard modal for edit grants page (#3324) 2026-06-18 13:35:49 -04:00
Lisbet Alvarez 0dac4ccf47 Use codemirror tooltip extension to set parent to fix positioning bug (#3323)
* fix: 🐛 absolute positioning of cm tooltip in firefox

* docs: ✏️ add comment

* fix: 🐛 tooltip hidden in editor fullscreen mode & dark mode

* fix: 🐛 tooltip color in dark mode

* docs: ✏️ add comment
2026-06-18 09:59:38 -07:00
Zhihe Li b8ea558f14 ci: 🎡 Update when e2e tests run (#3320) 2026-06-16 14:25:06 -04:00
Priya Patel 4fc061ec48 chore: 🤖 update desktop client changelog (#3316)
* chore: 🤖 update desktop client changelog and version

* fix: 🐛 update PR number

* docs: ✏️ updated log

* fix: 🐛 revert cli version change
2026-06-16 10:06:41 -07:00
Zhihe Li 3313cd5316 feat: 🎸 Add new grants and update grant templates (#3319)
* feat: 🎸 Add new grants and update grant templates

* feat: 🎸 Use wildcard for remaining grants as well
2026-06-15 18:52:50 -04:00
Zhihe Li af36d75252 feat: 🎸 Update deps for newest shell-quote version (#3318) 2026-06-12 17:25:19 -04:00
72a69fbe8d chore(deps): bump shell-quote in /ui/desktop/electron-app (#3313)
Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.2 to 1.8.4.
- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/shell-quote/compare/v1.8.2...v1.8.4)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-version: 1.8.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-06-12 13:35:04 -04:00
Michael Li e77ed3ae53 test(e2e): Address flake when loading project page (#3315) 2026-06-12 12:06:36 -04:00
Lisbet Alvarez 677a3c925b fix: 🐛 color of search cancel button icon (#3314) 2026-06-10 16:26:55 -07:00
Priya Patel 4cbe08276a chore: 🤖 updates libraries for webkit to resolve e2e test fais (#3317) 2026-06-10 10:14:40 -07:00
Lisbet Alvarez 20699d62dc chore: 🤖 Add override to pin markdown-it to resolve cve (#3311) 2026-06-09 15:14:23 -07:00
Zhihe Li 048339982e feat: 🎸 Use new path for grants schema (#3309) 2026-06-09 15:35:10 -04:00
Priya Patel 2709c2e081 chore: 🤖 updates chaining using pipe operator (#3312) 2026-06-09 08:19:02 -07:00
Susmitha GirumalaandLisbet Alvarez 5e3addcc41 chore: 🤖 Upgrade lint-staged to resolve yaml secvuln (#3310)
✅ Closes: https://github.com/hashicorp/boundary-ui/security/code-scanning/254

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2026-06-08 15:47:51 -07:00
Zhihe Li 576fef9f8a feat: 🎸 Update scope dropdown in login to show current scope (#3308)
* feat: 🎸 Update scope dropdown in login to show current scope

* test: 💍 Update e2e tests
2026-06-08 17:08:23 -04:00
dillanb-hashi b9517e0233 test: 💍 Allow webkit and firefox to tests to run on enterprise (#3305)
* test: 💍 Allow webkit and firefox to tests to run on enterprise
✅ Closes: ICU-18952
2026-06-05 08:45:28 -07:00
Lisbet Alvarez 4d7ce40469 fix: 🐛 newline being removed for existing import & fix transform errors for a11y ignores codemod (#3183)
* fix: 🐛 newline being removed for existing import & fix errors

* fix: 🐛 avoid testName being undefined
2026-06-04 17:00:56 -07:00
Dharini fa51973e6d chore: make sub claim mapping readonly after creation (#3306) 2026-06-04 15:40:24 -07:00
Lisbet Alvarez f80d7ebeb3 chore: 🤖 add override for tmp in electron-app to resolve cve (#3307) 2026-06-04 15:24:25 -07:00
Dharini 9aea1a8fd8 test: 💍 a11y (#3302) 2026-06-03 16:36:29 -07:00
Dharini 35377e8466 chore: 🤖 remove listwrapper usage (#3294) 2026-06-03 16:36:29 -07:00
Dharini 0e580e3c9f chore: migrate listwrapper Target and worker fields to keyvalue component (#3284) 2026-06-03 16:36:29 -07:00
Dharini e38d3afa58 Chore migrate credential library storage bucket (#3282) 2026-06-03 16:36:29 -07:00
Dharini 0e223ded8f chore: 🤖 migrate host catalog and host set list wrapper fields to key value (#3276) 2026-06-03 16:36:29 -07:00
Dharini 4e2b779d96 migrate ldap list wrapper fields (#3162) 2026-06-03 16:36:29 -07:00
Dharini 71ec7b465a chore: 🤖 migrate oidc fields to keyvalue component (#3160) 2026-06-03 16:36:29 -07:00
Dharini 8b870556a6 chore: 🤖 use hds keyvalue component (#3027) 2026-06-03 16:36:29 -07:00
Lisbet Alvarez ecefa39b98 fix: 🐛 actions not displaying for templates in grants editor (#3296)
* fix: 🐛 actions not displaying for templates in grants editor

* fix: 🐛 invalid ids check

* fix: 🐛 update check for ids type

* test: 💍 fix broken strings

* test: 💍 fix test case

* test: 💍 remove log
2026-06-03 12:46:34 -07:00
Susmitha Girumala 4a206c82dc chore: 🤖 Update openapi-generator-cli to resolve basic-ftp cve (#3303)
✅ Closes: https://github.com/hashicorp/boundary-ui-enterprise/security/code-scanning/287
2026-06-03 12:22:17 -07:00
Michael Li 2d0ed53202 test(e2e): Fix flakiness in host catalog navigation (#3291) 2026-06-02 15:51:42 -04:00
dependabot[bot]andPriya Patel 5000d98e23 chore(deps): bump hashicorp/setup-terraform from 4.0.0 to 4.0.1 (#3299)
Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/setup-terraform/compare/5e8dbf3c6d9deaf4193ca7a8fb23f2ac83bb6c85...dfe3c3f87815947d99a8997f908cb6525fc44e9e)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Priya Patel <priya.patel@hashicorp.com>
2026-06-01 17:29:20 -07:00
dependabot[bot] 4afd7c2d0b chore(deps): bump browser-actions/setup-chrome from 2.1.1 to 2.1.2 (#3300)
Bumps [browser-actions/setup-chrome](https://github.com/browser-actions/setup-chrome) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/browser-actions/setup-chrome/releases)
- [Changelog](https://github.com/browser-actions/setup-chrome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/browser-actions/setup-chrome/compare/4f8e94349a351df0f048634f25fec36c3c91eded...2e1d749697dd1612b833dba4a722266286fbefcd)

---
updated-dependencies:
- dependency-name: browser-actions/setup-chrome
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-01 16:55:28 -07:00
dependabot[bot]andPriya Patel 207b1e8a7c chore(deps): bump actions/labeler from 6.0.1 to 6.1.0 (#3298)
Bumps [actions/labeler](https://github.com/actions/labeler) from 6.0.1 to 6.1.0.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/634933edcd8ababfe52f92936142cc22ac488b1b...f27b608878404679385c85cfa523b85ccb86e213)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Priya Patel <priya.patel@hashicorp.com>
2026-06-01 16:41:29 -07:00
dependabot[bot]andPriya Patel 8b90db1ff5 chore(deps): bump slackapi/slack-github-action from 3.0.2 to 3.0.3 (#3297)
Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/slackapi/slack-github-action/releases)
- [Changelog](https://github.com/slackapi/slack-github-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slackapi/slack-github-action/compare/03ea5433c137af7c0495bc0cad1af10403fc800c...45a88b9581bfab2566dc881e2cd66d334e621e2c)

---
updated-dependencies:
- dependency-name: slackapi/slack-github-action
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Priya Patel <priya.patel@hashicorp.com>
2026-06-01 16:06:40 -07:00
Zhihe Li 7fc10855d9 feat: 🎸 Add override to fix node 24 builds (#3301) 2026-06-01 18:39:45 -04:00
Lisbet Alvarez 7c3be7c9a0 chore: 🤖 upgrade @babel/preset-env to resolve cve (#3292) 2026-06-01 11:36:59 -07:00
Lisbet Alvarez 7cddf7cb91 Refactor utils to share components (#3279)
* refactor: 💡 initial refactor for utils to share components

* refactor: 💡 actions logic

* Add missing copyright headers

* refactor: 💡 simplify actions getter logic

* refactor: 💡 convert output fields logic into a separate getter

* test: 💍 fix unit test

* fix: 🐛 bug with unknown fields lint error

* refactor: 💡 pr feedback - simplify template check

* refactor: 💡 remove unnecessary unit test file
2026-05-29 16:52:00 -07:00
Zhihe Li 878bd241f3 feat: 🎸 Update playwright to newest version (#3290)
* feat: 🎸 Update playwright to newest version

* fix: 🐛 Fix cache dependency key
2026-05-29 19:23:04 -04:00
Susmitha Girumala 4aec0d3acc chore: 🤖 Upgrade fast-uri for cve (#3289)
✅ Closes: https://github.com/hashicorp/boundary-ui/security/code-scanning/333,
https://github.com/hashicorp/boundary-ui/security/code-scanning/334,
https://github.com/hashicorp/boundary-ui/security/code-scanning/335,
https://github.com/hashicorp/boundary-ui/security/code-scanning/336
2026-05-29 15:27:18 -04:00
Susmitha GirumalaandZhihe Li e43625f76c chore: 🤖 Upgrade tmp module for secvuln resolution (#3287)
* chore: 🤖 Upgrade tmp module for secvul cve-2026-44705

Resolves
https://github.com/hashicorp/boundary-ui/security/code-scanning/342

* chore: 🤖 Upgrade tmp to resolve desktop client secvuln

✅ Closes: https://github.com/hashicorp/boundary-ui/security/code-scanning/342

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-05-29 14:26:59 -04:00
Priya Patel 5b51edd17f fix: 🐛 updates node and pnpm setup order (#3286) 2026-05-29 10:36:17 -07:00
Dharini 6eb21d3e13 Display session playback error (#3280) 2026-05-29 09:54:55 -07:00
Susmitha Girumala 9b43819865 chore: 🤖 Upgrade xmldom for secvul resolution (#3288)
✅ Closes: https://github.com/hashicorp/boundary-ui/security/code-scanning/313,
https://github.com/hashicorp/boundary-ui/security/code-scanning/311,
https://github.com/hashicorp/boundary-ui/security/code-scanning/310,
https://github.com/hashicorp/boundary-ui/security/code-scanning/309
2026-05-29 12:07:55 -04:00
Zhihe Li 562b371db3 feat: 🎸 Update grant template names (#3283) 2026-05-29 10:18:42 -04:00
Zhihe Li 89d492042e feat: 🎸 Fix contrast issue with count badge in dropdown (#3285)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-19106
2026-05-28 09:59:48 -04:00
Lisbet Alvarez f9197d5a99 chore: 🤖 Upgrade electron to v42.0.1 (latest) (#3278) 2026-05-21 16:59:13 -07:00
Zhihe Li ebd7f64fe3 fix: 🐛 Add missing code block description (#3277)
* fix: 🐛 Add missing code block description

* feat: 🎸 Add autocomplete on empty lines
2026-05-20 18:29:40 -04:00
Zhihe Li 7dadc53fe1 Remove renderer url (#3194)
* feat: 🎸 Refactor how we store cluster URL
2026-05-20 16:36:16 -04:00
Zhihe Li 3d257afd49 refactor: 💡 Update transaction style and add busy timeout PRAGMA (#3271)
* refactor: 💡 Update transaction style and add busy PRAGMA

* refactor: 💡 Add return to insert statement for consistency

* refactor: 💡 Also add check for db

* test: 💍 Fix flaky test
2026-05-18 19:05:29 -04:00
Lisbet Alvarez 95918cb997 fix: 🐛 scrollbar color in dark mode + layout bugs (#3226)
* fix: 🐛 header scrollbar overlap in desktop

* refactor: 💡 undo desktop scrollbar changes

* refactor: 💡 fix whitespace issues when viewport is small

* fix: 🐛 scrollbar color issue in dark mode

* fix: 🐛 move style inside of media query
2026-05-15 15:01:19 -07:00
Lisbet Alvarez 077200d792 test: 💍 fix a11y violations and ignore existing issues (#3275)
* test: 💍 fix a11y violations and ignore existing issues

* test: 💍 remove ignores for fixed violation

* test: 💍 more color contrast ignores for new tests
2026-05-15 13:05:19 -07:00
Zhihe Li f34a1df298 refactor: 💡 Update e2e test for finding code editor (#3273)
* refactor: 💡 Update e2e test for finding code editor

* test: 💍 Added more acceptance tests
2026-05-15 12:40:37 -04:00
Zhihe Li 7fa59bfd5d feat: 🎸 Add support for output fields (#3268)
* feat: 🎸 Add support for output fields

* refactor: 💡 PR feedback
2026-05-14 15:21:30 -04:00
e0b80b1176 refactor: 💡 update pinned IDs logic for actions table (#3269)
* chore: 🤖 Add initial page layout for code editor + sidebar (#3180)

* chore: 🤖 Add initial page layout for code editor + sidebar

* test: 💍 add missing a11y ignores for exisitng color issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18460

* Replace `Rose::CodeEditor` with `Hds::CodeEditor` (#2679)

* chore: 🤖 replace Rose::CodeEditor with Hds::CodeEditor

- Remove CodeEditor 5 dependency

* chore: 🤖 Replace CodeMirror5 dep

remove CodeMirror5 and replace existing editors with HDS::CodeEditor

* chore: 🤖 deleting old codeeditor styles

* feat: 🎸 changing code editor

changing code editor

✅ Closes: 0

* removed unused export

* pr cleanup

* updating tests for new code editor

* responding to PR feedback

* added whitespace

* fixing linting violations

* chore: 🤖 self-review PR

self-review PR in the course of switching to new HDS code editor

* fix: 🐛 fix linting bug

* fix: 🐛 unneeded dependency

remove jslint dependency as this is handled in the new code editor from
HDS

* fix: 🐛 Fixing import bug

Fix import bug caused by importing scss modules that no longer exist

* Fix and refactor code editor acceptance test

* Fix and refactor code editor acceptance test

* chore: 🤖 remove codemirror dependency

* refactor: 💡 fix merge conflict issues

* test: 💍 update e2e test selectors

* test: 💍 fix target spec click event

* refactor: 💡 clean up test selectors for code editor

* refactor: 💡 clean up storage bucket test selectors

* chore: 🤖 remove code mirror modifiers

---------

Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: cameronperera <cameron.perera@hashicorp.com>

* feat: 🎸 Create string formats component (#3191)

* feat: 🎸 Create string formats component

* Add missing copyright headers

* fix: 🐛 change to readonly

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18458

* feat: 🎸 add grant schema to mirage (#3196)

* feat: 🎸 add grant schema to mirage

* refactor: 💡 update grant schema mirage data

* refactor: 💡 fix route name in mirage

* feat: 🎸 add export options flyout (#3198)

* feat: 🎸 add export options flyout

* fix: 🐛 update id to be ids

* test: 💍 add a11y ignores

* test: 💍 fix tests for grant string format

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18524

* feat: 🎸 Add autocompletion to code editor (#3207)

* feat: 🎸 Add CSP nonce to code editors (#3230)

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* feat: 🎸 Add linting to code editor (#3211)

* feat: 🎸 Add linting to code editor

* refactor: 💡 add missing case for wildcard type & ids field

* refactor: 💡 simplify condition + add more tests

* refactor: 💡 cleanup ids validation logic and add more lint erro

* refactor: 💡 simplify logic and add actions linting cases

* feat: 🎸 Add autocompletion to code editor (#3207)

* refactor: 💡 apply PR feedback

* refactor: 💡 PR feedback

* refactor: 💡 add noop action

* fix: 🐛 noop should not be suggested with resource type format

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18462

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* Icu 18506 load resource IDs for autocomplete (#3247)

* feat: 🎸 Add id auto completion
* style: 💄 Fix code editor styling for dark mode
* feat: 🎸 Add optimization for caching sqlite data

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18506

* refactor: 💡 Update string formats to use select + add options (#3256)

* refactor: 💡 Update string formats to use select + add options

* refactor: 💡 PR feedback

* test: 💍 fix tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18983

* refactor: 💡 role grants tab to use code block (#3261)

* refactor: 💡 grants tab to use code block

* refactor: 💡 update getter comment

* test: 💍 fix tests

* refactor: 💡 remove language arg for codeblock

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18757

* Grant actions card (#3246)

* chore: 🤖 Add initial page layout for code editor + sidebar (#3180)

* chore: 🤖 Add initial page layout for code editor + sidebar

* test: 💍 add missing a11y ignores for exisitng color issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18460

* Replace `Rose::CodeEditor` with `Hds::CodeEditor` (#2679)

* chore: 🤖 replace Rose::CodeEditor with Hds::CodeEditor

- Remove CodeEditor 5 dependency

* chore: 🤖 Replace CodeMirror5 dep

remove CodeMirror5 and replace existing editors with HDS::CodeEditor

* chore: 🤖 deleting old codeeditor styles

* feat: 🎸 changing code editor

changing code editor

✅ Closes: 0

* removed unused export

* pr cleanup

* updating tests for new code editor

* responding to PR feedback

* added whitespace

* fixing linting violations

* chore: 🤖 self-review PR

self-review PR in the course of switching to new HDS code editor

* fix: 🐛 fix linting bug

* fix: 🐛 unneeded dependency

remove jslint dependency as this is handled in the new code editor from
HDS

* fix: 🐛 Fixing import bug

Fix import bug caused by importing scss modules that no longer exist

* Fix and refactor code editor acceptance test

* Fix and refactor code editor acceptance test

* chore: 🤖 remove codemirror dependency

* refactor: 💡 fix merge conflict issues

* test: 💍 update e2e test selectors

* test: 💍 fix target spec click event

* refactor: 💡 clean up test selectors for code editor

* refactor: 💡 clean up storage bucket test selectors

* chore: 🤖 remove code mirror modifiers

---------

Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: cameronperera <cameron.perera@hashicorp.com>

* feat: 🎸 Create string formats component (#3191)

* feat: 🎸 Create string formats component

* Add missing copyright headers

* fix: 🐛 change to readonly

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18458

* feat: 🎸 add grant schema to mirage (#3196)

* feat: 🎸 add grant schema to mirage

* refactor: 💡 update grant schema mirage data

* refactor: 💡 fix route name in mirage

* feat: 🎸 add export options flyout (#3198)

* feat: 🎸 add export options flyout

* fix: 🐛 update id to be ids

* test: 💍 add a11y ignores

* test: 💍 fix tests for grant string format

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18524

* feat: 🎸 Add autocompletion to code editor (#3207)

* feat: 🎸 create grant actions component

* feat: 🎸 add description to actions

* feat: 🎸 update default logic to not show all actions

* feat: 🎸 show invalid id and type message

* test: 💍 create const for test selectors

* feat: 🎸 trigger action suggestion when cursor moves

* refactor: 💡 add createGrantLineHelpers func

* refactor: 💡 small refactors

* feat: 🎸 Add CSP nonce to code editors (#3230)

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* refactor: 💡 small refactor

* test: 💍 add more tests

* refactor: 💡 fix merge conflicts issues

* refactor: 💡 updates from PR feedback

* refactor: 💡 updates for completions and linting

* test: 💍 fix test issue with translations

* test: 💍 fix test issue that was already fixed once

* refactor: 💡 address PR feedback

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Zack Moore <zack.moore@hashicorp.com>
Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
Co-authored-by: Bharath Gajjala <120367134+bgajjala8@users.noreply.github.com>

* refactor: 💡 update pinned IDs logic for actions table

* refactor: 💡 use if/else in place of complex ternary

* refactor: 💡 user intl.formatList

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Zack Moore <zack.moore@hashicorp.com>
Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
Co-authored-by: Bharath Gajjala <120367134+bgajjala8@users.noreply.github.com>
2026-05-14 15:21:30 -04:00
Zhihe Li 0479c3c8fc test: 💍 Fix broken tests after new code editor (#3213) 2026-05-14 15:21:30 -04:00
08b8b03fed Grant actions card (#3246)
* chore: 🤖 Add initial page layout for code editor + sidebar (#3180)

* chore: 🤖 Add initial page layout for code editor + sidebar

* test: 💍 add missing a11y ignores for exisitng color issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18460

* Replace `Rose::CodeEditor` with `Hds::CodeEditor` (#2679)

* chore: 🤖 replace Rose::CodeEditor with Hds::CodeEditor

- Remove CodeEditor 5 dependency

* chore: 🤖 Replace CodeMirror5 dep

remove CodeMirror5 and replace existing editors with HDS::CodeEditor

* chore: 🤖 deleting old codeeditor styles

* feat: 🎸 changing code editor

changing code editor

✅ Closes: 0

* removed unused export

* pr cleanup

* updating tests for new code editor

* responding to PR feedback

* added whitespace

* fixing linting violations

* chore: 🤖 self-review PR

self-review PR in the course of switching to new HDS code editor

* fix: 🐛 fix linting bug

* fix: 🐛 unneeded dependency

remove jslint dependency as this is handled in the new code editor from
HDS

* fix: 🐛 Fixing import bug

Fix import bug caused by importing scss modules that no longer exist

* Fix and refactor code editor acceptance test

* Fix and refactor code editor acceptance test

* chore: 🤖 remove codemirror dependency

* refactor: 💡 fix merge conflict issues

* test: 💍 update e2e test selectors

* test: 💍 fix target spec click event

* refactor: 💡 clean up test selectors for code editor

* refactor: 💡 clean up storage bucket test selectors

* chore: 🤖 remove code mirror modifiers

---------

Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: cameronperera <cameron.perera@hashicorp.com>

* feat: 🎸 Create string formats component (#3191)

* feat: 🎸 Create string formats component

* Add missing copyright headers

* fix: 🐛 change to readonly

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18458

* feat: 🎸 add grant schema to mirage (#3196)

* feat: 🎸 add grant schema to mirage

* refactor: 💡 update grant schema mirage data

* refactor: 💡 fix route name in mirage

* feat: 🎸 add export options flyout (#3198)

* feat: 🎸 add export options flyout

* fix: 🐛 update id to be ids

* test: 💍 add a11y ignores

* test: 💍 fix tests for grant string format

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18524

* feat: 🎸 Add autocompletion to code editor (#3207)

* feat: 🎸 create grant actions component

* feat: 🎸 add description to actions

* feat: 🎸 update default logic to not show all actions

* feat: 🎸 show invalid id and type message

* test: 💍 create const for test selectors

* feat: 🎸 trigger action suggestion when cursor moves

* refactor: 💡 add createGrantLineHelpers func

* refactor: 💡 small refactors

* feat: 🎸 Add CSP nonce to code editors (#3230)

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* refactor: 💡 small refactor

* test: 💍 add more tests

* refactor: 💡 fix merge conflicts issues

* refactor: 💡 updates from PR feedback

* refactor: 💡 updates for completions and linting

* test: 💍 fix test issue with translations

* test: 💍 fix test issue that was already fixed once

* refactor: 💡 address PR feedback

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Zack Moore <zack.moore@hashicorp.com>
Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
Co-authored-by: Bharath Gajjala <120367134+bgajjala8@users.noreply.github.com>
2026-05-14 15:21:29 -04:00
Lisbet Alvarez 1a8c895ea9 refactor: 💡 role grants tab to use code block (#3261)
* refactor: 💡 grants tab to use code block

* refactor: 💡 update getter comment

* test: 💍 fix tests

* refactor: 💡 remove language arg for codeblock

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18757
2026-05-14 15:21:29 -04:00
Lisbet Alvarez 990146fa34 refactor: 💡 Update string formats to use select + add options (#3256)
* refactor: 💡 Update string formats to use select + add options

* refactor: 💡 PR feedback

* test: 💍 fix tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18983
2026-05-14 15:21:29 -04:00
Zhihe Li e5657a8d4c Icu 18506 load resource IDs for autocomplete (#3247)
* feat: 🎸 Add id auto completion
* style: 💄 Fix code editor styling for dark mode
* feat: 🎸 Add optimization for caching sqlite data

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18506
2026-05-14 15:21:29 -04:00
Lisbet AlvarezandZhihe Li 1d126dc074 feat: 🎸 Add linting to code editor (#3211)
* feat: 🎸 Add linting to code editor

* refactor: 💡 add missing case for wildcard type & ids field

* refactor: 💡 simplify condition + add more tests

* refactor: 💡 cleanup ids validation logic and add more lint erro

* refactor: 💡 simplify logic and add actions linting cases

* feat: 🎸 Add autocompletion to code editor (#3207)

* refactor: 💡 apply PR feedback

* refactor: 💡 PR feedback

* refactor: 💡 add noop action

* fix: 🐛 noop should not be suggested with resource type format

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18462

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-05-14 15:21:29 -04:00
Bharath GajjalaandZhihe Li dc224268f5 feat: 🎸 Add CSP nonce to code editors (#3230)
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-05-14 15:21:28 -04:00
Zhihe Li 4c15d72321 feat: 🎸 Add autocompletion to code editor (#3207) 2026-05-14 15:21:28 -04:00
Lisbet Alvarez add2a9d6c4 feat: 🎸 add export options flyout (#3198)
* feat: 🎸 add export options flyout

* fix: 🐛 update id to be ids

* test: 💍 add a11y ignores

* test: 💍 fix tests for grant string format

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18524
2026-05-14 15:21:28 -04:00
Cameron Perera 759c1f5555 feat: 🎸 add grant schema to mirage (#3196)
* feat: 🎸 add grant schema to mirage

* refactor: 💡 update grant schema mirage data

* refactor: 💡 fix route name in mirage
2026-05-14 15:21:28 -04:00
Lisbet Alvarez 37de7e3480 feat: 🎸 Create string formats component (#3191)
* feat: 🎸 Create string formats component

* Add missing copyright headers

* fix: 🐛 change to readonly

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18458
2026-05-14 15:21:28 -04:00
d469f305de Replace Rose::CodeEditor with Hds::CodeEditor (#2679)
* chore: 🤖 replace Rose::CodeEditor with Hds::CodeEditor

- Remove CodeEditor 5 dependency

* chore: 🤖 Replace CodeMirror5 dep

remove CodeMirror5 and replace existing editors with HDS::CodeEditor

* chore: 🤖 deleting old codeeditor styles

* feat: 🎸 changing code editor

changing code editor

✅ Closes: 0

* removed unused export

* pr cleanup

* updating tests for new code editor

* responding to PR feedback

* added whitespace

* fixing linting violations

* chore: 🤖 self-review PR

self-review PR in the course of switching to new HDS code editor

* fix: 🐛 fix linting bug

* fix: 🐛 unneeded dependency

remove jslint dependency as this is handled in the new code editor from
HDS

* fix: 🐛 Fixing import bug

Fix import bug caused by importing scss modules that no longer exist

* Fix and refactor code editor acceptance test

* Fix and refactor code editor acceptance test

* chore: 🤖 remove codemirror dependency

* refactor: 💡 fix merge conflict issues

* test: 💍 update e2e test selectors

* test: 💍 fix target spec click event

* refactor: 💡 clean up test selectors for code editor

* refactor: 💡 clean up storage bucket test selectors

* chore: 🤖 remove code mirror modifiers

---------

Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: cameronperera <cameron.perera@hashicorp.com>
2026-05-14 15:21:27 -04:00
Lisbet Alvarez fd1eba617b chore: 🤖 Add initial page layout for code editor + sidebar (#3180)
* chore: 🤖 Add initial page layout for code editor + sidebar

* test: 💍 add missing a11y ignores for exisitng color issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18460
2026-05-14 15:21:27 -04:00
Zhihe Li 5048fd478a feat: 🎸 Handle rate limiting (#3257)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12035
2026-05-14 15:21:07 -04:00
Susmitha Girumala de907284ff chore: 🤖 Upgrade path-to-regexp to latest (#3260)
* chore: 🤖 Upgrade path-to-regexp to latest

Fix multiple path-to-regexp sec vulns up upgrading to latest possible
versions. This fixes:
- https://github.com/hashicorp/boundary-ui/security/code-scanning/272
- https://github.com/hashicorp/boundary-ui/security/code-scanning/269
- https://github.com/hashicorp/boundary-ui/security/code-scanning/266

* chore: 🤖 Resolve broken pnpm lockfile after merge with install
2026-05-14 11:32:21 -04:00
Zhihe Li 6e9fe1c675 docs: ✏️ Add documentation for pnpm overrides (#3263) 2026-05-13 12:54:34 -04:00
Cameron Perera 6b29a875f3 test: 💍 update json credential flaky tests (#3267)
* test: 💍 update json credential flaky tests

* test: 💍 add commonSelector for code mirror editor
2026-05-13 11:26:41 -05:00
Michael Li 1fd638618b doc: No more enos variables (#3262) 2026-05-13 09:51:13 -04:00
dependabot[bot] 6704a251e0 chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.8 (#3249)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 5.0.0 to 6.0.8.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/fc06bc1257f339d1d5d8b3a19a8cae5388b55320...0e279bb959325dab635dd2c09392533439d90093)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: 6.0.4
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:47:41 -04:00
Zhihe Li 46ed965360 chore: 🤖 Update node version (#3265) 2026-05-12 16:02:21 -04:00
Susmitha Girumala 283e128139 chore: 🤖 Fix axios cve-2026-42038 (#3259)
* chore: 🤖 Fix axios cve-2026-42038 by adding override to latest

✅ Closes: https://github.com/hashicorp/boundary-ui/security/code-scanning/327

* chore: 🤖 Undo axios override in favour of updating parent mod

Update openapi-generator-cli instead of dependent axios
2026-05-11 15:05:08 -04:00
Zhihe Li 047db02a65 fix: 🐛 Add extra check for SQLite errors (#3258) 2026-05-08 10:30:05 -04:00
Zhihe Li bd837a6383 fix: 🐛 Fix race condition from sqlite initialization (#3253) 2026-05-05 10:25:40 -04:00
dependabot[bot] 2a6fac66fc chore(deps-dev): bump postcss from 8.5.3 to 8.5.10 (#3255) 2026-05-04 16:17:13 -07:00
dependabot[bot] 4bdcd4ce69 chore(deps): bump actions/setup-node from 6.3.0 to 6.4.0 (#3252) 2026-05-04 15:21:37 -07:00
dependabot[bot] 9f76650dfb chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#3251) 2026-05-04 14:51:54 -07:00
dependabot[bot] c33d1718a2 chore(deps): bump slackapi/slack-github-action from 3.0.1 to 3.0.2 (#3250) 2026-05-04 14:07:44 -07:00
Priya Patel 923dedc9bb fix: 🐛 hides preferred clients section for linux (#3241) 2026-04-24 10:31:42 -07:00
dependabot[bot] 2d9b9d9659 chore(deps): bump uuid from 11.1.0 to 14.0.0 (#3245)
Bumps [uuid](https://github.com/uuidjs/uuid) from 11.1.0 to 14.0.0.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v11.1.0...v14.0.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version: 14.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-24 09:41:13 -04:00
Michael Li 6d7e24fdc5 chore(e2e): Log in via CLI during global setup to update cache (#3235)
* chore(e2e): log in via CLI

* CR

* CR: Rename ci option
2026-04-23 11:57:24 -04:00
Dharini 4f9086642b fix: 🐛 refresh action in session recording (#3229) 2026-04-22 10:54:50 -07:00
Susmitha Girumala 337963bff8 chore: 🤖 Upgrade socket.io-parser to fix sec vuln (#3244)
Fixes CVE 2026 33151

✅ Closes: https://github.com/hashicorp/boundary-ui/security/dependabot/269
2026-04-22 12:25:35 -04:00
Cameron Perera b87ed9f3db chore: 🤖 bump xmldom in electron-app (#3243) 2026-04-21 15:40:03 -05:00
dependabot[bot]andcameronperera 95b78299f9 chore(deps): bump brace-expansion from 1.1.12 to 1.1.13 in /ui/desktop/electron-app (#3210)
* chore(deps): bump brace-expansion in /ui/desktop/electron-app

Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.12 to 1.1.13.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.12...v1.1.13)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: 🤖 bump brace-expansion package

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: cameronperera <cameron.perera@hashicorp.com>
2026-04-21 13:39:20 -05:00
Cameron Perera cf0df900e0 chore: 🤖 bump lodash to 4.18.1 (#3242) 2026-04-21 11:36:01 -05:00
dependabot[bot]andcameronperera 214304dc8c chore(deps): bump lodash from 4.17.23 to 4.18.1 in /ui/desktop/electron-app (#3236)
* chore(deps): bump lodash in /ui/desktop/electron-app

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: 🤖 bump lodash version in electron-app

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: cameronperera <cameron.perera@hashicorp.com>
2026-04-21 10:55:03 -05:00
Susmitha Girumala ed8075d200 chore: 🤖 Update flatted dep to latest (#3240)
Update flatted to latest >=3.4.0 version to fix DoS vuln CVE-2026-32141
2026-04-17 10:00:59 -04:00
Susmitha Girumala 07089e97e2 chore: 🤖 Update immutable to fix CVE 2026 29063 (#3237)
* chore: 🤖 Update immutable to fix CVE 2026 29063

Tag immutable to latest 5.1.5 version to fix prototype pollution vuln

✅ Closes: https://github.com/hashicorp/boundary-ui/security/code-scanning/239

* chore: 🤖 Undo immutable override in favor of updating only deps
2026-04-15 11:59:27 -04:00
Dharini 14b3c8c6d0 fix: 🐛 @xmldom/xmldom version update (#3238) 2026-04-14 14:21:57 -07:00
Zhihe Li 6580350dcf feat: 🎸 Update AWS host catalog fields to be required (#3214) 2026-04-13 16:33:41 -04:00
Michael Li 51be681758 chore: Always run end-to-end tests (#3234)
* chore: Always run e2e tests

* chore: Parallelize browsers
2026-04-13 15:08:21 -04:00
Susmitha Girumala dab50e352d chore: 🤖 Update underscore to fix vulnerability (#3231)
* chore: 🤖 Update underscore to fix vulnerability

Code scanning identified a potential DoS attach for underscore versions
not using latest 1.13.8 release

✅ Closes: https://github.com/jashkenas/underscore/issues/3011

* chore: 🤖 Remove nomnom module underscore override
2026-04-09 16:14:45 -04:00
dependabot[bot] f3af41dea4 chore(deps): bump hashicorp/action-setup-enos from 1.50 to 1.52 (#3221) 2026-04-08 09:51:01 -07:00
dependabot[bot] fb3f88a77d chore(deps): bump slackapi/slack-github-action from 2.1.1 to 3.0.1 (#3223) 2026-04-08 09:08:54 -07:00
dependabot[bot] 7345c79b20 chore(deps): bump actions/setup-go from 6.0.0 to 6.4.0 (#3220) 2026-04-07 16:18:41 -07:00
dependabot[bot] 9ed79be3ef chore(deps): bump actions/setup-node from 6.2.0 to 6.3.0 (#3222) 2026-04-07 15:37:22 -07:00
dependabot[bot] 7614f17efb chore(deps): bump pnpm/action-setup from 4.2.0 to 5.0.0 (#3219) 2026-04-07 11:59:18 -07:00
Lisbet Alvarez ec698d5672 chore: 🤖 update desktop client changelog and version (#3217)
* chore: 🤖 update desktop client changelog and version
2026-04-03 12:28:15 -07:00
Priya Patel 266f10d1eb Fix terminal view lag while route changes (#3228)
* fix: 🐛 fixed terminal view being visible after route change

* test: 💍 fixed tests

* chore: 🤖 used willTransition hook

* chore: 🤖 hides terminal view on willtransition

* fix: 🐛 removed unneccessary await from hideTerminalView

* chore: 🤖 removed extra hideterminalview call

* chore: 🤖 removed settabactive on failure
2026-04-03 12:11:46 -07:00
Priya Patel e30168c55a fix: 🐛 DC e2e tests (#3216)
* fix: 🐛 fixed DC e2e tests

* chore: 🤖 addressed feedback
2026-04-03 11:49:45 -07:00
Cameron Perera 4e7d6ba57e fix: 🐛 add default value to spawn options param (#3227) 2026-04-03 09:59:18 -07:00
Zhihe Li f3968d353d chore: 🤖 Update dependency for handlebars (#3215) 2026-03-31 13:05:00 -04:00
dependabot[bot]andZhihe Li 33055d6095 chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /ui/desktop/electron-app (#3209)
* chore(deps): bump picomatch in /ui/desktop/electron-app

Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: 🤖 Update picomatch

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-03-31 12:39:59 -04:00
Priya Patel f48e6dc049 Refactor: Load terminal using web contents view (#3190)
* chore: 🤖 create terminal preload

* chore: 🤖 created terminal-manager service and updated handlers

* chore: 🤖 adds terminal view and bundling script

* chore: 🤖 addede terminal service, updated tabs component

* chore: 🤖 hides terminal on signout modal

* test: 💍 added terminal service tests

* chore: 🤖 removed debug file

* chore: 🤖 adds windows event handler

* docs: ✏️ adds jsdoc for terminal view

* chore: 🤖 removed xterm dependency from desktop package.json

* chore: 🤖 updated sessionId check

* chore: 🤖 fixed zoom sync with main window

* chore: 🤖 adds CSP for terminal view

* chore: 🤖 hides terminal on error

* chore: 🤖 cleamup listener, fixed failing tests

* chore: 🤖 fixed terminal view cleanup

* chore: 🤖 addressed feedback

* fix: 🐛 adds null check for destroy, hdie terminal view

* fix: 🐛 fixed terminal view on logout/app quit modal

* fix: 🐛 fixed hidding modal on app quit

* chore: 🤖 addressed feedback

* chore: 🤖 hides terminal view when sidenav is expanded

* chore: 🤖 removed canDisplayExistingTerminal
2026-03-30 10:08:55 -07:00
Priya Patel 605b7940e3 fix: 🐛 electron IPC error handling (#3208)
* fix: 🐛 fixed electron error handling

* chore: 🤖 addressed feedback

* chore: 🤖 removed error.name, return error as is from main

* chore: 🤖 updated error name

* chore: 🤖 adds new error on renderer side

* chore: 🤖 send error message only

* chore: 🤖 adds error fallback
2026-03-27 14:26:31 -07:00
Cameron Perera 7454ecf57a fix: 🐛 resolve update credential error bug (#3201) 2026-03-25 16:09:56 -05:00
Michael Li 28b185bec8 fix(e2e): Update vault addresses to work in AWS (#3206) 2026-03-25 12:06:19 -04:00
Cameron Perera e345946c7d docs: ✏️ update e2e readme (#3205) 2026-03-23 10:18:04 -05:00
Michael Li 6c3a57b599 chore(e2e): Update e2e tests to work for boundary-ui-enterprise (#3197)
* test: 💍 Update usage of Vault addresses

* chore: 🤖 Update admin ui e2e tests for boundary-ui-enterprise

* chore: 🤖 Update desktop e2e tests for boundary-ui-enterprise
2026-03-19 10:26:49 -04:00
Blake Ryder 52e36e6463 Update LICENSE (#3195) 2026-03-16 15:48:37 +05:30
Priya Patel 392e49bf49 refactor: 💡 window postmessage pattern -> contextbridge boundary api (#3167)
* refactor: 💡 postmessage pattern -> contextbridge boundary api

* refactor: 💡 use sinon stub for boundary api mock test helper

* refactor: 💡 updated tests

* refactor: 💡 renamed boundary mock api

* chore: 🤖 addressed feedback

* refactor: 💡 updated context bridge name, added nested objects
2026-03-13 15:14:38 -07:00
Lisbet Alvarez eba17d3c71 chore: 🤖 bump node tar to 7.5.10 (#3193) 2026-03-10 14:31:37 -07:00
Lisbet Alvarez cdfeee3916 chore: 🤖 bump webpack to v5.105.4 (#3192) 2026-03-10 10:57:36 -07:00
dependabot[bot]andLisbet Alvarez f59603d70a chore(deps): bump hashicorp/action-setup-enos from 1.40 to 1.50 (#3188)
Bumps [hashicorp/action-setup-enos](https://github.com/hashicorp/action-setup-enos) from 1.40 to 1.50.
- [Commits](https://github.com/hashicorp/action-setup-enos/compare/80a17fa25605989a7a53199137dae1244e32353f...17b90fcf9591275b468a94aefb9dc6a93017de8a)

---
updated-dependencies:
- dependency-name: hashicorp/action-setup-enos
  dependency-version: '1.50'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2026-03-09 16:42:42 -07:00
dependabot[bot] 638dbff235 chore(deps): bump hashicorp/setup-terraform from 3.1.2 to 4.0.0 (#3187)
Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.2 to 4.0.0.
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/setup-terraform/compare/b9cd54a3c349d3f38e8881555d616ced269862dd...5e8dbf3c6d9deaf4193ca7a8fb23f2ac83bb6c85)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 15:50:06 -07:00
Lisbet Alvarez e310b5abfa Add e2e test for target sort and modify e2e dc testing workflow to build binary (#3176)
* test: 💍 add e2e test case for sort target name

* chore: 🤖 update desktop e2e workflow to use boundary ent repo

* fix: 🐛 make sure org is fully loaded before sorting

* fix: 🐛 add missing step to move binary to correct folder

* refactor: 💡 update to wait for table load in test

* test: 💍 validate cache status

* fix: 🐛 remove unneeded flag so tests use enos binary

* refactor: 💡 use commit from ui-ent repo to build binary

* fix: 🐛 update selector due to changes from main merge

* fix: 🐛 update selector for dropdown link

* fix: 🐛 reopen dropdown after switching org + add workflow input

* docs: ✏️ clean up comments in workflow file
2026-03-05 12:41:45 -08:00
Cameron Perera b63ea6eee0 fix: 🐛 clean up sessions tracking in session manager (#3150)
* fix: 🐛 clean up sessions tracking in session manager

* refactor: 💡 PR feedback

* fix: 🐛 add onClose event listener to clean up sessions

* refactor: 💡 update to async/await

* refactor: 💡 move close event after spawn

* refactor: 💡 move onClose session handler to spawn onClose
2026-03-05 12:02:38 -06:00
dependabot[bot]andLisbet Alvarez 780740f2f2 chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 (#3186)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/b7c566a772e6b6bfb58ed0dc250532a479d7789f...bbbca2ddaa5d8feaa63e36b76fdaad77386f024f)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2026-03-04 13:03:36 -08:00
dependabot[bot]andLisbet Alvarez 163758a1cb chore(deps): bump browser-actions/setup-chrome from 2.1.0 to 2.1.1 (#3185)
Bumps [browser-actions/setup-chrome](https://github.com/browser-actions/setup-chrome) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/browser-actions/setup-chrome/releases)
- [Changelog](https://github.com/browser-actions/setup-chrome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/browser-actions/setup-chrome/compare/b94431e051d1c52dcbe9a7092a4f10f827795416...4f8e94349a351df0f048634f25fec36c3c91eded)

---
updated-dependencies:
- dependency-name: browser-actions/setup-chrome
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2026-03-03 15:13:27 -08:00
Lisbet Alvarez e91bf99f6d chore: 🤖 Uprage HDS to v6.0.0 (#3184) 2026-03-03 10:17:18 -08:00
Zhihe LiandZedLi 43c9389b69 feat: 🎸 Add grant templates for roles (#3115)
* feat: 🎸 Add grant templates for roles

* test: 💍 Add a11y ignore

* fix: 🐛 Add selected text

* test: 💍 Update tests

* refactor: 💡 Update manage scope styles to be consistent as well

* Add missing copyright headers

---------

Co-authored-by: ZedLi <5783847+ZedLi@users.noreply.github.com>
2026-03-03 12:32:53 -05:00
Zhihe Li 79b6360c30 chore: 🤖 Update open api tools for basic-ftp (#3182)
* chore: 🤖 Update open api tools for basic-ftp

* chore: 🤖 Update ajv deps
2026-02-27 18:12:31 -05:00
dependabot[bot]andZhihe Li 93d709f7ba chore(deps): bump ajv from 8.17.1 to 8.18.0 in /ui/desktop/electron-app (#3172)
* chore(deps): bump ajv from 8.17.1 to 8.18.0 in /ui/desktop/electron-app

Bumps [ajv](https://github.com/ajv-validator/ajv) from 8.17.1 to 8.18.0.
- [Release notes](https://github.com/ajv-validator/ajv/releases)
- [Commits](https://github.com/ajv-validator/ajv/compare/v8.17.1...v8.18.0)

---
updated-dependencies:
- dependency-name: ajv
  dependency-version: 8.18.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: 🤖 Upgrade ajv

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-02-27 13:51:49 -05:00
Zhihe Li 999c21c66a Upgrade eslint (#3175)
* chore: 🤖 Upgrade eslint config for admin ui

* chore: 🤖 Fix eslint issues for admin

* chore: 🤖 Upgrade eslint config for desktop

* chore: 🤖 Fix linting errors in desktop

* chore: 🤖 Upgrade eslint for api addon

* chore: 🤖 Fix eslint issues in api addon

* chore: 🤖 Upgrade eslint for auth addon

* chore: 🤖 Fix eslint issues in auth addon

* chore: 🤖 Upgrade core eslint config

* chore: 🤖 Fix eslint issue for core addon

* chore: 🤖 Upgrade eslint config for rose addon

* chore: 🤖 Fix eslint issue for rose addon

* chore: 🤖 Upgrade e2e eslint config

* chore: 🤖 Fix eslint issues in e2e

* chore: 🤖 Fix CI linting issues

* chore: 🤖 Add back linting server files for the future

* chore: 🤖 Update qunit rules to use extends
2026-02-27 13:32:27 -05:00
Lisbet Alvarez d6e8e58ca1 feat: 🎸 Add sorting to sessions started column (#3174)
* feat: 🎸 Add sorting to sessions started column

* test: 💍 add missing a11y ignores for existing color issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18520
2026-02-26 09:28:00 -08:00
Zhihe Li df24ba6a15 chore: 🤖 Update minimatch to latest versions for security alert (#3179) 2026-02-25 17:35:21 -05:00
Lisbet Alvarez b1b49edb39 Refactor hds side nav to hds app side nav and header (#3032)
* refactor: 💡 use hds app header and app side nav

* style: 💄 fix dark-mode colors for side nav and app header

* style: 💄 cleanup

* style: 💄 simplify selector

* refactor: 💡 move util (param finder) to core addon

* refactor: 💡 move scope picker to core addon

* refactor: 💡 use hds header and app side nav in ui/desktop

* refactor: 💡 clean up ui/desktop files

* refactor: 💡 remove uneeded header components

* refactor: 💡 remove uneeded global layout

* Add missing copyright headers

* style: 💄 adjust foreground and background colors to fix contras

* style: 💄 remove uneeded stylelint disables

* style: 💄 fix dark mode styling in desktop ui

* refactor: 💡 readd user-select style

* test: 💍 fix tests + e2e tests for admin and desktop UIs

* refactor: 💡 clean up uneeded main elements and fix color link

* Add missing copyright headers

* fix: 🐛 e2e test selectors for ui/desktop

* style: 💄 revert link color change

* refactor: 💡 remove hds override

* fix: 🐛 scope dropdown for desktop

* fix: 🐛 max-height to desktop scope dropdown

* Add missing copyright headers

* chore: 🤖 update lockfile due to webpack update
2026-02-25 13:55:36 -08:00
Zhihe Li aaabfbe54d chore: 🤖 Update node-tar (#3178) 2026-02-25 15:14:23 -05:00
Zhihe Li 51ee5b2b20 chore: 🤖 Resolve dependabot alert for @isaacs/brace-expansion (#3177) 2026-02-24 17:09:02 -05:00
hashicc 566a02cbeb chore: 🤖 bump ember-resolver to v13 (#3096) 2026-02-24 15:24:44 -05:00
hashiccandLisbet Alvarez 3a847605ed Reapply ember-can upgrade (#3111)
* chore: 🤖 reapply previous ember-can upgrade from #3093

* chore: 🤖 add missing ember-inflector dependency

* chore: 🤖 move @ember/string to be a dependency in desktop

* chore: 🤖 re-run pnpm install to resolve lockfile dupe key error

* chore: 🤖 remove unused abilities service injections

Co-Authored-By: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2026-02-24 13:48:34 -05:00
Lisbet Alvarez 772857dbad Icu 18518 UI add sorting support to cache daemon handler (#3168)
* feat: 🎸 add sorting support & sort feature on targets name column

* test: 💍 cleanup and add tests

* refactor: 💡 remove log

* fix: 🐛 dont add undefined/null values from sort to query

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18518
2026-02-19 10:38:54 -08:00
Michael Li 9e069ffc0c chore(e2e): Continue on error if clean up test infra fails (#3170) 2026-02-17 14:11:35 -05:00
dependabot[bot] ba77e9dd1b chore(deps-dev): bump webpack from 5.99.8 to 5.104.1 (#3166) 2026-02-16 15:06:44 -08:00
Cameron Perera ea1e7a99de fix: 🐛 update isRunning to check exitCode (#3148)
* fix: 🐛 update isRunning to check exitCode

* chore: 🤖 fix logic check for isRunning

* refactor: 💡 add signalCode check for isRunning
2026-02-13 17:13:59 -06:00
hashicc 46ededd676 chore: 🤖 add missing dependency on ember-inflector (#3094) 2026-02-10 15:05:45 -05:00
Zhihe Li b2b42cafd4 feat: 🎸 Update HDS to 5.2.0 (#3127)
* feat: 🎸 Update HDS to 5.2.0

* refactor: 💡 Make ember-get-config a dep for api addon

* chore: 🤖 Remove extra package overrides
2026-02-09 15:55:56 -05:00
Michael Li b6154cb1f7 test(admin/e2e): Add exact option to selector (#3165) 2026-02-05 12:31:36 -05:00
Lisbet Alvarez ebe5ae5f19 chore: 🤖 Ad ember-a11y-ignore to existing violations (#3159) 2026-02-04 14:43:15 -08:00
dependabot[bot] f8af37db43 chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 (#3157)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/8e8c483db84b4bee98b60c0593521ed34d9990e8...de0fac2e4500dabe0009e67214ff5f5447ce83dd)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 12:39:21 -05:00
dependabot[bot] 4de3b5a61f chore(deps): bump actions/setup-node from 6.1.0 to 6.2.0 (#3156)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/395ad3262231945c25e8478fd5baf05154b1d79f...6044e13b5dc448c55e2357c09f80417699197238)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 12:00:31 -05:00
Cameron Pereraandcameronperera 3829301c24 chore: 🤖 add node set up step to codeql analysis (#3153)
* chore: 🤖 add node set up step to codeql analysis

* Add missing copyright headers

---------

Co-authored-by: cameronperera <29386339+cameronperera@users.noreply.github.com>
2026-02-03 15:09:31 -06:00
Cameron Pereraandcameronperera e68e17c5d4 chore: 🤖 remove final lodash@4.17.21 reference (#3154)
* chore: 🤖 remove final lodash@4.17.21 reference

* Add missing copyright headers

---------

Co-authored-by: cameronperera <29386339+cameronperera@users.noreply.github.com>
2026-02-03 14:38:52 -06:00
hashiccandZhihe Li 63b810d53f Migrate from ember-cli-mirage to miragejs (#3088)
* chore: 🤖 import explicit mirage references

* chore: 🤖 add mirage setupMirage helper

* chore: 🤖 working example with application adapter test

* chore: 🤖 use internal setupMirage test helper from api addon

* chore: 🤖 conditionally load mirage

* chore: 🤖 filter mirage folder inclusion in production builds

* chore: 🤖 drop ember-mirage and use our own test helpers

* chore: 🤖 collapse reference to import declaration

* docs: ✏️ add comment better explaining the mirage test env

* chore: 🤖 update configuration and manage mirage-related deps

* fix: 🐛 restore ipc mock and add missing checkOS handler

* chore: 🤖 add comment explaining omitting mirage deps in build

* chore: 🤖 allow mirage.enabled to include deps and handlers

* chore: 🤖 re-enable mirage for core dummy app

* Add missing copyright headers

* chore: 🤖 use embroider macros to conditionally start mirage

* docs: ✏️ update api readme for mirage changes

* chore: 🤖 replace remaining ember-cli-mirage references

* chore: 🤖 add mirage to test builds

* fix: 🐛 ensure that auto mirage start doesn't happen in test env

* chore: 🤖 use const instead of var

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* refactor: 💡 use cleaner logic for excluded api build modules

* fix: 🐛 handle issue where importSync was too eager

This was fixed by bumping the @embroider/macros dependency that includes
a fix to this issue:
https://github.com/embroider-build/embroider/pull/2511

* refactor: 💡 move mirage from addon to app directory

* refactor: 💡 update mirage test helper to be a factory

* chore: 🤖 exclude mirage directory when necessary at build time

* chore: 🤖 add miragejs as admin dev dependency

* refactor: 💡 update reference to startMirage

* chore: 🤖 update local mirage test helper

* chore: 🤖 change import path for mirage on desktop

* chore: 🤖 update imports in tests for startMirage

* chore: 🤖 update startMirage imports for api addon tests

* chore: 🤖 add miragejs dev dep to desktop

* docs: ✏️ update README

* chore: 🤖 set up setupMirage for core tests

* chore: 🤖 fix copyright header

* Add missing copyright headers

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-02-03 13:54:32 -05:00
hashicc 72fa6d86c4 Update copyright headers (#3161)
* chore: 🤖 remove hashi copyright .github headers and update config

* chore: 🤖 remove remaining hashicorp copyright headers

* Add missing copyright headers
2026-02-03 12:08:35 -05:00
Priya Patel 1780077068 Replace time element with Hds::Time component (#3112)
* refactor: 💡 use Hds::Time component

* refactor: 💡 fix data test selector

* refactor: 💡 standardardized date/time format

* refactor: 💡 fix tests and remove date helpers

* fix: 🐛 fixed helper test import
2026-02-02 18:52:19 -06:00
Michael Li 1e49283a33 test(admin/e2e): Ensure worker filter textbox is selected before proceeding (#3152) 2026-02-02 12:27:25 -05:00
Cameron Perera 6f7138be46 chore: 🤖 bump lodash to 4.17.23 (#3149) 2026-01-30 08:22:03 -06:00
Kristin Bradley 709d6e0be8 fix: 🐛 Update SideNav dropdown and button color style overrides (#3136)
Update SideNav dropdown and button color style overrides to continue
working with newer HDS versions

✅ Closes: HDS-5908
2026-01-29 10:55:24 -08:00
Lisbet Alvarez 3ba93927fe Update copyright headers (#3146)
* empty commit

* Add missing copyright headers

* chore: 🤖 update copywrite config file with correct year

* Add missing copyright headers

* empty commit (gh action merge checks are stuck)
2026-01-28 17:09:06 -08:00
Lisbet Alvarez 733c4c546c chore: 🤖 force solid-js to newest semver (#3141) 2026-01-27 13:51:17 -08:00
Lisbet Alvarez 99713ea0e1 chore: 🤖 resolve qs to 6.14 (#3139)
chore: 🤖 force qs to resolve to patch version 6.14.1
2026-01-26 14:51:16 -08:00
dependabot[bot] b493285ee1 chore(deps): bump lodash from 4.17.21 to 4.17.23 (#3134)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 13:43:58 -05:00
Zhihe Li 3e88411998 chore: 🤖 Remove the jira sync workflow (#3133) 2026-01-21 15:57:42 -05:00
55e1e68f30 [COMPLIANCE] Update Copyright and License Headers (#3099)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Dharini <dharini@hashicorp.com>
2026-01-20 11:35:10 -05:00
dependabot[bot] 055da3d958 chore(deps): bump actions/checkout from 5.0.0 to 6.0.1 (#3121)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/08c6903cd8c0fde910a37f88322edcfb5dd907a8...8e8c483db84b4bee98b60c0593521ed34d9990e8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 12:14:30 -05:00
dependabot[bot]andZhihe Li bd9b094834 chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 (#3119)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/330a01c490aca151604b8cf639adc76d48f6c5d4...b7c566a772e6b6bfb58ed0dc250532a479d7789f)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-01-13 11:46:34 -05:00
Lisbet Alvarez 773c1596e5 fix: 🐛 Update worker_filter label for AWS DHC w/ static creds (#3114)
* fix: 🐛 Update worker_filter label for AWS DHC w/ static creds

* test: 💍 add test case

* test: 💍 fix serializer tests
2026-01-08 14:45:16 -08:00
dependabot[bot] 1d0941865b chore(deps): bump actions/setup-node from 6.0.0 to 6.1.0 (#3120)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/2028fbc5c25fe9cf00d9f06a71cc4710d4507903...395ad3262231945c25e8478fd5baf05154b1d79f)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-06 16:23:47 -05:00
dependabot[bot] ecdf9c5b42 chore(deps): bump hashicorp/action-setup-enos from 1.38 to 1.40 (#3118)
Bumps [hashicorp/action-setup-enos](https://github.com/hashicorp/action-setup-enos) from 1.38 to 1.40.
- [Commits](https://github.com/hashicorp/action-setup-enos/compare/39a8f388434bea5eeba6649b99aa9949a55a1150...80a17fa25605989a7a53199137dae1244e32353f)

---
updated-dependencies:
- dependency-name: hashicorp/action-setup-enos
  dependency-version: '1.40'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-06 13:22:02 -05:00
dependabot[bot]andZhihe Li 89f94a9d07 chore(deps): bump stefanzweifel/git-auto-commit-action (#3117)
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/28e16e81777b558cc906c8750092100bbb34c5e3...04702edda442b2e678b25b537cec683a1493fcb9)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2026-01-06 12:32:15 -05:00
Lisbet Alvarez 0b7e3fcad1 refactor: 💡 remove ember-power-select duplicate dependency (#3075) 2026-01-05 15:01:29 -08:00
Tony 4170c7aa24 fix: 🐛 e2e - update save button selector (#3116) 2025-12-23 12:32:16 -05:00
venusangandZhihe Li c8737f0474 fix: 🐛 add aria-description to edit User detail btn to fix a11y bug (#3113)
A new param @ariaDescription that was added to addons/rose edit-toggle component 
which now allows us to define the value of aria-description per a11y requirements.
With this change, the User detail edit form button now includes a value for aria-description.

✅ Closes: FE-112

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-12-17 14:09:28 -08:00
hashicc 43249169d8 chore: 🤖 bump js-yaml (#3109) 2025-12-15 16:57:57 -08:00
hashiccandLisbet Alvarez ab2c235c52 Migrate asciicinema component from hashicorp/ember-asciinema-player repo (#3102)
* chore: 🤖 add asciinema-player dependency

* chore: 🤖 migrate component and test from addon repo

Migrated from repo:
https://github.com/hashicorp/ember-asciinema-player

At commit:
09db104dd1db96348351a1cf50315cd00c3189dd

* chore: 🤖 update component references in tests

* chore: 🤖 swap styles import to asciinema-player

Styles imported from ember-asciinema-player are only importing styles
from asciinema-player.

See:
https://github.com/hashicorp/ember-asciinema-player/blob/09db104dd1db96348351a1cf50315cd00c3189dd/app/styles/%40hashicorp/ember-asciinema-player.scss#L6

* chore: 🤖 Use specific version of ascii-cinema for our styles

See:
https://github.com/hashicorp/boundary-ui/pull/2828/commits/397cedc94e6e086e5b46bc01519b4befe1574e3d

* chore: 🤖 import setupRenderingTest from app helpers

* chore: 🤖 update reference to test .cast file fetched

* style: 💄 prettier formatting updates

* chore: 🤖 refactor to using element modifier

* chore: 🤖 remove unused/unreferenced property

* chore: 🤖 remove unused css classname

* chore: 🤖 rename asciinema player component class name

Rename class name to match the class naming conventions for generated
components

* refactor: 💡 simplify implementation

* refactor: 💡 replace addon component with app component

* fix: 🐛 pass in data as an object with the key data

* refactor: 💡 remove @tracked on player property

The player property doesn't need the @tracked because its not being used
by ember to render. It is not rendered itself and changes to the
property do not impact what ember renders. The player property only
needs to track the previous player reference during teardown

* chore: 🤖 remove hashicorp/ember-asciinema-player dependency

* fix: 🐛 update to correct location of asciinema-player.css

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-12-15 16:14:18 -08:00
hashicc d45548e612 fix: 🐛 apply .sr-only fix to all instances (#3110)
Previously this was only applied to .sr-only instances within tables but
its needed for the other instances as well
2025-12-11 13:01:53 -05:00
hashicc f1ffb80b80 Revert "chore: 🤖 bump ember-can (#3093)" (#3107)
This reverts commit b5d33948dc.
2025-12-08 18:20:55 -05:00
hashicc 9204c63b17 Remove ember-cli-clipboard (#3098)
* chore: 🤖 replace CopyButton usage with Hds::Copy::Button

* chore: 🤖 remove ember-cli-clipboard

* test: 💍 fix test by stubbing writeText

The hds copy button uses the browser clipboard api. The writeText
api can fail if the window is not active. This does not happen in
practice because the window has to be active to be clicked by the
user. But in tests with synthetic triggers this can fail.

Stubbing the writeText method is also how hds tests their
component:
https://github.com/hashicorp/design-system/blob/990981b5741f9a6bf28d100c330b7865ba74e506/showcase/tests/integration/components/hds/copy/button/index-test.gts#L20
2025-12-08 12:00:32 -05:00
hashicc b5d33948dc chore: 🤖 bump ember-can (#3093)
* chore: 🤖 bump ember-can

* chore: 🤖 rename "can" service (deprecated) to abilities

See https://github.com/minutebase/ember-can/pull/152

* chore: 🤖 bump to ember-can@^8

* chore: 🤖 extend resolver for ember-can v7 breaking change

https://github.com/minutebase/ember-can/pull/186
2025-12-08 10:41:38 -05:00
hashicc 29fb5b00cb chore: 🤖 bump ember-modifier to common latest version (#3097) 2025-12-08 10:23:00 -05:00
hashicc f3a124cc47 chore: 🤖 convert rose form to embroider safe component helper (#3084)
Convert the component helper to use static strings which are embroider
safe:
https://github.com/embroider-build/embroider/blob/main/docs/replacing-component-helper.md
2025-12-05 16:52:30 -05:00
Priya Patel 2766be2c2e fix: 🐛 add missing router service injection for sessions page (#3106) 2025-12-05 15:23:37 -06:00
hashicc b9d064c949 chore: 🤖 migrate away from component helper for host set form (#3083)
* chore: 🤖 migrate away from component helper for host set form

* Add missing copyright headers
2025-12-05 14:24:28 -05:00
hashicc 0bac7d2711 chore: 🤖 migrate away from component helper for managed group (#3082)
* chore: 🤖 migrate away from component helper for managed group

* Add missing copyright headers
2025-12-05 14:11:22 -05:00
hashicc 1d08ddb513 chore: 🤖 migrate component helper usage for storage bucket form (#3081) 2025-12-03 17:37:05 -05:00
hashicc 824427b690 chore: 🤖 migrate away from component helper for target form (#3080)
* chore: 🤖 migrate away from component helper for target form

* Add missing copyright headers
2025-12-01 09:39:58 -05:00
hashicc 183bde311c chore: 🤖 use statically referenced credential form components (#3069)
* chore: 🤖 use statically referenced credential form components

* chore: 🤖 add entry for password credential form
2025-11-25 13:32:58 -05:00
hashicc 30c2cab0b7 chore: 🤖 use statically referenced components for host catalog (#3073) 2025-11-24 16:54:23 -05:00
hashicc 6fcc743217 chore: 🤖 use statically referenced components for host form (#3072)
* chore: 🤖 use statically referenced components for host form

* Add missing copyright headers
2025-11-24 16:37:11 -05:00
Dharini 719bab7358 chore: 🤖 Desktop client changelog and cli version update (#3087) 2025-11-21 13:29:01 -08:00
Zhihe Li 95f72e1248 chore: 🤖 Update playwright dependency (#3085)
* chore: 🤖 Update playwright dependency

* chore: 🤖 Update openapi generator
2025-11-20 12:22:16 -05:00
hashicc f9a9f677ca chore: 🤖 use statically defined credential store components (#3071)
* chore: 🤖 use statically defined cred store components

* Add missing copyright headers
2025-11-20 10:19:46 -05:00
Cameron Perera dd0c5df25c chore: 🤖 update tmp package to 0.2.5 (#3026)
* chore: 🤖 update tmp package to 0.2.5

* chore: 🤖 add tmp@0.2.5 override
2025-11-19 17:49:45 -06:00
Priya Patel 4fc3244049 refactor: 💡 update logic to get preferred rdp client (#3066)
* refactor: 💡 updated logic to store preferred rdp client

* refactor: 💡 simplified preferred client logic
2025-11-19 14:22:07 -08:00
Priya Patel 5faf830d46 refactor: 💡 updated magic strings with const (#3064) 2025-11-19 14:22:07 -08:00
Priya Patel d2cf82b85c e2e Rdp client tests (#3055)
* test: 💍 e2e test for rdp client launch

* test: 💍 added rdp test helper

* refactor: 💡 misc

* refactor: 💡 addressed comments

* refactor: 💡 removed similar test
2025-11-19 14:22:07 -08:00
Priya Patel fb0020c395 feat: 🎸 Add RDP client launch on session details page (#3037)
* feat: 🎸 preferred clients section on settings page

* refactor: 💡 moved rdp calls to app route

* test: 💍 fixed failings tests

* refactor: 💡 addressed comments

* fix: 🐛 fixed failing tests

* refactor: 💡 add mock rdp service calls to tests

* feat: 🎸 adds open button to session details page

* fix: 🐛 translation string

* refactor: 💡 address feedback

* refactor: 💡 address comment

* fix: 🐛 test failure
2025-11-19 14:22:07 -08:00
Priya Patel e55ea0b629 feat: 🎸 preferred clients section on settings page (#3034)
* feat: 🎸 preferred clients section on settings page

* chore: 🤖 update mock ipc with new handlers

* refactor: 💡 moved windows rdp protocol to const

* refactor: 💡 moved rdp calls to app route

* test: 💍 fixed failings tests

* refactor: 💡 addressed comments

* fix: 🐛 fixed failing tests

* refactor: 💡 add mock rdp service calls to tests

* refactor: 💡 addressed comments

* test: 💍 add additional tests

* refactor: 💡 fixed test failure
2025-11-19 14:22:06 -08:00
Dharini 9234dbae70 Icu 17881 UI desktop add rdp launch button in target detail view (#3038) 2025-11-19 14:22:06 -08:00
Dharini 27136eaa71 feat: Add launch functionality in targets list view (#3035) 2025-11-19 14:22:06 -08:00
Dharini 6554af1164 chore: 🤖 add ipc handlers for rdp (#3031) 2025-11-19 14:22:06 -08:00
Priya Patel 437d0e686d Create new RDP service (#3029)
* feat: 🎸 added a new RDP service

* fix: 🐛 rdp test

* refactor: 💡 update error handling for fetching rdp clients

* refactor: 💡 addressed comments

* fix: 🐛 revert private field

* refactor: 💡 addressed comments

* refactor: 💡 updated rdp clients to array of strings
2025-11-19 14:22:06 -08:00
Michael Li 25b801826d chore(e2e): Fix slack message (#3079) 2025-11-19 16:52:14 -05:00
Michael Li 123818dc70 chore(e2e): Update workflow triggers for e2e tests (#3077)
* chore(e2e): Update workflow triggers for e2e tests

* CR
2025-11-18 18:27:30 -05:00
Michael Li dafcd046d7 fix(e2e): Improve locator to avoid finding multiple elements (#3076) 2025-11-18 17:00:45 -05:00
Lisbet Alvarez accf9faf60 refactor: 💡 update credential-library form for password type (#3060)
* refactor: 💡 update credential-library form for password type

* style: 💄 fix display issue

* test: 💍 add test cases
2025-11-18 11:20:49 -08:00
Lisbet Alvarez 6bb237e78c Add password credential form (#3054)
* feat: 🎸 add password credential form

* test: 💍 add a11y ignores

* test: 💍 fix e2e tests

* test: 💍 add password cred type to targets brokering tests

* chore: 🤖 remove comment
2025-11-18 11:20:49 -08:00
Lisbet Alvarez bbb5808875 chore: 🤖 clean-up json-credentials feature flag (#3049) 2025-11-18 11:20:49 -08:00
Lisbet Alvarez 905a8f1951 Refactor cred type radio field (#3046)
* refactor: 💡 credential type radio field to be select field

* refactor: 💡 radio component to be select component

* test: 💍 fix e2e test page

* test: 💍 add correct selector to e2e test

* test: 💍 fix
2025-11-18 11:20:49 -08:00
Lisbet Alvarez f39961bbf5 Add password type to models and mirage (#3039)
* feat: 🎸 add new password type to cred models + mirage

* test: 💍 fix

* refactor: 💡 update target mirage trait

* chore: 🤖 add missing attr type
2025-11-18 11:20:49 -08:00
Michael Li 2bf09011fb fix(e2e): Fix LDAP test when org name contains the word "New" (#3074)
* fix(e2e): Wait for auth methods page to load

* fix(e2e): Make search for New button exact
2025-11-18 08:35:46 -05:00
Zhihe Li 013aa2e570 feat: 🎸 Refactored sessions page filters to load separately (#3053) 2025-11-17 17:06:47 -05:00
Michael Li 953e35bcd6 chore(e2e): Add slack message on e2e test failure (#3070)
* chore(e2e): Add slack message on test failure

* chore(e2e): Remove deprecated variable

* CR: only run in boundary-ui
2025-11-17 15:34:13 -05:00
hashicc e138b06fd3 chore: 🤖 remove leftover .yarn file (#3068) 2025-11-17 13:43:56 -05:00
hashicc 2ef6b0549d chore: 🤖 hoist esbuild to consolidate ember-source dependencies (#3052)
* chore: 🤖 hoist esbuild to fix dependency resolutions

* chore: 🤖 add back esbuild as an explicit dep for api addon

This addresses an eslint error but also is more explicit
with the api addon using esbuild directly
2025-11-13 13:32:08 -05:00
hashicc 1c49303432 chore: 🤖 update electron to avoid potential macos tahoe issue (#3024)
Electron has an issue being reported with latest macos tahoe:
https://github.com/electron/electron/issues/48311

This has been fixed in:
38.2.0
37.6.0
36.9.2

We are currently on 38.0.0 so this commit bumps electron to 38.2.0
2025-11-13 08:38:57 -05:00
hashicc f31b1e975d chore: 🤖 bump hds dependency (#3059) 2025-11-12 16:43:38 -05:00
Lisbet Alvarez 48d0087141 Unload expired sessions from store (#3033)
* fix: 🐛 unload expired sessions from ember data store

* fix: 🐛 add unloadAll & include terminated to admin ui

* test: 💍 update tests

* refactor: 💡 pr feedback for admin ui

* refactor: 💡 remove unneeded query from desktop ui

* refactor: 💡 check pushToStore var

* Revert "refactor: 💡 remove unneeded query from desktop ui"

* fix: 🐛 fix proxy details being removed after unload

* refactor: 💡 remove log
2025-11-11 11:16:12 -08:00
Zhihe Li 58cc9e56fc fix: 🐛 Fix filters sometimes not being displayed (#3050)
One of the changes that was made was not retrieving all resources for the dropdown filters. 
This had an unintended consequence when displaying the selected filters as it's possible for the selected filter to not be in the list of allFilters.

There's two main scenarios this happens (the prerequisite is having more filter options than we display which is 250):

* When filtering down the dropdown filters which means it might not be in the allFilters options. This was fixed by keeping track of all the searched options to be able to display.
* A user uses a query string or bookmarked a URL and goes to it directly. If the option isn't in the initial load, we won't have the actual option. In this case, I changed it to at least just display the ID instead of not showing up at all. Otherwise I'd have to load these selected options separately from the initial load which doesn't seem worth for this edge case.
2025-11-11 11:57:04 -05:00
Dylan HyunandZhihe Li 189a453e8b style: 💄 align typography and border styles to HDS tokens (#3051)
* Feat: Convert font-family styles to HDS tokens

* Feat: Convert font-size styles to HDS tokens

* Feat: Convert font-weight styles to HDS tokens

* Feat: Convert border-radius styles to HDS tokens

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-11-07 12:32:54 -05:00
Lisbet Alvarez 6fca90747c chore: 🤖 Add ignores for new violations (#3047) 2025-11-06 13:23:33 -08:00
Zhihe Li 92f5a65c00 feat: 🎸 Add ability to search other resources as well (#3021)
This commit adds the ability to search across multiple tables with joins which unlocks a better search experience in the case of tables that source their data from multiple tables.
2025-11-05 17:57:45 -05:00
Priya Patel d8744e81bc refactor: 💡 removed vault_ldap_feature flag (#3045) 2025-11-05 14:03:09 -06:00
dependabot[bot]andLisbet Alvarez 136baf8260 chore(deps): bump pnpm/action-setup from 4.1.0 to 4.2.0 (#3044)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/a7487c7e89a18df4991f7f222e4898a00d66ddda...41ff72655975bd51cab0327fa583b6e92b6d3061)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-11-04 13:35:58 -08:00
dependabot[bot]andLisbet Alvarez ef47c163d0 chore(deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 (#3043)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 5.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/ea165f8d65b6e75b540449e92b4886f43607fa02...330a01c490aca151604b8cf639adc76d48f6c5d4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-11-04 13:23:43 -08:00
dependabot[bot]andLisbet Alvarez 39e5e3406b chore(deps): bump stefanzweifel/git-auto-commit-action (#3042)
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 6.0.1 to 7.0.0.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/778341af668090896ca464160c2def5d1d1a3eb0...28e16e81777b558cc906c8750092100bbb34c5e3)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-11-04 13:06:57 -08:00
dependabot[bot]andLisbet Alvarez 91d8d61afb chore(deps): bump hashicorp/action-setup-enos from 1.37 to 1.38 (#3041)
Bumps [hashicorp/action-setup-enos](https://github.com/hashicorp/action-setup-enos) from 1.37 to 1.38.
- [Commits](https://github.com/hashicorp/action-setup-enos/compare/v1.37...39a8f388434bea5eeba6649b99aa9949a55a1150)

---
updated-dependencies:
- dependency-name: hashicorp/action-setup-enos
  dependency-version: '1.38'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-11-04 12:41:38 -08:00
dependabot[bot]andLisbet Alvarez b1d9153efe chore(deps): bump actions/setup-node from 4.4.0 to 6.0.0 (#3040)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 6.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.4.0...2028fbc5c25fe9cf00d9f06a71cc4710d4507903)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-11-04 12:14:10 -08:00
Zhihe Li fda1f56ad1 feat: 🎸 Add support for joins with filters (#3010)
This commit adds support for being able to join to other tables when filtering.
Support was also added for being able to find null values.
2025-11-03 17:28:11 -05:00
Zhihe Li fa18bfff01 feat: 🎸 Refactor session recording filters (#2981)
This commit has a few notable changes:

1. A simple attempt at establishing a pattern for using SELECT statements. This will be useful in the future for joins/subquery support.
2. Expanded usage of searching to be able to pass instead of just a string, an object that lets a consumer choose which columns to search on.
3. Decouple our session recording filters from being loaded from the route model hook which is a departure from our convention. This has the benefit of actually letting the page first load and having the filters load async so the page doesn't wait for the filters to finish. This is also much faster to query for each individual filter option from SQLite rather than returning all data to filter in application code.
2025-10-31 16:58:05 -04:00
Lisbet Alvarez 72f7c8a92d fix: 🐛 OIDC authentications not properly showing username (#2930)
* fix: 🐛 properly show username for oidc auth method in user menu

* test: 💍 fix admin ui tests

* test: 💍 fix desktop ui tests

* refactor: 💡 admin to not store username in authenticated object

* refactor: 💡 use getter in app controller

* test: 💍 POC for how we could update our tests to use auth account

* refactor: 💡 remove unused service

* test: 💍 fix all tests in ui/admin

* test: 💍 revert one change

* refactor: 💡 update ui/desktop w/ feedback + fix tests

* refactor: 💡 add in error handling

* refactor: 💡 cleanup unused service

* test: 💍 fix e2e test selector

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17231
2025-10-30 12:49:30 -07:00
Zhihe Li 838bc37243 fix: 🐛 Fix sanitizing of tokens when logging (#3036) 2025-10-29 17:05:22 -04:00
hashicc 866972c6c6 chore: 🤖 create patched ember-loading for modern e-c (#3015) 2025-10-28 10:04:32 -04:00
dillanb-hashi b19d76f249 chore: 🤖 Added github action to run e2e ui tests (#3025)
* chore: 🤖 Added github action to run e2e ui tests
2025-10-21 09:18:05 -07:00
Zhihe Li 35ccaeba56 style: 💄 Update if curly brace statements (#3023) 2025-10-13 10:53:21 -04:00
hashicc bf134072e5 refactor: 💡 migrate away from component helper for auth-method (#3011)
* refactor: 💡 migrate away from component helper for auth-method
component

* Add missing copyright headers
2025-10-08 12:53:19 -04:00
hashicc 0bd152e0b5 Migrate away from component helper in credential library form component (#3013)
* refactor: 💡 migrate away from component helper for cred library form

* Add missing copyright headers
2025-10-07 13:40:30 -04:00
dependabot[bot] 928ca5409c chore(deps): bump hashicorp/action-setup-enos from 1.37 to 1.38 (#3016)
Bumps [hashicorp/action-setup-enos](https://github.com/hashicorp/action-setup-enos) from 1.37 to 1.38.
- [Commits](https://github.com/hashicorp/action-setup-enos/compare/b9fa53484a1e8fdcc7b02a118bcf01d65b9414c9...39a8f388434bea5eeba6649b99aa9949a55a1150)

---
updated-dependencies:
- dependency-name: hashicorp/action-setup-enos
  dependency-version: '1.38'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 10:16:55 -04:00
dependabot[bot] 0f846eab2c chore(deps): bump actions/setup-node from 4.4.0 to 5.0.0 (#3017)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 5.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/49933ea5288caeca8642d1e84afbd3f7d6820020...a0853c24544627f65ddf259abe73b1d18a591444)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 21:25:12 -04:00
dependabot[bot]andLisbet Alvarez 14ed74dd3d chore(deps): bump actions/labeler from 5.0.0 to 6.0.1 (#3018)
Bumps [actions/labeler](https://github.com/actions/labeler) from 5.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/8558fd74291d67161a8a78ce36a881fa63b766a9...634933edcd8ababfe52f92936142cc22ac488b1b)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-10-06 13:34:51 -07:00
Lisbet Alvarez 701d19bd18 chore: 🤖 resolve on-headers dependabot alert (#3020) 2025-10-06 13:17:50 -07:00
hashicc 240a544d82 refactor: 💡 remove dynamic component helper from form/authenticate (#3012)
* refactor: 💡 remove dynamic component helper from form/authenticate

* Add missing copyright headers
2025-10-06 15:09:42 -04:00
Priya Patel b4f3741979 fix: 🐛 Update vault-ldap cred library (#3000)
* fix: 🐛 remove UPD cred type from vault-ldap

* fix: 🐛 failing tests

* fix: 🐛 remove log
2025-10-02 12:08:25 -05:00
dependabot[bot]andZhihe Li 396bf0a43f chore(deps): bump browser-actions/setup-chrome from 1.7.3 to 2.1.0 (#2982)
Bumps [browser-actions/setup-chrome](https://github.com/browser-actions/setup-chrome) from 1.7.3 to 2.1.0.
- [Release notes](https://github.com/browser-actions/setup-chrome/releases)
- [Changelog](https://github.com/browser-actions/setup-chrome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/browser-actions/setup-chrome/compare/v1.7.3...b94431e051d1c52dcbe9a7092a4f10f827795416)

---
updated-dependencies:
- dependency-name: browser-actions/setup-chrome
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-10-01 11:01:50 -04:00
dependabot[bot] 3225ccda10 chore(deps): bump actions/checkout from 4.2.2 to 5.0.0 (#2983)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/11bd71901bbe5b1630ceea73d27597364c9af683...08c6903cd8c0fde910a37f88322edcfb5dd907a8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:49:55 -04:00
Michael Li ad2c1ba2ad chore(e2e): Update desktop e2e test workflow to use new environment variable (#3014)
* chore(e2e): Update to use boundary license env

* chore(e2e): Allow runs if workflow_dispatch
2025-10-01 09:06:36 -04:00
dillanb-hashi ea591df0bb test: 💍 Refactor target functions and fix failing test (#2999)
* test: 💍 Fixed broken test 

* test: 💍 Refactoring to consolidate target function names

* test: 💍 fixed failing tests with capitalization issue
2025-09-30 09:35:26 -07:00
Zhihe Li 72639bd6a3 fix: 🐛 Pass in session time out when creating session (#3008)
* fix: 🐛 Pass in session time out when creating session

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17701
2025-09-22 16:31:44 -04:00
Zhihe Li 31f0044c0f fix: 🐛 Fix schema for sqlite inserts (#3006)
* fix: 🐛 Fix schema for sqlite inserts

* fix: 🐛 Also fix delete trigger not working with REPLACE INTO
2025-09-18 10:16:01 -04:00
Lisbet Alvarez d0924f7e6d fix: 🐛 max depth error for active sessions filter in targets (#3004)
* fix: 🐛 max depth error for active sessions filter in targets

* refactor: 💡 revert route and convert operators in parser

* refactor: 💡 add expr limit

* refactor: 💡 add parameters to IN/NOT IN conditions

* test: 💍 fix tests

* docs: ✏️ add comment
2025-09-17 15:32:39 -07:00
Zhihe Li d2616acf36 fix: 🐛 Pass the addr to CLI when canceling sessions (#3007) 2025-09-17 18:15:39 -04:00
Zhihe Li dfd116bd56 chore: 🤖 Update dependency for security alert (#3005) 2025-09-17 16:59:35 -04:00
Michael Li 830acef847 test(e2e): Make role creation sequential (#3003)
When running this test against an AWS cluster, this operation was resulting in 504s. This was potentially hitting some AWS rate limits when making these requests concurrently.
2025-09-16 17:50:11 -04:00
Zhihe Li ee7c916494 fix: 🐛 Fix sessions not properly getting cleaned up (#3002)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17645
2025-09-15 18:11:43 -04:00
hashicc 46d477ea5b Refresh target active sessions for admin and desktop (#3001)
* fix: 🐛 refresh sessions for targets list on admin and desktop

Refresh the sessions for the targets list pages on admin and desktop so
that the active sessions column is up to date

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17646

* test: 💍 add test for targets list refreshing sessions on admin

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17646

* refactor: 💡 allow ipcStub to return current mirage data

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17646

* test: 💍 ensure that desktop targets sessions are refreshed

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17646

* test: 💍 update existing tests affected by sessions refresh ipc

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17646

* refactor: 💡 remove force_refresh from sessions sync

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17646
2025-09-15 12:53:17 -04:00
hashicc 177b4af695 refactor: 💡 rdp default client port and max connections labels (#2998) 2025-09-12 14:41:46 -07:00
Zhihe Li d2b8805605 fix: 🐛 Fix usage of top level await in worker which fails build (#2997) 2025-09-10 16:44:24 -04:00
Zhihe Li 39dedc68ec fix: 🐛 Add better check for determining if we can use OPFS (#2996) 2025-09-10 11:35:02 -04:00
hashicc bd67756cda fix: 🐛 fix bug with the apiClientTestAfter noop fixture hanging and update e2e label username, password locators with required text (#2994)
* fix: 🐛 fix bug with the e2e test fixture hanging

* test: 💍 update cred store label locators with exact match

* test: 💍 update createTargetWithAddressAndAlias with target type
2025-09-10 10:14:55 -04:00
Dharini dd37fa4270 fix: 🐛 var name (#2970) 2025-09-09 15:27:35 -07:00
hashicc 3c5c048152 docs: ✏️ update alias value helper text (#2995) 2025-09-09 16:49:11 -04:00
hashicc dd6e4ef2d0 chore: 🤖 update desktop client changelog & bundled cli version (#2992)
* chore: 🤖 update cli version bundled with desktop client

* docs: ✏️ update changelog
2025-09-08 11:47:27 -04:00
Zhihe Li bce79f3488 fix: 🐛 Add a better db check (#2993) 2025-09-08 10:42:39 -04:00
Zhihe Li 74793a2399 chore: 🤖 Update form-data dependency (#2991) 2025-09-05 14:00:03 -04:00
Zhihe Li 6b120b053a chore: 🤖 Update electron dependency (#2989) 2025-09-04 16:49:50 -04:00
Dharini 1d0d62337e fix: 🐛 a11y test failures (#2988) 2025-09-04 10:30:44 -07:00
Dharini df8bfc42bb chore: 🤖 vault ldap feature flag 2025-09-03 17:02:25 -07:00
Dharini ff087738fc fix: 🐛 parser for handling username with domain 2025-09-03 17:02:05 -07:00
Dharini 27567c88c9 fix: 🐛 a11y tests 2025-09-03 17:01:43 -07:00
Priya Patel 9077a747d6 refactor: 💡 change default target type to tcp 2025-09-03 17:01:27 -07:00
Dharini b359d9f525 fix: 🐛 remove optional tags 2025-09-03 17:01:04 -07:00
Dharini ad7bd2e52d fix: 🐛 add required tags 2025-09-03 17:00:43 -07:00
Priya Patel 36aed9588b refactor: 💡 remove dropdown for rdp type 2025-09-03 17:00:22 -07:00
Dharini f8c81a29c4 chore: 🤖 vault-ldap target injection 2025-09-03 16:59:48 -07:00
Priya Patel c91771e152 feat: 🎸 vault ldap CRUDL support 2025-09-03 16:59:20 -07:00
Priya Patel 3b7873302b feat: 🎸 vault ldap cred 2025-09-03 16:08:00 -07:00
Dharini d79bd54f0b fix: 🐛 remove redudant cert warning 2025-09-03 16:06:40 -07:00
Priya Patel 51dc9a0e49 chore: 🤖 update brokered cred tests 2025-09-03 16:06:07 -07:00
Dharini b49e55d400 test: 💍 refactor e2e 2025-09-03 16:05:42 -07:00
Priya Patel 33cb7e0a50 test: 💍 acceptance tests for rdp target brokered creds 2025-09-03 16:05:21 -07:00
Dharini 9edc90306e test: 💍 e2e tests 2025-09-03 16:04:50 -07:00
Dharini 0a75e05b28 feat: 🎸 display toast notifications for rdp sessions 2025-09-03 16:04:17 -07:00
Priya Patel 4a179ac3e3 chore: 🤖 rdp desktop changes 2025-09-03 16:03:48 -07:00
Dharini 42e32f9568 chore: 🤖 filter rdp credentials 2025-09-03 16:02:59 -07:00
Priya Patel 0223755b2a feat: 🎸 rdp target form- read, list and delete 2025-09-03 16:02:00 -07:00
Priya Patel 30a5f2a701 feat: 🎸 rdp form - create and update 2025-09-03 16:01:25 -07:00
Dharini Jeeva d2d351c9f7 chore: 🤖 add rdp target type 2025-09-03 16:00:12 -07:00
Dharini Jeeva e1696e9a4d feat: 🎸 add support for upd credential 2025-09-03 15:59:29 -07:00
Zhihe Li 25f015b179 chore: 🤖 Remove timer console statements (#2985) 2025-09-03 11:41:43 -04:00
Zhihe Li 9e263379a7 refactor: 💡 Remove usage of indexed DB (#2979)
* refactor: 💡 Remove usage of indexed DB
2025-09-03 11:41:43 -04:00
Lisbet Alvarez 4c7ea161cd feat: 🎸 Add sqlite support to sessions (#2978)
* feat: 🎸 Add sqlite support to sessions

* refactor: 💡 only peek sqlite db when batching queries

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17411
2025-09-03 11:41:42 -04:00
Zhihe Li dc026c44a1 feat: 🎸 Handle corrupted sqlite DB (#2976)
* feat: 🎸 Handle corrupted sqlite DB
2025-09-03 11:41:42 -04:00
Zhihe Li cb8b21c10c feat: 🎸 Add sqlite support for session recordings (#2974)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17419
2025-09-03 11:41:42 -04:00
Lisbet Alvarez 47c1beadcd feat: 🎸 Add sqlite support to host-catalogs (#2973)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17417
2025-09-03 11:41:42 -04:00
Lisbet Alvarez 8f7eb2abea feat: 🎸 add fts tables to groups (#2971)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17413
2025-09-03 11:41:42 -04:00
Zhihe Li c2b0f321de feat: 🎸 Add sqlite support for auth methods (#2969)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17418
2025-09-03 11:41:42 -04:00
Lisbet Alvarez ba7b8b8824 feat: 🎸 add sqlite support for scopes (#2968)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17415
2025-09-03 11:41:42 -04:00
Zhihe Li 9e612cf83d feat: 🎸 Add sqlite support for credential stores (#2967)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17416
2025-09-03 11:41:42 -04:00
Lisbet Alvarez 2154251c30 feat: 🎸 Add sqlite support for users (#2966)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17412
2025-09-03 11:41:42 -04:00
Zhihe Li 2d38266609 feat: 🎸 Add sqlite support for roles (#2965)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17414
2025-09-03 11:41:41 -04:00
Lisbet AlvarezandZhihe Li d414df4ca4 feat: 🎸 Add custom sort support to sql parser (#2959)
* feat: 🎸 Add custom sort support to sql parser

* test: 💍 fix column numner

* refactor: 💡 apply pr feedback

* fix: 🐛 use every method for checking attrs

* refactor: 💡 PR feedback + ensure default sort

* refactor: 💡 Consolidate attributes field when sorting

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17441

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-09-03 11:41:41 -04:00
Zhihe Li eab93cf6c5 Icu 17516 use in memory sqlite in non secure contexts (#2958)
* feat: 🎸 Add checks to see if sqlite is in secure environment

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17516
2025-09-03 11:41:41 -04:00
Zhihe Li 3304def44a feat: 🎸 Add sqlite support for aliases (#2957)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17420
2025-09-03 11:41:41 -04:00
Zhihe Li a4bf02b21b refactor: 💡 Change variable name for peeking db (#2954) 2025-09-03 11:41:41 -04:00
Zhihe Li e0982da744 feat: 🎸 Add sqlite handler and parser (#2933)
* feat: 🎸 Add sqlite handler and parser

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17410
2025-09-03 11:41:41 -04:00
Zhihe Li 8abed1a809 feat: 🎸 Add a shared service between web workers (#2932)
* feat: 🎸 Add a shared service between web workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17409
2025-09-03 11:41:40 -04:00
Zhihe Li a9a6518b23 feat: 🎸 Allow building and bundling of web workers in ember (#2923)
* feat: 🎸 Allow building and bundling of web workers in ember

* refactor: 💡 Cleanup code and add comments
2025-09-03 11:41:40 -04:00
Michael Li 1bafbe1ad2 test(e2e): Address some Admin UI test flakiness (#2934)
* fix(e2e): Address flakiness during screen navigation

* fix(e2e): Fix function call

* fix(e2e): Address flakiness in connection

* fix(e2e): Make locator explicit to avoid conflict when an ID has `ok`

* fix(e2e): Fix URL now that project page defaults to showing targets
2025-09-03 11:28:33 -04:00
Lisbet Alvarez a26074a3b8 fix: 🐛 host header renders multiple times (#2980)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17584
2025-09-02 16:28:53 -07:00
Zhihe Li 90fd2f1447 fix: 🐛 Fix bug that prevents setting cluster URL (#2975)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17579
2025-08-28 12:27:12 -04:00
Priya Patel e59690e703 chore: 🤖 update ember-feature-flags and tracked-built-ins (#2903)
* chore: 🤖 update ember-feature-flags and tracked-built-ins

* chore: 🤖 update glimmer/component@2.0.0 for ember-feature-flag

* chore: 🤖 test ember-feature-flag update

* chore: 🤖 test ember-feature-flag@6.0.0

* refactor: 💡 undo test commit changes
2025-08-20 13:37:58 -05:00
cameronperera bf06e9f654 test: 💍 update known a11y violations 2025-08-19 10:51:44 -05:00
cameronperera 84359d8e79 docs: ✏️ fix flag name and a11y references 2025-08-19 10:51:44 -05:00
cameronperera 7801429530 refactor: 💡 remove body reference from typography style 2025-08-19 10:51:44 -05:00
hashicc dc9376a460 (HACK WEEK 2025) a11y-audit-ignore codemod (#2946)
* chore: 🤖 add ember-a11y-ignore tool

* chore: 🤖 fix handling existing setRunOptions imports

* chore: 🤖 move codemod to support folder

* chore: 🤖 fix edge case for handling property key names

* chore: 🤖 handle case where multiple of same violation in test

This fixes a bug where multiple cases of the same violation would end up
with multiple entries

* chore: 🤖 ignore axe rules that are currently failing in admin

* chore: 🤖 ignore axe rules that are currently failing in desktop

* docs: ✏️ add a comment explaining the codemod

* chore: 🤖 include test.each cases for a11y ignores

* fix: 🐛 handle test.each test cases for a11y ignore codemod
2025-08-19 10:51:44 -05:00
hashicc 1f4076d8d4 (HACK WEEK 2025) Upload a11y reports in ci (#2949)
* ci: 🎡 consolidate ember a11y reports and upload as gh artifact

* ci: 🎡 Bump test timeout for a11y tests

* chore: 🤖 run a11y tests in parallel

* chore: 🤖 only run a11y audit against acceptance tests

* chore: 🤖 restore ember test in place of ember exam

testing whether or not ember test hangs with three tests timing out like
ember exam does

* ci: 🎡 output a11y reports filtered down in ci

* ci: 🎡 attempt to fix shell exit code for a11y test failures

* ci: 🎡 add step names for outputting a11y test report summary
2025-08-19 10:51:44 -05:00
Cameron Perera f202d0f533 (HACK WEEK 2025) docs: ✏️ add a11y testing info to READMEs (#2945)
* docs: ✏️ add a11y testing info to READMEs

* chore: 🤖 remove light theme setup for acceptance tests in admin

* docs: ✏️ add link to test-helper.js in README

* chore: 🤖 update PR template for a11y-tests

* test: 💍 fix color theme switching tests
2025-08-19 10:51:44 -05:00
hashicc 4344dcbb36 Fix a11y-tests label (#2947) 2025-08-19 10:51:44 -05:00
Cameron Perera 87d6bbae2a (HACK WEEK 2025) chore: 🤖 add new gh workflow for a11y tests (#2942)
* chore: 🤖 add new gh workflow for a11y tests

* chore: 🤖 remove a11y dark tests job

* chore: 🤖 increase a11y tests timeout
2025-08-19 10:51:44 -05:00
Cameron Perera 7a42bf456e (HACK WEEK 2025) Dark mode a11y audit rules (#2939)
* chore: 🤖 change axe runOptions based on color theme

* fix: 🐛 fix background-color and color styles application
2025-08-19 10:51:44 -05:00
hashicc a51f1eee8e (HACK WEEK 2025) a11y desktop test helper (#2938)
* chore: 🤖 run ember-a11y-testing conditionally in desktop

* chore: 🤖 control launched testem chrome theme via COLOR_THEME

* chore: 🤖 add package.json scripts for desktop a11y tests

* chore: 🤖 gitignore a11y report

* chore: 🤖 update desktop package.json test command

Explicitly call test and finalize separately, previously "concurrently"
would pick up the finalize task

* chore: 🤖 remove unneeded console.logs
2025-08-19 10:51:44 -05:00
Carlos Alcaide CorvoandLisbet Alvarez 5b72a916e4 (HACK WEEK 2025) A11y admin test helper (#2937)
* chore: 🤖 add a11y audit test helper config

* chore: 🤖 remove report files

* refactor: 💡 remove console.log

* Apply PR feedback

* Delete the flag --server when running a11y tests

---------

Co-authored-by: Lisbet Alvarez <lisbet.alvarez@hashicorp.com>
2025-08-19 10:51:44 -05:00
Cameron Pereraandcalcaide 42013a919f (HACK WEEK 2025) refactor: 💡 remove explicit a11yAudit usage (#2936)
* refactor: 💡 remove explicit usage of a11yAudit

* Delete a11yAudit method from readme

---------

Co-authored-by: calcaide <ccorvo@hashicorp.com>
2025-08-19 10:51:44 -05:00
Cameron Perera 3918f82e14 chore: 🤖 add DARK_MODE env variable to testem config (#2935)
for admin and desktop
2025-08-19 10:51:44 -05:00
Carlos Alcaide Corvo 6e79a2a133 Delete development environment variables for the appUpdater (#2961) 2025-08-15 14:12:08 -07:00
dependabot[bot]andZhihe Li 088deaed3a chore(deps): bump tmp from 0.2.3 to 0.2.5 in /ui/desktop/electron-app (#2962)
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.5.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.5)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-08-14 14:50:15 -04:00
Zhihe Li 7504e7710c ci: 🎡 Use repo variables to determine which runner to use (#2963) 2025-08-14 14:28:58 -04:00
hashicc bb7352ca54 fix: 🐛 fix the dependency on apiClientTestAfter with a noop (#2964) 2025-08-14 10:40:52 -04:00
hashiccandZhihe Li b42ecbff36 Add api client for playwright e2e tests (#2901)
* chore: 🤖 add @openapitools/openapi-generator-cli

* chore: 🤖 Add @nestjs/core and @openapitools/openapi-generator-cli to ignoredBuiltDependencies

These packages use postinstall for a opencollective notice

* chore: 🤖 add package.json scripts for open-api client gen

* chore: 🤖 add openapi generated files

* chore: 🤖 add boundary api client fixture

* chore: 🤖 incorporate api client fixture with base fixture

* chore: 🤖 migrate existing test to use boundary api fixture

* refactor: 💡 remove org cleanup from test

* refactor: 💡 update sorting e2e test to use api client

* refactor: 💡 clean up api client resource clean up logging

* docs: ✏️ update jsdoc links for domain clients

* chore: 🤖 avoid adding copywright headers to generated api

* Add missing copyright headers

* chore: 🤖 remove fetch argument from api client class

The hope was to use request.fetch but playwright's fetch is a
non-standard fetch which causes the generated api client to fail when
using .clone() on the response

* chore: 🤖 add optional OPENAPI_SWAGGER_URL_OR_FILE for openapi-client
generation

The OPENAPI_SWAGGER_URL_OR_FILE env var can be used to specify the
-i flag the generate:api-client script with either:
* a relative path
* an absolute path
* a url like: https://raw.githubusercontent.com/hashicorp/boundary/refs/heads/main/internal/gen/controller.swagger.json

* refactor: 💡 clean up and refactor boundary-api-client fixture

* chore: 🤖 add extra doc links and delete methods

* test: 💍 add test to ensure that api-client fixture works

* test: 💍 update existing e2e test examples with api-client

* docs: ✏️ add comment for api-client e2e test

* docs: ✏️ add additional links to service docs for api clients

* refactor: 💡 cleanup api-client and corresponding test

* docs: ✏️ add api client fixture docs to e2e README

* fix: 🐛 fix regex

* remove unnecessary capture group
* add "-" to regex to allow for url segments like "storage-buckets" in
  "/v1/storage-buckets"

* docs: ✏️ comment potential edge case in e2e api client cleanup

* docs: ✏️ fix comment typo

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* docs: ✏️ remove auth flag for generating e2e client

* docs: ✏️ add mention that java is required for generate:api

* chore: 🤖 implement pr feedback

* chore: 🤖 Clean up api client and add more extensive test

* chore: 🤖 fix casing in api-client test

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-08-12 18:08:35 -04:00
Carlos Alcaide Corvo 5fd9f0216a Fix security vulnerability within desktop appUpdater (#2953)
* use app.isPackaged instead of electron-is-dev
2025-08-12 11:19:43 -07:00
dependabot[bot]andCarlos Alcaide Corvo 942ea99459 chore(deps): bump browser-actions/setup-chrome from 1.7.3 to 2.1.0 (#2952)
Bumps [browser-actions/setup-chrome](https://github.com/browser-actions/setup-chrome) from 1.7.3 to 2.1.0.
- [Release notes](https://github.com/browser-actions/setup-chrome/releases)
- [Changelog](https://github.com/browser-actions/setup-chrome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/browser-actions/setup-chrome/compare/c785b87e244131f27c9f19c1a33e2ead956ab7ce...b94431e051d1c52dcbe9a7092a4f10f827795416)

---
updated-dependencies:
- dependency-name: browser-actions/setup-chrome
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
2025-08-08 09:28:25 -07:00
LaurenandZhihe Li 990e2d6b9d [Desktop][Bug fix]: Stop target sessions before unauthenticating user session (#2891)
* add stopAll invocation to ipc handler

* trigger modal on both signout btns

* refactor invalidateSession fn

* fix application controller tests

* fix failing tests settings-card/user

* add test to Acceptance | authentication

* migrate electron dialog.showMessageBoxSync to Hds

* rename channel and tracked prop, consolidate cancel fns

* combine modals, add willDestroy, refactor

* test signout and close sessions modal

* address feedback

* refactor window.electron in authentication-test

* address feedback

* refactor: 💡 Fix failing tests

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-08-04 16:44:27 -04:00
Zhihe Li f776ba0617 Fix auto commit of copyright headers (#2948)
* fix: 🐛 Fix copyright header updates failing in CI
2025-07-28 13:50:35 -04:00
hashicc fb57965457 chore: 🤖 update @glimmer/component to v2 (#2871)
* chore: 🤖 update @glimmer/component to v2

* chore: 🤖 bump ember-a11y-refocus to fix focus errors in tests

Previous runs had three failing tests related to focusing from
ember-a11y-refocus:
* global failure: TypeError: Cannot read properties of null (reading 'focus')

Tests failing with this error were fixed as part of this PR:
https://github.com/ember-a11y/ember-a11y-refocus/pull/347

After bumping to a later version of ember-a11y-refocus, the
existing failing tests now pass
2025-07-18 13:12:34 -04:00
Tony b99fce7d55 refactor: 💡 e2e admin tests - update locators (#2931)
* refactor: 💡 e2e tests - update locators

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17174

* refactor: 💡 addressing comments

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17174

* refactor: 💡 update test for session-recording-aws-ent

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17174
2025-07-17 15:48:20 -04:00
Zhihe Li 0a2d743ea2 fix: 🐛 Fix removing worker tag (#2928) 2025-07-16 13:27:13 -04:00
Lisbet Alvarez fbd613084d fix: 🐛 prevent worker registration icon from shrinking (#2929)
* fix: 🐛 prevent worker registration icon from shrinking

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17392
2025-07-15 17:13:07 -07:00
Cameron Perera 4cd56f8ae5 Icu 17393 manage resource button permissions bug (#2927)
* fix: 🐛 hide manage button if no action items

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage actions for credential-stores

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage actions for groups

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage actions for host-sets

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage actions for roles

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage action for targets

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage actions for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage actions for users

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393

* fix: 🐛 update manage actions for auth-methods

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17393
2025-07-15 14:03:27 -05:00
Carlos Alcaide Corvo c0d41c0a62 Delete on-click-inside and on-click-outside rose modifiers (#2926) 2025-07-15 09:11:32 -07:00
Carlos Alcaide Corvo 389c635030 Modify string sorting to benefit upperCase (#2924)
* Modify the string sorting to benefit uppercase over lowercase at comparison
2025-07-11 10:08:39 -07:00
Lisbet Alvarez d93a0c170c test: 💍 refactor targets manage alias test selectors (#2921)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16437
2025-07-10 16:20:37 -07:00
Lisbet Alvarez aa18f599ce test: 💍 refactor target worker test selectors (#2910)
* test: 💍 refactor target worker test selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16438

* test: 💍 update selector

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16438
2025-07-10 15:34:24 -07:00
Tony aa7eb2e844 test: 💍 Add admin UI test for change passsword flow (#2920)
* test: 💍 Add admin UI test for change passsword flow

This PR adds a test to the Admin UI e2e test suite to validate the
workflow of changing user password from settings menu

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17173

* refactor: 💡 create resources via REST API

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17173

* refactor: 💡 consistent code structure, comments

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17173

* refactor: 💡 code structure consistency

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17173

* refactor: 💡 removed version parameter from boundary-http funcs

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17173

* refactor: 💡 rm unneeded params from https makeAuthMethodPrimary

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17173

* refactor: 💡 rm ui login step

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17173
2025-07-10 11:26:52 -04:00
Dharini 8e31adb9db fix: 🐛 release date (#2922) 2025-07-09 10:08:40 -07:00
Cameron Perera f0feb9e563 Icu 16439 enable session recording create storage bucket & index (#2886)
* test: 💍 update selectors for create-storage-bucket-test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16439

* test: 💍 add selectors for enable session recording index test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16439

* fix: 🐛 clean up duplicate test selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16439

* refactor: 💡 move single file use selectors back to file

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16439
2025-07-07 11:47:04 -05:00
Carlos Alcaide Corvo 44624e3820 Refactor test selectors for host-sets domain (#2911) 2025-07-07 09:17:06 -07:00
Zhihe Li 225c94b853 chore: 🤖 Allow DC E2E tests to run in ent (#2919) 2025-07-03 16:46:22 -04:00
Lisbet Alvarez bd1b8542eb fix: 🐛 transition aborted error when deleting or saving (#2918) 2025-07-02 13:06:17 -07:00
Dharini c92e93ab1c chore: 🤖 change log and cli version (#2917) 2025-07-02 10:29:12 -07:00
Lisbet Alvarez 1358727832 test: 💍 refactor target host sources test selectors (#2906)
* test: 💍 refactor target host sources test selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16435
2025-07-02 09:48:52 -07:00
dependabot[bot] 9bc84a2c59 chore(deps): bump stefanzweifel/git-auto-commit-action (#2915) 2025-07-01 12:27:49 -07:00
Katrina Schwark 7f00a83b19 Pci pr template v2 (#2914)
* Update pull_request_template.md

Adding PCI PR Template to existing checklist.

* Update pull_request_template.md

Removing whitespace
2025-06-30 15:07:15 -04:00
Lisbet Alvarez 19426cfd51 chore: resolve brace expansion to patched versions for vulnerability fix (#2912)
* chore: 🤖 resolve brace-expansion 1.1.11 to 1.1.12

* chore: 🤖 resolve brace-expansion 2.0.1 to 2.0.2
2025-06-27 14:39:01 -07:00
Lisbet Alvarez 30c05eb834 refactor: 💡 update label and description for AWS DHC (#2909)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17308
2025-06-27 14:17:06 -07:00
Lisbet Alvarez f1d334b848 chore: 🤖 upgrade got package to solve vulnerability (#2885)
* chore: 🤖 upgrade got package to solve vulnerability

* chore: 🤖 add missing ember try config in core addon

* chore: 🤖 add usePnpm to ember-try config file for all addons

* chore: 🤖 add resolution for package-json dep. instead of got
2025-06-27 13:58:38 -07:00
Carlos Alcaide Corvo 961f497b6b Replace this.server.db with this.server.schema (#2907) 2025-06-26 14:14:26 -07:00
Lisbet Alvarez 89f33f3714 refactor: 💡 add last seen time column to workers list view (#2908)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17305
2025-06-26 11:18:28 -07:00
Carlos Alcaide Corvo 4bad52f43a Refactor host set update test (#2902)
* Refactor host set update test
2025-06-25 08:28:14 -07:00
Carlos Alcaide Corvo fd6cd3ddf7 Refactor test selectors aliases (#2897)
* Refactor delete test selectors

* Refactor list test selectors
2025-06-25 07:39:10 -07:00
Lisbet Alvarez adf7f8603b test: 💍 refactor targets create alias & enable SR test selectors (#2904)
* test: 💍 refactor targets create alias & enable SR test selector

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16433
2025-06-24 16:09:33 -07:00
Lauren 2a2e4350ee conditionally render separator (#2900) 2025-06-23 20:07:41 -04:00
Carlos Alcaide Corvo f563a4ef45 Fix SASS deprecation (#2899) 2025-06-23 15:59:54 -07:00
hashicc 37b6ef6d3f Add e2e test for sorting (#2883)
* chore: 🤖 add sorting e2e test

* docs: ✏️ update docs with details around @ce and @ent tags

* test: 💍 Add @ent tag to sorting test

* test: 💍 update roles page with goto method

* test: 💍 assert column header labels and improve locators
2025-06-23 14:27:36 -04:00
Sohail 96ff0ddf27 Enhanced the refresh functionality in targets route (#2889)
* Enhanced the refresh functionality in targets and sessions route
2025-06-23 09:08:59 +05:30
Zhihe Li 746862a897 docs: ✏️ Fix E2E readme instruction (#2898) 2025-06-20 17:42:38 -04:00
hashicc 5d6e65f206 refactor: 💡 remove cached allSessions and related models (#2862) 2025-06-20 16:16:17 -04:00
Lisbet Alvarez 6f9a464302 chore: 🤖 upgrade hds to newest version 4.20.2 (#2895) 2025-06-20 11:39:04 -07:00
Carlos Alcaide Corvo abf7866292 Refactor scopes test selectors (#2888) 2025-06-20 10:32:28 -07:00
Lisbet Alvarez 10c98c66e7 test: 💍 Refactor test selectors for targets credential sources (#2890)
* test: 💍 Refactor test selectors for targets credential sources

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16432
2025-06-19 18:04:18 -07:00
Lisbet Alvarez c1f7fe2ddd chore: 🤖 revert hds from 4.19.0 to 4.18.2 (#2892) 2025-06-19 11:27:08 -07:00
hashicc 7f4586ed9e chore: 🤖 migrate away from component helper for form/account (#2880) 2025-06-18 10:09:28 -04:00
Carlos Alcaide Corvo 0b6049c8b0 Refactor authentication test selectors (#2887) 2025-06-17 11:51:04 -07:00
Lisbet Alvarez 2d347171a9 refactor: 💡 add title to primary column in auth-methods table (#2882) 2025-06-13 15:55:06 -07:00
Carlos Alcaide Corvo a085d4d4f7 Clean up commented mirage authentication route handler. (#2879) 2025-06-13 14:25:37 -07:00
Carlos Alcaide Corvo 7e2f3e3df3 Refactor credential-store/credentials list test selectors (#2884)
* Refactor credential-store/credentials list test selectors
2025-06-13 08:24:18 -07:00
Carlos Alcaide Corvo 3899daea7c Add sortNameWithIdFallback to auth methods (#2878)
* Add sortNameWithIdFallback to auth methods
2025-06-12 15:35:39 -07:00
Cameron Perera 3d1ee732b4 Icu 17232 improve host source resource fetching (#2877)
* refactor: 💡 add fallback value for address column

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* fix: 🐛 make host address optional in search for plugin hosts

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* feat: 🎸 remove pageSize reset for user preference

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* test: 💍 update e2e tests for host sources

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* feat: 🎸 improve host source resource fetching

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* refactor: 💡 remove em dash translation

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* refactor: 💡 add comment to target route for duplicate hosts

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* refactor: 💡 add filter to query for hosts

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232

* refactor: 💡 use Promise.all() when fetching hosts

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17232
2025-06-12 17:19:56 -05:00
Lisbet Alvarez 899d7beee0 chore: 🤖 upgrade @babel/runtime to v7.27 (#2881)
* chore: 🤖 upgrade @babel/runtime to v7.26
2025-06-12 10:17:12 -07:00
Carlos Alcaide Corvo 4c7f3fad75 Icu 15478 refactor credentials delete test selectors (#2867)
* Refactor credential-store/credentials update test selectors

* Refactor credential-store/credentials delete test selectors
2025-06-11 09:29:46 -07:00
hashicc b8eb2c3c9b Upgrade ember-cli-flash (#2870)
* chore: 🤖 upgrade ember-cli-flash to v6

* chore: 🤖 remove unneeded timer disabling

This is no longer needed since the test helpers as of v5 are explicit:
disableTimeout and enableTimeout

Old world:
> Essentially importing this helper would cause the init hook of the FlashObject to become a no-op and disable the timeout running in consuming apps test runs.

> To get the same behaviour as "Old world 🌐 " a consuming app needs only to remove the blueprint import. ✅

https://github.com/adopted-ember-addons/ember-cli-flash/pull/392

* chore: 🤖 add @embroider/macros for ember-cli-flash

ember-cli-flash requires @embroider/macros as a dev dependency:
https://github.com/adopted-ember-addons/ember-cli-flash/pull/392/files/6c5743f424d14143c9309bcb0be8152fdaec11a2#r1369522866
https://github.com/adopted-ember-addons/ember-cli-flash/pull/395
2025-06-10 18:37:36 -04:00
hashicc f5d612c8b5 chore: 🤖 use @nullvoxpopuli/ember-composable-helpers (#2869)
use @nullvoxpopuli/ember-composable-helpers instead of ember-composable-helpers
2025-06-10 18:05:30 -04:00
Carlos Alcaide Corvo 4020f2d4e2 Icu 15477 refactor credentials update test selectors (#2866)
* Refactor credential-store/credentials update test selectors
2025-06-10 14:19:23 -07:00
Carlos Alcaide Corvo 5794cfc7b2 Delete rose cards and rose card old styles (#2872) 2025-06-10 08:46:35 -07:00
Carlos Alcaide Corvo 1284a16978 Refactor credential-store/credentials read test selectors (#2864)
* Refactor credential-store/credentials read test selectors
2025-06-10 08:24:18 -07:00
f255a470cd Improve Project Navigation in Sidebar for Admin UI (#2829)
* When clicking on project in list, go to targets page

* Move Sessions link to bottom of main list on Project scope sidebar

* Add backlink to Orgs

* Add backlink to Global

* Fix some tests

* test: 💍 fix a couple more tests

---------

Co-authored-by: Lisbet Alvarez <lisbet.alvarez@hashicorp.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-06-09 16:48:59 -07:00
hashicc f738e71657 chore: 🤖 explicitly require managing pnpm "built dependencies" (#2873)
pnpm by default refuses to run install scripts, some packages require
these and others are use install scripts as a way to provide messages.
Instead of a pnpm warning this commit ensures that the package that
is detected with an install script must be either listed in
ignoredBuiltDependencies or onlyBuiltDependencies. Running  pnpm
install will fail until a package has been categorized

As part of this commit the packages that were previously listed
as warnings have been categorized under ignoredBuiltDependencies
since their install scripts are not required for the functionality
of the package
2025-06-09 10:26:02 -04:00
hashicc beeee851ac fix: 🐛 import codemirror assets correctly (#2875)
Use addon.import to have the correct node_modules path used
2025-06-09 10:05:07 -04:00
Lisbet Alvarez eb365f0d39 Icu 17197 update logic in global roles to only add project scopes when using children (#2874)
* refactor: 💡 hide manage custom scopes button when using keyword

* refactor: 💡 update to only allow projects for global roles

* refactor: 💡 clean-up

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17197
2025-06-06 16:26:34 -07:00
Cameron Pereraandcameronperera 57e614e8db feat: 🎸 add search capability for host sources (#2861)
* feat: 🎸 add search capability for host sources

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17094

* refactor: 💡 use Rose::Pagination component

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17094

* refactor: 💡 move target detail body to index route

to fix whole page reload issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17094

* Add missing copyright headers

* refactor: 💡 PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17094

---------

Co-authored-by: cameronperera <29386339+cameronperera@users.noreply.github.com>
2025-06-06 16:07:48 -05:00
Lisbet Alvarez 738fa1f15f refactor: 💡 add custom sort to resources (#2860)
* refactor: 💡 add custom sort

* test: 💍 fix tests

* test: 💍 fix more tests

* refactor: 💡 use reusable sort function for name

* refactor: 💡 use sort util in all resources w/ optional name

* Add missing copyright headers

* test: 💍 fix broken tests & add tests for new util

* refactor: 💡 add name custom sort to users

* test: 💍 fix import in tests

* refactor: 💡 add custom name sort to scopes

* test: 💍 pr feedback on util test cases

* refactor: 💡 move sort function into object (pr feedback)
2025-06-05 11:00:25 -07:00
Lisbet Alvarez 4c959ab297 refactor: 💡 hide manage custom scopes button when using keyword (#2865)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17195
2025-06-04 09:41:02 -07:00
Carlos Alcaide Corvo e685295d04 Icu 17166 implement sort for auth methods (#2855)
* Implement sorting for auth methods
2025-06-04 09:05:19 +02:00
hashicc 204bd10e04 ICU-16782 sort admin aliases (#2843)
* feat: 🎸 add sorting to aliases/index route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16782

* refactor: 💡 use hds table components directly for aliases table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16782

* feat: 🎸 wire up sorting with alias table, incl. query params

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16782

* test: 💍 add tests for sorting aliases

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16782

* fix: 🐛 use {{true}} instead of 'true' for @isVisuallyHidden

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16782
2025-06-03 13:55:11 -04:00
hashicc 5a302b0bcc Migrate to pnpm (#2828)
* chore: 🤖 remove packageManager field from package.json

* chore: 🤖 migrate yarn resolutions to pnpm overrides

* chore: 🤖 generate pnpm-lock.yml by using: pnpm import yarn.lock

* chore: 🤖 remove yarn.lock file

* chore: 🤖 migrate workspace configuration

* chore: 🤖 remove .yarn and .yarnrc.yml config

* chore: 🤖 update .copyright.hcl to ignore root pnpm files

* chore: 🤖 migrate husky pre-commit hook from yarn to pnpm

* chore: 🤖 migrate package.json scripts from yarn to pnpm

* chore: 🤖 update rose package.json & build to use explicit deps

* chore: 🤖 remove unused cp metadata.json command in pjson script

The cp metadata.json to dist was added in:
d19a251

The addons/rose/metadata.json no longer exists so it can't be copied

* chore: 🤖 migrate electron-app package.json scripts to pnpm

* chore: 🤖 create pnpm workspace for electron-app w/ hoisted deps

* chore: 🤖 migrate electron-app yarn lockfile to pnpm lockfile

Used "pnpm import yarn.lock"

* chore: 🤖 migrate electron-app overrides

node-gyp isn't needed since the fork is used via @electron/node-gyp
see: https://github.com/electron/node-gyp?tab=readme-ov-file#node-gyp---nodejs-native-addon-build-tool

* chore: 🤖 add trusted deps to be built to onlyBuiltDependencies

This is a pnpm feature that increases security. By defining these
dependencies they are being trusted to allow install hooks,
including postinstall. See:
https://pnpm.io/settings#onlybuiltdependencies

* chore: 🤖 add electron-app pnpm files to copyright header ignore

* chore: 🤖 remove yarn references from .*ignore files

* chore: 🤖 migrate --yarn to --pnpm for ember-cli-update.json

This isn't clearly documented but something that is supported
and can be found in other ember apps:
https://github.com/search?q=--pnpm+ember-cli-update.json&type=code

* chore: 🤖 migrate ci and related scripts to use pnpm

The cache is migrated to use the cache supported by
actions/setup-node@v4, an action we are already using. This is the
recommended way by pnpm:
https://pnpm.io/continuous-integration#github-actions

This commit also ensures that all github actions are using
consistent versions of actions/setup-node and pnpm/action-setup

* docs: ✏️ update documentation to use pnpm instead of yarn

* chore: 🤖 use explicit asciinema-player dependency

Because we override styles on asciinema-player we depend on their
styles. What might be a minor non-breaking change in their version could
(and did) break our style expectations in our overrides.

* chore: 🤖 run pnpm install and commit lockfile changes

* chore: 🤖 Remove ember-inflector from being overidden

https://github.com/hashicorp/boundary-ui/pull/2828#discussion_r2110380711

* chore: 🤖 remove highlight.js from pnpm overrides

https://github.com/hashicorp/boundary-ui/pull/2828#discussion_r2109847938

* chore: 🤖 remove additional unnecessary files from ignore files

* docs: ✏️ fix pnpm doc links

* chore: 🤖 use corepack to specify packageManager in package.json

* chore: 🤖 let pnpm action in ci use packageManager for version

https://github.com/pnpm/action-setup?tab=readme-ov-file#version

* docs: ✏️ fix broken pnpm website links
2025-06-03 12:55:12 -04:00
hashicc daa23f66c4 ICU-16785 sort admin scopes (#2842)
* feat: 🎸 add sorting to scopes/scope/scopes/index route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16785

* refactor: 💡 use direct hds components to support sorting

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16785

* feat: 🎸 wire up sorting to the scopes table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16785

* test: 💍 add tests for sorting scopes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16785
2025-06-03 09:40:32 -04:00
Priya Patel b06c396086 Refactor - Rose::Page::Layout (#2849)
* Refactor: Rose::Page::Layout - header, actions and breadcrumbs (#2813)

* refactor: 💡 page::layout- header,breadcrumb and actions

* refactor: 💡 added new class for the page layout, fixed a11y

* refactor: 💡 addressed comments

* refactor: 💡 moved copy snippet to PH.Generic

* refactor: 💡 addressed comments

* Refactor: Rose::Page::Layout - header, actions and breadcrumbs Part 2 (#2825)

* refactor: 💡 rose page layout header

* refactor: 💡 removed extra classes

* Refactor: Rose::Page::Layout - header, actions and breadcrumbs Final Part (#2840)

* refactor: 💡 rose page layout header

* Refactor: Rose::Page::Layout - header, actions and breadcrumbs (#2813)

* refactor: 💡 page::layout- header,breadcrumb and actions

* refactor: 💡 added new class for the page layout, fixed a11y

* refactor: 💡 addressed comments

* refactor: 💡 moved copy snippet to PH.Generic

* refactor: 💡 addressed comments

* Refactor: Rose::Page::Layout - header, actions and breadcrumbs Part 2 (#2825)

* refactor: 💡 rose page layout header

* refactor: 💡 removed extra classes

* refactor: 💡 fixed a11y heading, actions dropdown

* refactor: 💡 fixed page header

* refactor: 💡 fix heading margin and failing tests

* refactor: 💡 add back margin for hds header tags

* refactor: 💡 fix style
2025-06-02 16:20:50 -05:00
Lauren 5555603a5c [Retire] Rose::Dropdown (#2858)
* remove dropdown styling

* remove rose/dropdown child component integration tests

* refactor tests, delete tests

* remove rose dropdown component from addons/

* refactor tests, delete tests

* run yarn format

* remove additional rose dropdown files from addons

* remove ref to rose dropdown from readme

* remove skipped test, comment states no longer relevant

* remove unused ref to rose-header-dropdown selector

* refactor tests using .rose-dropdown selector, cleanup

* run yarn format

* add selector to commonSelectors, refactor more tests

* nest .hds-dropdown selector in place of .rose-dropdown

* revert @use dropdpwn

* remove line, styling already applied on btn selector

* removed unused dropdown-radio-btn selector
2025-06-02 14:06:06 -04:00
hashicc 7c3b6d6d9e ICU-16787 sort admin users (#2844)
* feat: 🎸 add sorting to users route, feat. query params

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16787

* refactor: 💡 use hds components directly to support custom sort

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16787

* feat: 🎸 wire user sorting from controller to template

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16787

* test: 💍 add sorting tests for users

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16787
2025-06-02 13:26:11 -04:00
Carlos Alcaide Corvoandhashicc ce87d7728c Implement sorting for host catalogs (#2857)
Co-authored-by: hashicc <191911133+hashicc@users.noreply.github.com>
2025-05-30 16:14:00 -04:00
Carlos Alcaide Corvo e4da851172 Implement sorting for credential stores (#2856) 2025-05-30 15:36:43 -04:00
Cameron Perera e3433ec1f7 feat: 🎸 add pagination to host source table (#2854)
* feat: 🎸 add pagination to host source table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17093

* test: 💍 add e2e tests for host source pagination

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17093

* refactor: 💡 change paginatedHosts to getter

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17093

* test: 💍 refactor e2e pagination test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17093
2025-05-29 15:55:05 -05:00
hashicc 96f30d1b31 Add sorting to Groups in boundary admin (#2846)
* feat: 🎸 wire up sorting for groups/index route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16783

* refactor: 💡 use underlying hds components directly for sorting

This step refactors the table to use the components directly.
With this setup a sorting refactor can be done more easily.

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16783

* feat: 🎸 wire up sorting from controller to template

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16783

* test: 💍 add sorting tests for groups table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16783
2025-05-28 18:20:43 -04:00
hashicc f4a48467e3 Add sorting to Roles in boundary admin (#2827)
* feat: 🎸 add sorting to roles/index route

Add sortAttribute and sortDirection query params, and use values in
this.store.query sorting option

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16784

* refactor: 💡 use manual hds table components for custom sort

This refactor uses the underlying hds components directly in order to
support custom sorting, see:
https://helios.hashicorp.design/components/table/table?tab=code#custom-sorting-using-the-yielded-sorting-argumentsfunctions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16784

* feat: 🎸 wire-up query param state, controller action with table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16784

* test: 💍 add sorting tests for admin roles list

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16784
2025-05-28 10:40:31 -04:00
Lisbet Alvarez bada405511 Icu 17087 implement sort for sessions (#2845)
* feat: 🎸 implement sort for sessions

* test: 💍 fix bug + add tests

* Add missing copyright headers

* refactor: 💡 remove fix so it can be its own PR

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17087
2025-05-27 17:31:55 -07:00
Cameron Perera 96d7c055b0 Icu 17092 replace hosts connect modal with table in target detail page (#2841)
* feat: 🎸 add host source table to target detail view

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17092

* chore: 🤖 remove unused translation

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17092

* test: 💍 update e2e tests for host source change

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17092

* test: 💍 add test for target details main connect button

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17092

* test: 💍 update e2e test selector

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17092
2025-05-23 11:45:27 -05:00
dependabot[bot]andZhihe Li a747614a74 chore(deps): bump hashicorp/setup-terraform from 3.0.0 to 3.1.2 (#2853)
Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.0.0 to 3.1.2.
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/setup-terraform/compare/a1502cd9e758c50496cc9ac5308c4843bcd56d36...b9cd54a3c349d3f38e8881555d616ced269862dd)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  dependency-version: 3.1.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-05-23 10:53:03 -04:00
dependabot[bot]andZhihe Li 84856407ee chore(deps): bump stefanzweifel/git-auto-commit-action (#2852)
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/e348103e9026cc0eee72ae06630dbe30c8bf7a79...b863ae1933cb653a53c021fe36dbb774e1fb9403)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-05-23 10:40:43 -04:00
dependabot[bot] 9bfd624713 chore(deps): bump actions/setup-node from 4.3.0 to 4.4.0 (#2851)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/cdca7365b2dadb8aad0a33bc7601856ffabcc48e...49933ea5288caeca8642d1e84afbd3f7d6820020)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-23 10:22:03 -04:00
Jan Harrie b2a6e4d47f configure dependabot to automatically update GitHub Actions dependencies (#2848) 2025-05-23 15:03:29 +02:00
Lisbet Alvarez 308240be89 fix: 🐛 refocus on route changes when attempting to search (#2839)
* fix: 🐛 refocus on route changes when attempting to search

* refactor: 💡 update condition

* refactor: 💡 prevent refocus for more use cases like filtering

* refactor: 💡 use router service instead of window object

* refactor: 💡 PR feedback (use param finder instead of regex)

* test: 💍 update test title

* test: 💍 refactor tests to use test.each
2025-05-22 16:34:40 -07:00
Lisbet Alvarez c12edc7f73 feat: 🎸 implement sort for session recordings (#2837)
* feat: 🎸 implement sort for session recordings

* refactor: 💡 update selectors w/ pr feedback

* refactor: 💡 remove click in tests

* test: 💍 update selectors due to merge

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17065
2025-05-22 10:27:19 -07:00
Lisbet Alvarez 44bd5ee1c6 Icu 16786 implement sort for targets (#2830)
* feat: 🎸 add sorting for targets

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16786
2025-05-21 12:20:48 -07:00
Lauren 8f3cccce32 [Retire] Rose::Button (#2838)
* remove rose::button files and imports

* remove rose btn utilities

* remove btn class from app.scss

* delete rose btn styling, component files

* update test

* remove playground.hbs, team agreed

* refactor dummy/app/templates/index.hbs to use hds btn
2025-05-21 05:23:21 -04:00
Cameron Perera 1ef7d9b5a7 Icu 16413 roles principals (#2835)
* test: 💍 add selectors to roles principals

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16413

* test: 💍 add selectors for roles project scope

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16413

* change exists() to isVisible()
2025-05-20 17:08:08 -05:00
Dharini Jeeva c445f95aa4 chore: desktop header nav dropdown changes (#2833) 2025-05-20 13:24:46 -07:00
Cameron Perera 96db738f4b refactor: 💡 fix table density and remove desc margin (#2836) 2025-05-20 12:56:28 -05:00
Lauren 6181df4c69 [Replace][Desktop] Rose::Button (#2812)
* replace rose::button in ui/desktop

* replace .rose-button in ui/admin acceptance tests

* update @iconOnly to @isIconOnly

* add required @text arg for isIconOnly btns

* re-add title html element

* add _button.scss for custom styling

* add hover styling over close btn

* fix a bug when we hover in dark mode

* fix bug in main, hover white should trigger in dark mode

* remove &:not(:disabled) on btn close window class

* fix merge conflict

* fix styling
2025-05-20 12:15:45 -04:00
Priya Patel 376787fda1 refactor: 💡 rose dialog cleanup (#2831) 2025-05-20 09:40:57 -05:00
Cameron Perera 80ffa856bd fix: 🐛 fix host source description reference (#2834) 2025-05-19 09:35:26 -05:00
Cameron Perera eb9fe573b8 Icu 11937 foundation components retire rose typography styles (#2810)
* refactor: 💡 update _typography stylesheet

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937

* refactor: 💡 update header margin styles into single rule

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937

* refactor: 💡 add remove-header-margin class

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937

* refactor: 💡 remove 'header' class

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937

* test: 💍 fix failing tests for branded-card in desktop

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937

* refactor: 💡 update style rule to use :where()

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937

* refactor: 💡 rename remove-header-margin to remove-margin

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937

* refactor: 💡 update style comment

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11937
2025-05-15 14:48:27 -05:00
Dharini Jeeva e222d5b909 chore: Migrate rose dropdown to HDS (#2826) 2025-05-15 11:05:05 -07:00
Lauren 1c774aa783 [Retire] Rose::Form::Label (#2815)
* remove rose::form::label integration test

* update label on fieldset element to ref .hds-form-label

* remove file _label.scss

* remove import

* delete components/rose/form/label/index.hbs

* remove styling from app.scss
2025-05-15 13:01:58 -04:00
Lisbet Alvarez 04b51da60f test: 💍 refactor targets test selectors (#2824)
* test: 💍 refactor targets test selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16427
2025-05-14 14:11:03 -07:00
Lauren 28ddec6898 [Retire] Rose::Form::Input (#2821)
* remove rose form input component folder

* remove component integration test

* remove _input styling and import ref

* remove import from addons

* remove app.scss form input styling

* replace form.input with Hds::Form::TextInput::Field

* remove assertions for disabled state, remove Hds replacement

* remove test that checks input field that no longer exists

* remove rose::form::input component from playgrouund.hbs

* remove @use 'input'
2025-05-14 09:21:18 -04:00
hashicc d987f844de Use @use for scss explicit imports (#2820) 2025-05-13 21:01:49 -04:00
Carlos Alcaide Corvo b0d26fe1e6 Add sorting foundation as util and using it within indexed-db-handler (#2773) 2025-05-13 16:18:04 -04:00
hashicc e96131a933 chore: 🤖 update @ember/test-helpers to 5.2.1 (#2797) 2025-05-13 13:23:24 -04:00
Sohailandsohail-hashicorp 3d58745bf1 feat: Clear flash messages during login (#2772)
* feat: Make the auth error message non-sticky in nature

---------

Co-authored-by: sohail-hashicorp <198640889+sohail-hashicorp@users.noreply.github.com>
2025-05-12 10:33:01 +05:30
Lisbet Alvarez 9560148253 chore: 🤖 update changelog with date (#2822) 2025-05-08 09:33:25 -07:00
Sohail ec00efb656 feat: 🎉 add minimum window size for the app (#2814) 2025-05-08 21:44:50 +05:30
Carlos Alcaide Corvo ba34307918 Add check to only show windows buttons on windows (#2817)
Default windows action buttons to true and return false only for mac
2025-05-08 14:05:19 +02:00
Carlos Alcaide Corvo 28d8afae2e Dedupe dependencies (#2819) 2025-05-08 12:40:54 +02:00
Michael Li 2e507be454 test(e2e): Address some Admin UI test issues for 0.19.2 (#2818)
* test(e2e): Update navigation to create a storage bucket

* test(e2e): Address flake when creating host catalogs
2025-05-06 14:07:36 -04:00
dillanb-hashi dbf3617224 test(ui): Test the scope picker on the top menu bar (#2788)
* test(ui): Test the scope picker on the top menu bar
* test(ui): Fixing based on recent menu bar changes
2025-05-06 09:39:48 -07:00
Lisbet Alvarez 200a7944e6 Icu 16545 upgrade ember addons api (#2791)
* v4.12.1...v5.12.0

* chore: 🤖 yarn.lock changes from ember upgrade

* chore: 🤖 ember init blueprint changes

* chore: 🤖 yarn.lock updates

* chore: 🤖 fix build errors

* chore: 🤖 yarn.lock file changes

* refactor: 💡 undo style path change

* chore: 🤖 fix build errors

* chore: 🤖 yarn.lock file changes

* test: 💍 add @ember/string back in to fix test error

* chore: 🤖 remove eslint prettier plugin

* chore: 🤖 remove prettier eslint plugin in api addon

* docs: ✏️ add comments back in
2025-05-06 08:49:29 -07:00
Lisbet Alvarez 8dafc2b9a0 test: 💍 refactor session-recording test selectors (#2811)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16423
2025-05-05 10:41:42 -07:00
Lisbet Alvarez b7559c1f4e Icu 16542 upgrade ember addons rose (#2784)
* v4.12.2...v5.12.0

* fix: 🐛 update path name for hds styles

* chore: 🤖 ember init changes

* style: 💄 clear lint errors

* chore: 🤖 run yarn format in rose addon

* chore: 🤖 fix build failures

* chore: 🤖 yarn.lock file changes

* chore: 🤖 yarn.lock file updates

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16542
2025-05-02 15:13:45 -07:00
Lauren dd8e1864db [Replace] Rose::Form::Label and <input.field> elements (#2783)
* replace with hds::form::label

* test Hds::Form::TextInput::Field

* add event handler

* add hds text componenet to grant.value fields

* fix test failures

* replace with set-from-event

* address feedback

* add title html element to hds component
2025-05-02 11:12:30 -04:00
Lauren d85a84980f [Retire] Rose::Icon (#2807)
* remove rose::icon test

* remove .rose-icon class styling from ui/admin

* remove .rose-icon class styling from ui/desktop

* remove .rose-icon class styling from addons/

* remove @import 'icon'

* remove icon.js
2025-05-02 10:53:21 -04:00
Priya Patel 4295966b7f Rose::Dialog::Cover component cleanup (#2806)
* refactor: 💡 rose::dialog::cover cleanup

* refactor: 💡 removed cover addon file
2025-05-01 16:14:53 -06:00
Lisbet Alvarez a87c079ade refactor: 💡 convert rose/anonymous from classic to glimmer comp (#2799) 2025-05-01 10:36:34 -07:00
Cameron Perera b3604e3e40 refactor: 💡 update code tag to use Hds::Text::Code (#2805)
* refactor: 💡 update code tag to use Hds::Text::Code

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16961

* refactor: 💡 remove explicit code tag attribute

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16961

* refactor: 💡 fix extra white space

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16961

* refactor: 💡 remove color from p span style for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16961
2025-05-01 11:59:10 -05:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] 6be8130329 Result of tsccr-helper -log-level=info gha update -latest .github/ (#2809)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2025-05-01 09:15:31 +02:00
Lisbet Alvarez ca3972c04f fix: 🐛 polyfillUUID config for ember-data (#2808) 2025-04-30 16:54:59 -07:00
Lisbet Alvarez 4d98729cde chore: 🤖 update changelog and cli version (#2801)
* chore: 🤖 update changelog and cli version
2025-04-30 11:55:56 -07:00
Priya Patel 185af6f00e refactor: 💡 remove card component from desktop (#2798) 2025-04-29 17:28:59 -06:00
Lisbet Alvarez c5353d6e5e Icu 16547 upgrade ember desktop UI (#2796)
* v4.12.2...v5.12.0

* chore: 🤖 yarn.lock file changes

* chore: 🤖 ember init blueprint updates

* chore: 🤖 yarn.lock changes

* style: 💄 run linter and formatter

* chore: 🤖 yarn.lock file changes

* chore: 🤖 remove ember-cli-app-version

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16547
2025-04-29 15:32:50 -07:00
Lisbet Alvarez 20a05dc96a style: 💄 fix formatting for long credential names & description (#2804)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16869
2025-04-29 12:17:14 -07:00
Cameron Perera 30028b5ba0 refactor: 💡 convert p tags to Hds::Text component (#2800)
* refactor: 💡 convert p tags to Hds::Text component

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16865

* style: 💄 remove comment

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16865
2025-04-29 12:26:20 -05:00
Priya Patel 3bafb708ea refactor: 💡 update Rose::Frame to use Hds::Card::Container (#2795) 2025-04-29 09:15:17 -07:00
Cameron Perera 24d86a230a refactor: 💡 use Hds::Text::Code in place of pre tag (#2802)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16956
2025-04-29 09:24:24 -05:00
Lisbet Alvarez 620f822504 Icu 16546 upgrade ember for admin UI (#2793)
* v4.12.2...v5.12.0

* chore: 🤖 yarn.lock changes

* chore: 🤖 ember init blueprint changes

* chore: 🤖 yarn.lock file changes

* style: 💄 run linter and formatter

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16546
2025-04-25 14:39:59 -07:00
Priya Patel 93a57f26ee Replace Rose::Icon with HDS::Icon (#2762)
* refactor: 💡 rose icons with hds icons

* fix: 🐛 remove child selector for h2

* fix: 🐛 removed unwanted changes

* fix: 🐛 remove unncessary change

* refactor: 💡 rose icon for rose components

* fix: 🐛 default size for doc-link, updated tests, removed TODO

* fix: 🐛 update doc-link test
2025-04-25 13:18:23 -07:00
Cameron Perera 40ec4493ea fix: 🐛 credential library serializer for SSH certificate (#2790)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16880
2025-04-25 10:23:51 -05:00
hashicc de83d59bde Add additional indexeddb-handler tests (#2786) 2025-04-24 11:05:44 -04:00
Lisbet Alvarez a937c5e8de style: 💄 remove table borders from list-wrapper component (#2787) 2025-04-22 18:11:49 -07:00
Priya Patel b820bb19d7 Refactor: Hosts-sets test - delete, read and create (#2778)
* refactor: 💡 hosts-sets test refactor - delete,read,create

* fix: 🐛 updated test selectors
2025-04-22 14:16:15 -07:00
Lauren 36db2d3f1d Replace Rose::Button with Hds::Button (#2771)
* refactor btn

* refactor scope/workers/index.hbs

* refactor add-members, add-principals

* refactor btns, fix tests

* update json-secret-skeleton btn

* remove class from app.scss
2025-04-22 16:25:12 -04:00
Cameron Perera 5786b86521 refactor: 💡 update text span elements with Hds::Text::Body (#2779)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16864
2025-04-22 11:54:00 -05:00
Priya Patel c6a5f93b44 Replace Rose::Dialog::Cover with HDS::ApplicationState (#2770)
* refactor: 💡 rose dialog cover with hds application state

* fix: 🐛 i18n key

* fix: 🐛 addressed comments

* fix: 🐛 CSP issue for svg

* docs: ✏️ added CSP issue context
2025-04-18 12:42:18 -07:00
Carlos Alcaide Corvo 8814e2eacb Ember upgrade for addons/core (#2777) 2025-04-17 13:59:14 -07:00
Lisbet Alvarez 9b1e4a8291 Icu 16541 upgrade ember addons auth (#2776)
* v4.12.2...v5.12.0

* chore: 🤖 yarn.lock file changes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16541

* chore: 🤖 run ember init to use updated blueprints as ref

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16541

* chore: 🤖 undo node change

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16541

* style: 💄 fix lint error

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16541

* fix: 🐛 undo deleted gitkeep file

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16541

* refactor: 💡 use workspace protocol for addons

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16541

* chore: 🤖 undo removal of stylistic

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16541
2025-04-17 11:36:46 -07:00
Priya Patel 01c2468f86 Refactor: Replace Rose::Dialog with HDS::Modal for desktop client (#2766)
* refactor: 💡 rose dialog to hds modal

* fix: 🐛 dark theme hds overlay

* fix: 🐛 dark mode hds modal shadow

* fix: 🐛 move dark mode modal override to a mixin

* fix: 🐛 update exists to isVisible
2025-04-17 10:57:45 -07:00
Cameron Perera af705718ff Reveal & Toolbar::Info Component cleanup (#2782)
* refactor: 💡 remove desktop Reveal component

* refactor: 💡 remove Toolbar::Info component
2025-04-17 10:11:14 -05:00
Carlos Alcaide Corvo e22ef12529 Chore icu 16553 deprecate a like array (#2767) 2025-04-15 09:29:01 -07:00
Carlos Alcaide Corvo 62510d9243 Chore icu 16553 deprecate a like array (#2767) 2025-04-15 09:13:55 -07:00
Carlos Alcaide Corvo 0fd25a6bb4 Delete electron-squirrel-startup from electron-app (#2774) 2025-04-15 08:22:35 -07:00
Cameron Perera a268a7b75e refactor: 💡 update all header tags to use HDS::Text::Display (#2765)
* refactor: 💡 update all header tags to use HDS::Text::Display

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16863

* refactor: 💡 update minor css changes for page header

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16863

* refactor: 💡 remove duplicate title and lint hbs files

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16863
2025-04-14 21:05:37 -05:00
3dded0a7bc Llb/side nav refactor (#2763)
* feat: 🎸 scope picker component (#2646)

* feat: 🎸 scope picker component
---------

Co-authored-by: lisbet-alvarez <lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* refactor: 💡 use hds side nav w/ hds frame instead of rose (#2688)

* refactor: 💡 use hds side nav w/ hds frame instead of rose

* test: 💍 clean up selectors

* fix: 🐛 specificity of style override

* refactor: 💡 use hds side nav list instead of target and portal

* refactor: 💡 revert to using portal component & update scss

* docs: ✏️ update comment

* refactor: 💡 use custom class names for containers

* refactor: 💡 pr feedback (use @hasSidebar arg)

* refactor: 💡 fix onboarding page & fix settings title

* refactor: 💡 remove unneeded template file (pr feedback)

* test: 💍 fix tests due to merge conflicts

* test: 💍 add missing test selector due to merge conflict

* test: 💍 fix more broken tests due to merge conflicts

* chore: 🤖 update yarn.lock & update hds version to 4.18.1

* chore: 🤖 fix e2e test cases due to side nav refactor (#2751)

* chore: 🤖 fix e2e test cases due to side nav refactor

* test: 💍 fix e2e test for desktop

---------

Co-authored-by: lisbet-alvarez <lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-04-14 14:27:02 -07:00
Lauren ab3140be0a refactor: 💅 Aliases: update-test (#2760)
* refactor aliases update-test

* refactor test

* address feedback
2025-04-14 12:09:22 -04:00
Sohail 0fcd58c080 feat: Conditionally display 'Check for Updates' menu item based on CLI type (#2754) 2025-04-10 07:58:23 -07:00
Carlos Alcaide Corvo 52f0d9f9e8 Update browserslist db (#2768) 2025-04-10 07:43:24 -07:00
hashicc 6585fa8e41 Add tests for indexed db handler (#2759) 2025-04-09 14:52:02 -04:00
Carlos Alcaide Corvo bef9b3b276 Refactor test selectors for credential-store/credentials create test (#2756) 2025-04-08 15:40:08 -07:00
Dharini Jeeva af411b854a chore: 🤖 include ipv6 support in mocks (#2764)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16862
2025-04-04 16:01:47 -07:00
Cameron Perera a697dba5b9 chore: 🤖 add test selectors to roles org-scope tests (#2761) 2025-04-04 13:33:41 -05:00
Carlos Alcaide Corvo 1203081ec7 Chore icu 15394 upgrade electron (#2753)
* Upgrade electron v35
2025-04-04 09:03:19 -07:00
Zhihe Li 2db63ae2f8 feat: 🎸 Populate subject for OIDC account name displays (#2757)
OIDC accounts are guaranteed to have a subject claim which we should
display. Currently we only look at email and full_name which
are all optional for OIDC claims. Also added deep links for accounts.

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16634
2025-04-03 13:33:08 -04:00
Lisbet AlvarezandCarlos Alcaide Corvo 9dd1617b57 chore: 🤖 upgrade ember-data to v5.3.11 (#2745)
* chore: 🤖 upgrade ember-data to v5.3.11

* Add missing copyright headers

* refactor: 💡 remove comment

* chore: 🤖 update yarn.lock due to merge conflict

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* fix: 🐛 undo ember-source upgrade (should be upgraded w/ ember)

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* chore: 🤖 move dep to devDeps & resolve test-helper version

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* fix: 🐛 unique record id error bug fix using store.push

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* refactor: 💡 cleanup

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* Delete old deprecation initializer (#2748)

* refactor: 💡 import from'ember-data/store'

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* refactor: 💡 clean up comments

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* refactor: 💡 remove compatWith comment

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

---------

Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
2025-04-03 09:32:44 -07:00
Zhihe Li 834058ff45 refactor: 💡 Batch writes to indexedDB (#2752)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16795
2025-04-01 14:04:31 -04:00
Cameron Perera 0f41a0a576 chore: 🤖 add test selectors to roles grants tests (#2749)
* chore: 🤖 add test selectors to roles list tests

* chore: 🤖 add test selectors for roles global-scope tests

* chore: 🤖 add TABLE_RESOURCE_LINK to global-scope tests

* test: 💍 change exists to isVisible

* chore: 🤖 add test selectors to roles grants tests

* refactor: 💡 create custom selector for grants tests

* refactor: 💡 use new FORM selector
2025-03-31 16:24:40 -05:00
Zhihe Li 1025cbfb87 refactor: 💡 Force requests in playwright to use controller addr (#2755) 2025-03-28 19:42:35 -04:00
Priya Patel ca3c1c7623 Refactor: Scopes tests (#2744)
* refactor: 💡 scopes test

* fix: 🐛 addressed comments

* fix: 🐛 replace exists with isVisible, use hasText

* fix: 🐛 move form to commonSelectors
2025-03-28 15:00:59 -07:00
Dharini Jeeva 69d127a89e chore: 🤖 remove rose::nav::breadcrumbs (#2750)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16790
2025-03-28 11:27:43 -07:00
Cameron Perera b4d9cd5bb7 Icu 16409 roles list & global-scope (#2747)
* chore: 🤖 add test selectors to roles list tests

* chore: 🤖 add test selectors for roles global-scope tests

* chore: 🤖 add TABLE_RESOURCE_LINK to global-scope tests

* test: 💍 change exists to isVisible
2025-03-28 13:11:33 -05:00
Carlos Alcaide Corvo 4b1327db24 Upgrade ember-electron from 4.2.2 to 6.0.0 (#2740)
* Upgrade to ember-electron 6
2025-03-27 09:08:12 -07:00
Priya Patel 2f2ceed24e Refactor: Workers test - Create-tags, list and tags (#2742)
* refactor: 💡 workers test - create-tags,list,tags

* fix: 🐛 addressed comment
2025-03-25 15:03:13 -07:00
Zhihe Li de0f20809d chore: 🤖 Fix git-cz usage for auto populating issues in hook (#2746)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16777
2025-03-25 13:23:31 -04:00
Dharini Jeeva b1f5857cac refactor: 💡 use test selector in host-catalog/list (#2743) 2025-03-24 14:50:09 -07:00
Cameron Perera ddbd1ca163 Icu 16406 roles read, update, delete (#2741)
* chore: 🤖 add test selectors to roles read tests

* chore: 🤖 add test selectors to roles update tests

* refactor: 💡 small test clean up

* chore: 🤖 add test selectors to roles delete tests
2025-03-21 15:34:17 -05:00
Carlos Alcaide Corvo 777e40fff8 Upgrade electron forge from 7.5.0 to 7.7.0 (#2739) 2025-03-21 11:27:04 -07:00
Priya Patel 68460331f5 Refactor: Worker tests - create, read, update and delete (#2737)
* refactor: 💡 workers test - create,delete,read,update

* fix: 🐛 address comments
2025-03-20 14:02:13 -07:00
Cameron Perera 32e9fe8b6a chore: 🤖 use test selectors for roles create tests (#2738) 2025-03-20 14:08:33 -05:00
Priya Patel b3a2460b3f Refactor: Policy tests - list and delete (#2736)
* fix: 🐛 policy test refactor - list, delete

* fix: 🐛 chain assertions

* fix: 🐛 fixed failing test
2025-03-18 15:03:53 -07:00
Dharini Jeeva 3260bf1b2a refactor: 💡 use test selector in host-catalog read, delete and update (#2734) 2025-03-18 12:06:39 -07:00
Priya Patel e69c6456d1 Refactor: Policy tests - create, read and update (#2732)
* refactor: 💡 policy tests: create, read and update

* fix: 🐛 use commonselector for table link
2025-03-18 10:47:46 -07:00
Zhihe Li f8b3792e62 Fix Searchbar debouncing in admin UI (#2735)
Applied ember-concurrency task usage to admin UI model hooks to help fix the debouncing issue.
2025-03-18 11:20:50 -04:00
Cameron Perera 01c34c0a79 Small test selector updates (#2733)
* refactor: 💡 update sidebar nav selector name

* refactor: 💡 move generic selector to common selector file
2025-03-17 11:07:21 -05:00
Priya Patel 825751239f Refactor: 💡 User acceptance tests: list, update and accounts (#2726)
* refactor: 💡 users selector tests: list, update and accounts

* fix: 🐛 follow AAA pattern

* refactor: 💡 updated common selectors
2025-03-14 16:04:56 -07:00
Dharini Jeeva 2465739060 Icu 15486 host catalogs create test (#2729) 2025-03-14 09:42:29 -07:00
Zhihe Li e6834d2033 chore: 🤖 Add chrome for self hosted runners when running tests (#2731) 2025-03-14 12:10:44 -04:00
Cameron Perera 924100df4c chore: 🤖 update session list tests with selectors (#2727)
* chore: 🤖 update session list tests with selectors

* chore: 🤖 add TABLE_ROW selector to session list
2025-03-14 10:32:44 -05:00
Zhihe Li 1ac7d1e08b feat: 🎸 Use repo vars to determine the runner size (#2724) 2025-03-14 11:15:53 -04:00
Zhihe Li 7becccd628 fix: 🐛 Fix search field race condition in DC targets (#2723)
* fix: 🐛 Fix search field race condition in DC targets
* feat: 🎸 Keep track of last search to know when to debounce

✅ Closes: ICU-14775
2025-03-13 18:50:33 -04:00
Dharini Jeeva dff5cac4fe refactor: 💡 worker filter feature flags (#2720) 2025-03-13 15:12:36 -07:00
Lisbet Alvarez ecd0c1de20 Icu 16535 refactor usage of did insert modifiers (#2722)
* refactor: 💡 remove ember-render-modifiers {{did-insert}} usage
2025-03-13 12:58:39 -07:00
Dharini Jeeva 878cb17b62 refactor: 💡 use test selector in groups/members route (#2719) 2025-03-13 09:51:37 -07:00
Carlos Alcaide Corvo 706981c231 Refactor test selectors within auth-methods oidc test (#2717)
* Refactor test selectors within auth-methods oidc test
2025-03-13 08:39:11 -07:00
Priya Patel d212cf7c40 Refactor: 💡 User acceptance tests - create, delete and read (#2718)
* refactor: 💡 user - create, delete and read tests

* fix: 🐛 removed 'this' usage, updated user create test
2025-03-12 16:49:38 -07:00
Carlos Alcaide Corvo 19b6e5154f Fix locationType deprecations. (#2721)
* Deprecated usage of locationType auto to history. Define locationType before setting configuration
2025-03-12 16:16:33 -07:00
Lisbet Alvarez 89263918ea Icu 16534 refactor usage of tracked using this args (#2711)
* refactor: 💡 remove tracked usage with this.args
2025-03-12 10:09:16 -07:00
Carlos Alcaide Corvo e8fc6d163b Deprecate import inject from @ember/service (#2716)
* Deprecate usage of import inject
2025-03-12 08:29:54 -07:00
Priya Patel 34a670f8d7 Refactor: Onboarding tests selectors refactor (#2715)
* refactor: 💡 Onboarding tests

Refactor test selectors for onboarding acceptance tests

✅ Closes: #ICU-16398, #ICU-16399

* fix: 🐛 failing test

* chore: 🤖 add copyright header

* fix: 🐛 use AAA pattern and server.schema

* fix: 🐛 moved done button to selectors

* fix: 🐛 renamed copy text btn selector
2025-03-11 14:53:32 -07:00
hashicc 6a46e2dd57 chore: 🤖 add chrome flags to keep from backgrounding (#2714)
There was an issue in tests where events fired in
Hds::FlyOut and Hds::Modal were not being dispatched.
These close events were depended on by test waiters
to know when the element was removed. In recent
versions of chrome, when ran headless and on macos,
these events were not firing. This meant the tests
waited indefinitely on developers local machines,
until the tests timed out. This issue was seen
across multiple macbooks and even on the hds repo.

This issue was *only* experienced in headless
chrome on recent macos.
It was **not** happening in:
* macos chrome headed locally
* linux chrome headless in CI

This made the issue only impact people running tests
locally, getting obscure timeouts. This issue is fixed
by the addition of this flag:
--disable-backgrounding-occluded-windows

The other flags added in this commit are not required
for the fix but should help keep a browser "active",
which was loosely what researching this bug hinted at
the cause of finding the issue fix.
2025-03-11 13:29:19 -04:00
Dharini Jeeva 5e0fa7c744 test: 💍 use test selectors for groups (#2713)
* test: 💍 use test selectors for groups
2025-03-10 13:32:32 -07:00
Zhihe LiandMichael Li 474ce17a13 Initial E2E DC setup (#2710)
* Initial setup

* refactor: 💡 Update dependency job

* refactor: 💡 Use boundary ent

* chore: 🤖 Cleanup workflow

* refactor: 💡 Adjust run condition

---------

Co-authored-by: Michael Li <michael.li@hashicorp.com>
2025-03-10 15:36:21 -04:00
Cameron Perera f00eed8633 test: 💍 fix false positive test (#2712) 2025-03-10 13:35:13 -05:00
Cameron Perera 42bcefa068 Icu 16393 managed groups read (#2709)
* chore: 🤖 update managed-groups read test selectors

* chore: 🤖 add test selectors to managed-groups delete

* chore: 🤖 use test selectors in managed-groups list tests

* chore: 🤖 refactor managed-groups members tests

* refactor: 💡 update selector name for DELETE action
2025-03-06 14:42:45 -06:00
Lisbet AlvarezandZhihe Li 29bde998ed refactor: 💡 remove usage of ember/runloop & ember-pollster (#2705)
* refactor: 💡 remove usage of ember/runloop & ember-pollster

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-03-06 12:20:48 -08:00
Michael LiandDharini Jeeva e29a83ec25 test(e2e): Enable Admin UI e2e tests to run against a local branch (#2700)
* test(e2e): decouple url used for browser vs cli

* test(e2e): Add instructions for using the UI of a local branch

* CR

* Fix typo in e2e-tests/README.md

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>

---------

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2025-03-05 11:38:12 -05:00
Zhihe Li ddfcbde7d4 chore: 🤖 audit security alerts (#2707)
* chore: 🤖 Update solid-js to resolve security alert

* chore: 🤖 Update path-to-regexp package for security alert

* chore: 🤖 Update nanoid to resolve security alert
2025-03-05 11:16:45 -05:00
Cameron Perera 42e31d3ece Icu 16392 managed groups create (#2704)
* chore: 🤖 update manage-gropus tests to ues selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16392

* refactor: 💡 small clean up
2025-03-04 15:09:08 -06:00
Michael Li cd8480bc67 test(e2e): Add check for credential store worker filters (#2696) 2025-03-04 14:43:01 -05:00
Carlos Alcaide Corvo 06dc05be08 Update CLI version to 0.19.1 and update changelog (#2706) 2025-03-04 11:09:19 -08:00
Zhihe Li d3fda81af3 fix: 🐛 Fix race condition in browser window loading (#2701) 2025-03-04 11:50:19 -05:00
Carlos Alcaide Corvo f58d345b63 Refactor unnecessary curly parenthese (#2699)
* Refactor unnecessary curly parentheses
2025-03-03 09:42:38 -08:00
Cameron Perera f35382a4e0 refactor: 💡 update adapter when transforming filter error (#2702)
* refactor: 💡 update adapter when transforming filter error

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* style: 💄 add comment about adapter changes for translated field

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* style: 💄 move comment to adapter

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* style: 💄 update old comment about model fragments

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* refactor: 💡 use extractErrors in serializers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580
2025-03-03 09:58:45 -06:00
Dharini Jeeva 8087430dd2 chore: upgrade to yarn 4 (#2697) 2025-02-28 14:19:35 -08:00
Zhihe Li 2a5f1f3668 fix: 🐛 Fix development build for desktop client (#2703) 2025-02-28 10:10:40 -05:00
Carlos Alcaide Corvo a889cb30e0 Upgrade electron-forge to 7.5.0 (#2526)
* Upgrade electron-forge to 7.5.0. Delete lodash path for electron-app, its not need anymore
2025-02-26 17:59:35 -08:00
dependabot[bot]andLisbet Alvarez e411c0ab7b chore(deps): bump solid-js from 1.7.6 to 1.9.5 (#2698)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.7.6 to 1.9.5.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/compare/v1.7.6...v1.9.5)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2025-02-26 17:10:08 -08:00
Lauren a136371c1f refactor: 💅 Aliases: create-test (#2685)
* refactor: 💡 Create aliases test suite

Refactor test suite for creating aliases

✅ Closes: ICU-15454

* use FIELD_TEXT_ERROR selector

* revert SAVE_BTN

* revert auth-method changes

* revert scopes changes

* revert scopes changes

* revert targets changes

* add FIELD prefix to const

* remove selector suffix

* revert read-test

* remove FIELD_TEXT_ERROR

* add data-test att to component

* fix merge conflict
2025-02-25 14:17:45 -05:00
Lauren 83fa213854 refactor: 💅 Aliases: read-test (#2691)
* refactor: 💡 Read aliases test suite

Refactor tests for read aliases test suite

✅ Closes: ICU-15455

* replace with alert toast body, replace with this.server.schema

* revert change

* revert oidc test

* revert roles, create-test

* add const to commonSelectors file, revert selectors file

* rename selector

* use TABLE_RESOURCE_LINK common selector

* fix test failure
2025-02-25 13:16:41 -05:00
Cameron Perera 750cc1ecae feat: 🎸 add logging to notifyError decorator (#2694)
* feat: 🎸 add logging to notifyError decorator

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16334

* refactor: 💡 update reference to global electronLog

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16334

* refactor: 💡 update __electronLog global references

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16334

* refactor: 💡 add log to other cluster URL actions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16334

* refactor: 💡 update how we trigger electron log in notifyError

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16334

* refactor: 💡 minor log change

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16334
2025-02-21 10:01:48 -06:00
Cameron Perera e25a854d24 docs: ✏️ update bug report template (#2695)
* docs: ✏️ update bug report template

* docs: ✏️ update debug log info

* docs: ✏️ small comment changes

* docs: ✏️ add arch and os version examples

* docs: ✏️ change App Version to Desktop Client Version

* docs: ✏️ small change

* docs: ✏️ another small change to bug template
2025-02-20 09:20:31 -06:00
Zhihe Li 3b32195271 feat: 🎸 Use OCR for E2E tests when comparing terminal (#2639)
* feat: 🎸 add OCR to interpret terminal
2025-02-19 13:21:33 -05:00
Michael Li f9411794c4 test(e2e): Remove attempt to delete session recording due to UI change (#2687)
This test attempted to delete a session recording when the policy did not allow it. However, there was a UI change to remove that option entirely, so we are removing the check.
2025-02-14 11:10:53 -05:00
hashicc c5fdbfd62d chore: fix eslint-related issues (#2690)
* chore: 🤖 add .eslintignore for e2e-tests directory

* chore: 🤖 add auto-fixable eslint changes

* chore: 🤖 make js tasks more explicit to avoid race conditions

avoid having js files be in two separate concurrent branches where tasks
could result in race-condition writes

* chore: 🤖 expand .eslintignore to include more generated dirs

* chore: 🤖 fix additional lint-staged tasks

Fix additional lint-staged tasks that could result in race conditions
2025-02-13 17:09:10 -05:00
Lauren f12ae90aba refactor: 💅 Use common selector ALERT_TOAST_BODY across test suite (#2692)
* replace with alert toast body, replace with this.server.schema

* revert changes to db,schema

* use common selector, alert toast body

* replace ERROR_MSG_SELECTOR with common selector ALERT_TOAST_BODY
2025-02-13 15:54:40 -05:00
Zhihe Li 20c4bbcee2 feat: 🎸 Add migration check to delete index DB when updating (#2241)
* feat: 🎸 Add migration check to delete index DB when updating

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13223
2025-02-13 11:00:19 -05:00
Michael Li f3232f34c2 test(e2e): Use new tags syntax (#2686)
* test(e2e): Use new tag syntax

* chore: Update yarn lock
2025-02-12 17:24:51 -05:00
hashiccandMichael Li 8fedb23399 update e2e docs with supported enos scenarios (#2678)
* docs: ✏️ update e2e docs with supported enos scenarios

* Update grammatical typo in e2e-tests/README.md

Co-authored-by: Michael Li <michael.li@hashicorp.com>

---------

Co-authored-by: Michael Li <michael.li@hashicorp.com>
2025-02-12 17:08:48 -05:00
hashicc 4ca519ce62 chore: add eslint-plugin-playwright rules for e2e tests and fix errors (#2680)
* chore: 🤖 add eslint-plugin-playwright

* chore: 🤖 add recommended eslint rules for playwright to config

* test: 💍 remove describe blocks with async functions

* fix errors related to playwright/valid-describe-callback rule

* test: 💍 fix all auto-fixable playwright rules tests
2025-02-12 12:39:16 -05:00
hashicc 6d4768272a test: 💍 update e2e tests with afterEach cleanup (#2677) 2025-02-12 10:16:44 -05:00
Lauren e8cc22879f [ICU-15403] Trim whitespace on storage buckets and host sets json attrs serializers (#2636)
* trim whitespace on json attrs in storage bucket serializer

* add test for storage bucket serializer

* move trimWhitespace check to application level

* add trimWhitespace to preferred_endpoints attr

* add conditional for string arr

* trim whitespace on str arr

* add check for null val

* refactor, move logic

* relocate comment

* add unit test for application serializer
2025-02-11 18:31:01 -05:00
Zhihe Li b287683a61 chore: 🤖 Upgrade cross-spawn versions to resolve security alert (#2684) 2025-02-11 17:41:47 -05:00
dependabot[bot] ea43ee99d6 chore(deps): bump serialize-javascript from 6.0.1 to 6.0.2 (#2683)
Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/yahoo/serialize-javascript/releases)
- [Commits](https://github.com/yahoo/serialize-javascript/compare/v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: serialize-javascript
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-11 12:01:20 -05:00
Carlos Alcaide Corvo 48db68e7ac Upgrade node engines to work with node 20 and 22 (#2486)
* Upgrade node engines to work with node 20 and 22
2025-02-10 17:37:04 -08:00
Cameron Perera 7807b7a280 Icu 15471 credential store tests (#2663)
* test: 💍 update cred store read tests to use selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15471

* test: 💍 update cred store update to use selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15471

* test: 💍 update cred store delete to use selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15471

* test: 💍 update cred store list to use selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15471

* chore: 🤖 remove refactored selector

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15471
2025-02-10 17:41:37 -06:00
Cameron Perera ad0e223742 chore: 🤖 update desktop release date in CHANGELOG (#2682) 2025-02-07 16:56:17 -06:00
Lisbet Alvarez c9a74f2800 fix: 🐛 reapply storage policy errors out after a failed delete (#2674)
* fix: 🐛 reapply storage policy errors out after a failed delete

* refactor: 💡 hide delete button when policy is retain forever

* refactor: 💡 pr feedback (move check to model)
2025-02-04 14:09:10 -08:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] 570ed61edb Result of tsccr-helper -log-level=info gha update -latest .github/ (#2675)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2025-02-04 13:55:48 -08:00
Dharini Jeeva 835b302c19 chore: add more test cases to credential display e2e test (#2673)
* chore: 🤖 add more test cases
2025-01-31 14:47:03 -08:00
Carlos Alcaide Corvo a0fad9874a Refactor auth-method delete test selectors (#2671) 2025-01-31 08:27:06 -08:00
Cameron Perera cb895024e0 fix: 🐛 update hidden secrets and flatten-nested-object logic (#2672) 2025-01-30 18:00:26 -06:00
Cameron Perera 2e94ebdb64 chore: 🤖 update cli version and CHANGELOG (#2670)
* chore: 🤖 update cli version and CHANGELOG

* chore: 🤖 fix dc release date in CHANGELOG
2025-01-29 12:06:27 -06:00
Cameron Perera ae1e6d2748 feat: 🎸 add showFilterGenerator to WorkerFilterGenerator comp (#2669)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16282
2025-01-28 16:24:38 -08:00
Laurenandcameronperera c72d4f35a0 Vault cred store filter create (#2668)
* refactor: 💡 add worker filter back to create form

✅ Closes: ICU-16281

* add helper text to worker filter generator at creation state

* set isOptional to true

* set isOptional to true

---------

Co-authored-by: cameronperera <cameron.perera@hashicorp.com>
2025-01-28 16:46:11 -05:00
Michael Li 9742d824c4 test(e2e/desktop): Address failures in session tests (#2664)
* test(e2e): Address failures in session tests

* CR
2025-01-28 11:04:46 -05:00
Lisbet Alvarez 639aa47e19 refactor: 💡 Update text for fields in AWS & GCP host catalogs (#2667) 2025-01-27 15:36:30 -08:00
Michael Li 5fa0d11aa9 test(e2e/admin): Updates for 0.19.0 (#2665)
* test(e2e): Update "Inactive" locators

* test(e2e): Update worker filter locators

* test(e2e): Address flake

Ensure that the test has reached the org page before trying to click the Auth Methods link (there is an auth method link on both the global page and the org page).
2025-01-27 10:01:44 -05:00
Dharini Jeeva fed32aa57b chore: 🤖 add doc links for GCP plugin (#2666) 2025-01-24 12:45:56 -08:00
Carlos Alcaide Corvo 1e2134bd7e Refactor auth methods red test selectors (#2656)
* Refactor auth-methods list acceptance test selectors
2025-01-24 12:11:19 -08:00
Dharini Jeeva 064375d457 test: 💍 add e2e tests for credentials display in desktop (#2660)
* test: 💍 add e2e tests for credentials display in desktop
2025-01-23 14:30:54 -08:00
Dharini Jeeva deff38de56 fix: 🐛 include GCP plugin text (#2662)
* fix: 🐛 include GCP plugin text
2025-01-23 13:34:33 -08:00
Carlos Alcaide Corvo 15950d3a09 fix: 🐛 Fix HDS deprecation message (#2661)
Fix HDS deprecation message for HDS Dropdown interactive component using
@text rather than yielding it.
2025-01-23 08:15:12 -08:00
Carlos Alcaide Corvo c4539b8e30 Refactor auth-methods list acceptance test selectors (#2654)
Refactor auth-methods list acceptance test selectors
2025-01-22 14:32:16 -08:00
Carlos Alcaide Corvo 904864b14e Test icu 15459 auth method create test selectors refactor (#2653)
Refactor selectors
2025-01-20 09:45:15 -08:00
Zhihe Li 390d179917 feat: 🎸 Added GCP host sets and hosts (#2655)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15994
2025-01-10 14:18:48 -08:00
Dharini Jeeva 3b6a421af2 chore: Updates to gcp hc form (#2649)
* chore: 🤖 add worker_filter field, updates to helper text
2025-01-10 14:18:48 -08:00
Dharini Jeeva cc8d4fe952 test: GCP plugin acceptance tests (#2648) 2025-01-10 14:18:48 -08:00
Dharini Jeeva dfa62dd04b chore: 🤖 gcp plugin creation in the UI (#2645)
gcp plugin creation and mirage changes
2025-01-10 14:18:48 -08:00
Dharini Jeeva 520020f2c6 Chore: refactor host catalog model and serializer to accommodate GCP plugin (#2627)
* chore: 🤖 GCP plugin support
2025-01-10 14:18:48 -08:00
hashiccandhashicc 31f1ed8dd4 test(e2e): add e2e test for scope chooser with filtered targets (#2644)
* test(e2e): add e2e test for scope chooser with filtered targets

Closes: https://hashicorp.atlassian.net/browse/ICU-16121

* Add missing copyright headers

* chore(e2e): use prettier on scope.spec.js

* refactor(e2e): use explicit checks for scope in summary

* refactor(e2e): move test hooks and associated variables to top-level

Move beforeEach and afterEach and the associated variables setup in
hooks to top-level within scope.spec.js. This matches the patterns
used in other tests.

* refactor(e2e): use simpler scoped locator for summary element within header-nav

---------

Co-authored-by: hashicc <hashicc@users.noreply.github.com>
2025-01-10 17:00:49 -05:00
Cameron Perera 5abd4f1f4f Icu 15470 credential store create test (#2650)
* refactor: 💡 clean up urls in create test file

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15470

* test: 💍 update cred store create to use selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15470
2025-01-10 09:57:32 -06:00
Lisbet Alvarez 862ce645cf fix: 🐛 hds dialog text wrong color when system mode is dark (#2651) 2025-01-09 15:30:06 -08:00
Lisbet Alvarez 9eccbb91db refactor: 💡 Update name radio option label & set toggle default to on (#2652)
* refactor: 💡 Update name radio option label & default toggle on
2025-01-09 15:18:17 -08:00
Carlos Alcaide Corvo 343e1d2193 test: 💍 Refactor host list test selectors (#2629)
* test: 💍 Refactor host list test selectors
2025-01-08 09:14:29 -08:00
Zhihe Li 9a11925216 docs: ✏️ Update readme docs for e2e tests (#2647) 2025-01-07 17:28:28 -05:00
Lisbet Alvarez f7f1041daa fix: 🐛 oidc retry not working for secure links in desktop ui (#2641)
* fix: 🐛 oidc retry not working for secure links in desktop ui
2025-01-07 10:56:32 -08:00
Michael Li 1cbf3b227e test(e2e): Add additional assertions to UI tests (#2634)
* test(e2e): Address deprecation

* test(e2e): Add additional connection assertions on tests

* CR: Fix flake when waiting for sessions

If no sessions are available and the page needs to reload, we should wait to ensure that the page has loaded before checking what the state of the sessions are

* CR: Address flake in connect methods

Noticed an issue where a session recording was not playable. The theory is that the session didn't last long enough before it was cancelled. This adds a 2 second wait after establishing a connection before continuing.

* CR: Use authenticated state by default

* CR: Update dynamic host catalog assertion

* CR: Simplify host set checks

- Use .all() when looping
- Add check to see if we need to reload the page or not

* CR: Be more specific with locator

Ran into a conflict with the Static/Dynamic host catalog type and the Static/Dynamic credential type.

* CR: Update connection methods to be more resilient

Rather than using a hardcoded sleep, we will now run a command on the target and wait for a specific string to return before continuing.

* CR
2025-01-06 11:40:32 -05:00
Lisbet Alvarez faf4ecfac6 Fix memory leak issue when using fetch in oidc authentication (#2640)
* test: 💍 test 1

* chore: 🤖 remove waitForPromise use

* chore: 🤖 remove all other waitforpromise usage

* test: 💍 turn down polling

* test: 💍 use .json

* refactor: 💡 add waitForPromise back in & consume response body

* test: 💍 some testing

* test: 💍 more testing

* refactor: 💡 clean-up a bit

* refactor: 💡 use head method request & clean up comments

* refactor: 💡 use get method & consume response body

* test: 💍 fix token validation test cases
2025-01-03 14:06:27 -08:00
Michael Li ca4aad0a2b test(e2e): Add Admin UI test for OIDC auth method (#2638)
* test(e2e): Add managed group check in LDAP test

* test(e2e): Add oidc test

* CR: Suppress warning

* CR: Use toHaveText
2025-01-03 14:19:33 -05:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] ed569306bb Result of tsccr-helper -log-level=info gha update -latest .github/ (#2642)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2025-01-02 09:41:32 -08:00
Lisbet Alvarez 65abd7a4e3 fix: 🐛 code block error in console when value is empty on save (#2637) 2024-12-20 14:03:35 -08:00
Lauren 422cff4547 [ICU-15647] Replace Rose::Dialog with Hds::Modal in admin ui only (#2623)
* sort list

* refactor: 💡 Replace Rose::Dialog with Hds::Modal

✅ Closes: ICU-15647

* refactor targets-host-sources-test

* refactor update-test

* update test selectors

* refactor delete test

* refactor org scope test

* refactor delete scope and auth-method tests

* refactor update host catalogs tests

* refactor credential-stores credential update tests

* refactor credential-stores credentials delete tests

* refactor scopes update tests

* refactor storage buckets delete test

* refactor storage buckets delete test

* refactor credential library update test

* refactor targest workers test

* refactor workers create tags test

* refactor global scope test

* refactor users update test

* refactor host catalogs delete test

* refactor credential-store update tests

* refactor host catalogs, hosts and sets update tests

* remove unused vars

* rename selectors, remove attrs

* add @onDismiss callback
2024-12-20 14:16:43 -05:00
Lisbet Alvarez 7695135302 refactor: 💡 application state ability dependent descriptions (#2631)
* refactor: 💡 application state ability dependent descriptions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15813
2024-12-17 16:03:56 -08:00
Cameron Perera 5be4868e9a refactor: 💡 rename arialabel to aria-labelledby for key/value (#2633)
* refactor: 💡 rename arialabel to aria-labelledby for key/value

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15701

* refactor: 💡 rename ariaLabelledBy to naming conventions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15701
2024-12-17 13:58:04 -06:00
Cameron Perera fce97fd57a fix: 🐛 change disabled to readonly for form inputs (#2618)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15666
2024-12-17 13:31:47 -06:00
Michael Li af8655ec45 test(e2e): Refactor imports for boundary cli helper methods (#2632)
* test(e2e): Update imports to match boundary-http conventions

* test(e2e): Remove cli from method name
2024-12-17 10:17:32 -05:00
Cameron Perera daed714b98 test: 💍 update selectors for credential-library tests (#2630)
delete and list

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15468
2024-12-16 16:31:07 -06:00
Carlos Alcaide Corvo 584e62cff3 test: 💍 Refactor host delete test selectors (#2626)
Refactor host-catalog host delete acceptance test selectors
2024-12-13 15:57:10 -08:00
Lisbet Alvarez 6d2f1dcbbf Cleanup worker filter translations (#2621)
* refactor: 💡 clean-up worker filter translations
2024-12-12 16:06:38 -08:00
Cameron Perera 5e7b74a7ed test: 💍 use selectors in update credential-libraries (#2624)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15467
2024-12-12 12:26:52 -06:00
Dharini Jeeva 6de20b03ef chore: handle nested data from static json credentials (#2611) 2024-12-11 15:08:51 -08:00
2869020e65 Llb/worker filter improvements (#2614)
* test: 💍 clean up worker filter component tests (#2559)

* Icu 15741 add show filter generator toggle to worker filter component (#2562)

* feat: 🎸 add filter generator to worker filter component

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15741

* feat: 🎸 show add worker filter when none set for targets (#2564)

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15760

* Icu 15743 tag workflow (#2565)

* feat: 🎸 add tag generator workflow

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15743

* test: 💍 add test cases

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15743

* refactor: 💡 update selected type name to selectedGeneratorType

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15743

* Apply suggestions from code review

minor translation change

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>

* refactor: 💡 update id for generated-value

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15743

---------

Co-authored-by: Lisbet Alvarez <lisbet.alvarez@hashicorp.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>

* Icu 15744 name workflow (#2566)

* feat: 🎸 add name workflow

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15744

* test: 💍 add "name" workflow tests for filter generator

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15744

* refactor: 💡 use const test selectors for filter generator

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15744

* refactor: 💡 add default option

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15744

* docs: ✏️ fix comment

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15744

---------

Co-authored-by: cameronperera <cameron.perera@hashicorp.com>

* refactor: 💡 move worker filter generator outside of rose::form (#2574)

* refactor: 💡 move worker filter generator outside of rose::form

* [ICU-15718] Add worker filter route, template for empty state (#2576)

* feat: 🎸 Vault Credential Store Worker Filter

The Worker Filters tab will display the associated worker filter and
have an empty state for when there is no worker filter assigned.

* add template

* Add missing copyright headers

* update styling, remove Rose component

* color primary is already default, remove

* add rose component, remove custom css

* fix test

* singularize lang

---------

Co-authored-by: laurenolivia <laurenolivia@users.noreply.github.com>

* feat: 🎸 update worker filter field to use code editor (#2578)

* feat: 🎸 update worker filter field to use code editor

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15737

* test: 💍 fix failing storage bucket tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15737

* test: 💍 update tests for new worker filter field (#2580)

* test: 💍 update tests for new worker filter field

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15739

* Update ui/admin/tests/acceptance/storage-buckets/update-test.js

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>

* [ICU-15719] Create edit worker filter route and template (#2582)

* add codeblock to template

* add cancel btn fn

* add controller test

* add save fn

* display formatted worker filter text inside codeblock

* move codeblock component outside rose::layout::centered

* remove console.log

* remove router.refresh() and refactor translations yaml

* refactor translations, add breadcrumb::item

* replace html elements with hds

* move component, delete file

* [ICU-15720] Add edit worker filter action to manage dropdown (#2593)

* add acceptance test file

* delete test file

* add edit option to manage dropdown

* update route in dropdown

* add check for model isVault

* add acceptance test file

* delete test file

* remove data test selectors, fix syntax

* [ICU-15721] Remove worker filter input field (#2596)

* remove worker filter input field from vault credential store form

* revert yaml

* [ICU-15838] Add vault credential store worker filter tests (#2595)

* add data test elements

* add subtests to update-test.js

* add subtext to check for .hasText()

* add subtest when worker filter exists

* update subtest name

* remove console.log

* clean up

* add new selectors

* refactor: 💡 worker filter clean-up (#2592)

* refactor: 💡 worker filter clean-up

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15816

* refactor: 💡 add aria labels & missing can save check

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15816

* refactor: 💡 pr feedback of using uuid

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15816

* Add missing copyright headers

* refactor: 💡 use unique-id helper for aria labels (pr feedback)

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15816

---------

Co-authored-by: lisbet-alvarez <lisbet-alvarez@users.noreply.github.com>

* refactor: 💡 update icon logic for egress worker filter (#2612)

* refactor: 💡 update worker_filter help translation

* refactor: 💡 add maxHeight to worker filter code blocks

* refactor: 💡 use existing default option for dropdowns

* refactor: 💡 hide copy button when no result to copy

and remove unused styles

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <lisbet.alvarez@hashicorp.com>
Co-authored-by: Lauren <lauren.burwell@hashicorp.com>
Co-authored-by: laurenolivia <laurenolivia@users.noreply.github.com>
Co-authored-by: lisbet-alvarez <lisbet-alvarez@users.noreply.github.com>
2024-12-11 14:00:27 -06:00
Carlos Alcaide Corvo 40c8ceeca6 Change validation field from name (optional) to address (required) (#2619) 2024-12-11 08:04:45 -08:00
Lisbet Alvarez 0623d4ad47 Fix e2e test page selectors due to hds refactor (#2610)
* chore: 🤖 fix e2e broken tests due to hds refactor

* chore: 🤖 remove unneeded change & fix another selector

* chore: 🤖 upgrade playwright

* chore: 🤖 remove unneeded dependency in desktop ui
2024-12-10 16:24:25 -08:00
dependabot[bot]andZhihe Li 0b9c235dd2 chore(deps-dev): bump nanoid from 5.0.8 to 5.0.9 (#2620)
Bumps [nanoid](https://github.com/ai/nanoid) from 5.0.8 to 5.0.9.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/5.0.8...5.0.9)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-12-10 16:53:38 -05:00
Zhihe Li e16b4e68c8 Icu 14778 add more sessions tests (#2615)
* test: 💍 Add desktop sessions tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14778

* chore: 🤖 Add support for dotenv and stop using relative paths

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14778

* refactor: 💡 Force usage of node 20

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14778
2024-12-10 16:11:12 -05:00
Cameron Perera 078e36f9b8 fix: 🐛 update @name attribute for RadioCard Groups (#2617)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15676
2024-12-10 14:12:43 -06:00
Zhihe Li 8874d0be86 docs: ✏️ Add to readme how to run admin e2e against local branch (#2616)
* docs: ✏️ Add to readme how to run admin e2e against local branch

* chore: 🤖 Add packageManager field for corepack users
2024-12-10 12:30:57 -05:00
Carlos Alcaide Corvo b59afd3455 test: 💍 Update test selectors for update host test (#2609) 2024-12-09 09:42:16 -08:00
Lauren 85a2684532 refactor: 💡 Replace rose::separator comp with hds::separator (#2613)
* refactor: 💡 Replace rose::separator comp with hds::separator

This PR replaces the rose::separator with the hds::separator and removes
an integration test that is no longer needed

✅ Closes: ICU-15646

* retire rose::separator and remove styling

* remove separator import

* remove separator.js
2024-12-06 12:54:47 -05:00
Carlos Alcaide Corvo f9a7864b07 fix: 🐛 Delete peerDeps within our addons (#2605)
* fix: 🐛 Delete peerDeps within our addons
2024-12-04 17:17:51 -08:00
Lisbet Alvarez 371301b4ba refactor: 💡 use hds::applicationstate instead of rose::message (#2577)
* refactor: 💡 use hds::applicationstate instead of rose::message

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15639
2024-12-04 14:16:05 -08:00
Zhihe Li 9c10d79661 Icu 14777 add more target tests (#2594)
* refactor: 💡 Move global setup to root
* refactor: 💡 Move env variable test fixture to global setup file
* test: 💍 Add more DC e2e tests for targets
* docs: ✏️ Updated e2e README

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14777
2024-12-03 18:51:22 -05:00
Carlos Alcaide Corvo 018d879a0a fix: 🐛 Fix addons/auth yarn warning (#2604)
Fix unmet peer dep within addons/auth
2024-12-03 13:35:01 -08:00
Carlos Alcaide Corvo b64f1876dc Refactor icu 15872 await authenticatesession admin (#2603)
* Add await for all authenticateSession within /tests/acceptance

* Add await for all authenticateSession within /tests/unit
2024-12-03 10:27:27 -08:00
Carlos Alcaide Corvo 055607b3dd refactor: 💡 Clean up release triggers (#2602) 2024-12-03 07:44:32 -08:00
Carlos Alcaide Corvo 8a7fa26cb5 refactor: 💡 Delete build desktop win docker (#2601) 2024-12-02 15:47:09 -08:00
Carlos Alcaide Corvo 9cac16fe6a refactor: 💡 Add await to authenticateSession within desktop (#2600) 2024-12-02 15:30:28 -08:00
Carlos Alcaide Corvo 61297dba02 refactor: 💡 Add await to invalidSession within admin (#2599) 2024-12-02 15:05:26 -08:00
Lisbet Alvarez 2f8a53e3ea refactor: 💡 remove rose table references (#2589)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15644
2024-12-02 12:22:01 -08:00
Carlos Alcaide Corvo 96b9a20844 refactor: 💡 Add await to invalidSession within desktop (#2598) 2024-12-02 11:51:12 -08:00
Carlos Alcaide Corvo 443f230251 refactor: 💡 Migrate ember-uuid to uuid (#2597)
* refactor: 💡 Migrate ember-uuid to uuid
2024-12-02 11:36:25 -08:00
86ee79e6bf Result of tsccr-helper -log-level=info gha update -latest .github/ (#2608)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
2024-12-02 11:22:03 -08:00
Cameron Perera b24e5a2c22 fix: 🐛 default to light theme for acceptance tests (#2587)
* fix: 🐛 default to light theme for acceptance tests

* refactor: 💡 add async/await to authenticateSession
2024-12-02 12:51:24 -06:00
Carlos Alcaide Corvo 8c6b1aa69a Clean up auto-generated TODO comments (#2607) 2024-12-02 09:02:44 -08:00
Dharini Jeeva 36c2aee271 fix vault brokered credentials display (#2583)
* fix: 🐛 brokered credential display in credential panel
2024-11-26 14:34:10 -08:00
Carlos Alcaide Corvo b049635d28 chore: 🤖 Upgrade uuid (#2591)
Upgrade uuid
2024-11-26 09:23:41 -08:00
Carlos Alcaide Corvo 42dd029611 refactor: 💡 Remove rose:linkbutton (#2590)
Remove rose:linkbutton references and tests
2024-11-26 08:58:09 -08:00
Carlos Alcaide Corvo e02c50aef8 chore: 🤖 Upgrade sinon (#2585)
Upgrade sinon to v19
2024-11-26 08:41:23 -08:00
Carlos Alcaide Corvo d9cf112694 chore: 🤖 Upgrade lint-staged to v15 (#2586)
Upgrade lint-staged to v15
2024-11-22 15:17:07 -08:00
Carlos Alcaide Corvo a4456f50cd refactor: 💡 Delete not necessary comments (#2588) 2024-11-22 11:27:53 -08:00
Carlos Alcaide Corvo a358061f22 chore: 🤖 Delete ember-cli-app-version (#2584)
Delete ember-cli-app-version
2024-11-22 09:09:56 -08:00
Carlos Alcaide Corvo f155e8ad44 Migrate embe-autofocus-modifier to HTML autofocus standard (#2581) 2024-11-22 08:48:53 -08:00
Lisbet Alvarez c930bb235b style: 💄 fix z-index for rose-dialog modal (#2579) 2024-11-20 12:23:52 -08:00
Lisbet Alvarez 543cf4697f refactor: 💡 remove rose::notification in favor of hds (#2557)
* refactor: 💡 remove rose::notification in favor of hds

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15634
2024-11-19 15:18:18 -08:00
Carlos Alcaide Corvo 66e9e971a1 Upgrade ember-simple-auth to latest (#2573)
Upgrade ember-simple-auth to latest

* Change ember-auto-import from devDependencies to dependencies
2024-11-19 13:47:36 -08:00
Cameron Perera a961b5e4be chore: 🤖 bump fast-sourcemap-concat version (#2575) 2024-11-19 15:28:20 -06:00
Dharini Jeeva f8796b362e chore: 🤖 remove ember radio btn, update it with hds (#2556)
* chore: 🤖 remove ember radio btn, update it with hds
2024-11-19 13:03:29 -08:00
Dharini Jeeva 415f638028 Icu 15713 address deprecation warning for dropdown interactive element (#2561) 2024-11-19 11:32:06 -08:00
Carlos Alcaide Corvo 4523615829 chore: 🤖 Upgrade ember-cookies (#2572)
* chore: 🤖 Upgrade ember-cookies
2024-11-18 12:28:18 -08:00
Carlos Alcaide Corvo 61214af01a chore: 🤖 Upgrade and Migrate husky from v8 to v9 (#2571)
Upgrade and migrate Husky from v8 to v9.1.6
2024-11-18 11:51:30 -08:00
Zhihe Li 2f0bf5dc17 fix: 🐛 Fix unintentional changes to yarn lock (#2570) 2024-11-14 17:18:46 -05:00
Zhihe Li 6e71712092 refactor: 💡 Fix linting errors in e2e (#2563) 2024-11-14 16:44:11 -05:00
Zhihe Li 7e56e1cccf style: 💄 Run prettier on e2e tests (#2560) 2024-11-12 18:11:00 -05:00
Cameron Perera 1e3f533d83 refactor: 💡 move WorkerFilter component to more generic folder (#2558)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15742
2024-11-12 14:10:06 -06:00
Lisbet Alvarez 57568f9a8c test: 💍 add missing controller unit tests in admin-ui (#2553)
* test: 💍 add missing controller unit tests in admin-ui

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14740
2024-11-12 09:27:07 -08:00
Zhihe Li 7c1814118d refactor: 💡 Move e2e tests to new folder (#2546)
* refactor: 💡 Move e2e tests to new folder

* refactor: 💡 Convert desktop tests to mjs and use es6 imports

* refactor: 💡 Use module setting for e2e directory and remove mjs

* refactor: 💡 Remove "e2e" in all scripts in package.json
2024-11-12 11:21:37 -05:00
Michael Li ca50a963fd test(e2e): Add extra timeout for "delete resources" test (#2524) 2024-11-11 09:10:13 -05:00
Cameron Perera 6e188c6996 Icu 15465 credential library create test (#2555)
* test: 💍 use commonSelectors in cred-lib tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15465

* test: 💍 create selectors for cred-lib acceptance tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15465

* test: 💍 finish selector refactor for cred-lib create

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15465
2024-11-08 15:12:43 -06:00
Carlos Alcaide Corvo 0095c5c666 chore: 🤖 Upgrade qunit-dom (#2552)
* chore: 🤖 Upgrade qunit-dom and qunit
2024-11-08 09:09:22 -08:00
Carlos Alcaide Corvo bdd7f303c4 test: 💍 Update test selectors for read hosts (#2549)
* test: 💍 Update test selectors for read hosts
2024-11-07 13:54:27 -08:00
Lisbet Alvarez f0383522d8 chore: 🤖 audit remaining resolutions (#2550) 2024-11-07 13:30:21 -08:00
Dharini Jeeva a32cc13171 Icu 15481 groups read and list test (#2551)
* refactor: 💡 test selectors in read and list groups
2024-11-06 15:13:17 -08:00
Dharini Jeeva dbda8c5674 Icu 15480 groups create test (#2544) 2024-11-06 10:59:16 -08:00
Carlos Alcaide Corvo 186873d9d4 Remove build debian in Mac OS and all its dependencies (#2543) 2024-11-06 10:19:49 -08:00
Carlos Alcaide Corvo 37482c0b36 chore: 🤖 Upgrade Concurrently (#2547)
Upgrade Concurrently from 8.2.0 to 9.1.0

✅ Closes: ICU-15651
2024-11-06 09:27:11 -08:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] ccdc5a03ac Result of tsccr-helper -log-level=info gha update -latest .github/ (#2548)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2024-11-04 10:54:51 -08:00
Carlos Alcaide Corvo 2ae24c4627 Change boundary-ui-releases to boundary-desktop-releases (#2535) 2024-11-04 10:16:09 -08:00
Carlos Alcaide Corvo b9e9fd21ee Chore icu 15637 upgrade ember test helpers (#2545)
* Upgrade ember-test helpers

* Upgrade ember-int and ember-cli-clipboard, as ember-test-helpers introduces a breaking change
2024-11-04 09:57:07 -08:00
Zack Moore 6eb83b2a25 Upgrade HDS dependency to 4.13 & migrate FlightIcon to Hds::Icon (#2540)
* updated hds and replaced deprecated flight-icon

* removed code trying to import from ember-flight-icons

* fixing linting issue

* fixing linting issue

* fixing dropdown test selectors

* updated dropdown selectors

* updated dropdown selectors

* updated dropdown selectors

* addressing pr feedback

* fixing linting error

* updating dropdown selectors
2024-11-04 11:29:56 -06:00
Carlos Alcaide Corvo 70aceb1699 Update test selectors for create hosts (#2542)
* Use of common and domain specific selectors for create host test.
2024-11-04 08:43:41 -08:00
Dharini Jeeva 5e208c4115 Enable storage bucket deletion (#2541)
* fix: 🐛 enable storage bucket deletion
2024-10-31 09:36:19 -07:00
Lisbet Alvarez 390f051e43 chore: 🤖 audit most recent resolutions (#2531)
* chore: 🤖 audit most recent resolutions
2024-10-28 16:28:26 -07:00
Cameron Perera ab0f1fd549 test: 💍 update test selectors for accounts update (#2539)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14042
2024-10-28 14:27:55 -05:00
Zhihe Li 788df7b16d test: 💍 Add some settings page tests (#2538) 2024-10-28 15:10:54 -04:00
Lisbet Alvarez 01a2d8e9a6 refactor: 💡 remove route-action usage in admin ui (#2534)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12945
2024-10-28 09:23:08 -07:00
Cameron Perera e842eb001d Icu 14039 accounts list, read, and set-password test (#2537)
* test: 💍 update test selectors for accounts list

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14039

* test: 💍 update test selectors for accounts read

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14039

* test: 💍 update test selectors for accounts set password

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14039
2024-10-25 15:58:09 -05:00
Cameron Perera f195e5dc9d Icu 15405 remove patch and resolutions due to ember cli upgrade (#2536)
* chore: 🤖 remove lodash.template patch

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15405

* chore: 🤖 remove markdown-it resolution

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15405

* chore: 🤖 async dependency clean up

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15405

* chore: 🤖 remove clean-css resolution

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15405

* chore: 🤖 remove winston/async resolution

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15405
2024-10-24 06:57:49 -05:00
Cameron Perera 7f7f0f1859 test: 💍 update test selectors for accounts delete (#2532)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14038
2024-10-23 11:33:55 -05:00
Cameron Perera b494a703eb chore: 🤖 upgrade ember-cli version (#2533)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15393
2024-10-23 09:40:45 -05:00
Lisbet Alvarez 0f52b86364 refactor: 💡 remove route-action usage for targets and sessions (#2528)
* refactor: 💡 remove route-action usage for targets and sessions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15040
2024-10-22 13:16:58 -07:00
Cameron Perera 1b31188d5e test: 💍 selectors refactor for accounts create (#2527)
* test: 💍 selectors refactor for accounts create

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14037

* refactor: 💡 remove name & description duplicate selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14037
2024-10-21 17:12:00 -05:00
Lisbet Alvarez 30e7268297 chore: 🤖 resolve socks to new version to fix ip vulnerability (#2529)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14207
2024-10-21 10:22:32 -07:00
Dharini Jeeva 6956b30fd6 Update credentials (#2523)
* feat: 🎸 allow AWS host catalog credential type update
2024-10-18 14:33:14 -07:00
Cameron Perera 98d19ef591 test: 💍 add new selectors for accounts acceptance tests (#2525)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14036
2024-10-18 09:56:31 -05:00
Carlos Alcaide Corvo f0ffcea424 chore: 🤖 Clean up Desktop out directory (#2521)
* chore: 🤖 Clean up Desktop out directory
2024-10-18 09:27:40 +02:00
Michael Li 6454fb7061 test(e2e): Add check for worker filters (#2513)
* test(e2e): Add check to add an ingress worker filter

* test(e2e): Add check for editing a worker filter
2024-10-17 12:51:49 -04:00
Lisbet Alvarez c0d7af7899 fix: 🐛 alias disappearing on target details page (#2519)
* fix: 🐛 alias disappearing on target details page

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15296

* test: 💍 fix test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15296
2024-10-15 12:58:43 -07:00
Cameron Perera 2424395415 fix: 🐛 add bottom border back to ListWrapper component (#2522) 2024-10-15 13:54:14 -05:00
Zhihe Li dde2f259e8 chore: 🤖 Update changelog (#2516) 2024-10-11 11:58:16 -04:00
Zhihe Li e38c28c288 fix: 🐛 Push associated targets in sessions to ember store (#2518) 2024-10-10 17:03:27 -04:00
Dharini Jeeva 0ff91f9182 fix: 🐛 minor UI changes, ent flag for worker filter (#2517) 2024-10-10 12:44:12 -07:00
Lisbet Alvarez 857bf01596 style: 💄 issues with spacing in manage scopes pages for a role (#2515)
* style: 💄 issues with spacing in manage scopes pages for a role

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15287
2024-10-09 15:17:42 -07:00
Dharini Jeeva 965e82473d Types for aws host catalogs (#2514)
assume role dynamic AWS credentials
2024-10-09 14:49:22 -07:00
Dharini Jeeva 0d55812f64 Add worker type dynamic host catalog (#2511)
* fix: 🐛 add worker filter support for aws host catalogs
2024-10-08 10:58:52 -07:00
Lisbet Alvarez e807e1a3af fix: 🐛 cannot retry oidc authentication in desktop & admin (#2512)
* fix: 🐛 cannot retry oidc authentication in desktop & admin

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15250
2024-10-08 10:29:21 -07:00
Lisbet Alvarez 64e568bd72 fix: 🐛 deleting session recording causes error (#2510)
* fix: 🐛 deleting session recording causes error

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15236

* fix: 🐛 remove scope filter & remove unused translation

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15236
2024-10-04 08:14:30 -07:00
Carlos Alcaide CorvoandDharini Jeeva 401ff354e8 Llb ts desktop no cli (#2491)
Changes to allow Desktop client build with no CLI
---------
Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2024-10-04 16:35:18 +02:00
Michael Li 9c31154941 test(e2e): Updates from 0.18.0 testing (#2509)
* test(e2e): Update locators that can't be found

* test(e2e): Fix race condition

It seems like the alias tests were failing as it was unable to open the Manage menu here. One theory is that we need to make sure the alias page has fully loaded before it tries to click the Manage button (the test might be finding the Manage button from the previous screen and clicking that)

* CR: Fix Alias header check
2024-10-04 08:39:20 -04:00
Lisbet Alvarez 1947365c91 chore: 🤖 resolve rollup vulnerability by removing ember-fetch (#2505)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15189
2024-10-02 16:11:22 -07:00
Michael Li be528dae47 test(e2e): Add test for worker tags (#2507) 2024-10-02 14:04:38 -04:00
Cameron Perera d3c789c66c Icu 15181 add pagination to session recordings (#2502)
* refactor: 💡 move model hook to session-recordings/index route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* test: 💍 add missing tests for session recordings controller

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 paginate session-recordings and search

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* refactor: 💡 fix failing redirect and tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* test: 💍 add search tests for session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add user filtering for session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add more attributes to indexed-db session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add target filter for session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* refactor: 💡 update filterOptions method

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add scopes filtering to session recording

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* feat: 🎸 add time filter to session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 add no filter results text

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 update Exist variables to doExist

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 updates from PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 remove scope_id filter

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 change session recording placeholder text

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* chore: 🤖 increment indexedDB version

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* test: 💍 add Date object tests for indexed-db

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 small changes from PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 change times filter array to time date object

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* test: 💍 add more date specific indexed-db test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 change Today time shortcut to "Last 24 hours"

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* test: 💍 fix date mock in session-recording controller tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181
2024-10-01 13:55:15 -05:00
Michael Li 15727f61fd test(e2e): Add Admin UI test for vault credential libraries (enterprise) (#2501) 2024-10-01 12:11:14 -04:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] 486d8b116a Result of tsccr-helper -log-level=info gha update -latest . (#2506)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2024-10-01 14:32:36 +02:00
91ffbfb315 icu-14735 add search & pagination to aliases (#2498)
* refactor: 💡 add search & pagination to aliases

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14735
---------

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-09-30 13:07:13 -07:00
Dharini Jeeva 9b33812f9e fix: 🐛 bucket types icon in target association (#2503)
* fix: 🐛 bucket types icon in target association
2024-09-27 12:23:16 -07:00
Zhihe Li b40c53fb45 feat: 🎸 Update alert designs (#2496) 2024-09-24 14:30:52 -04:00
Zhihe Li 97258f7525 Use updated cache daemon (#2475)
* feat: 🎸 Handle truncated cache daemon response
2024-09-24 14:30:52 -04:00
Zhihe Li ace65eab3a fix: 🐛 Fix theme selector not properly selecting option (#2495) 2024-09-24 11:58:26 -04:00
Zhihe Li 20e6df522a feat: 🎸 Hide daemon errors initially (#2477)
* feat: 🎸 Hide daemon errors initially

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14961

* feat: 🎸 Move the user and server cards up in settings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14962
2024-09-24 11:58:26 -04:00
Dharini Jeeva c8abc3845a fix: 🐛 pass current usl to maintain session (#2472)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14963
2024-09-24 11:58:26 -04:00
Zhihe Li 6cd2f0f7d8 fix: 🐛 Fix windows hanging when client agent isn't running (#2459) 2024-09-24 11:58:25 -04:00
Zhihe Li 1266930647 chore: 🤖 Remove client agent feature flag (#2449) 2024-09-24 11:58:25 -04:00
Dharini Jeeva 695d9d413d fix: 🐛 remove connected lable (#2446) 2024-09-24 11:58:25 -04:00
Zhihe Li edaf19f59b feat: 🎸 Add section for client agent in settings (#2442)
* feat: 🎸 Add section for client agent in settings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14780
2024-09-24 11:58:25 -04:00
Dharini Jeeva de5defeab2 Icu 14781 add a section for server information (#2438) 2024-09-24 11:58:25 -04:00
Zhihe Li 63ec418cf0 feat: 🎸 Show cache daemon errors from status (#2437)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14816
2024-09-24 11:58:25 -04:00
Zhihe Li e4f4394197 Icu 14403 add dropdown to select and save log verbosity (#2431)
* feat: 🎸 Add logging settings card

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14403
2024-09-24 11:58:25 -04:00
Dharini Jeeva 0b9357e9b3 chore: 🤖 add user info (#2425)
* chore: 🤖 add user info
2024-09-24 11:58:25 -04:00
Dharini Jeeva 777380e19f Add theme selection (#2428)
* fix: 🐛 remove theme from main menu bar and move to settings pag

* chore: 🤖 move toggletheme to app controller
2024-09-24 11:58:24 -04:00
Dharini Jeeva 25b3a940a3 Icu 14400 add a section for version info cli and dc (#2409)
* chore: 🤖 cli info
2024-09-24 11:58:24 -04:00
Dharini Jeeva a97f66e011 feat: 🎸 settings page (#2395)
* feat: 🎸 settings page
2024-09-24 11:58:24 -04:00
Cameron Perera fac7d2b128 small update to desktop README (#2497) 2024-09-23 16:05:10 -05:00
Dharini Jeeva ad1bb34453 fix: show username first and then password when credentials are listed (#2494) 2024-09-19 14:22:25 -07:00
Lisbet Alvarez 8605a54221 refactor: 💡 remove route-action usage for scopes in desktop (#2447)
* refactor: 💡 remove route-action usage for scopes in desktop

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12621
2024-09-17 16:36:47 -07:00
Lisbet Alvarez 98cd9dc1ec chore: 🤖 add resolution for send (#2490) 2024-09-16 12:27:13 -07:00
Cameron Perera bd857836ee Icu 14208 vulnerabilities in boundary UI enterprise lodash template 4 5 0 in yarn lock (#2485)
* fix: 🐛 add patch for lodash.template

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14208

* chore: 🤖 add patch-package and postinstall-postinstall

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14208

* fix: 🐛 add patch for lodash.template

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14208

* chore: 🤖 add patch-package and postinstall-postinstall

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14208
2024-09-16 09:27:40 -05:00
Carlos Alcaide Corvo 4974273bd0 chore: 🤖 Upgrade git-cz (#2488)
Upgrade git-cz from 4.8.0 to 4.9.0. As per git-cz changelog, there are
no breaking changes
2024-09-13 16:14:21 -07:00
Lisbet Alvarez c4e58fb780 refactor: 💡 change channel app state title & add alert msg (#2489)
* refactor: 💡 change channel app state title & add alert msg

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11148
2024-09-13 13:24:45 -07:00
dependabot[bot]andCameron Perera 2515efead6 chore(deps-dev): bump webpack from 5.88.2 to 5.94.0 (#2466)
Bumps [webpack](https://github.com/webpack/webpack) from 5.88.2 to 5.94.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.88.2...v5.94.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-09-13 14:12:58 -05:00
Cameron Perera fda3ca9d4b fix: 🐛 add regex literal for isLocalHost check (#2484)
* fix: 🐛 add ':' to isLocalHost check

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13242

* refactor: 💡 use regex to verify href is localhost

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13242
2024-09-13 13:03:40 -05:00
Cameron Pereraandcameronperera 9648e1fa3b Add duration unit format (#2483)
* chore: 🤖 add @formatjs/intl-durationformat to addons/core

* refactor: 💡 replace old duration format with new package

* chore: 🤖 remove intl-unofficial-duration-unit-format

* Add missing copyright headers

* test: 💍 add more test cases

---------

Co-authored-by: cameronperera <cameronperera@users.noreply.github.com>
2024-09-13 09:43:08 -05:00
Lisbet Alvarez e395b1196c Chore resolve path to regexp vulnerability (#2482)
* chore: 🤖 resolve path-toregexp vulnerability

* chore: 🤖 resolve body-parser vulnerability
2024-09-11 14:20:47 -07:00
Lisbet Alvarez b7e6492d26 chore: 🤖 add resolution for micromatch (#2481) 2024-09-10 09:28:47 -07:00
Zhihe Li 6311d7587e fix: 🐛 Fix daemon getting killed if started before DC (#2480) 2024-09-09 14:55:38 -04:00
Cameron Perera 07573d6b2c Fix/json5 security issue (#2479)
* chore: 🤖 delete and re-install find-babel-config from yarn.lock

* chore: 🤖 remove json5 resolution
2024-09-06 14:45:38 -05:00
Lisbet Alvarez 90890441e1 chore: 🤖 upgrade braces to 3.0.3 to fix security vulnerability (#2476)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14205
2024-09-06 10:32:30 -07:00
Cameron Perera 1430adce7e refactor: 💡 update test selectors for storage-buckets list (#2463)
* refactor: 💡 update test selectors for storage-buckets list

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14034

* refactor: 💡 update sidebar nav link test selector

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14034
2024-09-06 09:56:24 -05:00
Cameron Perera 89afee7297 chore: 🤖 upgrade semver versions (#2473)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14213
2024-09-06 09:33:57 -05:00
Zhihe Li 78f89da348 style: 💄 Fix text description (#2478) 2024-09-05 17:53:19 -04:00
Cameron Perera 9bacb55e87 chore: 🤖 update TODO to with ICU ticket (#2474)
* chore: 🤖 update TODO to with ICU ticket

* chore: 🤖 add message back to todo
2024-09-05 10:21:17 -05:00
Cameron Perera dea4a62955 test: 💍 add TODO for a11y violations (#2471) 2024-09-04 15:44:42 -05:00
Lisbet Alvarez ef163709f2 Upgrade ember a11y testing to v7 (#2470)
* chore: 🤖 update ember-a11y-testing and @ember/test-helpers

* chore: 🤖 upgrade to v7

* chore: 🤖 upgrade deps and force resolutions to fix errors

* chore: 🤖 fix ember-a11y errors due to summary title not showing

* chore: 🤖 fix yarn.lock
2024-09-04 13:04:14 -07:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] 0cfa814cdd Result of tsccr-helper -log-level=info gha update -latest . (#2469)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2024-09-04 11:41:24 -07:00
Lisbet Alvarez 694c43296a chore: 🤖 remove request unused dependency resolution (#2467)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14214
2024-08-29 12:17:27 -07:00
Lisbet Alvarez c98bfb5622 chore: 🤖 upgrade jsonpointer to v5 (#2465)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14212
2024-08-28 09:33:47 -07:00
Michael Li 7cebece600 refact(e2e): Use fixtures for environment variables (#2452) 2024-08-28 11:54:58 -04:00
WadiandCameron Perera a9cfc43404 Icu 14663 update manage dropdown for credential stores form (#2454)
* refactor: 💡 Update Manage dropdown in credential-store

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14663

* refactor: 💡 Adjusted tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14663

* refactor: 💡 Refactored tests and naming conventions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14663

* refactor: 💡 Removed @model from delete

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14663

* test: 💍 add clicks to correct tests assertions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14663

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-08-26 14:58:14 -05:00
WadiandCameron Perera c38ba294cc refactor: 💡 Update Manage Dropdown in auth-methods (#2460)
* refactor: 💡 Update Manage Dropdown in auth-methods

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14704

* refactor: 💡 Refactored tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14704

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-08-26 14:30:57 -05:00
Cameron Perera ce2649272f chore: 🤖 upgrade ember-qunit to v8.1.0 (#2462)
and ember-cli to 4.12.2 in addons/api
2024-08-26 14:13:45 -05:00
WadiandCameron Perera 3d60d047e3 refactor: 💡 Manage dropdown HDS refactoring for managed-groups (#2455)
* refactor: 💡 Manage dropdown HDS refactoring for managed-groups

Updated the manage dropdown to reflect HDS design

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14603

* refactor: 💡 Changed up naming convention for Manage dropdown

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14603

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-08-26 10:48:36 -05:00
WadiandCameron Perera a3082e97e6 refactor: 💡 Update manage dropdown for host-catalogs (#2456)
* refactor: 💡 Update manage dropdown for host-catalogs

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14664

* refactor: 💡 Refactored tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14664

* refactor: 💡 Refactored test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14664

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-08-26 09:44:51 -05:00
dependabot[bot]andZhihe Li 333eebd731 chore(deps): bump micromatch in /ui/desktop/electron-app (#2461)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/4.0.8/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-08-23 16:36:41 -04:00
Lisbet Alvarez 320af9f6f7 chore: 🤖 upgrade to ws v8.17.1 to remove vulnerability (#2451)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14204
2024-08-23 13:25:10 -07:00
Cameron Perera af9b832d38 chore: 🤖 update ember-cli-mirage (#2458)
* chore: 🤖 update ember-cli-mirage

* chore: 🤖 move ember-cli-mirage to dependencies

* chore: 🤖 remove duplicate dependency
2024-08-23 14:40:42 -05:00
Wadi bea791b2e6 refactor: 💡 Update Manage dropdown in Credentials form (#2453)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14665
2024-08-23 12:03:26 -04:00
Wadi e31ac72531 ICU-14870 Update Manage Dropdown for Projects form (#2457)
* refactor: 💡 HDS Manage Dropdown for Projects

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14870

* refactor: 💡 Fixing up tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14870

* refactor: 💡 Updated naming convention and consolidated

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14870
2024-08-23 11:53:26 -04:00
Michael Li 075d8c6d8f refact(e2e): Create HTTP methods and more page objects (#2448)
* refact(e2e): Create LoginPage

* refact(e2e): Create http methods

* refact(e2e): Create more methods
2024-08-23 10:17:10 -04:00
Lauren 56f42c3f5a docs: ✏️ replace broken links, add hyperlinks, language updates (#2445)
This PR updates the repo READMEs by replacing a broken link and pointing to correct tutorials page, adding hyperlinks to improve readability, and small language updates
2024-08-20 16:14:19 -04:00
Carlos Alcaide Corvo af7196215b chore: 🤖 Migrate xterm to @xterm (#2444) 2024-08-20 09:40:08 -07:00
dependabot[bot]andDharini Jeeva 80d2898e56 chore(deps): bump elliptic from 6.5.4 to 6.5.7 (#2443)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.4 to 6.5.7.
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.4...v6.5.7)

---
updated-dependencies:
- dependency-name: elliptic
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2024-08-20 09:09:14 -05:00
Carlos Alcaide Corvo f607e77274 Automate copyright headers addition (#2440)
* Refactor checking headers to automatically add them
2024-08-19 14:22:27 -07:00
Michael Li 007f5d8b46 refact(e2e): Split up boundary-cli helper methods (#2430)
* refact(e2e): Split up boundary-cli helper methods

* CR: Use ESM import

* CR: Move authenticated state to a non-shared file

* CR: Use mjs

* CR: Modify playwright config to .mjs
2024-08-19 16:00:16 -04:00
Lisbet Alvarez a9d110a1b6 refactor: 💡 remove route-action usage for session recordings (#2439)
* refactor: 💡 remove route-action usage for session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12620
2024-08-16 10:04:46 -07:00
Lisbet AlvarezandCameron Perera 79b06ee565 ICU-13883 add remove org modal (#2435)
* feat: 🎸 add remove org modal

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13883

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-08-15 16:04:46 -07:00
Lisbet Alvarez 0af81d9bc1 refactor: 💡 remove route action usage for scopes (#2385)
* refactor: 💡 remove route action usage for scopes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13755
2024-08-15 10:46:00 -07:00
Cameron Perera 9e668e8467 Icu 14834 remove duplicate selectors and use common selectors instead (#2436)
* refactor: 💡 update SAVE_BTN usage

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14834

* refactor: 💡 update CANCEL_BTN usage

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14834

* refactor: 💡 update EDIT_BTN usage

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14834

* refactor: 💡 update FIELD_NAME & FIELD_NAME_VALUE usage

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14834
2024-08-15 09:24:21 -05:00
Wadi 69da1fa04c refactor: 💡 Updated Manage Dropdown in auth-methods accounts (#2432)
* refactor: 💡 Updated Manage Dropdown in auth-methods accounts

Updated Manage Dropdown in auth-methods account form to HDS

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14599

* refactor: 💡 Changed asssert statement in delete-test.js

Changed statement to reflect proper syntax and testing capability

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14599
2024-08-12 13:52:56 -04:00
Wadi 392792eb92 refactor: 💡 Updated Manage Dropdown in credential-library (#2434)
Updated Manage Dropdown present in credential-library to reflect new HDS
design

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14601
2024-08-12 13:41:08 -04:00
Wadi 9c018f131f refactor: 💡 Updated Manage Dropdown in host-sets to HDS design (#2433)
* refactor: 💡 Updated Manage Dropdown in host-sets to HDS design

Updated the manage dropdown in host-sets to reflect HDS design

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14600

* refactor: 💡 Specified selector in host-test.js

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14600
2024-08-12 13:25:43 -04:00
Cameron Perera 0542218537 Icu 14033 storage buckets read test (#2414)
* test: 💍 update storage-bucket read test selectors

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14033

* test: 💍 add common selectors in tests/helpers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14033

* refactor: 💡 update selector name and value

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14033

* refactor: 💡 update selector name

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14033
2024-08-12 10:41:27 -05:00
Lisbet Alvarez 7ac904a31f ICU-14496 add discard unsaved changes modal to manage scopes (#2421)
* refactor: 💡 add discard unsaved changes modal

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14496
2024-08-08 10:46:39 -07:00
Lisbet Alvarez a7d9a7e348 fix: 🐛 targets not displaying even after they are cached (#2429)
* fix: 🐛 targets not displaying even after they are cached

* fix: 🐛 modify check in sessions route
2024-08-07 10:38:38 -07:00
Michael Li 0d0dadf398 chore(e2e): Fix eslint for Admin UI e2e tests (#2427)
* chore(e2e): Fix eslint for e2e tests

* chore(e2e): Fix license headers
2024-08-06 14:26:19 -04:00
Michael Li 45c16252a7 refact(e2e): Update Admin UI tests to use Page Objects (#2426)
* refact(e2e): Use page object methods

* refact(e2e): Create base page class
2024-08-06 13:15:00 -04:00
Wadi 9b3cbaa6b3 refactor: 💡 Updated Manage Dropdown to HDS in Targets Menu (#2418)
* refactor: 💡 Updated Manage Dropdown to HDS in Targets Menu

Updated the manage dropdown present in the targets scope to reflect HDS
design

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14597

* refactor: 💡 Updated to reflect changes

Added changes to reflect variable design

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14597

* refactor: 💡 Removed @deleted attribute

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14597
2024-08-05 13:04:02 -04:00
Wadi 89cfb14d6e refactor: 💡 Updated Manage Dropdown for hosts form (#2423)
* refactor: 💡 Updated Manage Dropdown for hosts form

Continuing refactoring upgrades for HDS managed dropdowns

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14602

* refactor: 💡 Removed disabled attribute from dropdown

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14602
2024-08-05 12:53:55 -04:00
Zhihe Li a68d7d103a feat: 🎸 Setup initial desktop E2E tests (#2416)
* feat: 🎸 Setup initial desktop E2E tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14061
2024-08-02 13:28:50 -04:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] 4dc5e13f24 Result of tsccr-helper -log-level=info gha update -latest . (#2422)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2024-08-01 10:13:24 -07:00
Michael Li fc5121c41e test(e2e): Update test to select other options from Items Per Page (#2417) 2024-07-31 12:12:09 -04:00
Zhihe Li 6e7ededc30 chore: 🤖 Update CLI version and changelog (#2396) 2024-07-30 19:03:22 -04:00
Zhihe Li 0867ba08f4 fix: 🐛 Fix intel macs not getting proper auto-update prompt (#2419) 2024-07-30 18:51:09 -04:00
Wadi 21ec3b30ad refactor: Update Manage Dropdown in Groups Form (#2415)
* Updated the Manage Dropdown button to reflect HDS Design

* refactor: HDS Upgrade for Manage Dropdown inside of groups

* refactor: 💡 Lint fixes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14343
2024-07-26 17:19:50 -04:00
219eba67bc fix: 🐛 tag count in list view (#2413)
* fix: 🐛 tag count in list view

* Update addons/api/addon/models/worker.js

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>

* fix: 🐛 error & test

* Update addons/api/addon/models/worker.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-07-25 12:40:36 -07:00
Lisbet Alvarez 7c51776c57 fix: 🐛 hide search & pagination for project role grant scopes (#2411)
* fix: 🐛 hide search & pagination for project role grant scopes
2024-07-25 08:09:06 -07:00
Michael Li e73bded6ae test(e2e): Update tests due to 0.17.0 changes (#2401)
* test(e2e): Only clean up org if org hasn't been deleted yet

* test(e2e): Use new worker filter tab

* test(e2e): Update selector for updated Manage button

Some pages now use a Manage button instead of a Manage link. The "Title" selector was not being picked up on the Manage button.

* test(e2e): Fix flakiness due to race condition

The test should navigate to the home page after creating all of the resources using the API

* test(e2e): Add cleanup to test
2024-07-24 14:55:51 -04:00
Lisbet Alvarez 25a99a4fb6 refactor: 💡 small text updates & loading state (#2410)
* refactor: 💡 small text updates & loading state
2024-07-23 09:20:51 -07:00
Zhihe Li 10c128ee3b feat: 🎸 Add debug logging for search times (#2406) 2024-07-19 16:53:50 -04:00
Cameron Perera 1efc3a08aa fix: 🐛 add trim() to values when creating tags (#2405) 2024-07-19 13:14:30 -05:00
Cameron PereraandLisbet Alvarez 03376f0ae6 Fix text formating (#2404)
* refactor: 💡 update create new tags description

✅ Closes: ICU-14463

---------

Co-authored-by: Lisbet Alvarez <lisbet.alvarez@hashicorp.com>
2024-07-19 07:11:03 -07:00
Lisbet Alvarez 13d5c46b1a refactor: 💡 update page title from "add" to "manage" (#2402) 2024-07-18 15:28:47 -07:00
Cameron Perera 96b648634f feat: 🎸 add doc link for create tags view (#2400) 2024-07-17 17:07:01 -05:00
Zhihe Li ec59ee2b1c fix: 🐛 Fix breaking change for changing page size (#2398) 2024-07-17 16:17:17 -04:00
Zhihe Li bea40ec622 chore: 🤖 Add feature flag for client-agent work (#2397) 2024-07-17 15:58:51 -04:00
Wadi cc0edf311c Updated the Manage Dropdown button to reflect HDS Design (#2392) 2024-07-16 21:41:36 -04:00
Cameron Perera 66fb4b2451 feat: 🎸 update workers tags filter to include api_tags (#2394)
✅ Closes: ICU-14436
2024-07-16 17:48:35 -05:00
Zhihe Li ec6ec7511e refactor: 💡 Remove stack traces and add logs for version info (#2391) 2024-07-16 17:51:16 -04:00
Carlos Alcaide Corvo 9404300a9e Fix linux deb artifact name (#2389)
* Avoid adding platform to the .deb binary
2024-07-16 14:29:48 -07:00
Cameron Perera 8cb16dc46c Icu 13894 create edit tags modal (#2384)
* feat: 🎸 add "no tags" state for worker tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13894

* feat: 🎸 add edit workflow for worker tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13894

* refactor: 💡 update tag action permissions logic

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13894

* refactor: 💡 small change to updateApiTags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13894

* feat: 🎸 show different tooltip for hcp managed worker tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13894

* refactor: 💡 address PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13894

* refactor: 💡 address more PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13894
2024-07-16 15:49:30 -05:00
Cameron Perera f9af4f0092 Icu 13897 create remove tag modal (#2377)
* feat: 🎸 add action dropdown in tags table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 add removeApiTags method to worker

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 add tag removal workflow

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* test: 💍 add tests for removing a worker tag

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* test: 💍 add tests for removing a tag

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 fix spelling issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 use mirage worker serializer to remove empty tag

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 update modal id to class

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 add autofocus to remove tag modal

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 update tags controller attributes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 create normalizer to add empty object for api_tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 update getter signature

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 remove unneeded parens

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 remove type from Hds::Button

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 update confirmation modal class name

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 add emptyObjectIfMissing model attribute

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 remove default to null in toggleModal

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897
2024-07-16 15:49:30 -05:00
Lisbet Alvarez 723101b779 refactor: 💡 move workers section in a target to be in a tab (#2379)
* refactor: 💡 move workers section in a target to be in a tab

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14332
2024-07-16 15:49:23 -05:00
Cameron Perera 825c9556b6 refactor: 💡 remove worker tags from detail view of worker (#2380)
* refactor: 💡 remove worker tags from detail view of worker

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13890

* refactor: 💡 remove unused styles

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13890

* style: 💄 fix lint error

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13890

* style: 💄 fix stylelint rules

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13890
2024-07-16 15:48:24 -05:00
Cameron Perera 071e0bd617 feat: 🎸 add link to worker docs for creat-tags view (#2381) 2024-07-16 15:48:24 -05:00
Cameron Perera 4e57c863ab Icu 13895 create create new tags route and view (#2368)
* feat: 🎸 create canSetWorkerTags ability for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add create-tags route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 update worker serializer for adding api_tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add setApiTags method on worker model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* style: 💄 update list-wrapper styles after hds upgrade

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add create-tags component for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add creat-tags route and view

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add acceptance tests for worker create-tags workflow

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add test for worker tag creation

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 fix test setup for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add license headers and update setupTest import

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 fix normal serialize test for worker

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 create worker PKI type const

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 add comments to methods and actions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 create Tag class to use in multiple places

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 move apiTags to route controller

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 move routeWillChange logic to route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 routeWillChange logic updates

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 remove unused services

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add missing controller tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 small update to API tags description

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 add tracked to Tag class

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 use willTransition vs routeWillChange event

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 use controllerFor in route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895
2024-07-16 15:48:23 -05:00
Cameron PereraandLisbet Alvarez 87f84e0c24 feat: 🎸 add tooltip to config tags in table (#2375)
* feat: 🎸 add tooltip to config tags in table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14331

* Update addons/core/translations/resources/en-us.yaml

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>

* test: 💍 fix translation in test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14331

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2024-07-16 15:48:23 -05:00
Cameron Perera fd5143286f Icu 13892 create tags tab route and view (#2362)
* feat: 🎸 add workers/worker/tags route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* feat: 🎸 create workers/worker/header component

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* feat: 🎸 create workers/worker/nav component

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* feat: 🎸 create workers/worker/actions component

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* feat: 🎸 add breadcrumbs, header, nav, and actions for tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* feat: 🎸 create table to display worker tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* chore: 🤖 add license headers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* refactor: 💡 small changes after flyout changes added

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* refactor: 💡 update manage dropdown to use hds::dropdown

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892

* test: 💍 fix failing test after HDS refactor

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13892
2024-07-16 15:48:23 -05:00
Cameron Perera 40ebbf8b09 Icu 13889 update tags column to action that opens hds flyout and add link to tags tab if more than 10 tags (#2355)
* refactor: 💡 update worker factory to include api_tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* feat: 🎸 add tags flyout for workers table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* refactor: 💡 move test selector to const

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* refactor: 💡 only show 'view more tags' if more than 10 tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* test: 💍 update test name

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* refactor: 💡 update how worker tags are shown in flyout

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* refactor: 💡 add one more api tag for worker in mirage

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* refactor: 💡 fix tagDisplayName signature

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889

* refactor: 💡 update tag shortener styling

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13889
2024-07-16 15:48:10 -05:00
Cameron Perera f51124cfdb feat: 🎸 create get allTags method that includes tag type (#2349)
* feat: 🎸 create getAllTags method that includes tag type

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891

* refactor: 💡 use canonical_tags to get tagCount on a worker

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891

* refactor: 💡 add type to api and config tag list methods

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891

* refactor: 💡 change worker functions to getters

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891
2024-07-16 15:46:05 -05:00
Lisbet Alvarez 1bea4882ca docs: ✏️ add doclinks for multi-scope grant work (#2390) 2024-07-16 12:03:22 -07:00
Lisbet Alvarez ea3d040b53 refactor: 💡 update messages & update button to match new change (#2382)
* refactor: 💡 update messages & update button to match new change
2024-07-15 17:23:00 -07:00
Cameron Perera 80d9ce2ec1 refactor: 💡 update button text to Manage custom scopes (#2378) 2024-07-15 17:23:00 -07:00
Lisbet Alvarez 45931be4da refactor: 💡 add grant scopes applied badge (#2374)
* refactor: 💡 add grant scopes applied badge

* test: 💍 add extra asserts
2024-07-15 17:23:00 -07:00
Lisbet Alvarez c340d9ab89 feat: 🎸 add search and filtering to scopes tab in a role (#2371)
* feat: 🎸 add search and filtering to scopes tab in a role

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13886
2024-07-15 17:23:00 -07:00
Wadi 3bcc5aabd8 ICU-13879 (#2372)
* Updated Dropdown in Roles menu to reflect Hds Dropdown

* Added data-test attributes

* Removed mixed rose code

* Fixed lint issues

* Fixed up tests and removed bare text to be replaced with translation.

* Fixed lint issues

* Updated Manage Scopes to reflect HDS self-closing element

* Lint issues
2024-07-15 17:23:00 -07:00
Lisbet Alvarez 4004431c6a chore: 🤖 add missing headers in llb (#2373) 2024-07-15 17:23:00 -07:00
3064e51bc1 feat: 🎸 create manage projects in org route and view (#2365)
* feat: 🎸 create manage projects in org route and view

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13882

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-07-15 17:23:00 -07:00
Cameron Perera e83bb425af refactor: 💡 remove old unused code (#2367) 2024-07-15 17:23:00 -07:00
Lisbet AlvarezandZhihe Li 27abf9e2d9 feat: 🎸 create manage custom scopes route and view (#2359)
* feat: 🎸 create manage custom scopes route and view

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13881

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-07-15 17:23:00 -07:00
Lisbet AlvarezandZhihe Li 89e072401c Icu 13880 create manage scopes route and view with keyword values (#2342)
* feat: 🎸 manage scopes route and page

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13880

* Update addons/core/translations/resources/en-us.yaml

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* Update ui/admin/app/abilities/role.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* Update ui/admin/app/components/form/role/manage-scopes/index.hbs

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-07-15 17:23:00 -07:00
Cameron Perera 85bce84356 feat: 🎸 add No scopes add to roles/role/scopes route (#2338)
* feat: 🎸 add No scopes add to roles/role/scopes route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13878

* feat: 🎸 add new role ability

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13878

* refactor: 💡 fix permission for setting grant scopes on role

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13878
2024-07-15 17:23:00 -07:00
Cameron Perera 2bc314d271 Icu 12708 add scopes tab route in role route (#2322)
* feat: 🎸 add roles/role/scopes route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update role and scope mirage factories

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 add grantScopes to role model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 fetch all scopes recursively

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 add new role grant scopes translations

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 add table to list grant scopes on a role

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* test: 💍 acceptance test for grant scope table and controller

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* test: 💍 add unit tests for grantScopes method on role model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 small updates from PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update grantScopes to use sort

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 update role scope description for each scope type

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 make grant_scope_ids sort better

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update global scope to show as Global vs global

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update logic for display grant scope keywords

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 small improvement in role.grantScopes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 move scope query to roles/scope route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 remove console.log

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708
2024-07-15 17:23:00 -07:00
Cameron Perera e60b774d05 refactor: 💡 remove grant_scope_id and its uses (#2325)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13877
2024-07-15 17:23:00 -07:00
Cameron Perera c6a917d21b Icu 12707 update role mirage (#2319)
* feat: 🎸 add grant_scope_ids to role mirage

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12707

* feat: 🎸 set grant_scope_ids in onboarding workflow

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12707

* refactor: 💡 set grant_scope_ids when calling updateGrantScopeID

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12707

* refactor: 💡 add TODO for removal of grant_scope_id

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12707
2024-07-15 17:23:00 -07:00
Cameron Perera f9e85aa9aa feat: 🎸 add grant_scope_ids to role model (#2308)
* feat: 🎸 add grant_scope_ids to role model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12709

* refactor: 💡 remove removeGrantScopes method

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12709

* style: 💄 add braces around if statement

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12709
2024-07-15 17:23:00 -07:00
Lisbet Alvarez c0cecda312 refactor: 💡 use new baseURL and update topic paths (#2109)
* refactor: 💡 use new baseURL and update topic paths
2024-07-15 17:09:08 -07:00
Carlos Alcaide Corvo bfd984d248 Add a postMake arch conversion from x64 to amd64 (#2376)
* Add a postMake arch conversion from x64 to amd64

* Add platform conversion from win32 to windows
2024-07-15 11:30:12 -07:00
Dharini Jeeva ae5a03250f fix: 🐛 add visuallyhidden to empty table columns (#2383) 2024-07-15 10:15:55 -07:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] 07c25d766e Result of tsccr-helper -log-level=info gha update -latest . (#2369)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2024-07-03 10:43:51 -07:00
Michael Li 12a986b2ba test(e2e): Add test for search and pagination (#2366)
* test(e2e): Add test for search and pagination

* CR: Add comment
2024-06-28 15:04:11 -04:00
Michael Li 5e5c25be82 test(e2e): Add alias test (#2363)
* test(e2e): Add alias test

* test(e2e): Cleanup
2024-06-28 10:24:50 -04:00
Dharini Jeeva 17db3cba68 workflow action for copyright headers (#2345) 2024-06-27 11:06:41 -07:00
Zhihe Li 7de68bacae Revert "fix: 🐛 Fix active session display in targets table (#2321)" (#2364)
This reverts commit fc82980d68.
2024-06-26 17:47:07 -04:00
Zhihe Li 74f3ce516b chore: 🤖 Fix unzip permissions part 2: electric boogaloo (#2360)
* Revert "fix: 🐛 Fix unzipping changing cli permissions (#2356)"

This reverts commit e9d2f249b8.

* chore: 🤖 Fix permissions after unzipping
2024-06-26 13:02:13 -04:00
Carlos Alcaide Corvo 6d97b15591 fix: 🐛 appUpdater support ARM64 (#2327)
Add ARM64 support for the appUpdater
2024-06-25 12:50:17 -07:00
dependabot[bot]andZhihe Li 72cf7b0d71 chore(deps): bump socket.io from 4.6.1 to 4.7.5 (#2358)
Bumps [socket.io](https://github.com/socketio/socket.io) from 4.6.1 to 4.7.5.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/4.6.1...4.7.5)

---
updated-dependencies:
- dependency-name: socket.io
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-06-24 11:31:15 -04:00
Michael Li 45db2ad5a6 test(e2e): Add check to detach storage bucket from target (#2352) 2024-06-24 09:35:33 -04:00
Cameron PereraandZhihe Li 2f27a4cfc0 chore: 🤖 Update electron version (#2332)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13697

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-06-21 18:40:46 -04:00
Michael Li e6642959be test(e2e): Fix flakiness when selecting org links (#2348)
* test(e2e): Fix flakiness when selecting links

Some links exist on both the "Global" and "Org" scope (i.e. Storage Policies, Auth Methods). There was some flakiness observed where the test intends to select the "Org" variant of the link, but the test moves too quickly and selects the "Global" variant instead.

This commit ensures that the Org page has loaded after clicking the Org link before trying to navigate to the next thing.

* test(e2e): Address flake due to OK conflict

* test(e2e): Address flake due to OK conflict part 2

* CR: Fix more race conditions
2024-06-21 13:26:13 -04:00
Dharini Jeeva 11009d6f33 fix: 🐛 copyright syntax (#2357) 2024-06-20 14:10:04 -07:00
Zhihe Li e9d2f249b8 fix: 🐛 Fix unzipping changing cli permissions (#2356) 2024-06-20 10:59:52 -04:00
Zhihe Li ff6f1ab2ff chore: 🤖 Update CLI version (#2354) 2024-06-18 14:50:34 -04:00
Lisbet Alvarez ea578c4207 fix: 🐛 styles import file not being found (#2353) 2024-06-18 09:29:26 -07:00
dependabot[bot]andZhihe Li 4d02503790 chore(deps): bump ws from 7.5.3 to 7.5.10 (#2351)
Bumps [ws](https://github.com/websockets/ws) from 7.5.3 to 7.5.10.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.3...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-06-18 11:52:52 -04:00
Zhihe Li 355ebb12db feat: 🎸 Add more logging for desktop client (#2344) 2024-06-17 18:18:58 -04:00
Lisbet Alvarez c177abb978 chore: 🤖 udate hds from v3.5 to v4 (#2350)
* chore: 🤖 udate hds from v3.5 to v4
2024-06-17 14:31:33 -07:00
Zhihe Li 0094cef9f5 refactor: 💡 Rename client daemon to cache daemon (#2346) 2024-06-17 17:16:07 -04:00
dependabot[bot]andZhihe Li 80b992668d chore(deps): bump braces from 3.0.2 to 3.0.3 in /ui/desktop/electron-app (#2347)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-06-17 13:59:45 -04:00
Michael Li 365545d61c test(e2e): Add checks for LDAP account attributes (#2343)
* test(e2e): Add check for LDAP account attributes

* test(e2e): Refactor to use expect assertions
2024-06-17 10:42:08 -04:00
Michael Li 1a7b3f578c test(e2e): Add multiple credentials to target (#2333) 2024-06-17 10:14:44 -04:00
Michael Li 40c1b3c6b5 test(e2e): Add check for multiple host sources (#2331)
* test(e2e): Add check for multiple host sets

* CR: TCP targets don't have injected credentials

* test(e2e): Add "exact: true" for OK button locators

Sometimes, the OK button will get interfered by resource ids that contain an OK.
2024-06-17 10:01:13 -04:00
Michael Li 09c60c7bcb test(e2e): Add test for worker (#2320)
* test(e2e): Add test for worker

* CR: Fix selector

* test(e2e): Skip test on safari

* test(e2e): Check create config
2024-06-14 14:59:23 -04:00
Wadi 7b6f625d3e Fixed Markdown in Node supported versions (#2340) 2024-06-14 10:21:39 -04:00
Dharini Jeeva 3797bc3a60 fix: 🐛 labels were changed during the refactor (#2341) 2024-06-13 14:18:56 -07:00
Wadi 26adb96396 Readme update to change Node supported versions (#2339)
* Readme update to change Node supported versions
2024-06-13 16:08:30 -04:00
Dharini Jeeva e419b8ee6a chore: 🤖 headers update (#2337) 2024-06-13 10:05:01 -07:00
Zhihe Li bca65d8d5a feat: 🎸 Fix text and persist windows notification (#2330)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13977
2024-06-12 16:40:19 -04:00
Zhihe Li f20723df37 fix: 🐛 Fix session erroring out when getting session from ferry (#2315) 2024-06-12 16:40:19 -04:00
Zhihe Li 3f238140b4 feat: 🎸 Change the default notification on mac to be alert (#2311)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13931
2024-06-12 16:40:19 -04:00
Zhihe Li 8788b5ec9a feat: 🎸 Add support for polling transparent sessions (#2304)
* feat: 🎸 Add support for polling transparent sessions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13831
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13830
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13832
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13833
2024-06-12 16:40:19 -04:00
Dharini Jeeva e66efa7cc3 recreate LICENSE file (#2335) 2024-06-12 11:09:29 -07:00
Dharini Jeeva bc0fc1aa87 Delete LICENSE (#2334) 2024-06-12 10:24:35 -07:00
Michael Li fc4344c6c5 test(e2e): Update test to add a DHC host set as a source (#2324) 2024-06-11 18:57:10 -04:00
Michael Li 7106f36686 test(e2e): Add test for global settings (#2323) 2024-06-11 18:42:24 -04:00
Michael Li 28e65dbf4f test(e2e): Update ldap test to log in with ldap account (#2314) 2024-06-11 18:30:34 -04:00
Dharini Jeeva 0a9a6c5a67 fix: quotes (#2329)
* chore: 🤖 same as boundary repo

* fix: 🐛 quotes
2024-06-11 13:41:31 -07:00
Dharini Jeeva 720a9b56ee chore: 🤖 update LICENSE txt and fix license (#2328) 2024-06-11 13:00:43 -07:00
hashicorp-copywrite[bot]andCarlos Alcaide Corvo 3157525eb6 [COMPLIANCE] Add Copyright and License Headers (#2326)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
2024-06-11 08:54:49 -07:00
Lisbet Alvarez 12e0982d4b refactor: 💡 remove route-action usage for workers (#2302)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12613
2024-06-10 17:12:49 -07:00
Lisbet Alvarez ea460c1391 refactor: 💡 remove route-action usage for users (#2299)
* refactor: 💡 remove route-action usage for users

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12612
2024-06-10 17:00:57 -07:00
Lisbet Alvarez 2f6e36c035 refactor: 💡 remove route-action usage for targets (#2297)
* refactor: 💡 remove route-action usage for targets

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12611
2024-06-10 16:45:06 -07:00
Zhihe Li fc82980d68 fix: 🐛 Fix active session display in targets table (#2321)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13981
2024-06-10 17:14:40 -04:00
Michael Li 8d217aab2b test(e2e): Update password test to log in with new account (#2313)
* test(e2e): Update password test to log in with new account

* CR: Don't break other tests

Performing a log out in a test when using authenticatedState causes subsequent tests that use the state to fail (it will show up as logged out)

* CR: Only do clean up steps when necessary

* CR: Use const
2024-06-07 13:09:24 -04:00
Zhihe Li 7e89f28949 Icu 13451 desktop client logging (#2318)
* feat: 🎸 Add initial logging for desktop client
2024-06-07 12:12:28 -04:00
Michael Li 5a7e09c70c test(e2e): Add test for minio storage bucket (#2312) 2024-06-06 14:59:13 -04:00
a92701701c Result of tsccr-helper -log-level=info gha update -latest . (#2316)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
2024-06-04 14:44:17 -07:00
Dharini Jeeva 6397cd80a6 Refactor key value comp (#2180)
* refactor: 💡 keyvalue comp
2024-06-03 13:38:42 -07:00
hashicorp-copywrite[bot] 9b403b3159 [COMPLIANCE] Add Copyright and License Headers (#2317)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2024-06-03 11:52:01 -05:00
Dharini Jeeva 9b1f052a56 chore: Update desktop client license from MPL to BSL (#2307)
* chore: 🤖 license
2024-05-31 11:29:24 -07:00
Carlos Alcaide Corvo 7e5db0bc3d Poc share domain test selectors (#2278)
* Share domain (storage-buckets) selectors and refactor the previous test to rely only on standard selectors and data-test-* when need.
2024-05-31 11:02:55 -07:00
hashicorp-copywrite[bot]andDharini Jeeva 966e16863a [COMPLIANCE] Add Copyright and License Headers (#2309)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2024-05-30 10:30:44 -07:00
Michael Li c0b1373851 test(e2e): 0.16.1 updates (#2310)
* test(e2e): Use AWS region specified in environment

* test(e2e): Update storage bucket label
2024-05-28 17:54:21 -04:00
Lisbet Alvarez b9b4e33f5a refactor: 💡 remove route-action usage for roles (#2292)
* refactor: 💡 remove route-action usage for roles

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12608
2024-05-23 15:35:49 -07:00
Carlos Alcaide Corvo 534c4419e7 As per warning updated browserslist (#2306) 2024-05-23 15:18:53 -07:00
Dharini Jeeva 1c65de4a80 fix: 🐛 target patch with_Aliases field (#2305) 2024-05-23 10:23:49 -07:00
Cameron Perera 5c8e93f5e9 Doc update desktop readme (#2303)
* docs: ✏️ add troubleshooting info for node-gyp errors

* docs: ✏️ clean up linting errors in desktop/README.md

* docs: ✏️ include python install command
2024-05-22 15:03:59 -05:00
hashicorp-copywrite[bot] 5e3e61bc49 [COMPLIANCE] Add Copyright and License Headers (#2301)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2024-05-21 10:01:10 -04:00
Cameron Perera 2394df8435 chore: 🤖 update PR template (#2300) 2024-05-16 13:13:54 -05:00
Lisbet Alvarez a1655312fd refactor: 💡 remove route-action usage for host-catalogs (#2284)
* refactor: 💡 remove route-action usage for host-catalogs

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12606
2024-05-15 11:01:54 -07:00
Carlos Alcaide Corvo fcb9468c59 Add minio missing unit tests (#2253)
* Add MinIO storage bucket creation for scope org

* Add update acceptance tests
2024-05-14 13:39:23 -07:00
hashicorp-copywrite[bot] 3692922b3b [COMPLIANCE] Add Copyright and License Headers (#2296)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2024-05-13 12:59:37 -05:00
Cameron Perera 0691b57e40 Icu 11936 support node 20 stop support node 16 (#2282)
* chore: 🤖 remove .mdx format script in rose addon

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11936

* chore: 🤖 deprecate use of node v16 and include node v20

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11936

* chore: 🤖 update github workflows to use node v18

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11936

* chore: 🤖 update workflows to use node v20

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11936
2024-05-10 13:03:43 -05:00
Michael Li 87e0a075c1 chore: Lint action (#2294) 2024-05-09 11:13:00 -04:00
dependabot[bot]andCarlos Alcaide Corvo a6b9ae4610 chore(deps): bump semver from 5.7.1 to 7.6.0 in /ui/desktop/electron-app (#2285)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 7.6.0.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v7.6.0)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
2024-05-08 12:25:55 -07:00
Carlos Alcaide Corvo e75e908340 Fix icu 13758 refactor node decompress (#2290)
* Uninstall decompress and rely on unzipper
2024-05-08 07:59:26 -07:00
Lisbet Alvarez 9ca1beaa0e refactor: 💡 remove route-action usage for storage-policies (#2286)
* refactor: 💡 remove route-action usage for storage-policies

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12607
2024-05-07 14:02:03 -07:00
Michael Li 91fe148df4 chore: Fix error in Jira Sync workflow (#2289) 2024-05-06 12:37:05 -04:00
Michael Li 4cb9565ca0 chore: Update to use Node20 version of Actions (#2283)
atlassian/gajira-* actions are no longer maintained, but they are using node16, which is soon to be deprecated. This change removes the use of those actions.
2024-05-06 09:55:17 -04:00
eddbdb23d0 Result of tsccr-helper -log-level=info gha update -latest . (#2281)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
2024-05-03 11:03:45 -07:00
hashicorp-copywrite[bot]andCameron Perera 5762b0df4d [COMPLIANCE] Add Copyright and License Headers (#2277)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-05-01 12:29:06 -05:00
Carlos Alcaide Corvo e421b8efc0 chore: 🤖 Add vscode specific to gitignore (#2221)
Add vscode specific stuff for gitignore
2024-05-01 07:39:35 -07:00
Carlos Alcaide Corvo 2d1e15a7bb Update changelog and cli version (#2280)
* Update changelog and cli version
2024-04-30 10:21:25 -07:00
Lisbet Alvarez dd92321b81 fix: 🐛 update label & description (#2279) 2024-04-29 11:52:45 -07:00
Lisbet Alvarez dce45031cb fix: 🐛 recording storage path not being set (#2276) 2024-04-26 15:49:29 -07:00
Zhihe Li 2666ec8244 fix: 🐛 Fix account password not being properly set (#2275) 2024-04-26 13:40:30 -04:00
Michael Li 3674d07762 test(e2e): Address flake (#2274)
Observed a flake when the Recording ID also contained an `OK`, causing a conflict with finding this OK button.
2024-04-25 13:52:26 -04:00
Zhihe Li dccf06cb0c fix: 🐛 Fix error when deleting auth method (#2273)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13624
2024-04-25 11:48:55 -04:00
Carlos Alcaide CorvoandZhihe Li c64e8a2993 Fix storage bucket empty state message (#2272)
* Fix text

* Update addons/core/translations/resources/en-us.yaml

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-04-24 15:08:04 -07:00
Lisbet Alvarez 5ae490c28c fix: 🐛 small updates to cred-library, cred-store & host-catalog (#2271) 2024-04-24 11:16:06 -07:00
Dharini Jeeva bedcdee048 fix: 🐛 permissions (#2269)
* fix: 🐛 permissions
2024-04-24 11:04:11 -07:00
Michael Li bd394d9517 fix: Update LDAP address example (#2270) 2024-04-24 12:22:04 -04:00
Lisbet Alvarez a6bdc4fa24 fix: 🐛 action errors on auth-method refresh (#2268) 2024-04-23 16:37:01 -07:00
Zhihe Li 3e9a06a5b5 fix: 🐛 Fix adding host set error in targets (#2267) 2024-04-23 10:49:33 -04:00
Zhihe Li 19908768a4 fix: 🐛 Fix HDS labels and helpers in host sets (#2266)
* fix: 🐛 Fix HDS labels and helpers in host sets
2024-04-22 20:56:26 -04:00
Dharini Jeeva 4274a045f7 fix: 🐛 add details (#2265) 2024-04-22 13:00:00 -07:00
Lisbet Alvarez 1270458430 fix: 🐛 add missing pagination component to cred stores (#2264)
* fix: 🐛 add missing pagination component to cred stores

* test: 💍 fix cred store acceptance tests
2024-04-22 12:43:39 -07:00
Dharini Jeeva 4c342061d3 fix: 🐛 aliasing bugs (#2257)
* fix: 🐛 aliasing bugs
2024-04-22 12:16:00 -07:00
Dharini Jeeva 5ce83d9239 fix: 🐛 title (#2263) 2024-04-22 10:57:40 -07:00
Lisbet Alvarez 148f2db941 refactor: 💡 remove route-action usage for auth-methods (#2178)
* refactor: 💡 remove route-action usage for auth-methods

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12603
2024-04-22 10:33:06 -07:00
hashicorp-copywrite[bot] f65f483611 [COMPLIANCE] Add Copyright and License Headers (#2262)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2024-04-22 11:47:53 -05:00
Lisbet Alvarez cc9003a118 fix: 🐛 required & optional labels in oidc auth-methods form (#2261) 2024-04-22 09:05:29 -07:00
Michael Li 20f8c99013 test(e2e): Fixes for 0.16.0 (#2258) 2024-04-22 10:39:53 -04:00
Dharini Jeeva 536ebc1c0f chore: 🤖 add doc links for aliases (#2260) 2024-04-19 13:37:51 -07:00
Zhihe Li 79a932bebb feat: 🎸 Add aliases to list view (#2256)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13487
2024-04-19 16:18:32 -04:00
Carlos Alcaide Corvo f246c24a08 Add field validation for scope within Storage bucket creation (#2259) 2024-04-19 11:42:24 -07:00
Michael Li d31cfca138 chore(e2e): Update playwright to 1.43 (#2254)
When running the Admin UI e2e tests against 0.16.0, there were some issues with trying to click on a link on the new pagination tables (links were not seen as visible). For some reason, updating the playwright version fixed this.
2024-04-18 11:49:46 -04:00
Carlos Alcaide Corvo 298e804500 Fix an afterModel check to avoid reloading the page when the queryParam gets updated (#2255) 2024-04-18 08:03:13 -07:00
Dharini Jeeva f9cd1c331f feat: 🎸 show associated aliases in target detail page (#2249)
* feat: 🎸 show associated aliases in target detail page
2024-04-17 12:39:34 -07:00
Dharini Jeeva a0fa66a14d fix: 🐛 plural title (#2252) 2024-04-17 12:26:58 -07:00
Dharini Jeeva 086d9da028 fix: 🐛 place modal outside table (#2251) 2024-04-17 11:40:23 -07:00
Cameron Perera 9b20b150eb fix: 🐛 transition aborted error when deleting group (#2250) 2024-04-17 11:13:58 -05:00
Zhihe Li 6bbddc56b1 fix: 🐛 Fix windows being unable to search client daemon (#2245)
When using the client daemon to search on windows, we use
the CLI instead of the unix socket for our requests.
Unfortunately that means we spawn a separate process to
retrive the results and one idiosyncracy of this is that
`spawnSync` buffers its outputs which means we were hitting
the default max buffer size. `spawn` doesn't have this
issue because it streams its outputs and we didn't previously
use `spawnSync` for any command that produced large amounts
of output.

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13466
2024-04-17 07:40:09 -07:00
Carlos Alcaide Corvo 0870a8f623 MinIO support for Admin UI (#2248)
Add support for MinIO creation form and list
2024-04-16 14:17:23 -07:00
Cameron Perera 98c16ad422 fix: 🐛 add missing scope_id from credential sources for targets (#2247) 2024-04-16 11:31:54 -05:00
Zhihe LiandCameron Perera 9156c8612e fix: 🐛 Add back scope_id as part of request query parameter (#2246)
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-04-16 11:15:16 -05:00
Lisbet Alvarez a43756895d fix: 🐛 auth-methods deleted items are showing on table view (#2244)
* fix: 🐛 auth-methods deleted items are showing on table view
2024-04-15 16:30:43 -07:00
Lisbet Alvarez adc50a939f refactor: 💡 remove uneeded rose cards component (#2243)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13321
2024-04-15 10:37:26 -07:00
hashicorp-copywrite[bot] 37cbb74c76 [COMPLIANCE] Add Copyright and License Headers (#2242)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2024-04-15 11:51:03 -05:00
Dharini Jeeva 80b633a063 Alias clear modal (#2239)
* fix: 🐛 permissions to create aliases within targets
2024-04-15 09:15:38 -07:00
Dharini Jeeva bd65c91ff9 chore: 🤖 alias target route (#2228) 2024-04-12 16:36:17 -07:00
Lisbet Alvarez c550faddb4 Icu 13218 update indexed db parser unit tests to test for filtering on boolean fields (#2238)
* test: 💍 unit tests for bool fields
* chore: 🤖 add deprecation handling

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13218
2024-04-12 16:22:27 -07:00
Cameron Perera 5e7c25a1fa refactor: 💡 update groups and workers "new" button to HDS (#2236) 2024-04-12 14:55:34 -04:00
ded8bdadd1 Icu 12592 add filtering pagination support for auth methods (#2209)
* feat: 🎸 add filtering & pagination to auth methods

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12592

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-04-12 14:55:34 -04:00
Cameron Perera 13da35c06b Icu 13357 create loading screen for admin UI list routes (#2231)
* test: 💍 fix failing tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13357

* feat: 🎸 add generic loading indicator for admin ui

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13357

* feat: 🎸 add custom loading logic for search and filtering

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13357

* chore: 🤖 fix lint error

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13357

* refactor: 💡 remove commented helper for sessions list

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13357

* style: 💄 update loading indicator margin to relative unit

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13357

* refactor: 💡 remove unneeded custom loading action

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13357
2024-04-12 14:55:34 -04:00
Lisbet Alvarez d52957d87b fix: 🐛 breadcrumbs on scopes route not showing since model move (#2235) 2024-04-12 14:55:34 -04:00
Zhihe Liandcameronperera 33d359e692 Fix tests from rebase (#2233)
* fix: 🐛 Fix tests broken by rebase onto main

---------

Co-authored-by: cameronperera <cameron.perera@hashicorp.com>
2024-04-12 14:55:34 -04:00
Cameron Perera 626bdc2c92 Icu 13374 add permission checks for filtering resources in sessions and targets (#2226)
* refactor: 💡 hide active sessions filter if no list permissions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13374

* test: 💍 add active sessions filter permissions test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13374

* refactor: 💡 add permissions check for targets and users

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13374

* refactor: 💡 address PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13374

* refactor: 💡 move user permission check to a helper func

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13374

* refactor: 💡 move permissions logic to user and target helper

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13374
2024-04-12 14:55:34 -04:00
Lisbet Alvarez edba33bbda Icu 13359 refactor query requests for resources added to indexed db (#2224)
* refactor: 💡 update query requests for resources in indexedDB

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13359
2024-04-12 14:55:34 -04:00
Zhihe Li 5d32d987bc feat: 🎸 Update how we store tokens in indexed-db (#2223)
Added logic to make the list tokens stored in indexed DB more granular.
I get a hash of the query parameters that will get sent to the controller
and use that as the id for the token. This also means extra logic for when
a token is invalid as we will need to delete all tokens of the same
resource type.
2024-04-12 14:55:34 -04:00
Lisbet Alvarez 6c59baa413 refactor: 💡 reduce network requests & call indexedDB directly (#2217)
* refactor: 💡 reduce network requests & call indexedDB directly

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13251
2024-04-12 14:55:34 -04:00
Cameron Perera c2c0b38187 fix: 🐛 move query inside list permission check (#2222)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13356
2024-04-12 14:55:34 -04:00
Lisbet Alvarez 1d7892230c Icu 13302 add filtering pagination support for scopes (#2216)
* feat: 🎸 add filtering and pagination to scopes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13302
2024-04-12 14:55:34 -04:00
Cameron Perera ece9c9b0c8 refactor: 💡 add include_terminated param to sessions query (#2219)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13130
2024-04-12 14:55:34 -04:00
Lisbet Alvarez 9a43c74e60 refactor: 💡 add active sessions column to targets table (#2196)
* refactor: 💡 add active sessions column to targets table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13085

* test: 💍 add test case

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13085
2024-04-12 14:55:33 -04:00
Cameron Perera eb4ec5f6de refactor: 💡 update Dropdown component to have name & toggleText (#2218)
* refactor: 💡 update Dropdown component to have name & toggleText

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13336

* test: 💍 remove hds class selector

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13336
2024-04-12 14:55:33 -04:00
Zhihe Li a39b208b48 Icu 12781 add filtering pagination support for host catalogs (#2213)
* feat: 🎸 Add searching for host catalogs

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12781
2024-04-12 14:55:33 -04:00
Lisbet AlvarezandZhihe Li 22353e7df6 Icu 12782 add filtering pagination support for credential stores (#2212)
* feat: 🎸 add filtering & pagination support for credential-store

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12782

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-04-12 14:55:33 -04:00
Cameron Perera 713ffd8d1b fix: 🐛 add parentScope.id to refresh action for sessions (#2215)
* fix: 🐛 add parentScope.id to refresh action for sessions

* refactor: 💡 remove scope_id from users and targets query
2024-04-12 14:55:33 -04:00
Cameron Perera 6e75439652 Icu 12587 add filtering pagination support for sessions (#2194)
* feat: 🎸 add pagination and filtering to sessions page

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 fix handling of null values in indexed-db-query

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 add method signatures where missing

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 address PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* fix: 🐛 add override for table header color when sortable

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 remove poller and add manual refresh action

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 remove force_refresh from sessions route queries

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 add user getter to session model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 remove logicalOperator value from queries

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 move action to controller from router

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 remove cleanValues from indexed-db-query

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 remove potential null values for user/target ids

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 add async/await back to cancelSession

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 update sessions route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 use translation string for Sessions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* test: 💍 fix controller test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 add scope_id to filters for query

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 remove scope_id and recursive in sessions query

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587

* refactor: 💡 how user query to use global and org scope

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12587
2024-04-12 14:55:33 -04:00
Cameron PereraandZhihe Li be96daa499 Icu 12591 add filtering pagination support for groups (#2205)
* refactor: 💡 move model hook to groups/index

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* feat: 🎸 add pagination to groups list view

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* feat: 🎸 add searching to groups

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* fix: 🐛 update scopeId to scope_id

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* test: 💍 clean up test refactor

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* refactor: 💡 update how groupsExisit is set

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* refactor: 💡 update mirage config for groups

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* test: 💍 fix failing groups create tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* refactor: 💡 add groups mirage config back

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* refactor: 💡 use translation string for Groups

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* refactor: 💡 update how groups are queried

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

* Update ui/admin/tests/acceptance/groups/list-test.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* refactor: 💡 update groups translation to title_plural

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12591

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-04-12 14:55:33 -04:00
Zhihe Li 9f11e8a25d fix: 🐛 Fix setting up indexed db when user logins first time (#2211) 2024-04-12 14:55:33 -04:00
Lisbet Alvarez 8be4e93a3c Icu 12590 add filtering pagination support for roles (#2204)
* feat: 🎸 add search & pagination for roles

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12590
2024-04-12 14:55:33 -04:00
Lisbet Alvarez a78522e09a feat: 🎸 add search & pagination support for users (#2195)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12589
2024-04-12 14:55:33 -04:00
Zhihe LiandLisbet Alvarez a26662eca5 feat: 🎸 Add filtering/pagination for admin ui targets (#2072)
* feat: 🎸 Add filtering/pagination for admin ui targets

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12193

* test: 💍 add acceptance test cases

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12193

* test: 💍 cleanup tests and add controller tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12193

---------

Co-authored-by: Lisbet Alvarez <lisbet.alvarez@hashicorp.com>
2024-04-12 14:55:33 -04:00
Zhihe LiandLisbet Alvarez d72fa0d6e3 feat: 🎸 Add indexedDb parser (#2068)
* feat: 🎸 Add indexedDb parser

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12164

---------

Co-authored-by: Lisbet Alvarez <lisbet.alvarez@hashicorp.com>
2024-04-12 14:55:33 -04:00
Zhihe Li bd5e3da1f4 feat: 🎸 Initial setup of IndexedDB (#2064)
* feat: 🎸 Initial setup of IndexedDB

* fix: 🐛 Rethrow errors up from indexed db handler
2024-04-12 14:55:33 -04:00
Dharini Jeeva f74f4d4a20 Target aliases list view (#2225)
target aliases list view
2024-04-11 14:18:38 -07:00
dependabot[bot]andZhihe Li 9bd45164bf chore(deps): bump tar from 6.1.11 to 6.2.1 in /ui/desktop/electron-app (#2230)
Bumps [tar](https://github.com/isaacs/node-tar) from 6.1.11 to 6.2.1.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.1.11...v6.2.1)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-04-11 14:05:30 -04:00
dependabot[bot] 363879c3c3 chore(deps): bump tar from 6.1.15 to 6.2.1 (#2232)
Bumps [tar](https://github.com/isaacs/node-tar) from 6.1.15 to 6.2.1.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.1.15...v6.2.1)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 13:41:15 -04:00
Lisbet Alvarez 0b4fd6765e fix: 🐛 modal bubbling up when user has not updated model (#2227)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13106
2024-04-09 12:05:15 -07:00
Dharini Jeeva c8839d6db1 Icu 12933 updates to target model to support aliasing (#2214)
* feat: 🎸 target aliases association API, form creation
2024-04-05 16:35:23 -07:00
Johan Brandhorst-SatzkornandZhihe Li ac5110d94a feat: 🎸 authenticate to ferry on authentication (#2203)
* feat: 🎸 authenticate to ferry on authentication

Replace the 'boundary daemon add-token' command with a simple
'boundary auth-tokens read -id <token_id>', relying on the boundary
CLI to do the work of sending the token to the client and Ferry
daemons.

* refactor: 💡 Use CLI to add tokens to daemons for all platforms

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-04-03 12:41:13 -04:00
hashicorp-tsccr[bot]andhashicorp-tsccr[bot] 78bcc103c2 Result of tsccr-helper -log-level=info gha update -latest . (#2210)
Co-authored-by: hashicorp-tsccr[bot] <hashicorp-tsccr[bot]@users.noreply.github.com>
2024-04-02 10:21:39 -07:00
dependabot[bot]andZhihe Li fe0cffdf0b chore(deps): bump express from 4.18.2 to 4.19.2 (#2208)
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-03-28 17:45:02 -04:00
Michael Li 79f4c2bc5d test(e2e): Update credential library form behavior (#2207)
* test(e2e): Update credential library form behavior

* fix(e2e):  Fix some locators due to form updates
2024-03-28 15:05:57 -04:00
Devon AndersonandZhihe Li 9843310dfb Icu 12860 retain values in form fields in credential library when switching types (#2169)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12860

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-03-27 15:18:58 -04:00
Dharini Jeeva db75b2e292 chore: 🤖 aliases list view (#2197)
* chore: 🤖 aliases list view
2024-03-25 16:54:15 -07:00
Cameron Perera ac1d98bbec fix: 🐛 show change cluster url when no auth methods (#2201)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13133
2024-03-25 14:24:53 -05:00
Cameron Perera 0c6744581d fix: 🐛 remove recursive param from list scopes endpoint (#2199)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12543
2024-03-25 13:47:07 -05:00
hashicorp-copywrite[bot] fb345f045e [COMPLIANCE] Add Copyright and License Headers (#2202)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2024-03-25 10:31:51 -07:00
Michael Li b1085def48 test(e2e): Add check for playing back session recording (#2198) 2024-03-25 12:13:27 -04:00
Michael Li 499b0fde31 refact(e2e): Convert to match "create" helper convention (#2200) 2024-03-22 16:22:34 -04:00
dependabot[bot]andCameron Perera bbf9c95267 chore(deps): bump follow-redirects from 1.15.4 to 1.15.6 (#2187)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-03-22 11:07:56 -05:00
Dharini Jeeva 2dbcc1c0af Alias create (#2193)
* feat: 🎸 create alias
2024-03-21 09:50:51 -07:00
Michael Li 6d88206491 refact(e2e): Update create helper methods (#2191) 2024-03-20 09:38:59 -04:00
de20df445c [COMPLIANCE] Add Copyright and License Headers (#2188)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2024-03-19 21:56:39 -05:00
Michael Li 45ad7a8f3b fix(e2e): Address flake in log in/log out test (#2189) 2024-03-19 16:52:30 -04:00
2837 changed files with 153003 additions and 65755 deletions

No files matched your search

+5 -3
View File
@@ -1,19 +1,21 @@
schema_version = 1
project {
license = "MPL-2.0"
copyright_year = 2020
license = "BUSL-1.1"
copyright_year = 2021
# (OPTIONAL) A list of globs that should not have copyright/license headers.
# Supports doublestar glob patterns for more flexibility in defining which
# files or folders should be ignored
header_ignore = [
".github/**",
".husky/**",
"**/node_modules/**",
"**/dist/**",
"**/coverage/**",
"**/pnpm-lock.yaml",
"**/pnpm-workspace.yaml",
"ui/desktop/electron-app/out/**",
"ui/desktop/electron-app/ember-dist/**",
"e2e-tests/api-client/**"
]
}
+91
View File
@@ -0,0 +1,91 @@
name: ci
on:
push:
branches: [main]
tags-ignore: ["**"]
workflow_dispatch:
schedule:
- cron: "41 5 * * *" # nightly: dependency audit + full test run
# One job on purpose: the shared runner pool is small, so everything runs
# sequentially on a single runner instead of a matrix.
jobs:
check:
runs-on: ubuntu-latest
timeout-minutes: 90
env:
CI: "true"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
- name: install pnpm
run: |
npm install -g pnpm@10.33.3
pnpm --version
- name: install dependencies
# Lifecycle scripts are skipped: the desktop postinstall compiles
# electron-app native modules, which the admin build and ember tests
# do not need.
run: pnpm install --frozen-lockfile --ignore-scripts
- name: install headless chrome
# Debian/Ubuntu chromium from the distro archive (fast, mirrored),
# exposed under the name testem's "Chrome" launcher looks for.
shell: bash
run: |
set -euo pipefail
if ! command -v google-chrome >/dev/null 2>&1; then
SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo"
export DEBIAN_FRONTEND=noninteractive
$SUDO apt-get update -qq
$SUDO apt-get install -y -qq --no-install-recommends chromium \
|| $SUDO apt-get install -y -qq --no-install-recommends chromium-browser
CHROME_BIN=$(command -v chromium || command -v chromium-browser)
mkdir -p "$HOME/bin"
ln -sf "$CHROME_BIN" "$HOME/bin/google-chrome"
echo "$HOME/bin" >> "$GITHUB_PATH"
fi
PATH="$HOME/bin:$PATH" google-chrome --version
- name: build admin ui
run: pnpm --filter admin build
- name: test addons
run: |
for a in core auth rose; do
echo "::group::addons/$a"
(cd addons/$a && npx ember test --test-port 0)
echo "::endgroup::"
done
echo "::group::addons/api"
(cd addons/api && npx ember exam --test-port 0 --split=4 --parallel=1)
echo "::endgroup::"
- name: test desktop ui
run: cd ui/desktop && npx ember test --test-port 0
- name: test admin ui
# The test build is made once and the partitions then run against the
# static output, one browser at a time. Rebuilding in-process (and four
# concurrent browsers) stalled on the small shared runners.
run: |
cd ui/admin
npx ember build --environment=test --output-path="$RUNNER_TEMP/admin-test-dist"
for p in 1 2 3 4; do
echo "::group::admin partition $p/4"
timeout 25m npx ember exam --test-port 0 --path "$RUNNER_TEMP/admin-test-dist" --split=4 --partition=$p
echo "::endgroup::"
done
- name: dependency audit
# Fails on critical advisories only; remaining high/moderate advisories
# are build/test tooling and are tracked in pnpm-overrides.md.
run: |
pnpm audit --audit-level=critical
(cd ui/desktop/electron-app && pnpm audit --audit-level=critical)
-2
View File
@@ -1,2 +0,0 @@
# Anyone attached to this rule will always been assigned to a pull request
* @hashicorp/boundary-ui
-31
View File
@@ -1,31 +0,0 @@
---
name: Bug report
about: Let us know about a bug!
title: ''
labels: ''
assignees: ''
---
<!-- Please reserve GitHub issues for bug reports and feature requests.
For questions, the best place to get answers is on our [discussion forum](https://discuss.hashicorp.com/c/boundary), as they will get more visibility from experienced users than the issue tracker.
Please note: We take Boundary's security and our users' trust very seriously. If you believe you have found a security issue in Boundary, please responsibly disclose by contacting us at security@hashicorp.com. Our PGP key is available at [our security page](https://www.hashicorp.com/security/).
-->
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Run `boundary authenticate ...`
2. Run `boundary connect ...`
3. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Additional context**
Add any other context about the problem here.
-7
View File
@@ -1,7 +0,0 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
contact_links:
- name: Ask a question
url: https://discuss.hashicorp.com/c/boundary
about: For increased visibility, please post questions on the discussion forum.
-23
View File
@@ -1,23 +0,0 @@
---
name: Feature request
about: Suggest something!
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Explain any additional use-cases**
If there are any use-cases that would help us understand the use/need/value please share them as they can help us decide on acceptance and prioritization.
**Additional context**
Add any other context or screenshots about the feature request here.
-30
View File
@@ -1,30 +0,0 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
addons:
- changed-files:
- any-glob-to-any-file: "addons/**/*"
api-addon:
- changed-files:
- any-glob-to-any-file: "addons/api/**/*"
auth-addon:
- changed-files:
- any-glob-to-any-file: "addons/auth/**/*"
styles-addon:
- changed-files:
- any-glob-to-any-file: "addons/rose/**/*"
ui:
- changed-files:
- any-glob-to-any-file: "ui/**/*"
admin:
- changed-files:
- any-glob-to-any-file: "ui/admin/**/*"
desktop:
- changed-files:
- any-glob-to-any-file: "ui/desktop/**/*"
-29
View File
@@ -1,29 +0,0 @@
:tickets: [Jira ticket](https://hashicorp.atlassian.net/browse/JIRA_TICKET_NUMBER)
## Description
<!-- Add a brief description of changes here -->
## Screenshots (if appropriate):
## How to Test
<!-- Add steps to test this change. Include any other necessary relevant links -->
<!--
Replace PATH_TO_FEATURE with Vercel link
-->
:technologist: [Admin preview](PATH_TO_FEATURE)
:desktop_computer: [Desktop preview](PATH_TO_FEATURE)
## Checklist:
<!-- strikethrough the checklist item that is not relevant to your change -->
- [ ] I have added before and after screenshots for UI changes
- [ ] I have added JSON response output for API changes
- [ ] I have added steps to reproduce and test for bug fixes in the description
- [ ] I have commented on my code, particularly in hard-to-understand areas
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
-94
View File
@@ -1,94 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
set -euo pipefail
# Configure Git
git config --global user.email "hc-github-team-secure-boundary@hashicorp.com"
git config --global user.name "github-team-secure-boundary"
# Fetch branches from ENT
git fetch origin
BRANCH=${1}
echo "BRANCH to merge is $BRANCH"
git checkout "${BRANCH}"
# Checkout OSS repo
git remote add oss-remote https://github.com/hashicorp/boundary-ui.git
git fetch oss-remote
# Merge oss/${BRANCH} into ent/${BRANCH}
git_merge_branch="${2}"
git checkout -b "${git_merge_branch}"
latest_oss_commit="$(git rev-parse --short oss-remote/${BRANCH})"
echo "Trying to merge the latest oss commit - ${latest_oss_commit} from oss/${BRANCH} into ent/${BRANCH}"
if ! errors=$(git merge -m "Merge Boundary UI OSS branch '${BRANCH}' at commit ${latest_oss_commit}" "${latest_oss_commit}"); then
# Here we can try to auto resolve conflicts
# This logic will vary from project to project. The below is just an example.
# We'll try to resolve package.json and yarn.lock conflicts by taking the OSS changes
conflicts=$(git diff --name-only --diff-filter=U)
printf "Found conflicts:\n${conflicts}\n"
# Resolve package.json conflicts by taking oss
if echo "$conflicts" | grep -q package.json; then
echo "Checking out oss package.json..."
git checkout --theirs package.json
git add package.json
fi
# Resolve yarn.lock conflicts by taking oss
if echo "$conflicts" | grep -q yarn.lock; then
echo "Checking out oss yarn.lock..."
git checkout --theirs yarn.lock
git add yarn.lock
fi
# If we can commit all the changes without conflict, we have resolved everything automatically
if ! git commit --no-edit; then
echo "Auto Merge failed, creating a draft PR"
git merge --abort
git clean -xfd
git fetch oss-remote
git checkout "${OSS_BRANCH}"
git checkout -b "${OSS_LOCAL_BRANCH}"
git push -f --set-upstream origin "${OSS_LOCAL_BRANCH}"
gh pr create \
--draft \
--fill-first \
--label "oss-merge" \
-B "${BASE_BRANCH}" \
-H "${OSS_LOCAL_BRANCH}" \
-a "${ACTOR}" \
-t "[${BASE_BRANCH/oss\/release\//}] OSS to ENT merge of (${SHA::7})" \
-b "${BASE_BRANCH/oss\//} upstream merge of (${SHA::7})
Merge failed, Please fix the conflicts using github UI or using the following commands:
\`\`\`bash
git checkout ${BASE_BRANCH}
git pull
git checkout ${OSS_LOCAL_BRANCH}
git merge ${BASE_BRANCH}
# fix conflicts and commit
git push origin ${OSS_LOCAL_BRANCH}
\`\`\`"
exit 0
fi
fi
# Check that there are actually changes to merge by comparing the
# merge branch to the current checked out branch
if (git diff ${BRANCH} --exit-code > /dev/null); then
echo "there are no changes to merge"
exit 0
fi
git push origin "${git_merge_branch}"
gh pr create \
--fill-first \
--label "oss-merge" \
-B "${BASE_BRANCH}" \
-H "${MERGE_BRANCH}" \
-a ${ACTOR} \
-t "[${BASE_BRANCH/oss\/release\//}] OSS to ENT merge of (${SHA::7})" \
-b "${BASE_BRANCH/oss\//} upstream merge of (${SHA::7})"
gh pr merge --auto --merge
# This PR will be need to be approved manually
-99
View File
@@ -1,99 +0,0 @@
name: Build Admin UI
on:
push:
branches:
- main
- "release/**"
workflow_dispatch:
jobs:
dependencies:
name: Install dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: "**/node_modules"
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn install
build-admin-ui-oss:
name: Build Admin UI OSS
needs: [dependencies]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: "**/node_modules"
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- name: Build
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn run build:ui:admin:oss
- name: Upload artifact admin-ui
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: admin-ui
path: ./ui/admin/dist/
- name: Upload artifact OSS admin UI
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: admin-ui-oss
path: ./ui/admin/dist/
build-admin-ui-enterprise:
name: Build Admin UI Enterprise
needs: [dependencies]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: "**/node_modules"
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- name: Build
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn run build:ui:admin:enterprise
- name: Upload artifact enterprise admin UI
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: admin-ui-ent
path: ./ui/admin/dist/
build-admin-ui-hcp:
name: Build Admin UI HCP
needs: [dependencies]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: "**/node_modules"
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- name: Build
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn run build:ui:admin:hcp
- name: Upload artifact HCP admin UI
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: admin-ui-hcp
path: ./ui/admin/dist/
@@ -1,34 +0,0 @@
name: "Trigger Build Artifacts for Testing"
on:
workflow_dispatch:
inputs:
branch:
description: Please use tag-like format n.n.n-someword (1.111.11-beta)
required: true
product_version:
required: true
type: string
description: The version number belonging to the oss binary to be used
commit:
required: true
type: string
description: The git SHA of the oss artifacts to be used
jobs:
trigger-gha-build-artifacts-for-testing:
runs-on: ubuntu-latest
steps:
- name: Release description
if: github.event_name == 'workflow_dispatch'
run: |
echo "Triggering Build Artifacts for Testing using BRANCH and TEST_TAG ${{ github.event.inputs.branch }}"
- name: Trigger Build Artifacts for Testing in boundary-ui-releases
run: |
export GITHUB_TOKEN="${{ secrets.ELEVATED_GITHUB_TOKEN }}"
gh workflow run build-artifacts-for-testing.yml \
--repo hashicorp/boundary-ui-releases \
--ref main \
-f TAG="${{ inputs.branch }}" \
-f PRODUCT_VERSION="${{ inputs.product_version }}" \
-f COMMIT="${{ inputs.commit }}" \
-57
View File
@@ -1,57 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
push:
branches: [main]
pull_request:
# The branches below must be a subset of the branches above
branches: [main]
schedule:
- cron: '0 19 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['javascript']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@592977e6ae857384aa79bb31e7a1d62d63449ec5 # codeql-bundle-v2.16.3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@592977e6ae857384aa79bb31e7a1d62d63449ec5 # codeql-bundle-v2.16.3
-88
View File
@@ -1,88 +0,0 @@
on:
issues:
types: [opened, closed, deleted, reopened]
pull_request_target:
types: [opened, closed, reopened]
issue_comment: # Also triggers when commenting on a PR from the conversation view
types: [created]
workflow_dispatch:
name: Jira Sync
jobs:
sync:
runs-on: ubuntu-latest
name: Jira sync
steps:
- name: Check if community user
if: github.event.action == 'opened'
id: boundary-team-role
run: |
TEAM=boundary
ROLE="$(gh api orgs/hashicorp/teams/${TEAM}/memberships/${{ github.actor }} | jq -r '.role | select(.!=null)')"
if [[ -n ${ROLE} ]]; then
echo "Actor ${{ github.actor }} is a ${TEAM} team member, skipping ticket creation"
else
echo "Actor ${{ github.actor }} is not a ${TEAM} team member"
fi
echo "role=${ROLE}" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.JIRA_SYNC_GITHUB_TOKEN }}
- name: Login
uses: atlassian/gajira-login@45fd029b9f1d6d8926c6f04175aa80c0e42c9026 # v3.0.1
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
- name: Set ticket type
if: github.event.action == 'opened' && !steps.boundary-team-role.outputs.role
id: set-ticket-type
run: |
if [[ "${{ github.event_name }}" == "pull_request_target" ]]; then
echo "type=PR" >> $GITHUB_OUTPUT
else
echo "type=ISS" >> $GITHUB_OUTPUT
fi
- name: Create ticket
if: github.event.action == 'opened' && !steps.boundary-team-role.outputs.role
uses: tomhjp/gh-action-jira-create@3ed1789cad3521292e591a7cfa703215ec1348bf # v0.2.1
with:
project: ICU
issuetype: "GH Issue"
summary: "${{ github.event.repository.name }} [${{ steps.set-ticket-type.outputs.type }} #${{ github.event.issue.number || github.event.pull_request.number }}]: ${{ github.event.issue.title || github.event.pull_request.title }}"
description: "${{ github.event.issue.body || github.event.pull_request.body }}\n\n_Created from GitHub Action for ${{ github.event.issue.html_url || github.event.pull_request.html_url }}, from ${{ github.actor }}_"
# customfield_10089 is Issue Link custom field
# customfield_10091 is team custom field
extraFields: '{"customfield_10089": "${{ github.event.issue.html_url || github.event.pull_request.html_url }}"}'
- name: Search
if: github.event.action != 'opened'
id: search
uses: tomhjp/gh-action-jira-search@04700b457f317c3e341ce90da5a3ff4ce058f2fa # v0.2.2
with:
# cf[10089] is Issue Link custom field
jql: 'issuetype = "GH Issue" and cf[10089]="${{ github.event.issue.html_url || github.event.pull_request.html_url }}"'
- name: Sync comment
if: github.event.action == 'created' && steps.search.outputs.issue
uses: atlassian/gajira-comment@164913891625fe50e9836957902e0bf7d9ef99a8 # v3.0.1
with:
issue: ${{ steps.search.outputs.issue }}
comment: "${{ github.actor }} ${{ github.event.review.state || 'commented' }}:\n\n${{ github.event.comment.body || github.event.review.body }}\n\n${{ github.event.comment.html_url || github.event.review.html_url }}"
- name: Close ticket
if: (github.event.action == 'closed' || github.event.action == 'deleted') && steps.search.outputs.issue
uses: atlassian/gajira-transition@38fc9cd61b03d6a53dd35fcccda172fe04b36de3 # v3.0.1
with:
issue: ${{ steps.search.outputs.issue }}
transition: Done
- name: Reopen ticket
if: github.event.action == 'reopened' && steps.search.outputs.issue
uses: atlassian/gajira-transition@38fc9cd61b03d6a53dd35fcccda172fe04b36de3 # v3.0.1
with:
issue: ${{ steps.search.outputs.issue }}
transition: "To Do"
-11
View File
@@ -1,11 +0,0 @@
name: "Pull Request Labeler"
on:
- pull_request_target
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
-74
View File
@@ -1,74 +0,0 @@
name: Validate Monorepo
on: pull_request
jobs:
dependencies:
name: Install dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn install
compliance:
name: License Compliance
needs: [dependencies]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn run compliance:licenses
lint:
name: Lint
needs: [dependencies, compliance]
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn lint
test:
name: Test
needs: [lint]
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
- run: yarn test
@@ -1,25 +0,0 @@
name: Trigger OSS to Enterprise Merge
on:
pull_request_target:
types:
- closed
branches:
- main
jobs:
trigger-oss-merge:
# Run this only on merge events in OSS repo
if: ${{ github.event.pull_request.merged && github.repository == 'hashicorp/boundary-ui' }}
runs-on: ubuntu-latest
steps:
- name: Trigger Merge
env:
GIT_REF: ${{ github.ref_name }}
GIT_SHA: ${{ github.sha }}
GH_PAT: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
GIT_ACTOR: ${{ github.actor }}
run: |
curl -H "Authorization: token $GH_PAT" \
-H 'Accept: application/json' \
-d "{\"event_type\": \"oss-merge\", \"client_payload\": {\"git-ref\": \"${GIT_REF}\", \"git-sha\": \"${GIT_SHA}\", \"git-actor\": \"${GIT_ACTOR}\" }}" \
"https://api.github.com/repos/hashicorp/boundary-ui-enterprise/dispatches"
-24
View File
@@ -1,24 +0,0 @@
name: OSS → ENT Merge
on:
repository_dispatch:
types: [ oss-merge ]
jobs:
oss-merge:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
token: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
- run: |
git fetch --prune --unshallow
./.github/scripts/merge.sh "${BASE_BRANCH}" "${MERGE_BRANCH}"
env:
BASE_BRANCH: ${{ github.event.client_payload.git-ref }}
OSS_BRANCH: oss-remote/${{ github.event.client_payload.git-ref }}
OSS_LOCAL_BRANCH: oss/${{ github.event.client_payload.git-ref }}-${{ github.event.client_payload.git-sha }}
MERGE_BRANCH: oss/merge-${{ github.event.client_payload.git-ref }}-${{github.event.client_payload.git-sha}}
GITHUB_TOKEN: ${{secrets.ELEVATED_GITHUB_TOKEN }}
MERGE_APPROVE_TOKEN: ${{secrets.ELEVATED_GITHUB_TOKEN }}
ACTOR: ${{ github.event.client_payload.git-actor }}
SHA: ${{github.event.client_payload.git-sha}}
@@ -1,25 +0,0 @@
name: "Trigger Test Boundary UI release"
on:
workflow_dispatch:
inputs:
branch:
description: Please use tag-like format n.n.n-someword (1.111.11-beta)
required: true
jobs:
trigger-gha-release:
runs-on: ubuntu-latest
steps:
- name: Release description
if: github.event_name == 'workflow_dispatch'
run: |
echo "Triggering Test release using BRANCH and TEST_TAG ${{ github.event.inputs.branch }}"
- name: Trigger Release workflow in boundary-ui-releases
run: |
export GITHUB_TOKEN="${{ secrets.ELEVATED_GITHUB_TOKEN }}"
gh workflow run release.yml \
--repo hashicorp/boundary-ui-releases \
--ref main \
-f TAG="${{ github.event.inputs.branch }}"
-22
View File
@@ -1,22 +0,0 @@
name: "Trigger Boundary UI release"
on:
push:
tags:
- '*'
jobs:
trigger-gha-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Release description
run: |
echo "Triggering release with a TAG ${GITHUB_REF#refs/tags/}"
- name: Trigger Release workflow in boundary-ui-releases
run: |
export GITHUB_TOKEN="${{ secrets.ELEVATED_GITHUB_TOKEN }}"
gh workflow run release.yml \
--repo hashicorp/boundary-ui-releases \
--ref main \
-f TAG="${GITHUB_REF#refs/tags/}"
+19 -1
View File
@@ -19,5 +19,23 @@ coverage-*
libpeerconnection.log
npm-debug.log*
testem.log
yarn-error.log
.watchman-cookie*
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
+2 -5
View File
@@ -1,5 +1,2 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
yarn compliance:licenses
npx lint-staged
pnpm compliance:licenses
pnpm lint-staged
-4
View File
@@ -1,6 +1,3 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
@@ -24,4 +21,3 @@ else
# This is to allow interaction with the terminal for commitizen
exec < /dev/tty && npx git-cz --hook || true
fi
-6
View File
@@ -1,6 +0,0 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
url_license = "https://github.com/hashicorp/boundary-ui/blob/main/LICENSE"
url_project_website = "https://learn.hashicorp.com/tutorials/boundary/getting-started-desktop-app"
url_source_repository = "https://github.com/hashicorp/boundary-ui"
+91 -364
View File
@@ -1,364 +1,91 @@
Copyright (c) 2020 HashiCorp, Inc.
Mozilla Public License, version 2.0
1. Definitions
1.1. "Contributor"
means each individual or legal entity that creates, contributes to the
creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used by a
Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached the
notice in Exhibit A, the Executable Form of such Source Code Form, and
Modifications of such Source Code Form, in each case including portions
thereof.
1.5. "Incompatible With Secondary Licenses"
means
a. that the initial Contributor has attached the notice described in
Exhibit B to the Covered Software; or
b. that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the terms of
a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in a
separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible, whether
at the time of the initial grant or subsequently, any and all of the
rights conveyed by this License.
1.10. "Modifications"
means any of the following:
a. any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered Software; or
b. any new file in Source Code Form that contains any Covered Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the License,
by the making, using, selling, offering for sale, having made, import,
or transfer of either its Contributions or its Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU Lesser
General Public License, Version 2.1, the GNU Affero General Public
License, Version 3.0, or any later versions of those licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that controls, is
controlled by, or is under common control with You. For purposes of this
definition, "control" means (a) the power, direct or indirect, to cause
the direction or management of such entity, whether by contract or
otherwise, or (b) ownership of more than fifty percent (50%) of the
outstanding shares or beneficial ownership of such entity.
2. License Grants and Conditions
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
a. under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
b. under Patent Claims of such Contributor to make, use, sell, offer for
sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
a. for any code that a Contributor has removed from Covered Software; or
b. for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
c. under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights to
grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
Section 2.1.
3. Responsibilities
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
a. such Covered Software must also be made available in Source Code Form,
as described in Section 3.1, and You must inform recipients of the
Executable Form how they can obtain a copy of such Source Code Form by
reasonable means in a timely manner, at a charge no more than the cost
of distribution to the recipient; and
b. You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter the
recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty, or
limitations of liability) contained within the Source Code Form of the
Covered Software, except that You may alter any license notices to the
extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
If it is impossible for You to comply with any of the terms of this License
with respect to some or all of the Covered Software due to statute,
judicial order, or regulation then You must: (a) comply with the terms of
this License to the maximum extent possible; and (b) describe the
limitations and the code they affect. Such description must be placed in a
text file included with all distributions of the Covered Software under
this License. Except to the extent prohibited by statute or regulation,
such description must be sufficiently detailed for a recipient of ordinary
skill to be able to understand it.
5. Termination
5.1. The rights granted under this License will terminate automatically if You
fail to comply with any of its terms. However, if You become compliant,
then the rights granted under this License from a particular Contributor
are reinstated (a) provisionally, unless and until such Contributor
explicitly and finally terminates Your grants, and (b) on an ongoing
basis, if such Contributor fails to notify You of the non-compliance by
some reasonable means prior to 60 days after You have come back into
compliance. Moreover, Your grants from a particular Contributor are
reinstated on an ongoing basis if such Contributor notifies You of the
non-compliance by some reasonable means, this is the first time You have
received notice of non-compliance with this License from such
Contributor, and You become compliant prior to 30 days after Your receipt
of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
license agreements (excluding distributors and resellers) which have been
validly granted by You or Your distributors under this License prior to
termination shall survive termination.
6. Disclaimer of Warranty
Covered Software is provided under this License on an "as is" basis,
without warranty of any kind, either expressed, implied, or statutory,
including, without limitation, warranties that the Covered Software is free
of defects, merchantable, fit for a particular purpose or non-infringing.
The entire risk as to the quality and performance of the Covered Software
is with You. Should any Covered Software prove defective in any respect,
You (not any Contributor) assume the cost of any necessary servicing,
repair, or correction. This disclaimer of warranty constitutes an essential
part of this License. No use of any Covered Software is authorized under
this License except under this disclaimer.
7. Limitation of Liability
Under no circumstances and under no legal theory, whether tort (including
negligence), contract, or otherwise, shall any Contributor, or anyone who
distributes Covered Software as permitted above, be liable to You for any
direct, indirect, special, incidental, or consequential damages of any
character including, without limitation, damages for lost profits, loss of
goodwill, work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses, even if such party shall have been
informed of the possibility of such damages. This limitation of liability
shall not apply to liability for death or personal injury resulting from
such party's negligence to the extent applicable law prohibits such
limitation. Some jurisdictions do not allow the exclusion or limitation of
incidental or consequential damages, so this exclusion and limitation may
not apply to You.
8. Litigation
Any litigation relating to this License may be brought only in the courts
of a jurisdiction where the defendant maintains its principal place of
business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions. Nothing
in this Section shall prevent a party's ability to bring cross-claims or
counter-claims.
9. Miscellaneous
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides that
the language of a contract shall be construed against the drafter shall not
be used to construe this License against a Contributor.
10. Versions of the License
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses If You choose to distribute Source Code Form that is
Incompatible With Secondary Licenses under the terms of this version of
the License, the notice described in Exhibit B of this License must be
attached.
Exhibit A - Source Code Form License Notice
This Source Code Form is subject to the
terms of the Mozilla Public License, v.
2.0. If a copy of the MPL was not
distributed with this file, You can
obtain one at
http://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular file,
then You may include the notice in a location (such as a LICENSE file in a
relevant directory) where a recipient would be likely to look for such a
notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - "Incompatible With Secondary Licenses" Notice
This Source Code Form is "Incompatible
With Secondary Licenses", as defined by
the Mozilla Public License, v. 2.0.
License text copyright (c) 2020 MariaDB Corporation Ab, All Rights Reserved.
"Business Source License" is a trademark of MariaDB Corporation Ab.
Parameters
Licensor: International Business Machines Corporation (IBM)
Licensed Work: The Licensed Work is (c) 2024 IBM Corp.
Additional Use Grant: You may make production use of the Licensed Work, provided
Your use does not include offering the Licensed Work to third
parties on a hosted or embedded basis in order to compete with
IBM Corp's paid version(s) of the Licensed Work. For purposes
of this license:
A "competitive offering" is a Product that is offered to third
parties on a paid basis, including through paid support
arrangements, that significantly overlaps with the capabilities
of IBM Corp's paid version(s) of the Licensed Work. If Your
Product is not a competitive offering when You first make it
generally available, it will not become a competitive offering
later due to IBM Corp releasing a new version of the Licensed
Work with additional capabilities. In addition, Products that
are not provided on a paid basis are not competitive.
"Product" means software that is offered to end users to manage
in their own environments or offered as a service on a hosted
basis.
"Embedded" means including the source code or executable code
from the Licensed Work in a competitive offering. "Embedded"
also means packaging the competitive offering in such a way
that the Licensed Work must be accessed or downloaded for the
competitive offering to operate.
Hosting or using the Licensed Work(s) for internal purposes
within an organization is not considered a competitive
offering. IBM Corp considers your organization to include all
of your affiliates under common control.
For binding interpretive guidance on using IBM Corp products
under the Business Source License, please visit our FAQ.
(https://www.hashicorp.com/license-faq)
Change Date: Four years from the date the Licensed Work is published.
Change License: MPL 2.0
For information about alternative licensing arrangements for the Licensed Work,
please contact licensing@hashicorp.com.
Notice
Business Source License 1.1
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make non-production use of the Licensed Work. The
Licensor may make an Additional Use Grant, above, permitting limited production use.
Effective on the Change Date, or the fourth anniversary of the first publicly
available distribution of a specific version of the Licensed Work under this
License, whichever comes first, the Licensor hereby grants you rights under
the terms of the Change License, and the rights granted in the paragraph
above terminate.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must purchase a
commercial license from the Licensor, its affiliated entities, or authorized
resellers, or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work and the Change Date may vary
for each version of the Licensed Work released by Licensor.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
+28
View File
@@ -0,0 +1,28 @@
Threshold UI
Copyright (c) 2026 CyberCove LLC
This repository is a community fork of "Boundary UI"
(https://github.com/hashicorp/boundary-ui), the admin web UI and desktop
client for HashiCorp Boundary.
Upstream work: Copyright (c) HashiCorp, Inc. 2020-2023;
Copyright (c) IBM Corp. 2024-2026
Upstream license: Business Source License 1.1 (see LICENSE)
The upstream LICENSE and per-file copyright / SPDX headers are retained
unchanged. Modifications made in this fork are provided under the same
license terms (BUSL-1.1), including its Additional Use Grant and Change
Date as stated in LICENSE.
This project is an independent community effort. It is NOT affiliated with,
endorsed by, or sponsored by HashiCorp, Inc. or IBM Corp. "HashiCorp",
"Boundary", and related marks and logos are trademarks of their respective
owners; they are used here only to describe the upstream origin of this work
and to name the upstream CLI/API this software interoperates with. The
upstream logos and brand art have been removed and replaced with plain
placeholder marks.
Third-party components keep their own licenses (see pnpm-lock.yaml and the
`pnpm compliance:licenses` script). The HashiCorp Design System packages
(@hashicorp/design-system-components, -tokens, @hashicorp/flight-icons) are
consumed unmodified from the public npm registry under their own licenses.
+68 -36
View File
@@ -1,10 +1,41 @@
# Boundary UI Monorepo
![](boundary.png)
![Validate Monorepo](https://github.com/hashicorp/boundary-ui/workflows/Validate%20Monorepo/badge.svg)
# Threshold UI Monorepo
This monorepo contains multiple projects, including UIs and addons, used by
Boundary.
Threshold (the admin web UI and the desktop client).
## About this fork
This repository is a community fork of
[hashicorp/boundary-ui](https://github.com/hashicorp/boundary-ui), rebranded
for the Threshold project (a community fork of Boundary CE). It is licensed
under the upstream Business Source License 1.1 (see [LICENSE](LICENSE) and
[NOTICE](NOTICE)) and is **not affiliated with, endorsed by, or sponsored by
HashiCorp or IBM**.
What changed relative to upstream:
- User-visible product name is Threshold (window titles, menus, about dialog,
installer/package names, app id `net.anhonesthost.cybercove.threshold`).
API paths, field names, protocol strings and environment variable names are
unchanged for compatibility with the server. The desktop client's persisted
settings are copied from the former "Boundary" user-data directory on first
launch.
- The desktop client looks for a `threshold` CLI first, then `boundary`.
- HashiCorp/IBM logos and brand art were removed and replaced with plain
placeholder marks.
- Nothing contacts HashiCorp services by default. The in-app updater, the
"unsupported controller" release-metadata lookup, and the CLI bundling
download are disabled until you configure your own hosts:
`THRESHOLD_UPDATE_FEED_URL` (desktop build, updater feed),
`THRESHOLD_RELEASES_METADATA_URL` / `THRESHOLD_RELEASES_PAGE_URL`
(desktop build, release links) and `THRESHOLD_CLI_RELEASES_URL` /
`THRESHOLD_CLI_ARCHIVE_PREFIX` (used with `SETUP_CLI=true` to bundle a CLI).
- Documentation links still point at the upstream Boundary documentation,
which is user-initiated only.
- Upstream HashiCorp-internal GitHub workflows and release metadata were
removed; CI lives in `.gitea/workflows/ci.yml`.
Upstream history, CHANGELOGs and copyright headers are preserved.
This top-level repository provides limited common tasks, such as installation
and commit assistance. However, most tasks must be executed from within a
@@ -25,7 +56,7 @@ subproject, e.g. running or testing.
- [Prerequisites](#prerequisites)
- [Optional Tooling](#optional-tooling)
- [Installation](#installation)
- [Yarn Commands](#yarn-commands)
- [Pnpm Commands](#pnpm-commands)
- [Contributing](#contributing)
- [Branching](#branching)
- [Building ToC](#building-toc)
@@ -33,8 +64,8 @@ subproject, e.g. running or testing.
- [Building with a Container](#building-with-a-container)
- [Building Desktop UI for Production](#building-desktop-ui-for-production)
- [Connect Boundary UI to Boundary local instance](#connect-boundary-ui-to-boundary-local-instance)
- [For admin](#for-admin)
- [For desktop](#for-desktop)
- [For Admin](#for-admin)
- [For Desktop](#for-desktop)
- [Committing](#committing)
- [License Checking](#license-checking)
@@ -67,8 +98,8 @@ You will need the following things properly installed on your computer.
* [Git][git]
* [Node.js][node]
* Supported versions: `v16` and `v18`.
* [Yarn][yarn] installed globally
* Supported versions: `v20` and `v22`.
* [Pnpm][pnpm] installed globally
* [Google Chrome][chrome]
* [Firefox][firefox]
@@ -90,18 +121,18 @@ that best suit you and your personal style.
* `git clone <repository-url>` this repository
* `cd boundary-ui`
* `yarn install`
* `pnpm install`
## Yarn Commands
## Pnpm Commands
List of available project commands. `yarn run <command-name>`
List of available project commands. `pnpm run <command-name>`
| Command | Description |
|---------------------|---|
| build | Builds Admin UI. |
| build | Builds Admin UI for production. |
| test | Runs tests in CI mode. |
| lint | Runs ember-template-lint on all of the hbs, js, and sass files. |
| compliance:audit | Checks for issues using `yarn audit` with moderate and above criticality.|
| compliance:audit | Checks for issues using `pnpm audit` with moderate and above criticality.|
| compliance:licenses | Checks that all dependencies have OSS-compatible licenses. |
| doc:toc | Automatically generates a table of contents for the README file. |
@@ -114,20 +145,20 @@ We follow [GitHub Flow][github-flow].
### Building ToC
To autogenerate a ToC (table of contents) for this README,
run `yarn doc:toc`. Please update the ToC whenever editing the structure
run `pnpm doc:toc`. Please update the ToC whenever editing the structure
of README.
### Building Admin UI for Production
See ui/admin/README.md Building for Production for more information on how to
build the Admin UI. Be sure to set build-related environment variables as
necessary for your target environment, as described in the Admin UI readme.
See [Admin UI README](ui/admin/README.md#building-for-production) for more information on how to
build the Admin UI for production. Be sure to set build-related environment variables as
necessary for your target environment, as described in the [Environment Variables](ui/admin/README.md#environment-variables) section of README.
To quickly produce a production build of Admin UI, run from this folder:
```bash
yarn install
yarn build
pnpm install
pnpm build
```
Assets are saved to `ui/admin/dist/`.
@@ -144,27 +175,27 @@ Assets are saved to `ui/admin/dist/`.
### Building Desktop UI for Production
See ui/desktop/README.md Building for Production for more information on how to
See [Desktop UI README](ui/desktop/README.md#building-for-production) for more information on how to
build the Desktop UI. Be sure to set build-related environment variables as
necessary for your target environment, as described in the Desktop UI readme.
necessary for your target environment, as described in the [Environment Variables](ui/desktop/README.md#environment-variables-prod) section of README.
To quickly produce a production build of Desktop UI, run from this folder:
```bash
yarn install
yarn build:ui:desktop
pnpm install
pnpm build:ui:desktop
```
In windows, UI is generated using docker to provide a stable UI across platforms.
```cmd
yarn install
pnpm install
docker-compose -f docker-compose-embedding.yml run build-desktop-production
yarn build:ui:desktop:app
pnpm build:ui:desktop:app
```
To provide a signing identify for macOS build, use `BOUNDARY_DESKTOP_SIGNING_IDENTITY`
environment variable to set signing certificate name (e.g Developer ID Application: * (*)) when building desktop app using `yarn build:ui:desktop:app`.
environment variable to set signing certificate name (e.g Developer ID Application: * (*)) when building desktop app using `pnpm build:ui:desktop:app`.
Assets are saved to `ui/desktop/electron-app/out/make/`.
DMG packaged desktop UI is available at asset location as `boundary.dmg`.
@@ -174,22 +205,23 @@ EXE archived desktop UI is available at asset location under `zip` folder.
This describes how to connect local Boundary UI to your local instance of Boundary.
This assumes you already have up and running a Boundary dev instance in your local environment with a listener `127.0.0.1:9200` (default behaviour). [Learn how to start a local Boundary dev instance](https://learn.hashicorp.com/tutorials/boundary/getting-started-dev?in=boundary/getting-started#start-a-dev-environment).
#### For admin
This assumes you already have up and running a Boundary dev instance in your local environment with a listener `127.0.0.1:9200` (default behaviour). [Learn how to start a local Boundary dev instance](https://developer.hashicorp.com/boundary/tutorials/get-started-community/community-get-started-dev)
#### For Admin
This assumes you are within `boundary-ui/ui/admin`.
You will need to turn `off` mirage, tell the UI where to find Boundary and run it: `$ ENABLE_MIRAGE=false API_HOST=http://localhost:9200 yarn start`.
You will need to turn `off` mirage, tell the UI where to find Boundary and run it: `$ ENABLE_MIRAGE=false API_HOST=http://localhost:9200 pnpm start`.
Following terminal instructions, open in your browser: `http://localhost:4200/`.
Once you open the UI you will see the login screen, authenticate using generated admin login name and password.
#### For desktop
#### For Desktop
This assumes you are within `boundary-ui/ui/desktop`.
You will need to turn `off` mirage and run it: `$ ENABLE_MIRAGE=false yarn start:desktop`.
You will need to turn `off` mirage and run it: `$ ENABLE_MIRAGE=false pnpm start:desktop`.
In login screen, authenticate using generated admin login name and password.
@@ -198,7 +230,7 @@ Enter the cluster URL of your Boundary dev instance, by default is: `http://loca
### Committing
We use `husky` and `lint-staged` to ensure linting and other checks pass before a
commit is completed. Simply do a `yarn install` to make sure the hooks are installed.
commit is completed. Simply do a `pnpm install` to make sure the hooks are installed.
Use a normal `git commit` to go through the checks, if you need to skip these checks,
use `git commit --no-verify` to bypass them. However, a consistent commit message will
@@ -217,10 +249,10 @@ will not be accepted.
[git]: https://git-scm.com/
[node]: https://nodejs.org/
[yarn]: https://classic.yarnpkg.com/lang/en/
[pnpm]: https://pnpm.io
[chrome]: https://google.com/chrome/
[firefox]: https://firefox.com/
[yarn-workspaces]: https://classic.yarnpkg.com/en/docs/workspaces/
[pnpm-workspaces]: https://pnpm.io/workspaces
[homebrew]: https://brew.sh
[warp]: https://www.warp.dev
[vscode]: https://code.visualstudio.com/
+3 -3
View File
@@ -12,8 +12,8 @@ insert_final_newline = true
indent_style = space
indent_size = 2
[*.{diff,md}]
trim_trailing_whitespace = false
[*.hbs]
insert_final_newline = false
[*.{diff,md}]
trim_trailing_whitespace = false
-8
View File
@@ -1,12 +1,4 @@
{
/**
Ember CLI sends analytics information by default. The data is completely
anonymous, but there are times when you might want to disable this behavior.
Setting `disableAnalytics` to true will prevent any data from being sent.
*/
"disableAnalytics": false,
/**
Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript
rather than JavaScript by default, when a TypeScript version of a given blueprint is available.
-25
View File
@@ -1,25 +0,0 @@
# unconventional js
/blueprints/*/files/
/vendor/
# compiled output
/dist/
/tmp/
# dependencies
/bower_components/
/node_modules/
# misc
/coverage/
!.*
.*/
.eslintcache
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/npm-shrinkwrap.json.ember-try
/package.json.ember-try
/package-lock.json.ember-try
/yarn.lock.ember-try
-67
View File
@@ -1,67 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
'use strict';
module.exports = {
root: true,
parser: '@babel/eslint-parser',
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
// This is specific babel-config. If grows consider creating a babel config file
requireConfigFile: false,
babelOptions: {
plugins: [
['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }],
],
},
// end of babel-config
},
plugins: ['ember'],
extends: ['eslint:recommended', 'plugin:ember/recommended', 'prettier'],
env: {
browser: true,
},
rules: {
'ember/no-get': 'off',
'ember/no-get-with-default': 'off',
'ember/no-computed-properties-in-native-classes': 'off',
'ember/no-assignment-of-untracked-properties-used-in-tracking-contexts':
'off',
},
overrides: [
// node files
{
files: [
'./.eslintrc.js',
'./.prettierrc.js',
'./.template-lintrc.js',
'./ember-cli-build.js',
'./index.js',
'./testem.js',
'./blueprints/*/index.js',
'./config/**/*.js',
'./tests/dummy/config/**/*.js',
],
parserOptions: {
sourceType: 'script',
},
env: {
browser: false,
node: true,
},
extends: ['plugin:n/recommended'],
},
{
// Test files:
files: ['tests/**/*-test.{js,ts}'],
extends: ['plugin:qunit/recommended'],
rules: {
'qunit/require-expect': [2, 'except-simple'],
},
},
],
};
+20
View File
@@ -0,0 +1,20 @@
# compiled output
/dist/
/declarations/
# dependencies
/node_modules/
# misc
/.env*
/.pnp*
/.eslintcache
/coverage/
/testem.log
# ember-try
/.node_modules.ember-try/
/package.json.ember-try
# broccoli-debug
/DEBUG/
+2 -12
View File
@@ -2,11 +2,7 @@
/dist/
/tmp/
# dependencies
/bower_components/
# misc
/.bowerrc
/.editorconfig
/.ember-cli
/.env*
@@ -19,21 +15,15 @@
/.prettierignore
/.prettierrc.js
/.template-lintrc.js
/.travis.yml
/.watchmanconfig
/bower.json
/CONTRIBUTING.md
/ember-cli-build.js
/testem.js
/tests/
/yarn-error.log
/yarn.lock
/tsconfig.declarations.json
/tsconfig.json
.gitkeep
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/npm-shrinkwrap.json.ember-try
/package.json.ember-try
/package-lock.json.ember-try
/yarn.lock.ember-try
+1 -13
View File
@@ -1,25 +1,13 @@
# unconventional js
/blueprints/*/files/
/vendor/
# compiled output
/dist/
/tmp/
# dependencies
/bower_components/
/node_modules/
# misc
/coverage/
!.*
.eslintcache
.lint-todo/
.*/
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/npm-shrinkwrap.json.ember-try
/package.json.ember-try
/package-lock.json.ember-try
/yarn.lock.ember-try
+4 -2
View File
@@ -1,8 +1,10 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
'use strict';
module.exports = {
overrides: [
{
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
'use strict';
+1 -1
View File
@@ -1,3 +1,3 @@
{
"ignore_dirs": ["tmp", "dist"]
"ignore_dirs": ["dist"]
}
+52 -19
View File
@@ -8,7 +8,7 @@ This addon contains the API data access layer for Boundary.
- [Add API to an App](#add-api-to-an-app)
- [Installation](#installation)
- [Yarn Commands](#yarn-commands)
- [Pnpm Commands](#pnpm-commands)
- [Linting](#linting)
- [Formatting](#formatting)
- [Running tests](#running-tests)
@@ -21,26 +21,59 @@ This addon contains the API data access layer for Boundary.
## Add API to an App
Add this addon to an Ember application's `devDependencies` as:
`"api": "*"`, for applications included in this monorepo.
`"api": "workspace:*"`, for applications included in this monorepo.
Since this addon also includes Mirage mocks, be sure to install
`ember-cli-mirage` and add the following config to your UI project:
This addon also includes Mirage mocks. To include the `miragejs` dependency and this addon's mirage handlers configure the consuming app's `config/environment.js`
```js
'ember-cli-mirage': {
directory: '../../addons/api/mirage'
mirage: {
enabled: true
}
```
Include `miragejs` and any api addon `peerDependencies` used by the mirage as dev dependencies in the consuming app,
eg: `@faker-js/faker`, otherwise mirage handler code might fail with an error.
To have mirage start and intercept requests when the application starts:
1. Add the `@embroider/macros` dependency to your application
2. Configure `@embroider/macros` with `startMirageWithApp` based on app's config within `ember-cli-build.js`:
```js
// ember-cli-build.js
module.exports = async function (defaults) {
// load the app's config
const { EMBER_ENV } = process.env;
var config = require('./config/environment')(EMBER_ENV);
const app = new EmberApp(defaults, {
'@embroider/macros': {
setOwnConfig: {
startMirageWithApp: config.mirage?.enabled ?? false
},
},
});
}
```
3. Finally, use the `@embroider/macros` config value for `startMirageWithApp` in `app/app.js` to conditionally start mirage:
```js
import { macroCondition, importSync, getOwnConfig, isTesting } from '@embroider/macros';
if (macroCondition(getOwnConfig().startMirageWithApp && !isTesting())) {
const startServer = importSync('[name of host app]/mirage/config').default;
startServer({});
}
```
## Installation
See monorepo README for installation instructions.
When manually installing addon, ensure `ember-data-fragments@5.0.0-beta.*` is installed to use api models with data fragments.
## Yarn Commands
## Pnpm Commands
List of available project commands. `yarn run <command-name>`
List of available project commands. `pnpm run <command-name>`
| Command | Description |
| ------- | ----------- |
@@ -64,28 +97,28 @@ Additional commands in the monorepo package may affect this projects.
## Linting
* `yarn lint:fix`
* `yarn lint:hbs`
* `yarn lint:hbs:fix`
* `yarn lint:js`
* `yarn lint:js:fix`
* `pnpm lint:fix`
* `pnpm lint:hbs`
* `pnpm lint:hbs:fix`
* `pnpm lint:js`
* `pnpm lint:js:fix`
## Formatting
Before submitting your work, be sure to run auto-formatters
(see commands above). This helps to ensure consistency among authors.
* `yarn format`
* `pnpm format`
## Running tests
* `yarn test` – Runs the test suite on the current Ember version
* `yarn test --server` – Runs the test suite in "watch mode"
* `yarn test:all` – Runs the test suite against multiple Ember versions
* `pnpm test` – Runs the test suite on the current Ember version
* `pnpm test --server` – Runs the test suite in "watch mode"
* `pnpm test:all` – Runs the test suite against multiple Ember versions
## Running the dummy application
* `yarn start`
* `pnpm start`
* Visit the dummy application at [http://localhost:4200](http://localhost:4200).
## Contributing
@@ -95,5 +128,5 @@ See monorepo README for more contribution instructions.
### Building ToC
To autogenerate a ToC (table of contents) for this README,
run `yarn doc:toc`. Please update the ToC whenever editing the structure
run `pnpm doc:toc`. Please update the ToC whenever editing the structure
of README.
@@ -0,0 +1,107 @@
/**
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import sinon from 'sinon';
import { typeOf } from '@ember/utils';
import { resourceNames } from 'api/handlers/cache-daemon-handler';
import { singularize } from 'ember-inflector';
import { underscore } from '@ember/string';
/**
* This test helper can be used to help setup your sinon stubs in your tests.
* Must be called after setupMirage and setupDesktopContextBridgeApiMock in tests.
*
* ```js
* import setupStubs from 'api/test-support/handlers/cache-daemon-search';
*
* module('Acceptance | my test', function(hooks) {
* setupApplicationTest(hooks);
* setupMirage(hooks);
* setupDesktopContextBridgeApiMock(hooks);
* setupStubs(hooks);
*
* // add your actual tests here
* });
* ```
*
* This will setup a stub for window.desktop.daemon.searchCacheDaemon and include
* helper methods to help setup what the cache daemon search command returns.
*
* @module Test Helpers
* @public
*/
export default function setupStubs(hooks) {
let stubTypes = [];
hooks.beforeEach(function () {
/**
* We aim to still use mirage data when stubbing out the cache daemon
* search. However, the handler expects the search data to be raw JSON from
* the API which will get serialized. We add back the scope object for it to
* get correctly normalized and other fields such as "attributes" from the
* API will already be hoisted and will not be re-normalized from mirage data.
*
* This convenience method can take in multiple types,
* e.g. this.stubCacheDaemonSearch('targets', 'sessions').
* This will have sinon stub out each call so the first call to search will
* provide all the models from the first parameter you specify,
* the second call will provide all the models from the second argument, etc.
* @param types
*/
this.stubCacheDaemonSearch = (...types) => {
stubTypes = types;
types.forEach((type, i) => {
this.searchCacheDaemonStub.onCall(i).callsFake(() => {
let models;
let resourceName;
if (typeOf(type) === 'object') {
models = type.func();
resourceName = type.resource;
} else {
models = this.server.schema[type].all().models;
resourceName = type;
}
return {
[underscore(resourceNames[singularize(resourceName)])]: models.map(
(model) => {
// Use internal serializer to serialize the model correctly
// according to our mirage serializers
const modelData =
this.server.serializerOrRegistry.serialize(model);
// Serialize the data properly to standard JSON as that is what
// we're expecting from the cache daemon response
return JSON.parse(JSON.stringify(modelData));
},
),
};
});
});
};
});
hooks.afterEach(function () {
// Verify the number of mocks we set up match with how
// many times the cache daemon was called with
sinon.assert.callCount(this.searchCacheDaemonStub, stubTypes.length);
stubTypes.forEach((type, i) => {
// Assert that the stub was called with the resource we're trying to mock
// so we don't mistakenly mock the wrong resource
const call = this.searchCacheDaemonStub.getCall(i);
let resource = type;
if (typeOf(type) === 'object') {
resource = type.resource;
}
const mappedResourceName = resourceNames[singularize(resource)];
sinon.assert.match(call.args[0], { resource: mappedResourceName });
});
sinon.restore();
});
}
@@ -1,107 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import sinon from 'sinon';
import { typeOf } from '@ember/utils';
/**
* This test helper can be used to help setup your sinon stubs in your tests.
* Must be called after setupMirage.
*
* ```js
* import setupStubs from 'api/test-support/handlers/client-daemon-search';
*
* module('Acceptance | my test', function(hooks) {
* setupApplicationTest(hooks);
* setupMirage(hooks);
* setupStubs(hooks);
*
* // add your actual tests here
* });
* ```
*
* This will setup a stub for the IPC service and include helper methods to
* help setup what the client daemon search command returns.
*
* @module Test Helpers
* @public
*/
export default function setupStubs(hooks) {
let stubTypes = [];
hooks.beforeEach(function () {
const ipcService = this.owner.lookup('service:ipc');
this.ipcStub = sinon.stub(ipcService, 'invoke');
/**
* We aim to still use mirage data when stubbing out the client daemon
* search. However, the handler expects the search data to be raw JSON from
* the API which will get serialized. We add back the scope object for it to
* get correctly normalized and other fields such as "attributes" from the
* API will already be hoisted and will not be re-normalized from mirage data.
*
* This convenience method can take in multiple types,
* e.g. this.stubClientDaemonSearch('targets', 'sessions').
* This will have sinon stub out each call so the first call to search will
* provide all the models from the first parameter you specify,
* the second call will provide all the models from the second argument, etc.
* @param types
*/
this.stubClientDaemonSearch = (...types) => {
stubTypes = types;
types.forEach((type, i) => {
let models;
let resourceName;
if (typeOf(type) === 'object') {
models = type.func();
resourceName = type.resource;
} else {
models = this.server.schema[type].all().models;
resourceName = type;
}
this.ipcStub
.withArgs('searchClientDaemon')
.onCall(i)
.returns({
[resourceName]: models.map((model) => {
// Use internal serializer to serialize the model correctly
// according to our mirage serializers
const modelData =
this.server.serializerOrRegistry.serialize(model);
// Serialize the data properly to standard JSON as that is what
// we're expecting from the client daemon response
return JSON.parse(JSON.stringify(modelData));
}),
});
});
};
});
hooks.afterEach(function () {
// Verify the number of mocks we set up match with how
// many times the client daemon was called with
sinon.assert.callCount(
this.ipcStub.withArgs('searchClientDaemon'),
stubTypes.length,
);
stubTypes.forEach((type, i) => {
// Assert that the stub was called with the resource we're trying to mock
// so we don't mistakenly mock the wrong resource
const ipcCall = this.ipcStub.withArgs('searchClientDaemon').getCall(i);
let resource = type;
if (typeOf(type) === 'object') {
resource = type.resource;
}
sinon.assert.match(ipcCall.args[1], { resource });
});
sinon.restore();
});
}
@@ -0,0 +1,34 @@
/**
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import { settled } from '@ember/test-helpers';
export function createSetupMirage(startMirage) {
return function setupMirage(hooks) {
hooks.beforeEach(function () {
if (!this.owner) {
throw new Error(
'Must call one of the ember-qunit setupTest() / setupRenderingTest() / setupApplicationTest() first',
);
}
// the environment property here is configuration to the mirage server:
// https://github.com/miragejs/miragejs/blob/7ff4f3f6fe56bf0cb1648f5af3f5210fcb07e20b/types/index.d.ts#L383
// It is not related to ember's build environment. In this case for mirage the "test" environment does
// not load the default scenario:
// https://github.com/miragejs/miragejs/blob/7ff4f3f6fe56bf0cb1648f5af3f5210fcb07e20b/lib/server.js#L302
this.server = startMirage({ environment: 'test' });
});
hooks.afterEach(function () {
return settled().then(() => {
if (this.server) {
this.server.shutdown();
delete this.server;
}
});
});
};
}
@@ -0,0 +1,37 @@
/**
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import { v4 as uuidv4 } from 'uuid';
/**
* This test helper can help set up and cleanup the database in your tests.
*
* ```js
* import { setupSqlite } from 'api/test-support/helpers/sqlite';
*
* module('Acceptance | my test', function(hooks) {
* setupApplicationTest(hooks);
* setupSqlite(hooks);
*
* // add your actual tests here
* });
* ```
*
* @param hooks
*/
export function setupSqlite(hooks) {
hooks.beforeEach(async function () {
const sqliteDb = this.owner.lookup('service:sqlite');
await sqliteDb.setup(`test-sqlite-${uuidv4()}`);
});
hooks.afterEach(async function () {
const sqliteDb = this.owner.lookup('service:sqlite');
await sqliteDb.deleteDatabase();
});
}
export default setupSqlite;
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
@@ -1,10 +1,10 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
import { inject as service } from '@ember/service';
import { service } from '@ember/service';
/**
* Provides abilities for channel recordings.
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
@@ -1,10 +1,10 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
import { inject as service } from '@ember/service';
import { service } from '@ember/service';
/**
* Provides abilities for credential store.
*/
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import { Ability } from 'ember-can';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+14 -6
View File
@@ -1,10 +1,10 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
import { inject as service } from '@ember/service';
import { service } from '@ember/service';
class InvalidRolePrincipalTypeError extends Error {
name = 'InvalidRolePrincipalTypeError';
@@ -16,7 +16,7 @@ class InvalidRolePrincipalTypeError extends Error {
export default class RoleAbility extends ModelAbility {
// =services
@service can;
@service abilities;
// =permissions
@@ -27,6 +27,13 @@ export default class RoleAbility extends ModelAbility {
return this.hasAuthorizedAction('set-grants');
}
/**
* @type {boolean}
*/
get canSetGrantScopes() {
return this.hasAuthorizedAction('set-grant-scopes');
}
/**
* @type {boolean}
*/
@@ -52,10 +59,11 @@ export default class RoleAbility extends ModelAbility {
const type = this.model.constructor.modelName;
const typeIsValid =
type === 'user' || type === 'group' || type === 'managed-group';
if (!typeIsValid)
if (!typeIsValid) {
throw new InvalidRolePrincipalTypeError(
`Expected a role principal of type 'user', 'group', or 'managed-group'. Got '${type}'.`,
);
return this.can.can(`read ${type}`, this.model);
}
return this.abilities.can(`read ${type}`, this.model);
}
}
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+4 -3
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
@@ -44,7 +44,8 @@ export default class TargetAbility extends ModelAbility {
*/
get canAddInjectedApplicationCredentialSources() {
return (
this.model.isSSH && this.hasAuthorizedAction('add-credential-sources')
(this.model.isSSH || this.model.isRDP) &&
this.hasAuthorizedAction('add-credential-sources')
);
}
/**
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
+16 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ModelAbility from './model';
@@ -17,4 +17,18 @@ export default class WorkerAbility extends ModelAbility {
get canCreateWorkerLed() {
return this.hasAuthorizedCollectionAction('create:worker-led');
}
/**
* @type {boolean}
*/
get canSetWorkerTags() {
return this.hasAuthorizedAction('set-worker-tags');
}
/**
* @type {boolean}
*/
get canRemoveTags() {
return this.hasAuthorizedAction('remove-worker-tags');
}
}
+58 -18
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import RESTAdapter from '@ember-data/adapter/rest';
@@ -115,6 +115,7 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
* @return {Promise} promise
*/
async query(store, schema, query) {
const { batchLimit, ...queryObject } = query;
let result;
let data = [];
@@ -125,17 +126,45 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
result = await super.query(store, schema, query);
return prenormalizeArrayResponse(result);
}
// Run this loop as long as the response_type is delta,
// which indicates that there are more items in the list
// or the batch size has not been reached
do {
result = await super.query(store, schema, query);
//add the result items to a data array
try {
result = await super.query(store, schema, queryObject);
} catch (e) {
// If we hit a rate limit mid-pagination, return whatever
// data has been accumulated so far rather than throwing and leaving
// the user stuck with nothing to show.
// Without a list_token this is the very first request with nothing to
// show, so rethrow and let normal error handling apply.
if (e?.errors?.[0]?.isRateLimited && queryObject.list_token) {
result ??= {};
result.items = data;
result.response_type = 'complete';
result.meta = {
...result.meta,
rateLimitWarning: { retryAfter: e.errors[0].retryAfter },
};
return prenormalizeArrayResponse(result);
}
// For all other errors (or a 429 on the very first request with
// no data yet), rethrow so normal error handling applies.
throw e;
}
// Add the result items to a data array
if (result && result.items) {
data.push(...result.items);
//pass in the list token for subsequent calls to fetch the remaining list items
query.list_token = result.list_token;
// Pass in the list token for subsequent calls to fetch the remaining list items
queryObject.list_token = result.list_token;
}
} while (result && result.response_type === 'delta');
} while (
result?.response_type === 'delta' &&
(!batchLimit || data.length < batchLimit)
);
result.items = data;
return prenormalizeArrayResponse(result);
@@ -162,7 +191,7 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
}
/**
* Overrides default ajax method by rewritting PUT requests as PATCH.
* Overrides default ajax method by rewriting PUT requests as PATCH.
* PATCH is the request method used by our API for updates.
*
* @override
@@ -211,7 +240,10 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
handleResponse(status, headers, payload, requestData) {
if (this.isInvalid(status, headers, payload)) {
const detailedMessage = this.generatedDetailedMessage(...arguments);
const transformedPayload = this.transformValidationErrors(payload);
const transformedPayload = this.transformValidationErrors(
payload,
status,
);
return new InvalidError(transformedPayload.errors, detailedMessage);
}
return super.handleResponse(status, headers, payload, requestData);
@@ -228,6 +260,7 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
* - `403 isForbidden`: the session is authenticated but does not have
* permission to perform the requested action
* - `404 isNotFound`: the requested resource could not be found
* - `429 isRateLimited`: the client has exceeded the rate limit
* - `500 isServer`: an internal server error occurred
* - `isUnknown`: an error occurred, but we don't know which or
* we don't distinguish it yet
@@ -239,7 +272,7 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
* @param {Object} payload
* @return {Array} errors payload
*/
normalizeErrorResponse(/*status, headers, payload*/) {
normalizeErrorResponse(status, headers /*, payload*/) {
const errors = super.normalizeErrorResponse(...arguments);
if (isArray(errors)) {
errors.forEach((error) => {
@@ -253,6 +286,14 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
case 404:
error.isNotFound = true;
break;
case 429:
error.isRateLimited = true;
// Attach rate-limit metadata from response headers so downstream
// error handlers can inform the user when they may retry.
error.retryAfter = Number(
headers['Retry-After'] ?? headers['retry-after'],
);
break;
case 500:
error.isServer = true;
break;
@@ -269,26 +310,25 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
* error format.
*
* @param {object} payload
* @param status
* @return {object}
*/
transformValidationErrors(payload) {
transformValidationErrors(payload, status) {
const fieldErrors = get(payload, 'details.request_fields') || [];
// Normalize the primary error message into "base", which is an error
// that applies to the whole model instance
const baseError = {
isInvalid: true,
status: payload.source,
code: payload.code,
detail: payload.message,
status,
code: payload?.kind,
detail: payload?.message,
source: { pointer: '/data' },
};
// Normalize field-specific errors, if any.
const errors = fieldErrors.map((error) => ({
detail: error.description,
// Going forward, nested attributes will be hoisted. Thus "attributes."
// must be stripped from the error name key. Until all models are
// transitioned away from model fragments, however, both this and the
// prior error key mappings are necessary.
// must be stripped from the error name key.
source: {
pointer: `/data/attributes/${error.name.replace('attributes.', '')}`,
},
@@ -314,6 +354,6 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
* @return {String} detailed error message
*/
generatedDetailedMessage(status, headers, payload /*, requestData*/) {
return payload.message;
return payload?.message;
}
}
+3 -3
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ApplicationAdapter from './application';
@@ -23,7 +23,7 @@ export default class HostCatalogAdapter extends ApplicationAdapter {
try {
const pluginName = snapshot.attr('plugin')?.name;
if (pluginName) url = `${url}?plugin_name=${pluginName}`;
} catch (e) {
} catch {
// Ignore any adapter errors here
}
}
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ApplicationAdapter from './application';
@@ -23,7 +23,7 @@ export default class SessionRecordingAdapter extends ApplicationAdapter {
let method;
try {
method = snapshot?.adapterOptions?.method;
} catch (e) {
} catch {
// Ignore any adapter errors here
}
if (method === 'download') {
+3 -3
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import ApplicationAdapter from './application';
@@ -22,7 +22,7 @@ export default class StorageBucketAdapter extends ApplicationAdapter {
let pluginName;
try {
pluginName = snapshot?.attr('plugin')?.name;
} catch (e) {
} catch {
// Ignore any adapter errors here
}
if (requestType === 'createRecord' && pluginName) {
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
+8 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -44,6 +44,12 @@ export default class GeneratedAliasModel extends BaseModel {
})
version;
@attr('string', {
description:
'This is the value referenced by the user that is resolved to the destination id.',
})
value;
@attr('string', {
description: 'This is the id of the resource that this Alias points to.',
})
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -84,6 +84,7 @@ export default class GeneratedCredentialLibraryModel extends BaseModel {
@attr('object', {
for: 'vault-generic',
description: 'It indicates the credential mapping overrides.',
emptyObjectIfMissing: true,
})
credential_mapping_overrides;
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -51,17 +51,17 @@ export default class GeneratedCredentialModel extends BaseModel {
})
version;
// =attributes (username_password, ssh_private_key)
// =attributes (username_password, ssh_private_key, username_password_domain)
@attr('string', {
for: ['username_password', 'ssh_private_key'],
for: ['username_password', 'ssh_private_key', 'username_password_domain'],
isNestedAttribute: true,
description: 'The username for credential.',
})
username;
// =attributes (username_password)
// =attributes (username_password, username_password_domain, password)
@attr('string', {
for: 'username_password',
for: ['username_password', 'username_password_domain', 'password'],
isNestedAttribute: true,
isSecret: true,
description: 'The password for credential.',
@@ -92,4 +92,12 @@ export default class GeneratedCredentialModel extends BaseModel {
description: 'The secret associated with credential.',
})
json_object;
// =attributes (username_password_domain)
@attr('string', {
for: 'username_password_domain',
isNestedAttribute: true,
description: 'The domain for credential.',
})
domain;
}
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -55,63 +55,224 @@ export default class GeneratedHostCatalogModel extends BaseModel {
})
plugin;
// AWS & Azure
// AWS, Azure & GCP
@attr('boolean', {
for: {
type: 'plugin',
name: ['aws', 'azure', 'gcp'],
},
isNestedAttribute: true,
description: '',
})
disable_credential_rotation;
// AWS and GCP specific
@attr('string', {
for: {
type: 'plugin',
name: ['aws', 'azure', 'gcp'],
},
description:
'An expression used to filter the workers that have network access to a service that is hosting the external object store.',
})
worker_filter;
// AWS specific
@attr('string', {
for: {
type: 'plugin',
name: 'aws',
},
isNestedAttribute: true,
description: '',
})
region;
// AWS static credentials
@attr('string', {
for: {
type: 'plugin',
name: 'aws',
credentialType: 'static-credential',
},
isNestedSecret: true,
description: '',
})
access_key_id;
@attr('string', {
for: {
type: 'plugin',
name: 'aws',
credentialType: 'static-credential',
},
isNestedSecret: true,
description: '',
})
secret_access_key;
// AWS dynamic credentials
@attr('string', {
for: {
type: 'plugin',
name: 'aws',
credentialType: 'dynamic-credential',
},
isNestedAttribute: true,
description: 'The role ARN to use.',
})
role_arn;
@attr('string', {
for: {
type: 'plugin',
name: 'aws',
credentialType: 'dynamic-credential',
},
isNestedAttribute: true,
description: 'The role external ID to use.',
})
role_external_id;
@attr('string', {
for: {
type: 'plugin',
name: 'aws',
credentialType: 'dynamic-credential',
},
isNestedAttribute: true,
description: 'The role session to use.',
})
role_session_name;
@attr('object-as-array', {
for: {
type: 'plugin',
name: 'aws',
credentialType: 'dynamic-credential',
},
isNestedAttribute: true,
description: 'The role tags to use.',
})
role_tags;
// Azure specific
@attr('string', {
for: {
type: 'plugin',
name: 'azure',
},
isNestedAttribute: true,
description: '',
})
tenant_id;
@attr('string', {
for: {
type: 'plugin',
name: 'azure',
},
isNestedAttribute: true,
description: '',
})
client_id;
@attr('string', {
for: {
type: 'plugin',
name: 'azure',
},
isNestedAttribute: true,
description: '',
})
subscription_id;
@attr('string', {
for: {
type: 'plugin',
name: 'azure',
},
isNestedSecret: true,
description: '',
})
secret_id;
@attr('string', {
for: {
type: 'plugin',
name: 'azure',
},
isNestedSecret: true,
description: '',
})
secret_value;
// GCP specific
@attr('string', {
for: {
type: 'plugin',
name: 'gcp',
},
isNestedAttribute: true,
description: 'The project ID associated with the service account.',
})
project_id;
@attr('string', {
for: {
type: 'plugin',
name: 'gcp',
},
isNestedAttribute: true,
description: 'The deployment area within a region.',
})
zone;
@attr('string', {
for: {
type: 'plugin',
name: 'gcp',
},
isNestedAttribute: true,
description:
'The email address associated with the service account. The email address used to uniquely identify the service account. It is required for authentication and authorization.',
})
client_email;
@attr('string', {
for: {
type: 'plugin',
name: 'gcp',
},
isNestedAttribute: true,
description:
'The unique identifier for the service account that will be impersonated.',
})
target_service_account_id;
@attr('string', {
for: {
type: 'plugin',
name: 'gcp',
},
description:
'The ID of the private key used to sign the JWT and authentication.',
isNestedSecret: true,
})
private_key_id;
@attr('string', {
for: {
type: 'plugin',
name: 'gcp',
},
description:
'The private key used to sign the JWT and obtain a OAuth 2.0 access token.',
isNestedSecret: true,
})
private_key;
}
+20 -3
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -63,6 +63,10 @@ export default class GeneratedHostSetModel extends BaseModel {
plugin;
@attr('number', {
for: {
type: 'plugin',
name: ['aws', 'azure', 'gcp'],
},
description:
"The number of seconds between the time boundary syncs the hosts in this set using this host set's plugin. If not provided a system determined default is used",
})
@@ -79,12 +83,21 @@ export default class GeneratedHostSetModel extends BaseModel {
host_ids;
@attr('string-array', {
for: {
type: 'plugin',
name: ['aws', 'azure', 'gcp'],
},
emptyArrayIfMissing: true,
trimWhitespace: true,
})
preferred_endpoints;
// AWS specific
// AWS & GCP specific
@attr('string-array', {
for: {
type: 'plugin',
name: ['aws', 'gcp'],
},
isNestedAttribute: true,
emptyArrayIfMissing: true,
})
@@ -92,6 +105,10 @@ export default class GeneratedHostSetModel extends BaseModel {
// Azure specific, comes in from API as "filter". This is to avoid collisions with filter
@attr('string', {
for: {
type: 'plugin',
name: 'azure',
},
description: '',
isNestedAttribute: true,
})
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
+6 -5
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -22,11 +22,12 @@ export default class GeneratedRoleModel extends BaseModel {
})
description;
@attr('string', {
@attr('array', {
emptyArrayIfMissing: true,
description:
"The scope to which this role applies. Defaults to the role's scope.",
"The scopes to which this role applies. Defaults to the role's scope.",
})
grant_scope_id;
grant_scope_ids;
@attr('date', {
description: 'The time this resource was created\nOutput only.',
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -96,19 +96,19 @@ export default class GeneratedSessionRecordingModel extends BaseModel {
})
duration;
@attr('string', {
@attr({
description:
'The current state of the session recording. One of "started", "available" and "unknown".',
'The detailed state of the session recording. This contains storage_state, syncing_error_details, and verification_error_details.',
readOnly: true,
})
state;
recording_state;
@attr('string', {
description:
'Any error seen during the closing of the session recording. Currently only set if state is "unknown".',
'The availability of the session recording. One of "available" or "not available".',
readOnly: true,
})
error_details;
availability;
@attr('date', {
description: 'The time until a session recording is required to be stored.',
@@ -122,4 +122,19 @@ export default class GeneratedSessionRecordingModel extends BaseModel {
readOnly: true,
})
delete_after;
// Deprecated: These two fields should be removed once support for RDP is added.
@attr('string', {
description:
'The current state of the session recording. One of "started", "available" and "unknown".',
readOnly: true,
})
state;
@attr('string', {
description:
'Any error seen during the closing of the session recording. Currently only set if state is "unknown".',
readOnly: true,
})
error_details;
}
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -70,9 +70,16 @@ export default class GeneratedStorageBucketModel extends BaseModel {
@attr('string', {
isNestedAttribute: true,
description: 'The AWS region to use.',
trimWhitespace: true,
})
region;
@attr('string', {
isNestedAttribute: true,
description: 'The MinIO location server.',
})
endpoint_url;
//this field is not used in the UI, but this is kept here to replicate the API
@attr('string', {
readOnly: true,
@@ -103,6 +110,7 @@ export default class GeneratedStorageBucketModel extends BaseModel {
@attr('string', {
isNestedAttribute: true,
description: 'The role ARN to use.',
trimWhitespace: true,
})
role_arn;
+15 -8
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -38,12 +38,6 @@ export default class GeneratedTargetModel extends BaseModel {
})
session_connection_limit;
@attr('string', {
description:
'Optional boolean expression to filter the workers that are allowed to satisfy this request.',
})
worker_filter;
@attr('string', {
description:
'Optional boolean expressions to filter the egress workers that are allowed to satisfy this request.',
@@ -108,4 +102,17 @@ export default class GeneratedTargetModel extends BaseModel {
isNestedAttribute: true,
})
enable_session_recording;
@attr('array', {
description:
'with_aliases specify the aliases that should be created when the target is created. ',
})
with_aliases;
@attr('array', {
readOnly: true,
description:
'with_aliases specify the aliases that should be created when the target is created. ',
})
aliases;
}
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
+25 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import BaseModel from '../../models/base';
@@ -72,4 +72,27 @@ export default class GeneratedWorkerModel extends BaseModel {
readOnly: true,
})
type;
@attr({
description:
'The deduplicated union of the tags reported by the worker ' +
'from its configuration and any tags added through other means.\nOutput only.',
readOnly: true,
emptyObjectIfMissing: true,
})
canonical_tags;
@attr({
description:
"The tags set in the worker's configuration file.\nOutput only.",
readOnly: true,
emptyObjectIfMissing: true,
})
config_tags;
@attr({
description: 'The api tags set for the worker.\nOutput only.',
emptyObjectIfMissing: true,
})
api_tags;
}
@@ -1,60 +1,52 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import { inject as service } from '@ember/service';
import { service } from '@ember/service';
import { getOwner, setOwner } from '@ember/application';
import { pluralize } from 'ember-inflector';
import { generateMQLExpression } from '../utils/mql-query';
import { paginateResults } from '../utils/paginate-results';
import { underscore } from '@ember/string';
const { __electronLog } = globalThis;
/**
* Not all types are yet supported by the client daemon so we'll
* Not all types are yet supported by the cache daemon so we'll
* just whitelist the ones we need to start with. Keys are the resource
* types and the values are the fields that are searchable by the client.
* @type {{session: string[], target: string[]}}
* @type {{session: string[], alias: string[], target: string[]}}
*/
const supportedTypes = {
target: ['id', 'name', 'description', 'address', 'scope_id'],
session: ['id', 'type', 'status', 'endpoint', 'scope_id', 'target_id'],
alias: ['id', 'type', 'value', 'destination_id'],
};
/**
* Takes an array and the current page and pagesize to calculate the correct
* number of results to return to the caller.
*
* @param array
* @param page
* @param pageSize
* @returns {[*]}
* Map the model resource name to the cache daemon resource name
* @type {{session: string, alias: string, target: string}}
*/
const paginateResults = (array, page, pageSize) => {
const length = array?.length;
if (!array || length === 0) {
return [];
}
if (!page || !pageSize) {
return array;
}
const offset = (page - 1) * pageSize;
const start = Math.min(length - 1, offset);
const end = Math.min(length, offset + pageSize);
return array.slice(start, end);
export const resourceNames = {
target: 'targets',
session: 'sessions',
alias: 'resolvable-aliases',
};
const fetchControllerData = async (context, next) => {
const { data } = context.request;
const { query: originalQuery } = data;
// remove client daemon specific query params
// remove cache daemon specific query params
// eslint-disable-next-line no-unused-vars
const { query, page, pageSize, ...remainingQuery } = originalQuery;
// If we get an error or client daemon is unavailable, fall back to calling the API
// If we get an error or cache daemon is unavailable, fall back to calling the API
context.request.data.query = remainingQuery;
const results = await next(context.request);
const models = results.content.toArray();
// As a result of https://rfcs.emberjs.com/id/0846-ember-data-deprecate-proxies/ we cannot use proxy array methods like .toArray
// use slice() instead as indicated in the RFC.
const models = results.content.slice();
const paginatedResult = paginateResults(models, page, pageSize);
paginatedResult.meta = { totalItems: models.length };
@@ -65,9 +57,8 @@ const fetchControllerData = async (context, next) => {
* Handler to sit in front of the API request layer
* so we can request from the daemon first
*/
export default class ClientDaemonHandler {
export default class CacheDaemonHandler {
@service session;
@service ipc;
constructor(context) {
setOwner(this, getOwner(context));
@@ -78,9 +69,8 @@ export default class ClientDaemonHandler {
case 'query': {
const { store, data } = context.request;
const { type, query, options: { pushToStore = true } = {} } = data;
const isClientDaemonRunning = await this.ipc.invoke(
'isClientDaemonRunning',
);
const isCacheDaemonRunning =
await window.desktop.daemon.isCacheDaemonRunning();
// eslint-disable-next-line no-unused-vars
let { recursive, scope_id, page, pageSize, ...remainingQuery } = query;
@@ -88,7 +78,7 @@ export default class ClientDaemonHandler {
if (
!Object.keys(supportedTypes).includes(type) ||
!isClientDaemonRunning
!isCacheDaemonRunning
) {
return fetchControllerData(context, next);
}
@@ -107,45 +97,57 @@ export default class ClientDaemonHandler {
const sessionData = this.session.data?.authenticated;
const auth_token_id = sessionData?.id;
const token = sessionData?.token;
const resourceName = resourceNames[type];
if (remainingQuery.query?.sort) {
const { attribute, direction } = remainingQuery.query.sort;
if (attribute && direction) {
remainingQuery.sort_by = attribute;
remainingQuery.sort_direction = direction;
}
}
remainingQuery = {
...remainingQuery,
query: searchQuery,
auth_token_id,
token,
resource: pluralize(type),
resource: resourceName,
};
let clientDaemonResults = {};
let cacheDaemonResults = {};
try {
clientDaemonResults = await this.ipc.invoke(
'searchClientDaemon',
remainingQuery,
);
cacheDaemonResults =
await window.desktop.daemon.searchCacheDaemon(remainingQuery);
} catch (e) {
// If we got a 403, most likely the client daemon was restarted and our token is no longer valid
// If we got a 403, most likely the cache daemon was restarted and our token is no longer valid
// I'm not sure if we can get a 401 since we always send a token but we'll handle it in the same way
if (e.statusCode === 403 || e.statusCode === 401) {
try {
await this.ipc.invoke('addTokenToClientDaemon', {
await window.desktop.daemon.addTokenToDaemons({
tokenId: auth_token_id,
token,
});
clientDaemonResults = await this.ipc.invoke(
'searchClientDaemon',
remainingQuery,
);
} catch {
cacheDaemonResults =
await window.desktop.daemon.searchCacheDaemon(remainingQuery);
} catch (err) {
// If it fails again just fall back to fetching controller data
__electronLog?.error(
'Failed to add token to daemons',
err.message,
);
}
}
} else {
__electronLog?.error(
`Failed to search cache daemon for ${resourceName}. Error:`,
e.message,
);
return fetchControllerData(context, next);
return fetchControllerData(context, next);
}
}
// Currently returns with a singular top level field with resource name
// e.g. { targets: [...] } or { sessions: [..] }
// So this just unwraps to the array, or undefined
const [results] = Object.values(clientDaemonResults);
const results = cacheDaemonResults[underscore(resourceName)];
const payload = { items: paginateResults(results, page, pageSize) };
const schema = store.modelFor(type);
@@ -171,7 +173,16 @@ export default class ClientDaemonHandler {
// This isn't conventional but is better than returning an ArrayProxy
// or EmberArray since the ember store query method asserts it has to be an array
// so we can't just return an object.
records.meta = { totalItems: results?.length ?? 0 };
// Also include whether the results are incomplete or is still refreshing
// as part of the response
records.meta = {
totalItems: results?.length ?? 0,
isLoadIncomplete: cacheDaemonResults.incomplete ?? false,
// Sometimes the refresh status returns an error status if it takes too long but it's still refreshing
isCacheRefreshing:
cacheDaemonResults.refresh_status !== 'not-refreshing',
};
return records;
}
default:
+308
View File
@@ -0,0 +1,308 @@
/**
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import { getOwner, setOwner } from '@ember/owner';
import { service } from '@ember/service';
import { modelMapping } from 'api/services/sqlite';
import { get } from '@ember/object';
import { typeOf } from '@ember/utils';
import { hashCode } from '../utils/hash-code';
import { generateSQLExpressions } from '../utils/sqlite-query';
const isISODateString = (str) =>
typeOf(str) === 'string' &&
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z?$/.test(str);
export default class SqliteHandler {
@service sqlite;
batchLimit = 5_000;
constructor(context) {
setOwner(this, getOwner(context));
}
async request(context, next) {
switch (context.request.op) {
case 'query': {
const { store, data } = context.request;
const {
type,
query,
options: {
pushToStore = true,
peekDb = false,
storeToken = true,
} = {},
} = data;
const supportedModels = Object.keys(modelMapping);
// Go through normal flow if we don't yet support the model
// or if we don't have a sqlite db instance
if (!supportedModels.includes(type) || !this.sqlite.worker) {
return next(context.request);
}
const adapter = store.adapterFor(type);
const schema = store.modelFor(type);
const serializer = store.serializerFor(type);
let {
page,
pageSize,
select,
query: queryObj,
...remainingQuery
} = query;
let payload,
listToken,
writeToDbPromise,
totalInsert = 0,
rateLimitWarning;
if (!peekDb) {
let tokenKey = `${type}-${hashCode(remainingQuery)}`;
// The global token key represents a recursive query from global scope,
// which pulls back every resource of this type.
const globalTokenKey = `${type}-${hashCode({ scope_id: 'global', recursive: true })}`;
if (storeToken) {
// Always prefer the global token when it exists for
// any more fine-grained query. The global query already fetched every
// item for this resource type, so we should just re-use it.
if (tokenKey !== globalTokenKey) {
const [globalTokenObj] = await this.sqlite.fetchResource({
...generateSQLExpressions('token', {
filters: { id: [{ equals: globalTokenKey }] },
}),
});
if (globalTokenObj?.token) {
tokenKey = globalTokenKey;
listToken = globalTokenObj.token;
}
}
// Only look up the specific token if no global token was found.
if (!listToken) {
const [tokenObj] = await this.sqlite.fetchResource({
...generateSQLExpressions('token', {
filters: { id: [{ equals: tokenKey }] },
}),
});
listToken = tokenObj?.token;
}
} else {
// This is a temporary fix of clearing the DB (specifically for auth-methods)
// since we are not storing the token we do not get back a list of removed_ids
// from the API call and we do not want deleted items from showing in list view.
await this.sqlite.deleteResource(type);
}
do {
try {
payload = await adapter.query(store, schema, {
...remainingQuery,
list_token: listToken,
batchLimit: this.batchLimit,
});
totalInsert += payload.items?.length ?? 0;
// Propagate any rate-limit warning the adapter attached
if (payload.meta?.rateLimitWarning) {
rateLimitWarning = payload.meta.rateLimitWarning;
}
// await the previous writeToDbPromise before writing to db again
if (writeToDbPromise) {
await writeToDbPromise;
}
} catch (err) {
payload = await this.retryQueryFailure({
err,
type,
adapter,
store,
schema,
remainingQuery,
});
totalInsert += payload.items?.length ?? 0;
}
listToken = payload.list_token;
writeToDbPromise = this.writeToDb(
payload,
storeToken,
tokenKey,
pushToStore,
serializer,
store,
schema,
type,
);
} while (payload.response_type === 'delta');
await writeToDbPromise;
}
if (totalInsert > 0) {
// If there were any inserts, let sqlite handle running analyze on the DB
await this.sqlite.analyzeDatabase();
}
const { sql, parameters } = generateSQLExpressions(type, queryObj, {
page,
pageSize,
select: select ?? [{ field: 'data' }],
});
const rows = await this.sqlite.fetchResource({
sql,
parameters,
});
const { sql: countSql, parameters: countParams } =
generateSQLExpressions(type, queryObj, {
select: [{ field: '*', isCount: true, alias: 'total' }],
});
const count = await this.sqlite.fetchResource({
sql: countSql,
parameters: countParams,
});
const results = rows.map((item) =>
JSON.parse(item.data, (key, value) =>
// Reviver function to convert any ISO strings back to date objects
// as we had to initially convert them to strings when stored in SQLite
isISODateString(value) ? new Date(value) : value,
),
);
// If we are not pushing to the store, use the raw data with id property
const records = pushToStore
? store.push({ data: results })
: results.map((record) => ({
...record.attributes,
id: record.id,
}));
// Set a meta property on the array to store the total items of the results.
// This isn't conventional but is better than returning an ArrayProxy
// or EmberArray since the ember store query method asserts it has to be an array
// so we can't just return an object.
records.meta = {
totalItems: count[0].total,
};
if (rateLimitWarning) {
records.meta.rateLimitWarning = rateLimitWarning;
}
return records;
}
default:
return next(context.request);
}
}
async retryQueryFailure({
err,
type,
adapter,
store,
schema,
remainingQuery,
}) {
// If we get an invalid list token, we'll delete the token and
// clear the DB and try again without a token.
if (
err?.errors?.[0].status === 400 &&
err?.errors?.[0].code === 'invalid list token'
) {
await this.sqlite.deleteResource(type);
// Delete all tokens of the same resource type so we don't keep clearing the DB.
// Even if other tokens may still be valid, we might have cleared data that they
// depended on so we should clear all tokens of the same type when clearing the DB.
const { sql, parameters } = generateSQLExpressions('token', {
filters: { id: [{ contains: type }] },
});
const tokenRows = await this.sqlite.fetchResource({
sql,
parameters,
});
const tokenIds = tokenRows.map((row) => row.id);
if (tokenIds.length > 0) {
await this.sqlite.deleteResource('token', tokenIds);
}
return await adapter.query(store, schema, {
...remainingQuery,
});
} else {
throw err;
}
}
async writeToDb(
payload,
storeToken,
tokenKey,
pushToStore,
serializer,
store,
schema,
type,
) {
if (payload.list_token && storeToken) {
await this.sqlite.insertResource('token', [
[tokenKey, payload.list_token],
]);
}
const normalizedPayload = serializer.normalizeResponse(
store,
schema,
payload,
null,
'query',
);
const { data: payloadData } = normalizedPayload;
// Remove any records from the DB if the API indicates they've been deleted
// Additionally remove deleted records from ember data store for symmetry
if (payload.removed_ids?.length > 0) {
await this.sqlite.deleteResource(type, payload.removed_ids);
if (pushToStore) {
payload.removed_ids.forEach((id) => {
const record = store.peekRecord(type, id);
store.unloadRecord(record);
});
}
}
// Store the new data we just got back from the API refresh
const items = payloadData.map((datum) => {
const params = Object.values(modelMapping[type]).map((key) => {
let value;
if (key === 'id') {
value = datum.id;
} else {
value = get(datum, `attributes.${key}`);
}
if (typeOf(value) === 'date') {
return value.toISOString();
}
return value;
});
return [...params, JSON.stringify(datum)];
});
await this.sqlite.insertResource(type, items);
}
}
+4 -4
View File
@@ -1,12 +1,12 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import Mixin from '@ember/object/mixin';
/**
* Overrides URL-building methods in an adpater for greater flexibility.
* Overrides URL-building methods in an adapter for greater flexibility.
* Specifically enhances calls to `urlPrefix` with `modelName`, `id`, and
* `snapshot`, which aren't normally passed. And adds support for a
* `urlSuffix` method, the return value of which is appended to the end of
@@ -22,7 +22,7 @@ export default Mixin.create({
/**
* This override behaves identically to the default method by default.
* It exists only to document the additional paramters to the method.
* It exists only to document the additional parameters to the method.
* @override
* @param {string} path
* @param {string} parentURL
+4 -4
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedAccountModel from '../generated/models/account';
@@ -47,8 +47,8 @@ export default class AccountModel extends GeneratedAccountModel {
* @type {string}
*/
get accountName() {
const { email, full_name, login_name } = this;
return email || full_name || login_name;
const { email, full_name, login_name, subject } = this;
return email || full_name || login_name || subject;
}
// =methods
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedAliasModel from '../generated/models/alias';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedAuthMethodModel from '../generated/models/auth-method';
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedAuthTokenModel from '../generated/models/auth-token';
+3 -3
View File
@@ -1,12 +1,12 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import Model from '@ember-data/model';
import { attr } from '@ember-data/model';
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';
import { service } from '@ember/service';
/**
* Base model class provides common functionality for all models.
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedChannelRecordingModel from '../generated/models/channel-recording';
@@ -1,6 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedConnectionRecordingModel from '../generated/models/connection-recording';
+38 -14
View File
@@ -1,33 +1,47 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedCredentialLibraryModel from '../generated/models/credential-library';
import {
TYPE_CREDENTIAL_SSH_PRIVATE_KEY,
TYPE_CREDENTIAL_USERNAME_PASSWORD_DOMAIN,
TYPE_CREDENTIAL_USERNAME_PASSWORD,
TYPE_CREDENTIAL_PASSWORD,
} from 'api/models/credential';
/**
* Enum options for credential library.
*/
export const options = {
http_method: ['GET', 'POST'],
key_type: ['ed25519', 'ecdsa', 'rsa'],
credential_types: ['ssh_private_key', 'username_password'],
credential_types: [
TYPE_CREDENTIAL_SSH_PRIVATE_KEY,
TYPE_CREDENTIAL_USERNAME_PASSWORD,
TYPE_CREDENTIAL_USERNAME_PASSWORD_DOMAIN,
TYPE_CREDENTIAL_PASSWORD,
],
mapping_overrides: {
username_password: {
username_attribute: 'Username',
password_attribute: 'Password',
},
ssh_private_key: {
private_key_attribute: 'Private Key',
private_key_passphrase_attribute: 'Private Key Passphrase',
username_attribute: 'Username',
},
username_password: ['username_attribute', 'password_attribute'],
ssh_private_key: [
'private_key_attribute',
'private_key_passphrase_attribute',
'username_attribute',
],
username_password_domain: [
'username_attribute',
'password_attribute',
'domain_attribute',
],
password: ['password_attribute'],
},
};
export const TYPE_CREDENTIAL_LIBRARY_VAULT_GENERIC = 'vault-generic';
export const TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE =
'vault-ssh-certificate';
export const TYPE_CREDENTIAL_LIBRARY_VAULT_LDAP = 'vault-ldap';
/**
* Supported Credential Library types.
@@ -35,6 +49,7 @@ export const TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE =
export const TYPES_CREDENTIAL_LIBRARY = Object.freeze([
TYPE_CREDENTIAL_LIBRARY_VAULT_GENERIC,
TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE,
TYPE_CREDENTIAL_LIBRARY_VAULT_LDAP,
]);
export default class CredentialLibraryModel extends GeneratedCredentialLibraryModel {
@@ -55,7 +70,8 @@ export default class CredentialLibraryModel extends GeneratedCredentialLibraryMo
get isVault() {
return (
this.type === TYPE_CREDENTIAL_LIBRARY_VAULT_GENERIC ||
this.type === TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE
this.type === TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE ||
this.type === TYPE_CREDENTIAL_LIBRARY_VAULT_LDAP
);
}
@@ -74,4 +90,12 @@ export default class CredentialLibraryModel extends GeneratedCredentialLibraryMo
get isVaultSSHCertificate() {
return this.type === TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE;
}
/**
* True if credential is a vault ldap type.
* @type {boolean}
*/
get isVaultLDAP() {
return this.type === TYPE_CREDENTIAL_LIBRARY_VAULT_LDAP;
}
}
+9 -3
View File
@@ -1,12 +1,18 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import GeneratedCredentialStoreModel from '../generated/models/credential-store';
import { equal } from '@ember/object/computed';
export const types = ['static', 'vault'];
export const TYPE_CREDENTIAL_STORE_STATIC = 'static';
export const TYPE_CREDENTIAL_STORE_VAULT = 'vault';
export const TYPES_CREDENTIAL_STORE = Object.freeze([
TYPE_CREDENTIAL_STORE_STATIC,
TYPE_CREDENTIAL_STORE_VAULT,
]);
export default class CredentialStoreModel extends GeneratedCredentialStoreModel {
// =attributes
Loaded 100 of 2837 files, more files were not shown because too many files have changed in this diff. Show more