Provision and manage workspace users using SCIM 2.0. SCIM manages workspace enrollment, roles and the provisioning source’s user profile; SSO authenticates the global Diggle account. Enable SCIM separately from Workspace API and SSO.
Treat the provisioning token as a server-side secret. It is shown once and cannot be retrieved later. Do not commit it, log it or expose it in browser code. A provisioning token is not a Workspace API key.
| Source value | SCIM target | Requirement |
|---|---|---|
| Approved work email or email-shaped principal | userName | Required on create and PUT. |
| The same approved email value | emails[type eq “work”].value | Optional duplicate representation; must match userName after trimming and case normalization. |
| Display name | displayName | Optional; do not map name components. |
| Stable provider object identifier | externalId | Recommended correlation value; not an SSO identity. |
| Lifecycle state | active | Boolean. New resources must be active; false deprovisions an existing User. |
| Approved workspace role | urn:ietf:params:scim:schemas:extension:diggle:2.0:User:role | Optional admin, creator or runner. |
Remove unsupported default mappings, including company/HR fields, name.formatted, name.givenName, name.familyName, email labels and projectIds. Only one work email is supported.
| Action | Effect |
|---|---|
| Create | A new token is shown once. Creating it does not itself enable SCIM. |
| Rotate provisioning token | A replacement is shown once. The old token becomes invalid immediately. Source identity, resource IDs, scope and any expiry are retained. Update the provider promptly. |
| Revoke provisioning token | The token becomes invalid. SCIM remains enabled so a replacement can be created. Existing users and access remain unchanged. |
| Expired token | Cannot authenticate. An expired token cannot be rotated; create a replacement with the same source identity. |
Diggle can disable SCIM for the workspace. This invalidates its provisioning credentials and prevents further authenticated provisioning. Re-enabling requires a fresh token; revoked tokens do not revive.
Disabling SCIM does not deactivate or delete existing users, remove memberships, change roles, change SSO or change Enterprise licensing by itself. To remove access, use explicit SCIM active=false or a Diggle workspace revoke.
| Method and path | Result |
|---|---|
| POST /Users | Create an active User; 201 and a Location header. Duplicate create returns 409. |
| GET /Users/{id} | Read the source-owned User; 200 or 404. |
| GET /Users | List and filter Users with pagination. |
| PUT /Users/{id} | Replace supported profile fields; preserve omitted activity and role. |
| PATCH /Users/{id} | Update supported fields with add, replace or supported remove operations. |
| PUT or PATCH active=false | Remove managed workspace access while retaining the User resource. |
| PUT or PATCH active=true | Request workspace reactivation, subject to Diggle access rules. |
Paths are relative to the SCIM endpoint copied from Integrations. Responses use application/scim+json. The role extension accepts admin, creator and runner.
Authenticated GET/HEAD requests are supported for /ServiceProviderConfig, /ResourceTypes, /ResourceTypes/User, /Schemas and /Schemas/{schemaURI}. User is the only supported resource type.
active: false. For administrator-led offboarding, use revokeWorkspaceUserAccess with a separate Workspace API key. This removes workspace access and sets a local block that SCIM cannot override; it does not delete the global account.