Compare commits

...
786 Commits
Author SHA1 Message Date
Dharini Jeeva c21b8fdb64 chore: 🤖 update changelog (#1170)
* chore: 🤖 update changelog and bump up the binary version to 0.9.1
2022-07-06 13:13:57 -07:00
Carlos Alcaide CorvoandRandall Morey 60005f0233 chore: 🤖 Update @babel/plugin-proposal-decorators (#1157)
Update @babel/plugin-proposal-decorators

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-30 08:52:07 -04:00
Randall Morey da89e2f82e fix: 🐛 unable to filter for terminated sessions (#1169)
* fix: 🐛 unable to filter for terminated sessions

* fix: 🐛 reenable sessions mocks
2022-06-29 20:42:12 -04:00
Carlos Alcaide CorvoandRandall Morey c9d6f37343 chore: 🤖 Update @ember/test-helpers (#1159)
Update @ember/test-helpers

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 17:35:17 -04:00
Carlos Alcaide CorvoandRandall Morey 85e4b46821 Chore update doctoc (#1165)
* chore: 🤖 Update doc toc

Update doc toc

* chore: 🤖 Fix doctoc within core

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 16:26:36 -04:00
Carlos Alcaide CorvoandRandall Morey d464419e47 chore: 🤖 Update Cross OS (#1164)
Update Cross OS

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 15:28:46 -04:00
Carlos Alcaide CorvoandRandall Morey 021803942f chore: 🤖 Update babel-loader (#1163)
Update babel-loader

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 15:10:41 -04:00
Randall Morey eeba8dceb6 fix: 🐛 merge conflict in yarn.lock (#1168) 2022-06-29 14:10:59 -04:00
Carlos Alcaide CorvoandRandall Morey 8764633111 chore: 🤖 Update @hashicorp/flight-icons (#1162)
Update @hashicorp/flight-icons

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 13:00:27 -04:00
Carlos Alcaide CorvoandRandall Morey 9becadd3f1 chore: 🤖 Update @glimmer (#1161)
Update @glimmer

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 12:08:00 -04:00
Carlos Alcaide CorvoandRandall Morey 9f45a9a955 chore: 🤖 Update @ember/render-modifiers (#1158)
Update @ember/render-modifiers

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 11:34:31 -04:00
Carlos Alcaide CorvoandRandall Morey 51b94f7ac8 Chore update babel eslint parser (#1155)
* chore: 🤖 Fix merging conflicts

* chore: 🤖 Fix merging conflicts

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-06-29 10:51:41 -04:00
Randall Morey 890cfe5168 Refactor attributes fragments (#1156)
* refactor: 💡 migrate managed-group off fragments

* refactor: 💡 migrate credential-store off fragments

* refactor: 💡 migrate credential-library off fragments

* refactor: 💡 migrate account off fragments
2022-06-28 19:30:26 -04:00
Dharini Jeeva fe225653ec fix: 🐛 overflow dropdown ui issue (#1160) 2022-06-28 13:13:09 -07:00
Carlos Alcaide Corvo dce7447880 chore: 🤖 Upgrade @babel/core (#1153)
Upgrade @babel/core
2022-06-28 11:08:16 -07:00
Carlos Alcaide Corvo 330c3de256 Chore upgrade desktop dependencies 2 (#1152) 2022-06-28 10:27:47 -07:00
Carlos Alcaide Corvo 2d15a62990 fix: 🐛 Lock file discrepancy (#1154)
Lock file discrepancy
2022-06-27 14:38:51 -07:00
Zhihe Li 62af6e2f6e Use precommit hooks (#1150)
* chore: 🤖 Add husky and hooks

* chore: 🤖 Add lint staged for fixing lint issues

* chore: 🤖 Use prettier and disable conflicting prettier rules

* docs: ✏️ Update commit documentation in README
2022-06-27 14:35:52 -04:00
Carlos Alcaide Corvo f50acc9913 Chore upgrade desktop dependencies (#1151) 2022-06-27 09:33:10 -07:00
Dharini Jeeva 2900692c6c chore: bump up release version and Update change log (#1141)
* chore: 🤖 update to changelog and release version
2022-06-20 13:15:34 -07:00
Cameron PereraandDharini Jeeva 193a7e9600 refactor: 💡 Remove template file to fix onboarding flow titles (#1148)
Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2022-06-20 12:01:25 -05:00
Dharini Jeeva 6b3091ea1b chore: 🤖 update to credential source (#1146) 2022-06-20 09:45:50 -07:00
Randall Morey 26baf8a80b fix: grant scope field should be functional (#1147) 2022-06-20 12:28:13 -04:00
Randall Moreyanddharini 4ef66fdd29 Add minimum support for static credential stores to admin UI (#1145)
* cred store read ability

* filter out static cred stores and credentials from credential libraries

* chore: 🤖 finish up minimum static cred store support

Co-authored-by: dharini <dharini@hashicorp.com>
2022-06-18 10:56:25 -04:00
Cameron Perera 52904dc639 Chore add onboarding role (#1142)
* chore: generate a role authorized to access the generated onboarding target
2022-06-16 16:11:11 -07:00
Cameron Perera f3a5ef5b7c refactor: 💡 Update routing to use project id in quick-start (#1140)
✅ Closes: ICU-4821
2022-06-15 15:06:09 -05:00
Randall Morey 7d8012ef1f chore: apply darker color theme to sidebar (#1139)
* chore: apply darker color theme to sidebar

* chore: hide global footer for now due to sidebar change
2022-06-15 14:27:08 -05:00
Cameron Perera 18434d4203 chore: 🤖 Disable ssh feature work (#1138)
Disable ssh feature
2022-06-15 10:42:49 -07:00
Cameron Perera d7e458ab85 refactor: 💡 Remove default value for IP address and port (#1137)
* refactor: 💡 Remove default value for IP address and port
2022-06-14 20:39:50 -07:00
Cameron Perera c5416e770a feat: 🎸 Add Controller URL component to Success screen (#1135)
* feat: 🎸 Add Controller URL component to Success screen

✅ Closes: ICU-4785

* style: 💄 Update Success screen styles to match wireframe

* refactor: 💡 Update class names to be more descriptive

* refactor: 💡 Update styles for Success card

* test: 💍 Fix failing test
2022-06-14 16:36:11 -05:00
Dharini Jeeva 2bb1c9cfec Chore onboarding route (#1136)
* fix: onboarding redirects
2022-06-14 14:21:48 -07:00
Dharini Jeeva 8bdd4416fc transition to target lists when the resource creation is successful (#1134)
* feat: 🎸  redirect the user to target lists within the project after successfully creating a resource.
2022-06-14 12:32:04 -07:00
Cameron Pereraanddharini a5da593f07 Create successful resource creation screen (#1132)
* feat: 🎸 Create successful resource creation screen

Create a screen with helpful information about Boundary once resources
have been created for the user

✅ Closes: ICU-4558

* style: 💄 remove stale comment

* chore: 🤖 resolve conflicts and merge main

Co-authored-by: dharini <dharini@hashicorp.com>
2022-06-14 09:33:51 -05:00
Randall MoreyandCameron Perera 15dc735322 chore: move onboarding to top level (#1131)
* chore: move onboarding to top level

* chore: add types

* Update ui/admin/app/routes/onboarding.js

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>

* fix: broken paths

* chore: fix broken success route and simplify error handling

* fix: tests

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2022-06-13 16:38:18 -04:00
Dharini Jeeva d69b0f90d8 Icu 4556 create a quick setup screen (#1129)
* feat: 🎸 Create a resource onboarding form
2022-06-10 15:43:20 -07:00
Cameron Perera 0bb5989259 feat: 🎸 Create form to choose onboarding guide path (#1124)
* feat: 🎸 Create onboarding welcome form
2022-06-09 15:47:07 -07:00
Carlos Alcaide Corvo 106999746f docs: ✏️ Update docs for yarn scripts (#1101) 2022-06-08 14:05:56 -07:00
Carlos Alcaide Corvo d60ae81bdc Fix rose peer dependencies (#1128)
Fix Rose peer dependency warnings
2022-06-08 09:25:28 -07:00
Carlos Alcaide Corvo c7cb1fbbd8 chore: 🤖 Update electron from 13 to 14 (#1125)
Update electron from 13 to 14
2022-06-08 09:09:18 -07:00
Dharini Jeeva 8a05dbbc56 create new image component (#1127)
* feat:  create image component
2022-06-08 08:45:59 -07:00
Randall Morey dc78fe9028 Chore include terminated (#1126)
* chore: 🤖 add include_terminated=true when filtering terminated

* chore: 🤖 add include_terminated=true when filtering terminated
2022-06-07 15:40:33 -04:00
Randall MoreyandDharini Jeeva 24f630f084 Chore onboarding routing logic (#1123)
* chore: 🤖 stub out onboarding routes

* chore: initial onboarding routing logic

* chore: initial routing logic and resource creation

* chore: route "manual" to new org

* Update en-us.yaml

* fix: linting

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2022-06-03 13:25:53 -04:00
Cameron Perera d4ac887f7a Create CODEOWNERS file (#1122)
* chore: Create CODEOWNERS file

* chore: update CODEOWNERS

* chore: 🤖 finalize CODEOWNERS changes
2022-06-03 09:44:45 -05:00
Randall Morey 9fe8ce2c00 chore: 🤖 stub out onboarding routes (#1118) 2022-06-02 08:48:34 -04:00
Randall Morey af3cfb7298 chore: 🤖 generate more realistic mock IDs (#1117)
* chore: 🤖 generate more realistic mock IDs

* Update id.js
2022-06-01 14:02:18 -04:00
Zhihe Li df609dcf2c refactor: 💡 Update deprecated new window handler (#1111)
✅ Closes: ICU-4037
2022-05-20 12:53:52 -04:00
Zhihe Li 1b9f774937 fix: 🐛 Use more common hasOwnProperty and don't modify payload (#1112) 2022-05-19 17:52:10 -04:00
Randall Morey 509215f787 chore: 🤖 display auth method names in auth form, if available (#1113) 2022-05-19 15:56:48 -04:00
Carlos Alcaide Corvo 698160d423 refactor: 💡 Rename Admin UI enterprise artifact (#1110)
Rename Admin UI generated artifact for the enterprise edition.
2022-05-17 07:03:22 -07:00
Cameron PereraandDharini Jeeva 12b18510b9 refactor: 💡 Update language to use Sign In and Sign Out (#1109)
* refactor: 💡 Update language to use Sign In and Sign Out

Update authenticate/deauthenticate language to sign in and sign out
respectively

✅ Closes: ICU-3941

* refactor: 💡 Change translation keys back to (de)authenticate

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2022-05-16 17:28:45 -05:00
aa52b6f9bc fix: 🐛 Update validateOrigin to throw error on bad request (#1107)
* fix: 🐛 Update validateOrigin to throw error on bad request

If the result from netRequestPromise is successful but a not a 200
response, validateOrigin will throw an error

✅ Closes: ICU-4238

* Update ui/desktop/electron-app/src/models/runtime-settings.js

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

* refactor: 💡 Add comment as to why we don't throw error for 3xxs

* Update ui/desktop/electron-app/src/models/runtime-settings.js

Co-authored-by: Randall Morey <randall@randallmorey.com>

* Update ui/desktop/electron-app/src/models/runtime-settings.js

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

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-05-16 12:20:56 -05:00
Dharini Jeeva ee47f8e19e fix: 🐛 add featureflag to target creation template (#1108)
* fix: 🐛 add featureflag to target creation template

* refactor: 💡 remove else block
2022-05-13 10:57:52 -07:00
Zhihe Li 97196368cb Fix Users page not updating fields correctly (#1105)
* fix: 🐛 Normalize update responses to track removed fields

✅ Closes: ICU-4189
2022-05-12 10:16:14 -04:00
Carlos Alcaide Corvo 7e792d3f76 Refactor UI generated artifacts creation. (#1104)
* Refactor UI generated artifacts creation. Now we generate OSS and enterprise specific artifacts

* Split builds in two separate jobs
2022-05-11 13:28:30 -07:00
Randall Morey f4df337761 chore: update github actions validator to depend on previous jobs (#1081) 2022-05-06 10:32:11 -04:00
Cameron Perera de44863d02 chore: 🤖 Add lzma-native to resolutions (#1103)
* chore: 🤖 Add lzma-native and appdmg to resolutions

* chore: 🤖 Remove appdmg resolution from electron-app

Tested that CI steps passed.
2022-05-05 17:35:53 -05:00
Cameron Perera e3f9feb474 Update polling interval to 300 seconds (5 minutes) (#1102)
Update polling interval to 300 seconds (5 minutes)
2022-05-05 11:43:07 -05:00
Carlos Alcaide Corvo 57410b7bb6 refactor: 💡 Avoid lint warning (#1095)
* refactor: 💡 Avoid lint warning
2022-05-05 08:28:41 -07:00
Carlos Alcaide Corvo 5e2c6ca0fd feat: 🎸 Add feature editions (#1094)
* feat: 🎸 Add feature editions
2022-05-05 07:42:02 -07:00
Carlos Alcaide Corvo eb36cde137 Update polling intervarl (#1100) 2022-05-04 09:51:16 -07:00
Cameron PereraandZhihe Li ccb266ea7c chore: 🤖 bump binary version and update changelog (#1099)
* chore: 🤖 bump binary version and update changelog

* chore: 🤖 Update Desktop app release date

* chore: 🤖 Update release date

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2022-05-04 10:32:42 -05:00
ZedandRandall Morey 8545697b43 Add toolbar regions to align refresh button to the right (#1098)
* feat: 🎸 implement toolbar regions and apply to admin sessions

* feat: 🎸 Add toolbar regions for desktop sessions and targets

✅ Closes: ICU-4198

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-05-03 09:46:47 -04:00
Zed a8ae8d28df fix: 🐛 Reduce extra padding in tables (#1091)
✅ Closes: ICU-4046
2022-05-02 10:14:21 -04:00
Cameron Perera 952b894a32 feat: 🎸 Add ToolbarRefresher component to targets in desktop (#1093)
✅ Closes: ICU-4134
2022-04-29 18:06:11 -05:00
Cameron Perera 6f449b3b9b feat: 🎸 Add ToolbarRefresher component to sessions in admin (#1092)
✅ Closes: ICU-4133
2022-04-29 17:54:08 -05:00
Cameron PereraandRandall Morey 0f3c2f043b style: 💄 Update Refresh Button to animate when loading (#1089)
* style: 💄 Update Refresh Button to animate when loading

* refactor: 💡 Move temporary animation styles to app level styles

Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-04-29 15:29:53 -05:00
Dharini Jeeva 82c94518d9 feat: refresh sessions view in admin ui (#1078) 2022-04-29 14:28:50 -04:00
Randall Morey 68a269efac feature: add toolbar refresher component (#1088) 2022-04-29 13:51:47 -04:00
Zed 75ef323e6d fix: 🐛 Desktop client not correctly loading ember app url (#1090) 2022-04-29 13:38:25 -04:00
Carlos Alcaide Corvo ccde5e88da fix: 🐛 Mac os window lifecycle (#1067) 2022-04-29 09:03:40 -07:00
Carlos Alcaide Corvo 1071241604 chore: 🤖 Increase polling time Admin UI (#1085) 2022-04-29 07:47:03 -07:00
Zed 316f0907fc fix: 🐛 Fix scrollbar for the sidebar in desktop client (#1076)
Fixed scroll bar always appearing in sidebar on macOS for desktop client
and sidebar not staying fixed in windows and linux

✅ Closes: ICU-4143
2022-04-29 10:16:34 -04:00
Cameron Perera 3bdae6dce8 feat: 🎸 refresh targets list view in desktop (#1087)
✅ Closes: ICU-4024
2022-04-28 17:35:52 -05:00
Carlos Alcaide Corvo 367545fd4d refactor: 💡 Encapsulate desktop client window creation (#1066)
Encapsulate desktop client window creation to reuse the creation of new
windows.
2022-04-28 15:23:43 -07:00
Randall Morey 702ad64716 Style toolbar buttons (#1086)
* chore: 🤖 move loading-button component to core addon

* style: toolbar buttons should align with Structure

* fix: buttons should have consistent font
2022-04-28 17:59:43 -04:00
Randall Morey 043dbc3736 chore: 🤖 move loading-button component to core addon (#1083) 2022-04-28 17:49:03 -04:00
Cameron Perera 01e4ec0a07 feat: 🎸 Add minimum refresh time to refresh button for sessions (#1077) 2022-04-28 16:35:46 -04:00
Randall Morey a7b3da2231 feat: 🎸 implement live relative datetime component (#1080) 2022-04-28 16:23:44 -04:00
Randall Morey de6416efbd feat: 🎸 add non-interactive rose toolbar info component (#1075) 2022-04-28 16:01:50 -04:00
76befc0c1d chore: 🤖 Increaase polling time desktop client (#1074)
Increase polling time within desktop client.

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
Co-authored-by: Randall Morey <randall@randallmorey.com>
2022-04-28 15:48:33 -04:00
Carlos Alcaide Corvo f71d01902a Revert "feat: 🎸 Add feature editions (#1072)" (#1079)
This reverts commit 56d84d652b.
2022-04-28 12:14:27 -07:00
Carlos Alcaide Corvo 56d84d652b feat: 🎸 Add feature editions (#1072)
Add feature editions
2022-04-28 10:23:35 -07:00
Dharini Jeeva 9cf216179a feat: refresh sessions list view in desktop (#1069)
* feat: 🎸 add a refresh button to sessions list view in desktop
2022-04-28 08:49:37 -07:00
Zed 050cfdd056 fix: 🐛 Fix scrollbars not being dark in dark mode (#1068)
✅ Closes: ICU-4022
2022-04-27 18:18:24 -04:00
Carlos Alcaide Corvo 79fb0db882 docs: ✏️ Update node supported versions (#1071)
Update node supported versions
2022-04-26 17:06:10 -07:00
Cameron Perera a2c6bc643d chore: 🤖 Update the .template-lintrc.js file in addons/rose (#1073)
✅ Closes: ICU-4123
2022-04-26 14:56:13 -05:00
Zed 07ed40ce03 fix: 🐛 Adjusted dark mode gray scale and fixed radio card colors (#1065)
Adjusted dark mode gray scale to be a bit darker and 
made the active selected radio card lighter in dark mode

✅ Closes: ICU-4021
2022-04-26 11:28:02 -04:00
Cameron Perera e0cbbefb41 fix: 🐛 Fix new target navigation issue (#1070)
Fix issue where trying to leave the new target form via the discard
changes dialog would cause the user to have to refresh screen.

✅ Closes: ICU-4047
2022-04-26 08:21:11 -05:00
Carlos Alcaide Corvo 2a1e4858fa chore: 🤖 Update Electron from 12.x to 13.x (#1063) 2022-04-21 12:46:41 -07:00
Cameron Perera 7b154b223a feat: 🎸 Update Target types help text (#1064)
* feat: 🎸 Update Target types help text

✅ Closes: ICU-4014

* refactor: 💡 Update how radio cards determine height

Radio cards will now fill up the entire height of the fieldset they are
in

* style: 💄 Update radio card padding
2022-04-21 13:51:47 -05:00
Carlos Alcaide Corvo 550cadf612 Revert "fix: 🐛 Disable polling for sessions on Desktop (#1058)" (#1062)
This reverts commit 26e074dbef.
2022-04-19 13:22:47 -07:00
Carlos Alcaide Corvo 95cece1481 Revert "fix: 🐛 Disable polling for targets on Desktop (#1059)" (#1061)
This reverts commit 6249e945b8.
2022-04-19 13:06:42 -07:00
Carlos Alcaide Corvo 94a3c1fcf1 Revert "disable polling in admin UI (#1057)" (#1060)
This reverts commit 90c9fa8b73.
2022-04-19 12:51:03 -07:00
Cameron PereraandDharini Jeeva f2b53d2f45 chore: 🤖 Updated pr-template to include Jira base url (#1055)
Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2022-04-19 09:35:14 -05:00
Cameron Perera 6249e945b8 fix: 🐛 Disable polling for targets on Desktop (#1059)
✅ Closes: ICU-3954
2022-04-19 09:22:13 -05:00
Cameron Perera 26e074dbef fix: 🐛 Disable polling for sessions on Desktop (#1058)
✅ Closes: ICU-3953
2022-04-19 09:10:09 -05:00
Dharini Jeeva 90c9fa8b73 disable polling in admin UI (#1057)
* fix: 🐛 disable sessions polling

* increase sessions count

* fix: 🐛 undo mirage test
2022-04-18 18:08:23 -04:00
Zed 215bf00407 test: 💍 Verify target worker filter is created correctly (#1056)
✅ Closes: ICU-3893
2022-04-15 16:00:03 -04:00
Cameron Perera d8efefc2b3 test: 💍 Verify target worker filter can be edited (#1054)
✅ Closes: ICU-3892
2022-04-15 13:52:31 -05:00
Cameron Perera 95ed2c0fda feat: 🎸 Add worker filter field in target form (#1053)
* feat: 🎸 Add worker filter field in target form

✅ Closes: ICU-3891

* feat: 🎸 Add Learn More link to Worker Filter input field
2022-04-14 15:27:36 -05:00
Carlos Alcaide Corvo 8776b46277 Chore update eslint (#1045)
Update eslint and eslint-plugin-ember to their latest versions.
2022-04-13 14:17:46 -07:00
Zed 670f38df74 feat: 🎸 Add mirage data for the worker_filter (#1051)
* feat: 🎸 Add mirage data for the "worker_filter" attribute

✅ Closes: ICU-3888
2022-04-12 17:42:13 -04:00
Cameron PereraandDharini Jeeva 226475a47d feat: 🎸 Add "worker_filter" attribute to target model (#1049)
* feat: 🎸 Add "worker_filter" attribute to target model

✅ Closes: ICU-3887

* feat: 🎸 Add missing attribute description for worker_filter

* feat: 🎸 Update worker_filter description

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2022-04-12 16:16:51 -05:00
Dharini Jeeva 1072be1eff refactor: 💡 improve target creation (#1050)
* refactor: 💡 improve target creation UX
2022-04-12 14:05:16 -07:00
Carlos Alcaide Corvo 22d8af72ae Feat add build admin UI workflow (#1048)
* chore: 🤖 Add build admin UI workflow
2022-04-08 14:57:20 -07:00
Cameron Perera 79596010e9 feat: 🎸 Update Success Dialog when connecting to target (#1046)
Updated the Success Dialog in desktop app when connecting to a target to
dynamically show target type

✅ Closes: ICU-3647
2022-04-08 14:15:32 -05:00
Carlos Alcaide Corvo 8e884d53ae Revert "chore: 🤖 Add build admin UI workflow (#1043)" (#1047)
This reverts commit 505820eb6c.
2022-04-08 09:06:22 -07:00
Carlos Alcaide Corvo 505820eb6c chore: 🤖 Add build admin UI workflow (#1043)
* chore: 🤖 Add build admin UI workflow
2022-04-08 08:41:48 -07:00
Carlos Alcaide Corvo 4b09c7014b Chore update babel parser (#1044)
Update babel-parser and dependencies.
2022-04-07 14:39:59 -07:00
Cameron Perera f4535c8307 test: 💍 Add tests specific to SSH target creation
* test: 💍 Add tests specific to SSH target creation

* test: 💍 creating new SSH target when enabled or disabled

Verifying the link to create new SSH targets is not present when
ssh-targets is not enabled

* refactor: update create targets acceptance test names
2022-04-06 09:30:49 -05:00
Dharini Jeeva 9fae8f2a9f feat: create ssh type target in admin-ui (#1027)
* feat: 🎸 create ssh type target in admin-UI
2022-03-31 15:34:24 -07:00
Carlos Alcaide Corvo a7bcc0c332 chore: 🤖 Update plist version on desktop (#1040)
Update plist version resolutions on desktop as per dependabot alert.
2022-03-31 10:40:57 -07:00
Dharini Jeeva f877477cd7 feat: 🎸 update target route to support ssh type (#1038)
* feat: 🎸 update target route to support ssh type
2022-03-31 09:50:03 -07:00
Carlos Alcaide Corvo 335df22a38 chore: 🤖 Update plist on admin resolutions (#1039)
Update plist version on admin resolutions as per dependabot alert.
2022-03-31 09:06:34 -07:00
Carlos Alcaide Corvo ca09b538f7 chore: 🤖 Add minimist to desktop resolutions (#1034)
Add minimist to desktop resolutions as per dependabot alert.
2022-03-28 14:10:33 -07:00
Carlos Alcaide Corvo 68ba653984 chore: 🤖 Add minimist to admin resolutions (#1032)
Add minimist to admin resolutions
2022-03-28 13:47:32 -07:00
Michele Degges 5a90533a2e [RelAPI Onboarding] Add release API metadata file (#1031) 2022-03-24 13:52:26 -07:00
Carlos Alcaide Corvo 3d7b8537e1 chore: 🤖 Resolutions ansi-html (#1030)
Add ansi-html to resolutions
2022-03-22 07:23:11 -07:00
Carlos Alcaide Corvo 8d6669c8a1 chore: 🤖 Update git-cz (#1029)
Update git-cz
2022-03-18 14:12:35 -07:00
Dharini Jeeva 7c3f57c7fa chore: display sync interval seconds on host-set plugin forms (#1014)
* chore: 🤖 display sync_interval_seconds toggle on the forms

* chore: 🤖 remove comment

* chore: 🤖 remove extra spacing

* fix: 🐛 update title and add a description for sync_interval

* fix: 🐛 lint in translation

* chore: 🤖 fix typo, remove duplicate code

* chore: 🤖 simplify sync interval field, remove toggling

* fix: 🐛 use correct error code

* fix: 🐛 move sync interval translation to forms

* fix: 🐛 use appropiate translations label
2022-03-17 13:49:18 -07:00
Cameron Perera 2543d14c5a Chore: Add a PR template file (#1028)
* chore: 🤖 Add a PR template file

* chore: 🤖 update pr template

* chore: 🤖 final pr template update

* Update .github/pull_request_template.md

Move JIRA ticket link to the top
2022-03-17 14:00:44 -05:00
Carlos Alcaide Corvo fe7cb014a0 feat: 🎸 Add default custom Model for mirage (#1013)
* feat: 🎸 Add default custom Model for mirage
2022-03-17 11:05:41 -07:00
Carlos Alcaide Corvo adcfb00131 chore: 🤖 Bump binary version and update changelog (#1026)
Bump binary version and update changelog.
2022-03-16 14:41:41 -07:00
Cameron Perera 772e02a738 feat: 🎸 List SSH targets in Admin (#1025)
✅ Closes: ICU-3642
2022-03-15 14:47:44 -05:00
Carlos Alcaide Corvo f3242f9150 chore: 🤖 Add plist to resolutions (#1024)
Add plist to resolutions
2022-03-15 12:10:32 -07:00
Carlos Alcaide Corvo fd8a23dd76 chore: 🤖 Add plist to desktop resolutions (#1023)
Add plist dependency to resolutions in desktop client.
2022-03-15 11:47:59 -07:00
Carlos Alcaide Corvo 5319726cba chore: 🤖 Refactor cache for dependencies within CI (#1022)
Refactor CI:
- Refactor the usage of cache.
- Add a step to deal with npm dependencies. The rest of the steps will assume dependencies are available.
2022-03-15 11:27:39 -07:00
Dharini Jeeva e153cf1be6 chore: 🤖 Update mirage responses to support SSH targets (#1021)
* feat: 🎸 add type check helper methods to target model

* chore: 🤖 include ssh type to target mirage data
2022-03-14 11:35:10 -07:00
Dharini JeevaandCameron Perera a9a82079ac feat: 🎸 add type check helper methods to target model (#1018)
* feat: 🎸 add type check helper methods to target model

* Update addons/api/tests/unit/models/target-test.js

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>

* Update addons/api/tests/unit/models/target-test.js

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2022-03-14 09:53:57 -07:00
Carlos Alcaide Corvo a0c3ad7256 Merge pull request #1019 from hashicorp/chore-upgrade-node-version-gh-action-validate-monorepo
chore: 🤖 Update node version used in GH actions
2022-03-10 17:30:23 -06:00
Carlos Alcaide Corvo ce4aa12a34 chore: 🤖 Update node version used in GH actions
Update node version from 12.x LTS to 16.x LTS for the github action
workflow validate-monorepo.
2022-03-09 13:27:44 -08:00
Cameron Perera ad2a4df70b Merge pull request #1016 from hashicorp/ssh-target-feature-flag
chore: 🤖 add ssh-target feature flag for admin
2022-03-08 13:47:34 -06:00
Dharini Jeeva 13633f6582 Merge branch 'main' into ssh-target-feature-flag 2022-03-08 10:36:50 -08:00
Dharini Jeeva 70fc371644 Merge pull request #1017 from hashicorp/ICU-3651-add-a-new-ssh-target-feature-flag-to-desktop
chore: 🤖 add feature flag for ssh target feature
2022-03-08 10:36:39 -08:00
cameronperera 5640eeb86b chore: 🤖 update ssh-target feature flag
change ssh-target feature flag to false by default and true only for
development

✅ Closes: ICU-3652
2022-03-08 12:06:43 -06:00
dharini 634a0a2af5 chore: 🤖 add feature flag for ssh target feature 2022-03-08 10:03:56 -08:00
cameronperera b16a4effd3 chore: 🤖 add ssh-target feature flag for admin
✅ Closes: ICU-3652
2022-03-08 11:45:46 -06:00
Dharini Jeeva da1cea8263 Merge pull request #1012 from hashicorp/ICU-3484-missing-sync-interval-seconds-attribute-in-plugin-host-sets
feat: 🎸 add sync_interval_seconds to plugin host-sets
2022-03-03 14:45:42 -08:00
dharini 8f60066cc8 fix: 🐛 remove sync_interval_seconds attribute from static type 2022-03-03 14:17:11 -08:00
dharini fa9c3d317e chore: 🤖 remove default value from sync_interval_seconds 2022-03-03 12:48:51 -08:00
Dharini Jeeva 9f21e94712 Merge branch 'main' into ICU-3484-missing-sync-interval-seconds-attribute-in-plugin-host-sets 2022-03-02 14:09:06 -08:00
Cameron Perera b6a3f0f72a Merge pull request #1011 from hashicorp/move-ip-addresses-form-label-in-translations
refactor: 💡 move ip_addresses label into the form translation
2022-03-02 12:31:44 -06:00
dharini d50b3a5625 feat: 🎸 add sync_interval_seconds to plugin host-sets 2022-03-02 09:44:30 -08:00
cameronperera 8a920faaf0 refactor: 💡 move ip_addresses label into the form translation 2022-03-02 10:18:03 -06:00
Cameron Perera 42cce22e99 Merge pull request #1007 from hashicorp/ICU-3529-add-boundary-does-not-yet-support-rotating-credentials-warning-message-for-azure-provider
feat: 🎸 ICU-3529 add rotating credentials warning for azure
2022-03-01 13:31:34 -06:00
Cameron Perera d9f6426d45 Merge branch 'main' into ICU-3529-add-boundary-does-not-yet-support-rotating-credentials-warning-message-for-azure-provider 2022-03-01 12:37:40 -06:00
Dharini Jeeva 06a6496403 Merge pull request #995 from hashicorp/ICU-3528-add-aws-helper-doc-links
updates to AWS and Azure doc links
2022-03-01 10:34:06 -08:00
Dharini Jeeva 1a6c4da395 Merge branch 'main' into ICU-3528-add-aws-helper-doc-links 2022-03-01 10:09:49 -08:00
Dharini Jeeva ffed3104aa Merge branch 'main' into ICU-3529-add-boundary-does-not-yet-support-rotating-credentials-warning-message-for-azure-provider 2022-03-01 10:06:44 -08:00
cameronperera f62f2e288e refactor: 💡 Update choose a provider translations
Update choose a provider translations to concat provider specific text
when appropriate

✅ Closes: ICU-3529
2022-03-01 11:47:40 -06:00
Carlos Alcaide Corvo ef9b486e12 Merge pull request #1008 from hashicorp/chore-update-changelog
Update changelog
2022-03-01 10:54:17 -06:00
Carlos Alcaide Corvo 5ebca6ff6f Update changelog
Update changelog to point next version of desktop client rather than specific.
2022-03-01 08:28:52 -08:00
Cameron Perera c626267977 Merge branch 'main' into ICU-3529-add-boundary-does-not-yet-support-rotating-credentials-warning-message-for-azure-provider 2022-03-01 10:05:13 -06:00
Dharini Jeeva 2666f6a0b6 Merge branch 'main' into ICU-3528-add-aws-helper-doc-links 2022-02-28 15:35:07 -08:00
cameronperera d12c38e885 feat: 🎸 ICU-3529 add rotating credentials warning for azure
Add "Boundary does not yet support rotating credentials" warning message
for Azure provider

✅ Closes: ICU-3529
2022-02-28 15:16:39 -06:00
Carlos Alcaide Corvo d6fbff246b Merge pull request #1006 from hashicorp/chore-resolutions-prism-js
chore: 🤖 Update prism js resolutions version
2022-02-28 15:09:25 -06:00
Carlos Alcaide Corvo ba4ed746e0 Merge branch 'main' into chore-resolutions-prism-js 2022-02-28 14:59:38 -06:00
Randall Morey 29c9796439 Merge branch 'main' into ICU-3528-add-aws-helper-doc-links 2022-02-28 14:52:11 -05:00
Carlos Alcaide Corvo c7c74c81cb Merge pull request #998 from hashicorp/feature-combine-columns-target-hosts-list-desktop
feat: 🎸 Combine columns on target host list for desktop
2022-02-28 13:51:35 -06:00
Carlos Alcaide Corvo eb59d36c32 chore: 🤖 Update prism js resolutions version 2022-02-28 11:49:18 -08:00
Carlos Alcaide Corvo 9521bc4ec8 Add badge for dynamic type label 2022-02-28 10:53:23 -08:00
Dharini Jeeva 2d6141af0f Merge branch 'main' into ICU-3528-add-aws-helper-doc-links 2022-02-28 09:33:50 -08:00
Carlos Alcaide Corvo c8550550ab Merge pull request #1003 from hashicorp/refactor-deprecate-ember-source-channel-url
chore: 🤖 Deprecate ember-source-channel-url
2022-02-28 11:33:30 -06:00
dharini 8121b12386 refactor: 💡 simplify the way to pass doc links to components 2022-02-27 16:02:53 -08:00
dharini b4c109a28d Merge branch 'main' into ICU-3528-add-aws-helper-doc-links 2022-02-27 15:43:01 -08:00
Carlos Alcaide Corvo 5ac06afc3f Merge branch 'main' into refactor-deprecate-ember-source-channel-url 2022-02-25 16:14:08 -06:00
Carlos Alcaide Corvo 9c85b1c119 Merge pull request #1002 from hashicorp/refactor-deprecate-ember-try
refactor: 💡 Deprecate ember-try
2022-02-25 16:09:33 -06:00
Carlos Alcaide Corvo a99887a052 Merge branch 'main' into refactor-deprecate-ember-try 2022-02-25 15:58:58 -06:00
Cameron Perera bc4d668abe Merge pull request #1004 from hashicorp/ICU-3488-show-dns-names-for-aws-hosts-in-admin-ui
feat: 🎸 Display DNS names for AWS hosts in Admin UI
2022-02-25 15:44:02 -06:00
cameronperera 38efef0685 refactor: 💡 Update form.dns_names.label to "Latest DNS Names" 2022-02-25 14:10:29 -06:00
cameronperera cab70b5955 feat: 🎸 Display DNS names for AWS hosts in Admin UI
✅ Closes: ICU-3488
2022-02-25 12:58:23 -06:00
Carlos Alcaide Corvo 6f1c21b14c Merge branch 'main' into refactor-deprecate-ember-try 2022-02-25 12:43:04 -06:00
Carlos Alcaide Corvo 94f77177bd chore: 🤖 Deprecate ember-source-channel-url 2022-02-25 10:38:37 -08:00
Carlos Alcaide Corvo 3ed91b26a0 Merge pull request #1000 from hashicorp/chore-update-ember-page-title
chore: 🤖 Update ember-page-title
2022-02-25 12:27:50 -06:00
Carlos Alcaide Corvo b1b0a3dfe6 Merge branch 'main' into chore-update-ember-page-title 2022-02-25 12:11:29 -06:00
Carlos Alcaide Corvo 6500019835 Merge pull request #997 from hashicorp/chore-resolutions-update-follow-redirects
chore: 🤖 Update resolutions follow-redirects
2022-02-25 12:11:04 -06:00
Carlos Alcaide Corvo 426cb61277 Merge branch 'main' into chore-resolutions-update-follow-redirects 2022-02-25 11:59:31 -06:00
Carlos Alcaide Corvo d53f532412 Merge pull request #996 from hashicorp/chore-resolutions-nanoid
chore: 🤖 Add nanoid to resolutions
2022-02-25 11:59:09 -06:00
Carlos Alcaide Corvo d19f79858b refactor: 💡 Deprecate ember-try 2022-02-25 09:54:56 -08:00
Carlos Alcaide Corvo 140b008447 chore: 🤖 Update ember-page-title 2022-02-24 10:23:31 -08:00
Carlos Alcaide Corvo b0dd8e4635 chore: 🤖 Update resolutions follow-redirects 2022-02-24 08:23:24 -08:00
Carlos Alcaide Corvo c716e8e5b4 chore: 🤖 Add nanoid to resolutions 2022-02-24 08:08:54 -08:00
Carlos Alcaide Corvo 6c314cb449 Merge pull request #993 from hashicorp/chore-resolutions-mout
chore: 🤖 Add resolutions mout
2022-02-23 17:56:45 -06:00
Carlos Alcaide Corvo 0c8ead139f Merge branch 'main' into chore-resolutions-mout 2022-02-23 17:42:13 -06:00
Carlos Alcaide Corvo b708f28577 Merge pull request #992 from hashicorp/chore-resolutions-markdown-it
chore: 🤖 Add resolutions markdown it
2022-02-23 16:35:20 -06:00
Carlos Alcaide Corvo beded286a2 Merge branch 'main' into chore-resolutions-markdown-it 2022-02-23 16:15:58 -06:00
Carlos Alcaide Corvo 4c5ce5e627 Merge pull request #994 from hashicorp/chore-update-flight-icons
chore: 🤖 Update flight icons
2022-02-23 16:15:29 -06:00
dharini f72447f1e2 refactor: 💡 azure/aws doc link keys 2022-02-23 10:50:20 -08:00
Carlos Alcaide Corvo 540139644c Merge branch 'main' into chore-resolutions-markdown-it 2022-02-23 12:37:12 -06:00
Carlos Alcaide Corvo 3d782582e5 chore: 🤖 Update flight icons 2022-02-23 10:35:03 -08:00
dharini e3400ec5ab chore: 🤖 add doc links for aws and update azure doc key 2022-02-23 10:28:35 -08:00
Carlos Alcaide Corvo 937a8a6b0d Merge pull request #991 from hashicorp/chore-resolutions-engine-io
chore: 🤖 Add resolutions engine.io
2022-02-23 12:20:18 -06:00
Carlos Alcaide Corvo 23bdd10ce5 Merge branch 'main' into chore-resolutions-engine-io 2022-02-23 12:03:10 -06:00
Randall Morey 920971ee98 Merge pull request #977 from hashicorp/chore-add-host-route
chore: 🤖 add read-only host route for dynamic hosts
2022-02-23 12:56:19 -05:00
Carlos Alcaide Corvo c5d21ee09d Merge branch 'main' into chore-resolutions-engine-io 2022-02-23 11:46:09 -06:00
Randall Morey b54cbc96ad Merge branch 'main' into chore-add-host-route 2022-02-23 12:44:21 -05:00
Randall Morey 694dadb203 Merge pull request #944 from hashicorp/chore-radio-template
refactor: 💡 upgrade ember-radio-button to fix deprecations
2022-02-23 12:42:11 -05:00
Carlos Alcaide Corvo c75800514f Merge branch 'main' into chore-resolutions-engine-io 2022-02-23 11:39:27 -06:00
Carlos Alcaide Corvo 7e28dee0ab chore: 🤖 Add resolutions mout 2022-02-23 09:31:11 -08:00
Randall Morey 05be4c1349 Merge branch 'main' into chore-radio-template 2022-02-23 12:29:45 -05:00
Susmitha Girumala dad2d2d05e Merge pull request #949 from hashicorp/refactor-breadcrumbs-component
Refactor breadcrumbs component
2022-02-23 12:27:35 -05:00
Susmitha Girumala 7c85310318 Merge pull request #945 from hashicorp/refactor-breadcrumbs-link
refactor: 💡 resolve legacy-attribute-arguments deprecations
2022-02-23 12:26:22 -05:00
Susmitha Girumala e9580ba85e Merge pull request #943 from hashicorp/chore-argument-less-helper-paren-less-invocation
chore: 🤖 satisfy argument-less-helper-paren-less-invocation
2022-02-23 12:25:26 -05:00
Randall Morey efbf868a0a Merge branch 'main' into chore-argument-less-helper-paren-less-invocation 2022-02-23 12:14:29 -05:00
Carlos Alcaide Corvo d10bb377b0 Merge branch 'main' into chore-resolutions-markdown-it 2022-02-23 10:18:42 -06:00
Carlos Alcaide Corvo 34c1adeba2 chore: 🤖 Add resolutions markdown it 2022-02-23 08:17:12 -08:00
Carlos Alcaide Corvo 85744200f7 chore: 🤖 Add resolutions engine.io 2022-02-23 08:03:32 -08:00
Carlos Alcaide Corvo ec64d4f045 Merge pull request #989 from hashicorp/chore-update-ember-named-blocks-polyfill
chore: 🤖 Update ember named blocks polyfill
2022-02-23 09:57:54 -06:00
Carlos Alcaide Corvo d30091db47 Merge branch 'main' into chore-update-ember-named-blocks-polyfill 2022-02-23 09:44:47 -06:00
Carlos Alcaide Corvo cdaf44f8eb Merge pull request #988 from hashicorp/chore-update-ember-composable-helpers
chore: 🤖 Update ember-composable-helpers
2022-02-23 09:44:33 -06:00
Randall Morey 9a91cc2ea8 Merge branch 'main' into chore-argument-less-helper-paren-less-invocation 2022-02-23 10:09:43 -05:00
Carlos Alcaide Corvo a8fb814855 Merge branch 'main' into chore-update-ember-composable-helpers 2022-02-22 17:29:52 -06:00
Carlos Alcaide Corvo 01d1271562 Merge pull request #986 from hashicorp/chore-update-doctoc
chore: 🤖 Update doctoc
2022-02-22 17:28:18 -06:00
Carlos Alcaide Corvo 3929f0ef58 Merge branch 'main' into chore-update-doctoc 2022-02-22 17:09:27 -06:00
Carlos Alcaide Corvo 447dabf853 Merge pull request #985 from hashicorp/chore-update-ember-test-helpers
feat: 🎸 Update @ember/test-helpers
2022-02-22 17:09:11 -06:00
Carlos Alcaide Corvo 3deaf18902 Merge branch 'main' into chore-update-ember-test-helpers 2022-02-22 16:53:04 -06:00
Carlos Alcaide Corvo c468468427 Merge pull request #984 from hashicorp/chore-update-babel-plugin-ember-modules-api-polyfill
chore: 🤖 Update babel-plugin-ember-modules-api-polyfill
2022-02-22 16:52:46 -06:00
Carlos Alcaide Corvo 2b401ebb5e Merge branch 'main' into chore-update-ember-composable-helpers 2022-02-22 16:35:24 -06:00
Carlos Alcaide Corvo 9da46928e6 Merge branch 'main' into chore-update-babel-plugin-ember-modules-api-polyfill 2022-02-22 16:34:44 -06:00
Carlos Alcaide Corvo 9971d6f823 Merge pull request #990 from hashicorp/revert-987-chore-update-ember-cli-htmlbars
Revert "chore: 🤖 Update ember-cli-htmlbars"
2022-02-22 16:34:32 -06:00
Carlos Alcaide Corvo 6bd7023776 Revert "chore: 🤖 Update ember-cli-htmlbars" 2022-02-22 14:21:28 -08:00
Carlos Alcaide Corvo 3749c4c148 Merge branch 'main' into chore-update-babel-plugin-ember-modules-api-polyfill 2022-02-22 16:17:31 -06:00
Carlos Alcaide Corvo 92dd707811 Merge branch 'main' into chore-update-ember-composable-helpers 2022-02-22 16:13:39 -06:00
Carlos Alcaide Corvo 74178b8437 Merge pull request #987 from hashicorp/chore-update-ember-cli-htmlbars
chore: 🤖 Update ember-cli-htmlbars
2022-02-22 16:12:53 -06:00
Dharini Jeeva ca26e39668 Merge branch 'main' into chore-update-ember-test-helpers 2022-02-22 13:44:48 -08:00
Dharini Jeeva 864d6b139b Merge branch 'main' into chore-update-doctoc 2022-02-22 13:44:44 -08:00
Dharini Jeeva 298546829a Merge branch 'main' into chore-update-ember-cli-htmlbars 2022-02-22 13:44:06 -08:00
Dharini Jeeva 22fa670d9b Merge branch 'main' into chore-update-ember-composable-helpers 2022-02-22 13:44:03 -08:00
Dharini Jeeva c48961cc89 Merge branch 'main' into chore-update-ember-named-blocks-polyfill 2022-02-22 13:43:56 -08:00
Carlos Alcaide Corvo 23a353d68a chore: 🤖 Update ember named blocks polyfill 2022-02-22 13:10:07 -08:00
Carlos Alcaide Corvo ca587da91f Merge branch 'main' into chore-update-babel-plugin-ember-modules-api-polyfill 2022-02-22 14:48:03 -06:00
Carlos Alcaide Corvo ebe73db6ae Merge pull request #983 from hashicorp/chore-update-ember-cli-storybook
chore: 🤖 Update ember-cli-storybook dep
2022-02-22 14:47:49 -06:00
Carlos Alcaide Corvo 4fdd4d777d chore: 🤖 Update ember-composable-helpers 2022-02-22 12:09:15 -08:00
Carlos Alcaide Corvo ab9581ea12 chore: 🤖 Update ember-cli-htmlbars 2022-02-22 10:25:55 -08:00
Carlos Alcaide Corvo 48bb575b8f chore: 🤖 Update doctoc 2022-02-22 09:45:14 -08:00
Carlos Alcaide Corvo ea9e286de4 feat: 🎸 Update @ember/test-helpers 2022-02-22 09:31:20 -08:00
Carlos Alcaide Corvo aa62348503 chore: 🤖 Update babel-plugin-ember-modules-api-polyfill 2022-02-22 08:46:29 -08:00
Carlos Alcaide Corvo a5f0674e9d chore: 🤖 Update ember-cli-storybook dev 2022-02-22 08:30:28 -08:00
Dharini Jeeva d0255fe4e1 Merge pull request #982 from hashicorp/bump-binary-version
feat: 🎸 Bump binary version
2022-02-17 11:55:28 -08:00
Carlos Alcaide Corvo d66b40ad9b feat: 🎸 Bump binary version
Bump binary version + update changelog
2022-02-17 11:41:35 -08:00
Susmitha Girumala 9eac6cdc8b Merge pull request #981 from hashicorp/fix-host-address-field-dynamic-if-plugin-type
fix: 🐛 Host address field shows value for type plugin
2022-02-17 12:40:08 -05:00
Carlos Alcaide Corvo f6a29597af fix: 🐛 Host address field shows value for type plugin
Host address field shows Dynamic value on list when it is not type
static
2022-02-17 09:12:34 -08:00
Randall Morey 8496c05488 Merge pull request #980 from hashicorp/chore-radio-card-width
chore: make radio cards a bit narrower
2022-02-17 10:42:55 -05:00
Randall Morey 6ca69fee1b Merge branch 'main' into chore-radio-card-width 2022-02-17 09:22:09 -05:00
Randall Morey 7af9aac902 chore: make radio cards a bit narrower 2022-02-17 09:20:30 -05:00
Carlos Alcaide Corvo eca47f14f9 Merge pull request #978 from hashicorp/fix-hosts-lists-missing-value
Delete unnecessary else clause in host list within targets
2022-02-16 16:28:01 -06:00
Dharini Jeeva ecd573ea37 Merge branch 'main' into fix-hosts-lists-missing-value 2022-02-16 14:14:51 -08:00
Dharini Jeeva ae589f7af1 Merge pull request #974 from hashicorp/chore-add-pref-endpoints
chore: 🤖 add preferred endpoitns
2022-02-16 14:14:33 -08:00
Dharini Jeeva 13c349b996 Merge branch 'main' into chore-add-pref-endpoints 2022-02-16 14:04:07 -08:00
Randall Morey cb22248fc8 Merge pull request #979 from hashicorp/chore-normalize-non-array-filters
chore: support `filters` when it is a string by converting to an array
2022-02-16 17:03:57 -05:00
dharini 731ce40850 undo change 2022-02-16 13:53:58 -08:00
Randall Morey c5601a5c63 chore: support filters when it is a string by converting to an array 2022-02-16 16:48:01 -05:00
dharini f4aa98f362 resolve conflict 2022-02-16 13:47:57 -08:00
dharini 1dcfc67e0a remove attr from input 2022-02-16 13:47:02 -08:00
Dharini Jeeva 8f554706bc Update index.stories.mdx 2022-02-16 13:36:49 -08:00
Dharini Jeeva bf5006c4fe Merge branch 'main' into chore-add-pref-endpoints 2022-02-16 13:36:09 -08:00
dharini af0903b126 Merge branch 'chore-add-pref-endpoints' of github.com:hashicorp/boundary-ui into chore-add-pref-endpoints 2022-02-16 13:35:43 -08:00
dharini 595443bccf fix: 🐛 add placeholder to input 2022-02-16 13:35:20 -08:00
Carlos Alcaide Corvo 8e03ccf337 Merge branch 'main' into fix-hosts-lists-missing-value 2022-02-16 15:32:41 -06:00
Carlos Alcaide Corvo 22e3a3e6db Delete unnecessary else clause in host list within targets 2022-02-16 13:31:38 -08:00
Carlos Alcaide Corvo d31aaa28e7 Merge pull request #975 from hashicorp/fix-hosts-lists-missing-value
fix: 🐛 Fix host list table missing address field
2022-02-16 15:10:28 -06:00
Carlos Alcaide Corvo 63eb2c3589 Merge branch 'main' into fix-hosts-lists-missing-value 2022-02-16 14:37:38 -06:00
Randall Morey c6d9f5a824 Merge branch 'main' into chore-add-host-route 2022-02-16 15:21:29 -05:00
Randall Morey e15198d944 chore: add missing breadcrumb 2022-02-16 15:20:27 -05:00
Dharini Jeeva 5486b80c67 Merge branch 'main' into chore-add-pref-endpoints 2022-02-16 12:18:49 -08:00
Randall Morey 4994b8256b chore: 🤖 add read-only host route for dynamic hosts 2022-02-16 15:05:35 -05:00
Dharini Jeeva 8d0db2b74a Merge pull request #976 from hashicorp/fix-desc
fix helper text for secret acc value
2022-02-16 12:03:16 -08:00
dharini 8e9b783b06 fix helper text for secret acc value 2022-02-16 11:52:39 -08:00
Dharini Jeeva 399c31f34c Merge branch 'main' into chore-add-pref-endpoints 2022-02-16 11:39:13 -08:00
dharini e0b8f7d796 remove unused 2022-02-16 11:38:16 -08:00
dharini 7818575115 fix: 🐛 lint 2022-02-16 11:37:16 -08:00
Carlos Alcaide Corvo e1dab6ac31 fix: 🐛 Fix host list table missing address field
Fix address missing field for static hosts in the host list
2022-02-16 11:33:33 -08:00
dharini ad2e8bdd6c chore: 🤖 add preferred endpoitns 2022-02-16 11:10:40 -08:00
Dharini Jeeva 2feeb28999 Merge pull request #973 from hashicorp/fix-val
fix: 🐛 missed value field
2022-02-16 10:43:33 -08:00
dharini a44c859414 fix: 🐛 missed value field 2022-02-16 10:30:31 -08:00
Dharini Jeeva 5a815ca619 Merge pull request #965 from hashicorp/add-client-secret-id
fix: 🐛 add client secret value field
2022-02-16 09:42:05 -08:00
Dharini Jeeva f768ff20ea Merge branch 'main' into add-client-secret-id 2022-02-16 09:26:39 -08:00
Carlos Alcaide Corvo 1dae46b2e7 Merge pull request #972 from hashicorp/fix-actions-for-host-set
fix: 🐛 Refactor host-set dropdown separator
2022-02-16 11:19:57 -06:00
Carlos Alcaide Corvo 114ea66899 Merge branch 'main' into fix-actions-for-host-set 2022-02-16 10:59:59 -06:00
Dharini Jeeva 0762ff8240 Merge branch 'main' into add-client-secret-id 2022-02-16 08:58:28 -08:00
Dharini Jeeva 8689672e47 Merge pull request #971 from hashicorp/fix-labels
fix: 🐛 multiple labels
2022-02-16 08:56:27 -08:00
dharini 6de0c07549 fix key 2022-02-16 08:51:07 -08:00
Carlos Alcaide Corvo 8c81b3d60d fix: 🐛 Refactor host-set dropdown separator
Refactor host-set actions dropdown separator to not be show when there
is just 1 option.
2022-02-16 08:49:11 -08:00
dharini 88b4a1a243 fix: 🐛 multiple labels 2022-02-16 08:33:47 -08:00
Susmitha Girumala 77c6bead71 Merge pull request #970 from hashicorp/add-link
Add link
2022-02-16 10:34:26 -05:00
dharini 55199277cb resolve conflicts 2022-02-15 19:15:02 -08:00
Dharini Jeeva bdddd84c66 Merge pull request #968 from hashicorp/show-ip-address
chore: 🤖 show ip_address in host aws and azure
2022-02-15 19:06:55 -08:00
dharini 8b338f0288 chore: 🤖 add doc links 2022-02-15 18:56:50 -08:00
dharini 8c2ff4d2e9 chore: 🤖 add doc link 2022-02-15 18:56:50 -08:00
dharini 1f4b577dcb conflict 2022-02-15 18:55:42 -08:00
dharini 9861db3c26 Merge branch 'show-ip-address' of github.com:hashicorp/boundary-ui into show-ip-address 2022-02-15 16:12:19 -08:00
dharini 5f1df8a0a0 chore: 🤖 show latest ip addresses 2022-02-15 16:12:05 -08:00
dharini 92eb0a4be2 Merge branch 'main' into show-ip-address 2022-02-15 15:43:04 -08:00
Carlos Alcaide Corvo 8815dca31a Merge pull request #969 from hashicorp/fix-host-mock-data-attributes
fix: 🐛 Fix host mock data attributes
2022-02-15 17:33:30 -06:00
Randall Morey 790d047692 chore: move form fields 2022-02-15 18:23:25 -05:00
Carlos Alcaide Corvo 46c54fb22d fix: 🐛 Fixt host mock data attributes
Refactor ip_addresses, dns_names and external_id to not be nested under
attributes: {} when generating mock data.
2022-02-15 15:12:20 -08:00
Dharini Jeeva 2bb22a3dd7 Merge branch 'main' into show-ip-address 2022-02-15 14:58:28 -08:00
dharini 220370cc18 update attr name 2022-02-15 14:48:08 -08:00
dharini d0fec6e30e chore: 🤖 resolve conflicts 2022-02-15 14:30:19 -08:00
Randall Morey ea85879cfc Merge pull request #967 from hashicorp/feature-disable-credential-rotation
Expose disable credential rotation field
2022-02-15 17:18:14 -05:00
dharini 6d358a565f chore: 🤖 show ip_addresses in host aws and azure 2022-02-15 14:05:59 -08:00
dharini 6d6e8757e9 updates 2022-02-15 13:17:17 -08:00
Randall Morey 7a4b568ac7 Merge branch 'feature-disable-credential-rotation' of https://github.com/hashicorp/boundary-ui into feature-disable-credential-rotation 2022-02-15 15:58:37 -05:00
Randall Morey fb266d548c fix: 🐛 use @checked 2022-02-15 15:58:31 -05:00
dharini c132f6e73c Merge branch 'add-client-secret-id' of github.com:hashicorp/boundary-ui into add-client-secret-id 2022-02-15 12:55:56 -08:00
dharini 3c9105c071 fix: 🐛 move translations 2022-02-15 12:55:40 -08:00
Dharini Jeeva 38843329a2 Merge branch 'main' into add-client-secret-id 2022-02-15 12:23:51 -08:00
Randall Morey f540f052ba Merge branch 'main' into feature-disable-credential-rotation 2022-02-15 15:23:37 -05:00
dharini 24d1764310 chore: 🤖 refactor translations 2022-02-15 12:23:17 -08:00
Randall Morey e5e231f93a feat: 🎸 add disable_credential_rotation field to forms 2022-02-15 15:08:59 -05:00
Dharini Jeeva 5d2e70ed8d Merge pull request #960 from hashicorp/chore-update-to-plugin
chore: 🤖 updates to labels
2022-02-15 11:50:08 -08:00
Randall Morey 58731f1448 refactor: 💡 simplify new host catalog creation steps 2022-02-15 14:36:54 -05:00
dharini 79f242c4aa refactor translations 2022-02-15 11:32:40 -08:00
dharini 35fd198ceb fix: 🐛 refactor 2022-02-15 11:32:27 -08:00
Dharini Jeeva 9a7a0d5c4e Merge branch 'main' into add-client-secret-id 2022-02-15 09:05:00 -08:00
dharini c9ef425152 Merge branch 'chore-update-to-plugin' of github.com:hashicorp/boundary-ui into chore-update-to-plugin 2022-02-15 08:39:24 -08:00
dharini 960cf319f6 chore: 🤖 use hostcatalogtypebadge component 2022-02-15 08:39:08 -08:00
Randall Morey 9fd8e7ef54 Merge branch 'main' into chore-update-to-plugin 2022-02-15 07:29:04 -05:00
Randall Morey a1494be628 Merge pull request #962 from hashicorp/fix-plugin-type-param
fix: append ?plugin_name to dynamic host catalog create requests
2022-02-15 07:21:58 -05:00
dharini 52dafcb672 fix: 🐛 add client secret value field 2022-02-14 19:21:39 -08:00
dharini fb80069d4e Merge branch 'chore-update-to-plugin' of github.com:hashicorp/boundary-ui into chore-update-to-plugin 2022-02-14 19:02:21 -08:00
dharini 4c7f92f035 resolve conflict 2022-02-14 19:02:00 -08:00
Randall Morey 0dd0fc8592 Merge branch 'main' into fix-plugin-type-param 2022-02-14 19:08:57 -05:00
Dharini Jeeva ffd4352106 Merge pull request #964 from hashicorp/refactor-type-badges
refactor: 💡 consolidate host catalog type badges to component
2022-02-14 16:01:36 -08:00
Randall Morey 939a6fa83d Merge branch 'main' into fix-plugin-type-param 2022-02-14 18:58:45 -05:00
Dharini Jeeva aca197b1bd Merge branch 'main' into chore-update-to-plugin 2022-02-14 15:43:40 -08:00
dharini 9bd581477f Merge branch 'refactor-type-badges' of github.com:hashicorp/boundary-ui into refactor-type-badges 2022-02-14 15:40:41 -08:00
dharini 2a2364b52f Merge branch 'main' into refactor-type-badges 2022-02-14 15:40:24 -08:00
Dharini Jeeva b054d5a6b2 Merge branch 'main' into refactor-type-badges 2022-02-14 15:39:57 -08:00
Dharini Jeeva 7503a7d055 Merge pull request #961 from hashicorp/host-set-filter-ui
updates to host-set plugin filters
2022-02-14 15:38:51 -08:00
dharini bbd25cd42f chore: 🤖 use hostcatalogbadge component 2022-02-14 15:37:12 -08:00
Randall Morey ed248f583f refactor: 💡 consolidate host catalog type badges to component 2022-02-14 18:06:12 -05:00
Randall Morey 2dda76a470 Merge branch 'main' into fix-plugin-type-param 2022-02-14 17:11:20 -05:00
Randall Morey e0989fffe3 test: 💍 add missing adapter test 2022-02-14 17:10:54 -05:00
Dharini Jeeva 50aa6f5c17 Merge branch 'main' into host-set-filter-ui 2022-02-14 14:02:21 -08:00
Carlos Alcaide Corvo 318103b745 Merge pull request #959 from hashicorp/refactor-serializer-cleanup
Refactor nested fields serialisation.
2022-02-14 16:02:04 -06:00
dharini 4438a6719f fix: 🐛 lint 2022-02-14 13:55:34 -08:00
Randall Morey f4c3bc7eba Merge branch 'main' into refactor-serializer-cleanup 2022-02-14 16:44:16 -05:00
Dharini Jeeva a3ba4ddb83 Merge branch 'main' into chore-update-to-plugin 2022-02-14 13:42:32 -08:00
dharini 616c7c73fb fix: 🐛 updates 2022-02-14 13:37:30 -08:00
Dharini Jeeva 38ad758110 Merge pull request #963 from hashicorp/fix-address-attr
fix: 🐛 static host creation address field
2022-02-14 13:34:11 -08:00
dharini b15c8b056f fix: 🐛 error name 2022-02-14 12:55:07 -08:00
dharini 0b44a649b7 typo 2022-02-14 12:45:32 -08:00
Dharini Jeeva 21aef6a722 Update new.js 2022-02-14 12:40:32 -08:00
Dharini Jeeva ea5ab02d70 Update host-set.js 2022-02-14 12:39:48 -08:00
dharini 83cf084ee6 fix: 🐛 fix address 2022-02-14 12:34:05 -08:00
Randall Morey 021097ad44 fix: append ?plugin_name to dynamic host catalog create requests 2022-02-14 14:57:34 -05:00
dharini 4e513cbb9f translations 2022-02-14 11:39:06 -08:00
dharini 18dcd341c7 fix: 🐛 remove duplicate types from host/host-set 2022-02-14 11:21:14 -08:00
dharini 5b245a3ce1 lint 2022-02-14 10:37:58 -08:00
dharini 9ccae001d3 fix: 🐛 lint 2022-02-14 10:20:00 -08:00
dharini e0f81f1e61 Merge branch 'main' into host-set-filter-ui 2022-02-14 09:51:34 -08:00
dharini d5394f3206 Merge branch 'main' into host-set-filter-ui 2022-02-14 09:50:42 -08:00
Dharini Jeeva f2b91e3011 Merge branch 'main' into chore-update-to-plugin 2022-02-14 09:46:41 -08:00
Dharini Jeeva a119c97a3b Merge pull request #948 from hashicorp/feat-typed-host
Feat typed host
2022-02-14 09:46:21 -08:00
dharini 0e4f8718a2 chore: 🤖 updates to labels 2022-02-14 09:15:11 -08:00
Randall Morey 93fd52954f chore: 🤖 explicitly set secrets to null when missing 2022-02-14 11:50:39 -05:00
Randall Morey ac215e200f refactor: 💡 simplify host catalog modeling and normalization 2022-02-14 11:24:58 -05:00
Randall Morey d53cfbcc33 refactor: 💡 simplify nested fields normalization 2022-02-14 11:14:52 -05:00
dharini 361bdf02a4 updates to host-set plugin filters 2022-02-13 22:42:34 -08:00
Dharini Jeeva 13903fe8b9 Merge branch 'main' into feat-typed-host 2022-02-11 15:56:47 -08:00
Carlos Alcaide Corvo edec68e677 Merge pull request #957 from hashicorp/feat-add-host-fields-to-mirage
feat: 🎸 Add host fields to mirage
2022-02-11 15:31:50 -06:00
Carlos Alcaide Corvo fe3310ddd1 Simplify conditional 2022-02-11 13:18:19 -08:00
dharini 2f37581aed Merge branch 'feat-typed-host' of github.com:hashicorp/boundary-ui into feat-typed-host 2022-02-11 12:04:38 -08:00
dharini 9a13cd2279 chore: 🤖 translations 2022-02-11 12:04:25 -08:00
Dharini Jeeva 1cdc4a0092 Merge branch 'main' into feat-add-host-fields-to-mirage 2022-02-11 12:03:01 -08:00
Dharini Jeeva a128882d46 Merge branch 'main' into feat-typed-host 2022-02-11 11:45:43 -08:00
dharini 56bc05eba1 Merge branch 'feat-typed-host' of github.com:hashicorp/boundary-ui into feat-typed-host 2022-02-11 11:45:16 -08:00
dharini 3693829e96 chore: 🤖 translation updat4e 2022-02-11 11:44:55 -08:00
Dharini Jeeva 4c997982be Merge pull request #955 from hashicorp/consolidate-translation
Consolidate plugin provider translations
2022-02-11 11:37:27 -08:00
dharini 31c4dc32d3 Merge branch 'consolidate-translation' into feat-typed-host 2022-02-11 11:34:44 -08:00
Dharini Jeeva 1394e7c15f Merge branch 'main' into consolidate-translation 2022-02-11 11:27:43 -08:00
Dharini Jeeva 4d6456dc4d Merge branch 'main' into feat-typed-host 2022-02-11 11:27:31 -08:00
dharini 3ff51b30f0 fix: 🐛 add a comment 2022-02-11 11:26:22 -08:00
Carlos Alcaide Corvo cdaf6a84e0 Merge branch 'main' into feat-add-host-fields-to-mirage 2022-02-11 12:35:41 -06:00
Carlos Alcaide Corvo 92356c0c6e Merge pull request #956 from hashicorp/fix-mirage-filter-field-for-host-set
fix: 🐛 Fix filter field for host-set in mirage
2022-02-11 12:35:26 -06:00
Carlos Alcaide Corvo da3d94816b Merge branch 'main' into fix-mirage-filter-field-for-host-set 2022-02-11 12:23:37 -06:00
Carlos Alcaide Corvo 0b4b9b405f Merge pull request #953 from hashicorp/fix-broken-host-catalog-serializer
refactor: 💡 Refactor app normalize and host catalog normalize
2022-02-11 12:21:08 -06:00
Carlos Alcaide Corvo 7cde322926 Merge branch 'main' into feat-add-host-fields-to-mirage 2022-02-11 12:17:32 -06:00
Carlos Alcaide Corvo 44f81118ec feat: 🎸 Add host fields to mirage
Add host new fields to mirage.
2022-02-11 10:16:23 -08:00
dharini be747bc8c7 chore: 🤖 translation fix 2022-02-11 09:42:42 -08:00
Carlos Alcaide Corvo 5f44c569d0 Merge branch 'main' into fix-broken-host-catalog-serializer 2022-02-11 11:40:25 -06:00
Dharini Jeeva 21569bcc60 Merge branch 'main' into fix-mirage-filter-field-for-host-set 2022-02-11 09:23:31 -08:00
Dharini Jeeva 2d479239c1 Merge pull request #954 from hashicorp/chore-hide-actions
chore: 🤖 hide actions for plugin typed hosts
2022-02-11 09:22:40 -08:00
Carlos Alcaide Corvo 8546275249 fix: 🐛 Fix filter field for host-set in mirage
Fix the filter field for host-set in mirage. It was returning an error
rather than a string.
2022-02-11 08:51:22 -08:00
dharini 449181390e lint 2022-02-10 18:44:40 -08:00
dharini 591f05d72f consolidate provider translations 2022-02-10 18:34:41 -08:00
dharini 2459f97e4a consolidate provider translations 2022-02-10 18:33:51 -08:00
Dharini Jeeva 0776ec1af9 Update hosts.hbs 2022-02-10 18:24:30 -08:00
dharini b6f8e001f0 chore: 🤖 hide actions for plugin host 2022-02-10 18:22:14 -08:00
dharini 537b43317b Merge branch 'feat-typed-host' of github.com:hashicorp/boundary-ui into feat-typed-host 2022-02-10 18:08:04 -08:00
dharini 445e98d455 updates 2022-02-10 18:07:52 -08:00
dharini 7e731a8008 fix: 🐛 render static 2022-02-10 17:57:19 -08:00
Dharini Jeeva 2c5231d2ab Merge branch 'main' into feat-typed-host 2022-02-10 17:36:34 -08:00
Carlos Alcaide Corvo 7d98438ee9 Merge branch 'main' into fix-broken-host-catalog-serializer 2022-02-10 16:16:59 -06:00
Dharini Jeeva 0416badcfd Merge pull request #952 from hashicorp/feat-typed-host-set-create
Feat: typed host set creation
2022-02-10 13:40:04 -08:00
Dharini Jeeva e62a921cf4 Merge branch 'main' into feat-typed-host-set-create 2022-02-10 13:30:46 -08:00
Dharini Jeeva ec61bf8081 Merge pull request #947 from hashicorp/feat-typed-host-set
Feat: typed host-set form components - edit and view
2022-02-10 13:30:34 -08:00
Dharini Jeeva 200c3d54b1 Merge branch 'main' into feat-typed-host 2022-02-10 12:23:37 -08:00
Carlos Alcaide Corvo e1282bb870 Fix conditional to check for undefined 2022-02-10 11:47:30 -08:00
Carlos Alcaide Corvo b33a4d0b1d refactor: 💡 Refactor app normalize and host catalog normalize
Refactor app normalize to deal with nestedAttributes and nestedSecrets
as expected, before it was not working as expected. Refactor the host
catalog normalize method. Add normalize test on host catalog to validate
changes on normalize methods.
2022-02-10 11:43:30 -08:00
Dharini Jeeva e68d174410 Merge branch 'main' into feat-typed-host-set 2022-02-10 08:45:17 -08:00
Carlos Alcaide Corvo 37849ecf36 Merge pull request #946 from hashicorp/chore-refactor-host-catalog-mirage-data
chore: 🤖 Refactor mirage for GET host-catalog
2022-02-10 09:06:30 -06:00
Carlos Alcaide Corvo 5633502d8e Merge branch 'main' into chore-refactor-host-catalog-mirage-data 2022-02-10 08:53:41 -06:00
Carlos Alcaide Corvo 9ae037debf Merge pull request #941 from hashicorp/feat-add-new-fields-hosts
feat: 🎸 Add new fields to host
2022-02-10 08:53:21 -06:00
Carlos Alcaide Corvo e2ca9f5a7a Merge branch 'main' into feat-add-new-fields-hosts 2022-02-10 08:41:04 -06:00
dharini 0c5f6c1743 Merge branch 'feat-typed-host-set-create' of github.com:hashicorp/boundary-ui into feat-typed-host-set-create 2022-02-09 22:19:38 -08:00
dharini 6193fb8d8d Merge branch 'feat-typed-hs-create' into feat-typed-host-set-create 2022-02-09 22:18:56 -08:00
dharini 8c95e804e6 Merge commit 'a93bf5d4aa831299e50ffc5b52190b9d767cd83c' into feat-typed-hs-create 2022-02-09 22:17:38 -08:00
dharini b5ea82caaa feat: 🎸 host-set: updates to fields 2022-02-09 22:15:49 -08:00
dharini b00055a38f split host-set into static, aws and azure 2022-02-09 22:15:04 -08:00
dharini 1be4dba3db Merge branch 'feat-typed-host-set' of github.com:hashicorp/boundary-ui into feat-typed-host-set 2022-02-09 18:52:40 -08:00
dharini 64ad424a3a Merge branch 'feat-typed-host-set-create' of github.com:hashicorp/boundary-ui into feat-typed-host-set-create 2022-02-09 18:50:52 -08:00
dharini a93bf5d4aa feat: 🎸 allow host set typed creation 2022-02-09 18:50:31 -08:00
dharini 3437d4e665 fix: 🐛 translations 2022-02-09 18:50:31 -08:00
dharini cdf83c7de6 chore: 🤖 placeholder for filters 2022-02-09 18:50:31 -08:00
dharini 5e837fd2d5 fix: 🐛 remove links for now 2022-02-09 18:50:31 -08:00
dharini 98e9d8ef24 feat: 🎸 host-set: updates to fields 2022-02-09 18:50:31 -08:00
dharini 8ad078622f split host-set into static, aws and azure 2022-02-09 18:50:31 -08:00
dharini eb7dc62e9b fix: 🐛 translations 2022-02-09 18:50:09 -08:00
dharini d205f0f345 chore: 🤖 placeholder for filters 2022-02-09 18:50:09 -08:00
dharini 791a6e9d55 fix: 🐛 remove links for now 2022-02-09 18:50:09 -08:00
dharini 460c77994f feat: 🎸 host-set: updates to fields 2022-02-09 18:50:09 -08:00
dharini 4c32cee466 split host-set into static, aws and azure 2022-02-09 18:50:09 -08:00
dharini 43ebe5bf25 Merge branch 'feat-typed-host-set' of github.com:hashicorp/boundary-ui into feat-typed-host-set 2022-02-09 18:48:24 -08:00
dharini f4c62e59a9 Merge branch 'main' into feat-typed-host-set 2022-02-09 18:48:03 -08:00
dharini 42e754ab26 feat: 🎸 allow host set typed creation 2022-02-09 18:44:43 -08:00
dharini fb05d3ebd8 Merge branch 'main' into feat-typed-host-set-create 2022-02-09 17:02:45 -08:00
dharini b69dda5b82 Merge branch 'feat-typed-host' of github.com:hashicorp/boundary-ui into feat-typed-host 2022-02-09 16:55:39 -08:00
dharini 9623806206 fix translations, split into three components 2022-02-09 16:55:27 -08:00
dharini b647ff5d49 Merge branch 'main' into feat-typed-host 2022-02-09 15:02:54 -08:00
Dharini Jeeva 0ffb39ed9f Merge branch 'main' into feat-typed-host-set 2022-02-09 14:53:03 -08:00
dharini f7b3ea3547 fix: 🐛 translations 2022-02-09 14:52:22 -08:00
Randall Morey 965c28a008 Merge pull request #950 from hashicorp/chore-reuse-new-hc-fields
chore: 🤖 reuse name/description when changing instance type
2022-02-09 17:39:03 -05:00
dharini 1188c7567c chore: 🤖 placeholder for filters 2022-02-09 14:03:54 -08:00
Randall Morey 74d1b352b1 chore: 🤖 reuse name/description when changing instance type 2022-02-09 13:51:38 -05:00
Dharini Jeeva a6e34cce5c Merge branch 'main' into feat-typed-host 2022-02-09 10:07:09 -08:00
dharini 0d8752fbea fix: 🐛 show latest address in azure and aws 2022-02-09 09:59:44 -08:00
Carlos Alcaide Corvo 46246441aa Refactor some readOnly attributes to have no type. Stop nesting plugin type fields. Refactor serializer/normalizer tests 2022-02-09 08:55:10 -08:00
Carlos Alcaide Corvo 75f75878a1 Add real payload and real expectations on host normalisation unit test 2022-02-09 08:55:10 -08:00
Carlos Alcaide Corvo 12277c5557 Move new fields attributes from host generated model to plain host model. Add normalization tests 2022-02-09 08:55:10 -08:00
Carlos Alcaide Corvo f8c4eb470f feat: 🎸 Add new fields to host
Add new fields to host and refactor field address to use no more
fragment-host-attribute-model
2022-02-09 08:55:10 -08:00
Randall Morey f0065ddc13 refactor: 💡 pull breadcrumbs fully local and remove dep 2022-02-09 11:06:26 -05:00
dharini 203a4b3a55 feat: 🎸 host typed forms 2022-02-08 19:37:21 -08:00
dharini ab84787961 Merge branch 'feat-typed-host-set' of github.com:hashicorp/boundary-ui into feat-typed-host-set 2022-02-08 17:28:26 -08:00
dharini 52d6d1c4bf fix: 🐛 remove links for now 2022-02-08 17:26:43 -08:00
Dharini Jeeva 5584577673 Merge branch 'main' into feat-typed-host-set 2022-02-08 17:01:20 -08:00
dharini 6e36c85299 Merge branch 'main' into feat-typed-host-set 2022-02-08 16:59:51 -08:00
Carlos Alcaide Corvo ee06a9c825 chore: 🤖 Refactor mirage for GET host-catalog
Refactor mirage data for GET host-catalog method.
2022-02-08 16:08:20 -08:00
Dharini Jeeva 6f8d424bed Merge pull request #942 from hashicorp/add-aws-azure-attrs
chore: host catalog form- add rest of the AWS and Azure fields
2022-02-08 16:05:44 -08:00
dharini dad3918d44 feat: 🎸 host-set: updates to fields 2022-02-08 14:51:59 -08:00
Randall Morey 932e2e7b50 docs: fix nav link titles 2022-02-08 16:56:21 -05:00
Randall Morey df071e0815 refactor: 💡 resolve legacy-attribute-arguments deprecations 2022-02-08 16:47:49 -05:00
Dharini Jeeva 168e6e8700 Merge branch 'main' into add-aws-azure-attrs 2022-02-08 13:01:30 -08:00
Randall Morey 44b5d7427a refactor: 💡 upgrade ember-radio-button to fix deprecations 2022-02-08 15:50:29 -05:00
dharini ad6baf2b3b Merge branch 'main' into feat-typed-host-set 2022-02-08 12:30:33 -08:00
dharini d108baccfc split host-set into static, aws and azure 2022-02-08 12:30:14 -08:00
Dharini Jeeva 6634d868c9 Merge pull request #940 from hashicorp/feat-typed-hc
Feat: typed host catalog form components for admin UI
2022-02-08 12:24:37 -08:00
Randall Morey a585fc7a9a chore: 🤖 satisfy argument-less-helper-paren-less-invocation 2022-02-08 14:56:54 -05:00
dharini 6872bc264a Merge branch 'add-aws-azure-attrs' into feat-typed-host 2022-02-08 11:03:20 -08:00
dharini f2ea864c0d Merge branch 'feat-typed-hc' of github.com:hashicorp/boundary-ui into feat-typed-hc 2022-02-08 10:31:15 -08:00
dharini 353a7f94ad test: 💍 update tests 2022-02-08 10:30:11 -08:00
Randall Morey 92d7380f83 chore: 🤖 clean up unused new instances 2022-02-08 13:11:08 -05:00
dharini 1b70f9acfb fix: 🐛 field names 2022-02-07 23:37:40 -08:00
dharini 2bcfb55db9 chore: 🤖 translations 2022-02-07 23:10:36 -08:00
dharini 9987888edd Merge branch 'feat-typed-hc' into add-aws-azure-attrs 2022-02-07 22:32:45 -08:00
dharini 4559c1b650 fix: 🐛 label and padding 2022-02-07 22:31:58 -08:00
dharini d0f8da1f81 add rest of the AWS and azure fields 2022-02-07 21:27:38 -08:00
dharini 00aa86cfb7 fix: 🐛 translation order 2022-02-07 20:59:27 -08:00
dharini aee519aa75 lint fic 2022-02-07 14:21:52 -08:00
dharini 14838fc87f translation label fix 2022-02-07 14:10:12 -08:00
dharini ab95378f6e fix: 🐛 radioGroup names 2022-02-07 14:04:03 -08:00
dharini 2f89d928b1 fix: 🐛 move out route-action from the components 2022-02-07 12:48:32 -08:00
dharini bf35789bd3 Merge branch 'main' into feat-typed-hc 2022-02-07 11:14:23 -08:00
dharini feb9c7aee1 Merge branch 'feat-typed-hc' of github.com:hashicorp/boundary-ui into feat-typed-hc 2022-02-07 10:32:28 -08:00
dharini a1ac704649 chore: 🤖 update names 2022-02-07 10:32:13 -08:00
Carlos Alcaide Corvo b5b527e01a Merge pull request #938 from hashicorp/feat-add-new-fields-host-set
feat: 🎸 Add new fields to host-set model
2022-02-07 10:12:19 -06:00
Carlos Alcaide Corvo e52093c6ed PR suggestions applied 2022-02-04 09:26:26 -08:00
Carlos Alcaide Corvo 4f14891c84 Add new fields to mirage 2022-02-03 14:31:21 -08:00
Dharini Jeeva d62a8afd3b Update create-test.js 2022-02-03 13:48:29 -08:00
dharini 4c1e090619 Merge branch 'feat-typed-hc' of github.com:hashicorp/boundary-ui into feat-typed-hc 2022-02-03 13:47:00 -08:00
dharini 7dd96334c3 Merge branch 'feat-host-catalog-integration' into feat-typed-hc 2022-02-03 13:45:12 -08:00
dharini cbda678a65 Merge branch 'main' into feat-host-catalog-integration 2022-02-03 13:44:43 -08:00
Dharini Jeeva c1eaed32bd Merge branch 'main' into feat-typed-hc 2022-02-03 13:41:16 -08:00
Carlos Alcaide Corvo 5e12566a65 Refactor tests 2022-02-03 11:27:08 -08:00
Carlos Alcaide Corvo 5e918cdddc Add all the new fields. Refactor serializer to fit new changes. Work in progress with normalize 2022-02-03 11:27:08 -08:00
Carlos Alcaide Corvo f64f6bfd05 feat: 🎸 Add new fields to host-set model
Add new fields to host-set model
2022-02-03 11:27:08 -08:00
dharini 8f11f2536b chore: 🤖 remove helper text, fix test 2022-02-03 10:38:10 -08:00
Randall Morey de58328125 Merge pull request #939 from hashicorp/chore-disable-non-static-host-navigation
Disable non-static hosts navigation
2022-02-03 10:27:39 -05:00
Randall Morey b4693b821e Merge branch 'main' into chore-disable-non-static-host-navigation 2022-02-03 08:42:03 -05:00
dharini 323945d760 names 2022-02-02 18:14:02 -08:00
dharini 2aa1142034 Merge branch 'feat-typed-hc' of github.com:hashicorp/boundary-ui into feat-typed-hc 2022-02-02 18:13:42 -08:00
dharini b3bde173ba add missing translations 2022-02-02 18:11:01 -08:00
Dharini Jeeva 3fbb9e8847 Merge branch 'main' into feat-typed-hc 2022-02-02 17:44:22 -08:00
dharini aa51b62134 fix: 🐛 host catalog creation tests 2022-02-02 17:39:22 -08:00
dharini aed6efe565 add translations 2022-02-02 14:39:08 -08:00
Randall Morey dd1d211d41 chore: 🤖 disallow catalog -> host list for dynamic catalogs 2022-02-02 17:38:57 -05:00
Randall Morey a7bf8008a7 chore: 🤖 more realistic mock grants for dynamic host catalogs 2022-02-02 17:04:09 -05:00
dharini bd5a7c0aa9 pull from int branch 2022-02-02 12:09:13 -08:00
dharini 096b7ea142 remove unused file, lint 2022-02-02 11:05:48 -08:00
Susmitha Girumala f7a2dd14e3 chore: Integrate compositetypes into route 2022-02-01 22:35:00 -05:00
Susmitha Girumala 137f4ee3c8 Merge remote-tracking branch 'origin/feat-typed-hc' into feat-host-catalog-integration 2022-02-01 21:17:28 -05:00
dharini 55acdc76b6 move up component logic 2022-02-01 11:12:33 -08:00
Carlos Alcaide Corvo 29ddca21b8 Merge pull request #936 from hashicorp/chore-add-shelljs-to-resolutions
chore: 🤖 Add shelljs to resolutions
2022-01-31 15:23:37 -06:00
dharini fdef23de89 rebase main 2022-01-31 13:16:03 -08:00
Carlos Alcaide Corvo 1c9e77938e Merge branch 'main' into chore-add-shelljs-to-resolutions 2022-01-31 15:09:31 -06:00
Carlos Alcaide Corvo 8894617709 Merge pull request #935 from hashicorp/chore-add-node-fetch-desktop-resolutions
chore: 🤖 Add node-fetch desktop resolutions
2022-01-31 15:04:05 -06:00
Carlos Alcaide Corvo 645af9502d Merge branch 'main' into chore-add-node-fetch-desktop-resolutions 2022-01-31 14:44:40 -06:00
Carlos Alcaide Corvo cc1dcc5b5b Merge pull request #934 from hashicorp/chore-add-node-fetch-to-resolutions
chore: 🤖 Add node-fetch to resolutions for security vul
2022-01-31 14:44:30 -06:00
Carlos Alcaide Corvo 20b76f5afe Merge branch 'main' into chore-add-node-fetch-to-resolutions 2022-01-31 14:28:08 -06:00
Carlos Alcaide Corvo 70949a4cd9 Merge pull request #933 from hashicorp/fix-babel-plugin-ember-unmet-peer-dep
fix: 🐛 Fix babel plugin unmet peer dependency in Rose
2022-01-31 14:27:54 -06:00
Carlos Alcaide Corvo 99ba4f59c0 Merge branch 'main' into fix-babel-plugin-ember-unmet-peer-dep 2022-01-31 14:13:08 -06:00
Carlos Alcaide Corvo d5911ec942 Merge pull request #932 from hashicorp/chore-add-translations-to-badges-type
chore: 🤖 Add translations to host set and host type
2022-01-31 14:12:56 -06:00
dharini 73566b0583 show provider info when dynamic is selected 2022-01-31 12:01:52 -08:00
dharini 1e80414b32 unknown type 2022-01-31 12:01:23 -08:00
dharini 043b760cd6 more updates 2022-01-31 11:59:32 -08:00
dharini ce633ec0c0 typed host catalog init 2022-01-31 11:56:00 -08:00
dharini 19f48b2ca3 show provider info when dynamic is selected 2022-01-31 11:41:35 -08:00
dharini 36eab2e0f1 unknown type 2022-01-31 11:41:15 -08:00
dharini 0577cdec76 more updates 2022-01-31 11:40:56 -08:00
Susmitha Girumala 67c4440a90 fix: Reflect catalog type in creation url 2022-01-31 11:39:54 -08:00
Susmitha Girumala b2b2f63bf3 feat: Add missing queryParam to hostcatalog create controller 2022-01-31 11:39:28 -08:00
Susmitha Girumala 2de2a79e7c fix: Protect catalog type selectors in edit mode 2022-01-31 11:39:26 -08:00
Susmitha Girumala 46b6c51f5d feat: Question on default host catalog type value 2022-01-31 11:38:58 -08:00
Susmitha Girumala cc56fb9636 feat: Trigger update to host catalog type 2022-01-31 11:38:58 -08:00
Susmitha Girumala c1d71e5166 feat: Add type param support to creation form of host catalog 2022-01-31 11:38:55 -08:00
dharini d595b6c899 further updates 2022-01-31 11:38:07 -08:00
dharini e0f569229b static form with radioCards 2022-01-31 11:38:05 -08:00
dharini f13a3ee18c split host catalog into other types 2022-01-31 11:37:38 -08:00
dharini feec5d96f3 typed host catalog init 2022-01-31 11:37:38 -08:00
dharini 99cb449ff7 Merge branch 'main' into feat-host-catalog-integration 2022-01-31 11:27:50 -08:00
Carlos Alcaide Corvo 896b45910e Merge branch 'main' into chore-add-translations-to-badges-type 2022-01-31 13:19:14 -06:00
Randall Morey a8202081e9 Merge pull request #937 from hashicorp/refactor-abilities
Unify model and collection abilities
2022-01-31 14:14:54 -05:00
Randall Morey 2bb63c3775 refactor: 💡 merge model and collection abilities 2022-01-31 12:02:37 -05:00
Randall Morey 9e74c137b7 refactor: 💡 remove capabilities feature flag 2022-01-31 10:40:16 -05:00
Carlos Alcaide Corvo 40ee7c56d4 chore: 🤖 Add shelljs to resolutions
Add shelljs to resolutions to avoid security vulnerability
2022-01-28 16:11:01 -08:00
Carlos Alcaide Corvo e0653c559b chore: 🤖 Add node-fetch desktop resolutions
Add node-fetch desktop resolutions to avoid security vulnerability.
2022-01-28 15:46:19 -08:00
Carlos Alcaide Corvo ed5ac46329 chore: 🤖 Add node-fetch to resolutions for security vul
Add node-fetch to resolutions to avoid security vulnerability
2022-01-28 15:27:51 -08:00
Carlos Alcaide Corvo 2bf38b1257 fix: 🐛 Fix babel plugin unmet peer dependency in Rose
Fix babel plugin unmet peer dependency in Rose
2022-01-28 15:16:02 -08:00
Carlos Alcaide Corvo b96e998fc9 chore: 🤖 Add translations to host set and host type 2022-01-28 14:47:42 -08:00
Carlos Alcaide Corvo 78bff7f0d8 Merge pull request #931 from hashicorp/feat-add-type-badges-host
feat: 🎸 Add type badges to host
2022-01-28 16:47:03 -06:00
Carlos Alcaide Corvo ff9a7b3969 Merge branch 'main' into feat-add-type-badges-host 2022-01-28 15:40:14 -06:00
Carlos Alcaide Corvo a43065ec1c Merge pull request #928 from hashicorp/feature-add-host-type-basic-support
feat: 🎸 Add host type basic support
2022-01-28 15:25:20 -06:00
Dharini Jeeva c5ced9f36f Merge branch 'main' into feature-add-host-type-basic-support 2022-01-28 08:47:53 -08:00
Randall Morey cd71c53ff2 Merge pull request #929 from hashicorp/chore-unknown-type
Add support for "unknown" dynamic host catalogs
2022-01-28 11:46:34 -05:00
Carlos Alcaide Corvo 8c47612977 feat: 🎸 Add type badges to host
Add type badges to host
2022-01-27 12:35:04 -08:00
Carlos Alcaide Corvo e150b15f00 Add default value for type in mirage 2022-01-27 11:36:29 -08:00
Carlos Alcaide Corvo 10806da5c2 Merge branch 'main' into chore-unknown-type 2022-01-27 12:59:00 -06:00
dharini cbf5cc44f6 Merge remote-tracking branch 'origin/create-host-catalog-supports-static-catalog' into feat-host-catalog-integration 2022-01-27 10:37:31 -08:00
Carlos Alcaide Corvo da1056d222 Refactor host model comments 2022-01-27 10:17:34 -08:00
Carlos Alcaide Corvo 6ad42a5eaa Move plugin field generation from generated to a factory 2022-01-27 10:17:34 -08:00
Carlos Alcaide Corvo bb9d99eefb Add mirage support 2022-01-27 10:17:34 -08:00
Carlos Alcaide Corvo 929b020cf7 feat: 🎸 Add host type basic support 2022-01-27 10:17:34 -08:00
Carlos Alcaide Corvo d269d27e2c Merge pull request #927 from hashicorp/feature-add-type-badges-host-set
feat: 🎸 Add type badges for host-set
2022-01-27 12:04:06 -06:00
Carlos Alcaide Corvo 056bd8666c Merge branch 'main' into feature-add-type-badges-host-set 2022-01-27 11:49:33 -06:00
Carlos Alcaide Corvo 5e25ee1368 Merge pull request #925 from hashicorp/feature-add-host-set-type-basic-support
feat: 🎸 Add basic type support for host-set
2022-01-27 11:31:32 -06:00
Carlos Alcaide Corvo b3675ec0f0 Merge branch 'main' into feature-add-host-set-type-basic-support 2022-01-27 11:20:41 -06:00
Dharini Jeeva f74e2a6e2c Merge pull request #924 from hashicorp/add-radioCard-support
feat:  add radiocard support to group
2022-01-27 08:58:14 -08:00
Randall Morey a011278c41 chore: 🤖 tweak storybook names and fix word breaking 2022-01-27 10:03:17 -05:00
Dharini Jeeva f9e3656ce9 Update _radio-card.scss 2022-01-26 16:19:51 -08:00
Dharini Jeeva bfd0b32cb3 Update _radio-card.scss 2022-01-26 16:19:21 -08:00
Dharini Jeeva f454ef988f Update _radio-card.scss 2022-01-26 15:51:05 -08:00
dharini 27582e7c19 needs more bottom margin when used in CRUD forms 2022-01-26 15:28:16 -08:00
Carlos Alcaide Corvo e7cf4c99a5 Refactor type in host-set factory 2022-01-26 14:41:39 -08:00
dharini bb0eacb108 border-color change 2022-01-26 13:55:19 -08:00
Carlos Alcaide Corvo 92b4dccf78 Default state for type, then if there is host-catalog as parent, inherit its type 2022-01-26 13:42:58 -08:00
dharini 87bb8e3e39 add margin bottom 2022-01-26 13:38:31 -08:00
dharini f28f113509 fix: 🐛 adjust margin 2022-01-26 13:27:47 -08:00
Carlos Alcaide Corvo f0b2152130 Inherit type from host-catalog 2022-01-26 12:34:31 -08:00
Carlos Alcaide Corvo cbc732e9dd Move mirage plugin field to a factory. Now plugin inherits from host-catalog 2022-01-26 12:30:21 -08:00
dharini 36375ae0be fix: 🐛 remove wrapper and make card always inline 2022-01-26 11:43:30 -08:00
Randall Morey 6f0d5fd338 chore: 🤖 disallow read on unknown catalogs 2022-01-26 13:27:25 -05:00
Carlos Alcaide Corvo 676c3e0ad0 Type gets inherit from host-catalog 2022-01-26 10:11:25 -08:00
Randall Morey 6e77ea655f chore: 🤖 add support for "unknown" dynamic host catalogs 2022-01-26 13:03:21 -05:00
dharini 005690f838 Merge branch 'add-radioCard-support' of github.com:hashicorp/boundary-ui into add-radioCard-support 2022-01-26 09:36:57 -08:00
Dharini Jeeva f1b053871d Merge branch 'main' into add-radioCard-support 2022-01-26 09:36:46 -08:00
dharini 8de98a55f8 Merge branch 'main' into add-radioCard-support 2022-01-26 09:36:33 -08:00
Carlos Alcaide Corvo 3c794dfa4b feat: 🎸 Add type badges for host-set
Add type badges for host-set
2022-01-26 08:26:32 -08:00
Carlos Alcaide Corvo 995c79804a Add random type values in mirage 2022-01-26 08:02:54 -08:00
Carlos Alcaide Corvo 26887b3cfe feat: 🎸 Add basic type support for host-set
Add basic type support for host-set
2022-01-26 08:02:54 -08:00
Susmitha Girumala 07b2c646b1 feat: Question on default host catalog type value 2022-01-26 10:56:38 -05:00
Susmitha Girumala 9255d6dd98 feat: Trigger update to host catalog type 2022-01-26 10:49:48 -05:00
Susmitha Girumala 6a8bbcad9d feat: Add type param support to creation form of host catalog 2022-01-26 10:49:48 -05:00
Susmitha Girumala a380bccbf1 Merge pull request #907 from hashicorp/feat-create-radio-card-component
Feat: create radio card component
2022-01-26 10:27:57 -05:00
dharini de4955eb60 fix: 🐛 add radiocard support to group 2022-01-25 16:12:03 -08:00
Carlos Alcaide Corvo 7b3c39d275 Merge branch 'main' into feat-create-radio-card-component 2022-01-25 17:25:41 -06:00
Randall Morey 9add540104 Merge pull request #918 from hashicorp/refactor-credentials-render-template
Remove renderTemplate usage from credential stores & libraries resources
2022-01-25 18:19:11 -05:00
Dharini Jeeva eafb21ddb9 Merge branch 'main' into refactor-credentials-render-template 2022-01-25 13:48:21 -08:00
Dharini Jeeva 45dc7c0b52 Merge branch 'main' into feat-create-radio-card-component 2022-01-25 13:47:37 -08:00
dharini 02c3fadfdd Merge branch 'feat-create-radio-card-component' of github.com:hashicorp/boundary-ui into feat-create-radio-card-component 2022-01-25 13:47:21 -08:00
dharini d1b8318dbe fix: 🐛 border-radius, error state, vertically align radiobtn 2022-01-25 13:47:12 -08:00
Carlos Alcaide Corvo 04c8d7d10d Merge pull request #919 from hashicorp/chore-add-follow-redirects-resolutions
chore: 🤖 Add follow-redirects to resolutions
2022-01-25 15:44:09 -06:00
Carlos Alcaide Corvo a7ef430ccd Merge branch 'main' into chore-add-follow-redirects-resolutions 2022-01-25 15:09:14 -06:00
Randall Morey b178e6cec8 Merge branch 'main' into refactor-credentials-render-template 2022-01-25 15:47:26 -05:00
Randall Morey 8e8292ecfb Merge pull request #917 from hashicorp/refactor-groups-render-template
Remove renderTemplate usage from groups resource
2022-01-25 15:47:16 -05:00
Randall Morey 285e1b0fe4 Merge branch 'main' into refactor-groups-render-template 2022-01-25 15:25:14 -05:00
Randall Morey 798f9a7430 Merge pull request #916 from hashicorp/refactor-roles-render-template
Remove renderTemplate usage from roles resource
2022-01-25 15:25:03 -05:00
Randall Morey 274fd96541 Merge branch 'main' into chore-add-follow-redirects-resolutions 2022-01-25 14:32:56 -05:00
Randall Morey e665d61071 Merge branch 'main' into feat-create-radio-card-component 2022-01-25 14:29:48 -05:00
Randall Morey 75fcdc1f93 Merge branch 'main' into refactor-credentials-render-template 2022-01-25 14:27:39 -05:00
Randall Morey 14dc77b546 Merge branch 'main' into refactor-groups-render-template 2022-01-25 14:27:29 -05:00
Randall Morey 10503450e2 Merge branch 'main' into refactor-roles-render-template 2022-01-25 14:27:15 -05:00
Carlos Alcaide Corvo b5ce0843ec Merge pull request #922 from hashicorp/revert-915-chore-update-ember-cli-htmlbars
Revert "chore: 🤖 Update ember cli htmlbars"
2022-01-25 13:22:31 -06:00
Carlos Alcaide Corvo 979acfdcda Revert "chore: 🤖 Update ember cli htmlbars" 2022-01-25 10:57:46 -08:00
Dharini Jeeva 0255e651d3 Merge branch 'main' into feat-create-radio-card-component 2022-01-25 10:14:24 -08:00
dharini a04b9d90dd fix: 🐛 refactor 2022-01-25 10:13:34 -08:00
Dharini Jeeva 3b3e2c21e2 Merge branch 'main' into refactor-credentials-render-template 2022-01-25 09:27:15 -08:00
Dharini Jeeva 54e31c10a3 Merge branch 'main' into refactor-groups-render-template 2022-01-25 09:25:19 -08:00
Dharini Jeeva 54205e010e Merge branch 'main' into refactor-roles-render-template 2022-01-25 09:24:47 -08:00
Carlos Alcaide Corvo 7a3fe9d74f Merge branch 'main' into chore-add-follow-redirects-resolutions 2022-01-25 10:43:25 -06:00
Carlos Alcaide Corvo d68a465d8f Merge pull request #915 from hashicorp/chore-update-ember-cli-htmlbars
chore: 🤖 Update ember cli htmlbars
2022-01-25 10:28:05 -06:00
Carlos Alcaide Corvo a0a8aae139 chore: 🤖 Add follow-redirects to resoltuions
Add follow-redirect to resolutions to avoid security vulnerability
2022-01-25 08:22:26 -08:00
Randall Morey ef018aac59 refactor: 💡 remove renderTemplate usage from creds resources 2022-01-25 10:18:10 -05:00
Randall Morey 2febf3ac3c refactor: 💡 remove renderTemplate usage from groups resource 2022-01-25 09:40:30 -05:00
Randall Morey 41b3a99617 refactor: 💡 remove renderTemplate usage from roles resource 2022-01-25 09:13:09 -05:00
dharini c8ae0de083 Merge branch 'feat-create-radio-card-component' of github.com:hashicorp/boundary-ui into feat-create-radio-card-component 2022-01-24 16:55:19 -08:00
dharini 7b2acf162d fix: 🐛 updates 2022-01-24 16:54:45 -08:00
Dharini Jeeva 5544f87cc2 Update _radio-card.scss 2022-01-24 16:01:48 -08:00
dharini 9806415030 Merge branch 'feat-create-radio-card-component' of github.com:hashicorp/boundary-ui into feat-create-radio-card-component 2022-01-24 15:44:03 -08:00
dharini ff514b076b fix: 🐛 sizing var consistency 2022-01-24 15:43:44 -08:00
Carlos Alcaide Corvo b5e5b9164f Merge branch 'main' into chore-update-ember-cli-htmlbars 2022-01-24 17:07:14 -06:00
Carlos Alcaide Corvo 01ac40228d Merge branch 'main' into feat-create-radio-card-component 2022-01-24 15:38:30 -06:00
Carlos Alcaide Corvo bc9526f008 Merge pull request #913 from hashicorp/feature-add-new-fields-host-catalog
feat: 🎸 Add fields to host-catalog model
2022-01-24 15:36:35 -06:00
Carlos Alcaide Corvo ffb00c708f Refactor mirage factory. Rephrase test description. Refactor some tests to not test secret fields 2022-01-24 10:01:17 -08:00
dharini bd7834ca81 fix: 🐛 name 2022-01-23 22:28:20 -08:00
dharini e374213553 refactor: 💡 refactor component layouts 2022-01-23 21:13:00 -08:00
Carlos Alcaide Corvo 12bb8203c2 Change mirage attributes to factory 2022-01-21 14:45:21 -08:00
Carlos Alcaide Corvo af291d279d chore: 🤖 Update ember cli htmlbars
Update ember-cli-htmlbars
2022-01-21 13:41:32 -08:00
Carlos Alcaide Corvo 614be72a6e Add isNestedSecret option to model, add secrets field to model, add isNestedSecert serialization. Change tests to the last changes 2022-01-21 12:55:04 -08:00
Randall Morey 712607cb0c fix: variable name 2022-01-21 15:26:27 -05:00
Randall Morey 44ea5e329b chore: always delete nested secrets from main payload 2022-01-21 15:24:38 -05:00
Randall Morey cd02f6aec3 chore: add isNestedSecret support 2022-01-21 15:22:59 -05:00
Carlos Alcaide Corvo 6eccb0ea6c Simplified tests code 2022-01-21 10:05:04 -08:00
Carlos Alcaide Corvo cc07df5806 Delete old comment 2022-01-21 09:57:58 -08:00
Carlos Alcaide Corvo 72dcd0d3ae Fix unit test for azure host-catalog plugin 2022-01-21 09:57:36 -08:00
Carlos Alcaide Corvo bab8c8ea44 Add update tests for serializer 2022-01-21 09:49:48 -08:00
Randall Morey d8aaddfcca chore: convert writeOnce to writeOnly 2022-01-21 12:43:45 -05:00
dharini dd8cb5a77e fix: 🐛 add helpertext in storybook component 2022-01-20 16:29:17 -08:00
dharini 2cc0e735fb Merge branch 'feat-create-radio-card-component' of github.com:hashicorp/boundary-ui into feat-create-radio-card-component 2022-01-20 16:08:05 -08:00
dharini b85a4dd719 fix: 🐛 lint 2022-01-20 16:07:48 -08:00
Dharini Jeeva afdec9a6ed Merge branch 'main' into feat-create-radio-card-component 2022-01-20 15:58:35 -08:00
dharini 823066e6b4 refactor: 💡 use standard color, helpers for size, space 2022-01-20 15:38:53 -08:00
Randall Morey cd60c0bbc3 chore: add writeOnce field support 2022-01-20 17:20:24 -05:00
Randall Morey 1889dd0090 chore: tweak dynamic fields serialization 2022-01-20 16:47:46 -05:00
Carlos Alcaide Corvo 10c364264c Merge branch 'main' into feature-add-new-fields-host-catalog 2022-01-20 15:06:38 -06:00
Carlos Alcaide Corvo 9558f2e480 Modify serializer test to not test field exclusion. Add to mirage more host-catalogs. Add to mirage new fields per host-catalog 2022-01-20 12:55:31 -08:00
Randall Morey f6e5f5d9e7 Merge pull request #912 from hashicorp/chore-update-ember-cli
chore: 🤖 Update ember-cli to 4.1
2022-01-20 14:21:09 -05:00
Randall Morey c0ba8bfae3 chore: manual merge from main 2022-01-20 14:05:37 -05:00
Randall Morey 6b0a1d6e2f Merge pull request #911 from hashicorp/fix-jest-unmet-peer-dependency
fix: 🐛 Fix jest unmet peer dependency
2022-01-20 13:38:58 -05:00
Randall Morey f2934472c8 Merge branch 'main' into fix-jest-unmet-peer-dependency 2022-01-20 11:45:27 -05:00
Carlos Alcaide Corvo cd96313857 feat: 🎸 Add fields to host-catalog model
Add new fields to host-catalog model for plugin type host-catalog.
Fields are corresponding to Azure and Aws plugins.
2022-01-20 08:35:41 -08:00
Randall Morey fdc69b8a25 Merge pull request #905 from hashicorp/refactor-render-template-auth-methods
Refactor auth methods usage of renderTemplate
2022-01-20 10:52:05 -05:00
Randall Morey 2595ea7f2e Merge branch 'main' into refactor-render-template-auth-methods 2022-01-20 10:37:55 -05:00
Randall Morey 2973d7ee11 Merge pull request #904 from hashicorp/refactor-render-template-users
Refactor user usage of renderTemplate
2022-01-20 10:37:43 -05:00
Susmitha Girumala b6386ddbee Merge branch 'main' into refactor-render-template-users 2022-01-20 09:33:38 -05:00
Susmitha Girumala 21820dda9b Merge pull request #901 from hashicorp/feat-radio-helper-text
Feat: Add support for helper text to radios
2022-01-20 09:33:15 -05:00
dharini 521250b6cb fix: 🐛 color label 2022-01-19 16:13:30 -08:00
Dharini Jeeva 0177c8bc0a Merge branch 'main' into feat-create-radio-card-component 2022-01-19 15:33:02 -08:00
dharini 2738dcfef3 fix: 🐛 lint 2022-01-19 14:17:23 -08:00
Carlos Alcaide Corvo 2db364feb7 Merge branch 'main' into chore-update-ember-cli 2022-01-19 16:01:56 -06:00
Carlos Alcaide Corvo efb5c9111b Merge branch 'main' into fix-jest-unmet-peer-dependency 2022-01-19 16:01:42 -06:00
dharini f0becdcdc4 refactor: 💡 use scss variables 2022-01-19 13:44:25 -08:00
Dharini Jeeva e6928fe66f Merge branch 'main' into feat-radio-helper-text 2022-01-19 11:23:46 -08:00
dharini 537d8f107f fix: 🐛 vertical layout shift 2022-01-19 11:08:50 -08:00
Randall Morey 305d5e6825 Merge pull request #910 from hashicorp/feature-nested-attributes
Support nested attributes with no dependencies
2022-01-19 12:26:52 -05:00
Randall Morey 121129ffd2 fix: 🐛 include nulls 2022-01-19 12:16:57 -05:00
Carlos Alcaide Corvo 1fd6c8a27e Merge branch 'main' into feature-nested-attributes 2022-01-19 10:11:39 -06:00
Dharini Jeeva 6ad1691750 Update _radioCard.scss 2022-01-18 16:13:00 -08:00
Dharini Jeeva ecf460d89b Update index.hbs 2022-01-18 16:12:36 -08:00
dharini b1ec40d72a refactor: 💡 updates to css 2022-01-18 15:57:59 -08:00
Carlos Alcaide Corvo 506ca35ba1 chore: 🤖 Update ember-cli to 4.0
Update ember-cli to 4.0
2022-01-18 14:58:24 -08:00
Carlos Alcaide Corvo 2ee68136f7 Merge branch 'main' into fix-jest-unmet-peer-dependency 2022-01-18 16:11:07 -06:00
Carlos Alcaide Corvo 4a178fd300 Merge pull request #909 from hashicorp/fix-storybook-theming-unmet-peer-dependency
fix: 🐛 Fix storybook theming unmet peer dependency
2022-01-18 16:10:45 -06:00
Carlos Alcaide Corvo baf742c980 Merge branch 'main' into feature-nested-attributes 2022-01-18 16:10:02 -06:00
Carlos Alcaide Corvo 0717df8f27 Merge branch 'main' into fix-storybook-theming-unmet-peer-dependency 2022-01-18 15:35:08 -06:00
Carlos Alcaide Corvo 279848439a Merge pull request #908 from hashicorp/bug-fix-unmet-peer-dependency
fix: 🐛 Fix unmet peer dependency
2022-01-18 15:34:29 -06:00
Carlos Alcaide Corvo 4b30eefd94 fix: 🐛 Fix jest unmet peer dependency
Fix jest unmet peer dependency
2022-01-18 11:57:27 -08:00
dharini bda7c7c88e add separate story files 2022-01-18 11:35:53 -08:00
Randall Morey d70ff06891 chore: 🤖 add support for nested attributes errors 2022-01-18 14:32:03 -05:00
Carlos Alcaide Corvo d332a21266 fix: 🐛 Fix storybook theming unmet peer dependency
Fix storybook theming unmet peer dependency
2022-01-18 11:30:22 -08:00
dharini 299c1cdd06 Merge branch 'feat-create-radio-card-component' of github.com:hashicorp/boundary-ui into feat-create-radio-card-component 2022-01-18 11:11:24 -08:00
dharini 4837cb353e fix: 🐛 lint 2022-01-18 11:10:38 -08:00
Carlos Alcaide Corvo 66df38d81d fix: 🐛 Fix unmet peer dependency
Fix unmeet peer dependency for @storybook/core-events
2022-01-18 10:48:54 -08:00
Dharini Jeeva 70f8080837 Merge branch 'main' into feat-create-radio-card-component 2022-01-18 10:44:56 -08:00
Randall Morey ac14e8786d feat: 🎸 support isNestedAttribute in models 2022-01-18 13:44:27 -05:00
dharini 7b5070115e lint again 2022-01-18 10:32:52 -08:00
dharini 0fcd55ef41 fix: 🐛 lint 2022-01-18 10:19:45 -08:00
dharini 5c4d7e29fd feat: 🎸 add tile and wide radiocard field 2022-01-18 09:49:18 -08:00
dharini 172c9dde69 add tile and wider radiocard 2022-01-18 00:00:12 -08:00
dharini e3c2452199 Merge branch 'feat-radio-helper-text' of github.com:hashicorp/boundary-ui into feat-radio-helper-text 2022-01-16 18:50:54 -08:00
dharini a3fd2ff03c fix: 🐛 use button lineheight 2022-01-16 18:50:43 -08:00
Dharini Jeeva 06684a7da2 Merge branch 'main' into feat-radio-helper-text 2022-01-16 18:08:56 -08:00
dharini 2c1cdf6c9c Merge branch 'feat-radio-helper-text' of github.com:hashicorp/boundary-ui into feat-radio-helper-text
:wq
:wq especially if it merges an updated upstream into a topic branch.
2022-01-16 18:07:06 -08:00
dharini c571dc23e0 fix: 🐛 remove classname 2022-01-16 18:06:43 -08:00
dharini bf09c9b0b8 more updates 2022-01-16 16:37:55 -08:00
Carlos Alcaide Corvo ec8a55be31 Merge pull request #903 from hashicorp/chore-update-flight-icons
chore: 🤖 Update flight icons to 2.0
2022-01-14 17:06:53 -06:00
Carlos Alcaide Corvo 8a641cd6b7 Merge branch 'main' into chore-update-flight-icons 2022-01-14 16:58:17 -06:00
Randall Morey cd30e05e2e refactor: 💡 replace renderTemplate with components 2022-01-14 16:56:59 -05:00
Dharini Jeeva 66ef638086 Merge branch 'main' into feat-radio-helper-text 2022-01-14 13:48:16 -08:00
Carlos Alcaide Corvo 57d6be8b84 Merge pull request #900 from hashicorp/feature-add-host-catalog-type-support
feat: 🎸 Add host catalog type basic support
2022-01-14 15:44:33 -06:00
Carlos Alcaide Corvo d2e914cba9 Fix lint errors 2022-01-14 13:32:38 -08:00
Carlos Alcaide Corvo 949560826e Merge branch 'main' into feature-add-host-catalog-type-support 2022-01-14 15:28:40 -06:00
Carlos Alcaide Corvo df673ad29b Use compositeType properly on tests 2022-01-14 13:28:13 -08:00
Carlos Alcaide CorvoandRandall Morey 8007762bd1 Update addons/api/mirage/generated/factories/host-catalog.js
Co-authored-by: Randall Morey <randall@hashicorp.com>
2022-01-14 15:15:13 -06:00
Carlos Alcaide CorvoandRandall Morey bdc9dacdce Update addons/api/mirage/generated/factories/host-catalog.js
Co-authored-by: Randall Morey <randall@hashicorp.com>
2022-01-14 15:15:08 -06:00
Carlos Alcaide Corvo cc20e5a076 Use compositeType in isAws and isAzure 2022-01-14 13:14:50 -08:00
Randall Morey 0d1dfb23b2 refactor: 💡 replace renderTemplate with components 2022-01-14 15:09:15 -05:00
Dharini Jeeva 76bc6833a1 Merge pull request #902 from hashicorp/migrate-class-to-comp-property
updates to rose radio component
2022-01-14 11:25:55 -08:00
Carlos Alcaide Corvo d6b01e8308 chore: 🤖 Update flight icons to 2.0
Update flight icons to 2.0
2022-01-14 08:21:25 -08:00
Carlos Alcaide Corvo 4c0cc5375b Add set compositeType. Add tests for get and set compositeType 2022-01-13 18:31:17 -08:00
dharini c807af02f4 add padding to label and align it 2022-01-13 14:19:43 -08:00
dharini 1a48bb180f Merge branch 'feat-radio-helper-text' of github.com:hashicorp/boundary-ui into feat-radio-helper-text 2022-01-13 13:43:45 -08:00
dharini 403880107d style: 💄 updates to helper text 2022-01-13 13:43:24 -08:00
Carlos Alcaide Corvo 2d263734d8 Delete unnecesary return 2022-01-13 13:22:09 -08:00
Dharini Jeeva 9821f1ffc7 Delete _radioCard.scss 2022-01-13 12:01:17 -08:00
dharini 6d83163951 fix: 🐛 clean up specificity, lineheight 2022-01-13 10:53:56 -08:00
dharini af9bb1c618 updates to card style 2022-01-13 09:06:09 -08:00
dharini 03b8e2875f feat: 🎸 merge recent main 2022-01-12 15:44:07 -08:00
Carlos Alcaide Corvo b3c49c43ea feat: 🎸 Add basic type support for host catalog 2022-01-12 15:34:12 -08:00
dharini c239830765 fix: 🐛 lint 2022-01-12 15:21:06 -08:00
dharini eeb74d8437 chore: 🤖 updates 2022-01-12 15:12:25 -08:00
dharini 95bad02ce6 fix: 🐛 class name 2022-01-12 14:31:45 -08:00
Dharini Jeeva f84752aa9c Merge branch 'main' into feat-radio-helper-text 2022-01-12 13:50:48 -08:00
dharini e2578a4577 updates 2022-01-12 13:37:14 -08:00
Carlos Alcaide Corvo eb36be3688 feat: 🎸 Add host catalog type basic support
Add host catalog type basic support. Delete previous conditional
rendering to just render static types
2022-01-11 15:34:22 -08:00
dharini 95c2f4a74d feat: 🎸 add support for helper text to radio component 2022-01-11 14:24:22 -08:00
Randall Morey ff9c659ada Merge pull request #899 from hashicorp/chore-update-render-modifiers
chore: 🤖 Update ember render modifiers
2022-01-11 14:02:51 -05:00
Randall Morey d9564f5f89 Merge branch 'main' into chore-update-render-modifiers 2022-01-11 13:35:54 -05:00
Randall Morey 942cb82921 Merge pull request #896 from hashicorp/refactor-render-targets
Refactor render targets
2022-01-11 13:35:45 -05:00
Carlos Alcaide Corvo 9918d20838 Merge branch 'main' into chore-update-render-modifiers 2022-01-11 11:10:57 -06:00
Carlos Alcaide Corvo b1ea3af02a chore: 🤖 Update ember render modifiers
Update Ember render modifiers
2022-01-11 09:09:16 -08:00
Randall Morey 660218220f Merge branch 'main' into refactor-render-targets 2022-01-11 11:58:21 -05:00
Randall Morey cf2326140e Merge pull request #898 from hashicorp/chore-node-version
chore: 🤖 specify only LTS node versions in packages
2022-01-11 11:57:59 -05:00
Randall Morey 9df6b56ae9 chore: 🤖 specify only LTS node versions in packages 2022-01-10 11:27:00 -05:00
dharini 9e09be0e5f radio-helper text init 2022-01-07 15:34:06 -08:00
Susmitha Girumala e0bc36a376 Merge branch 'main' into refactor-render-targets 2022-01-07 12:59:28 -05:00
Susmitha Girumala fd770b7a25 Merge pull request #893 from hashicorp/refactor-render-template
refactor: 💡 remove deprecated renderTemplate usage in desktop
2022-01-07 12:59:16 -05:00
Susmitha Girumala 0bdc5e6f2f Merge branch 'main' into refactor-render-template 2022-01-07 12:48:58 -05:00
Susmitha Girumala a4d39d465d Merge pull request #892 from hashicorp/refactor-router-events
refactor: 💡 refactor due to router events deprecations
2022-01-07 12:48:45 -05:00
Susmitha Girumala 5541c7bf1f Merge branch 'main' into refactor-router-events 2022-01-07 12:34:51 -05:00
Dharini Jeeva f888e6eb03 Merge pull request #897 from hashicorp/feat-helpr-txt-support-inp-txtarea
Feat: Add support for helper links to inputs, and textareas
2022-01-07 09:25:59 -08:00
Susmitha Girumala 7a95600456 Merge branch 'main' into refactor-router-events 2022-01-07 12:15:08 -05:00
Dharini Jeeva 2a41ed1153 Merge branch 'main' into feat-helpr-txt-support-inp-txtarea 2022-01-07 09:09:08 -08:00
Dharini Jeeva 6226464ffc Merge pull request #895 from hashicorp/feat-helper-text
Feat: add link support to helper text component
2022-01-07 09:07:34 -08:00
dharini e8c491cf95 Merge branch 'feat-helpr-txt-support-inp-txtarea' of github.com:hashicorp/boundary-ui into feat-helpr-txt-support-inp-txtarea 2022-01-06 10:59:04 -08:00
dharini b6721152b2 fix: 🐛 lint 2022-01-06 10:58:39 -08:00
dharini 22700688b6 feat: 🎸 show a tag only if href and link are present 2022-01-06 10:42:06 -08:00
Dharini Jeeva 97d6384115 Merge branch 'main' into feat-helper-text 2022-01-05 11:45:08 -08:00
Dharini Jeeva a0a75e1e42 Update index.stories.mdx 2022-01-05 11:44:58 -08:00
Dharini Jeeva 6a140b5d21 Update index.stories.mdx 2022-01-05 11:37:24 -08:00
Dharini Jeeva f5f0916135 Update index.stories.mdx 2022-01-05 11:36:41 -08:00
Dharini Jeeva 7cd59dcf37 Update index.stories.mdx 2022-01-04 15:32:12 -08:00
Dharini Jeeva 174b6246c7 Update index.stories.mdx 2022-01-04 15:31:47 -08:00
Dharini Jeeva 2005a9f1bb Update index.hbs 2022-01-04 15:31:29 -08:00
Dharini Jeeva c7059ae210 Delete jsconfig.json 2022-01-04 15:25:03 -08:00
dharini cf1e5aa429 feat: 🎸 add helper text support to inp & textarea 2022-01-04 15:12:19 -08:00
dharini 44e3ba4d76 Merge branch 'feat-helper-text' into feat-helpr-txt-support-inp-txtarea 2022-01-04 10:50:32 -08:00
Randall Morey 9ef4a14801 Merge branch 'main' into refactor-router-events 2022-01-04 12:53:55 -05:00
Dharini Jeeva bb20027b42 Merge pull request #894 from hashicorp/fix-field-name
fix: 🐛 update field name
2022-01-04 09:43:00 -08:00
Dharini Jeeva c0d64cd2a1 Merge branch 'main' into fix-field-name 2022-01-04 09:21:07 -08:00
Randall Morey 70be930f8e refactor: 💡 remove renderTemplate in favor of components 2022-01-04 10:50:09 -05:00
Randall Morey b4f5f86544 Merge branch 'main' into refactor-router-events 2022-01-04 10:36:31 -05:00
Randall Morey bc6064bb2e Merge pull request #891 from hashicorp/refactor-transitions
Refactor transitions
2022-01-04 10:36:12 -05:00
Susmitha Girumala 7e9e8b8960 Merge pull request #890 from hashicorp/chore-upgrade-loading
chore: upgrade to ember-loading 2.0.0
2022-01-04 09:39:38 -05:00
Susmitha Girumala 7f2b753295 Merge pull request #889 from hashicorp/refactor-polling
Replace ember-concurrency with ember-pollster
2022-01-04 09:38:13 -05:00
Susmitha Girumala d9d1305b7f Merge pull request #888 from hashicorp/chore-upgrade-babel
chore: 🤖 upgrade babel deps
2022-01-04 09:36:55 -05:00
Susmitha Girumala e08c717a12 Merge branch 'main' into chore-upgrade-babel 2022-01-04 09:09:42 -05:00
Susmitha Girumala d65db18266 Merge pull request #887 from hashicorp/refactor-copyable
refactor: 💡 copyable component no longer uses ember-concurrency
2022-01-04 09:09:15 -05:00
dharini 4410f32625 feat: 🎸 fix lint 2022-01-03 17:22:40 -08:00
dharini 47b0c87d89 fix: 🐛 update field name 2022-01-03 16:06:28 -08:00
dharini 52570b48fb feat: 🎸 add support for href 2022-01-03 15:32:36 -08:00
Randall Morey 9a8c47024e refactor: 💡 remove deprecated renderTemplate usage in desktop 2022-01-03 16:17:56 -05:00
Randall Morey 4c20571268 refactor: 💡 refactor due to router events deprecations 2022-01-03 13:59:24 -05:00
Randall Morey af92c65f60 refactor: 💡 migrate resource filtering transitionTo 2022-01-03 12:52:29 -05:00
Randall Morey 8bfa454df5 refactor: 💡 migrate to router.transitionTo due to deprecations 2022-01-03 12:35:48 -05:00
Randall Morey 7e354df44c refactor: 💡 migrate to router.replaceWith due to deprecations 2022-01-03 12:12:53 -05:00
Randall Morey 046e9fdf4c chore: upgrade to ember-loading 2.0.0 2022-01-03 09:28:24 -05:00
Randall Morey ebf2a0f115 chore: remove ember-concurrency dependency 2022-01-02 22:38:32 -05:00
Randall Morey b480cb8263 Merge branch 'refactor-copyable' into refactor-polling 2022-01-02 22:37:17 -05:00
Randall Morey 28de23b517 refactor: 💡 rewrite OIDC polling for ember pollster 2022-01-02 22:36:53 -05:00
Randall Morey a3bb788716 refactor: rewrite OIDC polling for ember pollster 2022-01-02 22:02:56 -05:00
Randall Morey 71361799f7 refactor: rewrite targets polling for ember-pollster 2022-01-02 19:40:45 -05:00
Randall Morey fe509d2e86 refactor: 💡 rewrite sessions polling for ember-pollster 2022-01-02 19:21:03 -05:00
Randall Morey 618d418093 refactor: 💡 rewrite sessions polling for ember-pollster 2022-01-02 15:55:05 -05:00
Randall Morey 4d8e628402 chore: 🤖 upgrade babel deps 2022-01-02 15:11:59 -05:00
Randall Morey 4f27332479 refactor: 💡 remoe copyable dep on ember-concurrency 2022-01-02 14:07:25 -05:00
577 changed files with 15499 additions and 7335 deletions

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
# Anyone attached to this rule will always been assigned to a pull request
* @hashicorp/boundary-ui
+17
View File
@@ -0,0 +1,17 @@
:tickets: [Jira ticket](https://hashicorp.atlassian.net/browse/JIRA_TICKET_NUMBER)
## Description
<!--
Replace PATH_TO_FEATURE with Vercel link
-->
:technologist: [Admin preview](PATH_TO_FEATURE)
:rose: [Rose preview](PATH_TO_FEATURE)
:desktop_computer: [Desktop preview](PATH_TO_FEATURE)
<!-- Add a brief description of changes here. Include any other necessary relevant links -->
### Screenshots (if appropriate):
+76
View File
@@ -0,0 +1,76 @@
name: Build Admin UI
on:
push:
branches:
- main
jobs:
dependencies:
name: Install dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@v3
with:
node-version: '16.x'
- run: yarn install
build-admin-ui-oss:
name: Build Admin UI OSS
needs: [dependencies]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- name: Build
uses: actions/setup-node@v3
with:
node-version: '16.x'
if: steps.node-modules-cache.outputs.cache-hit != 'true'
- run: yarn run build:ui:admin:oss
- name: Upload artifact admin-ui
uses: actions/upload-artifact@v3
with:
name: admin-ui
path: ./ui/admin/dist/
- name: Upload artifact Admin UI OSS
uses: actions/upload-artifact@v3
with:
name: admin-ui-oss
path: ./ui/admin/dist/
build-admin-ui-enterprise:
name: Build Admin UI Enterprise
needs: [dependencies]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- name: Build
uses: actions/setup-node@v3
with:
node-version: '16.x'
if: steps.node-modules-cache.outputs.cache-hit != 'true'
- run: yarn run build:ui:admin:enterprise
- name: Upload artifact Admin UI Enterprise
uses: actions/upload-artifact@v3
with:
name: admin-ui-ent
path: ./ui/admin/dist/
+46 -25
View File
@@ -2,55 +2,76 @@ name: Validate Monorepo
on: pull_request
jobs:
compliance:
name: License Compliance
dependencies:
name: Install dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: cache
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: node-modules-cache
with:
path: '**/node_modules'
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v1
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@v3
with:
node-version: '12.x'
node-version: '16.x'
- run: yarn install
if: steps.cache.outputs.cache-hit != 'true'
compliance:
name: License Compliance
needs: [dependencies]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: node-modules-cache
with:
path: '**/node_modules'
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@v3
with:
node-version: '16.x'
if: steps.node-modules-cache.outputs.cache-hit != 'true'
- run: yarn run compliance:licenses
lint:
name: Lint
needs: [dependencies, compliance]
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: cache
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: node-modules-cache
with:
path: '**/node_modules'
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v1
key: node-modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
node-modules-
- uses: actions/setup-node@v3
with:
node-version: '12.x'
- run: yarn install
if: steps.cache.outputs.cache-hit != 'true'
node-version: '16.x'
if: steps.node-modules-cache.outputs.cache-hit != 'true'
- run: yarn lint
test:
name: Test
needs: [lint]
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: cache
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: node-modules-cache
with:
path: '**/node_modules'
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v1
key: node-modules-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v3
with:
node-version: '12.x'
- run: yarn install
if: steps.cache.outputs.cache-hit != 'true'
node-version: '16.x'
if: steps.node-modules-cache.outputs.cache-hit != 'true'
- run: yarn test
-5
View File
@@ -23,8 +23,3 @@ yarn-error.log
storybook-static
**/.storybook/*.html
.watchman-cookie*
# ember-try
.node_modules.ember-try
bower.json.ember-try
package.json.ember-try
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
yarn compliance:licenses
npx lint-staged
yarn test
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
# This is to allow interaction with the terminal for commitizen
exec < /dev/tty && npx git-cz --hook || true
+3
View File
@@ -0,0 +1,3 @@
url_license = "https://github.com/hashicorp/boundary-ui/blob/main/LICENSE"
url_project_website = "https://learn.hashicorp.com/tutorials/boundary/getting-started-desktop-app"
url_source_repository = "https://github.com/hashicorp/boundary-ui"
+8 -8
View File
@@ -38,9 +38,9 @@ You will need the following things properly installed on your computer.
* [Git][git]
* [Node.js][node]
* v10–v15
* Supported versions:`v12`, `v14` and `v16`.
* **Apple Silicon Users**: if you experience problems building or running
Boundary UIs, try Node v15.
Boundary UIs, try Node v14.
* [Yarn][yarn] installed globally
* [Google Chrome][chrome]
* [Firefox][firefox]
@@ -66,7 +66,6 @@ List of available project commands. `yarn run <command-name>`
|---------------------|---|
| build | Builds Admin UI. |
| test | Runs tests in CI mode. |
| commit | Replaces `git commit`, ensures compliance, audit, lint, and test checks pass before commit is allowed and normalizes commit messages across authors. |
| lint | Runs ember-template-lint on all of the hbs, js, and sass files. |
| compliance:audit | Checks for issues using `yarn audit` with moderate and above criticality.|
| compliance:licenses | Checks that all dependencies have OSS-compatible licenses. |
@@ -164,11 +163,12 @@ Enter the origin of your Boundary dev instance, by default is: `http://localhost
### Committing
Instead of the default `git commit`, we prescribe a custom command that ensures
linting and other checks pass before a commit may be completed. It also ensures
that all contributors author consistent commit messages. To get started with a
commit, stage your files as usual. Then run `yarn commit` and follow the
on-screen instructions to author your message.
We use `husky` and `lint-staged` to ensure linting and other checks pass before a
commit is completed. Simply do a `yarn install` to make sure the hooks are installed.
Use a normal `git commit` to go through the checks, if you need to skip these checks,
use `git commit --no-verify` to bypass them. However, a consistent commit message will
still be enforced even if you use `--no-verify`.
#### License Checking
-4
View File
@@ -15,7 +15,3 @@
!.*
.eslintcache
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
+7 -8
View File
@@ -2,20 +2,19 @@
module.exports = {
root: true,
parser: 'babel-eslint',
parser: '@babel/eslint-parser',
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
ecmaFeatures: {
legacyDecorators: true,
// This is specific babel-config. If grows consider creating a babel config file
requireConfigFile: false,
babelOptions: {
plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]],
},
// end of babel-config
},
plugins: ['ember'],
extends: [
'eslint:recommended',
'plugin:ember/recommended',
'plugin:prettier/recommended',
],
extends: ['eslint:recommended', 'plugin:ember/recommended', 'prettier'],
env: {
browser: true,
},
-6
View File
@@ -19,15 +19,9 @@
/.travis.yml
/.watchmanconfig
/bower.json
/config/ember-try.js
/CONTRIBUTING.md
/ember-cli-build.js
/testem.js
/tests/
/yarn.lock
.gitkeep
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
-5
View File
@@ -14,8 +14,3 @@
/coverage/
!.*
.eslintcache
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
+9 -2
View File
@@ -47,21 +47,28 @@ List of available project commands. `yarn run <command-name>`
| build:development | Builds the dummy app in development mode. |
| build | Builds the dummy app for production. |
| lint | Runs all lint commands. |
| lint:fix | Runs automatic lint fixes for all type of file. |
| lint:hbs | Runs lint for `hbs` template files. |
| lint:hbs:fix | Runs automatic lint fixes for `hbs` template files. |
| lint:js | Lints `js` files. |
| lint:js:fix | Runs automatic lint fixes for `js` files. |
| format | Runs all auto-formatters. |
| format:js | Auto-formats `js` files using Prettier. |
| start | Runs the dummy app local server. |
| test | Runs all tests. |
| test:all | Runs tests across multiple Ember versions with ember-try. |
| test:ember-compatibility | Runs tests across multiple Ember versions with ember-try. |
| precommit | Runs all lint and format. |
| doc:toc | Automatically generates a table of contents for this README file. |
Additional commands in the monorepo package may affect this projects.
## Linting
* `yarn lint:fix`
* `yarn lint:hbs`
* `yarn lint:hbs:fix`
* `yarn lint:js`
* `yarn lint:js --fix`
* `yarn lint:js:fix`
## Formatting
-37
View File
@@ -1,37 +0,0 @@
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);
}
}
@@ -0,0 +1,16 @@
import ModelAbility from './model';
/**
* Provides abilities for credential store.
*/
export default class CredentialStoreAbility extends ModelAbility {
// =permissions
/**
* Only "known" credential store types may be read.
* @type {boolean}
*/
get canRead() {
return !this.model.isStatic && this.hasAuthorizedAction('read');
}
}
@@ -0,0 +1,16 @@
import ModelAbility from './model';
/**
* Provides abilities for host catalogs.
*/
export default class HostCatalogAbility extends ModelAbility {
// =permissions
/**
* Only "known" host catalog types may be read.
* @type {boolean}
*/
get canRead() {
return !this.model.isUnknown && this.hasAuthorizedAction('read');
}
}
+27
View File
@@ -45,6 +45,20 @@ export default class ModelAbility extends Ability {
return false;
}
/**
* @type {boolean}
*/
get canList() {
return this.hasAuthorizedCollectionAction('list');
}
/**
* @type {boolean}
*/
get canCreate() {
return this.hasAuthorizedCollectionAction('create');
}
// =methods
/**
@@ -56,4 +70,17 @@ export default class ModelAbility extends Ability {
hasAuthorizedAction(action) {
return this.model.authorized_actions?.includes(action);
}
/**
* 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);
}
}
+30 -8
View File
@@ -263,14 +263,36 @@ export default class ApplicationAdapter extends RESTAdapter.extend(
source: { pointer: '/data' },
};
// Normalize field-specific errors, if any.
const errors = fieldErrors.map((error) => ({
detail: error.description,
// 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('.', '_')}` },
}));
const errors = fieldErrors.flatMap((error) => {
const newValue = [
{
detail: error.description,
// 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('.', '_')}`,
},
},
];
if (error.name.includes('attributes.')) {
newValue.push({
detail: error.description,
// Going forward, nested attributes will be hoisted. Thus "attributes."
// must be stripped from the error name key. Until all models are
// transitioned away from model fragments, however, both this and the
// prior error key mappings are necessary.
source: {
pointer: `/data/attributes/${error.name.replace(
'attributes.',
''
)}`,
},
});
}
return newValue;
});
// Return a list of JSON API errors rooted under the `errors` key.
return {
errors: [baseError, ...errors],
+23
View File
@@ -0,0 +1,23 @@
import ApplicationAdapter from './application';
export default class HostCatalogAdapter extends ApplicationAdapter {
/**
* Overrides the default `buildURL` such that on _create_, URLs for records of
* type `plugin` get an extra query parameter `?plugin_name`. All other
* request types behave as normal.
*
* @override
* @param {string} modelName
* @param {string} id
* @return {string} url
* @return {string} requestType
*/
buildURL(modelName, id, snapshot, requestType) {
let url = super.buildURL(...arguments);
if (requestType === 'createRecord') {
const pluginName = snapshot.attr('plugin')?.name;
if (pluginName) url = `${url}?plugin_name=${pluginName}`;
}
return url;
}
}
@@ -43,4 +43,20 @@ export default class GeneratedAccountModel extends BaseModel {
description: 'Current version number of this resource.',
})
version;
// =attributes (password)
@attr('string', {
for: 'password',
isNestedAttribute: true,
description: 'The account login name',
})
login_name;
// =attributes (OIDC)
@attr('string', { for: 'oidc', isNestedAttribute: true }) subject;
@attr('string', { for: 'oidc', isNestedAttribute: true }) issuer;
@attr('string', { for: 'oidc', isNestedAttribute: true, readOnly: true })
email;
@attr('string', { for: 'oidc', isNestedAttribute: true, readOnly: true })
full_name;
}
@@ -44,4 +44,27 @@ export default class GeneratedCredentialLibraryModel extends BaseModel {
description: 'Current version number of this resource.',
})
version;
//= attributes (vault)
@attr('string', {
isNestedAttribute: true,
description:
'The HTTP method the library uses when requesting credentials from Vault.',
defaultValue: () => 'GET',
})
http_method;
@attr('string', {
isNestedAttribute: true,
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', {
isNestedAttribute: true,
description: 'The path in Vault to request credentials from.',
})
path;
}
@@ -39,4 +39,82 @@ export default class GeneratedCredentialStoreModel extends BaseModel {
description: 'Current version number of this resource.',
})
version;
// =attributes (vault)
@attr('string', {
for: 'vault',
isNestedAttribute: true,
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',
isNestedAttribute: true,
description: 'The namespace within Vault to use.',
})
namespace;
@attr('string', {
for: 'vault',
isNestedAttribute: true,
description:
"A PEM-encoded CA certificate to verify the Vault server's TLS certificate.",
})
ca_cert;
@attr('string', {
for: 'vault',
isNestedAttribute: true,
description:
'Name to use as the SNI host when connecting to Vault via TLS.',
})
tls_server_name;
@attr('boolean', {
for: 'vault',
isNestedAttribute: true,
description: 'Whether or not to skip TLS verification.',
})
tls_skip_verify;
@attr('string', {
for: 'vault',
isNestedAttribute: true,
description: 'A token used for accessing Vault.',
})
token;
@attr('string', {
for: 'vault',
isNestedAttribute: true,
description: 'The Vault token hmac.',
readOnly: true,
})
token_hmac;
@attr('string', {
for: 'vault',
isNestedAttribute: true,
description:
'A PEM-encoded client certificate to use for TLS authentication to the Vault server.',
})
client_certificate;
@attr('string', {
for: 'vault',
isNestedAttribute: true,
description:
"A PEM-encoded private key matching the client certificate from 'client_certificate'.",
})
client_certificate_key;
@attr('string', {
for: 'vault',
isNestedAttribute: true,
description: 'The Vault client certificate key hmac.',
readOnly: true,
})
client_certificate_key_hmac;
}
@@ -39,13 +39,74 @@ export default class GeneratedHostCatalogModel extends BaseModel {
})
disabled;
@attr({
description: 'Attributes specific to the catalog type',
})
attributes;
@attr('number', {
description: 'Current version number of this resource.',
})
version;
@attr({
description: 'Plugin information for this resource.',
readOnly: true,
})
plugin;
// AWS & Azure
@attr('boolean', {
isNestedAttribute: true,
description: '',
})
disable_credential_rotation;
// AWS specific
@attr('string', {
isNestedAttribute: true,
description: '',
})
region;
@attr('string', {
isNestedSecret: true,
description: '',
})
access_key_id;
@attr('string', {
isNestedSecret: true,
description: '',
})
secret_access_key;
// Azure specific
@attr('string', {
isNestedAttribute: true,
description: '',
})
tenant_id;
@attr('string', {
isNestedAttribute: true,
description: '',
})
client_id;
@attr('string', {
isNestedAttribute: true,
description: '',
})
subscription_id;
@attr('string', {
isNestedSecret: true,
description: '',
})
secret_id;
@attr('string', {
isNestedSecret: true,
description: '',
})
secret_value;
}
@@ -50,4 +50,23 @@ export default class GeneratedHostSetModel extends BaseModel {
readOnly: true,
})
size;
@attr({
description: 'Plugin information for this resource',
readOnly: true,
})
plugin;
@attr('number', {
description:
"The number of seconds between the time boundary syncs the hosts in this set using this host set's plugin. If not provided a system determined default is used",
})
sync_interval_seconds;
// Azure specific
@attr('string', {
description: '',
isNestedAttribute: true,
})
filter;
}
@@ -43,4 +43,10 @@ export default class GeneratedHostModel extends BaseModel {
description: 'Current version number of this resource.',
})
version;
@attr({
description: 'Plugin information for this resource.',
readOnly: true,
})
plugin;
}
@@ -44,4 +44,13 @@ export default class GeneratedManagedGroupModel extends BaseModel {
'The ID of the Auth Method that is associated with this ManagedGroup',
})
auth_method_id;
// =attributes (OIDC)
@attr('string', {
isNestedAttribute: true,
description:
'The boolean expression filter to use to determine membership.',
})
filter;
}
@@ -34,6 +34,12 @@ export default class GeneratedTargetModel extends BaseModel {
})
session_connection_limit;
@attr('string', {
description:
'Optional boolean expression to filter the workers that are allowed to satisfy this request.',
})
worker_filter;
@attr('date', {
description: 'The time this resource was created\nOutput only.',
readOnly: true,
+2 -9
View File
@@ -1,17 +1,10 @@
import GeneratedAccountModel from '../generated/models/account';
import { fragment } from 'ember-data-model-fragments/attributes';
import { computed } from '@ember/object';
import { equal } from '@ember/object/computed';
export default class AccountModel extends GeneratedAccountModel {
// =attributes
/**
* Attributes of this resource, if any, represented as a JSON fragment.
* @type {FragmentAccountAttributesModel}
*/
@fragment('fragment-account-attributes', { defaultValue: {} }) attributes;
/**
* @type {boolean}
*/
@@ -26,9 +19,9 @@ export default class AccountModel extends GeneratedAccountModel {
* Convenience for getting username in account.
* @type {string}
*/
@computed('attributes.{email,full_name,login_name}')
@computed('{email,full_name,login_name}')
get accountName() {
const { email, full_name, login_name } = this.attributes;
const { email, full_name, login_name } = this;
return email || full_name || login_name;
}
+2
View File
@@ -61,6 +61,8 @@ export default class AuthMethodModel extends GeneratedAuthMethodModel {
*/
@equal('is_primary', true) isPrimary;
options = options;
/**
* @type {boolean}
*/
+1 -21
View File
@@ -1,6 +1,4 @@
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.
@@ -9,22 +7,4 @@ 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;
}
export default class CredentialLibraryModel extends GeneratedCredentialLibraryModel {}
+5 -23
View File
@@ -1,34 +1,16 @@
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;
/**
* @type {boolean}
*/
@equal('type', 'static') isStatic;
}
@@ -1,17 +0,0 @@
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;
}
@@ -1,25 +0,0 @@
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;
}
@@ -1,72 +0,0 @@
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;
}
@@ -1,9 +0,0 @@
import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
export default class FragmentHostAttributesModel extends Fragment {
@attr('string', {
description: 'The address (DNS or IP name) used to reach the host',
})
address;
}
@@ -1,12 +0,0 @@
import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
export default class FragmentManagedGroupAttributesModel extends Fragment {
// =attributes (OIDC)
@attr('string', {
description:
'The boolean expression filter to use to determine membership.',
})
filter;
}
@@ -1,9 +0,0 @@
import Fragment from 'ember-data-model-fragments/fragment';
import { attr } from '@ember-data/model';
export default class FragmentTargetAttributesModel extends Fragment {
@attr('number', {
description: 'The default port a target should use if present.',
})
default_port;
}
+61
View File
@@ -1,10 +1,71 @@
import GeneratedHostCatalogModel from '../generated/models/host-catalog';
export const types = ['aws', 'azure'];
export default class HostCatalogModel extends GeneratedHostCatalogModel {
// =attributes
/**
* True if the host catalog is static.
* @type {boolean}
*/
get isStatic() {
return this.type === 'static';
}
/**
* True if the host catalog is a plugin.
* @type {boolean}
*/
get isPlugin() {
return this.type === 'plugin';
}
/**
* True if the host catalog is an unknown type.
* @type {boolean}
*/
get isUnknown() {
return this.isPlugin && !types.includes(this.plugin?.name);
}
/**
* True if host catalog plugin type is AWS.
* @type {boolean}
*/
get isAWS() {
return this.compositeType === 'aws';
}
/**
* True if host catalog plugin type is Azure.
* @type {boolean}
*/
get isAzure() {
return this.compositeType === 'azure';
}
/**
* If host catalog is a plugin return `plugin.name`,
* otherwise return the host catalog type.
* @type {string}
*/
get compositeType() {
if (this.isUnknown) return 'unknown';
if (this.isPlugin) return this.plugin.name;
return 'static';
}
/**
* Sets `type`. If type is different than `static`, sets `type` to `plugin`
* and `plugin.name` to the specified type.
*/
set compositeType(type) {
if (type === 'static') {
this.type = 'static';
} else {
this.type = 'plugin';
this.plugin = { name: type };
}
}
}
+75
View File
@@ -1,9 +1,72 @@
import GeneratedHostSetModel from '../generated/models/host-set';
import { fragmentArray } from 'ember-data-model-fragments/attributes';
import { types } from './host-catalog';
export default class HostSetModel extends GeneratedHostSetModel {
// =attributes
/**
* Returns if the host-set is static or not.
* @type {boolean}
*/
get isStatic() {
return this.type === 'static';
}
/**
* Returns if the host-set is plugin or not.
* @type {boolean}
*/
get isPlugin() {
return this.type === 'plugin';
}
/**
* True if the host set is an unknown type.
* @type {boolean}
*/
get isUnknown() {
return this.isPlugin && !types.includes(this.plugin?.name);
}
/**
* Returns if a host-set plugin is AWS or not
* @type {boolean}
*/
get isAWS() {
return this.compositeType === 'aws';
}
/**
* Return if a host-set plugin is Azure or not.
*/
get isAzure() {
return this.compositeType === 'azure';
}
/**
* If a host-set is a plugin return its name,
* otherwise returns the host-set type
* @type {string}
*/
get compositeType() {
if (this.isUnknown) return 'unknown';
if (this.isPlugin) return this.plugin.name;
return 'static';
}
/**
* Sets type, if type is different than static, set plugin name to type
*/
set compositeType(type) {
if (type === 'static') {
this.type = 'static';
} else {
this.type = 'plugin';
this.plugin = { name: type };
}
}
/**
* Host IDs are read-only under normal circumstances. But these can
* be persisted via a dedicated call to `addHosts()`.
@@ -14,6 +77,18 @@ export default class HostSetModel extends GeneratedHostSetModel {
})
host_ids;
@fragmentArray('fragment-string', {
emptyArrayIfMissing: true,
})
preferred_endpoints;
// AWS specific
@fragmentArray('fragment-string', {
emptyArrayIfMissing: true,
isNestedAttribute: true,
})
filters;
// =methods
/**
+81 -4
View File
@@ -1,10 +1,87 @@
import GeneratedHostModel from '../generated/models/host';
import { fragment } from 'ember-data-model-fragments/attributes';
import { attr } from '@ember-data/model';
export default class HostModel extends GeneratedHostModel {
// =attributes
// Static specific fields
@attr('string', {
description: 'The address (DNS or IP name) used to reach the host',
isNestedAttribute: true,
})
address;
// Plugin specific fields
@attr({
readOnly: true,
emptyArrayIfMissing: true,
})
ip_addresses;
@attr('string', {
description: '',
readOnly: true,
})
external_id;
// Aws specific
@attr({
readOnly: true,
emptyArrayIfMissing: true,
})
dns_names;
/**
* Attributes of this resource, if any, represented as a JSON fragment.
* @type {FragmentHostAttributesModel}
* True if the host is static.
* @type {boolean}
*/
@fragment('fragment-host-attributes', { defaultValue: {} }) attributes;
get isStatic() {
return this.type === 'static';
}
/**
* True if the host is plugin.
* @type {boolean}
*/
get isPlugin() {
return this.type === 'plugin';
}
/**
* True if the host plugin type is AWS.
* @type {boolean}
*/
get isAWS() {
return this.compositeType === 'aws';
}
/**
* True if the host plugin type is Azure.
* @type {boolean}
*/
get isAzure() {
return this.compositeType === 'azure';
}
/**
* If host is a plugin return `plugin.name`,
* otherwise return the host type.
* @type {string}
*/
get compositeType() {
return this.isPlugin ? this.plugin.name : this.type;
}
/**
* Sets `type`. If type is different than `static`, sets `type` to `plugin`
* and `plugin.name` to the specified type.
*/
set compositeType(type) {
if (type === 'static') {
this.type = 'static';
} else {
this.type = 'plugin';
this.plugin = { name: type };
}
}
}
-11
View File
@@ -1,18 +1,10 @@
import GeneratedManagedGroupModel from '../generated/models/managed-group';
import { attr } from '@ember-data/model';
import { fragment } from 'ember-data-model-fragments/attributes';
import { A } from '@ember/array';
export default class ManagedGroupModel extends GeneratedManagedGroupModel {
// =attributes
// =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_filter;
/**
* Members is read-only under normal circumstances. But members can
* be persisted via calls to `addMembers()` or `removeMembers()`.
@@ -23,7 +15,4 @@ export default class ManagedGroupModel extends GeneratedManagedGroupModel {
emptyArrayIfMissing: true,
})
member_ids;
@fragment('fragment-managed-group-attributes', { defaultValue: {} })
attributes;
}
+7
View File
@@ -23,6 +23,13 @@ export default class RoleModel extends GeneratedRoleModel {
*/
@array('string', { readOnly: true }) grant_strings;
/**
* Convenience for looking up the grant scope, if loaded.
*/
get grantScope() {
return this.store.peekRecord('scope', this.grant_scope_id);
}
// =methods
/**
+4 -4
View File
@@ -13,7 +13,7 @@ class SessionCredential {
/**
*
*/
static Library = class Library {
static Source = class Source {
id;
name;
description;
@@ -42,7 +42,7 @@ class SessionCredential {
// =attributes
rawCredential;
library;
source;
#payloadSecret;
/**
@@ -72,8 +72,8 @@ class SessionCredential {
// =methods
constructor(cred) {
const { id, name, description, type } = cred.credential_library;
this.library = new SessionCredential.Library(id, name, description, type);
const { id, name, description, type } = cred.credential_source;
this.source = new SessionCredential.Source(id, name, description, type);
this.#payloadSecret = cred.secret;
this.rawCredential = cred;
}
+23 -6
View File
@@ -1,15 +1,16 @@
import GeneratedTargetModel from '../generated/models/target';
import { fragment, fragmentArray } from 'ember-data-model-fragments/attributes';
import { attr } from '@ember-data/model';
import { fragmentArray } from 'ember-data-model-fragments/attributes';
import { computed } from '@ember/object';
export default class TargetModel extends GeneratedTargetModel {
// =attributes
/**
* Attributes of this resource, if any, represented as a JSON fragment.
* @type {FragmentTargetAttributesModel}
*/
@fragment('fragment-target-attributes', { defaultValue: {} }) attributes;
@attr('number', {
isNestedAttribute: true,
description: 'The default port a target should use if present.',
})
default_port;
/**
* @type {[FragmentHostSourceModel]}
@@ -206,4 +207,20 @@ export default class TargetModel extends GeneratedTargetModel {
removeCredentialSource(credentialLibraryID, options) {
return this.removeCredentialSources([credentialLibraryID], options);
}
/**
* True if the target type is tcp.
* @type {boolean}
*/
get isTCP() {
return this.type === 'tcp';
}
/**
* True if the target type is ssh.
* @type {boolean}
*/
get isSSH() {
return this.type === 'ssh';
}
}
+1 -1
View File
@@ -40,7 +40,7 @@ export default class UserModel extends GeneratedUserModel {
* There are many options, so we fallback in order of precedence.
* @type {string}
*/
@computed('email,full_name,login_name,displayName')
@computed('email', 'full_name', 'login_name')
get accountName() {
const { email, full_name, login_name } = this;
return email || full_name || login_name;
+3 -3
View File
@@ -33,12 +33,12 @@ export default class AccountSerializer extends ApplicationSerializer {
* `attributes` entirely on update.
*/
serializeOIDC(snapshot) {
const { isNew } = snapshot?.record;
const { isNew } = snapshot?.record || {};
let serialized = super.serialize(...arguments);
delete serialized.attributes;
if (isNew) {
serialized.attributes = {};
const { issuer, subject } = snapshot.attr('attributes').record;
const { issuer, subject } = snapshot.record;
if (issuer) serialized.attributes.issuer = issuer;
if (subject) serialized.attributes.subject = subject;
}
@@ -70,7 +70,7 @@ export default class AccountSerializer extends ApplicationSerializer {
}
// Change password custom method
if (snapshot?.adapterOptions?.method === 'change-password') {
const { currentPassword, newPassword } = snapshot?.adapterOptions;
const { currentPassword, newPassword } = snapshot?.adapterOptions || {};
serialized = this.serializeForChangePassword(
snapshot,
currentPassword,
+114 -2
View File
@@ -50,6 +50,20 @@ export default class ApplicationSerializer extends RESTSerializer {
// Do not serialize `disabled` fields.
// TODO: disabled is temporarily disabled
if (key === 'disabled') delete json[key];
// Push nested attributes down into the attributes key
if (options.isNestedAttribute && json[key] !== undefined) {
if (!json.attributes) json.attributes = {};
json.attributes[key] = json[key];
delete json[key];
}
// Push nested secrets down into the secrets key
if (options.isNestedSecret) {
if (json[key]) {
if (!json.secrets) json.secrets = {};
json.secrets[key] = json[key];
}
delete json[key];
}
return value;
}
@@ -123,7 +137,7 @@ export default class ApplicationSerializer extends RESTSerializer {
}
/**
* In our API, singluar resources are _unrooted_, whereas Ember Data expects
* In our API, singular resources are _unrooted_, whereas Ember Data expects
* them to be rooted under their model name, e.g. `{modelName: {…}}`.
* This method makes this transformation to accommodate Ember Data.
*
@@ -195,9 +209,107 @@ export default class ApplicationSerializer extends RESTSerializer {
* @return {Object}
*/
normalize(typeClass, hash) {
const normalizedHash = copy(hash, true);
let normalizedHash = copy(hash, true);
const scopeID = get(normalizedHash, 'scope.id');
if (scopeID) normalizedHash.scope.scope_id = scopeID;
normalizedHash = this.normalizeNestedAttributes(typeClass, normalizedHash);
normalizedHash = this.normalizeNestedSecrets(typeClass, normalizedHash);
return super.normalize(typeClass, normalizedHash);
}
/**
* Certain typed resources in the API have type-specific fields nested under
* an `attributes` key in the payload
* (e.g. `attributes: { fieldName: '123' }`). Since Ember Data lacks
* first-class support for nested attributes, these fields must be hoisted up
* into the main body of the payload.
*
* In order to annotate a field as being a nested attribute, add the key name
* to the `nestedAttributes` field on the serializer:
* `@attr('string', { isNestedAttribute: true }) fieldName;`
*
* @param {Model} typeClass
* @param {Object} hash
* @return {Object}
*/
normalizeNestedAttributes(typeClass, hash) {
typeClass.attributes.forEach((attribute) => {
const {
name,
options: { isNestedAttribute },
} = attribute;
const value = hash.attributes?.[name];
const isUndefined = value === undefined;
if (isNestedAttribute && !isUndefined) hash[name] = value;
});
return hash;
}
/**
* If an attribute is declared with the `isNestedSecret` option, it will
* be explicitly unset in the incoming payload to `null`. This helps ensure
* secret values do not linger in the UI.
*
* For example:
* `@attr('string', { isNestedSecret: true }) superSecretShhh;`
*
* @param {Model} typeClass
* @param {Object} hash
* @return {Object}
*/
normalizeNestedSecrets(typeClass, hash) {
typeClass.attributes.forEach((attribute) => {
const {
name,
options: { isNestedSecret },
} = attribute;
const value = hash.secrets?.[name];
if (isNestedSecret) hash[name] = value || null;
});
return hash;
}
/**
* If the API returns an updated response with removed fields, we need to
* explicitly set any read only field that is on the model but wasn't
* returned in the response to `null`.
* This will let ember data know the field was removed, otherwise
* it won't touch the removed field and will use the old value.
*
* @override
* @param {object} store
* @param {object} primaryModelClass
* @param {object} payload
* @param {?string} id
* @param {string} requestType
* @return {object}
*/
normalizeUpdateRecordResponse(
store,
primaryModelClass,
payload,
id,
requestType
) {
const newPayload = copy(payload, true);
primaryModelClass.attributes.forEach((attribute) => {
const {
name,
options: { readOnly },
} = attribute;
if (readOnly && !Object.prototype.hasOwnProperty.call(newPayload, name)) {
newPayload[name] = null;
}
});
return super.normalizeUpdateRecordResponse(
store,
primaryModelClass,
newPayload,
id,
requestType
);
}
}
@@ -1,3 +1,18 @@
import ApplicationSerializer from './application';
export default class CredentialLibrarySerializer extends ApplicationSerializer {}
export default class CredentialLibrarySerializer extends ApplicationSerializer {
/**
* @override
* @method serialize
* @param {Snapshot} snapshot
*/
serialize() {
const serialized = super.serialize(...arguments);
if (serialized.attributes) {
// Serialize `http_request_body` only if `http_method` is POST
if (!serialized.attributes?.http_method?.match(/post/i))
delete serialized.attributes.http_request_body;
}
return serialized;
}
}
@@ -1,3 +1,24 @@
import ApplicationSerializer from './application';
export default class CredentialStoreSerializer extends ApplicationSerializer {}
export default class CredentialStoreSerializer extends ApplicationSerializer {
/**
* @override
* @method serialize
* @param {Snapshot} snapshot
*/
serialize() {
const serialized = super.serialize(...arguments);
if (serialized.attributes) {
// Token cannot be unset. If it's falsy, it must be removed.
if (!serialized.attributes?.token) delete serialized.attributes.token;
// Client certificate key cannot be unset when certificate is set.
// If it's falsy, it must be removed.
if (
!serialized.attributes?.client_certificate_key &&
serialized.attributes?.client_certificate
)
delete serialized.attributes.client_certificate_key;
}
return serialized;
}
}
@@ -1,26 +0,0 @@
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;
}
}
@@ -1,27 +0,0 @@
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;
}
}
@@ -1,34 +0,0 @@
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;
}
}
@@ -1,27 +0,0 @@
import JSONSerializer from '@ember-data/serializer/json';
export default class FragmentManagedGroupAttributesSerializer 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 string to null.
if (type === 'string' && json[key] === '') json[key] = null;
// Do not serialize read-only attributes.
if (options.readOnly) delete json[key];
// Version is sent only if it has a non-nullish value
if (key === 'version') {
if (json[key] === null || json[key] === undefined) delete json[key];
}
return value;
}
}
@@ -0,0 +1,59 @@
import ApplicationSerializer from './application';
const fieldsByType = {
aws: [
'disable_credential_rotation',
'region',
'access_key_id',
'secret_access_key',
],
azure: [
'disable_credential_rotation',
'tenant_id',
'client_id',
'subscription_id',
'secret_id',
'secret_value',
],
};
export default class HostCatalogSerializer extends ApplicationSerializer {
// =methods
serialize(snapshot) {
const serialized = super.serialize(...arguments);
switch (snapshot.record.compositeType) {
case 'static':
return this.serializeStatic(...arguments);
default:
return serialized;
}
}
serializeAttribute(snapshot, json, key, attribute) {
const value = super.serializeAttribute(...arguments);
const { isPlugin, compositeType } = snapshot.record;
const { options } = attribute;
// Nested conditionals for readability
// This deletes any fields that don't belong to the record type
if (isPlugin && options.isNestedAttribute && json.attributes) {
// The key must be included in the fieldsByType list above
if (!fieldsByType[compositeType].includes(key))
delete json.attributes[key];
}
// This deletes any fields that don't belong to the record type
if (isPlugin && options.isNestedSecret && json.secrets) {
if (!fieldsByType[compositeType].includes(key)) delete json.secrets[key];
}
// new one for isNestedSecret
return value;
}
serializeStatic() {
const serialized = super.serialize(...arguments);
// Delete unnecessary fields for static host-catalog
delete serialized.attributes;
delete serialized.secrets;
return serialized;
}
}
+52 -3
View File
@@ -1,5 +1,10 @@
import ApplicationSerializer from './application';
import { copy } from 'ember-copy';
const fieldByType = {
aws: ['preferred_endpoints', 'filters', 'sync_interval_seconds'],
azure: ['preferred_endpoints', 'filter', 'sync_interval_seconds'],
};
export default class HostSetSerializer extends ApplicationSerializer {
// =properties
@@ -19,10 +24,17 @@ export default class HostSetSerializer extends ApplicationSerializer {
* @return {object}
*/
serialize(snapshot) {
let serialized = super.serialize(...arguments);
const hostIDs = snapshot?.adapterOptions?.hostIDs;
if (hostIDs) serialized = this.serializeWithHostIDs(snapshot, hostIDs);
return serialized;
if (hostIDs) {
return this.serializeWithHostIDs(snapshot, hostIDs);
} else {
switch (snapshot.record.compositeType) {
case 'static':
return this.serializeStatic(...arguments);
default:
return super.serialize(...arguments);
}
}
}
/**
@@ -37,4 +49,41 @@ export default class HostSetSerializer extends ApplicationSerializer {
host_ids: hostIDs,
};
}
serializeStatic() {
let serialized = super.serialize(...arguments);
// Delete unnecessary fields for static type
delete serialized.attributes;
delete serialized.preferred_endpoints;
delete serialized.sync_interval_seconds;
return serialized;
}
serializeAttribute(snapshot, json, key, attribute) {
const value = super.serializeAttribute(...arguments);
const { isPlugin, compositeType } = snapshot.record;
const { options } = attribute;
if (isPlugin && options.isNestedAttribute) {
if (!fieldByType[compositeType].includes(key)) {
delete json.attributes[key];
}
}
return value;
}
/**
* Temporarily converts `filters` to an array if it is a string. This is a
* quirk of the API.
*
* TODO: remove once API consistently returns arrays.
*/
normalize(typeClass, hash, ...rest) {
const normalizedHash = copy(hash, true);
if (typeof normalizedHash?.filters === 'string') {
normalizedHash.filters = [normalizedHash.filters];
}
const normalized = super.normalize(typeClass, normalizedHash, ...rest);
return normalized;
}
}
-1
View File
@@ -1 +0,0 @@
export { default } from 'api/abilities/collection';
@@ -0,0 +1 @@
export { default } from 'api/abilities/credential-store';
+1
View File
@@ -0,0 +1 @@
export { default } from 'api/abilities/host-catalog';
+1
View File
@@ -0,0 +1 @@
export { default } from 'api/adapters/host-catalog';
@@ -1 +0,0 @@
export { default } from 'api/models/fragment-account-attributes';
@@ -1 +0,0 @@
export { default } from 'api/models/fragment-credential-library-attributes';
@@ -1 +0,0 @@
export { default } from 'api/models/fragment-credential-store-attributes';
@@ -1 +0,0 @@
export { default } from 'api/models/fragment-host-attributes';
@@ -1 +0,0 @@
export { default } from 'api/models/fragment-managed-group-attributes';
@@ -1 +0,0 @@
export { default } from 'api/models/fragment-target-attributes';
@@ -1 +0,0 @@
export { default } from 'api/serializers/fragment-account-attributes';
@@ -1 +0,0 @@
export { default } from 'api/serializers/fragment-credential-library-attributes';
@@ -1 +0,0 @@
export { default } from 'api/serializers/fragment-credential-store-attributes';
@@ -1 +0,0 @@
export { default } from 'api/serializers/fragment-managed-group-attributes';
@@ -0,0 +1 @@
export { default } from 'api/serializers/host-catalog';
-86
View File
@@ -1,86 +0,0 @@
'use strict';
const getChannelURL = require('ember-source-channel-url');
module.exports = async function () {
return {
scenarios: [
{
name: 'ember-lts-3.12',
npm: {
devDependencies: {
'ember-source': '~3.12.0',
},
},
},
{
name: 'ember-lts-3.16',
npm: {
devDependencies: {
'ember-source': '~3.16.0',
},
},
},
{
name: 'ember-lts-3.20',
npm: {
devDependencies: {
'ember-source': '~3.20.5',
},
},
},
{
name: 'ember-release',
npm: {
devDependencies: {
'ember-source': await getChannelURL('release'),
},
},
},
{
name: 'ember-beta',
npm: {
devDependencies: {
'ember-source': await getChannelURL('beta'),
},
},
},
{
name: 'ember-canary',
npm: {
devDependencies: {
'ember-source': await getChannelURL('canary'),
},
},
},
{
name: 'ember-default-with-jquery',
env: {
EMBER_OPTIONAL_FEATURES: JSON.stringify({
'jquery-integration': true,
}),
},
npm: {
devDependencies: {
'@ember/jquery': '^1.1.0',
},
},
},
{
name: 'ember-classic',
env: {
EMBER_OPTIONAL_FEATURES: JSON.stringify({
'application-template-wrapper': true,
'default-async-observers': false,
'template-only-glimmer-components': false,
}),
},
npm: {
ember: {
edition: 'classic',
},
},
},
],
};
};
+16 -3
View File
@@ -270,7 +270,19 @@ export default function () {
return hostCatalogs.where({ scopeId });
}
);
this.post('/host-catalogs');
this.post(
'/host-catalogs',
function ({ hostCatalogs }, { queryParams: { plugin_name } }) {
const attrs = this.normalizedRequestAttrs();
if (plugin_name) {
attrs.type = 'plugin';
attrs.plugin = {
name: plugin_name,
};
}
return hostCatalogs.create(attrs);
}
);
this.get('/host-catalogs/:id');
this.patch('/host-catalogs/:id');
this.del('/host-catalogs/:id');
@@ -536,9 +548,10 @@ export default function () {
return managedGroups.where({ authMethodId });
}
);
this.get('/managed-groups/:id');
this.del('/managed-groups/:id');
this.post('/managed-groups');
this.get('/managed-groups/:id');
this.patch('/managed-groups/:id');
this.del('/managed-groups/:id');
/* Uncomment the following line and the Response import above
* Then change the response code to simulate error responses.
+4
View File
@@ -1,6 +1,7 @@
import factory from '../generated/factories/account';
import { random, internet } from 'faker';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
export default factory.extend({
authorized_actions: () =>
@@ -11,6 +12,9 @@ export default factory.extend({
'delete',
'set-password',
],
id: () => generateId('acct_'),
attributes() {
switch (this.type) {
case 'password':
+3 -1
View File
@@ -1,6 +1,7 @@
import factory from '../generated/factories/auth-method';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
const types = ['password', 'oidc'];
@@ -18,7 +19,8 @@ export default factory.extend({
'managed-groups': ['create', 'list'],
};
},
id: (i) => `auth-method-id-${i}`,
id: () => generateId('am_'),
// Cycle through available types
type: (i) => types[i % types.length],
@@ -1,11 +1,12 @@
import factory from '../generated/factories/credential-library';
import { random, system } from 'faker';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
const types = ['vault'];
export default factory.extend({
id: (i) => `credential-library-id-${i}`,
id: () => generateId('cl_'),
type: (i) => types[i % types.length],
authorized_actions: () =>
@@ -2,8 +2,9 @@ import factory from '../generated/factories/credential-store';
import { random, internet, datatype } from 'faker';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
const types = ['vault'];
const types = ['vault', 'static'];
export default factory.extend({
authorized_actions: () =>
@@ -18,7 +19,7 @@ export default factory.extend({
'credential-libraries': ['create', 'list'],
};
},
id: (i) => `credential-store-id-${i}`,
id: () => generateId('cs_'),
type: (i) => types[i % types.length],
attributes() {
+3 -1
View File
@@ -1,6 +1,7 @@
import factory from '../generated/factories/group';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
export default factory.extend({
authorized_actions: () =>
@@ -12,7 +13,8 @@ export default factory.extend({
'add-members',
'remove-members',
],
id: (i) => `group-${i}`,
id: () => generateId('g_'),
/**
* Generates some users for the same scope and assigns them to the group
+60 -2
View File
@@ -1,8 +1,22 @@
import factory from '../generated/factories/host-catalog';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
import { datatype, address, random } from 'faker';
import generateId from '../helpers/id';
const types = ['static', 'plugin'];
// Represents known plugin types, except "foobar" which models the possibility
// of receiving an _unknown_ type, which the UI must handle gracefully.
const pluginTypes = ['aws', 'azure', 'foobar'];
let pluginTypeCounter = 1;
export default factory.extend({
id: () => generateId('hc_'),
// Cycle through available types
type: (i) => types[i % types.length],
authorized_actions: () =>
permissions.authorizedActionsFor('host-catalog') || [
'no-op',
@@ -10,12 +24,56 @@ export default factory.extend({
'update',
'delete',
],
authorized_collection_actions: () => {
authorized_collection_actions: function () {
const isStatic = this.type === 'static';
return {
hosts: ['create', 'list'],
// only static catalogs allow host create at this time
hosts: isStatic ? ['create', 'list'] : ['list'],
'host-sets': ['create', 'list'],
};
},
plugin: function (i) {
if (this.type === 'plugin') {
return {
id: `plugin-id-${i}`,
name: pluginTypes[pluginTypeCounter++ % pluginTypes.length],
description: random.words(),
};
}
},
attributes() {
switch (this.plugin?.name) {
case 'aws':
return {
disable_credential_rotation: datatype.boolean(),
region: address.state(),
};
case 'azure':
return {
disable_credential_rotation: datatype.boolean(),
tenant_id: datatype.hexaDecimal(6),
client_id: datatype.hexaDecimal(6),
subscription_id: datatype.hexaDecimal(8),
};
}
},
secrets() {
switch (this.plugin?.name) {
case 'aws':
return {
access_key_id: datatype.hexaDecimal(8),
secret_access_key: datatype.string(12),
};
case 'azure':
return {
secret_id: datatype.hexaDecimal(6),
secret_value: datatype.string(12),
};
}
},
withChildren: trait({
afterCreate(hostCatalog, server) {
const { scope, type } = hostCatalog;
+50 -10
View File
@@ -1,15 +1,55 @@
import factory from '../generated/factories/host-set';
import permissions from '../helpers/permissions';
import { datatype, internet, database } from 'faker';
import generateId from '../helpers/id';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('host-set') || [
'no-op',
'read',
'update',
'delete',
'add-hosts',
'remove-hosts',
],
id: (i) => `host-set-id-${i}`,
id: () => generateId('hs_'),
type() {
return this.hostCatalog?.type || factory.attrs.type;
},
authorized_actions: function () {
const isStatic = this.type === 'static';
const defaults = ['no-op', 'read', 'update', 'delete'];
// Only static allows host management at this time.
if (isStatic) defaults.push('add-hosts', 'remove-hosts');
return permissions.authorizedActionsFor('host-set') || defaults;
},
plugin() {
if (this.type === 'plugin') {
return this.hostCatalog.plugin;
}
},
preferred_endpoints() {
if (this.type === 'plugin') {
const enpointsAmount = datatype.number({ min: 1, max: 5 });
let result = [];
for (let i = 0; i < enpointsAmount; ++i) {
result.push(internet.ip());
}
return result;
}
},
sync_interval_seconds() {
if (this.type === 'plugin') {
return datatype.number();
}
},
// AWS specific
filters() {
if (this.plugin?.name === 'aws') {
const filtersAmount = datatype.number({ min: 1, max: 5 });
let result = [];
for (let i = 0; i < filtersAmount; ++i) {
result.push(`${datatype.string(3)}=${datatype.string(8)}`);
}
return result;
}
},
// Azure specific
filter() {
if (this.plugin?.name === 'azure') {
return `${database.column()}=${database.collation()}`;
}
},
});
+41 -8
View File
@@ -1,13 +1,46 @@
import factory from '../generated/factories/host';
import permissions from '../helpers/permissions';
import { internet, datatype } from 'faker';
import generateId from '../helpers/id';
export default factory.extend({
authorized_actions: () =>
permissions.authorizedActionsFor('host') || [
'no-op',
'read',
'update',
'delete',
],
id: (i) => `host-id-${i}`,
id: () => generateId('h_'),
type() {
return this.hostCatalog?.type || factory.attrs.type;
},
authorized_actions: function () {
const isStatic = this.type === 'static';
const defaults = ['no-op', 'read'];
// Only static allows update/delete at this time.
if (isStatic) defaults.push('update', 'delete');
return permissions.authorizedActionsFor('host') || defaults;
},
plugin() {
if (this.type === 'plugin') {
return this.hostCatalog.plugin;
}
},
ip_addresses() {
const addressesAmount = Math.floor(Math.random() * 6) + 1;
let result = [];
for (let i = 0; i < addressesAmount; ++i) {
result.push(internet.ip());
}
return result;
},
external_id() {
return datatype.uuid();
},
// Only aws plugins have dns_names
dns_names() {
if (this.plugin?.name === 'aws') {
const dnsNamesAmount = Math.floor(Math.random() * 6) + 1;
let result = [];
for (let i = 0; i < dnsNamesAmount; i++) {
result.push(internet.domainName());
}
return result;
}
},
});
+3 -1
View File
@@ -1,11 +1,11 @@
import factory from '../generated/factories/managed-group';
import { random } from 'faker';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
const types = ['oidc'];
export default factory.extend({
id: (i) => `managed-groups-id-${i}`,
type: (i) => types[i % types.length],
authorized_actions: () =>
@@ -16,6 +16,8 @@ export default factory.extend({
'delete',
],
id: () => generateId('mg_'),
attributes() {
switch (this.type) {
case 'oidc':
+3
View File
@@ -1,6 +1,7 @@
import factory from '../generated/factories/role';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
export default factory.extend({
authorized_actions: () =>
@@ -19,6 +20,8 @@ export default factory.extend({
'id=*;type=host-catalog;actions=create,read',
],
id: () => generateId('r_'),
/**
* Adds principals to the role.
*/
+2 -9
View File
@@ -1,6 +1,7 @@
import factory from '../generated/factories/scope';
import { trait } from 'ember-cli-mirage';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
export default factory.extend({
type: 'global',
@@ -27,15 +28,7 @@ export default factory.extend({
};
},
/**
* Generates realistic-ish IDs while still being deterministic.
*/
id(i) {
let id = 'tv6fv3yz8p';
if (i % 3) id = 'xk1i4dk50v';
if (i % 2) id = 's9n819zgko';
return `s_${id}${i}`;
},
id: () => generateId('s_'),
withChildren: trait({
afterCreate(record, server) {
+3 -1
View File
@@ -1,13 +1,15 @@
import factory from '../generated/factories/session';
import { trait } from 'ember-cli-mirage';
import { random } from 'faker';
import generateId from '../helpers/id';
const statusStrings = ['pending', 'active', 'canceling', 'terminated'];
export const pickRandomStatusString = () => random.arrayElement(statusStrings);
export default factory.extend({
id: (i) => `session-id-${i}`,
id: () => generateId('ss_'),
status: pickRandomStatusString,
/**
+7 -2
View File
@@ -2,9 +2,11 @@ import factory from '../generated/factories/target';
import { trait } from 'ember-cli-mirage';
import { random, datatype } from 'faker';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
const randomBoolean = (chance = 0.5) => Math.random() < chance;
const hostSetChance = 0.3;
const types = ['tcp', 'ssh'];
export default factory.extend({
authorized_actions: () =>
@@ -20,16 +22,19 @@ export default factory.extend({
'remove-credential-sources',
],
id: () => generateId('t_'),
/**
* -1 means "unlimited" and we want to generate these on occasion.
*/
session_connection_limit: () => random.arrayElement([-1, datatype.number()]),
worker_filter: (i) => (i % 2 === 0 ? random.words() : null),
type: (i) => types[i % types.length],
/**
* Generates attributes fields by type.
*/
afterCreate(target) {
if (target.type === 'tcp') {
if (target.type === 'tcp' || target.type === 'ssh') {
target.update({
attributes: {
default_port: datatype.number(),
+2 -1
View File
@@ -1,5 +1,6 @@
import factory from '../generated/factories/user';
import permissions from '../helpers/permissions';
import generateId from '../helpers/id';
export default factory.extend({
authorized_actions: () =>
@@ -11,5 +12,5 @@ export default factory.extend({
'add-accounts',
'remove-accounts',
],
id: (i) => `user-${i}`,
id: () => generateId('u_'),
});
@@ -5,7 +5,7 @@ import { random, date, datatype } from 'faker';
* GeneratedHostCatalogModelFactory
*/
export default Factory.extend({
type: () => random.arrayElement(['static', 'plugin']),
type: 'static',
name: () => random.words(),
description: () => random.words(),
created_time: () => date.recent(),
@@ -1,5 +1,5 @@
import { Factory } from 'ember-cli-mirage';
import { random, date, internet, datatype } from 'faker';
import { random, date, datatype, internet } from 'faker';
/**
* GeneratedHostModelFactory
@@ -9,6 +9,7 @@ export default Factory.extend({
name: () => random.words(),
session_max_seconds: () => datatype.number(),
session_connection_limit: () => datatype.number(),
worker_filter: () => random.words(),
description: () => random.words(),
created_time: () => date.recent(),
updated_time: () => date.recent(),
+41
View File
@@ -0,0 +1,41 @@
const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
/**
* The Mulberry32 PRNG, JavaScript implementation. This is a seedable PRNG,
* which we need in order to deterministically generate IDs which are stable
* across reloads. Unfortunately, the built-in `Math.random` function
* is not seedable.
*
* Source:
* https://github.com/bryc/code/blob/master/jshash/PRNGs.md#mulberry32
*
* @param {number} a
* @return {number}
*/
function mulberry32(a = 0) {
return function () {
a += 0x6d2b79f5 | 0;
var t = Math.imul(a ^ (a >>> 15), 1 | a);
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
};
}
const random = mulberry32();
/**
* Generates a random ID string at least 10 characters long with the
* specified prefix.
*
* @param {string} prefix
* @return {string}
*/
export default function (prefix = '') {
let result = '';
for (let i = 0; i < 10; i++) {
result = result.concat(
characters[Math.floor(random() * characters.length)]
);
}
return prefix.concat(result);
}
+2 -1
View File
@@ -1,4 +1,5 @@
import { Model, belongsTo } from 'ember-cli-mirage';
import { belongsTo } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
+2 -1
View File
@@ -1,4 +1,5 @@
import { Model, belongsTo } from 'ember-cli-mirage';
import { belongsTo } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
+20
View File
@@ -0,0 +1,20 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({
assignDefaults(defaultAttrs, attrs) {
Object.entries(defaultAttrs).map(([key, value]) => {
if (!attrs[key]) {
attrs[key] = value;
}
});
},
defaultAttrs: () => ({
version: 1,
authorized_actions: ['no-op', 'read', 'update', 'delete'],
created_time: new Date(),
}),
save() {
this.assignDefaults(this.defaultAttrs(), this.attrs);
return Model.prototype.save.apply(this, arguments);
},
});
@@ -1,4 +1,5 @@
import { Model, belongsTo } from 'ember-cli-mirage';
import { belongsTo } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
+2 -1
View File
@@ -1,4 +1,5 @@
import { Model, belongsTo } from 'ember-cli-mirage';
import { belongsTo } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
+2 -1
View File
@@ -1,4 +1,5 @@
import { Model, belongsTo, hasMany } from 'ember-cli-mirage';
import { belongsTo, hasMany } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
+2 -1
View File
@@ -1,4 +1,5 @@
import { Model, belongsTo, hasMany } from 'ember-cli-mirage';
import { belongsTo, hasMany } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
+2 -1
View File
@@ -1,4 +1,5 @@
import { Model, belongsTo, hasMany } from 'ember-cli-mirage';
import { belongsTo, hasMany } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
+2 -1
View File
@@ -1,4 +1,5 @@
import { Model, belongsTo } from 'ember-cli-mirage';
import { belongsTo } from 'ember-cli-mirage';
import Model from './base';
export default Model.extend({
scope: belongsTo(),
Loaded 100 of 577 files, more files were not shown because too many files have changed in this diff. Show more