fix(scim): sync provider display names and document Okta setup - #7585
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Greptile SummaryThis PR updates SCIM name handling so explicit provider display names are projected to Sim accounts while preserving structured-name fallbacks and repairing account-name drift.
Confidence Score: 5/5The PR appears safe to merge; no actionable correctness, security, or repository-rule violations were identified. The new display-name provenance logic preserves legacy formatted-name projection, explicit provider names are synchronized consistently across provisioning and updates, retries converge without repeated writes, and the nested documentation paths follow the repository’s manifest-folding convention.
|
| Filename | Overview |
|---|---|
| apps/sim/ee/scim/lib/protocol/canonical.ts | Distinguishes explicit provider display names from formatted-name fallbacks and centralizes account-name selection. |
| apps/sim/ee/scim/lib/protocol/user-patch.ts | Maintains display-name provenance during PATCH operations and avoids synthesizing optional display names. |
| apps/sim/ee/scim/lib/application/users/update-user.ts | Synchronizes the preferred SCIM name against the live account name and repairs drift on otherwise identical retries. |
| apps/sim/ee/scim/lib/application/users/provision-user.ts | Uses the canonical account-name selection when creating or relinking provisioned identities. |
| apps/sim/ee/scim/lib/protocol/resources.ts | Omits absent optional display names from SCIM user responses. |
| apps/sim/ee/scim/lib/repository/groups.ts | Falls back from member display names to formatted names and then usernames. |
| packages/db/schema.ts | Extends stored SCIM attributes with optional display-name provenance without requiring a physical schema migration. |
| apps/docs/content/docs/platform/enterprise/scim/okta.mdx | Adds a detailed Okta provisioning, lifecycle, group-push, rotation, and troubleshooting guide. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[SCIM user payload] --> B[Canonicalize attributes]
B --> C{Explicit displayName supplied?}
C -->|Yes| D[Store displayName with provider source]
C -->|No| E[Keep displayName absent]
D --> F[accountName uses displayName]
E --> G[accountName uses name.formatted]
F --> H[Compare with live Sim account name]
G --> H
H -->|Different| I[Synchronize account identity]
H -->|Same| J[Skip identity write]
B --> K[Render SCIM resource]
K --> L[Return displayName only when stored]
Reviews (1): Last reviewed commit: "fix(scim): sync provider display names a..." | Re-trigger Greptile
Summary
Type of Change
Testing
Checklist