Merge branch 'develop' into feature-stale-token-checking

This commit is contained in:
Susmitha Girumala authored and GitHub committed 2020-09-23 18:40:31 -04:00
commit ed8ac84fc5
80 files changed
+339 -309

No files matched your search

+6 -2
View File
@@ -1,6 +1,10 @@
<Rose::Message @title={{t (concat "errors." this.messageCode ".title")}} @subtitle={{concat (t "errors.titles.error") " " this.status}} @icon={{this.icon}} as |message|>
<Rose::Message
@title={{t (concat "errors." this.messageCode ".title")}}
@subtitle={{concat (t "errors.generic.title") " " this.status}}
@icon={{this.icon}}
as |message|>
<message.description>{{t (concat "errors." this.messageCode ".description")}}</message.description>
{{#if this.helpRoute}}
<message.link @route={{this.helpRoute}}>{{t "actions.help"}}</message.link>
{{/if}}
</Rose::Message>
</Rose::Message>
@@ -10,7 +10,7 @@
@name="currentPassword"
@type="password"
@value={{this.currentPassword}}
@label={{t "form.label.current_password"}}
@label={{t "form.current_password.label"}}
@error={{@model.errors.name}}
readonly={{false}}
autocomplete="current-password"
@@ -28,7 +28,7 @@
@name="newPassword"
@type="password"
@value={{this.newPassword}}
@label={{t "form.label.new_password"}}
@label={{t "form.new_password.label"}}
@error={{@model.errors.name}}
readonly={{false}}
autocomplete="new-password"
@@ -6,8 +6,8 @@
as |form|
>
<form.input
@value={{t (concat 'account.types.' @model.type)}}
@label={{t "form.label.type"}}
@value={{t (concat 'resources.account.types.' @model.type)}}
@label={{t "form.type.label"}}
readonly={{true}}
@disabled={{true}} />
@@ -15,7 +15,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -32,7 +32,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
@@ -50,7 +50,7 @@
@name="login_name"
@type="text"
@value={{@model.attributes.login_name}}
@label={{t "form.label.identification"}}
@label={{t "form.login_name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -68,7 +68,7 @@
@name="password"
@type="password"
@value={{this.password}}
@label={{t "form.label.password"}}
@label={{t "form.password.label"}}
@error={{@model.errors.name}}
readonly={{false}}
autocomplete="new-password"
@@ -10,7 +10,7 @@
@name="password"
@type="password"
@value={{this.password}}
@label={{t "form.label.password"}}
@label={{t "form.password.label"}}
@error={{@model.errors.name}}
readonly={{false}}
autocomplete="new-password"
@@ -6,8 +6,8 @@
as |form|
>
<form.input
@value={{t (concat 'auth.method-types.' @model.type)}}
@label={{t "form.label.type"}}
@value={{t (concat 'resources.auth-method.types.' @model.type)}}
@label={{t "form.type.label"}}
readonly={{true}}
@disabled={{true}} />
@@ -15,7 +15,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -32,7 +32,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
@@ -50,4 +50,4 @@
@disabled={{if @model.cannotSave @model.cannotSave}}
@submitText={{t "actions.save"}}
@cancelText={{t "actions.cancel"}} />
</Rose::Form>
</Rose::Form>
@@ -15,8 +15,8 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
+2 -2
View File
@@ -10,7 +10,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -27,7 +27,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
@@ -10,7 +10,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -27,7 +27,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
@@ -15,9 +15,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -25,9 +25,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.label.address'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.address.label'}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -8,7 +8,7 @@
<form.input
@value={{t (concat 'host-set.types.' @model.type)}}
@label={{t "form.label.type"}}
@label={{t "form.type.label"}}
readonly={{true}}
@disabled={{true}} />
@@ -16,7 +16,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -33,7 +33,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
+7 -4
View File
@@ -8,7 +8,7 @@
<form.input
@value={{t (concat 'host.types.' @model.type)}}
@label={{t "form.label.type"}}
@label={{t "form.type.label"}}
readonly={{true}}
@disabled={{true}} />
@@ -16,8 +16,9 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
@helperText={{t "form.name.help"}}
readonly={{false}}
as |field|>
{{#if @model.errors.name}}
@@ -33,8 +34,9 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
@helperText={{t "form.description.help"}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|>
@@ -51,8 +53,9 @@
@name="address"
@type="text"
@value={{@model.attributes.address}}
@label={{t "form.label.address"}}
@label={{t "form.address.label"}}
@error={{@model.errors.name}}
@helperText={{t "form.address.help"}}
readonly={{false}}
as |field|>
{{#if @model.errors.name}}
+2 -2
View File
@@ -10,7 +10,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -27,7 +27,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
@@ -10,7 +10,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -27,7 +27,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
@@ -15,9 +15,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -17,7 +17,7 @@
<input.label>{{t "titles.new-grant"}}</input.label>
</item.key>
<item.cell>
<input.field />
<input.field title={{t "form.grant.help"}} />
</item.cell>
<item.cell>
<Rose::Button
@@ -63,10 +63,10 @@
@error={{@model.errors.grants}}
as |input|>
<item.key>
<input.label>{{t "form.label.grant"}}</input.label>
<input.label>{{t "form.grant.label"}}</input.label>
</item.key>
<item.cell>
<input.field />
<input.field title={{t "form.grant.help"}} />
</item.cell>
</form.input>
<item.cell>
+4 -2
View File
@@ -10,8 +10,9 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
@helperText={{t "form.name.help"}}
readonly={{false}}
as |field|>
{{#if @model.errors.name}}
@@ -27,8 +28,9 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
@helperText={{t "form.description.help"}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|>
@@ -14,9 +14,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
<row.headerCell>{{t 'resources.host-catalog'}}</row.headerCell>
</header.row>
</table.header>
+7 -4
View File
@@ -8,7 +8,7 @@
<form.input
@value={{t (concat 'target.types.' @model.type)}}
@label={{t "form.label.type"}}
@label={{t "form.type.label"}}
readonly={{true}}
@disabled={{true}} />
@@ -16,8 +16,9 @@
@name="name"
@type="text"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
@helperText={{t "form.name.help"}}
as |field|>
{{#if @model.errors.name}}
<field.errors as |errors|>
@@ -32,8 +33,9 @@
@name="description"
@type="text"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
@helperText={{t "form.description.help"}}
as |field|>
{{#if @model.errors.description}}
<field.errors as |errors|>
@@ -49,8 +51,9 @@
@name="default_port"
@type="number"
@value={{@model.attributes.default_port}}
@label={{t "form.label.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|>
+2 -2
View File
@@ -10,7 +10,7 @@
@name="name"
@type="name"
@value={{@model.name}}
@label={{t "form.label.name"}}
@label={{t "form.name.label"}}
@error={{@model.errors.name}}
readonly={{false}}
as |field|>
@@ -27,7 +27,7 @@
@name="description"
@type="description"
@value={{@model.description}}
@label={{t "form.label.description"}}
@label={{t "form.description.label"}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
@@ -13,6 +13,6 @@ export default class ScopesScopeAuthMethodsController extends Controller {
* @type {string}
*/
get breadCrumb() {
return this.intl.t('resources.auth-methods');
return this.intl.t('resources.auth-method.title_plural');
}
}
@@ -13,6 +13,6 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsController extends
* @type {string}
*/
get breadCrumb() {
return this.intl.t('resources.accounts');
return this.intl.t('resources.account.title_plural');
}
}
@@ -42,7 +42,7 @@ export default class AccountChangePasswordRoute extends Route {
// redirects may abort this initial transition, resulting in a
// TransitionAborted error, which we do not want to show to the user.
await this.replaceWith('index').catch(() => {});
this.notify.success(this.intl.t('notify.save-success'));
this.notify.success(this.intl.t('notifications.save-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -54,7 +54,7 @@ export default class ScopesScopeAuthMethodsRoute extends Route {
);
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
} catch (error) {
//TODO: replace with translated strings
@@ -72,7 +72,7 @@ export default class ScopesScopeAuthMethodsRoute extends Route {
await authMethod.destroyRecord();
await this.transitionTo('scopes.scope.auth-methods');
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
} catch (error) {
//TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -54,7 +54,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route
);
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
} catch (error) {
// TODO: replace with translated strings
@@ -72,7 +72,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route
await account.destroyRecord();
await this.transitionTo('scopes.scope.auth-methods.auth-method.accounts');
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
} catch (error) {
//TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -39,7 +39,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsAccountSettingsRout
await this.replaceWith(
'scopes.scope.auth-methods.auth-method.accounts.account.set-password'
);
this.notify.success(this.intl.t('notify.save-success'));
this.notify.success(this.intl.t('notifications.save-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -57,7 +57,7 @@ export default class ScopesScopeAuthenticateMethodRoute extends Route {
this.transitionTo('scopes.scope.projects');
}
} catch (e) {
const errorMessage = this.intl.t('errors.titles.authentication-failed');
const errorMessage = this.intl.t('errors.authentication-failed.title');
this.notify.error(errorMessage, { closeAfter: null });
}
}
+2 -2
View File
@@ -50,7 +50,7 @@ export default class ScopesScopeGroupsRoute extends Route {
await group.save();
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
this.transitionTo('scopes.scope.groups.group', group);
} catch (error) {
@@ -68,7 +68,7 @@ export default class ScopesScopeGroupsRoute extends Route {
try {
await group.destroyRecord();
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo('scopes.scope.groups');
} catch (error) {
//TODO: replace with translated strings
@@ -67,7 +67,7 @@ export default class ScopesScopeGroupsGroupAddMembersRoute extends Route {
try {
await group.addMembers(userIDs);
await this.replaceWith('scopes.scope.groups.group.members');
this.notify.success(this.intl.t('notify.save-success'));
this.notify.success(this.intl.t('notifications.add-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -40,7 +40,7 @@ export default class ScopesScopeGroupsGroupMembersRoute extends Route {
try {
await group.removeMember(member.id);
await this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.remove-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
+1 -1
View File
@@ -51,7 +51,7 @@ export default class ScopesScopeOrgsRoute extends Route {
await org.save();
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
this.transitionTo('scopes.scope', org);
} catch (error) {
+2 -2
View File
@@ -66,7 +66,7 @@ export default class ScopesScopeProjectsRoute extends Route {
await project.save();
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
this.transitionTo('scopes.scope.projects.project', project);
} catch (error) {
@@ -84,7 +84,7 @@ export default class ScopesScopeProjectsRoute extends Route {
try {
await project.destroyRecord();
this.refresh();
this.notify.success('notify.delete-success');
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo('scopes.scope.projects');
} catch (error) {
// TODO: replace with translated strings
@@ -44,7 +44,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsRoute extends Route {
await hostCatalog.save();
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
this.transitionTo(
'scopes.scope.projects.project.host-catalogs.host-catalog',
@@ -65,7 +65,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsRoute extends Route {
try {
await project.destroyRecord();
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo('scopes.scope.projects.project.host-catalogs');
} catch (error) {
// TODO: replace with translated strings
@@ -53,7 +53,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsRo
);
await this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
} catch (error) {
// TODO: replace with translated strings
@@ -69,7 +69,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsRo
async delete(hostSet) {
try {
await hostSet.destroyRecord();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo(
'scopes.scope.projects.project.host-catalogs.host-catalog.host-sets'
);
@@ -93,7 +93,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsHo
await this.replaceWith(
'scopes.scope.projects.project.host-catalogs.host-catalog.host-sets.host-set.hosts'
);
this.notify.success(this.intl.t('notify.save-success'));
this.notify.success(this.intl.t('notifications.add-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -45,7 +45,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsHo
adapterOptions: { scopeID, hostCatalogID },
});
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.remove-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -53,7 +53,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostsRoute
);
await this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
} catch (error) {
// TODO: replace with translated strings
@@ -70,7 +70,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostsRoute
try {
await host.destroyRecord();
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo(
'scopes.scope.projects.project.host-catalogs.host-catalog.hosts'
);
@@ -75,7 +75,7 @@ export default class ScopesScopeProjectsProjectSessionsRoute extends Route {
async cancelSession(session) {
try {
await session.cancelSession();
this.notify.success(this.intl.t('notify.session-canceled'));
this.notify.success(this.intl.t('notifications.canceled-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -44,7 +44,7 @@ export default class ScopesScopeProjectsProjectTargetsRoute extends Route {
await target.save();
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
this.transitionTo('scopes.scope.projects.project.targets.target', target);
} catch (error) {
@@ -62,7 +62,7 @@ export default class ScopesScopeProjectsProjectTargetsRoute extends Route {
try {
await target.destroyRecord();
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo('scopes.scope.projects.project.targets');
} catch (error) {
// TODO: replace with translated strings
@@ -76,7 +76,7 @@ export default class ScopesScopeProjectsProjectTargetsTargetAddHostSetsRoute ext
this.replaceWith(
'scopes.scope.projects.project.targets.target.host-sets'
);
this.notify.success(this.intl.t('notify.save-success'));
this.notify.success(this.intl.t('notifications.add-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -57,7 +57,7 @@ export default class ScopesScopeProjectsProjectTargetsTargetHostSetsRoute extend
try {
await target.removeHostSet(hostSet.id);
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.remove-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
+2 -2
View File
@@ -50,7 +50,7 @@ export default class ScopesScopeRolesRoute extends Route {
await role.save();
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
this.transitionTo('scopes.scope.roles.role', role);
} catch (error) {
@@ -68,7 +68,7 @@ export default class ScopesScopeRolesRoute extends Route {
try {
await role.destroyRecord();
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo('scopes.scope.roles');
} catch (error) {
// TODO: replace with translated strings
@@ -61,7 +61,7 @@ export default class ScopesScopeRolesRoleAddPrincipalsRoute extends Route {
try {
await role.addPrincipals(principalIDs);
this.replaceWith('scopes.scope.roles.role.principals');
this.notify.success(this.intl.t('notify.save-success'));
this.notify.success(this.intl.t('notifications.add-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -57,7 +57,7 @@ export default class ScopesScopeRolesRoleGrantsRoute extends Route {
async save(role) {
try {
await role.saveGrants();
this.notify.success(this.intl.t('notify.save-success'));
this.notify.success(this.intl.t('notifications.save-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
@@ -65,7 +65,7 @@ export default class ScopesScopeRolesRolePrincipalsRoute extends Route {
const role = this.modelFor('scopes.scope.roles.role');
await role.removePrincipal(principal.id);
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.remove-success'));
} catch (error) {
// TODO: replace with translated strings
this.notify.error(error.message, { closeAfter: null });
+2 -2
View File
@@ -51,7 +51,7 @@ export default class ScopesScopeUsersRoute extends Route {
await user.save();
this.refresh();
this.notify.success(
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
);
this.transitionTo('scopes.scope.users.user', user);
} catch (error) {
@@ -69,7 +69,7 @@ export default class ScopesScopeUsersRoute extends Route {
try {
await user.destroyRecord();
this.refresh();
this.notify.success(this.intl.t('notify.delete-success'));
this.notify.success(this.intl.t('notifications.delete-success'));
this.transitionTo('scopes.scope.users');
} catch (error) {
// TODO: replace with translated strings
+1 -1
View File
@@ -20,7 +20,7 @@
{{t "resources.roles"}}
</nav.link>
<nav.link @route="scopes.scope.auth-methods">
{{t "resources.auth-methods"}}
{{t "resources.auth-method.title_plural"}}
</nav.link>
</Rose::Nav::Sidebar>
@@ -3,13 +3,13 @@
@route="scopes.scope.auth-methods.auth-method.accounts.new"
@model={{@model}}
>
{{t "actions.add-account"}}
{{t "resources.account.actions.create"}}
</dropdown.link>
<dropdown.button
@style="danger"
@disabled={{@model.canSave}}
{{on "click" (route-action "delete" @model)}}
>
{{t 'actions.delete-auth-method'}}
{{t 'resources.auth-method.actions.delete'}}
</dropdown.button>
</Rose::Dropdown>
</Rose::Dropdown>
@@ -1,2 +1,2 @@
<h2>{{t "resources.auth-method"}}</h2>
<p>{{t "resources.descriptions.auth-method"}}</p>
<h2>{{t "resources.auth-method.title"}}</h2>
<p>{{t "resources.auth-method.description"}}</p>
@@ -3,6 +3,6 @@
{{t 'titles.details'}}
</nav.link>
<nav.link @route='scopes.scope.auth-methods.auth-method.accounts'>
{{t 'titles.accounts'}}
{{t 'resources.account.title_plural'}}
</nav.link>
</Rose::Nav::Tabs>
</Rose::Nav::Tabs>
@@ -1,3 +1,3 @@
{{title (t 'titles.accounts')}}
{{title (t 'resources.account.title_plural')}}
{{outlet}}
@@ -4,6 +4,6 @@
@disabled={{@model.canSave}}
{{on "click" (route-action "delete" @model)}}
>
{{t 'actions.delete-account'}}
{{t 'actions.delete'}}
</dropdown.button>
</Rose::Dropdown>
</Rose::Dropdown>
@@ -1 +1 @@
<h2>{{t "resources.account"}}</h2>
<h2>{{t "resources.account.title"}}</h2>
@@ -1,2 +1,2 @@
<h2>{{t "resources.account"}}</h2>
<p>{{t 'descriptions.account-set-password'}}</p>
<h2>{{t "resources.account.title"}}</h2>
<p>{{t 'resources.account.messages.set-password.description'}}</p>
@@ -3,9 +3,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.label.identification'}}</row.headerCell>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.login_name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -34,11 +34,11 @@
{{else}}
<Rose::Layout::Centered>
<Rose::Message @title={{t "titles.accounts-welcome"}} as |message|>
<Rose::Message @title={{t "resources.account.messages.welcome.title"}} as |message|>
<message.description>
{{t "descriptions.accounts-welcome"}}
{{t "resources.account.messages.welcome.description"}}
</message.description>
</Rose::Message>
</Rose::Layout::Centered>
{{/if}}
{{/if}}
@@ -1,7 +1,7 @@
<Rose::Layout::Page as |page|>
<page.header>
<h2>{{t "resources.auth-methods"}}</h2>
<p>{{t "resources.descriptions.auth-methods"}}</p>
<h2>{{t "resources.auth-method.title_plural"}}</h2>
<p>{{t "resources.auth-method.description"}}</p>
</page.header>
<page.breadcrumbs>
@@ -22,9 +22,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
</header.row>
</table.header>
@@ -42,7 +42,7 @@
</row.headerCell>
<row.cell>
<Rose::Badge>
{{t (concat 'auth.method-types.' authMethod.type)}}
{{t (concat 'resources.auth-method.types.' authMethod.type)}}
</Rose::Badge>
</row.cell>
<row.cell>
@@ -56,9 +56,9 @@
{{else}}
<Rose::Layout::Centered>
<Rose::Message @title={{t 'titles.auth-methods-welcome'}} as |message|>
<Rose::Message @title={{t 'resources.auth-method.messages.welcome.title'}} as |message|>
<message.description>
{{t 'descriptions.auth-methods-welcome'}}
{{t 'resources.auth-method.messages.welcome.description'}}
</message.description>
<message.link @route="scopes.scope.auth-methods.new">
<Rose::Icon @name="plus-circle-outline" />
@@ -26,7 +26,7 @@
<Rose::Nav::Tabs as |nav|>
{{#each @model.authMethods as |authMethod|}}
<nav.link @route="scopes.scope.authenticate.method" @model={{authMethod.id}}>
{{t (concat "auth.method-types." authMethod.type)}}
{{t (concat "resources.auth-method.types." authMethod.type)}}
</nav.link>
{{/each}}
</Rose::Nav::Tabs>
@@ -39,11 +39,11 @@
{{#unless @model.authMethods}}
<Rose::Layout::Centered>
<Rose::Message
@title={{t "auth.titles.no-methods"}}
@title={{t "resources.auth-method.messages.none.title"}}
@icon="alert-circle-outline"
as |message|>
<message.description>
{{t "auth.descriptions.no-methods"}}
{{t "resources.auth-method.messages.none.description"}}
</message.description>
</Rose::Message>
</Rose::Layout::Centered>
@@ -1,11 +1,11 @@
{{#unless @model}}
<Rose::Layout::Centered>
<Rose::Message
@title={{t "auth.titles.no-methods"}}
@title={{t "resources.auth-method.messages.none.title"}}
@icon="alert-circle-outline"
as |message|>
<message.description>
{{t "auth.descriptions.no-methods"}}
{{t "resources.auth-method.messages.none.description"}}
</message.description>
</Rose::Message>
</Rose::Layout::Centered>
@@ -11,13 +11,13 @@
@name="identification"
@type="text"
@value={{this.identification}}
@label={{t "form.label.identification"}} />
@label={{t "form.login_name.label"}} />
<form.input
@name="password"
@type="password"
@value={{this.password}}
@label={{t "form.label.password"}} />
@label={{t "form.password.label"}} />
<form.actions
@submitText={{t "actions.authenticate"}}
+3 -2
View File
@@ -1,6 +1,7 @@
{{title (t "errors.titles.error") }}
{{title (t "errors.generic.title") }}
<Rose::Layout::Centered>
{{#each @model.errors as |error|}}
<Error::Message @status={{error.status}}/>
{{/each}}
</Rose::Layout::Centered>
</Rose::Layout::Centered>
@@ -5,8 +5,8 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
</header.row>
</table.header>
@@ -22,8 +22,8 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -3,9 +3,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
</header.row>
</table.header>
@@ -3,9 +3,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -3,10 +3,10 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.label.address"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
<row.headerCell>{{t "form.address.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -24,9 +24,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -15,11 +15,11 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
<row.headerCell>{{t "resources.user"}}</row.headerCell>
<row.headerCell>{{t "resources.target"}}</row.headerCell>
<row.headerCell>{{t "form.label.started"}}</row.headerCell>
<row.headerCell>{{t "form.label.status"}}</row.headerCell>
<row.headerCell>{{t "form.started.label"}}</row.headerCell>
<row.headerCell>{{t "form.status.label"}}</row.headerCell>
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
</header.row>
</table.header>
@@ -24,9 +24,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -5,9 +5,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
</header.row>
</table.header>
@@ -22,8 +22,8 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
@@ -5,9 +5,9 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
</header.row>
</table.header>
@@ -22,8 +22,8 @@
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
+1 -1
View File
@@ -47,7 +47,7 @@ module.exports = function (/* environment */) {
* @type {Boolean}
* @default "false"
*/
wrapTranslationsWithNamespace: false,
wrapTranslationsWithNamespace: true,
/**
* Cause a build error if ICU argument mismatches are detected.
+29
View File
@@ -0,0 +1,29 @@
add: Add
cancel: Cancel
delete: Delete
remove: Remove
dismiss: Dismiss
save: Save
manage: Manage
help: Need help?
back: Back
authenticate: Authenticate
deauthenticate: Deauthenticate
choose-org: Choose Scope
choose-different-org: Choose a Different Scope
delete-user: Delete user
delete-group: Delete group
delete-role: Delete role
delete-project: Delete project
delete-host-catalog: Delete host catalog
delete-host-set: Delete host set
delete-host: Delete host
delete-target: Delete target
add-host-set: Create Host Set
add-host: Create Host
add-host-sets: Add Host Sets
add-principals: Add Principals
add-members: Add Members
add-hosts: Add Hosts
set-password: Set Password
change-password: Change Password
-146
View File
@@ -1,47 +1,10 @@
actions:
add: Add
cancel: Cancel
delete: Delete
remove: Remove
dismiss: Dismiss
save: Save
manage: Manage
help: Need help?
back: Back
authenticate: Authenticate
deauthenticate: Deauthenticate
choose-org: Choose Scope
choose-different-org: Choose a Different Scope
delete-user: Delete user
delete-group: Delete group
delete-role: Delete role
delete-project: Delete project
delete-host-catalog: Delete host catalog
delete-auth-method: Delete auth method
delete-host-set: Delete host set
delete-host: Delete host
delete-target: Delete target
delete-account: Delete account
add-host-set: Create Host Set
add-host: Create Host
add-host-sets: Add Host Sets
add-principals: Add Principals
add-members: Add Members
add-hosts: Add Hosts
add-account: Create Account
set-password: Set Password
change-password: Change Password
auth:
titles:
no-scopes: No Scopes Available
no-methods: No Authentication Method
descriptions:
no-scopes: No scopes were found. To authenticate, ask your administrator to create an scope and grant you access.
no-methods: No authentication methods were found for this scope. Switch scopes and try again.
choose-org: Choose a scope to authenticate.
authenticating-with-org: "You're authenticating with {name}."
method-types:
password: Password
host-set:
types:
static: Static
@@ -51,61 +14,6 @@ target:
host:
types:
static: Static
account:
types:
password: Password
resources:
user: User
users: Users
role: Role
roles: Roles
group: Group
groups: Groups
orgs: Orgs
org: Org
projects: Projects
project: Project
host-catalog: Host Catalog
host-catalogs: Host Catalogs
auth-method: Auth Method
auth-methods: Auth Methods
host-set: Host Set
host-sets: Host Sets
host: Host
hosts: Hosts
target: Target
targets: Targets
accounts: Accounts
account: Account
sessions: Sessions
session: Session
descriptions:
user: A User inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles.
users: A user is any entity authorized to access Boundary using authentication credentials specific to one of the configured Authentication Methods. A User is owned by one and only one Organization. A User is associated with zero or one Authentication Methods. A User not associated with an Authentication Method can not log in to the system. A User can belong to zero or more Groups. A User is deleted when the Organization it belongs to is deleted. The lifecycle of a User is not tied to the lifecycle of any Authentication Method, Group or Role, but rather to its Organization only.
role: A Role can be assigned to zero or more Principals. A Principal assigned a Role receives all capabilities granted by any Direct Grant owned by the Role. A Role is deleted when the Scope it belongs to is deleted. All Direct Grants owned by a Role are deleted when the Role is deleted.
roles: A role is a collection of capabilities granted to any Principal the Role is assigned to. A Role belongs to one and only one Scope. A Role owns zero or more Direct Grants. The lifecycle of a Role is not tied to the lifecycle of any Principal.
grants: A grant represents a set of capabilities granted to a role. It couples a set of Actions to either a set of Resource Types or an individual Resource. A Direct Grant belongs exclusively to one and only one Role. However, equivalent Direct Grants may exist across different Roles. A Direct Grant references one or more Actions and either one or more Resource types or one specific Resource. A Direct Grant is deleted when the Role it belongs to is deleted. A Direct Grant is also deleted if it is associated with a specific Resource and that Resource itself is deleted. The lifecycle of a Direct Grant is not tied to the lifecycle of any Action or Resource Type.
principals: A principal is any entity which can be assigned capabilities. Principal is abstract. User, Group, and Project are concrete Principals. A Principal can be assigned to zero or more Roles.
group: All Users in a Group are granted the capabilities of all Roles the Group is associated with. A Group is deleted when the Scope it belongs to is deleted.
groups: Groups are collections of Users used only for access control purposes. A Group is owned by one and only one Scope. A Group can contain zero or more Users. A Group inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. The lifecycle of a Group is not tied to the lifecycle of any User or Role.
org: When an Organization is deleted, all resources owned by it are also deleted.
orgs: An Organization is a top-level container, and owns zero to many Projects and zero to many Authentication Methods. An Organization inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. The lifecycle of an Organization is not tied to anything else. A Role at the Organization level can grant permissions at the Project level.
project: When a Project is deleted, all resources owned by it are also deleted. The lifecycle of a Project is not tied to any resource it contains.
projects: A project is a child scope of an organization and is owned by an Organization. A Project inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. A Project also inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. A Project has no additional relationships beyond those defined in Scope and Principal. A Project is deleted when the Organization it belongs to is deleted.
host-catalog: A host catalog is a permission boundary modeled as a container.
host-catalogs: A host catalog is a permission boundary modeled as a container.
auth-method: An Authentication Method creates and references zero or more Users. An Authentication Method is deleted when the Organization it belongs to is deleted. The lifecycle of an Authentication Method is not tied to the lifecycle of any User.
auth-methods: An authentication method is a method configured for an Organization to authenticate Users. An Authentication Method is owned by one and only one Organization.
host-set: Host Set is abstract. A Host Set is deleted when the Host Catalog it belongs to is deleted.
host-sets: A host set is a resource which provides a subset of Hosts from the set of Hosts of the Host Catalog it belongs to. A Host Set belongs to one and only one Host Catalog. A Host Set can contain zero or more Hosts. A Host Set can be contained by zero or more Targets. The lifecycle of a Host Set is not tied to the lifecycle of any Targets or Hosts.
host: Host is abstract. A Host is deleted when the Host Catalog it belongs to is deleted.
hosts: A host is a computing element with a network address reachable from Boundary. A Host belongs to one and only one Host Catalog. A Host can be contained by zero or more Host Sets. The lifecycle of a Host is not tied to the lifecycle of any Host Sets.
target: Target is abstract. A Target is deleted when the Scope it belongs to is deleted.
targets: A target is a networked service a User can connect to and interact with through Boundary. A Target does not directly contain any secrets. A Target contains a collection of Hosts. A Target belongs to one and only one Scope. A Target can contain zero or more Host Sets. The lifecycle of a Target is not tied to the lifecycle of any Host Set.
accounts: Accounts
account: Account
sessions: Sessions
session: Session
titles:
iam: IAM
new: New
@@ -123,7 +31,6 @@ titles:
users-welcome: Welcome to Users
roles-welcome: Welcome to Roles
groups-welcome: Welcome to Groups
auth-methods-welcome: Welcome to Auth Methods
targets-welcome: Create your first Target
target-host-sets-welcome: No Host Sets Associated
grants: Permissions
@@ -140,9 +47,6 @@ titles:
members: Members
group-members-welcome: Welcome to Members
no-available-users: No Users Available
accounts: Accounts
account: Account
accounts-welcome: Welcome to Accounts
no-sessions: No Active Sessions
actions: Actions
descriptions:
@@ -156,7 +60,6 @@ descriptions:
users-welcome: Users are authorized to access Boundary.
roles-welcome: Roles are collections of capabilities that can be granted to user and/or groups.
groups-welcome: Groups are collections of users.
auth-methods-welcome: Auth methods are configurations to authenticate users.
targets-welcome: Targets provide Users the means to connect to and interact networked services. A Target contains a collection of Hosts and a collection of Credentials.
target-host-sets-welcome: Add Host Sets to this target to provide access.
no-host-set-hosts: Before associating hosts with this host set, create hosts within the host catalog.
@@ -165,53 +68,4 @@ descriptions:
no-principals-available: Principals are not available for assignment.
group-members-welcome: Users belonging to this group appear here.
no-available-users: No users are available to add to this group.
account-set-password: Set a password for the account.
accounts-welcome: No accounts are available in this auth method.
no-sessions: There are no active sessions at this time.
states:
info: Info
success: Success
warning: Warning
error: Error
form:
label:
id: ID
name: Name
description: Description
type: Type
identification: Username
password: Password
grant: Grant
principal: Principal
address: Address
protocol: Protocol
actions: Actions
default_port: Default Port
current_password: Current Password
new_password: New Password
started: Started
status: Status
errors:
401:
title: You are not signed in
description: You are not authenticated. Please authenticate and try again later.
403:
title: You are not authorized
description: You must be granted permissions to view this data. Ask your administrator if you think you should have access.
404:
title: Resource not found
description: We could not find the requested resource. You can ask your administrator or try again later.
500:
title: Server error
description: We ran into a problem and could not continue. You can ask your administrator or try again later.
unknown:
title: Something went wrong
description: Please contact your administrator or try again later.
titles:
authentication-failed: Authentication Failed
error: Error
notify:
create-success: Created succesfully.
save-success: Saved succesfully.
delete-success: Deleted successfully.
session-canceled: Session canceled.
+19
View File
@@ -0,0 +1,19 @@
401:
title: You are not signed in
description: You are not authenticated. Please authenticate and try again later.
403:
title: You are not authorized
description: You must be granted permissions to view this data. Ask your administrator if you think you should have access.
404:
title: Resource not found
description: We could not find the requested resource. You can ask your administrator or try again later.
500:
title: Server error
description: We ran into a problem and could not continue. You can ask your administrator or try again later.
unknown:
title: Something went wrong
description: Please contact your administrator or try again later.
generic:
title: Error
authentication-failed:
title: Authentication Failed
+31
View File
@@ -0,0 +1,31 @@
id:
label: ID
name:
label: Name
help: Optional name for identification purposes
description:
label: Description
help: Optional description for identification purposes
type:
label: Type
help: The type of the resource, to help differentiate schemas
login_name:
label: Username
password:
label: Password
grant:
label: Grant
help: A permissions grant string for a role
address:
label: Address
help: An IP, host name, or other routable address
default_port:
label: Default Port
current_password:
label: Current Password
new_password:
label: New Password
started:
label: Started
status:
label: Status
@@ -0,0 +1,6 @@
create-success: Created succesfully.
save-success: Saved succesfully.
delete-success: Deleted successfully.
add-success: Added successfully.
remove-success: Removed successfully.
canceled-success: Canceled successfully.
+74
View File
@@ -0,0 +1,74 @@
account:
title: Account
title_plural: Accounts
description: Accounts associate an IAM user with an auth method
messages:
welcome:
title: Welcome to Accounts
description: Create and manage accounts for an auth method.
set-password:
description: Set a password for the account.
types:
password: Password
actions:
create: Create Account
delete: Delete Account
auth-method:
title: Auth Method
title_plural: Auth Methods
description: An authentication method is a method configured for an Organization to authenticate Users. An Authentication Method is owned by one and only one Organization.
messages:
welcome:
title: Welcome to Auth Methods
description: Auth methods are configurations to authenticate users.
none:
title: No Authentication Methods
description: No authentication methods were found for this scope. Switch scopes and try again.
types:
password: Password
actions:
create: Create Auth Method
delete: Delete Auth Method
user: User
users: Users
role: Role
roles: Roles
group: Group
groups: Groups
orgs: Orgs
org: Org
projects: Projects
project: Project
host-catalog: Host Catalog
host-catalogs: Host Catalogs
host-set: Host Set
host-sets: Host Sets
host: Host
hosts: Hosts
target: Target
targets: Targets
sessions: Sessions
session: Session
descriptions:
user: A User inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles.
users: A user is any entity authorized to access Boundary using authentication credentials specific to one of the configured Authentication Methods. A User is owned by one and only one Organization. A User is associated with zero or one Authentication Methods. A User not associated with an Authentication Method can not log in to the system. A User can belong to zero or more Groups. A User is deleted when the Organization it belongs to is deleted. The lifecycle of a User is not tied to the lifecycle of any Authentication Method, Group or Role, but rather to its Organization only.
role: A Role can be assigned to zero or more Principals. A Principal assigned a Role receives all capabilities granted by any Direct Grant owned by the Role. A Role is deleted when the Scope it belongs to is deleted. All Direct Grants owned by a Role are deleted when the Role is deleted.
roles: A role is a collection of capabilities granted to any Principal the Role is assigned to. A Role belongs to one and only one Scope. A Role owns zero or more Direct Grants. The lifecycle of a Role is not tied to the lifecycle of any Principal.
grants: A grant represents a set of capabilities granted to a role. It couples a set of Actions to either a set of Resource Types or an individual Resource. A Direct Grant belongs exclusively to one and only one Role. However, equivalent Direct Grants may exist across different Roles. A Direct Grant references one or more Actions and either one or more Resource types or one specific Resource. A Direct Grant is deleted when the Role it belongs to is deleted. A Direct Grant is also deleted if it is associated with a specific Resource and that Resource itself is deleted. The lifecycle of a Direct Grant is not tied to the lifecycle of any Action or Resource Type.
principals: A principal is any entity which can be assigned capabilities. Principal is abstract. User, Group, and Project are concrete Principals. A Principal can be assigned to zero or more Roles.
group: All Users in a Group are granted the capabilities of all Roles the Group is associated with. A Group is deleted when the Scope it belongs to is deleted.
groups: Groups are collections of Users used only for access control purposes. A Group is owned by one and only one Scope. A Group can contain zero or more Users. A Group inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. The lifecycle of a Group is not tied to the lifecycle of any User or Role.
org: When an Organization is deleted, all resources owned by it are also deleted.
orgs: An Organization is a top-level container, and owns zero to many Projects and zero to many Authentication Methods. An Organization inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. The lifecycle of an Organization is not tied to anything else. A Role at the Organization level can grant permissions at the Project level.
project: When a Project is deleted, all resources owned by it are also deleted. The lifecycle of a Project is not tied to any resource it contains.
projects: A project is a child scope of an organization and is owned by an Organization. A Project inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. A Project also inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. A Project has no additional relationships beyond those defined in Scope and Principal. A Project is deleted when the Organization it belongs to is deleted.
host-catalog: A host catalog is a permission boundary modeled as a container.
host-catalogs: A host catalog is a permission boundary modeled as a container.
host-set: Host Set is abstract. A Host Set is deleted when the Host Catalog it belongs to is deleted.
host-sets: A host set is a resource which provides a subset of Hosts from the set of Hosts of the Host Catalog it belongs to. A Host Set belongs to one and only one Host Catalog. A Host Set can contain zero or more Hosts. A Host Set can be contained by zero or more Targets. The lifecycle of a Host Set is not tied to the lifecycle of any Targets or Hosts.
host: Host is abstract. A Host is deleted when the Host Catalog it belongs to is deleted.
hosts: A host is a computing element with a network address reachable from Boundary. A Host belongs to one and only one Host Catalog. A Host can be contained by zero or more Host Sets. The lifecycle of a Host is not tied to the lifecycle of any Host Sets.
target: Target is abstract. A Target is deleted when the Scope it belongs to is deleted.
targets: A target is a networked service a User can connect to and interact with through Boundary. A Target does not directly contain any secrets. A Target contains a collection of Hosts. A Target belongs to one and only one Scope. A Target can contain zero or more Host Sets. The lifecycle of a Target is not tied to the lifecycle of any Host Set.
sessions: Sessions
session: Session
+4
View File
@@ -0,0 +1,4 @@
info: Info
success: Success
warning: Warning
error: Error