You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(scim): certification pass — removal side effects, hourly sweep, dead surface, docs
- Organization removal no longer deletes personal API keys except when
the directory deprovisions; a member removing themselves keeps their
own session. Every other caller keeps the session revocation
- The reconcile interval is shorter than the cron period, so the
once-an-hour guarantee actually holds
- Removed: defaultWorkspaceGrants (no client, no docs), the unused
tombstone and delete helpers, parameters no caller varied, the
duplicate discovery list helper; the routes barrel exports the SCIM
builders; group cap raised to 5,000
- Docs: per-resource filters and limits, authentication failures absent
from Activity, name matching and the permanent explicit-membership
switch, default group not a target, credential expiry choices, SSO and
both flags as prerequisites, what disabling the connection does
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DGXcwsHzYGp6pUDWRtJKpz
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/enterprise/scim.mdx
+15-5Lines changed: 15 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ Directory provisioning connects your identity provider to Sim over SCIM 2.0. You
13
13
It pairs with [SSO](/platform/enterprise/sso). SSO proves who someone is when they sign in. Directory provisioning decides who exists and what they can reach, before and after that.
14
14
15
15
<Callouttype="info">
16
-
Enterprise plans. Requires at least one [verified domain](/platform/enterprise/verified-domains) for your organization. Self-hosted deployments turn it on with `SCIM_ENABLED=true` and `NEXT_PUBLIC_SCIM_ENABLED=true`, alongside the [SSO variables](/platform/enterprise/sso#self-hosted-setup).
16
+
Enterprise plans. Requires [SSO](/platform/enterprise/sso) to be enabled, because provisioning is configured from the SSO settings page, and at least one [verified domain](/platform/enterprise/verified-domains) for your organization. Self-hosted deployments turn it on with `SCIM_ENABLED=true`(the server) and `NEXT_PUBLIC_SCIM_ENABLED=true` (the settings page), alongside the [SSO variables](/platform/enterprise/sso#self-hosted-setup).
Select**Issue credential**. The token appears once — copy it straight into your provider.
57
+
Choose whether the credential expires (never, 90 days, or a year) and select**Issue credential**. The token appears once — copy it straight into your provider.
58
58
59
59
Two credentials can be active at a time, so you can rotate without downtime: issue the new one, update your provider, confirm a sync succeeds, then revoke the old one.
60
60
</Step>
@@ -121,7 +121,11 @@ Groups mean nothing to Sim until you say what they stand for. In **Settings →
121
121
- a **workspace**, at Read, Write, or Admin
122
122
- the **organization admin role**
123
123
124
-
A group can carry several mappings. When two groups grant the same workspace at different levels, the stronger one wins.
124
+
A group can carry several mappings. When two groups grant the same workspace at different levels, the stronger one wins. The organization's default permission group cannot be a target: it governs by having no members.
125
+
126
+
Turning on **Match permission groups by name** maps a pushed group to an existing permission group of the same name automatically, and remaps it when the group is renamed. Nothing is created.
127
+
128
+
Mapping a permission group to a directory group switches that permission group to explicit membership permanently: it governs exactly the people in it, and an empty group governs nobody. A permission group that governed everyone in its workspaces stops doing so the moment it is mapped, so map groups you created for the directory rather than your organization-wide ones.
125
129
126
130
</Step>
127
131
@@ -141,7 +145,7 @@ If you want the directory to be the only way in, enable **Disable just-in-time p
141
145
142
146
## Watching a sync
143
147
144
-
**Settings → SSO → Directory provisioning → Activity** lists recent requests with their status and, for a failure, what was wrong. Providers report a failed cycle without saying what they sent, so this is usually the fastest way to see the cause.
148
+
**Settings → SSO → Directory provisioning → Activity** lists recent authenticated requests with their status and, for a failure, what was wrong. Providers report a failed cycle without saying what they sent, so this is usually the fastest way to see the cause. A request that fails to authenticate has no connection to log against, so a wrong or revoked token shows up only as your provider's own authentication error.
145
149
146
150
Sim also re-applies every group mapping once an hour, so drift cannot persist. You can run it on demand with **Reconcile now**, which is also how a change to the connection settings reaches members before the next sync.
147
151
@@ -150,7 +154,9 @@ Sim also re-applies every group mapping once an hour, so drift cannot persist. Y
150
154
- Base URL: `https://<your-sim-domain>/api/scim/v2`
- Resources: `/Users`, `/Groups`, plus `/ServiceProviderConfig`, `/ResourceTypes`, and `/Schemas`
153
-
- Filters: `eq`, joined with `and`, on `id`, `userName`, `externalId`, `emails.value`, `active`, and `displayName`
157
+
- Filters: `eq` only, up to ten terms joined with `and`. Users: `id`, `userName`, `externalId`, `emails.value` (also `emails[type eq "work"].value`), `active`. Groups: `id`, `displayName`, `externalId`
158
+
- Limits: 1,500 requests per minute per connection, 1 MB per request, 5,000 members per group
159
+
-`userName` is stored and returned lower-cased; attributes Sim does not model are kept and returned as sent, and a PUT preserves ones it omits
154
160
- Page size: up to 100 per request
155
161
156
162
<FAQitems={[
@@ -178,6 +184,10 @@ Sim also re-applies every group mapping once an hour, so drift cannot persist. Y
178
184
question: "Does a deactivation sign someone out immediately?",
179
185
answer: "Their sessions are deleted at once and their personal API keys stop authenticating immediately. The organization's security version changes at the same time, so a browser still holding a cached session cookie is re-checked on its next request and refused."
180
186
},
187
+
{
188
+
question: "What happens to deactivated members if we turn provisioning off?",
189
+
answer: "They stay deactivated. Disabling the connection stops the directory from making changes; it does not undo the ones it made. To restore someone without the directory, remove them from the organization and invite them again."
190
+
},
181
191
{
182
192
question: "Can we still invite people manually?",
183
193
answer: "Only with managed membership locking turned off. With it on, Sim refuses manual changes for provisioned members, because the directory would revert them on its next sync."
0 commit comments