Merge Boundary UI OSS branch 'main' at commit 054881dc4

This commit is contained in:
github-team-secure-boundary committed 2023-04-17 17:23:04 +00:00
commit 51925b9947
8 files changed
+183 -105

No files matched your search

+11
View File
@@ -29,6 +29,12 @@ export default class HostModel extends GeneratedHostModel {
})
external_id;
@attr('string', {
description: 'The external facing name for the plugin based host.',
readOnly: true,
})
external_name;
// Aws specific
@attr({
readOnly: true,
@@ -89,4 +95,9 @@ export default class HostModel extends GeneratedHostModel {
this.plugin = { name: type };
}
}
// Plugin hosts can support an external name
get displayName() {
return this.name || this.external_name || this.id;
}
}
+12 -2
View File
@@ -10,7 +10,9 @@ import generateId from '../helpers/id';
export default factory.extend({
id: () => generateId('h_'),
name() {
if (this.type === 'static') return faker.random.words();
},
type() {
return this.hostCatalog?.type || factory.attrs.type;
},
@@ -34,8 +36,16 @@ export default factory.extend({
}
return result;
},
// Return external fields only for plugins
external_id() {
return faker.datatype.uuid();
if (this.type === 'plugin') {
return faker.datatype.uuid();
}
},
external_name(i) {
if (this.type === 'plugin') {
return `${this.plugin.name} provided name ${i}`;
}
},
// Only aws plugins have dns_names
dns_names() {
@@ -11,7 +11,6 @@ import { faker } from '@faker-js/faker';
*/
export default Factory.extend({
type: 'static',
name: () => faker.random.words(),
description: () => faker.random.words(),
created_time: () => faker.date.recent(),
updated_time: () => faker.date.recent(),
+8
View File
@@ -3,9 +3,15 @@
id:
label: ID
external_id:
label: External ID
help: A read-only ID given by the plugin host catalog provider
name:
label: Name
help: Name for identification purposes
external_name:
label: External Name
help: A read-only name given by the plugin host catalog provider
description:
label: Description
help: Description for identification purposes
@@ -153,10 +159,12 @@ disable_credential_rotation:
help: Azure host catalogs do not yet support credential rotation.
dns_names:
label: Latest DNS Names
help: Read-only DNS names given by the plugin host catalog provider
host:
label: Host
ip_addresses:
label: Latest IP Addresses
help: Read-only public and private IP addresses given by the plugin host catalog provider
sync-interval:
label: Sync Interval
help: Optional. Number of seconds between the time Boundary syncs hosts in this set.
@@ -149,6 +149,7 @@ host-set:
host:
title: Host
title_plural: Hosts
no_name_title: Unnamed Host
description: A host is a resource that may be accessed by a Boundary target.
messages:
welcome:
+79 -54
View File
@@ -11,51 +11,70 @@
as |form|
>
<form.input
<Hds::Form::TextInput::Field
@value={{@model.type}}
@label={{t 'form.type.label'}}
readonly={{true}}
@disabled={{true}}
/>
<form.input
@name='name'
@type='name'
@value={{@model.name}}
@label={{t 'form.name.label'}}
@error={{@model.errors.name}}
@helperText={{t 'form.name.help'}}
readonly={{false}}
as |field|
name='type'
disabled={{true}}
as |F|
>
{{#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>
<F.Label>{{t 'form.type.label'}}</F.Label>
</Hds::Form::TextInput::Field>
<form.textarea
@name='description'
@type='description'
{{#if @model.external_name}}
<Hds::Form::TextInput::Field
@value={{@model.external_name}}
@isInvalid={{@model.errors.external_name}}
name='external_name'
disabled={{true}}
as |F|
>
<F.Label>{{t 'form.external_name.label'}}</F.Label>
<F.HelperText>{{t 'form.external_name.help'}}</F.HelperText>
{{#if @model.errors.external_name}}
<F.Error as |E|>
{{#each @model.errors.external_name as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
{{/if}}
<Hds::Form::TextInput::Field
@value={{@model.external_id}}
@isInvalid={{@model.errors.external_id}}
name='external_id'
disabled={{true}}
as |F|
>
<F.Label>{{t 'form.external_id.label'}}</F.Label>
<F.HelperText>{{t 'form.external_id.help'}}</F.HelperText>
{{#if @model.errors.external_id}}
<F.Error as |E|>
{{#each @model.errors.external_id as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
<Hds::Form::Textarea::Field
@value={{@model.description}}
@label={{t 'form.description.label'}}
@error={{@model.errors.description}}
@helperText={{t 'form.description.help'}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|
@isInvalid={{@model.errors.description}}
name='description'
disabled={{true}}
as |F|
>
<F.Label>{{t 'form.description.label'}}</F.Label>
<F.HelperText>{{t 'form.description.help'}}</F.HelperText>
{{#if @model.errors.description}}
<field.errors as |errors|>
<F.Error as |E|>
{{#each @model.errors.description as |error|}}
<errors.message>{{error.message}}</errors.message>
<E.Message>{{error.message}}</E.Message>
{{/each}}
</field.errors>
</F.Error>
{{/if}}
</form.textarea>
</Hds::Form::Textarea::Field>
<InfoField
@value={{t 'descriptions.provider'}}
@@ -69,27 +88,33 @@
</F.HelperText>
</InfoField>
<form.fieldset>
<:title>{{t 'form.ip_addresses.label'}}</:title>
<:body>
{{#each @model.ip_addresses as |ip_address|}}
<form.input
<Hds::Form::Fieldset as |F|>
<F.Legend>{{t 'form.ip_addresses.label'}}</F.Legend>
<F.HelperText>{{t 'form.ip_addresses.help'}} </F.HelperText>
{{#each @model.ip_addresses as |ip_address|}}
<F.Control>
<Hds::Form::TextInput::Base
@value={{ip_address}}
readonly={{true}}
@disabled={{true}}
disabled={{true}}
@width='unset'
/>
{{/each}}
</:body>
</form.fieldset>
</F.Control>
{{/each}}
</Hds::Form::Fieldset>
<form.fieldset>
<:title>{{t 'form.dns_names.label'}}</:title>
<:body>
{{#each @model.dns_names as |dns_name|}}
<form.input @value={{dns_name}} readonly={{true}} @disabled={{true}} />
{{/each}}
</:body>
</form.fieldset>
<Hds::Form::Fieldset as |F|>
<F.Legend>{{t 'form.dns_names.label'}}</F.Legend>
<F.HelperText>{{t 'form.dns_names.help'}} </F.HelperText>
{{#each @model.dns_names as |dns_name|}}
<F.Control>
<Hds::Form::TextInput::Base
@value={{dns_name}}
disabled={{true}}
@width='unset'
/>
</F.Control>
{{/each}}
</Hds::Form::Fieldset>
{{#if (can 'save model' @model)}}
<form.actions
@@ -11,51 +11,70 @@
as |form|
>
<form.input
<Hds::Form::TextInput::Field
@value={{@model.type}}
@label={{t 'form.type.label'}}
readonly={{true}}
@disabled={{true}}
/>
<form.input
@name='name'
@type='name'
@value={{@model.name}}
@label={{t 'form.name.label'}}
@error={{@model.errors.name}}
@helperText={{t 'form.name.help'}}
readonly={{false}}
as |field|
name='type'
disabled={{true}}
as |F|
>
{{#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>
<F.Label>{{t 'form.type.label'}}</F.Label>
</Hds::Form::TextInput::Field>
<form.textarea
@name='description'
@type='description'
{{#if @model.external_name}}
<Hds::Form::TextInput::Field
@value={{@model.external_name}}
@isInvalid={{@model.errors.external_name}}
name='external_name'
disabled={{true}}
as |F|
>
<F.Label>{{t 'form.external_name.label'}}</F.Label>
<F.HelperText>{{t 'form.external_name.help'}}</F.HelperText>
{{#if @model.errors.external_name}}
<F.Error as |E|>
{{#each @model.errors.external_name as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
{{/if}}
<Hds::Form::TextInput::Field
@value={{@model.external_id}}
@isInvalid={{@model.errors.external_id}}
name='external_id'
disabled={{true}}
as |F|
>
<F.Label>{{t 'form.external_id.label'}}</F.Label>
<F.HelperText>{{t 'form.external_id.help'}}</F.HelperText>
{{#if @model.errors.external_id}}
<F.Error as |E|>
{{#each @model.errors.external_id as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
<Hds::Form::Textarea::Field
@value={{@model.description}}
@label={{t 'form.description.label'}}
@error={{@model.errors.description}}
@helperText={{t 'form.description.help'}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|
@isInvalid={{@model.errors.description}}
name='description'
disabled={{true}}
as |F|
>
<F.Label>{{t 'form.description.label'}}</F.Label>
<F.HelperText>{{t 'form.description.help'}}</F.HelperText>
{{#if @model.errors.description}}
<field.errors as |errors|>
<F.Error as |E|>
{{#each @model.errors.description as |error|}}
<errors.message>{{error.message}}</errors.message>
<E.Message>{{error.message}}</E.Message>
{{/each}}
</field.errors>
</F.Error>
{{/if}}
</form.textarea>
</Hds::Form::Textarea::Field>
<InfoField
@value={{t 'descriptions.provider'}}
@@ -68,19 +87,20 @@
{{t 'resources.host-catalog.types.azure'}}
</F.HelperText>
</InfoField>
<form.fieldset>
<:title>{{t 'form.ip_addresses.label'}}</:title>
<:body>
{{#each @model.ip_addresses as |ip_address|}}
<form.input
<Hds::Form::Fieldset as |F|>
<F.Legend>{{t 'form.ip_addresses.label'}}</F.Legend>
<F.HelperText>{{t 'form.ip_addresses.help'}} </F.HelperText>
{{#each @model.ip_addresses as |ip_address|}}
<F.Control>
<Hds::Form::TextInput::Base
@value={{ip_address}}
readonly={{true}}
@disabled={{true}}
disabled={{true}}
@width='unset'
/>
{{/each}}
</:body>
</form.fieldset>
</F.Control>
{{/each}}
</Hds::Form::Fieldset>
{{#if (can 'save model' @model)}}
<form.actions
@@ -31,10 +31,14 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
{{#if @model.hostSet.isStatic}}
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
{{else}}
<row.headerCell>{{t 'form.external_name.label'}}</row.headerCell>
{{/if}}
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
{{#if @model.isStatic}}
{{#if @model.hostSet.isStatic}}
<row.headerCell>{{t 'titles.actions'}}</row.headerCell>
{{/if}}
</header.row>