Compare commits

..
932 Commits
Author SHA1 Message Date
Susmitha Girumala c868086c64 Merge pull request #719 from hashicorp/debian-support
Debian based Linux Desktop Support
2021-09-09 08:22:44 -04:00
Susmitha Girumala 316c5627dc Merge branch 'debian-support' of github.com:hashicorp/boundary-ui into debian-support 2021-09-09 08:12:05 -04:00
Susmitha Girumala faae34ccf5 chore: Bump desktop cli version to 0.6.0 2021-09-09 08:11:47 -04:00
Susmitha Girumala 015b034feb chore: Install staged desktop build in ubuntu vm 2021-09-09 08:11:17 -04:00
Susmitha Girumala f1e1603502 Merge branch 'main' into debian-support 2021-09-08 17:40:59 -04:00
Dharini Jeeva df2d5d688e Merge pull request #752 from hashicorp/chore-create-without-read-scope
chore: mocks should have scope collection grants
2021-09-08 14:26:52 -07:00
Susmitha Girumala a0227720a8 Merge branch 'main' into chore-create-without-read-scope 2021-09-08 16:06:19 -04:00
Randall Morey d07407e881 chore: mocks should have scope collection grants 2021-09-08 16:03:10 -04:00
Susmitha Girumala 7be2dc6d03 Merge branch 'main' into debian-support 2021-09-08 15:39:48 -04:00
Susmitha Girumala 1321df3265 Merge pull request #751 from hashicorp/chore-create-without-read-host
chore: 🤖 redirect to index on save in create-without-read case
2021-09-08 15:37:50 -04:00
Susmitha Girumala 8ad462288f Merge branch 'main' into chore-create-without-read-host 2021-09-08 15:15:19 -04:00
Randall Morey 16e83b7428 chore: 🤖 redirect to index on save in create-without-read case 2021-09-08 15:04:23 -04:00
Susmitha Girumala f705a386f0 Merge pull request #750 from hashicorp/chore-create-without-read-cred-lib
Chore create without read cred lib
2021-09-08 14:58:10 -04:00
Susmitha Girumala 5589cdd8d5 Merge branch 'main' into chore-create-without-read-cred-lib 2021-09-08 14:47:44 -04:00
Dharini Jeeva 53d5a77631 Merge pull request #749 from hashicorp/redirect-to-idx
fix: 🐛 redirect to index on save without read
2021-09-08 11:47:11 -07:00
Susmitha Girumala 357df84c22 Merge branch 'main' into chore-create-without-read-cred-lib 2021-09-08 14:36:50 -04:00
Dharini Jeeva 557076276b Update auth-methods.js 2021-09-08 11:35:47 -07:00
Susmitha Girumala 09894ed376 Merge branch 'main' into redirect-to-idx 2021-09-08 14:33:43 -04:00
Susmitha Girumala d5bf053b41 Merge pull request #748 from hashicorp/chore-create-without-read-account
chore: 🤖 redirect to index on save in create-without-read case
2021-09-08 14:33:31 -04:00
Randall Morey 8f11765b96 chore: 🤖 redirect to index on save in create-without-read case 2021-09-08 14:31:16 -04:00
Dharini Jeeva 4ad88d1dcd Merge branch 'main' into redirect-to-idx 2021-09-08 11:30:38 -07:00
dharini 92572395bb fix: 🐛 redirect to index on save without read 2021-09-08 11:29:13 -07:00
Randall Morey e389494a3b chore: 🤖 redirect to index on save in create-without-read case 2021-09-08 14:20:04 -04:00
Randall Morey aa9694cae2 Merge pull request #747 from hashicorp/feature-create-without-read-redirect
Feature create without read redirect
2021-09-08 14:06:57 -04:00
Randall Morey c462fa4c51 fix: 🐛 create-without-read case should redirect to index 2021-09-08 13:52:51 -04:00
Randall Morey f7d3dfdac0 chore: remove redundant text 2021-09-08 13:40:18 -04:00
Susmitha Girumala 6df7624afc fix: Update windows executable name in desktop 2021-09-08 13:35:16 -04:00
Susmitha Girumala fe9ce25ed0 fix: Add linux executable name for linux binary name 2021-09-07 18:33:13 -04:00
Susmitha Girumala a3ee4d02e8 Merge branch 'debian-support' of github.com:hashicorp/boundary-ui into debian-support 2021-09-07 18:02:57 -04:00
Susmitha Girumala 7988eee93d chore: Update debian maker config object to correct usage 2021-09-07 18:02:40 -04:00
Susmitha Girumala 57fb26f37d Merge branch 'main' into debian-support 2021-09-07 16:18:24 -04:00
Susmitha Girumala f956f95e78 refactor: Remove unused windows os check in desktop app 2021-09-07 16:00:27 -04:00
Randall Morey e613d55dcb Merge pull request #746 from hashicorp/fix-scope-create
fix: 🐛 fix lingering capabilities bugs
2021-09-07 15:11:39 -04:00
Randall Morey f75529b5c4 Merge pull request #744 from hashicorp/fix-auth-method-create
fix: 🐛 hide auth method create link when grants missing
2021-09-07 15:11:31 -04:00
Susmitha Girumala 75ed3b816b chore: Disable unsupported app update feature for linux 2021-09-07 15:03:33 -04:00
Susmitha Girumala c7c54daaad chore: Add overlow scroll class for linux and windows frame 2021-09-07 14:59:09 -04:00
Randall Morey 6458f928b9 fix: 🐛 fix lingering capabilities bugs 2021-09-07 14:20:49 -04:00
Susmitha Girumala 865e36c03c chore: Revert linux openExternal fix for additional tests 2021-09-07 11:29:46 -04:00
Susmitha Girumala af87d85a34 chore: Update desktop changelog with cli release date 2021-09-07 09:54:14 -04:00
Susmitha Girumala 9808e9a9d3 Merge pull request #745 from hashicorp/fix-scope-create
fix: 🐛 scope create shows only when permissions granted
2021-09-06 23:04:24 -04:00
Susmitha Girumala b22ea6fa79 chore: Clarify debian build of macos 2021-09-06 22:53:22 -04:00
Susmitha Girumala 0bda47ec29 chore: Use browserwindow for launching urls in linux 2021-09-06 22:49:59 -04:00
Randall Morey 0742987874 fix: 🐛 scope create shows only when permissions granted 2021-09-05 10:08:41 -04:00
Randall Morey 6b485b9f93 fix: 🐛 hide auth method create link when grants missing 2021-09-05 09:57:41 -04:00
Susmitha Girumala 1978b1c08e chore: Add staged build download to vagrantfile 2021-09-03 16:18:43 -04:00
Susmitha Girumala bce44de8e0 chore: Move vagrant scripts to root level 2021-09-03 16:00:08 -04:00
Susmitha Girumala 0bdd1a1f04 Merge remote-tracking branch 'origin/main' into debian-support 2021-09-03 15:30:52 -04:00
Susmitha Girumala 255d727ffb Merge branch 'debian-support' of github.com:hashicorp/boundary-ui into debian-support 2021-09-03 15:28:11 -04:00
Susmitha Girumala 7bfa3da53d chore: Update vagrant usage doc 2021-09-03 15:27:29 -04:00
Susmitha Girumala 28ebc93179 Merge pull request #741 from hashicorp/chore-enable-capabilities
chore: 🤖 enable capabilities feature
2021-09-03 15:07:35 -04:00
Randall Morey 547330821f chore: 🤖 enable capabilities feature 2021-09-03 14:51:33 -04:00
Dharini Jeeva cf70ea3e01 Merge pull request #736 from hashicorp/cred-lib-create-list
Cred lib create list
2021-09-03 11:43:32 -07:00
Dharini Jeeva 52afb56057 Merge branch 'main' into cred-lib-create-list 2021-09-03 11:28:56 -07:00
Dharini Jeeva df32a8eb4b Merge pull request #740 from hashicorp/accounts-create-list
feat: 🎸 accounts capability
2021-09-03 11:12:36 -07:00
Dharini Jeeva 14190fdf67 Update list-test.js 2021-09-03 11:09:33 -07:00
dharini 0459cab9ed Merge branch 'cred-lib-create-list' of github.com:hashicorp/boundary-ui into cred-lib-create-list 2021-09-03 10:48:39 -07:00
dharini db5b97fbda chore: 🤖 merge main + resolve conflict 2021-09-03 10:41:28 -07:00
Dharini Jeeva cf85826ff8 Merge branch 'main' into accounts-create-list 2021-09-03 10:26:40 -07:00
dharini 46f33aba17 feat: 🎸 accounts capability 2021-09-03 10:22:54 -07:00
Susmitha Girumala 177f96876c Merge branch 'main' into debian-support 2021-09-03 11:34:12 -04:00
Susmitha Girumala 50b0aee33c Merge pull request #739 from hashicorp/host-create-list
feat: 🎸 hosts capabilities create list
2021-09-03 11:33:36 -04:00
Susmitha Girumala 73002a38c4 chore: Add window actions test 2021-09-03 11:32:17 -04:00
Susmitha Girumala 17bd4c69b6 Merge branch 'main' into host-create-list 2021-09-03 11:15:20 -04:00
Susmitha Girumala a6b2557cd5 Merge pull request #738 from hashicorp/hosts-create-lists
feat: host sets capabilities create/list
2021-09-03 11:00:26 -04:00
Susmitha Girumala 9a5110aa71 Merge branch 'main' into hosts-create-lists 2021-09-03 10:31:36 -04:00
Susmitha Girumala caf85c57ec Merge pull request #737 from hashicorp/feature-scope-capabilities
Feature scope capabilities
2021-09-03 10:30:05 -04:00
Susmitha Girumala 878f3be747 Merge remote-tracking branch 'origin/main' into debian-support 2021-09-03 10:23:30 -04:00
Susmitha Girumala af9555e7f3 chore: Update desktop changelog 2021-09-03 10:23:15 -04:00
Randall Morey 4afdc77f4c Merge branch 'main' into feature-scope-capabilities 2021-09-03 09:36:56 -04:00
Dharini Jeeva 7ea772ca31 Merge pull request #735 from hashicorp/cred-store-create-list
Credential store capabilities - create/list
2021-09-02 16:58:50 -07:00
dharini 10fb5c8265 chore: 🤖 merge main + resolve conflicts 2021-09-02 16:36:18 -07:00
dharini 6c58749a6e fix: 🐛 verify manage action options 2021-09-02 16:25:47 -07:00
Dharini Jeeva e6b99e1418 Merge branch 'main' into hosts-create-lists 2021-09-02 16:17:56 -07:00
dharini 6babacd0bc fix: 🐛 verify manage options 2021-09-02 16:16:19 -07:00
dharini 4423c53cc4 fix: 🐛 add test for manage catalog options 2021-09-02 15:58:45 -07:00
dharini 451c1e861b feat: 🎸 hosts capabilities create lit 2021-09-02 15:28:40 -07:00
Dharini Jeeva 157dda4f8e Merge branch 'main' into cred-lib-create-list 2021-09-02 14:13:22 -07:00
dharini 929f22a48b Merge branch 'cred-lib-create-list' of github.com:hashicorp/boundary-ui into cred-lib-create-list 2021-09-02 14:11:17 -07:00
dharini d8aca33fcd fix: 🐛 update const name 2021-09-02 14:10:54 -07:00
Dharini Jeeva 144c7d13ee Merge pull request #734 from hashicorp/target-create-list
Target capabilities create/list
2021-09-02 14:05:31 -07:00
dharini 2bbbceb9d9 Merge branch 'main' into cred-lib-create-list 2021-09-02 13:52:57 -07:00
dharini cb948fb640 Merge branch 'target-create-list' of github.com:hashicorp/boundary-ui into target-create-list 2021-09-02 13:52:24 -07:00
dharini 6d8d28e1b4 fix: 🐛 merge main + resolve conflicts 2021-09-02 13:52:04 -07:00
dharini 99e24500d3 fix: 🐛 update const name 2021-09-02 13:38:09 -07:00
Dharini Jeeva 0a8f1d4405 Merge branch 'main' into feature-scope-capabilities 2021-09-02 13:37:55 -07:00
Dharini Jeeva f32311def3 Merge pull request #733 from hashicorp/sessions
Sessions
2021-09-02 13:34:53 -07:00
dharini e2b0c3ad13 fix: 🐛 typo 2021-09-02 13:17:19 -07:00
dharini b454efe41f fix: 🐛 host sets capabilities create/list 2021-09-02 13:01:58 -07:00
Dharini Jeeva e778847375 Merge branch 'main' into sessions 2021-09-02 12:27:41 -07:00
Dharini Jeeva eb5d4b2289 Merge branch 'main' into cred-lib-create-list 2021-09-02 12:17:41 -07:00
Dharini Jeeva 4bae0296cf Merge pull request #730 from hashicorp/host-catalog-create-list
feat: 🎸 host catalogs create/list capability
2021-09-02 12:17:20 -07:00
dharini 594f951ca7 fix: 🐛 scope route for create collection 2021-09-02 12:16:45 -07:00
Randall Morey 87938d968c Merge branch 'main' into target-create-list 2021-09-02 15:07:30 -04:00
Randall Morey 372f8d5b96 Merge branch 'main' into sessions 2021-09-02 15:07:04 -04:00
Randall Morey f8f7831cc3 test: 💍 add read capability and test 2021-09-02 15:00:44 -04:00
Susmitha Girumala b08f228c9b Merge branch 'main' into host-catalog-create-list 2021-09-02 14:20:08 -04:00
Susmitha Girumala 6367f3a9bc Merge pull request #727 from hashicorp/auth-create-list
feat: 🎸 auth methods capability
2021-09-02 14:19:56 -04:00
Susmitha Girumala b96510de65 chore: Enable icon in ubuntu toolbar 2021-09-02 13:57:12 -04:00
dharini e0d3b25be2 chore: 🤖 merge main + resolve conflicts 2021-09-02 10:55:51 -07:00
dharini 4b77732fd6 chore: 🤖 merge main + resolve conflicts 2021-09-02 10:36:44 -07:00
dharini 0b83b4bd85 Merge branch 'host-catalog-create-list' of github.com:hashicorp/boundary-ui into host-catalog-create-list 2021-09-02 10:23:12 -07:00
dharini 0ed506a111 chore: 🤖 merge main + resolve conflicts 2021-09-02 10:22:47 -07:00
dharini 1a97472c04 Merge branch 'main' into host-catalog-create-list 2021-09-02 10:08:18 -07:00
dharini 551619dfaa chore: 🤖 merge main + resolve conflicts 2021-09-02 10:05:51 -07:00
dharini a1528be4fd Merge branch 'target-create-list' of github.com:hashicorp/boundary-ui into target-create-list 2021-09-02 09:58:44 -07:00
dharini fbba6571db chore: 🤖 merge main + resolve conflicts 2021-09-02 09:58:27 -07:00
Dharini Jeeva 57de78e672 Merge branch 'main' into host-catalog-create-list 2021-09-02 09:50:06 -07:00
dharini 43cd357e9a Merge branch 'auth-create-list' of github.com:hashicorp/boundary-ui into auth-create-list 2021-09-02 09:49:08 -07:00
dharini 5e6a3e9d9a chore: 🤖 merge main 2021-09-02 09:48:28 -07:00
Randall Morey aea3e6f3ca chore: 🤖 manual merge from main 2021-09-02 12:13:36 -04:00
Susmitha Girumala eac0ee6b53 Merge branch 'main' into auth-create-list 2021-09-02 11:38:49 -04:00
dharini 9e8d7c9cae Merge branch 'auth-create-list' of github.com:hashicorp/boundary-ui into auth-create-list 2021-09-02 08:28:21 -07:00
dharini 273b5c8df6 chore: 🤖 merge main 2021-09-02 08:27:57 -07:00
Dharini Jeeva 4b430f1a7f Merge pull request #726 from hashicorp/roles-create-list
Roles capabilities create/list
2021-09-02 08:19:03 -07:00
Dharini Jeeva 66b40e5318 Update create-test.js 2021-09-02 08:15:04 -07:00
Dharini Jeeva 42283596b2 Update list-test.js 2021-09-02 08:13:47 -07:00
dharini cfd3fe468e Merge branch 'auth-create-list' of github.com:hashicorp/boundary-ui into auth-create-list 2021-09-02 08:12:32 -07:00
dharini 7c0366c790 fix: 🐛 update to orgurl 2021-09-02 08:12:10 -07:00
Susmitha Girumala 5c2540d22b Merge branch 'main' into roles-create-list 2021-09-02 11:02:30 -04:00
Susmitha Girumala a68d94161f Merge pull request #725 from hashicorp/group-create-list
Group create list
2021-09-02 11:00:11 -04:00
Randall Morey 6be0a2a17d chore: add scope delete capability 2021-09-02 10:58:06 -04:00
Susmitha Girumala fdfa88e089 chore: Add file actions to linux frame 2021-09-02 10:42:45 -04:00
Susmitha Girumala b1a34115a5 Merge branch 'main' into group-create-list 2021-09-02 10:29:24 -04:00
Susmitha Girumala 5a1192ed2e Merge pull request #717 from hashicorp/feature-user-collection-abilities
User create/list collection capabilities UI
2021-09-02 10:26:23 -04:00
Susmitha Girumala 5644e57fc5 Merge branch 'main' into feature-user-collection-abilities 2021-09-02 08:01:50 -04:00
dharini f097eab53a feat: 🎸 cred library capabilities list/create 2021-09-01 19:38:48 -07:00
dharini ce7d743f81 chore: 🤖 merge main 2021-09-01 15:46:29 -07:00
dharini 166b35860a chore: 🤖 merge main 2021-09-01 15:29:09 -07:00
Carlos Alcaide Corvo 2bbc12ddea Merge pull request #732 from hashicorp/chore-update-tar-resolutions
chore: 🤖 Update tar version resolutions
2021-09-01 14:59:27 -07:00
dharini c36030c12d chore: 🤖 merge main 2021-09-01 14:42:31 -07:00
Carlos Alcaide Corvo 521d70a4bb Merge branch 'main' into chore-update-tar-resolutions 2021-09-01 14:40:26 -07:00
dharini 13794c7bf8 feat: 🎸 typo 2021-09-01 14:26:25 -07:00
dharini 5f8042a551 Merge branch 'roles-create-list' of github.com:hashicorp/boundary-ui into roles-create-list 2021-09-01 14:17:38 -07:00
dharini 0ab5ff8370 fix: 🐛 add org to urls, typo 2021-09-01 14:17:00 -07:00
dharini 9f28484bd7 feat: 🎸 cred store create/list 2021-09-01 14:02:27 -07:00
Dharini Jeeva 57b9e86562 Merge pull request #723 from hashicorp/add-tests
user capabilities list test case
2021-09-01 11:41:38 -07:00
Randall Morey 40a5e221e7 Merge pull request #720 from hashicorp/chore-flight-icons-npm
Consume Flight icons from NPM
2021-09-01 13:46:56 -04:00
Randall Morey 165e4aec75 Merge branch 'main' into chore-flight-icons-npm 2021-09-01 13:34:10 -04:00
Carlos Alcaide Corvo 2448c03b27 Merge branch 'main' into chore-update-tar-resolutions 2021-09-01 09:21:52 -07:00
Carlos Alcaide Corvo 57ca18670f Merge pull request #731 from hashicorp/chore-update-ember-cli
chore: 🤖 Update ember-cli version
2021-09-01 09:21:35 -07:00
Dharini Jeeva e7b553efda Update list-test.js 2021-09-01 08:48:08 -07:00
Dharini Jeeva b27fe14dbc Update create-test.js 2021-09-01 08:47:34 -07:00
Dharini Jeeva 726f6d31e2 Merge branch 'main' into target-create-list 2021-09-01 08:46:08 -07:00
Dharini Jeeva 1fb3e466c6 Merge branch 'main' into sessions 2021-09-01 08:44:36 -07:00
dharini 2a8d42eaba feat: 🎸 target create list 2021-08-31 23:34:32 -07:00
dharini 32c69624f9 fix: 🐛 remove jsconfig file 2021-08-31 19:49:56 -07:00
dharini 04af1a431f feat: 🎸 sessions create list capabilities 2021-08-31 19:41:11 -07:00
Carlos Alcaide a6b7837af1 chore: 🤖 Update tar version resolutions
Update tar version resolutions to avoid security vulnerability
2021-08-31 17:22:20 -07:00
Carlos Alcaide Corvo 9343121f23 Merge branch 'main' into chore-update-ember-cli 2021-08-31 17:11:42 -07:00
Carlos Alcaide e76bc73c11 chore: 🤖 Update ember-cli version
Update ember-cli version to the latest stable version
2021-08-31 17:10:11 -07:00
dharini f344d73f32 feat: 🎸 host catalogs create/list capability 2021-08-31 15:17:57 -07:00
Randall Morey eb185279b2 Merge branch 'main' into chore-flight-icons-npm 2021-08-31 15:13:38 -04:00
Randall Morey 0dd0e16783 feature: implement scope update capability 2021-08-31 15:03:40 -04:00
Dharini Jeeva cb18e011a9 Merge branch 'main' into auth-create-list 2021-08-31 11:15:15 -07:00
dharini 09d9432825 fix: 🐛 del jsconfig file 2021-08-31 11:13:27 -07:00
dharini 3ae2423aa4 fix: 🐛 remove unnecessary change 2021-08-31 11:06:16 -07:00
dharini ab1a642f66 fix: 🐛 show dropdown link 2021-08-31 10:56:54 -07:00
Dharini Jeeva d94c4921c8 Merge branch 'main' into roles-create-list 2021-08-31 08:57:39 -07:00
Dharini Jeeva 910c0e4316 Merge branch 'main' into group-create-list 2021-08-31 08:57:21 -07:00
dharini 4f74f8578e fix: 🐛 resource name 2021-08-31 08:55:36 -07:00
dharini 77b1ca477d fix: 🐛 tests 2021-08-31 08:17:25 -07:00
dharini e291956c1b test: 💍 fix tests 2021-08-31 07:46:52 -07:00
Susmitha Girumala 8b51bcf95b Merge pull request #724 from hashicorp/chore-delete-xmldom-resolutions
chore: 🤖 Delete xmldom from resolutions
2021-08-31 10:25:15 -04:00
dharini ce286964d1 fix: 🐛 tests fix 2021-08-30 21:49:48 -07:00
dharini c971d6d2ce feat: 🎸 auth methods capability 2021-08-30 19:16:58 -07:00
Randall Morey 064c857d20 Merge branch 'feature-user-collection-abilities' into feature-scope-capabilities 2021-08-30 17:24:08 -04:00
Carlos Alcaide 161cf3cd53 chore: 🤖 Delete xmldom from resolutions
Delete xmldom from resolutions
2021-08-30 14:18:39 -07:00
Susmitha Girumala 2d1475d211 chore: Update debian maker version to allow nodev12 support 2021-08-30 10:44:51 -04:00
dharini fc4dab606e feat: 🎸 roles 2021-08-29 22:57:16 -07:00
dharini 3a3fdf2396 feat: 🎸 grp create/list 2021-08-27 13:09:00 -07:00
Randall Morey c82269c960 chore: switch back to 24 2021-08-27 15:31:30 -04:00
Randall Morey 87619dc9dc test: 💍 separate delete and update tests 2021-08-27 14:43:18 -04:00
Randall Morey 99baefaffc chore: 🤖 switch doc link to 16px style 2021-08-27 13:37:46 -04:00
Dharini Jeeva 40c2acd6ab Update list-test.js 2021-08-27 10:17:34 -07:00
Susmitha Girumala 4eaceabb00 chore: Enable electron frame only in macos 2021-08-27 11:35:44 -04:00
Susmitha Girumala a1cfa84919 chore: Create release folder for desktop builds 2021-08-27 11:28:00 -04:00
dharini 350c4f5f70 fix: 🐛 test 2021-08-27 08:06:24 -07:00
Randall Morey 7fb4110a1b chore: increase doc link icon size to 24 2021-08-26 10:49:29 -04:00
Randall Morey a400892790 chore: tweak doc icon size; switch sessions icon 2021-08-26 10:48:15 -04:00
Randall Morey dae42c7288 chore: pin flight-icons at 0.0.6-beta 2021-08-26 10:14:14 -04:00
Randall Morey 8ad6664a10 Merge pull request #721 from hashicorp/amyrlam/npm-tweak
Update flight-icons package and size tweak
2021-08-26 10:12:27 -04:00
dharini b5fdb850f6 test: 💍 add test 2021-08-26 00:02:57 -07:00
dharini b2f11f712b grp 2021-08-25 23:43:07 -07:00
Amy Lam b4d36438a4 Update icon to 24
In the dev tools the viewBox should be 24. @hashicorp/flight-icons now uses 16 as default.
2021-08-25 19:53:16 -07:00
Amy Lam 1017295a85 Update package 2021-08-25 19:29:54 -07:00
Randall Morey b0326e0c99 test: add user create test and stubbed list test 2021-08-25 16:24:26 -04:00
Randall Morey fc1d5ff0ca Merge branch 'main' into feature-user-collection-abilities 2021-08-25 15:42:52 -04:00
Randall Morey a54ae21858 chore: revert to flight-icons 0.0.3-beta due to breaking change 2021-08-25 15:23:52 -04:00
Randall Morey 30cc58cd56 Merge branch 'chore-flight-icons-npm' of https://github.com/hashicorp/boundary-ui into chore-flight-icons-npm 2021-08-25 15:13:34 -04:00
Randall Morey 59934559a5 chore: bump flight-icons to 0.0.4-beta 2021-08-25 15:13:24 -04:00
Randall Morey b8e99ce389 Merge branch 'main' into chore-flight-icons-npm 2021-08-25 15:02:39 -04:00
Susmitha Girumala 7d96d9125f fix: Update electron artifacts folder name 2021-08-25 14:17:29 -04:00
Randall Morey 4a0f1d04f2 fix: fix broken lockfile link 2021-08-25 10:57:47 -04:00
Randall Morey 1165d21ef6 chore: 🤖 consume flight icons from npm package 2021-08-25 10:52:20 -04:00
Susmitha Girumala 2fff4ab587 chore: Add vagrantfile for desktop ubuntu tests 2021-08-25 10:31:18 -04:00
Susmitha Girumala 2da521d643 fix: Update debian package name to boundary-desktop 2021-08-25 10:05:23 -04:00
Susmitha Girumala c10838234a feat: Add debian electron package maker 2021-08-25 10:05:23 -04:00
Dharini Jeeva b652f759c8 Merge pull request #716 from hashicorp/hosts
feat: 🎸 host read/del/update capability
2021-08-24 14:33:46 -07:00
Dharini Jeeva 0fc32bcbf7 Merge branch 'main' into hosts 2021-08-24 14:13:02 -07:00
Dharini Jeeva 329cf802d8 Merge branch 'main' into feature-user-collection-abilities 2021-08-24 13:59:44 -07:00
Dharini Jeeva 05178cc3a5 Merge pull request #715 from hashicorp/host-sets
Host sets read/del/update capabilities
2021-08-24 13:59:23 -07:00
Randall Morey 689fc249d8 Merge branch 'main' into feature-user-collection-abilities 2021-08-24 16:54:03 -04:00
Randall Morey 03e06a22a4 feat: 🎸 add messages for insufficient permissions 2021-08-24 16:47:33 -04:00
Dharini Jeeva 39b71aa526 Merge branch 'main' into host-sets 2021-08-24 13:45:25 -07:00
Dharini Jeeva 0053b09285 Merge pull request #714 from hashicorp/host-catalog
Host catalog capabilities
2021-08-24 13:45:11 -07:00
Dharini Jeeva 1e1387700c Merge branch 'main' into host-catalog 2021-08-24 13:31:43 -07:00
Dharini Jeeva f6016453f1 Merge branch 'main' into host-sets 2021-08-24 13:31:38 -07:00
Dharini Jeeva afccd0a9f7 Merge branch 'main' into hosts 2021-08-24 13:31:13 -07:00
Randall Morey a79ec87954 Merge branch 'main' into feature-user-collection-abilities 2021-08-24 15:02:00 -04:00
Randall Morey ec7e66160f Merge pull request #713 from hashicorp/feature-collection-abilities
Feature collection abilities
2021-08-24 15:01:21 -04:00
Dharini Jeeva cb0c03264f Merge branch 'main' into host-sets 2021-08-24 11:50:58 -07:00
Dharini Jeeva ababc5812d Merge branch 'main' into hosts 2021-08-24 11:50:14 -07:00
Randall Morey 46160aad6f Merge branch 'main' into feature-collection-abilities 2021-08-24 14:49:54 -04:00
Dharini Jeeva d881b57b87 Merge pull request #718 from hashicorp/cred-store-capabilities
Cred store capabilities
2021-08-24 11:49:41 -07:00
Randall Morey f510d2f4fe chore: add create and list to mock user 2021-08-24 14:46:21 -04:00
Dharini Jeeva 01e8b22a92 Merge branch 'main' into host-catalog 2021-08-24 08:09:47 -07:00
dharini 876fc0c71f feat: 🎸 cred store capabilities 2021-08-23 15:55:20 -07:00
dharini 858a3420e1 Merge branch 'main' of github.com:hashicorp/boundary-ui 2021-08-23 10:36:48 -07:00
Randall Morey d7735bd402 Merge branch 'main' into feature-collection-abilities 2021-08-20 15:04:41 -04:00
Randall Morey 0232570831 feature(capabilities): preliminary user create/list abilities 2021-08-20 14:58:43 -04:00
Dharini Jeeva 3fd8d2d01f Merge branch 'main' into hosts 2021-08-20 11:42:50 -07:00
dharini 73db666f43 Merge branch 'host-sets' of github.com:hashicorp/boundary-ui into host-sets 2021-08-20 11:14:45 -07:00
dharini 3506b34863 fix: 🐛 add else block 2021-08-20 11:14:21 -07:00
dharini 7d08d69db0 fix: 🐛 add else block 2021-08-20 10:52:26 -07:00
Randall Morey bdb38a5324 chore: 🤖 upgrade to chevron-left from flight 2021-08-20 13:51:45 -04:00
dharini c3381bc6fc fix: 🐛 add else block 2021-08-20 10:39:58 -07:00
Carlos Alcaide Corvo 8118781d06 Merge pull request #710 from hashicorp/chore-add-path-parse-yarn-resolutions
chore: 🤖 Add path transitive dep. to yarn resolutions
2021-08-20 08:46:39 -07:00
Carlos Alcaide Corvo 10a133b2af Merge branch 'main' into chore-add-path-parse-yarn-resolutions 2021-08-20 08:22:47 -07:00
Dharini Jeeva ee5b346275 Merge branch 'main' into feature-collection-abilities 2021-08-19 16:38:58 -07:00
Dharini Jeeva f6aa9ef7cf Merge branch 'main' into host-sets 2021-08-19 16:22:57 -07:00
dharini e7db3cb327 fix: 🐛 restructure tests 2021-08-19 16:17:54 -07:00
Dharini Jeeva 9794116562 Merge branch 'main' into host-catalog 2021-08-19 16:08:57 -07:00
dharini 7c377506c8 feat: 🎸 host catalog capabilities 2021-08-19 16:06:47 -07:00
Dharini Jeeva 5a1e3e235a Merge pull request #711 from hashicorp/desktop-target-capability
Desktop target capability
2021-08-19 15:03:51 -07:00
Randall Morey 3c83375d84 Update collection.js 2021-08-19 17:55:05 -04:00
Randall Morey 4256c7e552 Update collection.js 2021-08-19 17:54:35 -04:00
Randall Morey 6cbde9c982 Update collection.js 2021-08-19 17:54:12 -04:00
Randall Morey 4659b54e9e feat: 🎸 add ui-level navigation ability 2021-08-19 17:52:27 -04:00
dharini f22922ee60 fix: 🐛 restructure tests 2021-08-19 14:42:21 -07:00
Randall Morey 7fd7613c30 test: correct collection test 2021-08-19 17:33:52 -04:00
Randall Morey 7478aa8f09 feature(capabilities): add base collection ability class 2021-08-19 17:25:46 -04:00
dharini 128f963d47 Merge branch 'main' of github.com:hashicorp/boundary-ui 2021-08-19 14:25:32 -07:00
dharini 884a0ebbc5 fix: 🐛 update route 2021-08-19 14:19:03 -07:00
Carlos Alcaide Corvo eba1c7ad57 Merge branch 'main' into chore-add-path-parse-yarn-resolutions 2021-08-19 08:01:37 -07:00
Dharini Jeeva 64928feef2 Merge branch 'main' into desktop-target-capability 2021-08-18 16:14:55 -07:00
Dharini Jeeva 22156bdead Merge pull request #709 from hashicorp/fix-user-delete
fix: 🐛 delete user capability
2021-08-18 16:14:40 -07:00
dharini 50eb86b736 Merge branch 'main' of github.com:hashicorp/boundary-ui 2021-08-18 16:14:14 -07:00
dharini 4b039c9f59 feat: 🎸 host capability 2021-08-18 15:56:25 -07:00
Randall Morey 1846eae462 Merge branch 'main' into fix-user-delete 2021-08-18 17:16:19 -04:00
Randall Morey 25228d3855 Merge pull request #707 from hashicorp/auth-capabilities
feat: 🎸 auth capabilities
2021-08-18 17:16:09 -04:00
Dharini Jeeva 4f471c9799 Merge branch 'main' into desktop-target-capability 2021-08-18 14:09:08 -07:00
Susmitha Girumala 12d063a440 Merge branch 'main' into chore-add-path-parse-yarn-resolutions 2021-08-18 17:08:43 -04:00
Randall Morey 79c90b5183 Merge branch 'main' into auth-capabilities 2021-08-18 17:00:30 -04:00
Randall Morey 1f0d79aac3 Merge pull request #702 from hashicorp/roles-capabilities
feat: 🎸 role capabilities
2021-08-18 17:00:20 -04:00
dharini 2d35037365 feat: 🎸 hostset capability 2021-08-18 13:03:28 -07:00
Randall Morey 5cdc7af588 chore: 🤖 remove last usage of structure-icons 2021-08-18 13:33:40 -04:00
Randall Morey 6b9c8192a9 chore: convert test icon usage to flight 2021-08-18 12:51:40 -04:00
Randall Morey c84b561a58 chore: remove storybook usage of non-flight icons 2021-08-18 12:49:51 -04:00
Randall Morey e248bbe200 chore: 🤖 upgrade alert and cancel icons to flight 2021-08-18 12:38:17 -04:00
Randall Morey 5ce8355a2a chore: 🤖 upgrade auth method state icons to flight 2021-08-18 12:09:20 -04:00
Randall Morey c9b90db36d chore: 🤖 upgrade more-horizontal icon to flight 2021-08-18 12:01:31 -04:00
Randall Morey 7f022fc64c chore: 🤖 upgrade help and alert icons to flight 2021-08-18 11:53:44 -04:00
Randall Morey 2d32726207 chore: 🤖 upgrade trash icon to flight 2021-08-18 10:46:11 -04:00
Randall Morey 3d4bd2adf9 chore: 🤖 upgrade clipboard copy icons to flight 2021-08-18 10:03:16 -04:00
dharini 485f11cb01 fix: 🐛 add test 2021-08-17 23:42:11 -07:00
dharini 2545753c2c feat: 🎸 add test 2021-08-17 23:27:45 -07:00
Dharini Jeeva c1654180c4 Update targets-test.js 2021-08-17 16:15:37 -07:00
dharini 025297c619 desktop target read capability 2021-08-17 15:23:23 -07:00
dharini 39ec40d488 desktop target read capability 2021-08-17 15:16:28 -07:00
Carlos Alcaide ce01358a7e chore: 🤖 Add path transitive dep. to yarn resolutions
Add path-parse transitive dependency to yarn resolutions to fix a
security vulnerability with older versions of that library.
2021-08-17 15:07:28 -07:00
Randall Morey 4ed0178c7a chore: 🤖 upgrade resource icons to flight 2021-08-17 17:12:45 -04:00
Dharini Jeeva 4b84eec59d Merge branch 'main' into auth-capabilities 2021-08-17 13:39:26 -07:00
Randall Morey 40168fa8c4 Merge branch 'main' into roles-capabilities 2021-08-17 16:33:06 -04:00
dharini 044fe778af Merge branch 'main' of github.com:hashicorp/boundary-ui 2021-08-17 13:14:03 -07:00
Randall Morey 3a1416e2ff chore: 🤖 update user profile icon to flight 2021-08-17 16:13:36 -04:00
Randall Morey dc0e866796 chore: 🤖 upgrade global, org, and project icons to flight 2021-08-17 15:53:21 -04:00
Dharini Jeeva fe3b5e905f Merge branch 'main' into fix-user-delete 2021-08-17 11:12:28 -07:00
dharini 42bc4c1777 fix: 🐛 enclose delete user with if block 2021-08-17 11:06:57 -07:00
Carlos Alcaide Corvo 59565cf194 Merge pull request #706 from hashicorp/chore-update-jszip-resolutions
chore: 🤖 Add jszip to resolutions
2021-08-17 10:57:28 -07:00
Carlos Alcaide Corvo 8cfcf47900 Merge branch 'main' into chore-update-jszip-resolutions 2021-08-17 10:45:49 -07:00
Dharini Jeeva 15522f31af Update auth-method.js 2021-08-17 08:47:16 -07:00
dharini da04a190e6 fix: 🐛 add missing test and remove jsconfig files 2021-08-17 08:42:50 -07:00
Dharini Jeeva 3cc5456bde Merge branch 'main' into roles-capabilities 2021-08-17 08:13:55 -07:00
Randall Morey f98bfc2130 Merge pull request #708 from hashicorp/target-capabilities
feat: 🎸 target capabilities
2021-08-17 10:19:24 -04:00
Randall Morey 168e7fbac6 Merge branch 'main' into target-capabilities 2021-08-17 10:02:10 -04:00
Randall Morey 7e29d47b70 Merge pull request #701 from hashicorp/groups-capabilities
Groups capabilities
2021-08-17 10:01:47 -04:00
Randall Morey a03983e2f3 Merge branch 'main' into groups-capabilities 2021-08-17 09:47:18 -04:00
Randall Morey b5b2f61cbe Merge pull request #700 from hashicorp/feat-scope-capabilities
Feat user capabilities
2021-08-17 09:47:08 -04:00
Randall Morey 84fe240c1f Merge branch 'main' into groups-capabilities 2021-08-17 09:36:33 -04:00
Randall Morey 27f8be2213 Merge branch 'main' into feat-scope-capabilities 2021-08-17 09:34:37 -04:00
Randall Morey 382c4cbc7e Merge pull request #704 from hashicorp/feature-cred-library-capabilities
feat: 🎸 credential library read/update/delete capabilities
2021-08-17 09:25:32 -04:00
dharini 3b1837999b Merge branch 'feat-scope-capabilities' of github.com:hashicorp/boundary-ui into feat-scope-capabilities 2021-08-16 17:21:17 -07:00
dharini a1c4d00eed add test 2021-08-16 17:18:35 -07:00
dharini c2ffe19d44 fix: 🐛 test cases 2021-08-16 17:10:18 -07:00
Dharini Jeeva 14d96a4a8a Update update-test.js 2021-08-16 17:08:31 -07:00
Dharini Jeeva 5284514a05 Update read-test.js 2021-08-16 17:08:19 -07:00
Dharini Jeeva a39752d1c9 Update delete-test.js 2021-08-16 17:08:07 -07:00
Dharini Jeeva b0bd9b6808 Update update-test.js 2021-08-16 17:07:00 -07:00
Dharini Jeeva 2cca6fe005 Update read-test.js 2021-08-16 17:06:45 -07:00
Dharini Jeeva 455b1a29b0 Update delete-test.js 2021-08-16 17:06:34 -07:00
Dharini Jeeva cdb9761be6 Merge branch 'main' into roles-capabilities 2021-08-16 17:06:18 -07:00
Dharini Jeeva 0ac657e378 Update update-test.js 2021-08-16 17:06:08 -07:00
Dharini Jeeva 00b62a6f50 Update read-test.js 2021-08-16 17:05:53 -07:00
Dharini Jeeva f57619d1fc Update delete-test.js 2021-08-16 17:05:42 -07:00
Dharini Jeeva 2d24617dba Merge branch 'main' into auth-capabilities 2021-08-16 17:05:10 -07:00
Dharini Jeeva abc9687261 Update update-test.js 2021-08-16 17:04:53 -07:00
Dharini Jeeva 24c62fbd46 Update read-test.js 2021-08-16 17:04:38 -07:00
Dharini Jeeva 951f69d4b2 Update delete-test.js 2021-08-16 17:04:18 -07:00
Dharini Jeeva 55ead33b4a Merge branch 'main' into target-capabilities 2021-08-16 17:01:18 -07:00
Dharini Jeeva 8adf4bb95b Update delete-test.js 2021-08-16 16:58:48 -07:00
Dharini Jeeva 6c7483cbf2 Update update-test.js 2021-08-16 16:58:25 -07:00
Dharini Jeeva bf2e267696 Update read-test.js 2021-08-16 16:58:07 -07:00
Dharini Jeeva d8de56ecf4 Merge branch 'main' into feature-cred-library-capabilities 2021-08-16 15:58:43 -07:00
Dharini Jeeva 59932f52db Merge branch 'main' into feat-scope-capabilities 2021-08-16 15:49:59 -07:00
Carlos Alcaide Corvo dffc236860 Merge branch 'main' into chore-update-jszip-resolutions 2021-08-16 14:54:11 -07:00
Carlos Alcaide d76a4b0055 chore: 🤖 Add jszip to resolutions
Add jszip to the resolutions to solve security vulnerability
2021-08-16 14:53:11 -07:00
Susmitha Girumala 3728e4cd51 Merge pull request #705 from hashicorp/chore-update-tar-resolutions
chore: 🤖 Update tar resolutions
2021-08-16 17:49:09 -04:00
Carlos Alcaide b7bd40c688 chore: 🤖 Update tar resolutions 2021-08-16 14:29:30 -07:00
dharini 47d4366397 feat: 🎸 auth capabilities
auth capabilities
2021-08-16 13:31:28 -07:00
Randall Morey 9abb540d7f feat: 🎸 credential library read/update/delete capabilities 2021-08-16 16:12:55 -04:00
dharini 155ed7a6be feat: 🎸 capabilities impl- target 2021-08-16 10:18:46 -07:00
Randall Morey 699672218d Merge branch 'main' into groups-capabilities 2021-08-12 16:56:05 -04:00
Randall Morey 8bfd9bd7a3 Merge pull request #703 from hashicorp/chore-capabilities-feature-flag
chore: 🤖 abilities should check the capabilities feature flag
2021-08-12 16:55:40 -04:00
dharini a1f428550d fix: 🐛 typo 2021-08-12 13:47:07 -07:00
dharini 3fa6332ab4 test: 💍 add test 2021-08-12 13:29:33 -07:00
Randall Morey 9f6cfe4edb chore: 🤖 abilities should check the capabilities feature flag 2021-08-12 16:24:16 -04:00
dharini 7cde048ac1 fix: 🐛 name update 2021-08-12 11:48:21 -07:00
dharini ee390a6fea update name 2021-08-12 11:23:02 -07:00
dharini 7e3096f849 update name 2021-08-12 11:22:20 -07:00
dharini 16c03a088b fix: 🐛 sync up yarn lock 2021-08-12 11:19:33 -07:00
dharini 28e2b67aa8 fix: 🐛 remove redudant test cases 2021-08-12 11:04:47 -07:00
dharini b69f964b43 feat: 🎸 role capabilities 2021-08-12 10:35:33 -07:00
dharini 84bb640340 fix: 🐛 updates 2021-08-12 08:29:28 -07:00
dharini dbc06a4e0a test: 💍 add tests 2021-08-11 17:33:54 -07:00
dharini 3d900f5a2b feat: 🎸 group capabilities 2021-08-11 16:38:20 -07:00
dharini e50ea4b555 fix: 🐛 lint 2021-08-11 14:39:05 -07:00
dharini 119cbbe815 feat: 🎸 user capabilities 2021-08-11 13:51:18 -07:00
Randall Morey 6e95686b9a Merge pull request #692 from hashicorp/chore-tar-update-resolutions
chore: 🤖 Update tar dependency resolutions
2021-08-11 11:16:45 -04:00
Randall Morey 4f5c0a3e98 chore: rebuild yarn.lock to resolve merge conflicts 2021-08-11 10:46:19 -04:00
Randall Morey 0c9ba7e7a7 Merge pull request #688 from hashicorp/poc-ui-capabilities
API support for UI capabilities
2021-08-11 10:40:04 -04:00
Randall Morey b78726caff Merge pull request #689 from hashicorp/feature-singular-account-capabilities
feat: 🎸 apply base singular capabilities to account
2021-08-11 09:30:18 -04:00
Randall Morey d10de61fb4 Merge pull request #697 from hashicorp/chore-capabilities-toggle
chore: 🤖 adds support for development capabilities toggle
2021-08-11 09:30:04 -04:00
Randall Morey aced3207f3 Merge branch 'main' into chore-tar-update-resolutions 2021-08-10 16:46:15 -04:00
Randall Morey 14f6b30b26 chore: 🤖 adds support for development capabilities toggle 2021-08-10 16:19:06 -04:00
Randall Morey fb85869e2c Merge branch 'main' into poc-ui-capabilities 2021-08-10 16:18:05 -04:00
Susmitha Girumala 03ce03bebf Merge pull request #694 from hashicorp/desktop-sessions-mirage-config
chore: 🤖 Fix missing target in sessions scenarios in mirage
2021-08-10 08:48:01 -04:00
Susmitha Girumala 1e04c696ad Merge branch 'main' into desktop-sessions-mirage-config 2021-08-10 08:35:15 -04:00
Carlos Alcaide Corvo 89055089a3 Merge branch 'main' into chore-tar-update-resolutions 2021-08-09 14:01:00 -07:00
Carlos Alcaide Corvo f4e20b87c7 Merge pull request #693 from hashicorp/chore-update-xmldom-resolutions
chore: 🤖 Update xmldom dependency resolution
2021-08-09 13:10:52 -07:00
Susmitha Girumala f402819945 chore: 🤖 Fix missing target in sessions scenarios in mirage 2021-08-09 09:09:18 -04:00
Susmitha Girumala cd2523bc20 Merge branch 'main' into poc-ui-capabilities 2021-08-09 08:44:39 -04:00
Carlos Alcaide 7f994e9597 chore: 🤖 Update xmldom dependency resolution
Update xmldom transitive dependency resolution to avoid a security
vulnerability.
2021-08-06 11:05:07 -07:00
Carlos Alcaide 07e16ef71b chore: 🤖 Update tar dependency resolutions
Update tar transitive dependency resolutions to avoid security
vulnerability
2021-08-06 10:13:00 -07:00
Susmitha Girumala ca56c37fb0 Merge pull request #690 from hashicorp/bump-desktop-cli-version
chore: Bump cli version used by desktop
2021-08-05 15:20:51 -04:00
Susmitha Girumala 5e2d9e9e2b chore: Bump cli version used by desktop 2021-08-05 15:08:08 -04:00
Randall Morey 74df923775 feat: 🎸 apply base singular capabilities to account 2021-08-05 13:29:33 -04:00
Randall Morey 839962186f chore: 🤖 complete singular abilities for account 2021-08-05 13:21:03 -04:00
Randall Morey 86fbbe7cdf test: 💍 fix tests for authorized_actions field 2021-08-04 17:58:08 -04:00
Randall Morey 7b51d15ba4 chore: manual merge from main 2021-08-04 11:31:07 -04:00
Susmitha Girumala d0ca5cc041 Merge pull request #685 from hashicorp/use-external-version-file-for-desktop-cli
chore: Refactor cli version into a VERSION file
2021-08-03 14:40:06 -04:00
Susmitha Girumala 310539e2de Merge branch 'main' into use-external-version-file-for-desktop-cli 2021-08-03 14:12:30 -04:00
Susmitha Girumala 9da86f8411 Merge pull request #684 from hashicorp/bump-desktop-changelog
docs: Bump desktop changelog for next release
2021-08-03 14:12:21 -04:00
Susmitha Girumala 76e721bd91 chore: Check for http error status codes including 400 2021-08-03 13:16:10 -04:00
Susmitha Girumala a19aa2ff0c chore: Refactor cli version into it's own file
In addition, fail cli setup step for desktop build when cli cannot be
downloaded and extracted successfully
2021-08-03 13:11:21 -04:00
Susmitha Girumala cdecf570e2 docs: Bump desktop changelog for next release 2021-08-02 18:02:59 -04:00
Susmitha Girumala c04c8f4f0a Merge pull request #683 from hashicorp/enable-credentials-brokering-feature
chore: Enable credential brokering feature in admin
2021-07-29 17:09:16 -04:00
Susmitha Girumala 8fb33b8ff5 chore: Enable credential brokering feature in admin 2021-07-29 15:14:28 -04:00
Susmitha Girumala e89f31a93b Merge pull request #682 from hashicorp/label-update-for-target-associations
refactor: Rename target host sets and credential libraries
2021-07-29 15:13:51 -04:00
Susmitha Girumala 518bf19318 Merge branch 'main' into label-update-for-target-associations 2021-07-29 14:37:02 -04:00
Susmitha Girumala d35823fae6 Merge pull request #681 from hashicorp/target-credential-source-association-tests
test: Add target association tests for credential libraries
2021-07-29 14:36:52 -04:00
Susmitha Girumala 0231dabbe6 refactor: Rename target host sets and credential libraries
Rename to Target Host Sources and Credential Sources
2021-07-29 14:17:58 -04:00
Susmitha Girumala 263d2b8d95 Merge branch 'main' into target-credential-source-association-tests 2021-07-29 13:53:18 -04:00
Susmitha Girumala 98537f708c Merge pull request #680 from hashicorp/fix-doc-naming
fix: credential library naming does not change
2021-07-29 13:53:05 -04:00
Susmitha Girumala 5596d55035 Merge branch 'main' into fix-doc-naming 2021-07-29 13:00:48 -04:00
Susmitha Girumala a8f1780731 test: Add target association tests for credential libraries 2021-07-29 12:59:54 -04:00
Randall Morey 8e6988c179 formatting 2021-07-29 12:21:03 -04:00
Susmitha Girumala ea293d947f Merge pull request #663 from hashicorp/refactor-delete-jquery
refactor: 💡 Delete jQuery and refactor handler
2021-07-29 11:18:02 -04:00
Randall Morey d23afb1c71 fix: credential library naming does not change 2021-07-29 10:34:33 -04:00
Carlos Alcaide Corvo b8ec749d03 Merge branch 'main' into refactor-delete-jquery 2021-07-29 07:25:46 -07:00
Susmitha Girumala 0c5c9387b5 Merge pull request #676 from hashicorp/test-credential-library-create-errors
Test credential library create errors
2021-07-29 10:19:43 -04:00
Susmitha Girumala bbbd5cea65 Merge branch 'main' into test-credential-library-create-errors 2021-07-29 09:34:07 -04:00
Susmitha Girumala 66888a4c95 Merge pull request #675 from hashicorp/credential-store-attributes
Add Credential Store Attributes
2021-07-29 09:33:48 -04:00
Susmitha Girumala ca35246a7b Merge branch 'main' into credential-store-attributes 2021-07-29 09:01:34 -04:00
Susmitha Girumala 16fe712f4e Merge pull request #678 from hashicorp/doc-links
docs: ✏️ add doc links for cred stores and sources
2021-07-29 09:01:16 -04:00
Randall Morey 296b5fbecd docs: ✏️ add doc links for cred stores and sources 2021-07-28 16:27:40 -04:00
Carlos Alcaide 4240bbee56 test: 💍 Change assertion
Change assertion to avoid false positive
2021-07-28 10:51:57 -07:00
Susmitha Girumala c3a9ecb0ec Merge remote-tracking branch 'origin' into credential-store-attributes 2021-07-28 13:22:57 -04:00
Susmitha Girumala e40ff1f63c fix: Protect credentialstore attrs hmac values in serializati 2021-07-28 13:22:47 -04:00
Carlos Alcaide Corvo 87479b8e3c Merge branch 'main' into test-credential-library-create-errors 2021-07-28 10:17:14 -07:00
Carlos Alcaide 264f81a6f3 refactor: 💡 Prevent opening unknown
Prevent opening unknown links
2021-07-28 10:16:37 -07:00
Carlos Alcaide Corvo 772c8b38c0 Merge branch 'main' into refactor-delete-jquery 2021-07-28 10:08:24 -07:00
Carlos Alcaide Corvo 03aa4f32f1 Merge pull request #677 from hashicorp/chore-update-sass
chore: 🤖 Update Sass version
2021-07-28 07:57:12 -07:00
Carlos Alcaide Corvo 0b145fac47 Merge branch 'main' into chore-update-sass 2021-07-28 07:46:38 -07:00
Susmitha Girumala 9bd7193833 Merge pull request #674 from hashicorp/add-type-field-to-credential-library
fix: Add type field to Credential Library
2021-07-28 10:20:19 -04:00
Carlos Alcaide f3a4017e5f chore: 🤖 Update Sass version 2021-07-27 15:35:51 -07:00
Carlos Alcaide Corvo 43eca819bf Merge branch 'main' into refactor-delete-jquery 2021-07-27 14:55:02 -07:00
Carlos Alcaide Corvo 9aa3f8f5ad Merge branch 'main' into test-credential-library-create-errors 2021-07-27 14:32:59 -07:00
Carlos Alcaide 8cceb4090f refactor: 💡 Change save crdential library behaviour
Change save credential library behaviour to not redirect after saving a
change
2021-07-27 14:27:13 -07:00
Carlos Alcaide dc7ebec668 test: 💍 Add creation error test
Add credential library creation error tests
2021-07-27 14:15:59 -07:00
Susmitha Girumala cffa419dd6 Merge branch 'main' into add-type-field-to-credential-library 2021-07-27 14:45:15 -04:00
Susmitha Girumala 83a938fada Merge pull request #673 from hashicorp/remove-credential-library-from-a-target
feat: Remove a Credential Library Added to a Target
2021-07-27 14:45:04 -04:00
Susmitha Girumala 61c80518de feat: Add credential store attributes to it's form 2021-07-27 14:32:32 -04:00
Susmitha Girumala d1119efd11 Merge branch 'main' into remove-credential-library-from-a-target 2021-07-27 12:31:31 -04:00
Susmitha Girumala a9cb6f35f9 Merge pull request #671 from hashicorp/credential-list-test
test: Credential Library List Acceptance Tests
2021-07-27 12:30:02 -04:00
Dharini Jeeva 6f85419675 Merge pull request #672 from hashicorp/del-test
test: Credential library deletion error test
2021-07-27 09:11:03 -07:00
Susmitha Girumala 0cb90353f0 fix: Add type field to credential library 2021-07-27 11:52:02 -04:00
dharini cd9f05962c fix: 🐛 spelling, merge conflicts 2021-07-27 08:31:25 -07:00
Susmitha Girumala 9d342cf517 feat: Remove a credential library associated to a target 2021-07-27 11:22:06 -04:00
dharini 88fc063ab9 Merge branch 'main' of github.com:hashicorp/boundary-ui 2021-07-27 08:21:50 -07:00
Susmitha Girumala d3e707d740 Merge pull request #670 from hashicorp/test-credential-library-create
test: 💍 Add credential library creation acceptance test
2021-07-27 10:40:44 -04:00
Susmitha Girumala fc4af516a2 Merge branch 'main' into test-credential-library-create 2021-07-27 10:26:47 -04:00
Susmitha Girumala edb8836a2c Merge pull request #667 from hashicorp/add-credential-libraries-to-a-target
Add Credential Libraries to a Target
2021-07-27 10:26:08 -04:00
Susmitha Girumala b29f877e35 Merge branch 'main' into add-credential-libraries-to-a-target 2021-07-27 10:15:54 -04:00
Susmitha Girumala e299740951 Merge pull request #668 from hashicorp/credentials-store-icon-update
style: Update Credentials Store Icon
2021-07-27 10:15:47 -04:00
Susmitha Girumala 03fbc19c2c Merge remote-tracking branch 'origin/main' into add-credential-libraries-to-a-target 2021-07-27 10:04:04 -04:00
Susmitha Girumala e42647e6a2 fix: Add missing empty credential libraries message 2021-07-27 10:03:56 -04:00
Susmitha Girumala a03a3811d4 Merge branch 'main' into credentials-store-icon-update 2021-07-27 09:58:55 -04:00
Susmitha Girumala d4ef4bc58c Merge pull request #666 from hashicorp/target-credential-libraries-list
List Credential Libraries in a Target
2021-07-27 09:53:45 -04:00
Susmitha Girumala 3d7166d059 Merge branch 'main' into target-credential-libraries-list 2021-07-27 09:22:46 -04:00
dharini 025ae1bfe2 test: 💍 Credential library deletion error test 2021-07-26 16:58:23 -07:00
dharini 0bc4cd6e21 test: 💍 add cred list tests 2021-07-26 16:43:28 -07:00
Carlos Alcaide 4a6555317a test: 💍 Add credential library creation acceptance test
Add credential library creation acceptance test
2021-07-26 15:37:36 -07:00
Dharini Jeeva be7e3bb56e Merge pull request #669 from hashicorp/del-action
credential library - delete
2021-07-26 14:08:12 -07:00
Dharini Jeeva ed0c774714 Merge branch 'main' into del-action 2021-07-26 13:49:01 -07:00
Susmitha Girumala 2bdb008f65 Merge branch 'main' into target-credential-libraries-list 2021-07-26 16:46:38 -04:00
Susmitha Girumala 8109d7789c Merge pull request #665 from hashicorp/chore-update-ember-fetch
chore: 🤖 Update ember-fetch
2021-07-26 16:46:21 -04:00
Carlos Alcaide Corvo 3eb9f07fe0 Merge branch 'main' into refactor-delete-jquery 2021-07-26 13:09:35 -07:00
Carlos Alcaide a07cd9e1a1 refactor: 💡 Allow external links just for specific domain
Allow external links just for boundary.io domain. So far the only urls
we want to open externally are our own documentation
2021-07-26 13:09:08 -07:00
dharini bbbb1620f6 Merge branch 'main' into del-action 2021-07-26 12:43:03 -07:00
dharini 1d71e3bec8 feat: 🎸 delete action and tests
✅ Closes: #1996
2021-07-26 12:37:37 -07:00
Susmitha Girumala 63d302d716 style: Update credentials store icon 2021-07-26 14:41:33 -04:00
Susmitha Girumala 341baa76fc Merge branch 'main' into chore-update-ember-fetch 2021-07-26 14:37:56 -04:00
Susmitha Girumala cc6f0aa1b4 Merge pull request #664 from hashicorp/chore-update-ember-cli-app-version
chore: 🤖 Update ember-cli-app version dependency
2021-07-26 14:37:49 -04:00
Susmitha Girumala 1fb98f8ed3 Merge branch 'target-credential-libraries-list' into add-credential-libraries-to-a-target 2021-07-25 10:27:40 -04:00
Susmitha Girumala 08543e9868 Merge remote-tracking branch 'origin/main' into add-credential-libraries-to-a-target 2021-07-25 10:25:13 -04:00
Susmitha Girumala 0fbcf8e16e feat: Show message when no cred-libs are available in target 2021-07-25 10:25:09 -04:00
Susmitha Girumala 7ff569779c Merge branch 'main' into target-credential-libraries-list 2021-07-25 10:24:26 -04:00
Susmitha Girumala 8f2deadc49 feat: Add credential libraries association form in target 2021-07-25 10:11:11 -04:00
Susmitha Girumala 89b7d0345a fix: Add feature flag to target credential libraries list 2021-07-25 09:26:03 -04:00
dharini ad3b9ed684 add success message 2021-07-23 15:41:14 -07:00
dharini a7a84d64b9 feat: 🎸 add delete cred library action 2021-07-23 15:33:29 -07:00
Carlos Alcaide 7fd89bb946 chore: 🤖 Update ember-fetch 2021-07-23 15:15:24 -07:00
Carlos Alcaide dbfc21ace3 chore: 🤖 Update ember-cli-app-version dependency 2021-07-23 15:00:07 -07:00
Carlos Alcaide Corvo 7bd8d87ad2 Merge branch 'main' into refactor-delete-jquery 2021-07-23 14:42:03 -07:00
Carlos Alcaide f5b80f93d2 refactor: 💡 Delete jQuery and refactor handler
Delete jQuery from desktop client and refactor the handler using a
native electron way.
2021-07-23 14:38:26 -07:00
Susmitha Girumala 1e5d52410e refactor: Cleanup credential library parameter name 2021-07-23 17:34:31 -04:00
Susmitha Girumala 0dedbfb411 docs: Fix comment for listing target credential libraries 2021-07-23 17:04:39 -04:00
Randall Morey e376bb8e20 poc: basic user capabilities UI 2021-07-23 16:57:37 -04:00
Randall Morey 48dc8a392d feat: 🎸 add basic abilities modeling for read/update/delete 2021-07-23 16:40:51 -04:00
Susmitha Girumala 992df6b34b Merge pull request #662 from hashicorp/feat-credential-stores-empty-list
feat: 🎸 Add credential stores empty list message
2021-07-23 16:34:06 -04:00
Susmitha Girumala af7e539f3d feat: List credential libraries for a target 2021-07-23 16:33:45 -04:00
Carlos Alcaide Corvo 83f9ab5c61 Merge branch 'main' into feat-credential-stores-empty-list 2021-07-23 13:19:48 -07:00
Carlos Alcaide Corvo a9c06638c7 Merge pull request #659 from hashicorp/chore-update-eslint-config-prettier
chore: 🤖 Update eslint-config-prettier dependency
2021-07-23 13:19:40 -07:00
Carlos Alcaide Corvo 0637d805d3 Merge branch 'main' into chore-update-eslint-config-prettier 2021-07-23 12:57:57 -07:00
Susmitha Girumala f089200dc0 Merge branch 'main' into feat-credential-stores-empty-list 2021-07-23 15:50:34 -04:00
Susmitha Girumala 2726538c41 Merge pull request #661 from hashicorp/credential-library-read
Credential Library - Read
2021-07-23 15:50:17 -04:00
Susmitha Girumala b6291bd3c7 Merge branch 'main' into credential-library-read 2021-07-23 15:11:30 -04:00
Susmitha Girumala 0e89ecabdc Merge pull request #657 from hashicorp/chore-update-eslint
chore: 🤖 Update eslint dependency
2021-07-23 15:09:40 -04:00
Susmitha Girumala debf6fbe06 Merge branch 'main' into credential-library-read 2021-07-23 14:59:49 -04:00
Carlos Alcaide Corvo 517ba08f55 Merge branch 'main' into feat-credential-stores-empty-list 2021-07-23 11:56:09 -07:00
Carlos Alcaide 7f13365336 feat: 🎸 Add credential stores empty list message
Add credential stores empty list message with link to create a new one.
2021-07-23 11:28:11 -07:00
Susmitha Girumala 8ebdd995e3 Merge branch 'main' into chore-update-eslint 2021-07-23 13:19:09 -04:00
Susmitha Girumala e73cd828a5 Merge pull request #654 from hashicorp/target-credential-library-api-modeling
API: Target Credential Library api modeling
2021-07-23 13:18:26 -04:00
Susmitha Girumala d2a42f7468 Merge branch 'main' into target-credential-library-api-modeling 2021-07-23 13:08:19 -04:00
Susmitha Girumala b1614dc65d Merge pull request #647 from hashicorp/credential-library-create
Credential Library - Create
2021-07-23 13:08:04 -04:00
Susmitha Girumala 9931b8d3ca Merge branch 'credential-library-create' into credential-library-read 2021-07-23 09:30:21 -04:00
Susmitha Girumala b7e5477b3d fix: Shorten credential library POST form area 2021-07-23 09:29:42 -04:00
Susmitha Girumala 027371567b fix: Disable credential library view in non-edit mode 2021-07-22 18:02:29 -04:00
Susmitha Girumala 95612186d8 feat: View credential library details 2021-07-22 17:52:28 -04:00
Susmitha Girumala f7dd5ebe55 Merge branch 'main' into credential-library-create 2021-07-22 17:44:49 -04:00
Susmitha Girumala a6be658aa5 fix: Add error handling to credential-library creation form 2021-07-22 17:42:37 -04:00
Dharini Jeeva 123476a3a8 Merge pull request #658 from hashicorp/fieldset
fieldset usage
2021-07-22 14:00:28 -07:00
Carlos Alcaide Corvo d44528fc2c Merge branch 'main' into chore-update-eslint-config-prettier 2021-07-22 13:53:27 -07:00
Carlos Alcaide Corvo b2c85b9805 Merge branch 'main' into chore-update-eslint 2021-07-22 13:53:24 -07:00
dharini 03ce6be3ee fix: 🐛 cleanup 2021-07-22 13:44:02 -07:00
Susmitha Girumala a35c4e0ffd fix: Surface fieldset as a form component 2021-07-22 16:26:05 -04:00
Dharini Jeeva 710bcccfd5 Merge pull request #660 from hashicorp/update-font-weight
fix: 🐛 update fieldset font weight
2021-07-22 13:00:43 -07:00
dharini 8b9d945efb fix: 🐛 use named block 2021-07-22 10:24:56 -07:00
dharini aa2114062b fix: 🐛 update to semi bold to match labels 2021-07-22 10:13:33 -07:00
Carlos Alcaide 90055ea142 chore: 🤖 Update eslint-config-prettier dependency 2021-07-22 09:58:49 -07:00
dharini e1aa0c6bcb fix: 🐛 space 2021-07-22 09:45:45 -07:00
dharini af337626f5 feat: 🎸 add fieldset 2021-07-22 09:37:41 -07:00
Carlos Alcaide dad2d456d0 chore: 🤖 Update eslint dependency 2021-07-22 08:50:54 -07:00
Susmitha Girumala 9dac6fc446 Merge branch 'main' into target-credential-library-api-modeling 2021-07-22 11:38:13 -04:00
Carlos Alcaide Corvo 00348e4c55 Merge pull request #652 from hashicorp/feature-credential-store-crud-delete
feat: 🎸 Add credential store delete CRUD operation
2021-07-22 06:21:00 -07:00
Susmitha Girumala b0dd9bf803 Merge branch 'main' into credential-library-create 2021-07-21 18:19:53 -04:00
Carlos Alcaide 2e23bbea3e Fix typo 2021-07-21 15:09:21 -07:00
Carlos Alcaide Corvo 7e7bad050f Merge branch 'main' into feature-credential-store-crud-delete 2021-07-21 14:34:36 -07:00
Carlos Alcaide afadb1d83a Comment dropdown option to create a new library store until that route is available 2021-07-21 14:31:10 -07:00
Dharini Jeeva 52c9fb5570 Merge pull request #653 from hashicorp/add-align-attr
feat: 🎸 add inline alignment support to checkbox and radio
2021-07-21 14:20:49 -07:00
dharini 2dd3e13cd3 fix: 🐛 lint issues 2021-07-21 14:07:29 -07:00
Carlos Alcaide 74fa0876fb fix: 🐛 Fix translation misplacement 2021-07-21 14:01:57 -07:00
dharini c531553c07 Merge branch 'add-align-attr' of https://github.com/hashicorp/boundary-ui into add-align-attr 2021-07-21 13:33:35 -07:00
dharini 0ad6d027e6 fix: 🐛 space 2021-07-21 13:33:03 -07:00
Carlos Alcaide 2eb7084643 test: 💍 Adding acceptance test for delete CRUD
Add acceptance test for delete CRUD operation in credential stores
2021-07-21 13:31:48 -07:00
Dharini Jeeva 06d162ae89 Merge branch 'main' into add-align-attr 2021-07-21 13:04:52 -07:00
dharini c43ced0380 feat: 🎸 add toggle functionality 2021-07-21 13:01:59 -07:00
Susmitha Girumala 28a4a7304e feat: Add credential library add and remove methods to target 2021-07-21 15:46:21 -04:00
Susmitha Girumala e74fd0202e feat: API: Load credential libraries associated to a target 2021-07-21 15:46:21 -04:00
dharini 0823c1cb2d feat: 🎸 add stories for inline radio & checkbox, radiogrp 2021-07-21 12:39:24 -07:00
dharini d034631e4d fix: 🐛 add attr in storybook 2021-07-21 10:51:33 -07:00
Carlos Alcaide c5af15f4c1 Add missing translation after rebase 2021-07-21 10:51:00 -07:00
Carlos Alcaide fce79d46d7 feat: 🎸 Add credential store delete CRUD operation 2021-07-21 10:51:00 -07:00
Carlos Alcaide Corvo c45357bf25 Merge pull request #650 from hashicorp/test-acceptance-credential-stores
Test acceptance credential stores
2021-07-21 10:49:58 -07:00
Carlos Alcaide d96d7425f8 Fix skip test with false positive 2021-07-21 10:36:16 -07:00
Carlos Alcaide Corvo 2000c10006 Merge branch 'main' into test-acceptance-credential-stores 2021-07-21 07:59:52 -07:00
Susmitha Girumala a348e4830a Merge pull request #646 from hashicorp/credential-library-list
feat: List credential libraries in a credential store
2021-07-21 08:20:51 -04:00
dharini 7c496b5b90 fix: 🐛 undo unnecessary change 2021-07-20 16:26:13 -07:00
dharini 5d6da1e52d feat: 🎸 add inline aligntment support to checkbox and radio 2021-07-20 16:11:57 -07:00
Carlos Alcaide Corvo 2eb1d01622 Merge branch 'main' into test-acceptance-credential-stores 2021-07-20 14:07:37 -07:00
Susmitha Girumala f012d10dcb Merge branch 'main' into credential-library-list 2021-07-20 17:03:08 -04:00
Carlos Alcaide Corvo a96689e2cc Merge pull request #651 from hashicorp/fix-hidden-secret-component
fix: 🐛 Fix style and accessibility issues for hidden secret
2021-07-20 13:55:49 -07:00
Carlos Alcaide c5f72c53d8 Move translation to actions file 2021-07-20 13:43:11 -07:00
Carlos Alcaide 699d5063d9 fix: 🐛 Fix style and accessibility issues for hidden secret
Fix style and accessibility issues for hidden secret component
2021-07-20 13:28:39 -07:00
Susmitha Girumala 08deda59aa Merge branch 'main' into credential-library-list 2021-07-20 13:38:38 -04:00
Carlos Alcaide Corvo f8cce58d49 Merge branch 'main' into test-acceptance-credential-stores 2021-07-20 10:37:56 -07:00
Carlos Alcaide f69477e556 test: 💍 Add credential stores create and edit tests
Add credential store create and edit acceptance tests
2021-07-20 10:36:34 -07:00
Dharini Jeeva 7f5a792af4 Merge pull request #649 from hashicorp/form-fieldset-style
style: 💄 update rose fieldset font-size
2021-07-20 08:48:03 -07:00
Susmitha Girumala dd96423ead fix: Disable credential library request body in form 2021-07-20 09:32:41 -04:00
dharini a1117529e5 style: 💄 update rose fieldset font-size 2021-07-19 15:45:58 -07:00
Carlos Alcaide 44510ea8d4 test: 💍 Adding integration test for credential stores
Adding more integration test cases for credential stores
2021-07-19 14:17:24 -07:00
Carlos Alcaide 9c93ff6c13 test: 💍 Add test cases to credential stores route
Add new test cases to credential stores route
2021-07-19 14:17:24 -07:00
Susmitha Girumala 59818fa24d feat: Add credential libraries breadcrumbs 2021-07-19 13:13:35 -04:00
Susmitha Girumala 98e14a642f fix: Treat credential library attributes as an object 2021-07-19 12:05:40 -04:00
Susmitha Girumala 45fc58fe75 feat: Init credential library creation 2021-07-18 14:31:45 -04:00
Susmitha Girumala 6dad1cd276 Merge branch 'main' into credential-library-list 2021-07-18 14:31:12 -04:00
Susmitha Girumala 2212c7dd9e feat: List credential libraries in a credential store 2021-07-18 12:34:33 -04:00
Susmitha Girumala 98bc86497a Merge pull request #645 from hashicorp/chore-upgrade-ember-cli-inject-live-reload
chore: 🤖 Upgrade ember-cli-inject-live-reload
2021-07-18 12:29:26 -04:00
Susmitha Girumala f447fb11ef Merge branch 'main' into chore-upgrade-ember-cli-inject-live-reload 2021-07-18 11:34:53 -04:00
Susmitha Girumala e091730ffb Merge pull request #644 from hashicorp/chore-upgrade-ember-cli
chore: 🤖 Upgrade ember-cli version
2021-07-18 11:05:45 -04:00
Susmitha Girumala 3e479fc02a Merge branch 'main' into chore-upgrade-ember-cli 2021-07-16 14:01:12 -04:00
Carlos Alcaide Corvo ce2be6b4b3 Merge pull request #643 from hashicorp/feature-credential-store-crud-new
Feature credential store crud new
2021-07-16 11:00:20 -07:00
Carlos Alcaide 816b50eb1b feat: 🎸 Fix creation type issue
Fix credential store creation type issue
2021-07-16 10:41:04 -07:00
Carlos Alcaide 9067558082 Add type to credential store creation 2021-07-16 10:28:31 -07:00
Carlos Alcaide d6129a7dfc Fix lint issues 2021-07-16 09:41:41 -07:00
Carlos Alcaide 3b4bb24eb7 feat: 🎸 Add credential store
Add screen to create new credential store
2021-07-16 09:24:22 -07:00
Carlos Alcaide 2217482329 feat: 🎸 Adding credential store edit form
Add credential-store mirage config. Add edit credential store form. Add
credential store route. Add credential store template.
2021-07-16 09:23:43 -07:00
Carlos Alcaide Corvo 32bdf2acdc Merge pull request #642 from hashicorp/feature-credential-store-crud-detail
Edit credential store
2021-07-16 09:19:52 -07:00
Carlos Alcaide 03187e2e2e Fix typo in comment 2021-07-16 09:07:53 -07:00
Carlos Alcaide cf72af4004 Add comments to route functions 2021-07-16 09:05:36 -07:00
Carlos Alcaide e4a0150ee7 Delete watchman cookie file 2021-07-16 08:53:37 -07:00
Carlos Alcaide 1a46a6b183 Add .watchman-cookie to gitignore 2021-07-16 08:52:18 -07:00
Carlos Alcaide cf377ad3dc Delete model check 2021-07-16 08:37:57 -07:00
Carlos Alcaide c82a8be1ed feat: 🎸 Stop using model on template
Stop using model on template, so no more updating template while editing
the form. Add link to documentation
2021-07-16 08:37:57 -07:00
Carlos Alcaide b9c5ed0de3 Add cancel action when editing a credential-store. Add breadcrumb feature on the credential store controller. 2021-07-16 08:37:57 -07:00
Carlos Alcaide 885ce5ebf5 feat: 🎸 Adding credential store edit form
Add credential-store mirage config. Add edit credential store form. Add
credential store route. Add credential store template.
2021-07-16 08:37:57 -07:00
Susmitha Girumala 9f7d528582 Merge pull request #641 from hashicorp/credential-library-api
Credential Library Modeling
2021-07-16 11:20:36 -04:00
Carlos Alcaide 8544d61e9c chore: 🤖 Upgrade ember-cli-inject-live-reload
Upgrade ember-cli-inject-live-reload dependency.
2021-07-15 13:24:59 -07:00
Carlos Alcaide a1b3e5382b chore: 🤖 Upgrade ember-cli version
Upgrade ember-cli version
2021-07-15 13:08:48 -07:00
Susmitha Girumala 1fb41665e5 feat: Mock credential library in api addon 2021-07-12 16:03:06 -04:00
Susmitha Girumala bd50c4f78c feat: Add credential library api 2021-07-12 14:50:53 -04:00
Susmitha Girumala 0f73cd5faf Merge pull request #639 from hashicorp/feature-credential-store-crud-read
Add first iteration of list credential store
2021-07-12 14:49:48 -04:00
Carlos Alcaide Corvo 96de8f262f Merge branch 'main' into feature-credential-store-crud-read 2021-07-12 11:27:16 -07:00
Susmitha Girumala 4a871134a5 Merge pull request #637 from hashicorp/feature-toggle-secret
feat: 🎸 Add toggle secret feature
2021-07-12 14:27:09 -04:00
Carlos Alcaide 9bcb402fa2 feat: 🎸 Refactor details of the component
Delete unnecessary <span>. Make icon smaller and aligned. Fix linting
issues.
2021-07-12 09:46:56 -07:00
Carlos Alcaide Corvo bb1580ab6e Merge branch 'main' into feature-credential-store-crud-read 2021-07-12 07:46:24 -07:00
Carlos Alcaide 75f45a134d feat: 🎸 Add more features to the credential stores list
Add breadcrumb functionality. Add detail route. Add acceptance test to
load the page. Add some styling improvements

