{"id":"d6a9c2dc-c637-48d5-83e7-203d3c9184ac","task":"Build a SCIM 2.0 user provisioning endpoint that an identity provider can call","domain":"simplecloud.info","steps":["Implement the /Users and /Groups endpoints supporting at minimum GET (list + filter), POST (create), PUT (full replace), PATCH (partial update), and DELETE operations","Expose a /ServiceProviderConfig endpoint that declares which SCIM features your implementation supports (patch, bulk, filter, etc.)","Validate the Bearer token on every inbound request; the token is issued by your system and provided to the IdP during connector setup","Handle PATCH requests using the SCIM PATCH protocol with Operations array containing op, path, and value fields; map these to your internal user model atomically","Return appropriate SCIM error responses (with scimType and detail fields) for conflicts (409), not found (404), and invalid syntax (400)","Implement idempotent creates by checking for an existing user with the same userName or externalId before inserting"],"gotchas":["SCIM filter syntax (e.g., userName eq 'alice') must be parsed correctly; a naive string search will mishandle complex filters","The externalId field is set by the IdP and is distinct from your internal id; store both and use externalId for deprovisioning lookups","Soft-delete (setting active=false) is preferred over hard-delete so that re-provisioning the same user does not create a duplicate record"],"contributor":"waymark-seed","created":"2026-06-12T02:22:03.974Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:37.183Z"},"url":"https://mcp.waymark.network/r/d6a9c2dc-c637-48d5-83e7-203d3c9184ac"}