GENESIS_SCIM_REQUIRE_PROVISIONED_USERS=true, and any time you
materially change the IdP-side SCIM configuration.
Preflight
Confirm each of the following before running validation:- The Genesis deployment has a stable HTTPS hostname and persistent configuration values.
- Authentication is configured and a test user can sign in through the customer IdP before SCIM-only admission is enforced.
- The SCIM admin endpoints are reachable as a Genesis admin:
GET /api/config/scim/configPOST /api/config/scim/tokens/rotatePUT /api/config/scim/group-role-mapping
- A dedicated SCIM bearer token has been generated for the tenant and stored in the IdP’s secret field.
- The group-to-role mapping has been configured before enabling group push from the IdP.
GENESIS_SCIM_REQUIRE_PROVISIONED_USERSis set tofalsefor now.
Validation steps
Run these in order against a single pilot user. Reset state between iterations if needed.1
Provision a pilot user
Have the IdP provision one user. Or push directly:
2
Verify the user exists
active: true and the
expected externalId.3
Push a mapped group with the user as a member
From the IdP (or directly), push one group present in the Genesis
group-to-role mapping with the pilot user as a member. Confirm a
200 /
201 SCIM response.4
Verify the role assignment
Have the pilot user sign in. Then call:Confirm the role corresponding to the pushed group is present.
5
Remove the user from the group
From the IdP, remove the user from the group. Confirm only that role is
revoked in Genesis. The user remains active.
6
Deactivate the pilot user
From the IdP, deactivate the user (or PATCH
active=false). Confirm:GET /scim/v2/Users/<id>returnsactive: false.- The user can no longer sign in once SCIM-only admission is enabled.
7
Verify audit rows
Confirm each operation above wrote a row to
SCIM_AUDIT_LOG. See the
audit query examples.8
Confirm no unrelated changes
Inspect a non-SCIM admin user. Their roles, login state, and metadata
should be unchanged.
Conformance harness
Genesis ships a repeatable conformance harness,scripts/validate_scim_conformance.py,
that exercises the live SCIM endpoint. The script is included in the
Genesis source distribution; if you do not have it locally, request it from
your Genesis contact.
Run it from a machine that can reach the Genesis host before customer pilot
traffic begins, and again whenever you change SCIM-related configuration.
GENESIS_SCIM_TOKEN in the environment before running the command. Pass
--token only for tightly controlled automation where shell history and
process listings are not retained.
For self-signed certificate troubleshooting in non-production environments,
add --insecure. Do not use --insecure against production hosts.
The harness checks include:
- Invalid bearer token is rejected with a SCIM-shaped error.
ServiceProviderConfig,ResourceTypes, andSchemasare reachable.- PATCH support is advertised; ETag is correctly not advertised.
- User and Group resources can be created, fetched, listed, filtered, PATCH-updated, replaced, and soft-deactivated.
- Group membership PATCH
addandremoveoperations are reflected in Genesis role assignments. - Group delete removes role membership without deactivating users.
Rollback
If a rollout needs to be reversed:1
Cut off the IdP
Disable the IdP SCIM app or revoke the Genesis SCIM token with
POST /api/config/scim/tokens/revoke.2
Reopen sign-in if it was restricted
Set
GENESIS_SCIM_REQUIRE_PROVISIONED_USERS=false so non-SCIM users can
still sign in.3
Restore the previous mapping
PUT the previous
group_role_mapping payload through
PUT /api/config/scim/group-role-mapping.4
Reconcile roles
Re-run the last known-good IdP group snapshot, or push the mapped groups
from the IdP again, to bring Genesis role state back in line.
5
Roll back the deployment if needed
If the regression is suspected to be in Genesis itself, roll the
deployment back to the previous container image and restart the
application. Helm-based deployments can use
helm rollback.Pilot-to-production checklist
Before announcing SCIM as generally available for the deployment:- All validation steps pass for the pilot user.
- The conformance harness report is green and retained.
- Monitoring signals and alerts are wired up and acknowledged by an on-call owner.
- The security review has been completed for the deployment.
- A separate SCIM bearer token exists per integration and the rotation procedure is documented for the customer.
- For multi-replica deployments, strict global SCIM rate limiting is enforced at ingress / WAF / API gateway / a shared limiter.
- A rollback path is documented and rehearsed.
Accepted limitations for this release
- Genesis does not advertise ETag support; optimistic concurrency is not required for a pilot unless the target IdP requires it.
- SCIM Bulk operations are not supported.
- Custom SCIM schema extensions beyond the SCIM Enterprise User extension fields documented in the API Reference are not supported.
- The in-process per-token rate limiter is suitable for single-pod deployments; for multi-replica deployments, enforce strict global limits at ingress / WAF / API gateway / a shared limiter.

