Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: create ssh type target in admin-ui #1027

Merged
merged 20 commits into from
Mar 31, 2022
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
eff5f90
feat: 🎸 update target route to support ssh type
DhariniJeeva Mar 28, 2022
15e3a3e
Merge branch 'main' into create-ssh-target-route
DhariniJeeva Mar 28, 2022
5f7497a
feat: 🎸 update target route to support ssh type
DhariniJeeva Mar 28, 2022
ada60cb
Merge branch 'create-ssh-target-route' of github.com:hashicorp/bounda…
DhariniJeeva Mar 28, 2022
b63a49c
feat: 🎸 create SSH target in admin
DhariniJeeva Mar 17, 2022
5a5bb30
fix: πŸ› remove comments
DhariniJeeva Mar 17, 2022
240ef58
chore: πŸ€– remove comment
DhariniJeeva Mar 17, 2022
8c8fbee
chore: πŸ€– add helper text for tcp and ssh target type
DhariniJeeva Mar 17, 2022
f910d5a
fix: πŸ› add placeholder to default ports
DhariniJeeva Mar 28, 2022
62de214
chore: πŸ€– add a conditional check to display and create ssh type
DhariniJeeva Mar 28, 2022
e585c48
test: πŸ’ add a create test for type ssh
DhariniJeeva Mar 28, 2022
384f28e
feat: 🎸 create SSH target in admin
DhariniJeeva Mar 17, 2022
f521974
chore: πŸ€– remove comment
DhariniJeeva Mar 17, 2022
aa993f8
chore: πŸ€– add a conditional check to display and create ssh type
DhariniJeeva Mar 28, 2022
1128d6d
fix: πŸ› resolve merge conflict
DhariniJeeva Mar 28, 2022
8093881
Update addons/core/translations/resources/en-us.yaml
DhariniJeeva Mar 28, 2022
4d5dee8
refactor: πŸ’‘ simplify target type components
DhariniJeeva Mar 30, 2022
93df2bd
refactor: πŸ’‘ move details into a shared component
DhariniJeeva Mar 30, 2022
2c72e5b
Merge branch 'main' into ICU-3644-create-ssh-target-in-admin
DhariniJeeva Mar 31, 2022
a902711
Merge branch 'main' into ICU-3644-create-ssh-target-in-admin
cameronperera Mar 31, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions addons/core/translations/resources/en-us.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,9 @@ target:
types:
tcp: TCP
ssh: SSH
help:
tcp: This target belongs to an TCP host catalog and will use TCP to connect
calcaide marked this conversation as resolved.
Show resolved Hide resolved
ssh: This target belongs to an SSH host catalog and will use SSH to connect
host-source:
title: Host Source
title_plural: Host Sources
Expand Down
128 changes: 6 additions & 122 deletions ui/admin/app/components/form/target/index.hbs
Original file line number Diff line number Diff line change
@@ -1,122 +1,6 @@
<Rose::Form
@onSubmit={{@submit}}
@cancel={{@cancel}}
@disabled={{@model.isSaving}}
@error={{@model.errors.base}}
@showEditToggle={{if @model.isNew false true}}
as |form|
>

<form.input
@value={{@model.type}}
@label={{t 'form.type.label'}}
readonly={{true}}
@disabled={{true}}
/>