✅ Closes: \
2021-07-12 07:32:35 -07:00
Carlos Alcaide Corvo b272f85e68 Merge branch 'main' into feature-toggle-secret 2021-07-12 06:44:33 -07:00
Susmitha Girumala fdb46df9f2 Merge pull request #640 from hashicorp/update-font-color
fix: Update text font color and weight
2021-07-09 16:17:34 -04:00
dharini f39ac156cb nest styles to header cell 2021-07-09 11:59:02 -07:00
Carlos Alcaide 986cde5941 feat: 🎸 Add first iteration for list credential store
First iteration adding credential store list crud operations
2021-07-09 10:39:42 -07:00
dharini c94f54c90f undo file change 2021-07-09 09:15:22 -07:00
dharini 4c648ad4be fix: font color and weight 2021-07-08 18:01:30 -07:00
Carlos Alcaide cd10c30ca8 Delete not used translation 2021-07-08 08:36:09 -07:00
Carlos Alcaide Corvo d964411f70 Merge pull request #638 from hashicorp/add-credential-feature-flag
feat: Enable credential feature flag in dev mode for admin
2021-07-08 08:03:55 -07:00
Susmitha Girumala 9d68eb495e feat: Enable credential feature flag in dev mode for admin 2021-07-08 09:01:56 -04:00
Susmitha Girumala ef80dd87c1 Merge pull request #636 from hashicorp/feature-credentials-modeling
feat: 🎸 initial credential-store modeling and mocking
2021-07-08 08:18:40 -04:00
Carlos Alcaide a59e012f52 Fix faker issue 2021-07-07 15:13:34 -07:00
Carlos Alcaide 580a2f4159 Add lint changes 2021-07-07 13:09:47 -07:00
Carlos Alcaide b0d999cf3c feat: 🎸 Add toggle secret feature
Add toggle secret feature to the hidde secret component
2021-07-07 12:39:44 -07:00
Susmitha Girumala 97b82818cf Merge branch 'main' into feature-credentials-modeling 2021-07-06 16:07:26 -04:00
Carlos Alcaide Corvo 4f0f8fce26 Merge pull request #631 from hashicorp/chore-update-ember-test-helpers
chore: 🤖 Update ember test-helpers dependency
2021-07-06 11:34:58 -07:00
Susmitha Girumala 2b7563ee7b Merge branch 'main' into chore-update-ember-test-helpers 2021-07-06 14:18:00 -04:00
Carlos Alcaide Corvo d8f43531e1 Merge pull request #630 from hashicorp/chore-upgrade-storybook
chore: 🤖 Update Storybook version
2021-07-06 11:16:50 -07:00
Susmitha Girumala 0404fe308f Merge branch 'main' into chore-upgrade-storybook 2021-07-06 14:03:04 -04:00
Susmitha Girumala d3bdab9014 Merge pull request #629 from hashicorp/chore-resolutions-mem
chore: 🤖 Add mem to resolutions
2021-07-06 14:02:55 -04:00
Carlos Alcaide Corvo 4b41c8dc7a Merge branch 'main' into chore-upgrade-storybook 2021-07-06 10:46:46 -07:00
Carlos Alcaide Corvo 12913e70ce Merge branch 'main' into chore-resolutions-mem 2021-07-06 10:46:33 -07:00
Carlos Alcaide Corvo 7630f454fd Merge pull request #628 from hashicorp/chore-resolutions-minimist
chore: 🤖 Update resolutions for minimist
2021-07-06 10:46:01 -07:00
Carlos Alcaide Corvo 9a2e5d23b9 Merge branch 'main' into chore-resolutions-minimist 2021-07-06 10:29:04 -07:00
Susmitha Girumala a0f371bfc5 Merge pull request #627 from hashicorp/chore-resolutions-prismjs
chore: 🤖 Update prismjs version in resolutions
2021-07-06 13:09:49 -04:00
Carlos Alcaide Corvo 9100fe9a34 Merge branch 'main' into chore-resolutions-prismjs 2021-07-06 08:37:19 -07:00
Carlos Alcaide Corvo 87b76a91c4 Merge pull request #626 from hashicorp/chore-resolutions-normalize-url
chore: 🤖 Add normalize-url to resolutions
2021-07-06 08:37:11 -07:00
Carlos Alcaide Corvo aa4a487e97 Merge branch 'main' into chore-resolutions-normalize-url 2021-07-06 08:14:20 -07:00
Susmitha Girumala 94cfca561c Merge pull request #613 from hashicorp/chore-update-resolution-glob-parent
chore: 🤖 Update resolutions for glob-parent
2021-07-06 11:10:51 -04:00
Susmitha Girumala 58f46e9334 Merge branch 'main' into chore-update-resolution-glob-parent 2021-07-06 10:58:21 -04:00
Randall Morey 5519cf8557 feat: 🎸 initial credential-store modeling and mocking 2021-07-01 14:28:53 -04:00
Susmitha Girumala 7413afb11d Merge pull request #635 from hashicorp/overlay-fix
style: Fix z-index for rose-dialog in desktop
2021-06-30 19:15:57 -04:00
Susmitha Girumala e4ccf21ed8 style: Fix z-index for rose-dialog in desktop 2021-06-30 19:03:12 -04:00
Susmitha Girumala 3a96aadb99 Merge pull request #634 from hashicorp/chore-update-secret-schema
chore:  update to reflect secret { raw, decoded } schema, where decod…
2021-06-30 18:13:32 -04:00
Randall Morey 4f044db204 fix: lint error 2021-06-30 17:27:47 -04:00
Randall Morey d202c550cb chore: update to reflect secret { raw, decoded } schema, where decoded is optional 2021-06-30 17:20:51 -04:00
Randall Morey 173fa8a8e6 Merge pull request #632 from hashicorp/chore-bump-versions
chore: 🤖 bump CLI version and specify release in readme
2021-06-30 08:03:24 -04:00
Susmitha Girumala a2e6a6ba44 Merge branch 'main' into chore-bump-versions 2021-06-29 16:25:01 -04:00
Susmitha Girumala bfa3d8fd3a Merge pull request #633 from hashicorp/fix-oidc-buttons
fix: OIDC form add buttons should be enabled for new auth methods
2021-06-29 16:06:01 -04:00
Randall Morey 233cc2073b fix: OIDC form add buttons should be enabled for new auth methods 2021-06-29 15:50:57 -04:00
Randall Morey ed513ebd14 chore: 🤖 bump CLI version and specify release in readme 2021-06-29 08:25:36 -04:00
Carlos Alcaide 371b89b5ad chore: 🤖 Update ember test-helpers dependency
Update ember test-helpers dependency
2021-06-28 17:39:50 -07:00
Carlos Alcaide 07d2667d14 chore: 🤖 Update Storybook version
Update Storybook to the latest version
2021-06-28 17:22:40 -07:00
Carlos Alcaide 39d19cab06 chore: 🤖 Add mem to resolutions
Add mem to resolutions to avoid a security vulnerability
2021-06-28 17:02:25 -07:00
Carlos Alcaide d7659bd9de chore: 🤖 Update resolutions for minimist
Add minimist to resolutions to avoid a security vulnerability
2021-06-28 16:45:02 -07:00
Carlos Alcaide e855697601 chore: 🤖 Update prismjs version in resolutions
Update prismjs version in resolutions to avoid a security vulnerability
2021-06-28 15:52:00 -07:00
Carlos Alcaide e5c4ac650e chore: 🤖 Add normalize-url to resolutions
Add normalize-url to resolutions due to security vulnerability
2021-06-28 15:27:31 -07:00
Carlos Alcaide 688b6652d1 chore: 🤖 Update resolutions for glob-parent
Update resolutions field in package json to avoid security vulnerability
with glob-parent older versions.
2021-06-28 14:04:42 -07:00
Randall Morey 6ceddce774 Merge pull request #625 from hashicorp/chore-callback-url
chore: 🤖 add callback_url to oidc form
2021-06-28 16:18:48 -04:00
Randall Morey 84fe290aeb Merge branch 'main' into chore-callback-url 2021-06-28 16:08:27 -04:00
Randall Morey 0e38cfe54a chore: 🤖 add callback_url to oidc form 2021-06-28 16:07:08 -04:00
Susmitha Girumala 7d70493a66 Merge pull request #624 from hashicorp/connect-dialog-display-name-in-header
fix: Use name in connect header
2021-06-28 15:19:12 -04:00
Susmitha Girumala d61867ab10 refactor: 💡 Display credential name in dropdown 2021-06-28 15:09:34 -04:00
Susmitha Girumala e8e83d979b fix: Use name in connect header -Remove credential purpose UI 2021-06-28 12:50:39 -04:00
Susmitha Girumala 559764a5c1 Merge pull request #623 from hashicorp/changelog-updates
docs: Update changelog with vault credential support note
2021-06-25 15:26:16 -04:00
Randall Morey bb494e83f8 Merge branch 'main' into changelog-updates 2021-06-25 14:31:21 -04:00
Susmitha Girumala d5a183abbf Merge pull request #622 from hashicorp/optional-credential-purpose
fix: Show credential purpose only when populated
2021-06-25 13:01:50 -04:00
Susmitha Girumala 7f32b871b9 Merge branch 'main' into optional-credential-purpose 2021-06-25 12:49:32 -04:00
Susmitha Girumala 0a5eb3ae98 Merge pull request #620 from hashicorp/connect-dialog-layer-fix
style: Update z-index for connect dialog and overlay
2021-06-25 12:49:23 -04:00
Carlos Alcaide Corvo 7a2ebdd3a1 Merge branch 'main' into changelog-updates 2021-06-25 09:37:33 -07:00
Susmitha Girumala 3b6e968bf8 Merge branch 'main' into connect-dialog-layer-fix 2021-06-25 12:36:34 -04:00
Carlos Alcaide Corvo 56487cdfad Merge branch 'main' into optional-credential-purpose 2021-06-25 09:35:53 -07:00
Carlos Alcaide Corvo 15b0baba34 Merge pull request #621 from hashicorp/feature-more-session-creds
feat: 🎸 Add Hidden secret component within the view
2021-06-25 09:35:40 -07:00
Susmitha Girumala 96795e450e docs: Update changelog with vault credential support 2021-06-25 12:34:26 -04:00
Susmitha Girumala 43cc25b0a5 fix: Show credential purpose only when populated 2021-06-25 12:30:29 -04:00
Carlos Alcaide Corvo f9ac2a93e5 Merge branch 'main' into feature-more-session-creds 2021-06-25 09:20:19 -07:00
Carlos Alcaide 378fcc53c2 feat: 🎸 Add Hidden secret component within the view
Add hidden secret component within the view and delete duplicate code
(perhaps from a rebase)
2021-06-25 09:19:39 -07:00
Susmitha Girumala a73c57848d style: Update z-index for connect dialog and overlay 2021-06-25 12:12:02 -04:00
Susmitha Girumala 86ebba9394 Merge pull request #619 from hashicorp/feature-more-session-creds
Feature more session creds
2021-06-25 11:57:08 -04:00
Carlos Alcaide Corvo 0ef4b2244b Merge branch 'main' into feature-more-session-creds 2021-06-25 08:33:01 -07:00
Randall Morey 3b01e84f1e Merge pull request #617 from hashicorp/connect-dialog-based-on-feature-session-creds
feat: Update connect dialog with credentials api response
2021-06-25 11:30:37 -04:00
Randall Morey 000c22bd08 Merge pull request #618 from hashicorp/feat-hidden-secret-component
feat: 🎸 Add hidden secret component
2021-06-25 11:30:19 -04:00
Randall Morey 7e2493dd82 refactor: 💡 move masked text string into component 2021-06-25 11:15:04 -04:00
Susmitha Girumala aea193c78d fix: 🐛 Conditionally show credential library name and desc 2021-06-25 10:12:56 -04:00
Carlos Alcaide 04287e72c2 Forgotten test 2021-06-24 15:19:26 -07:00
Susmitha Girumala a535991174 fix: Use library and secret objects in connect dialog 2021-06-24 18:09:53 -04:00
Carlos Alcaide 9c642b5065 feat: 🎸 Suggested changes from previous commit
Wrapped the secret within Copyable component. Adapt styles and test for
it.
2021-06-24 14:54:26 -07:00
Susmitha Girumala 4bcf061234 Merge branch 'feature-more-session-creds' into connect-dialog-based-on-feature-session-creds 2021-06-24 17:40:09 -04:00
Carlos Alcaide 09d5d1077d feat: 🎸 Add hidden secret component
Add hidden secret component adhoc to desktop client. This is the first
iteration of the component, expect changes in the near future.
2021-06-24 13:54:42 -07:00
Randall Morey 1a3dc72d57 chore: tweak credential secrets format 2021-06-24 16:26:51 -04:00
Susmitha Girumala 25c0125cd8 Merge remote-tracking branch 'origin/feature-session-creds' into connect-dialog-based-on-feature-session-creds 2021-06-24 15:54:46 -04:00
Carlos Alcaide 4daa09ca7b Revert "Comment code with plain strings"
This reverts commit a83e6af6de.
2021-06-24 12:15:34 -07:00
Carlos Alcaide 14f9635af4 chore: 🤖 Add hidden secret component
Add first iteration of hidden secret component.
2021-06-24 12:06:25 -07:00
Susmitha Girumala 4ba3af3272 fix: Show raw json when viewing raw api output in connect dia 2021-06-24 13:40:54 -04:00
Randall Morey db4964c985 chore: tweak cred card styles 2021-06-24 10:59:11 -04:00
Susmitha Girumala 1f328e54ee feat: Update connect dialog with credentials api response 2021-06-23 22:12:20 -04:00
Carlos Alcaide Corvo 295d236b35 Merge pull request #615 from hashicorp/update-connect-dialog
chore: Update components in connect dialog to latest
2021-06-23 14:28:58 -07:00
Carlos Alcaide a83e6af6de Comment code with plain strings 2021-06-23 14:08:01 -07:00
Carlos Alcaide Corvo d5959f4a94 Merge branch 'main' into update-connect-dialog 2021-06-23 13:49:24 -07:00
Carlos Alcaide 48cc8596dc chore: 🤖 Finish up some styles
Finish up some styles. Deleted old commented code and add a temporary
lint ignore comment for no-bare-strings in targets.hbs
2021-06-23 13:48:51 -07:00
Randall Morey 33e6515749 feature: decode session credentials and save onto session instances 2021-06-23 16:36:05 -04:00
Susmitha Girumala 28963a75cc Merge pull request #611 from hashicorp/feature-oidc-accounts
Feature oidc accounts
2021-06-23 15:19:08 -04:00
Susmitha Girumala 6c1e9bc944 Merge branch 'main' into feature-oidc-accounts 2021-06-23 15:10:15 -04:00
Susmitha Girumala 1e421225fa Merge pull request #616 from hashicorp/fix-syntax-error
fix: Fix syntax error in about menu option in desktop
2021-06-23 15:09:24 -04:00
Susmitha Girumala 50ba2eb73a fix: Fix syntax in about menu option in desktop 2021-06-23 14:57:56 -04:00
Carlos Alcaide 1f20e2c40c Fix padding proportions 2021-06-23 11:55:15 -07:00
Carlos Alcaide f0926cba87 Change flex CSS in card header 2021-06-23 11:37:28 -07:00
Susmitha Girumala 3278d229e8 chore: Update components in connect dialog to latest 2021-06-23 11:58:48 -04:00
Carlos Alcaide Corvo d92654776c Merge branch 'main' into feature-oidc-accounts 2021-06-23 08:03:40 -07:00
Randall Morey 34c8ad1d6f Merge pull request #605 from hashicorp/feat-desktop-reveal-component
feat: 🎸 Create reveal component for desktop client
2021-06-23 10:50:54 -04:00
Randall Morey 1208fea0a4 Merge branch 'main' into feat-desktop-reveal-component 2021-06-23 10:13:42 -04:00
Randall Morey 790cec2931 Merge pull request #614 from hashicorp/ICU-1790-key-value-dropdown-item
feat: Add KeyValue Dropdown Item
2021-06-23 09:38:24 -04:00
Susmitha Girumala c7ee9cde17 feat: Allow dropdown items to be selectable without closing 2021-06-23 09:04:08 -04:00
Randall Morey 1143fb02cc chore: 🤖 polish up reveal component 2021-06-22 16:43:02 -04:00
Randall Morey 3fcff99024 fix: template syntax error 2021-06-22 15:35:47 -04:00
Randall Morey 2b5afa0e2c chore: add more example content to credentials card 2021-06-22 15:35:19 -04:00
Randall Morey b8c4feb634 chore: 🤖 merge from main 2021-06-22 15:10:47 -04:00
Susmitha Girumala 1b5e1a7736 style: Remove unused style param 2021-06-22 13:53:34 -04:00
Susmitha Girumala 27afafa077 docs: Update dropdown storybook with key-value item 2021-06-22 13:45:46 -04:00
Susmitha Girumala 73fef6b907 feat: Add key-value item to dropdown in rose addon 2021-06-22 13:38:47 -04:00
Randall Morey 2e2ff60c8f Merge pull request #585 from hashicorp/feat-card-header-footer-component
feat: 🎸 New Card component with header, body and footer
2021-06-22 13:21:06 -04:00
Randall Morey 4abf4e5550 chore: 🤖 polish card and example card usage 2021-06-22 12:58:34 -04:00
Randall Morey 8934e44558 tweak styles 2021-06-22 12:26:20 -04:00
Randall Morey c3561a1063 chore: tweak card styles 2021-06-22 12:08:31 -04:00
Carlos Alcaide Corvo 2f50e6a980 Merge branch 'main' into feat-desktop-reveal-component 2021-06-21 07:59:36 -07:00
Carlos Alcaide Corvo ff0971ca64 Merge branch 'main' into feat-card-header-footer-component 2021-06-21 07:59:18 -07:00
Randall Morey 3f3ac19628 Merge pull request #610 from hashicorp/feat-condensed-dropdown
feat: 🎸 Add condensed style for dropdown
2021-06-21 10:54:27 -04:00
Randall Morey b946917ad8 Merge pull request #612 from hashicorp/chore-tweak-dropdown
chore: 🤖 simplify dropdown styles for consistency with Structure
2021-06-21 10:44:57 -04:00
Carlos Alcaide bfdaacc2cd feat: 🎸 Changing div for h2
Changing the heading text container from a div to an h2
2021-06-18 16:23:07 -07:00
Carlos Alcaide e47c3bd14e feat: 🎸 Change Dropdown behaviour
Now when you click inside the dropdown it does not close.
2021-06-18 15:27:52 -07:00
Randall Morey 88d47688fa chore: 🤖 simplify dropdown styles for consistency with Structur 2021-06-18 16:54:16 -04:00
Carlos Alcaide 62b097170c feat: 🎸 Changes from previous PR suggestions
- Refactor RevealComponent class to inherit from RoseDropdown, no logic
need it. Now there is no need to keep any logic or state. - Refactor
component, to toggle Summary text and set chevron icon with CSS. -
Removed old commented code. Please feel free to suggest a change to
bring it back if can be useful.
2021-06-18 12:29:39 -07:00
Randall Morey 32de6a6ed5 chore: 🤖 add serialization support for OIDC-type accounts 2021-06-18 10:23:40 -04:00
Randall Morey 1e8c8a3ba0 feat: 🎸 add OIDC-typed account form 2021-06-18 09:51:52 -04:00
Randall Morey 0a57865270 feat: 🎸 add type-aware account display in admin UI 2021-06-17 14:09:31 -04:00
Carlos Alcaide b209ff7b2a feat: 🎸 Fix commited mistake
Fix a line of code I delete by accident on my previous commit
2021-06-16 14:27:10 -07:00
Carlos Alcaide a6a33f6b56 feat: 🎸 Create reveal component for desktop client
Create reveal component for desktop client.

