diff --git a/api/types/constants.go b/api/types/constants.go index 231357307fe01..b2f9dbefad063 100644 --- a/api/types/constants.go +++ b/api/types/constants.go @@ -971,6 +971,9 @@ const ( // OktaGroupDescriptionLabel is the individual group description label. OktaGroupDescriptionLabel = TeleportInternalLabelPrefix + "okta-group-description" + + // OktaRoleNameLabel is the human readable name for a role sourced from Okta. + OktaRoleNameLabel = TeleportInternalLabelPrefix + "okta-role-name" ) const ( diff --git a/api/types/resource.go b/api/types/resource.go index db7d4935d21ac..9b82874bb1311 100644 --- a/api/types/resource.go +++ b/api/types/resource.go @@ -692,6 +692,8 @@ func FriendlyName(resource ResourceWithLabels) string { return appName } else if groupName, ok := resource.GetLabel(OktaGroupNameLabel); ok { return groupName + } else if roleName, ok := resource.GetLabel(OktaRoleNameLabel); ok { + return roleName } return resource.GetMetadata().Description } diff --git a/api/types/resource_test.go b/api/types/resource_test.go index 33174783e3bc4..819e38535a4a6 100644 --- a/api/types/resource_test.go +++ b/api/types/resource_test.go @@ -528,6 +528,15 @@ func TestFriendlyName(t *testing.T) { return group } + newRole := func(t *testing.T, name string, labels map[string]string) Role { + role, err := NewRole(name, RoleSpecV6{}) + require.NoError(t, err) + metadata := role.GetMetadata() + metadata.Labels = labels + role.SetMetadata(metadata) + return role + } + node, err := NewServer("node", KindNode, ServerSpecV2{ Hostname: "friendly hostname", }) @@ -573,6 +582,14 @@ func TestFriendlyName(t *testing.T) { }), expected: "label friendly name", }, + { + name: "friendly role name (uses label)", + resource: newRole(t, "friendly", map[string]string{ + OriginLabel: OriginOkta, + OktaRoleNameLabel: "label friendly name", + }), + expected: "label friendly name", + }, { name: "friendly node name", resource: node,