diff --git a/ui/core/app/routes/scopes/scope/roles/role/grants.js b/ui/core/app/routes/scopes/scope/roles/role/grants.js
index 60368286b..d53bf4919 100644
--- a/ui/core/app/routes/scopes/scope/roles/role/grants.js
+++ b/ui/core/app/routes/scopes/scope/roles/role/grants.js
@@ -10,6 +10,22 @@ export default class ScopesScopeRolesRoleGrantsRoute extends Route {
// =methods
+ /**
+ * Renders the grants-specific header template.
+ * Empties the actions and navigation outlets and renders a custom empty header.
+ * @override
+ */
+ renderTemplate() {
+ super.renderTemplate(...arguments);
+
+ this.render('scopes/scope/roles/role/grants/-header', {
+ into: 'scopes/scope/roles/role',
+ outlet: 'header',
+ });
+ }
+
+ // =actions
+
/**
* Adds a new grant to the role at the beginning of the grants list.
* Grant creation is not immediately permanent; users may rollback the change
diff --git a/ui/core/app/routes/scopes/scope/roles/role/principals.js b/ui/core/app/routes/scopes/scope/roles/role/principals.js
index ca364acfd..3d5e55055 100644
--- a/ui/core/app/routes/scopes/scope/roles/role/principals.js
+++ b/ui/core/app/routes/scopes/scope/roles/role/principals.js
@@ -39,6 +39,20 @@ export default class ScopesScopeRolesRolePrincipalsRoute extends Route {
return all(users.concat(groups));
}
+ /**
+ * Renders the principals-specific header template.
+ * Empties the actions and navigation outlets and renders a custom empty header.
+ * @override
+ */
+ renderTemplate() {
+ super.renderTemplate(...arguments);
+
+ this.render('scopes/scope/roles/role/principals/-header', {
+ into: 'scopes/scope/roles/role',
+ outlet: 'header',
+ });
+ }
+
// =actions
/**
@@ -57,4 +71,5 @@ export default class ScopesScopeRolesRolePrincipalsRoute extends Route {
this.notify.error(error.message, { closeAfter: null });
}
}
+
}
diff --git a/ui/core/app/templates/scopes/scope/auth-methods/auth-method/-header.hbs b/ui/core/app/templates/scopes/scope/auth-methods/auth-method/-header.hbs
index 8eab49f00..f83a85430 100644
--- a/ui/core/app/templates/scopes/scope/auth-methods/auth-method/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/auth-methods/auth-method/-header.hbs
@@ -1 +1,2 @@
{{t "resources.auth-method"}}
+{{t "resources.descriptions.auth-method"}}
diff --git a/ui/core/app/templates/scopes/scope/auth-methods/index.hbs b/ui/core/app/templates/scopes/scope/auth-methods/index.hbs
index f06afc224..78e39a496 100644
--- a/ui/core/app/templates/scopes/scope/auth-methods/index.hbs
+++ b/ui/core/app/templates/scopes/scope/auth-methods/index.hbs
@@ -1,6 +1,7 @@
{{t "resources.auth-methods"}}
+ {{t "resources.descriptions.auth-methods"}}
diff --git a/ui/core/app/templates/scopes/scope/groups/group/-header.hbs b/ui/core/app/templates/scopes/scope/groups/group/-header.hbs
index 6631940a3..1c7ff249d 100644
--- a/ui/core/app/templates/scopes/scope/groups/group/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/groups/group/-header.hbs
@@ -1 +1,2 @@
{{t "resources.group"}}
+{{t "resources.descriptions.group"}}
diff --git a/ui/core/app/templates/scopes/scope/groups/index.hbs b/ui/core/app/templates/scopes/scope/groups/index.hbs
index 0a973d184..21fd64095 100644
--- a/ui/core/app/templates/scopes/scope/groups/index.hbs
+++ b/ui/core/app/templates/scopes/scope/groups/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.groups"}}
+ {{t "resources.descriptions.groups"}}
diff --git a/ui/core/app/templates/scopes/scope/orgs/index.hbs b/ui/core/app/templates/scopes/scope/orgs/index.hbs
index fac9c044e..10b4f04a9 100644
--- a/ui/core/app/templates/scopes/scope/orgs/index.hbs
+++ b/ui/core/app/templates/scopes/scope/orgs/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.orgs"}}
+ {{t "resources.descriptions.orgs"}}
diff --git a/ui/core/app/templates/scopes/scope/projects/index.hbs b/ui/core/app/templates/scopes/scope/projects/index.hbs
index f892904cd..9c5ae805a 100644
--- a/ui/core/app/templates/scopes/scope/projects/index.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.projects"}}
+ {{t "resources.descriptions.projects"}}
diff --git a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/-header.hbs b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/-header.hbs
index 82af78ffe..655ecb273 100644
--- a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/-header.hbs
@@ -1 +1,2 @@
{{t "resources.host-catalog"}}
+{{t "resources.descriptions.host-catalog"}}
\ No newline at end of file
diff --git a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/host-sets/-header.hbs b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/host-sets/-header.hbs
index ae86a8707..05fa412e3 100644
--- a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/host-sets/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/host-sets/-header.hbs
@@ -1 +1,2 @@
-{{t "resources.host-set"}}
\ No newline at end of file
+{{t "resources.host-set"}}
+{{t "resources.descriptions.host-set"}}
\ No newline at end of file
diff --git a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/hosts/-header.hbs b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/hosts/-header.hbs
index 3187158d1..d9eea7635 100644
--- a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/hosts/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/host-catalog/hosts/-header.hbs
@@ -1 +1,2 @@
-{{t "resources.host"}}
\ No newline at end of file
+{{t "resources.host"}}
+{{t "resources.descriptions.host"}}
\ No newline at end of file
diff --git a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/index.hbs b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/index.hbs
index 630275b18..1a4717479 100644
--- a/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/index.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/project/host-catalogs/index.hbs
@@ -6,7 +6,7 @@
{{t "resources.host-catalogs"}}
- {{t "descriptions.host-catalogs"}}
+ {{t "resources.descriptions.host-catalogs"}}
diff --git a/ui/core/app/templates/scopes/scope/projects/project/index.hbs b/ui/core/app/templates/scopes/scope/projects/project/index.hbs
index c050b9570..243ef1276 100644
--- a/ui/core/app/templates/scopes/scope/projects/project/index.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/project/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.project"}}
+ {{t "resources.descriptions.project"}}
diff --git a/ui/core/app/templates/scopes/scope/projects/project/targets/index.hbs b/ui/core/app/templates/scopes/scope/projects/project/targets/index.hbs
index cb6254a49..af99edaec 100644
--- a/ui/core/app/templates/scopes/scope/projects/project/targets/index.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/project/targets/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.targets"}}
+ {{t "resources.descriptions.targets"}}
diff --git a/ui/core/app/templates/scopes/scope/projects/project/targets/target/-header.hbs b/ui/core/app/templates/scopes/scope/projects/project/targets/target/-header.hbs
index 721607f47..0dc39d88d 100644
--- a/ui/core/app/templates/scopes/scope/projects/project/targets/target/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/projects/project/targets/target/-header.hbs
@@ -1 +1,2 @@
{{t "resources.target"}}
+{{t "resources.descriptions.target"}}
diff --git a/ui/core/app/templates/scopes/scope/roles/index.hbs b/ui/core/app/templates/scopes/scope/roles/index.hbs
index 835881d77..dcb462b4d 100644
--- a/ui/core/app/templates/scopes/scope/roles/index.hbs
+++ b/ui/core/app/templates/scopes/scope/roles/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.roles"}}
+ {{t "resources.descriptions.roles"}}
diff --git a/ui/core/app/templates/scopes/scope/roles/role/-header.hbs b/ui/core/app/templates/scopes/scope/roles/role/-header.hbs
index d7985c901..96ed6300a 100644
--- a/ui/core/app/templates/scopes/scope/roles/role/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/roles/role/-header.hbs
@@ -1 +1,2 @@
{{t "resources.role"}}
+{{t "resources.descriptions.role"}}
diff --git a/ui/core/app/templates/scopes/scope/roles/role/add-principals/-header.hbs b/ui/core/app/templates/scopes/scope/roles/role/add-principals/-header.hbs
index 8696fed6d..5ce0ab603 100644
--- a/ui/core/app/templates/scopes/scope/roles/role/add-principals/-header.hbs
+++ b/ui/core/app/templates/scopes/scope/roles/role/add-principals/-header.hbs
@@ -1 +1 @@
-{{t "actions.add-principals"}}
+{{t "actions.add-principals"}}
\ No newline at end of file
diff --git a/ui/core/app/templates/scopes/scope/roles/role/grants/-header.hbs b/ui/core/app/templates/scopes/scope/roles/role/grants/-header.hbs
new file mode 100644
index 000000000..6c9ebd67b
--- /dev/null
+++ b/ui/core/app/templates/scopes/scope/roles/role/grants/-header.hbs
@@ -0,0 +1,2 @@
+{{t "resources.role"}}
+{{t "resources.descriptions.grants"}}
diff --git a/ui/core/app/templates/scopes/scope/roles/role/principals/-header.hbs b/ui/core/app/templates/scopes/scope/roles/role/principals/-header.hbs
new file mode 100644
index 000000000..a549d9a8b
--- /dev/null
+++ b/ui/core/app/templates/scopes/scope/roles/role/principals/-header.hbs
@@ -0,0 +1,2 @@
+{{t "resources.role"}}
+{{t "resources.descriptions.principals"}}
diff --git a/ui/core/app/templates/scopes/scope/users/index.hbs b/ui/core/app/templates/scopes/scope/users/index.hbs
index ad58e6ca8..506abc01f 100644
--- a/ui/core/app/templates/scopes/scope/users/index.hbs
+++ b/ui/core/app/templates/scopes/scope/users/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.users"}}
+ {{t "resources.descriptions.users"}}
diff --git a/ui/core/app/templates/scopes/scope/users/user/index.hbs b/ui/core/app/templates/scopes/scope/users/user/index.hbs
index 1f8c67630..a57e6f8eb 100644
--- a/ui/core/app/templates/scopes/scope/users/user/index.hbs
+++ b/ui/core/app/templates/scopes/scope/users/user/index.hbs
@@ -6,6 +6,7 @@
{{t "resources.user"}}
+ {{t "resources.descriptions.user"}}
diff --git a/ui/core/translations/en-us.yaml b/ui/core/translations/en-us.yaml
index 029474e65..4c044bb2f 100644
--- a/ui/core/translations/en-us.yaml
+++ b/ui/core/translations/en-us.yaml
@@ -79,6 +79,33 @@ resources:
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