✅ Closes: ICU-1432
2021-06-16 14:27:10 -07:00
Carlos Alcaide 445d789344 feat: 🎸 Update PR with suggestions
- Apply forgoten padding and alignment styles for header.

BREAKING CHANGE: 🧨 - Refactor to use named block withint the card component.
2021-06-16 13:42:57 -07:00
Carlos Alcaide 939dd16409 feat: 🎸 Change component name and add attributes
Change the component name to a more generic name (card). Add heading
attributes.

✅ Closes: ICU-1432
2021-06-16 11:32:18 -07:00
Carlos Alcaide b0a2348776 Refactor component name to just card and change tests to accommodate the changes 2021-06-16 11:32:18 -07:00
Carlos Alcaide 3bfb6fe5ee feat: 🎸 New Card component with header, body and footer
Add the new Card component with header, body and footer for the desktop
client. This card will be used within the connection dialog to show
credentials

✅ Closes: ICU-1432
2021-06-16 11:32:17 -07:00
Carlos Alcaide 2fd646c2c9 feat: 🎸 Add condensed style for dropdown
First iteration to add a condensed style for dropdown.

✅ Closes: ICU-1431
2021-06-16 11:03:59 -07:00
Randall Morey 5659df3336 Merge pull request #602 from hashicorp/chore-update-electron-app-resolutions
chore: 🤖 Update electron app resolutions
2021-06-15 17:21:20 -04:00
Carlos Alcaide Corvo 9f66314a9e Merge branch 'main' into chore-update-electron-app-resolutions 2021-06-15 13:29:34 -07:00
Randall Morey 6ddf551d75 Merge pull request #598 from hashicorp/chore-bump-sinon-version
chore: 🤖 Bump sinon dependency bump version
2021-06-15 16:27:51 -04:00
Randall Morey 6272b1a164 Merge branch 'main' into chore-bump-sinon-version 2021-06-15 16:13:20 -04:00
Randall Morey 43cd689da0 Merge pull request #601 from hashicorp/chore-bump-node-html-parser-dep
chore: 🤖 Bump node-html-parser dependency
2021-06-15 16:07:02 -04:00
Carlos Alcaide Corvo 66601240fc Merge branch 'main' into chore-bump-sinon-version 2021-06-15 12:56:36 -07:00
Randall Morey 11daac57c2 Merge branch 'main' into chore-bump-node-html-parser-dep 2021-06-15 15:49:44 -04:00
Randall Morey 9b07969491 Merge pull request #608 from hashicorp/fix-yarn-warning-for-hosted-git-info
fix: 🐛 Fix yarn warning due to strict version declaration
2021-06-15 15:48:57 -04:00
Randall Morey 8e3362fb12 Merge branch 'main' into fix-yarn-warning-for-hosted-git-info 2021-06-15 15:37:06 -04:00
Randall Morey d9bd8fa193 Merge pull request #609 from hashicorp/dependabot/npm_and_yarn/postcss-7.0.36
chore(deps): bump postcss from 7.0.35 to 7.0.36
2021-06-15 15:32:18 -04:00
Randall Morey 3da7bfc7cc Merge branch 'main' into dependabot/npm_and_yarn/postcss-7.0.36 2021-06-15 15:18:29 -04:00
Randall Morey d82cbec7c3 Merge pull request #606 from hashicorp/chore-update-resolutions-clean-css
chore: 🤖 Update resolutions for clean-css
2021-06-15 15:17:13 -04:00
dependabot[bot] 3f9530a970 chore(deps): bump postcss from 7.0.35 to 7.0.36
Bumps [postcss](https://github.com/postcss/postcss) from 7.0.35 to 7.0.36.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.35...7.0.36)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-15 19:05:47 +00:00
Randall Morey 804a879182 Merge branch 'main' into chore-update-resolutions-clean-css 2021-06-15 15:04:17 -04:00
Randall Morey 170fc74b7f Merge pull request #599 from hashicorp/dependabot/npm_and_yarn/ui/desktop/electron-app/normalize-url-4.5.1
chore(deps): bump normalize-url from 4.5.0 to 4.5.1 in /ui/desktop/electron-app
2021-06-15 15:03:53 -04:00
Randall Morey 2ac8818cc6 Merge branch 'main' into dependabot/npm_and_yarn/ui/desktop/electron-app/normalize-url-4.5.1 2021-06-15 12:42:23 -04:00
Carlos Alcaide Corvo 99851fce59 Merge branch 'main' into chore-update-electron-app-resolutions 2021-06-14 16:36:22 -07:00
Carlos Alcaide Corvo 93af7241f5 Merge branch 'main' into chore-update-resolutions-clean-css 2021-06-14 16:25:35 -07:00
Carlos Alcaide Corvo 503a7b9eb8 Merge branch 'main' into chore-bump-node-html-parser-dep 2021-06-14 16:25:24 -07:00
Carlos Alcaide Corvo ffcc8a25d6 Merge branch 'main' into chore-bump-sinon-version 2021-06-14 16:24:52 -07:00
Randall Morey eeb8610973 Merge pull request #577 from hashicorp/feat-new-displaying-connection-dialog-desktop
First iteration of connect dialog component
2021-06-14 18:09:31 -04:00
Randall Morey 75bb34f738 chore: 🤖 use tracked properties instead of attributes 2021-06-14 17:08:48 -04:00
Randall Morey 242c3f6370 chore: 🤖 use named blocks instead of contextual components 2021-06-14 17:02:17 -04:00
Carlos Alcaide 3d3d5ec4d2 fix: 🐛 Fix yarn warning due to strict version declaration
Fix yarn warning due to a strict version declaration of hosted-git-info.
Now the yarn warning is gone when running yarn install.
2021-06-14 12:31:10 -07:00
Carlos Alcaide f34af386c4 chore: 🤖 Update resolutions for clean-css
As per dependanbot alert, a transitive dependency is using a version of
clean-css that has a security vulnerability, With this change we force
to resolve a version of clean-css that has not such vulnerability.
2021-06-14 10:10:02 -07:00
Carlos Alcaide Corvo 9b625a642f Merge branch 'main' into chore-update-electron-app-resolutions 2021-06-14 08:25:50 -07:00
Carlos Alcaide Corvo 1ed0d24fa2 Merge branch 'main' into chore-bump-node-html-parser-dep 2021-06-14 08:25:38 -07:00
Carlos Alcaide Corvo b12b303b97 Merge branch 'main' into chore-bump-sinon-version 2021-06-14 08:25:29 -07:00
Carlos Alcaide Corvo 5e591ce5bb Merge branch 'main' into feat-new-displaying-connection-dialog-desktop 2021-06-14 08:25:04 -07:00
Randall Morey 23de0695d0 Merge pull request #604 from hashicorp/chore-windows-container-build
Chore windows container build
2021-06-09 17:05:51 -04:00
Randall Morey 8d4cb1bfea Merge branch 'main' into chore-windows-container-build 2021-06-09 16:56:51 -04:00
Randall Morey d67f6dab2f chore: add --frozen-lockfile --non-interactive commands to yarn install in docker 2021-06-09 16:41:32 -04:00
Carlos Alcaide Corvo 8ee0e0b92d Merge pull request #600 from hashicorp/chore-update-artifact-version-for-release
Bump artifact version for 0.3.0 release
2021-06-09 13:36:45 -07:00
Randall Morey be9b68eeff chore: add windows build command that builds assets inside a container 2021-06-09 16:35:17 -04:00
Carlos Alcaide Corvo 1e20f7a149 Merge branch 'main' into chore-update-artifact-version-for-release 2021-06-09 13:25:35 -07:00
Randall Morey b413e9d8dd Merge pull request #603 from hashicorp/docs-desktop-known-issue
docs:  add known issue statement to changelog for 1.1.0 desktop
2021-06-09 16:18:15 -04:00
Randall Morey fd3c9eb876 docs: add known issue statement to changelog for 1.1.0 desktop 2021-06-09 15:41:40 -04:00
Carlos Alcaide 5a76f2791a chore: 🤖 Update electron app resolutions
Update electron app resolutions so we do not get versions with security
vulnerabilities from our transitive dependencies
2021-06-09 11:42:47 -07:00
Carlos Alcaide ca2508635e chore: 🤖 Bump node-html-parser dependency
Bump node-html-parser dependency on desktop. The goal is to update the
package and solve the css-what security vulnerability. Node-html-arser
requires css-what via transitive dependency css-select. Upgrading to the
last version of node-html-parser brings the css-what version that solves
the security issue.
2021-06-09 11:25:35 -07:00
Carlos Alcaide Corvo baff01ad48 Merge branch 'main' into chore-bump-sinon-version 2021-06-09 10:41:18 -07:00
Randall Morey 3f04c209f3 chore: tweak dialog styles and language 2021-06-09 10:36:15 -07:00
Carlos Alcaide dbf2a8e43f feat: 🎸 Replace confirmation dialog with this new one
Leave this new dialog exactly as the confirmation dialog. We want to use
this one as a replacament and slowly add more fields and information
2021-06-09 10:31:26 -07:00
Carlos Alcaide db2a40b58f feat: 🎸 Modify test to fit latest changes
Modify tests to fit the latest changes within the confirmation/success
dialog and the brand new conection dialog
2021-06-09 10:31:26 -07:00
Carlos Alcaide f14346d3a4 Add uni test for dialog detail and fix lint errors 2021-06-09 10:31:26 -07:00
Carlos Alcaide c2b4c0ad8b Change model attributes to tracked 2021-06-09 10:31:26 -07:00
Carlos Alcaide 2bb9db6a67 Fix rebase mess with yarn.lock 2021-06-09 10:31:25 -07:00
Carlos Alcaide cf9166fe4a Use translation helper in targets and delete the port change in yarn start command. 2021-06-09 10:30:54 -07:00
Carlos Alcaide 50c7bfc659 Stop using a bare dialog and start using the Dialog Detail component 2021-06-09 10:30:54 -07:00
Carlos Alcaide ecda08164a Ignore test and add changes to pass prettier 2021-06-09 10:30:53 -07:00
Carlos Alcaide 2dfda037fe First iteration of connect dialog component 2021-06-09 10:30:53 -07:00
Carlos Alcaide 9979fe8464 Bump artifact version for 0.3.0 release 2021-06-09 09:33:47 -07:00
dependabot[bot] 49f6330a5d chore(deps): bump normalize-url in /ui/desktop/electron-app
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-09 16:17:26 +00:00
Randall Morey 9049bb2087 Merge pull request #597 from hashicorp/fix-desktop-about
fix: about dialog should display properly
2021-06-09 12:16:14 -04:00
Carlos Alcaide Corvo 82135a4b20 Merge branch 'main' into fix-desktop-about 2021-06-09 08:47:46 -07:00
Carlos Alcaide e737cb448c chore: 🤖 Bump sinon dependency bump version
Bump Sinon dependency version
2021-06-08 15:25:04 -07:00
Carlos Alcaide Corvo dd37718c62 Merge pull request #595 from hashicorp/chore-update-css-what-resolutions
chore: 🤖 Update resolutions for css-what
2021-06-08 14:42:54 -07:00
Carlos Alcaide Corvo e6f0166ff0 Merge branch 'main' into chore-update-css-what-resolutions 2021-06-08 14:30:00 -07:00
Carlos Alcaide Corvo 606a48ca49 Merge pull request #594 from hashicorp/chore-update-trim-newlines
chore: 🤖 Update resolutions for trim-newlines
2021-06-08 14:28:13 -07:00
Carlos Alcaide Corvo d1e46cb9b1 Merge branch 'main' into chore-update-trim-newlines 2021-06-08 14:14:23 -07:00
Carlos Alcaide Corvo 11ceb8b5ca Merge pull request #592 from hashicorp/chore-update-version-ember-a11y-testing
chore: 🤖 Upgrade ember-a11y-testing version
2021-06-08 14:14:07 -07:00
Randall Morey 3854d32e92 fix: about dialog should display properly 2021-06-08 17:07:39 -04:00
Carlos Alcaide Corvo bbb703c671 Merge branch 'main' into chore-update-version-ember-a11y-testing 2021-06-08 14:03:42 -07:00
Randall Morey f507edae03 Merge pull request #593 from hashicorp/remove-shell-config-for-cli-on-windows
fix: Remove shell option for spawning clis on windows
2021-06-08 16:40:13 -04:00
Randall Morey 9231963ac1 Merge branch 'main' into remove-shell-config-for-cli-on-windows 2021-06-08 16:28:33 -04:00
Carlos Alcaide 9bfb136247 chore: 🤖 Upgrade ember-a11y-testing version
Upgrade ember-a11y-testing package version
2021-06-08 12:11:56 -07:00
Carlos Alcaide 4af4ee7cc0 chore: 🤖 Update resolutions for css-what
Update resolution version for css-what transitive dependency.
2021-06-08 08:09:04 -07:00
Carlos Alcaide 12a9f72c68 chore: 🤖 Update resolutions for trim-newlines
Update resolution version for trim-newlines transitive dependency.
2021-06-08 07:56:09 -07:00
Carlos Alcaide Corvo bb88672aff Merge pull request #591 from hashicorp/chore-update-doctoc-version
chore: 🤖 Upgrade version of doctoc
2021-06-08 07:23:46 -07:00
Susmitha Girumala 25e004976e fix: Remove shell option for spawning clis on windows 2021-06-07 18:50:39 -04:00
Carlos Alcaide 60993e455a chore: 🤖 Upgrade version of doctoc
Upgrade version of doctoc and update some readme files in the process.
2021-06-07 14:30:21 -07:00
Susmitha Girumala 40ee317f47 Merge pull request #588 from hashicorp/frameless-desktop-shell-on-windows-os
Use frameless desktop shell on Windows OS
2021-06-07 16:45:20 -04:00
Susmitha Girumala 530cd0298a chore: Simplify Windows styles and cli name population 2021-06-07 14:18:07 -04:00
Susmitha Girumala 374a13cd07 fix: Remove debugger statement 2021-06-07 11:53:15 -04:00
Randall Morey 6f5da333e0 Merge branch 'main' into frameless-desktop-shell-on-windows-os 2021-06-07 10:53:42 -04:00
Randall Morey d121bcf204 Merge pull request #590 from hashicorp/fix-oidc-create
fix: 🐛 add read-only hmac field and enable oidc auth creation
2021-06-07 10:53:30 -04:00
Susmitha Girumala 2acd555966 docs: Update changelog for next release 2021-06-06 11:58:57 -04:00
Susmitha Girumala 820843c51d chore: Fix desktop tests 2021-06-06 11:29:23 -04:00
Susmitha Girumala 243f165644 chore: clean yarn.lock 2021-06-06 10:15:34 -04:00
Susmitha Girumala 5036c62740 Merge remote-tracking branch 'origin/main' into frameless-desktop-shell-on-windows-os 2021-06-06 02:59:09 -04:00
Susmitha Girumala 3ffe70cf5d fix: Ignore app updater for windows
Ignore app updater for windows until first release. Use version packaged
at build time in app updater.
2021-06-06 02:58:42 -04:00
Susmitha Girumala c5b0061428 feat: Use tree-kill module to kill sessions on Windows 2021-06-06 02:47:00 -04:00
Susmitha Girumala fefae2b73d fix: Fix scrollbars and window minimize/close actions for win 2021-06-06 02:12:39 -04:00
Susmitha Girumala 196d01aae2 fix: Fix cli path on windows to launch connect shell 2021-06-05 22:11:47 -04:00
Randall Morey 96707ebe15 fix: 🐛 add read-only hmac field and enable oidc auth creation 2021-06-05 12:29:12 -04:00
Randall Morey 79f5db0441 Merge pull request #587 from hashicorp/feature-oidc-array-fields-crud
Feature oidc array fields crud
2021-06-04 16:50:03 -04:00
Randall Morey d4fee0af34 chore: manual merge from main 2021-06-04 14:35:45 -04:00
Randall Morey a8c65e73f5 Merge pull request #589 from hashicorp/feature-oidc-accounts
Feature oidc accounts
2021-06-04 14:32:09 -04:00
Randall Morey 13df776c18 feat: 🎸 add OIDC account listing 2021-06-04 14:23:08 -04:00
Randall Morey 12588a17ab refactor: 💡 type-specific account serialization 2021-06-04 13:38:23 -04:00
Susmitha Girumala 7b2c8b7d58 Merge remote-tracking branch 'origin/main' into frameless-desktop-shell-on-windows-os 2021-06-04 12:21:49 -04:00
Susmitha Girumala 873965d7b7 feat: Hook in browser actions into electon's BrowserWindow 2021-06-04 12:21:08 -04:00
Randall Morey f02f488edd Merge pull request #583 from hashicorp/ICU-1369-oidc-status-change
[draft] feat: Add oidc status change dropdown to auth method actions
2021-06-04 11:48:16 -04:00
Susmitha Girumala a2ee17e918 Merge pull request #586 from hashicorp/fix-sass-division-deprecation-warning
fix: 🐛 Deprecate Slash as division operator
2021-06-04 11:16:02 -04:00
Randall Morey bf8620d75c chore: 🤖 clean up change-state handler 2021-06-04 10:11:07 -04:00
Randall Morey d0eb41e03b feat: 🎸 add icons and clean up state change language 2021-06-03 17:08:40 -04:00
Carlos Alcaide 6e932f8054 fix: 🐛 Deprecate Slash as division operator
Deprecation of slash as division operator as we were getting warnings in
the terminal about it. More info
[here](https://sass-lang.com/documentation/breaking-changes/slash-div)
2021-06-03 11:32:24 -07:00
Susmitha Girumala 76291896c3 feat: Add window action buttons for windows OS only 2021-06-03 14:28:44 -04:00
Susmitha Girumala c803adccc1 feat: Remove header brand icon padding on windows OS only 2021-06-03 14:03:04 -04:00
Susmitha Girumala f7854b642c chore: Add in-progress oidc test for visibility 2021-06-02 22:44:40 -04:00
Susmitha Girumala a7a6bdedf9 refactor: API: Add AuthMethodOIDC class to hold static states 2021-06-02 22:22:02 -04:00
Carlos Alcaide Corvo 4bcd0e7d06 Merge pull request #580 from hashicorp/chore-update-ember-cli-storybook
chore: 🤖 Update ember-cli-storybook
2021-06-02 15:17:12 -07:00
Carlos Alcaide 895a25218e Fix merge conflict 2021-06-02 15:04:25 -07:00
Carlos Alcaide 8356e7d47a chore: 🤖 Update ember-cli-storybook
Update the version of @storybook/ember-cli-storybook we are using.
2021-06-02 15:01:38 -07:00
Susmitha Girumala 680ae9980b Merge pull request #581 from hashicorp/ICU-1356-enable-windows-platform-support
[desktop] Enable windows platform support
2021-06-02 17:37:12 -04:00
Susmitha Girumala e106454bb5 Merge remote-tracking branch 'origin' into ICU-1356-enable-windows-platform-support 2021-06-02 17:21:28 -04:00
Carlos Alcaide Corvo aa227a0db8 Merge pull request #584 from hashicorp/chore-ws-security-vulnerability
chore: 🤖 Fix WS security vulnerability
2021-06-02 11:59:01 -07:00
Carlos Alcaide 8aca872c66 chore: 🤖 Fix WS security vulnerability
Update the resolutions to resolve a version of WS that has no security
vulnerabilities.
2021-06-02 11:40:33 -07:00
Randall Morey 269c56bf83 fix: lint issue 2021-06-02 14:33:31 -04:00
Randall Morey a89b27c813 Merge branch 'ICU-1369-oidc-status-change' of https://github.com/hashicorp/boundary-ui into ICU-1369-oidc-status-change 2021-06-02 14:25:36 -04:00
Randall Morey 2804b4322b manual merge 2021-06-02 14:25:19 -04:00
Randall Morey 66d16d84d0 fix: 🐛 use flattened attrs to capture oidc field errors 2021-06-02 14:23:54 -04:00
Carlos Alcaide f420d01fb8 fix: 🐛 Fix lint errors
Fix lint errors
2021-06-02 11:19:44 -07:00
Susmitha Girumala 4bd80a716e Revert "Merge branch 'ICU-1369-oidc-status-change' of github.com:hashicorp/boundary-ui into ICU-1369-oidc-status-change"
This reverts commit 8098beb450, reversing
changes made to a6672ecef4.
2021-06-02 14:07:38 -04:00
Susmitha Girumala 8098beb450 Merge branch 'ICU-1369-oidc-status-change' of github.com:hashicorp/boundary-ui into ICU-1369-oidc-status-change 2021-06-02 14:06:06 -04:00
Susmitha Girumala a6672ecef4 chore: Rebase onto feature-oidc-array-fields-crud branch 2021-06-02 14:03:53 -04:00
Susmitha Girumala 79b6737aaa chore: clean yarn install 2021-06-02 13:55:12 -04:00
Susmitha Girumala 31afafff4e Merge branch 'main' into ICU-1356-enable-windows-platform-support 2021-06-02 13:33:04 -04:00
Susmitha Girumala d4a4828b67 Merge pull request #568 from hashicorp/generate-forge-config-on-build
feat: Generate config file for desktop build
2021-06-02 13:32:09 -04:00
Susmitha Girumala 44fa206619 feat: Add oidc status change dropdown to auth method actions 2021-06-02 13:10:34 -04:00
Carlos Alcaide bc10b00874 chore: 🤖 Fix lint errors
Fix lint errors
2021-06-02 13:10:33 -04:00
Susmitha Girumala bbd73b36d1 chore: Fix js lint errors 2021-06-02 13:10:33 -04:00
Randall Morey 3a52b40214 chore: add meta description 2021-06-02 13:10:33 -04:00
Randall Morey c41855ccc4 chore: 🤖 fix imports that don't make sense 2021-06-02 13:10:32 -04:00
Randall Morey c013b178d7 feat: 🎸 add oidc-account-crud feature flag 2021-06-02 12:38:15 -04:00
Randall Morey 683fffaa0e fix: correct path to logo-app 2021-06-02 12:09:34 -04:00
Randall Morey 31f67e568c chore: add missing translations 2021-06-02 12:09:17 -04:00
Susmitha Girumala 9c15d02080 Merge branch 'main' into generate-forge-config-on-build 2021-06-02 11:28:10 -04:00
Susmitha Girumala c14be070f7 feat: Add oidc status change dropdown to auth method actions 2021-06-01 22:29:24 -04:00
Randall Morey 7b1410d832 chore: move squirrel maker to devdeps 2021-06-01 15:25:53 -04:00
Randall Morey 06cf112b61 chore: bump CLI version 2021-06-01 15:25:02 -04:00
Susmitha Girumala 95e3410540 Merge pull request #582 from hashicorp/fix-lint-error
chore: Fix js lint errors
2021-06-01 14:20:17 -04:00
Carlos Alcaide 77d7187116 chore: 🤖 Fix lint errors
Fix lint errors
2021-06-01 11:07:48 -07:00
Susmitha Girumala 28d18e389c chore: Fix js lint errors 2021-06-01 12:55:35 -04:00
Susmitha Girumala d95ae373ab refactor: Move windows app icon to new assets folder 2021-06-01 11:28:47 -04:00
Susmitha Girumala a784eeecc2 Merge branch 'ICU-1356-enable-windows-platform-support' of https://github.com/hashicorp/boundary-ui into ICU-1356-enable-windows-platform-support 2021-06-01 10:20:42 -04:00
Susmitha Girumala 84962c9ed3 docs: Add windows build to readme 2021-06-01 10:20:25 -04:00
Susmitha Girumala cfd2e13832 refactor: Reset titlebarstyle to mac 2021-06-01 09:58:43 -04:00
Susmitha Girumala 880f8f6b39 refactor: Cleanup frameless windows shell work for a futurePR 2021-06-01 09:55:46 -04:00
Susmitha Girumala c5b1cc1498 Merge branch 'main' into generate-forge-config-on-build 2021-06-01 09:35:07 -04:00
Susmitha Girumala 343f85f8e7 Merge remote-tracking branch 'origin/generate-forge-config-on-build' into ICU-1356-enable-windows-platform-support 2021-05-27 10:36:00 -04:00
Susmitha Girumala 654bc18422 chore: Separate desktop ember app build from electron build 2021-05-27 10:34:13 -04:00
Susmitha Girumala 81b59af3b4 Merge pull request #575 from hashicorp/chore-contextual-form-components
feat: 🎸 textarea and select should support contexual usage
2021-05-27 09:22:14 -04:00
Randall Morey e50d0ac00b feat: 🎸 add account claim map support 2021-05-26 18:09:28 -04:00
Randall Morey 9fe89c9b18 feature: add addItem functionality to array fields 2021-05-26 17:12:51 -04:00
Randall Morey 8c20d29806 feat: 🎸 add remove array item support to oidc form 2021-05-26 15:28:41 -04:00
Susmitha Girumala 10d93992d4 refactor: Move assets out of config folder in desktop 2021-05-26 15:05:30 -04:00
Randall Morey 0552d1db5a Merge branch 'chore-contextual-form-components' into feature-oidc-array-fields-crud 2021-05-26 11:14:20 -04:00
Susmitha Girumala 07919409d9 refactor: Static electron config to contain windows platform 2021-05-26 10:39:52 -04:00
Susmitha Girumala d691c1fa11 Merge remote-tracking branch 'origin/generate-forge-config-on-build' into ICU-1356-enable-windows-platform-support 2021-05-26 10:32:57 -04:00
Susmitha Girumala b632df901b Merge remote-tracking branch 'origin/main' into ICU-1356-enable-windows-platform-support 2021-05-26 10:16:25 -04:00
Randall Morey ecb67ea344 Merge branch 'main' into chore-contextual-form-components 2021-05-26 09:29:55 -04:00
Susmitha Girumala 4c2e8f7a76 Merge remote-tracking branch 'origin/main' into generate-forge-config-on-build 2021-05-25 18:07:26 -04:00
Susmitha Girumala 22c4581d4d refactor: 💡 Import generated config into electron forge config 2021-05-25 18:07:04 -04:00
Randall Morey 34c668b4d9 feat: 🎸 textarea and select should support contexual usage 2021-05-25 17:56:22 -04:00
Randall Morey 9437edbf8a Merge pull request #574 from hashicorp/chore-embroider
chore: 🤖 fix imports that don't make sense
2021-05-25 17:50:53 -04:00
Randall Morey 5890b1b2e8 Merge branch 'main' into chore-embroider 2021-05-25 17:36:49 -04:00
Randall Morey 5ea26dc7ea feature: add array fields to oidc form 2021-05-25 17:36:28 -04:00
Susmitha Girumala 6afde1fb18 Merge pull request #572 from hashicorp/chore-meta-description
chore: add meta description
2021-05-25 16:44:39 -04:00
Susmitha Girumala 708a0836cc Merge branch 'main' into chore-meta-description 2021-05-25 15:21:58 -04:00
Susmitha Girumala 3fc51ee54a Merge pull request #571 from hashicorp/fix-logo-app
fix:  logo-app.svg should load properly
2021-05-25 15:21:37 -04:00
Randall Morey e85a75305f Merge branch 'main' into fix-logo-app 2021-05-25 15:10:21 -04:00
Randall Morey 9f469aec38 Merge pull request #569 from hashicorp/chore-dependabot
chore: 🤖 bump browserslist version for dependabot
2021-05-25 15:10:13 -04:00
Susmitha Girumala dd7907da8c Merge remote-tracking branch 'origin/main' into generate-forge-config-on-build 2021-05-25 15:00:29 -04:00
Susmitha Girumala 634c522eaf refactor: Update electron config console log tag 2021-05-25 15:00:20 -04:00
Randall Morey 57a924703e Merge branch 'main' into chore-dependabot 2021-05-25 14:56:51 -04:00
Randall Morey 89285dcfba Merge branch 'main' into fix-logo-app 2021-05-25 14:56:41 -04:00
Randall Morey 05c14d7bbb Merge pull request #570 from hashicorp/chore-docker-builds
Add desktop static assets Docker build support
2021-05-25 14:56:33 -04:00
Randall Morey 8c4228016c Merge branch 'main' into chore-dependabot 2021-05-25 14:54:52 -04:00
Randall Morey 8d00730653 chore: 🤖 fix imports that don't make sense 2021-05-25 14:52:20 -04:00
Randall Morey 38ed272fc2 Merge branch 'main' into fix-logo-app 2021-05-25 14:51:58 -04:00
Randall Morey d0a11d6054 Merge branch 'main' into chore-meta-description 2021-05-25 14:51:52 -04:00
Susmitha Girumala 8022234e84 Merge branch 'main' into chore-docker-builds 2021-05-25 14:26:56 -04:00
Susmitha Girumala b58bde0461 Merge branch 'main' into generate-forge-config-on-build 2021-05-25 14:26:31 -04:00
Susmitha Girumala 48c7538172 Merge pull request #566 from hashicorp/ICU-1560-fix-app-update-prompt-desktop
fix: Desktop should show update prompt for 1.0.1 release
2021-05-25 14:26:18 -04:00
Susmitha Girumala cb938d0e33 Merge branch 'main' into ICU-1560-fix-app-update-prompt-desktop 2021-05-25 13:43:21 -04:00
Susmitha Girumala f2544684ec Merge pull request #573 from hashicorp/remove-yarn-audit-precommit-check
chore: Remove yarn audit check
2021-05-25 13:43:01 -04:00
Susmitha Girumala 131ce44ecc chore: Remove yarn audit from github actions 2021-05-25 13:24:58 -04:00
Randall Morey b91f8c1661 chore: add meta description 2021-05-25 13:14:32 -04:00
Susmitha Girumala 3943a740bc chore: Remove yarn audit check
Json output option for yarn audit is broken:
https://github.com/yarnpkg/yarn/issues/7404
2021-05-25 13:14:16 -04:00
Randall Morey d88a4ac103 fix: logo-app.svg should load properly 2021-05-25 12:55:43 -04:00
Randall Morey afeaf3a671 chore: 🤖 bump browserslist version for dependabot 2021-05-25 11:08:26 -04:00
Randall Morey 1a968a7d24 chore: fix typo 2021-05-24 18:20:00 -04:00
Randall Morey ac5f7fa1c9 chore: add desktop build support with docker-compose 2021-05-24 17:33:03 -04:00
Susmitha Girumala c1cd762da4 chore: Make windows electron shell frameless 2021-05-24 16:37:35 -04:00
Susmitha Girumala 5f9230c458 Merge branch 'main' into ICU-1560-fix-app-update-prompt-desktop 2021-05-24 16:04:33 -04:00
Susmitha Girumala 2381b3372c Merge pull request #567 from hashicorp/feature-oidc-standard-crud
OIDC standard crud - ICU-1365
2021-05-24 16:04:20 -04:00
Susmitha Girumala 4a07478f1e fix: Use os.platform instead of os.type in desktop for platfo 2021-05-24 15:53:10 -04:00
Susmitha Girumala 5c4ceb7f0f Merge branch 'main' into feature-oidc-standard-crud 2021-05-24 15:47:49 -04:00
Susmitha Girumala e940ec98d4 Merge pull request #565 from hashicorp/feature-checkbox-helper-text
feat: 🎸 add helper text option to checkbox component
2021-05-24 15:47:34 -04:00
Susmitha Girumala b7e0f42d47 Merge remote-tracking branch 'origin/generate-forge-config-on-build' into ICU-1356-enable-windows-platform-support 2021-05-24 15:27:03 -04:00
Susmitha Girumala 1b300c676b Merge branch 'main' into feature-checkbox-helper-text 2021-05-24 15:20:37 -04:00
Susmitha Girumala a7cc1b9ba2 Merge pull request #563 from hashicorp/feature-more-oidc-modeling
Feature more oidc modeling
2021-05-24 15:20:24 -04:00
Susmitha Girumala c99449d8e5 refactor: Rename forge config generator to electron.js 2021-05-24 15:20:02 -04:00
Susmitha Girumala 2038a463db Merge branch 'main' into feature-more-oidc-modeling 2021-05-24 14:48:36 -04:00
Susmitha Girumala 4f0e2794ec chore: Add windows icon in desktop 2021-05-24 11:21:34 -04:00
Susmitha Girumala 89891a401a refactor: Use platform helper instead of os api in desktop 2021-05-24 10:41:09 -04:00
Susmitha Girumala d572d5157d chore: desktop: use OS agnostic paths 2021-05-22 18:18:16 -04:00
Susmitha Girumala 6ffb4a2350 chore: Add cross-os package to desktop 2021-05-22 17:12:01 -04:00
Susmitha Girumala 1e1ea1c49a chore: Add cross-env package to desktop 2021-05-22 17:00:48 -04:00
Susmitha Girumala fb4238b035 chore: Refactor windows electron config to use new generator 2021-05-22 16:53:56 -04:00
Susmitha Girumala 3d6d7c99c2 Merge remote-tracking branch 'origin/generate-forge-config-on-build' into ICU-1356-enable-windows-platform-support 2021-05-22 15:59:21 -04:00
Susmitha Girumala 5bb7d41903 feat: Add copyright info to 'About' menu option
Ignore generated forge config file
2021-05-21 17:38:26 -04:00
Susmitha Girumala 47c453e979 feat: Generate forge config file based on platform
In addition, store release variables in forge config for display in
"About" menu option
2021-05-21 17:20:49 -04:00
Randall Morey e16bfdfb03 feat: 🎸 add OIDC crud without array fields or state change 2021-05-21 16:49:07 -04:00
Randall Morey 3138aecc37 chore: add OIDC form field translations 2021-05-21 16:40:29 -04:00
Randall Morey b19583c08d chore: 🤖 tweak oidc attributes serialization 2021-05-21 16:38:59 -04:00
Randall Morey 3d8a70d676 chore: 🤖 remove unnecessary awaits 2021-05-21 15:26:26 -04:00
Randall Morey 7e6158b847 feat: 🎸 add helper text option to checkbox component 2021-05-21 14:12:48 -04:00
Susmitha Girumala 23e82b352e fix: Desktop should show update prompt for 1.0.1 release 2021-05-21 14:12:23 -04:00
Carlos Alcaide Corvo 2ccd08a8d4 Merge pull request #564 from hashicorp/clean-default-tests-comment
style: 💄 Clean default tests comments
2021-05-21 10:13:14 -07:00
Carlos Alcaide 6159378a52 style: 💄 Clean default tests comments
Clean the default test comment added when creating a new test file with
ember-cli.
2021-05-21 08:19:48 -07:00
Susmitha Girumala 65039ce820 fix: Use robocopy in windows instead of xcopy 2021-05-21 10:27:00 -04:00
Randall Morey fde633331c feat: 🎸 add missing array fields to auth method attributes 2021-05-20 18:00:48 -04:00
Randall Morey 597b945aca chore: 🤖 complete the fragment-string serializer with normalize 2021-05-20 17:54:00 -04:00
Susmitha Girumala d23684c42f chore: Update desktop build vars to work on windows 2021-05-20 16:53:18 -04:00
Randall Morey cb3bcf1b9e Merge pull request #558 from hashicorp/feature-oidc-account-claim-maps
Feature oidc account claim maps
2021-05-20 16:18:30 -04:00
Randall Morey c8c5c2e7ef Merge branch 'main' into feature-oidc-account-claim-maps 2021-05-20 16:00:43 -04:00
Randall Morey 8886f14996 Merge pull request #557 from hashicorp/feature-oidc-state-change
feat: 🎸 add OIDC change state custom method
2021-05-20 16:00:32 -04:00
Randall Morey e8c7e81828 Merge branch 'main' into feature-oidc-state-change 2021-05-20 15:37:15 -04:00
Randall Morey 1f47ca8ea9 Merge pull request #556 from hashicorp/feature-oidc-modeling
feat: 🎸 implement basic OIDC auth method attributes modeling
2021-05-20 15:37:08 -04:00
Randall Morey f61cad986f Merge branch 'main' into feature-oidc-modeling 2021-05-20 15:16:56 -04:00
Carlos Alcaide Corvo 6256bfc3cf Merge pull request #554 from hashicorp/new-table-style
Refactor rose table component
2021-05-19 13:37:39 -07:00
Carlos Alcaide 3133997e78 feat: 🎸 Deleting forgot test
Deleting a test that is not need it anymore after last changes
2021-05-19 13:15:04 -07:00
Carlos Alcaide Corvo ed9324a0de Merge branch 'main' into new-table-style 2021-05-19 11:17:43 -07:00
Carlos Alcaide ab668d74eb feat: 🎸 Delete key-value row and other tweaks
Delete the recently introduced key-value class for rows, for they
key-value lookalike, when editing we want to use 3 colums on the table
rather than 2. Some style's tweaks to simplify
2021-05-19 11:16:30 -07:00
Susmitha Girumala 7876de8e2d feat: Add windows electron maker in desktop 2021-05-19 13:06:32 -04:00
Randall Morey 06f00ac8f6 Merge branch 'main' into new-table-style 2021-05-17 16:13:00 -04:00
Susmitha Girumala 97ee639d62 fix: Fix improper use of url.protocol 2021-05-17 15:28:45 -04:00
Susmitha Girumala 314aa62828 feat: Update windows platform specific menu options in deskto 2021-05-17 10:20:21 -04:00
Susmitha Girumala bcf27ae048 feat: Download windows cli archive in desktop 2021-05-17 09:23:30 -04:00
Carlos Alcaide ce9503fc5b feat: 🎸 Refactor table component with PR suggestions
Add shrink style to cells and deprecate expand. Add Key/value style for
table rows. Refactor storybook table page with all the changes. Refactor
styles for new feature and simplification.
2021-05-14 15:40:18 -07:00
Randall Morey dead74c825 feat: 🎸 add OIDC account_claim_maps modeling 2021-05-14 12:05:09 -04:00
Randall Morey 24e37d3faa feat: 🎸 add OIDC change state custom method 2021-05-13 14:10:37 -04:00
Carlos Alcaide 385ea34c98 Swap @style='expand' to boolean @expand='true' 2021-05-13 09:41:13 -07:00
Randall Morey e91612b313 feat: 🎸 implement basic OIDC auth method attributes modeling 2021-05-12 17:12:59 -04:00
Carlos Alcaide 8feeaa47dc feat: 🎸 Refactor rose table component
We refactor the component adding a condensed variant of the table,
refactor the hidden feature. We also provide different alignments for a
cell. Updated tests and storybook page
2021-05-11 15:08:01 -07:00
Susmitha Girumala ec9d953bad test: Add Rose::Table::Row::Cell tests 2021-05-11 15:08:01 -07:00
Susmitha Girumala 84051e4b72 chore: Refactor Rose::Table::Row visually-hidden to hidden 2021-05-11 15:08:01 -07:00
Susmitha Girumala 6b93032a78 style: Update Rose::Table storybook 2021-05-11 15:08:01 -07:00
Susmitha Girumala a909ba67df chore: Minor cleanup in Rose::Table::Row template 2021-05-11 15:08:01 -07:00
Susmitha Girumala cf40b53fd0 chore: Format newly added files in rose 2021-05-11 15:08:01 -07:00
Susmitha Girumala 3425dc89be chore: Setup Rose::Table cell alignment config 2021-05-11 15:08:01 -07:00
Susmitha Girumala 8e1e2b6b36 feat: Add Rose::Table::Row::Cell for cells to expand/shrink 2021-05-11 15:08:01 -07:00
Susmitha Girumala 4ace04de7a feat: Add condensed style to Rose::Table 2021-05-11 15:08:01 -07:00
526 changed files with 18587 additions and 5719 deletions

No files matched your search

-17
View File
@@ -19,23 +19,6 @@ jobs:
if: steps.cache.outputs.cache-hit != 'true'
- run: yarn run compliance:licenses
audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: cache
with:
path: '**/node_modules'
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v1
with:
node-version: '12.x'
- run: yarn install
if: steps.cache.outputs.cache-hit != 'true'
- run: yarn run compliance:audit
lint:
name: Lint
runs-on: ubuntu-latest
+1
View File
@@ -22,6 +22,7 @@ testem.log
yarn-error.log
storybook-static
**/.storybook/*.html
.watchman-cookie*
# ember-try
.node_modules.ember-try
+10 -1
View File
@@ -122,11 +122,20 @@ yarn install
yarn build:ui:desktop
```
In windows, UI is generated using docker to provide a stable UI across platforms.
```cmd
yarn install
docker-compose -f docker-compose-embedding.yml run build-desktop-production
yarn 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: * (*)).
environment variable to set signing certificate name (e.g Developer ID Application: * (*)) when building desktop app using `yarn 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`.
EXE archived desktop UI is available at asset location under `zip` folder.
### Connect Boundary UI to Boundary local instance
+37
View File
@@ -0,0 +1,37 @@
import { Ability } from 'ember-can';
/**
* Generic ability provides abilities common to all models in the API.
*/
export default class CollectionAbility extends Ability {
// =permissions
/**
* @type {boolean}
*/
get canList() {
return this.hasAuthorizedCollectionAction('list');
}
/**
* @type {boolean}
*/
get canCreate() {
return this.hasAuthorizedCollectionAction('create');
}
// =methods
/**
* Returns true if the given action is contained in the ability model's
* `authorized_collection_actions` array.
* @param {string} action
* @return {boolean}
*/
hasAuthorizedCollectionAction(action) {
const authorized_collection_actions =
(this.model || {}).authorized_collection_actions || {};
const collection = this.collection || {};
return authorized_collection_actions[collection]?.includes(action);
}
}
+59
View File
@@ -0,0 +1,59 @@
import { Ability } from 'ember-can';
/**
* Generic ability provides abilities common to all models in the API.
*/
export default class ModelAbility extends Ability {
// =permissions
/**
* @type {boolean}
*/
get canRead() {
return this.hasAuthorizedAction('read');
}
/**
* @type {boolean}
*/
get canUpdate() {
return this.hasAuthorizedAction('update');
}
/**
* @type {boolean}
*/
get canDelete() {
return this.hasAuthorizedAction('delete');
}
/**
* To save an existing model (already persisted to the API), it must contain
* the the `update` authorized action.
*
* For now, new models _always_ have this ability. The reason is because the
* `create` action is authorized on collections, not individual records. So
* this function can't actually tell from a model instance if create
* is allowed.
*
* @type {boolean}
*/
get canSave() {
if (this.model.isNew || (!this.model.isNew && this.canUpdate)) {
return true;
}
return false;
}
// =methods
/**
* Returns true if the given action is contained in the ability model's
* `authorized_actions` array.
* @param {string} action
* @return {boolean}
*/
hasAuthorizedAction(action) {
return this.model.authorized_actions?.includes(action);
}
}
+5 -1
View File
@@ -248,7 +248,11 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
// Normalize field-specific errors, if any.
const errors = fieldErrors.map((error) => ({
detail: error.description,
source: { pointer: `/data/attributes/${error.name}` },
// Ember Data cannot handle errors on nested attributes, so these are
// flattened (e.g. `attributes.foobar` becomes `attributes_foobar`).
// To capture these errors, add read-only fields on the model
// corresponding to the underscored field name.
source: { pointer: `/data/attributes/${error.name.replace('.', '_')}` },
}));
// Return a list of JSON API errors rooted under the `errors` key.
return {
@@ -0,0 +1,47 @@
import BaseModel from '../../models/base';
import { attr } from '@ember-data/model';
/**
* A credential library is a resource that can generate and retrieve
* credentials.
*/
export default class GeneratedCredentialLibraryModel extends BaseModel {
// =attributes
@attr('string', {
description: 'The type of the resource, to help differentiate schemas',
})
type;
@attr('string', {
description: 'The owning credential store ID.',
})
credential_store_id;
@attr('string', {
description: 'Optional name for identification purposes',
})
name;
@attr('string', {
description: 'Optional user-set description for identification purposes',
})
description;
@attr('date', {
description: 'The time this resource was created\nOutput only.',
readOnly: true,
})
created_time;
@attr('date', {
description: 'The time this resource was last updated\nOutput only.',
readOnly: true,
})
updated_time;
@attr('number', {
description: 'Current version number of this resource.',
})
version;
}
@@ -0,0 +1,42 @@
import BaseModel from '../../models/base';
import { attr } from '@ember-data/model';
/**
* A credential store is a resource that can retrieve, store, and potentially
* generate credentials.
*/
export default class GeneratedCredentialStoreModel extends BaseModel {
// =attributes
@attr('string', {
description: 'The type of the resource, to help differentiate schemas',
})
type;
@attr('string', {
description: 'Optional name for identification purposes',
})
name;
@attr('string', {
description: 'Optional user-set description for identification purposes',
})
description;
@attr('date', {
description: 'The time this resource was created\nOutput only.',
readOnly: true,
})
created_time;
@attr('date', {
description: 'The time this resource was last updated\nOutput only.',
readOnly: true,
})
updated_time;
@attr('number', {
description: 'Current version number of this resource.',
})
version;
}
@@ -0,0 +1,15 @@
// app/initializers/fragment-serializer.js
import FragmentAuthMethodAttributesAccountClaimMapSerializer from '../serializers/fragment-auth-method-attributes-account-claim-map';
export function initialize(application) {
application.register(
'serializer:fragment-auth-method-attributes-account-claim-map',
FragmentAuthMethodAttributesAccountClaimMapSerializer
);
}
// Fragment serializers must be manually registered
export default {
name: 'fragment-auth-method-attributes-account-claim-map',
initialize: initialize,
};
@@ -0,0 +1,12 @@
// app/initializers/fragment-serializer.js
import FragmentStringSerializer from '../serializers/fragment-string';
export function initialize(application) {
application.register('serializer:fragment-string', FragmentStringSerializer);
}
// Fragment serializers must be manually registered
export default {
name: 'fragment-string',
initialize: initialize,
};
+9 -9
View File
@@ -17,19 +17,19 @@ export default class AccountModel extends GeneratedAccountModel {
*/
@equal('type', 'password') isPassword;
/**
* @type {boolean}
*/
@equal('type', 'oidc') isOIDC;
/**
* Convenience for getting username in account.
* @type {string}
*/
@computed('type', 'attributes.login_name')
get username() {
let username = '';
switch (this.type) {
case 'password':
username = this.attributes.login_name;
break;
}
return username;
@computed('attributes.{email,full_name,login_name}')
get accountName() {
const { email, full_name, login_name } = this.attributes;
return email || full_name || login_name;
}
// =methods
+98
View File
@@ -1,9 +1,61 @@
import GeneratedAuthMethodModel from '../generated/models/auth-method';
import { attr } from '@ember-data/model';
import { fragment } from 'ember-data-model-fragments/attributes';
import { equal } from '@ember/object/computed';
/**
* Enum options per auth method type and field.
*/
export const options = {
oidc: {
signing_algorithms: [
'RS256',
'RS384',
'RS512',
'ES256',
'ES384',
'ES512',
'PS256',
'PS384',
'PS512',
'EdDSA',
],
state: ['inactive', 'active-private', 'active-public'],
account_claim_maps: {
to: ['sub', 'name', 'email'],
},
},
};
export default class AuthMethodModel extends GeneratedAuthMethodModel {
// =error attributes
// These attributes exist solely to capture errors on nested fields.
// See the application adapter's error normalization method for
// more information.
@attr('string', { readOnly: true }) attributes_state;
@attr('string', { readOnly: true }) attributes_issuer;
@attr('string', { readOnly: true }) attributes_client_id;
@attr('string', { readOnly: true }) attributes_client_secret;
@attr('string', { readOnly: true }) attributes_max_age;
@attr('string', { readOnly: true }) attributes_api_url_prefix;
@attr('string', { readOnly: true })
attributes_disable_discovered_config_validation;
@attr('string', { readOnly: true }) attributes_dry_run;
@attr('string', { readOnly: true }) attributes_account_claim_maps;
@attr('string', { readOnly: true }) attributes_claims_scopes;
@attr('string', { readOnly: true }) attributes_signing_algorithms;
@attr('string', { readOnly: true }) attributes_allowed_audiences;
@attr('string', { readOnly: true }) attributes_idp_ca_certs;
// =attributes
/**
* Attributes of this resource, if any, represented as a JSON fragment.
* @type {FragmentAuthMethodAttributesModel}
*/
@fragment('fragment-auth-method-attributes', { defaultValue: {} }) attributes;
/**
* @type {boolean}
*/
@@ -22,4 +74,50 @@ export default class AuthMethodModel extends GeneratedAuthMethodModel {
get isOIDC() {
return this.type === 'oidc';
}
/**
* @type {boolean}
*/
get isInactive() {
return this.attributes.state === 'inactive';
}
/**
* @type {boolean}
*/
get isPrivate() {
return this.attributes.state === 'active-private';
}
/**
* @type {boolean}
*/
get isPublic() {
return this.attributes.state === 'active-public';
}
// =methods
/**
* Change the active and visibility state of an OIDC auth method
* given its ID.
* For OIDC auth methods only.
* @param {[string]} state
* @param {object} options
* @param {object} options.adapterOptions
* @return {Promise}
*/
changeState(state, options = { adapterOptions: {} }) {
const defaultAdapterOptions = {
method: 'change-state',
state,
};
return this.save({
...options,
adapterOptions: {
...defaultAdapterOptions,
...options.adapterOptions,
},
});
}
}
+13 -1
View File
@@ -1,4 +1,5 @@
import Model from '@ember-data/model';
import { attr } from '@ember-data/model';
import { fragment } from 'ember-data-model-fragments/attributes';
import { computed } from '@ember/object';
@@ -35,6 +36,17 @@ export default class BaseModel extends Model {
// =attributes
@attr({
readOnly: true,
emptyArrayIfMissing: true,
})
authorized_actions;
@attr({
readOnly: true,
})
authorized_collection_actions;
set scopeModel(model) {
if (model) {
const json = model.serialize();
@@ -45,7 +57,7 @@ export default class BaseModel extends Model {
/**
* Convenience for getting and setting the parent scope ID.
* @type {string
* @type {string}
*/
@computed('scope.scope_id')
get scopeID() {
@@ -0,0 +1,30 @@
import GeneratedCredentialLibraryModel from '../generated/models/credential-library';
import { attr } from '@ember-data/model';
import { fragment } from 'ember-data-model-fragments/attributes';
/**
* Enum options for credential library.
*/
export const options = {
http_method: ['GET', 'POST'],
};
export default class CredentialLibraryModel extends GeneratedCredentialLibraryModel {
// =error attributes
// These attributes exist solely to capture errors on nested fields.
// See the application adapter's error normalization method for
// more information.
@attr('string', { readOnly: true }) attributes_http_method;
@attr('string', { readOnly: true }) attributes_http_request_body;
@attr('string', { readOnly: true }) attributes_path;
// =attributes
/**
* Attributes of this resource, if any, represented as a JSON fragment.
* @type {FragmentCredentialLibraryAttributesModel}
*/
@fragment('fragment-credential-library-attributes', { defaultValue: {} })
attributes;
}
@@ -0,0 +1,34 @@
import GeneratedCredentialStoreModel from '../generated/models/credential-store';
import { attr } from '@ember-data/model';
import { fragment } from 'ember-data-model-fragments/attributes';
import { equal } from '@ember/object/computed';
export default class CredentialStoreModel extends GeneratedCredentialStoreModel {
// =error attributes
// These attributes exist solely to capture errors on nested fields.
// See the application adapter's error normalization method for
// more information.
@attr('string', { readOnly: true }) attributes_address;
@attr('string', { readOnly: true }) attributes_namespace;
@attr('string', { readOnly: true }) attributes_ca_cert;
@attr('string', { readOnly: true }) attributes_tls_server_name;
@attr('string', { readOnly: true }) attributes_tls_skip_verify;
@attr('string', { readOnly: true }) attributes_token;
@attr('string', { readOnly: true }) attributes_client_certificate;
@attr('string', { readOnly: true }) attributes_client_certificate_key;
// =attributes
/**
* Attributes of this resource, if any, represented as a JSON fragment.
* @type {FragmentAuthMethodAttributesModel}
*/
@fragment('fragment-credential-store-attributes', { defaultValue: {} })
attributes;
/**
* @type {boolean}
*/
@equal('type', 'vault') isVault;
}
@@ -2,8 +2,16 @@ import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
export default class FragmentAccountAttributesModel extends Fragment {
// =attributes (password)
@attr('string', {
for: 'password',
description: 'The account login name',
})
login_name;
// =attributes (OIDC)
@attr('string', { for: 'oidc' }) subject;
@attr('string', { for: 'oidc' }) issuer;
@attr('string', { for: 'oidc', readOnly: true }) email;
@attr('string', { for: 'oidc', readOnly: true }) full_name;
}
@@ -0,0 +1,9 @@
import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
export default class FragmentAuthMethodAttributesAccountClaimMapModel extends Fragment {
// =attributes (OIDC)
@attr('string') from;
@attr('string') to;
}
@@ -0,0 +1,40 @@
import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
import { fragmentArray } from 'ember-data-model-fragments/attributes';
export default class FragmentAuthMethodAttributesModel extends Fragment {
// =attributes (OIDC)
@attr('string', { readOnly: true }) state;
@attr('string') issuer;
@attr('string') client_id;
@attr('string') client_secret;
@attr('string', { readOnly: true }) client_secret_hmac;
@attr('number') max_age;
@attr('string') api_url_prefix;
@attr('string', { readOnly: true }) callback_url;
@attr('boolean') disable_discovered_config_validation;
@attr('boolean') dry_run;
@fragmentArray('fragment-auth-method-attributes-account-claim-map', {
emptyArrayIfMissing: true,
})
account_claim_maps;
@fragmentArray('fragment-string', {
emptyArrayIfMissing: true,
})
claims_scopes;
@fragmentArray('fragment-string', {
emptyArrayIfMissing: true,
})
signing_algorithms;
@fragmentArray('fragment-string', {
emptyArrayIfMissing: true,
})
allowed_audiences;
@fragmentArray('fragment-string', { emptyArrayIfMissing: true }) idp_ca_certs;
}
@@ -0,0 +1,25 @@
import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
import { options } from './credential-library';
export default class FragmentCredentialLibraryAttributesModel extends Fragment {
//= attributes (vault)
@attr('string', {
description:
'The HTTP method the library uses when requesting credentials from Vault.',
defaultValue: () => options.http_method[0],
})
http_method;
@attr('string', {
description:
'The body of the HTTP request the library sends to Vault when requesting credentials. Only valid if `http_method` is set to `POST`.',
})
http_request_body;
@attr('string', {
description: 'The path in Vault to request credentials from.',
})
path;
}
@@ -0,0 +1,72 @@
import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
export default class FragmentCredentialStoreAttributesModel extends Fragment {
// =attributes (vault)
@attr('string', {
for: 'vault',
description:
"The address to Vault server. This should be a complete URL such as 'https://127.0.0.1:8200'",
})
address;
@attr('string', {
for: 'vault',
description: 'The namespace within Vault to use.',
})
namespace;
@attr('string', {
for: 'vault',
description:
"A PEM-encoded CA certificate to verify the Vault server's TLS certificate.",
})
ca_cert;
@attr('string', {
for: 'vault',
description:
'Name to use as the SNI host when connecting to Vault via TLS.',
})
tls_server_name;
@attr('boolean', {
for: 'vault',
description: 'Whether or not to skip TLS verification.',
})
tls_skip_verify;
@attr('string', {
for: 'vault',
description: 'A token used for accessing Vault.',
})
token;
@attr('string', {
for: 'vault',
description: 'The Vault token hmac.',
readOnly: true,
})
token_hmac;
@attr('string', {
for: 'vault',
description:
'A PEM-encoded client certificate to use for TLS authentication to the Vault server.',
})
client_certificate;
@attr('string', {
for: 'vault',
description:
"A PEM-encoded private key matching the client certificate from 'client_certificate'.",
})
client_certificate_key;
@attr('string', {
for: 'vault',
description: 'The Vault client certificate key hmac.',
readOnly: true,
})
client_certificate_key_hmac;
}
+92 -3
View File
@@ -1,13 +1,95 @@
import GeneratedSessionModel from '../generated/models/session';
import { computed } from '@ember/object';
import { equal } from '@ember/object/computed';
import { attr } from '@ember-data/model';
import { tracked } from '@glimmer/tracking';
import { A } from '@ember/array';
/**
*
*/
class SessionCredential {
// =classes
/**
*
*/
static Library = class Library {
id;
name;
description;
type;
constructor(id, name, description, type) {
this.id = id;
this.name = name;
this.description = description;
this.type = type;
}
};
/**
*
*/
static SecretItem = class SecretItem {
key;
value;
constructor(key, value) {
this.key = key;
this.value = value;
}
};
// =attributes
rawCredential;
library;
#payloadSecret;
/**
* The incoming payload may contain a JSON object under the `decoded` key only
* if it can be JSON-decoded. Some credential stores may not provide JSON,
* however, in which case we may have only the raw base64-encoded secret
* string. In the former case, we convert the key/value pairs of the JSON to
* an array of `SecretItem` instances. In the latter case, we return an
* array containing a single `SecretItem` instance with key `secret` and a
* string value equal to the base64-decoded raw secret.
* The credential secret as an array of key/value objects.
* @type {SessionCredential.SecretItem[]}
*/
get secrets() {
if (this.#payloadSecret?.decoded) {
const secretJSON = this.#payloadSecret.decoded;
return Object.keys(secretJSON).map(
(key) => new SessionCredential.SecretItem(key, secretJSON[key])
);
} else {
// decode from base64
const decodedString = atob(this.#payloadSecret.raw);
return [new SessionCredential.SecretItem('secret', decodedString)];
}
}
// =methods
constructor(cred) {
const { id, name, description, type } = cred.credential_library;
this.library = new SessionCredential.Library(id, name, description, type);
this.#payloadSecret = cred.secret;
this.rawCredential = cred;
}
}
export default class SessionModel extends GeneratedSessionModel {
// =attributes
@attr('string', { readOnly: true }) proxy_address;
@attr('number', { readOnly: true }) proxy_port;
// These transient attributes are used for values that come from the CLI
// `connect` command as triggered by Desktop. These attributes represent
// transient read-only values.
@tracked acknowledged;
@tracked started_desktop_client;
@tracked proxy_address;
@tracked proxy_port;
credentials = A();
@equal('status', 'active') isActive;
@equal('status', 'pending') isPending;
@@ -41,6 +123,13 @@ export default class SessionModel extends GeneratedSessionModel {
// =methods
/**
*
*/
addCredential(cred) {
this.credentials.pushObject(new SessionCredential(cred));
}
/**
* Cancels the session via the `cancel` method.
* See serializer and adapter for more information.
+90
View File
@@ -20,6 +20,16 @@ export default class TargetModel extends GeneratedTargetModel {
})
host_sets;
/**
* Credential library ids are read only and can be
* persisted via a dedicated call to `addCredentialLibraries()`.
*/
@fragmentArray('fragment-string', {
readOnly: true,
emptyArrayIfMissing: true,
})
application_credential_library_ids;
/**
* An array of resolved host set and host catalog instances. Model instances
* must already be loaded into the store (this method will not load unloaded
@@ -36,6 +46,24 @@ export default class TargetModel extends GeneratedTargetModel {
.filter((hostSetRef) => hostSetRef.model !== null);
}
/**
* An array of resolved credential library instances. Model instances
* must already be loaded into the store (this method will not load unloaded
* instances). Unresolvable instances are excluded from the array.
* @type {[CredentialLibraryModel]}
*/
@computed('application_credential_library_ids.[]', 'store')
get credentialLibraries() {
return this.application_credential_library_ids
.map((credential_library_fragment) =>
this.store.peekRecord(
'credential-library',
credential_library_fragment.value
)
)
.filter(Boolean);
}
/**
* Sessions associated with this target (but only already loaded sessions).
* @type {SessionModel[]}
@@ -122,4 +150,66 @@ export default class TargetModel extends GeneratedTargetModel {
removeHostSet(hostSetID, options) {
return this.removeHostSets([hostSetID], options);
}
/**
* Adds credential libraries via the `add-credential-libraries` method.
* See serializer and adapter for more information.
* @param {[string]} credentialLibraryIDs
* @param {object} options
* @param {object} options.adapterOptions
* @return {Promise}
*/
addCredentialLibraries(
credentialLibraryIDs,
options = { adapterOptions: {} }
) {
const defaultAdapterOptions = {
method: 'add-credential-libraries',
credentialLibraryIDs,
};
// There is no "deep merge" in ES.
return this.save({
...options,
adapterOptions: {
...defaultAdapterOptions,
...options.adapterOptions,
},
});
}
/**
* Delete credential libraries via the `remove-credential-libraries` method.
* See serializer and adapter for more information.
* @param {[string]} credentialLibraryIDs
* @param {object} options
* @param {object} options.adapterOptions
* @return {Promise}
*/
removeCredentialLibraries(
credentialLibraryIDs,
options = { adapterOptions: {} }
) {
const defaultAdapterOptions = {
method: 'remove-credential-libraries',
credentialLibraryIDs,
};
// There is no "deep merge" in ES.
return this.save({
...options,
adapterOptions: {
...defaultAdapterOptions,
...options.adapterOptions,
},
});
}
/**
* Delete a single credential library set via the `remove-credential-libraries` method.
* @param {number} credentialLibraryID
* @param {object} options
* @return {Promise}
*/
removeCredentialLibrary(credentialLibraryID, options) {
return this.removeCredentialLibraries([credentialLibraryID], options);
}
}
+42
View File
@@ -20,13 +20,55 @@ export default class AccountSerializer extends ApplicationSerializer {
* @return {object}
*/
serialize(snapshot) {
switch (snapshot.record.type) {
case 'password':
return this.serializePassword(...arguments);
case 'oidc':
return this.serializeOIDC(...arguments);
}
}
/**
* OIDC serialization limits the `attributes` posted on create and omits
* `attributes` entirely on update.
*/
serializeOIDC(snapshot) {
const { isNew } = snapshot?.record;
let serialized = super.serialize(...arguments);
delete serialized.attributes;
if (isNew) {
serialized.attributes = {};
const { issuer, subject } = snapshot.attr('attributes').record;
if (issuer) serialized.attributes.issuer = issuer;
if (subject) serialized.attributes.subject = subject;
}
return serialized;
}
/**
* Password serialization omits `attributes` and handles password-related
* custom methods.
* @param {Snapshot} snapshot
* @return {object}
*/
serializePassword(snapshot) {
const password = snapshot?.adapterOptions?.password;
let serialized = super.serialize(...arguments);
// Only login_name is serialized into password attributes.
const { login_name } = serialized.attributes;
if (login_name) {
serialized.attributes = { login_name };
} else {
serialized.attributes = {};
}
// New record case
if (password && snapshot?.record?.isNew)
serialized.attributes.password = password;
// Set password custom method
if (snapshot?.adapterOptions?.method === 'set-password') {
serialized = this.serializeForSetPassword(snapshot, password);
}
// Change password custom method
if (snapshot?.adapterOptions?.method === 'change-password') {
const { currentPassword, newPassword } = snapshot?.adapterOptions;
serialized = this.serializeForChangePassword(
+70 -3
View File
@@ -1,6 +1,64 @@
import ApplicationSerializer from './application';
import { copy } from 'ember-copy';
export default class AuthMethodSerializer extends ApplicationSerializer {
// =methods
/**
* Delegates to a type-specific serialization, or default.
* @override
* @param {Snapshot} snapshot
* @return {object}
*/
serialize(snapshot) {
switch (snapshot.record.type) {
case 'oidc':
return this.serializeOIDC(...arguments);
default:
return this.serializeDefault(...arguments);
}
}
/**
* Default serialization omits `attributes`.
* @return {object}
*/
serializeDefault() {
let serialized = super.serialize(...arguments);
delete serialized.attributes;
return serialized;
}
/**
* If `adapterOptions.state` is set, the serialization should
* include **only state** and version. Normally, this is not serialized.
* @param {Snapshot} snapshot
* @return {object}
*/
serializeOIDC(snapshot) {
let serialized = super.serialize(...arguments);
const state = snapshot?.adapterOptions?.state;
if (state) {
serialized = this.serializeOIDCWithState(snapshot, state);
} else {
delete serialized.attributes.state;
}
return serialized;
}
/**
* Returns a payload containing only state and version.
* @param {Snapshot} snapshot
* @param {string} state
* @return {object}
*/
serializeOIDCWithState(snapshot, state) {
return {
version: snapshot.attr('version'),
attributes: { state },
};
}
/**
* Sorts the array in order of "is_primary" such that the primary method
* appears first. The "natural" order of auth methods places primary first.
@@ -23,10 +81,19 @@ export default class AuthMethodSerializer extends ApplicationSerializer {
*
* TODO: generalize this so that all zero values are reified.
* @override
* @return {object}
* @see FragmentScope
* @param {Model} typeClass
* @param {Object} hash
* @return {Object}
*/
normalize() {
const normalized = super.normalize(...arguments);
normalize(typeClass, hash, ...rest) {
let normalizedHash = copy(hash, true);
// switch (normalizedHash.type) {
// case 'oidc':
// normalizedHash = this.normalizeOIDC(normalizedHash);
// break;
// }
const normalized = super.normalize(typeClass, normalizedHash, ...rest);
if (!normalized.data.attributes.is_primary) {
normalized.data.attributes.is_primary = false;
}
@@ -0,0 +1,3 @@
import ApplicationSerializer from './application';
export default class CredentialLibrarySerializer extends ApplicationSerializer {}
@@ -0,0 +1,3 @@
import ApplicationSerializer from './application';
export default class CredentialStoreSerializer extends ApplicationSerializer {}
@@ -0,0 +1,26 @@
import JSONSerializer from '@ember-data/serializer/json';
export default class FragmentAccountAttributesSerializer extends JSONSerializer {
/**
* If an attribute is annotated as readOnly in the model, don't serialize it.
* Otherwise delegate to default attribute serializer.
*
* @override
* @method serializeAttribute
* @param {Snapshot} snapshot
* @param {Object} json
* @param {String} key
* @param {Object} attribute
*/
serializeAttribute(snapshot, json, key, attribute) {
const { type, options } = attribute;
let value = super.serializeAttribute(...arguments);
// Convert empty strings to null.
if (type === 'string' && json[key] === '') json[key] = null;
// Do not serialize read-only attributes.
if (options.readOnly) delete json[key];
// Client secret cannot be unset. If it's falsy, it must be removed.
if (key === 'client_secret' && !json[key]) delete json[key];
return value;
}
}
@@ -0,0 +1,30 @@
import JSONSerializer from '@ember-data/serializer/json';
export default class FragmentHostSetSerializer extends JSONSerializer {
// =methods
/**
* Serializes an account claim to string.
* @param {Snapshot} snapshot
* @return {string}
*/
serialize(snapshot) {
const from = snapshot.attr('from');
const to = snapshot.attr('to');
return `${from}=${to}`;
}
/**
* Normalizes account claim strings into JSON API objects.
* @param {Model} typeClass
* @param {string} value
* @return {object}
*/
normalize(typeClass, value) {
const normalizedHash = {
from: value.split('=')[0],
to: value.split('=')[1],
};
return super.normalize(typeClass, normalizedHash);
}
}
@@ -0,0 +1,26 @@
import JSONSerializer from '@ember-data/serializer/json';
export default class FragmentAuthMethodAttributesSerializer extends JSONSerializer {
/**
* If an attribute is annotated as readOnly in the model, don't serialize it.
* Otherwise delegate to default attribute serializer.
*
* @override
* @method serializeAttribute
* @param {Snapshot} snapshot
* @param {Object} json
* @param {String} key
* @param {Object} attribute
*/
serializeAttribute(snapshot, json, key, attribute) {
const { type, options } = attribute;
let value = super.serializeAttribute(...arguments);
// Convert empty strings to null.
if (type === 'string' && json[key] === '') json[key] = null;
// Do not serialize read-only attributes.
if (options.readOnly) delete json[key];
// Client secret cannot be unset. If it's falsy, it must be removed.
if (key === 'client_secret' && !json[key]) delete json[key];
return value;
}
}
@@ -0,0 +1,27 @@
import JSONSerializer from '@ember-data/serializer/json';
export default class FragmentCredentialLibraryAttributesSerializer extends JSONSerializer {
/**
* If an attribute is annotated as readOnly in the model, don't serialize it.
* Otherwise delegate to default attribute serializer.
* Only serialize http_request_body when `http_method` is set to `POST`.
* @override
* @method serializeAttribute
* @param {Snapshot} snapshot
* @param {Object} json
* @param {String} key
* @param {Object} attribute
*/
serializeAttribute(snapshot, json, key, attribute) {
const { type, options } = attribute;
let value = super.serializeAttribute(...arguments);
// Convert empty strings to null.
if (type === 'string' && json[key] === '') json[key] = null;
// Do not serialize read-only attributes.
if (options.readOnly) delete json[key];
// Do not serialize http_request_body unless http_method is POST
if (key === 'http_request_body' && !json['http_method']?.match(/post/i))
delete json[key];
return value;
}
}
@@ -0,0 +1,34 @@
import JSONSerializer from '@ember-data/serializer/json';
export default class FragmentCredentialStoreAttributesSerializer extends JSONSerializer {
/**
* If an attribute is annotated as readOnly in the model, don't serialize it.
* Otherwise delegate to default attribute serializer.
*
* @override
* @method serializeAttribute
* @param {Snapshot} snapshot
* @param {Object} json
* @param {String} key
* @param {Object} attribute
*/
serializeAttribute(snapshot, json, key, attribute) {
const { type, options } = attribute;
let value = super.serializeAttribute(...arguments);
// Convert empty strings to null.
if (type === 'string' && json[key] === '') json[key] = null;
// Do not serialize read-only attributes.
if (options.readOnly) delete json[key];
// Token cannot be unset. If it's falsy, it must be removed.
if (key === 'token' && !json[key]) delete json[key];
// Client certificate key cannot be unset when certificate is set.
// If it's falsy, it must be removed.
if (
key === 'client_certificate_key' &&
!json[key] &&
json['client_certificate']
)
delete json[key];
return value;
}
}
@@ -0,0 +1,24 @@
import JSONSerializer from '@ember-data/serializer/json';
export default class FragmentStringSerializer extends JSONSerializer {
// =methods
/**
* Serializes a to string.
* @param {Snapshot} snapshot
* @return {string}
*/
serialize(snapshot) {
return snapshot.attr('value');
}
/**
* Normalizes from strings.
* @param {Model} typeClass
* @param {string} value
* @return {object}
*/
normalize(typeClass, value) {
return super.normalize(typeClass, { value });
}
}
-17
View File
@@ -37,21 +37,4 @@ export default class HostSetSerializer extends ApplicationSerializer {
host_ids: hostIDs,
};
}
/**
* Converts string arrays to object arrays for use with `fragment-string`.
* E.g. `"foo"` -> `{value: "foo"}`
* @override
* @param {Model} modelClass
* @param {Object} resourceHash
* @return {Object}
*/
normalize(modelClass, resourceHash) {
// TODO: can fragment string normalization be handled generically?
// TODO: host_ids might actually be attributes.host_ids
if (resourceHash.host_ids) {
resourceHash.host_ids = resourceHash.host_ids.map((value) => ({ value }));
}
return super.normalize(modelClass, resourceHash);
}
}
+25 -1
View File
@@ -6,7 +6,11 @@ export default class TargetSerializer extends ApplicationSerializer {
/**
* If `adapterOptions.hostSets` is set to an array of host set models,
* the resulting target serialization should include **only host sets**
* and the version. Normally, host sets are not serialized.
* and the version.
* If `adapterOptions.credentialLibraries` is set to an array of
* credential library models, the resulting target serialization should
* include **only credential libraries** and the version.
* Normally, neither host sets or credential libraries are not serialized.
* @override
* @param {Snapshot} snapshot
* @return {object}
@@ -16,6 +20,12 @@ export default class TargetSerializer extends ApplicationSerializer {
const hostSetIDs = snapshot?.adapterOptions?.hostSetIDs;
if (hostSetIDs)
serialized = this.serializeWithHostSets(snapshot, hostSetIDs);
const credentialLibraryIDs = snapshot?.adapterOptions?.credentialLibraryIDs;
if (credentialLibraryIDs)
serialized = this.serializeWithCredentialLibraries(
snapshot,
credentialLibraryIDs
);
return serialized;
}
@@ -32,4 +42,18 @@ export default class TargetSerializer extends ApplicationSerializer {
host_set_ids: hostSetIDs,
};
}
/**
* Returns a payload containing only the credential_library_ids array using IDs
* passed into the function (rather than existing credential libraries on the model).
* @param {Snapshot} snapshot
* @param {[string]} credentialLibraryIDs
* @return {object}
*/
serializeWithCredentialLibraries(snapshot, credentialLibraryIDs) {
return {
version: snapshot.attr('version'),
application_credential_library_ids: credentialLibraryIDs,
};
}
}
+3 -2
View File
@@ -76,8 +76,9 @@ export default class StorageService extends Service {
const inMemory = get(config, 'storage.memory');
// Get the global context object (window) via service lookup,
// because just reaching for a global is icky
const globalContext = getOwner(this).lookup('service:-document')
.documentElement.parentNode.defaultView;
const globalContext =
getOwner(this).lookup('service:-document').documentElement.parentNode
.defaultView;
// If memory storage enabled, return the memory storage instance,
// otherwise return localStorage.
return inMemory ? this.#memoryStorage : globalContext.localStorage;
+1
View File
@@ -0,0 +1 @@
export { default } from 'api/abilities/collection';
+1
View File
@@ -0,0 +1 @@
export { default } from 'api/abilities/model';
@@ -0,0 +1,4 @@
export {
default,
initialize,
} from 'api/initializers/fragment-auth-method-attributes-account-claim-map-serializer';
@@ -0,0 +1 @@
export { default, initialize } from 'api/initializers/fragment-string';
@@ -0,0 +1 @@
export { default } from 'api/models/credential-library';
@@ -0,0 +1 @@
export { default } from 'api/models/credential-store';
@@ -0,0 +1 @@
export { default } from 'api/models/fragment-auth-method-attributes-account-claim-map';
@@ -0,0 +1 @@
export { default } from 'api/models/fragment-auth-method-attributes';
@@ -0,0 +1 @@
export { default } from 'api/models/fragment-credential-library-attributes';
@@ -0,0 +1 @@
export { default } from 'api/models/fragment-credential-store-attributes';
@@ -0,0 +1 @@
export { default } from 'api/serializers/credential-library';
@@ -0,0 +1 @@
export { default } from 'api/serializers/credential-store';
@@ -0,0 +1 @@
export { default } from 'api/serializers/fragment-account-attributes';
@@ -0,0 +1 @@
export { default } from 'api/serializers/fragment-auth-method-attributes';
@@ -0,0 +1 @@
export { default } from 'api/serializers/fragment-credential-library-attributes';
@@ -0,0 +1 @@
export { default } from 'api/serializers/fragment-credential-store-attributes';
@@ -0,0 +1 @@
export { default } from 'api/serializers/fragment-string';
+57 -3
View File
@@ -13,7 +13,7 @@ export default function () {
// make this `/api`, for example, if your API is namespaced
this.namespace = config.api.namespace;
// delay for each request, automatically set to 0 during testing
this.timing = 350;
this.timing = 1;
// Allow any configured API host to passthrough, which is useful in
// development for testing against a locally running backend.
@@ -106,8 +106,9 @@ export default function () {
}
);
// Authenticate/deauthenticate routes
// Authenticate + auth methods custom routes
this.post('/auth-methods/:id_method', authHandler);
// Deauthenticate route
this.post('/scopes/:id_method', deauthHandler);
// IAM : Users
@@ -365,10 +366,10 @@ export default function () {
const target = targets.find(id);
const updatedAttrs = {
version: attrs.version,
hostSetIds: target.hostSetIds,
};
// If adding host sets, push them into the array
if (method === 'add-host-sets') {
updatedAttrs.hostSetIds = target.hostSetIds;
attrs.hostSetIds.forEach((id) => {
if (!updatedAttrs.hostSetIds.includes(id)) {
updatedAttrs.hostSetIds.push(id);
@@ -377,10 +378,28 @@ export default function () {
}
// If deleting host sets, filter them out of the array
if (method === 'remove-host-sets') {
updatedAttrs.hostSetIds = target.hostSetIds;
updatedAttrs.hostSetIds = updatedAttrs.hostSetIds.filter((id) => {
return !attrs.hostSetIds.includes(id);
});
}
// If adding credential libraries, push them into the array
if (method === 'add-credential-libraries') {
updatedAttrs.credentialLibraryIds = target.credentialLibraryIds;
attrs.applicationCredentialLibraryIds.forEach((id) => {
if (!updatedAttrs.credentialLibraryIds.includes(id)) {
updatedAttrs.credentialLibraryIds.push(id);
}
});
}
// If deleting credential libraries, filter them out of the array
if (method === 'remove-credential-libraries') {
updatedAttrs.credentialLibraryIds = target.credentialLibraryIds;
updatedAttrs.credentialLibraryIds =
updatedAttrs.credentialLibraryIds.filter((id) => {
return !attrs.applicationCredentialLibraryIds.includes(id);
});
}
return target.update(updatedAttrs);
}
);
@@ -455,6 +474,41 @@ export default function () {
return new Response(200);
});
// credential-stores
this.get(
'/credential-stores',
({ credentialStores }, { queryParams: { scope_id: scopeId } }) =>
credentialStores.where({ scopeId })
);
this.get('/credential-stores/:id');
this.post('/credential-stores');
this.patch('/credential-stores/:id');
this.del('/credential-stores/:id');
// credential-libraries
this.get(
'/credential-libraries',
(
{ credentialLibraries },
{ queryParams: { credential_store_id: credentialStoreId } }
) => credentialLibraries.where({ credentialStoreId })
);
this.get('/credential-libraries/:id');
this.post(
'/credential-libraries',
function ({ credentialStores, credentialLibraries }) {
const attrs = this.normalizedRequestAttrs();
const credentialStore = credentialStores.find(attrs.credentialStoreId);
attrs.scopeId = credentialStore.scope.id;
return credentialLibraries.create(attrs);
}
);
this.del('/credential-libraries/:id');
this.patch('/credential-libraries/:id');
/* Uncomment the following line and the Response import above
* Then change the response code to simulate error responses.
* this.get('/scopes', () => new Response(505));
+24 -1
View File
@@ -1,3 +1,26 @@
import factory from '../generated/factories/account';
import { random, internet } from 'faker';
import permissions from '../helpers/permissions';
export default factory.extend();
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('account') || [
'no-op',
'read',
'update',
'delete',
],
attributes() {
switch (this.type) {
case 'password':
return { login_name: random.words() };
case 'oidc':
return {
issuer: internet.ip(),
subject: 'sub',
email: internet.email(),
full_name: random.words(),
};
}
},
});
+15 -2
View File
@@ -1,9 +1,22 @@
import factory from '../generated/factories/auth-method';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
const types = ['password', 'oidc'];
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('auth-method') || [
'no-op',
'read',
'update',
'delete',
],
authorized_collection_actions: () => {
return {
accounts: ['create', 'list'],
};
},
id: (i) => `auth-method-id-${i}`,
// Cycle through available types
@@ -14,9 +27,9 @@ export default factory.extend({
*/
withAccountsAndUsers: trait({
afterCreate(authMethod, server) {
const { scope } = authMethod;
const { scope, type } = authMethod;
server.createList('user', 5, { scope }).map((user) => {
const { id } = server.create('account', { scope, authMethod });
const { id } = server.create('account', { scope, type, authMethod });
user.update({ accountIds: [id] });
});
},
@@ -0,0 +1,29 @@
import factory from '../generated/factories/credential-library';
import { random, system } from 'faker';
import permissions from '../helpers/permissions';
const types = ['vault'];
export default factory.extend({
id: (i) => `credential-library-id-${i}`,
type: (i) => types[i % types.length],
authorized_actions: () =>
permissions.authorizedActionsFor('credential-library') || [
'no-op',
'read',
'update',
'delete',
],
attributes() {
switch (this.type) {
case 'vault':
return {
http_method: 'GET',
http_request_body: random.word(),
path: system.directoryPath(),
};
}
},
});
@@ -0,0 +1,49 @@
import factory from '../generated/factories/credential-store';
import { random, internet, datatype } from 'faker';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
const types = ['vault'];
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('credential-store') || [
'no-op',
'read',
'update',
'delete',
],
authorized_collection_actions: () => {
return {
'credential-libraries': ['create', 'list'],
};
},
id: (i) => `credential-store-id-${i}`,
type: (i) => types[i % types.length],
attributes() {
switch (this.type) {
case 'vault':
return {
address: internet.ip(),
namespace: random.word(),
ca_cert: 'ca-cert-123',
tls_server_name: internet.domainName(),
tls_skip_verify: datatype.boolean(),
token_hmac: 'token-hmac-abcde0987654321',
client_certificate: 'client-cert-123',
client_certificate_key_hmac: 'client-cert-key-hmac-abcde0987654321',
};
}
},
withAssociations: trait({
afterCreate(credentialStore, server) {
const { scope } = credentialStore;
server.createList('credential-library', 2, {
scope,
credentialStore,
});
},
}),
});
+8
View File
@@ -1,7 +1,15 @@
import factory from '../generated/factories/group';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('group') || [
'no-op',
'read',
'update',
'delete',
],
id: (i) => `group-${i}`,
/**
@@ -1,7 +1,21 @@
import factory from '../generated/factories/host-catalog';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('host-catalog') || [
'no-op',
'read',
'update',
'delete',
],
authorized_collection_actions: () => {
return {
hosts: ['create', 'list'],
'host-sets': ['create', 'list'],
};
},
withChildren: trait({
afterCreate(hostCatalog, server) {
const { scope } = hostCatalog;
+8
View File
@@ -1,5 +1,13 @@
import factory from '../generated/factories/host-set';
import permissions from '../helpers/permissions';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('host-set') || [
'no-op',
'read',
'update',
'delete',
],
id: (i) => `host-set-id-${i}`,
});
+8
View File
@@ -1,5 +1,13 @@
import factory from '../generated/factories/host';
import permissions from '../helpers/permissions';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('host') || [
'no-op',
'read',
'update',
'delete',
],
id: (i) => `host-id-${i}`,
});
+8
View File
@@ -1,7 +1,15 @@
import factory from '../generated/factories/role';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('role') || [
'no-op',
'read',
'update',
'delete',
],
// eslint-disable-next-line ember/avoid-leaking-state-in-ember-objects
grant_strings: () => [
'id=*;action=*',
+23
View File
@@ -1,9 +1,32 @@
import factory from '../generated/factories/scope';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
export default factory.extend({
type: 'global',
authorized_actions: () =>
permissions.authorizedActionsFor('scope') || [
'no-op',
'read',
'update',
'delete',
],
authorized_collection_actions: () => {
return {
scopes: ['create', 'list'],
users: ['create', 'list'],
sessions: ['list'],
groups: ['create', 'list'],
roles: ['create', 'list'],
targets: ['create', 'list'],
'credential-stores': ['create', 'list'],
'auth-methods': ['create', 'list'],
'host-catalogs': ['create', 'list'],
};
},
/**
* Generates realistic-ish IDs while still being deterministic.
*/
+23 -5
View File
@@ -1,13 +1,21 @@
import factory from '../generated/factories/target';
import { trait } from 'ember-cli-mirage';
import { random, datatype } from 'faker';
import permissions from '../helpers/permissions';
const randomBoolean = (chance = 0.5) => Math.random() < chance;
const hostSetChance = 0.3;
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('target') || [
'no-op',
'read',
'update',
'delete',
],
/**
* -1 means "unlimited" and we want to generate these on occassion.
* -1 means "unlimited" and we want to generate these on occasion.
*/
session_connection_limit: () => random.arrayElement([-1, datatype.number()]),
@@ -25,11 +33,11 @@ export default factory.extend({
},
/**
* Randomly selects existing host sets to assign to target.
* Randomly selects existing host sets and credential libraries to assign to target.
*/
withRandomHostSets: trait({
withAssociations: trait({
afterCreate(target, server) {
let randomlySelectedHostSets;
let randomlySelectedHostSets, randomlySelectedCredentialLibraries;
randomlySelectedHostSets = server.schema.hostSets
// BLERG: fun fact, for no reason at all, the element passed
// into a where function is not a full model instance, as you might
@@ -38,7 +46,17 @@ export default factory.extend({
// the result set of `where` _is a collection of model instances_.
.where((hostSet) => hostSet.scopeId === target.scope.id)
.models.filter(() => randomBoolean(hostSetChance));
target.update({ hostSets: randomlySelectedHostSets });
randomlySelectedCredentialLibraries = server.schema.credentialLibraries
.where(
(credentialLibrary) => credentialLibrary.scopeId === target.scope.id
)
.models.filter(() => randomBoolean());
target.update({
hostSets: randomlySelectedHostSets,
credentialLibraries: randomlySelectedCredentialLibraries,
});
},
}),
});
+8
View File
@@ -1,5 +1,13 @@
import factory from '../generated/factories/user';
import permissions from '../helpers/permissions';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('user') || [
'no-op',
'read',
'update',
'delete',
],
id: (i) => `user-${i}`,
});
@@ -1,15 +1,14 @@
import { Factory } from 'ember-cli-mirage';
import { random, date, datatype } from 'faker';
import { date, datatype } from 'faker';
/**
* GeneratedAccountFactory
*/
export default Factory.extend({
type: 'password',
name: () => random.words(),
description: () => random.words(),
// name: () => random.words(),
// description: () => random.words(),
created_time: () => date.recent(),
updated_time: () => date.recent(),
version: () => datatype.number(),
attributes: () => ({ login_name: random.words() }),
});
@@ -11,4 +11,29 @@ export default Factory.extend({
created_time: () => date.recent(),
updated_time: () => date.recent(),
disabled: () => datatype.boolean(),
attributes: function () {
let attrs;
switch (this.type) {
case 'oidc':
attrs = {
api_url_prefix: 'http://127.0.0.1:9200',
callback_url:
'http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback',
client_id: 'YTwdJBB55LpKnuXb9n65',
client_secret_hmac: 'GY7blb4ynM5TEPNi_qnphJ9aDWhW8FpmN3D-eP_L7Zk',
issuer: 'http://127.0.0.1:57070',
max_age: 1800,
disable_discovered_config_validation: false,
state: 'active-public',
account_claim_maps: ['oid=sub', 'full_name=name'],
claims_scopes: ['profile', 'email'],
signing_algorithms: ['RS256', 'RS384'],
allowed_audiences: ['www.alice.com', 'www.alice.com/admin'],
idp_ca_certs: ['certificate-1234', 'certificate-5678'],
};
break;
}
return attrs;
},
});
@@ -0,0 +1,12 @@
import { Factory } from 'ember-cli-mirage';
import { random, date } from 'faker';
/**
* GeneratedCredentialLibraryModelFactory
*/
export default Factory.extend({
name: () => random.words(),
description: () => random.words(),
created_time: () => date.recent(),
updated_time: () => date.recent(),
});
@@ -0,0 +1,12 @@
import { Factory } from 'ember-cli-mirage';
import { random, date } from 'faker';
/**
* GeneratedCredentialStoreModelFactory
*/
export default Factory.extend({
name: () => random.words(),
description: () => random.words(),
created_time: () => date.recent(),
updated_time: () => date.recent(),
});
+58
View File
@@ -0,0 +1,58 @@
import { copy } from 'ember-copy';
/**
* Allows development-time toggling of resource permissions via the window
* querystring. Pass a JSON object into the query to toggle permissions.
* Note that the value must be a valid JSON object in order to be parsed.
*
* @example
* ?authorized_actions={"account": ["read"]}
*
* Within a Mirage factory, pass the actions into the mock:
*
* @example
* import { Factory } from 'ember-cli-mirage';
* import permissions from '../helpers/permissions';
*
* export default Factory.extend({
* authorized_actions: () =>
* permissions.authorizedActionsFor('account') ||
* ['no-op', 'read', 'update', 'delete']
* });
*/
class ToggledCapabilities {
// =attributes
// Get the query string and drop the leading '?'
#rawQuery = window.location.search.substring(1);
// Split the querystring into key/value pairs
#queryPairs = this.#rawQuery.split('&').map((item) => item.split('='));
// Find the value of a pair with key `authorized_actions`
// Safe-ish when the item is not present
#rawAuthorizedActions = (this.#queryPairs.find(
(item) => item[0] === 'authorized_actions'
) || [])[1];
// Safe-ish when the value is not present
#authorizedActions =
JSON.parse(
decodeURIComponent(this.#rawAuthorizedActions || '') || 'null'
) || {};
// =methods
/**
* Returns authorized actions for the specified field, if any are defined
* in the `authorized_actions` query. Returns undefined otherwise.
* @return {?string[]}
*/
authorizedActionsFor(field) {
if (this.#authorizedActions[field]) {
return copy(this.#authorizedActions[field], true);
}
}
}
export default new ToggledCapabilities();
@@ -0,0 +1,6 @@
import { Model, belongsTo } from 'ember-cli-mirage';
export default Model.extend({
scope: belongsTo(),
credentialStore: belongsTo(),
});
@@ -0,0 +1,5 @@
import { Model, belongsTo } from 'ember-cli-mirage';
export default Model.extend({
scope: belongsTo(),
});
+1
View File
@@ -3,4 +3,5 @@ import { Model, belongsTo, hasMany } from 'ember-cli-mirage';
export default Model.extend({
scope: belongsTo(),
hostSets: hasMany(),
credentialLibraries: hasMany(),
});
+26 -6
View File
@@ -107,14 +107,34 @@ const commandHandlers = {
},
};
// Handles all custom methods on /auth-methods/:id route
export function authHandler({ scopes, authMethods }, request) {
const payload = JSON.parse(request.requestBody);
const [, id] = request.params.id_method.match(/(?<id>.[^:]*)/);
const { command } = payload;
const [, id, method] = request.params.id_method.match(
/(?<id>.[^:]*):(?<method>(.*))/
);
const authMethod = authMethods.find(id);
const scope = scopes.find(authMethod.scopeId);
const scopeAttrs = this.serialize(scopes.find(scope.id));
return commandHandlers[authMethod.type][command](payload, scopeAttrs);
if (method === 'authenticate') {
const payload = JSON.parse(request.requestBody);
const { command } = payload;
const scope = scopes.find(authMethod.scopeId);
const scopeAttrs = this.serialize(scopes.find(scope.id));
return commandHandlers[authMethod.type][command](payload, scopeAttrs);
}
// TODO: this handler doesn't really belong here, but we already route
// POST requests on existing auth methods to this route handler file under the
// assumption it would be for authentication. While authentication should
// still occur here, we should handle other custom methods in the
// mirage config and route here only for auth.
if (method === 'change-state') {
const attrs = this.normalizedRequestAttrs();
return authMethod.update({
attributes: {
state: attrs.attributes.state,
},
});
}
}
export function deauthHandler() {
+3 -1
View File
@@ -47,7 +47,9 @@ export default function (server) {
// Other resources
server.schema.scopes.where({ type: 'project' }).models.forEach((scope) => {
server.createList('host-catalog', 2, { scope }, 'withChildren');
server.createList('target', 2, { scope }, 'withRandomHostSets');
server.createList('credential-store', 3, { scope }, 'withAssociations');
server.createList('target', 2, { scope }, 'withAssociations');
// Sessions have target data. Create it after targets.
server.createList('session', 4, { scope }, 'withAssociations');
});
}
+80
View File
@@ -53,13 +53,93 @@ export default function initializeMockIPC(server) {
type,
created_time: new Date().toISOString(),
});
const decoded = {
key1: 'value 1',
key2: true,
key3: 'test',
};
const raw = btoa(JSON.stringify(decoded));
return {
address: window.location.hostname,
port: datatype.number(),
protocol: type,
session_id: newSession.id,
credentials: [
{
credential_library: {
id: 'clvlt_4cvscMTl0N',
name: 'Library Name',
description: 'Library Description',
credential_store_id: 'csvlt_Q1HFGt7Jpm',
type: 'vault',
},
secret: {
raw: btoa('just-a-random-string'),
},
},
{
credential_library: {
id: 'clvlt_4cvscMTl0N',
name: 'Library Name',
description: 'Library Description',
credential_store_id: 'csvlt_Q1HFGt7Jpm',
type: 'vault',
},
secret: {
raw,
decoded,
},
},
{
credential_library: {
id: 'clvlt_9KWscxpcY7',
name: 'Library Name',
description: 'Library Description',
credential_store_id: 'csvlt_Q1HFGt7Jpm',
type: 'vault',
},
secret: {
raw: btoa('just-a-random-string'),
},
},
{
credential_library: {
id: 'clvlt_9KWscxpcY7',
name: 'Library Name',
description: 'Library Description',
credential_store_id: 'csvlt_Q1HFGt7Jpm',
type: 'vault',
},
secret: {
raw,
decoded,
},
},
],
};
}
/**
* Check for browsers running on mac OS
*/
isMacOS() {
return Boolean(window.navigator.userAgent.match(/(macintosh)/i));
}
/**
* Check for browsers running on windows OS
*/
isWindowsOS() {
return Boolean(window.navigator.userAgent.match(/(windows)/i));
}
/**
* Do nothing when attempting to minimize, toggle fullscreen,
* and close a browser window
*/
minimizeWindow() {}
closeWindow() {}
toggleFullScreenWindow() {}
}
/**
@@ -0,0 +1,14 @@
import ApplicationSerializer from './application';
export default ApplicationSerializer.extend({
modelName: 'credential-library',
_hashForModel(model) {
const json = ApplicationSerializer.prototype._hashForModel.apply(
this,
arguments
);
json.credential_store_id = model.credentialStoreId;
return json;
},
});
@@ -0,0 +1,17 @@
import ApplicationSerializer from './application';
export default ApplicationSerializer.extend({
modelName: 'credential-store',
_hashForModel(/* model */) {
const json = ApplicationSerializer.prototype._hashForModel.apply(
this,
arguments
);
// in a real API, the following fields are set-only and returned in
// associated HMAC fields
delete json.attributes?.token;
delete json.attributes?.client_certificate_key;
return json;
},
});
+3
View File
@@ -23,6 +23,9 @@ export default ApplicationSerializer.extend({
return { id: host_set_id, host_catalog_id };
});
}
if (model.credentialLibraryIds?.length) {
json.application_credential_library_ids = model.credentialLibraryIds;
}
return json;
},
});
+9 -8
View File
@@ -24,25 +24,26 @@
"doc:toc": "doctoc README.md"
},
"dependencies": {
"ember-can": "^3.1.0",
"ember-cli-babel": "^7.23.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-cli-mirage": "^1.1.8",
"ember-data": "^3.20.0",
"ember-data-model-fragments": "5.0.0-beta.0",
"ember-fetch": "^8.0.1"
"ember-data-model-fragments": "5.0.0-beta.2",
"ember-fetch": "^8.1.0"
},
"devDependencies": {
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.1.4",
"@ember/test-helpers": "^2.2.8",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"babel-eslint": "^10.1.0",
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^1.4.0",
"doctoc": "^2.0.0",
"ember-auto-import": "^1.10.1",
"ember-cli": "~3.24.0",
"ember-cli": "~3.28.0",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.0.2",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.1",
"ember-cli-update": "^0.54.6",
@@ -59,8 +60,8 @@
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^2.15.0",
"ember-try": "^1.4.0",
"eslint": "^7.17.0",
"eslint-config-prettier": "^7.1.0",
"eslint": "^7.31.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
@@ -0,0 +1,38 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Abilities | Collection', function (hooks) {
setupTest(hooks);
test('it reflects when a resource may be listed based on authorized_collection_actions', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:can');
const model = {
authorized_collection_actions: {
foobars: ['list'],
},
};
assert.ok(service.can('list collection', model, { collection: 'foobars' }));
model.authorized_collection_actions.foobars = [];
assert.notOk(
service.can('list collection', model, { collection: 'foobars' })
);
});
test('it reflects when a resource may be created based on authorized_collection_actions', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:can');
const model = {
authorized_collection_actions: {
foobars: ['create'],
},
};
assert.ok(
service.can('create collection', model, { collection: 'foobars' })
);
model.authorized_collection_actions.foobars = [];
assert.notOk(
service.can('create collection', model, { collection: 'foobars' })
);
});
});
@@ -0,0 +1,68 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Abilities | Model', function (hooks) {
setupTest(hooks);
test('it reflects when a given model may be read based on authorized_actions', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:can');
const model = {
authorized_actions: ['read'],
};
assert.ok(service.can('read model', model));
model.authorized_actions = [];
assert.notOk(service.can('read model', model));
});
test('it reflects when a given model may be updated based on authorized_actions', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:can');
const model = {
authorized_actions: ['update'],
};
assert.ok(service.can('update model', model));
model.authorized_actions = [];
assert.notOk(service.can('update model', model));
});
test('it reflects when a given model may be saved based on isNew and authorized_actions', function (assert) {
assert.expect(4);
const service = this.owner.lookup('service:can');
let model = {
isNew: false,
authorized_actions: ['update'],
};
assert.ok(service.can('save model', model));
model = {
isNew: false,
authorized_actions: [],
};
assert.notOk(service.can('save model', model));
// Model instances are always saveable at this level when isNew is true.
// In practice, the ability to _create_ a resource depends not on instance
// authorization, but on collection authorization, which is
// tested separately.
model = {
isNew: true,
authorized_actions: ['update'],
};
assert.ok(service.can('save model', model));
model = {
isNew: true,
authorized_actions: [],
};
assert.ok(service.can('save model', model));
});
test('it reflects when a given model may be deleted based on authorized_actions', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:can');
const model = {
authorized_actions: ['delete'],
};
assert.ok(service.can('delete model', model));
model.authorized_actions = [];
assert.notOk(service.can('delete model', model));
});
});
@@ -0,0 +1,35 @@
import Application from '@ember/application';
import { initialize } from 'dummy/initializers/fragment-auth-method-attributes-account-claim-map-serializer';
import { module, test } from 'qunit';
import Resolver from 'ember-resolver';
import { run } from '@ember/runloop';
module(
'Unit | Initializer | fragment-auth-method-attributes-account-claim-map-serializer',
function (hooks) {
hooks.beforeEach(function () {
this.TestApplication = class TestApplication extends Application {};
this.TestApplication.initializer({
name: 'initializer under test',
initialize,
});
this.application = this.TestApplication.create({
autoboot: false,
Resolver,
});
});
hooks.afterEach(function () {
run(this.application, 'destroy');
});
// TODO: Replace this with your real tests.
test('it works', async function (assert) {
await this.application.boot();
assert.ok(true);
});
}
);
@@ -0,0 +1,32 @@
import Application from '@ember/application';
import { initialize } from 'dummy/initializers/fragment-string';
import { module, test } from 'qunit';
import Resolver from 'ember-resolver';
import { run } from '@ember/runloop';
module('Unit | Initializer | fragment-string', function (hooks) {
hooks.beforeEach(function () {
this.TestApplication = class TestApplication extends Application {};
this.TestApplication.initializer({
name: 'initializer under test',
initialize,
});
this.application = this.TestApplication.create({
autoboot: false,
Resolver,
});
});
hooks.afterEach(function () {
run(this.application, 'destroy');
});
// TODO: Replace this with your real tests.
test('it works', async function (assert) {
await this.application.boot();
assert.ok(true);
});
});
+4 -5
View File
@@ -10,15 +10,14 @@ module('Unit | Model | account', function (hooks) {
assert.ok(model);
});
test('it has an username attribute for password account', function (assert) {
test('it has an accountName attribute for password account', function (assert) {
assert.expect(2);
const store = this.owner.lookup('service:store');
let model = store.createRecord('account', {
name: 'name',
type: 'password',
});
assert.notOk(model.username);
model.attributes.login_name = 'username';
assert.equal(model.username, 'username');
assert.notOk(model.accountName);
model.attributes.login_name = 'foobar';
assert.equal(model.accountName, 'foobar');
});
});
@@ -1,13 +1,49 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
module('Unit | Model | auth method', function (hooks) {
setupTest(hooks);
setupMirage(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('auth-method', {});
assert.ok(model);
});
test('it has a `changeState` method that targets a specific POST API endpoint and serialization', async function (assert) {
assert.expect(1);
this.server.post(
'/v1/auth-methods/123abc:change-state',
(schema, request) => {
const body = JSON.parse(request.requestBody);
assert.deepEqual(body, {
attributes: {
state: 'foobar',
},
version: 1,
});
return { id: '123abc' };
}
);
const store = this.owner.lookup('service:store');
store.push({
data: {
id: '123abc',
type: 'auth-method',
attributes: {
type: 'oidc',
state: 'foobar',
version: 1,
scope: {
scope_id: 'o_1',
type: 'scope',
},
},
},
});
const model = store.peekRecord('auth-method', '123abc');
await model.changeState('foobar');
});
});
@@ -4,7 +4,6 @@ import { setupTest } from 'ember-qunit';
module('Unit | Model | auth token', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('auth-token', {});
@@ -0,0 +1,13 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Model | credential library', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('credential-library', {});
assert.ok(model);
});
});
@@ -0,0 +1,13 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Model | credential store', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('credential-store', {});
assert.ok(model);
});
});
@@ -0,0 +1,18 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module(
'Unit | Model | fragment auth method attributes account claim map',
function (hooks) {
setupTest(hooks);
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord(
'fragment-auth-method-attributes-account-claim-map',
{}
);
assert.ok(model);
});
}
);
@@ -0,0 +1,12 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Model | fragment auth method attributes', function (hooks) {
setupTest(hooks);
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('fragment-auth-method-attributes', {});
assert.ok(model);
});
});
@@ -0,0 +1,19 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module(
'Unit | Model | fragment credential library attributes',
function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord(
'fragment-credential-library-attributes',
{}
);
assert.ok(model);
});
}
);
@@ -0,0 +1,13 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Model | fragment credential store attributes', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('fragment-credential-store-attributes', {});
assert.ok(model);
});
});
@@ -4,7 +4,6 @@ import { setupTest } from 'ember-qunit';
module('Unit | Model | fragment host set', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('fragment-host-set', {});
@@ -4,7 +4,6 @@ import { setupTest } from 'ember-qunit';
module('Unit | Model | fragment principal', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('fragment-principal', {});
@@ -4,7 +4,6 @@ import { setupTest } from 'ember-qunit';
module('Unit | Model | fragment string', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('fragment-string', {});
@@ -4,7 +4,6 @@ import { setupTest } from 'ember-qunit';
module('Unit | Model | host', function (hooks) {
setupTest(hooks);
// Replace this with your real tests.
test('it exists', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('host', {});
+158
View File
@@ -223,4 +223,162 @@ module('Unit | Model | target', function (hooks) {
'Target has two associated sessions loaded in the store'
);
});
test('it has a `credentialLibraries` array of resolved model instances (if those instances are already in the store)', function (assert) {
assert.expect(4);
const store = this.owner.lookup('service:store');
store.push({
data: {
id: '123abc',
type: 'target',
attributes: {
application_credential_library_ids: [{ value: '1' }, { value: '2' }],
},
},
});
const target = store.peekRecord('target', '123abc');
assert.equal(
target.application_credential_library_ids.length,
2,
'Target has two entires in application_credential_library_ids'
);
assert.equal(
target.credentialLibraries.length,
0,
'Target has no resolved credentialLibraries because they are not loaded yet'
);
store.push({
data: {
id: '1',
type: 'credential-library',
attributes: {},
},
});
store.push({
data: {
id: '2',
type: 'credential-library',
attributes: {},
},
});
// Since `credentialLibraries` is computed on `application_credential_library_ids`,
// not the store itself, it's necessary to do this assignment to kick-off the
// computed update.
/* eslint-disable no-self-assign */
target.application_credential_library_ids =
target.application_credential_library_ids;
/* eslint-enable no-self-assign */
assert.equal(
target.application_credential_library_ids.length,
2,
'Target has two entires in application_credential_library_ids'
);
assert.equal(
target.credentialLibraries.length,
2,
'Target has two resolved credentialLibraries'
);
});
test('it has an `addCredentialLibraries` method that targets a specific POST API endpoint and serialization', async function (assert) {
assert.expect(1);
this.server.post(
'/v1/targets/123abc:add-credential-libraries',
(schema, request) => {
const body = JSON.parse(request.requestBody);
assert.deepEqual(body, {
application_credential_library_ids: ['123_abc', 'foobar'],
version: 1,
});
return { id: '123abc' };
}
);
const store = this.owner.lookup('service:store');
store.push({
data: {
id: '123abc',
type: 'target',
attributes: {
name: 'Target',
description: 'Description',
application_credential_library_ids: [{ value: '1' }, { value: '2' }],
version: 1,
scope: {
scope_id: 'o_1',
type: 'scope',
},
},
},
});
const model = store.peekRecord('target', '123abc');
await model.addCredentialLibraries(['123_abc', 'foobar']);
});
test('it has a `removeCredentialLibraries` method that targets a specific POST API endpoint and serialization', async function (assert) {
assert.expect(1);
this.server.post(
'/v1/targets/123abc:remove-credential-libraries',
(schema, request) => {
const body = JSON.parse(request.requestBody);
assert.deepEqual(body, {
application_credential_library_ids: ['1', '2'],
version: 1,
});
return { id: '123abc' };
}
);
const store = this.owner.lookup('service:store');
store.push({
data: {
id: '123abc',
type: 'target',
attributes: {
name: 'Target',
description: 'Description',
application_credential_library_ids: [{ value: '1' }, { value: '2' }],
version: 1,
scope: {
scope_id: 'o_1',
type: 'scope',
},
},
},
});
const model = store.peekRecord('target', '123abc');
await model.removeCredentialLibraries(['1', '2']);
});
test('it has a `removeCredentialLibrary` method that deletes a single credential library using `removeCredentialLibraries` method', async function (assert) {
assert.expect(1);
this.server.post(
'/v1/targets/123abc:remove-credential-libraries',
(schema, request) => {
const body = JSON.parse(request.requestBody);
assert.deepEqual(body, {
application_credential_library_ids: ['2'],
version: 1,
});
return { id: '123abc' };
}
);
const store = this.owner.lookup('service:store');
store.push({
data: {
id: '123abc',
type: 'target',
attributes: {
name: 'Target',
description: 'Description',
application_credential_library_ids: [{ value: '1' }, { value: '2' }],
version: 1,
scope: {
scope_id: 'o_1',
type: 'scope',
},
},
},
});
const model = store.peekRecord('target', '123abc');
await model.removeCredentialLibrary('2');
});
});
@@ -4,7 +4,75 @@ import { setupTest } from 'ember-qunit';
module('Unit | Serializer | account', function (hooks) {
setupTest(hooks);
test('it serializes normally', function (assert) {
test('it serializes OIDC-type with only issuer and subject in `attributes` on create', function (assert) {
assert.expect(1);
const store = this.owner.lookup('service:store');
const serializer = store.serializerFor('account');
const record = store.createRecord('account', {
type: 'oidc',
name: 'Name',
auth_method_id: '1',
description: 'Description',
attributes: {
issuer: 'issuer',
subject: 'sub',
full_name: 'full_name',
email: 'email',
},
version: 1,
});
const snapshot = record._createSnapshot();
const serializedRecord = serializer.serialize(snapshot);
assert.deepEqual(serializedRecord, {
type: 'oidc',
name: 'Name',
auth_method_id: '1',
description: 'Description',
version: 1,
attributes: {
issuer: 'issuer',
subject: 'sub',
},
});
});
test('it serializes OIDC-type without `attributes` on update', function (assert) {
assert.expect(2);
const store = this.owner.lookup('service:store');
const serializer = store.serializerFor('account');
store.push({
data: {
id: '1',
type: 'account',
attributes: {
type: 'oidc',
name: 'Name',
auth_method_id: '1',
description: 'Description',
attributes: {
issuer: 'issuer',
subject: 'sub',
full_name: 'full_name',
email: 'email',
},
version: 1,
},
},
});
const record = store.peekRecord('account', '1');
const snapshot = record._createSnapshot();
const serializedRecord = serializer.serialize(snapshot);
assert.notOk(serializedRecord.attributes);
assert.deepEqual(serializedRecord, {
type: 'oidc',
name: 'Name',
auth_method_id: '1',
description: 'Description',
version: 1,
});
});
test('it serializes password-type normally', function (assert) {
assert.expect(1);
const store = this.owner.lookup('service:store');
const serializer = store.serializerFor('account');
@@ -19,7 +87,6 @@ module('Unit | Serializer | account', function (hooks) {
version: 1,
});
const snapshot = record._createSnapshot();
snapshot.adapterOptions = {};
const serializedRecord = serializer.serialize(snapshot);
assert.deepEqual(serializedRecord, {
type: 'password',
@@ -170,6 +170,7 @@ module('Unit | Serializer | application', function (hooks) {
id: '1',
type: 'user',
attributes: {
authorized_actions: [],
name: 'User 1',
account_ids: [],
scope: { scope_id: 'o_123' },
@@ -200,9 +201,11 @@ module('Unit | Serializer | application', function (hooks) {
id: '1',
type: 'target',
attributes: {
authorized_actions: [],
name: 'Target 1',
scope: { scope_id: 'o_123' },
host_sets: [],
application_credential_library_ids: [],
},
relationships: {},
},
Loaded 100 of 526 files, more files were not shown because too many files have changed in this diff. Show more