diff --git a/helm-charts/bifrost/values.schema.json b/helm-charts/bifrost/values.schema.json index dc3777dd68..0442bbb06a 100644 --- a/helm-charts/bifrost/values.schema.json +++ b/helm-charts/bifrost/values.schema.json @@ -1789,13 +1789,22 @@ }, "attributeTeamMappings": { "type": "array", - "description": "Attribute -> team mappings (all matches apply). Use value '*' for pass-through (every claim value becomes a team name).", + "description": "Attribute -> team mappings (all matches apply). Use value '*' for pass-through (every claim value becomes a team name). Add attributeType/attributeValue to enable SCIM provisioning for a mapping.", "items": { "type": "object", "properties": { - "attribute": { "type": "string" }, - "value": { "type": "string" }, - "team": { "type": "string" } + "attribute": { "type": "string", "description": "JWT claim name" }, + "value": { "type": "string", "description": "Claim value to match, or '*' for pass-through" }, + "team": { "type": "string", "description": "Bifrost team slug to assign" }, + "attributeType": { + "type": "string", + "enum": ["user", "group"], + "description": "SCIM provisioning type: 'user' matches SCIM User attributes, 'group' matches SCIM Group displayName" + }, + "attributeValue": { + "type": "string", + "description": "SCIM attribute value to match (for 'user': SCIM user attribute value; for 'group': SCIM group displayName, auto-set to 'displayName')" + } }, "required": ["attribute", "value", "team"], "additionalProperties": false @@ -1803,13 +1812,22 @@ }, "attributeBusinessUnitMappings": { "type": "array", - "description": "Attribute -> business-unit mappings (all matches apply).", + "description": "Attribute -> business-unit mappings (all matches apply). Add attributeType/attributeValue to enable SCIM provisioning for a mapping.", "items": { "type": "object", "properties": { - "attribute": { "type": "string" }, - "value": { "type": "string" }, - "business_unit": { "type": "string" } + "attribute": { "type": "string", "description": "JWT claim name" }, + "value": { "type": "string", "description": "Claim value to match" }, + "business_unit": { "type": "string", "description": "Bifrost business unit slug to assign" }, + "attributeType": { + "type": "string", + "enum": ["user", "group"], + "description": "SCIM provisioning type: 'user' matches SCIM User attributes, 'group' matches SCIM Group displayName" + }, + "attributeValue": { + "type": "string", + "description": "SCIM attribute value to match (for 'user': SCIM user attribute value; for 'group': SCIM group displayName, auto-set to 'displayName')" + } }, "required": ["attribute", "value", "business_unit"], "additionalProperties": false diff --git a/helm-charts/bifrost/values.yaml b/helm-charts/bifrost/values.yaml index 67859d1b30..fdada0e3cc 100644 --- a/helm-charts/bifrost/values.yaml +++ b/helm-charts/bifrost/values.yaml @@ -651,6 +651,18 @@ bifrost: # - attribute: "groups" # value: "*" # pass-through: every group becomes a team # team: "" # ignored when value is "*" + # # SCIM provisioning: match by SCIM user attribute + # - attribute: "department" + # value: "engineering" + # team: "eng-team" + # attributeType: "user" # "user" = SCIM User push, "group" = SCIM Group push + # attributeValue: "engineering" + # # SCIM provisioning: match by SCIM group (displayName) + # - attribute: "groups" + # value: "Engineering" + # team: "eng-team" + # attributeType: "group" + # attributeValue: "displayName" # always "displayName" for group type # attributeBusinessUnitMappings: # - attribute: "department" # value: "platform" diff --git a/transports/config.schema.json b/transports/config.schema.json index cbcc2503df..1a8225e9bd 100644 --- a/transports/config.schema.json +++ b/transports/config.schema.json @@ -3692,13 +3692,22 @@ }, "attributeTeamMappings": { "type": "array", - "description": "Attribute -> team mappings (all matches apply). Use value '*' for pass-through.", + "description": "Attribute -> team mappings (all matches apply). Use value '*' for pass-through. Add attributeType/attributeValue to enable SCIM provisioning for a mapping.", "items": { "type": "object", "properties": { - "attribute": { "type": "string" }, - "value": { "type": "string" }, - "team": { "type": "string" } + "attribute": { "type": "string", "description": "JWT claim name" }, + "value": { "type": "string", "description": "Claim value to match, or '*' for pass-through" }, + "team": { "type": "string", "description": "Bifrost team slug to assign" }, + "attributeType": { + "type": "string", + "enum": ["user", "group"], + "description": "SCIM provisioning type: 'user' matches SCIM User attributes, 'group' matches SCIM Group displayName" + }, + "attributeValue": { + "type": "string", + "description": "SCIM attribute value to match (for attributeType 'user': the SCIM user attribute value; for 'group': the SCIM group displayName, auto-set to 'displayName')" + } }, "required": ["attribute", "value", "team"], "additionalProperties": false @@ -3706,13 +3715,22 @@ }, "attributeBusinessUnitMappings": { "type": "array", - "description": "Attribute -> business-unit mappings (all matches apply).", + "description": "Attribute -> business-unit mappings (all matches apply). Add attributeType/attributeValue to enable SCIM provisioning for a mapping.", "items": { "type": "object", "properties": { - "attribute": { "type": "string" }, - "value": { "type": "string" }, - "business_unit": { "type": "string" } + "attribute": { "type": "string", "description": "JWT claim name" }, + "value": { "type": "string", "description": "Claim value to match" }, + "business_unit": { "type": "string", "description": "Bifrost business unit slug to assign" }, + "attributeType": { + "type": "string", + "enum": ["user", "group"], + "description": "SCIM provisioning type: 'user' matches SCIM User attributes, 'group' matches SCIM Group displayName" + }, + "attributeValue": { + "type": "string", + "description": "SCIM attribute value to match (for attributeType 'user': the SCIM user attribute value; for 'group': the SCIM group displayName, auto-set to 'displayName')" + } }, "required": ["attribute", "value", "business_unit"], "additionalProperties": false