<form.input
@name='name'
@type='text'
@value={{@model.name}}
@label={{t 'form.name.label'}}
@helperText={{t 'form.name.help'}}
@error={{@model.errors.name}}
as |field|
>
{{#if @model.errors.name}}
<field.errors as |errors|>
{{#each @model.errors.name as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>

<form.textarea
@name='description'
@type='text'
@value={{@model.description}}
@label={{t 'form.description.label'}}
@helperText={{t 'form.description.help'}}
@error={{@model.errors.description}}
as |field|
>
{{#if @model.errors.description}}
<field.errors as |errors|>
{{#each @model.errors.description as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.textarea>

<form.input
@name='session_max_seconds'
@type='number'
@value={{@model.session_max_seconds}}
@label={{t 'form.session_max_seconds.label'}}
@error={{@model.errors.session_max_seconds}}
@helperText={{t 'form.session_max_seconds.help'}}
min='0'
step='1'
as |field|
>
{{#if @model.errors.session_max_seconds}}
<field.errors as |errors|>
{{#each @model.errors.session_max_seconds as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>

<form.input
@name='session_connection_limit'
@type='number'
@value={{@model.session_connection_limit}}
@label={{t 'form.session_connection_limit.label'}}
@error={{@model.errors.session_connection_limit}}
@helperText={{t 'form.session_connection_limit.help'}}
min='-1'
step='1'
as |field|
>
{{#if @model.errors.session_connection_limit}}
<field.errors as |errors|>
{{#each @model.errors.session_connection_limit as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>

{{! TODO this is a type-specific field }}
<form.input
@name='default_port'
@type='number'
@value={{@model.default_port}}
@label={{t 'form.default_port.label'}}
@error={{@model.errors.default_port}}
@helperText={{t 'form.default_port.help'}}
min='0'
step='1'
as |field|
>
{{! TODO need to figure out how to reference `attributes.errors` here }}
{{#if @model.errors.default_port}}
<field.errors as |errors|>
{{#each @model.errors.default_port as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>
{{#if (can 'save model' @model)}}
<form.actions
@disabled={{if @model.cannotSave @model.cannotSave}}
@enableEditText={{t 'actions.edit-form'}}
@submitText={{t 'actions.save'}}
@cancelText={{t 'actions.cancel'}}
/>
{{/if}}
</Rose::Form>
{{component
DhariniJeeva marked this conversation as resolved.
Show resolved Hide resolved
(concat 'form/target/' @model.type)
model=@model
submit=@submit
cancel=@cancel
}}
134 changes: 134 additions & 0 deletions ui/admin/app/components/form/target/ssh/index.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<Rose::Form
@onSubmit={{@submit}}
@cancel={{@cancel}}
@disabled={{@model.isSaving}}
@error={{@model.errors.base}}
@showEditToggle={{if @model.isNew false true}}
as |form|
>
<form.input
@name='name'
@type='text'
@value={{@model.name}}
@label={{t 'form.name.label'}}
@helperText={{t 'form.name.help'}}
@error={{@model.errors.name}}
as |field|
>
{{#if @model.errors.name}}
<field.errors as |errors|>
{{#each @model.errors.name as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>

<form.textarea
@name='description'
@type='text'
@value={{@model.description}}
@label={{t 'form.description.label'}}
@helperText={{t 'form.description.help'}}
@error={{@model.errors.description}}
as |field|
>
{{#if @model.errors.description}}
<field.errors as |errors|>
{{#each @model.errors.description as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.textarea>

<form.fieldset>
<:title>{{t 'form.type.label'}}</:title>
<:body>
<form.radioGroup
@name='types'
@selectedValue={{@model.type}}
@changed={{@changeType}}
as |radioGroup|
>
<radioGroup.card
@label={{t 'resources.target.types.ssh'}}
@helperText={{t 'resources.target.help.ssh'}}
@value={{@model.type}}
@layout='wide'
readonly={{true}}
@disabled={{true}}
/>
</form.radioGroup>
</:body>
</form.fieldset>

<form.input
@name='session_max_seconds'
@type='number'
@value={{@model.session_max_seconds}}
@label={{t 'form.session_max_seconds.label'}}
@error={{@model.errors.session_max_seconds}}
@helperText={{t 'form.session_max_seconds.help'}}
min='0'
step='1'
as |field|
>
{{#if @model.errors.session_max_seconds}}
<field.errors as |errors|>
{{#each @model.errors.session_max_seconds as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>

<form.input
@name='session_connection_limit'
@type='number'
@value={{@model.session_connection_limit}}
@label={{t 'form.session_connection_limit.label'}}
@error={{@model.errors.session_connection_limit}}
@helperText={{t 'form.session_connection_limit.help'}}
min='-1'
step='1'
as |field|
>
{{#if @model.errors.session_connection_limit}}
<field.errors as |errors|>
{{#each @model.errors.session_connection_limit as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>

<form.input
@name='default_port'
@type='number'
@value={{@model.default_port}}
@label={{t 'form.default_port.label'}}
@error={{@model.errors.default_port}}
@helperText={{t 'form.default_port.help'}}
placeholder='22'
min='0'
step='1'
as |field|
>
{{#if @model.errors.default_port}}
<field.errors as |errors|>
{{#each @model.errors.default_port as |error|}}
<errors.message>{{error.message}}</errors.message>
{{/each}}
</field.errors>
{{/if}}
</form.input>
{{#if (can 'save model' @model)}}
<form.actions
@disabled={{if @model.cannotSave @model.cannotSave}}
@enableEditText={{t 'actions.edit-form'}}
@submitText={{t 'actions.save'}}
@cancelText={{t 'actions.cancel'}}
/>
{{/if}}
</Rose::Form>