scim
Skill1 starsChanged 31 days agoMITView on GitHub
SCIM 2.0: provision users and groups across domains with the RFC 7643 schema and RFC 7644 protocol, as a service provider or a client. Use when building, consuming or reviewing a SCIM API or an identity provider provisioning connector: /Users, /Groups, /Me, /Bulk and /.search endpoints, PATCH PatchOp add, remove and replace with value paths, filter expressions (eq, co, sw, pr, and, or, not, brackets), sortBy, startIndex and count, RFC 9865 cursor pagination (cursor, nextCursor), ETags with If-Match and If-None-Match, ListResponse and Error messages with scimType, /ServiceProviderConfig, /ResourceTypes and /Schemas discovery, the core User and Group schemas, the Enterprise User extension, attribute mutability and returned rules, externalId, deprovisioning with active false, bearer token and RFC 7523 JWT client authentication, RFC 9967 SCIM security events and asynchronous requests (Set-Txn), and the IPSIE AL and FastFed SCIM profiles. Pins RFC 7643, RFC 7644, RFC 9865 and RFC 9967.
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
PUT never creates, and PATCH is atomic: PUT MUST NOT be used to create resources (RFC 7644 §3.5.1).
- Distinctive: line 36
Deleted means gone: After DELETE, the service provider MUST return 404 for the resource and omit it from queries (RFC 7644 §3.6).
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SCIM 2.0
The System for Cross-domain Identity Management (SCIM) 2.0 is an HTTP and JSON protocol for provisioning identities across domains. A SCIM client, usually the identity provider, creates, updates, deactivates and deletes Users and Groups at a SCIM service provider, usually the application. This skill pins RFC 7643 (schema), RFC 7644 (protocol), RFC 9865 (cursor pagination) and RFC 9967 (security events), and produces a server, client or review that meets their rules.
Follow the workflow below step by step. Every rule here comes from a source in Sources, with the section it cites. When a rule and the pinned source disagree, the source wins; when the source has a newer revision than the pin, follow the refresh steps.
Inputs (fill in, or ask before starting)
- Role: SCIM service provider (server), SCIM client, or both. RFC 7643 §1.2 defines both roles; RFC 7642 §2.2.2 describes the actors behind them.
- Resources: Users only, or Users and Groups, plus any extensions such as the Enterprise User extension.
- Profile: plain RFC 7643 and RFC 7644, the IPSIE AL SCIM profile (AL1 or AL2), or the FastFed Enterprise SCIM profile.
- Optional features: PATCH, Bulk, filtering, sorting, ETags, cursor pagination, security events.
- Sources: when refreshing this skill or when a rule looks out of date, check the RFC Editor info page of each RFC for "Updated by" entries, re-read the IPSIE AL draft and FastFed specification pages, then every URL in Sources. Update the pins and bump the version.
Invariants
- TLS always. Clients and service providers MUST require TLS; the service provider MUST support TLS 1.2; the client MUST check the server identity (RFC 7644 §7.2). Bearer tokens and cookies MUST be exchanged over TLS (RFC 7644 §7.4).
- Every request maps to an access policy. The service provider MUST map the authenticated client to an access control policy before it retrieves or updates resources (RFC 7644 §2). Bearer tokens MUST have enough entropy and a limited lifetime (RFC 7644 §7.4).
- The service provider owns
idandmeta. It assigns them on create;idis unique across the service provider, stable, never reassigned, and MUST NOT be set by the client;metais ignored when a client sends it (RFC 7643 §3.1). - The client owns
externalId. The service provider MUST NOT set it and MUST interpret it as scoped to the provisioning domain (RFC 7643 §3.1). - Every resource and message declares
schemas. Resources carry their schema URIs (RFC 7643 §3); messages use theurn:ietf:params:scim:api:messages:2.0:URIs (RFC 7644 §3.1). - Mutability decides what a write can change.
readOnlyvalues are ignored on create and PUT;immutablevalues must match once set; PATCH MUST NOT modifyreadOnlyor setimmutableattributes (RFC 7644 §3.3, §3.5.1, §3.5.2). - PUT never creates, and PATCH is atomic. PUT MUST NOT be used to create resources (RFC 7644 §3.5.1). A PATCH is applied in order and atomically; if one operation fails the resource MUST be restored (RFC 7644 §3.5.2).
- Errors use the SCIM Error message. Errors MUST be returned in the body as
urn:ietf:params:scim:api:messages:2.0:Errorwithstatusas a string, plusscimTypefor 400s where defined (RFC 7644 §3.12). - Conflicts are 409
uniqueness. A create that duplicates a unique value such asuserNameMUST return 409 withscimTypeuniqueness(RFC 7644 §3.3). - Deleted means gone. After DELETE, the service provider MUST return 404 for the resource and omit it from queries (RFC 7644 §3.6).
- Unknown filters fail. A service provider MUST reject an unrecognized filter operation with 400
invalidFilter(RFC 7644 §3.4.2.2), and MUST return 413 when a bulk request exceeds its limits (RFC 7644 §3.7.4). - Passwords are write-only.
passwordis never returned in any form, and stored values MUST NOT be cleartext (RFC 7643 §4.1.1, §9.2). - Sensitive filters do not go in URLs. Clients SHOULD use POST
/.searchfor filters with personal data, and servers SHOULD answer such GETs with 403 (RFC 7644 §7.5.2).
Workflow
- Scope the work. Confirm the role, resources, profile and optional features from Inputs. ✓ The design lists each endpoint and method to support, and which profile applies.
- Model the resources. Define User, Group and extension attributes with their characteristics, and the common attributes.
->
references/schema.md✓ Every attribute has type, mutability, returned, uniqueness and caseExact settled. - Implement create, read, replace, patch and delete. Apply the mutability rules, status codes,
Locationandmeta.location. ->references/protocol.md✓ POST returns 201 withLocation; DELETE returns 204; a later GET returns 404. - Implement queries. Filters, sorting,
attributesandexcludedAttributes, index or cursor pagination, and POST/.search. ->references/protocol.md,references/pagination.md✓ An empty result is 200 withtotalResults0, and an unknown operator is 400invalidFilter. - Add Bulk, ETags and errors. Bulk with
bulkIdandfailOnErrors, ETags withIf-MatchandIf-None-Match, and the error tables. ->references/protocol.md✓ A staleIf-Matchgets 412, and an oversized bulk request gets 413. - Publish discovery. Serve
/ServiceProviderConfig,/ResourceTypesand/Schemas, with the RFC 9865paginationand RFC 9967securityEventsattributes where used. ->references/discovery.md✓ The ServiceProviderConfig flags match what the server actually supports. - Secure it. Authentication, authorization per client, tenancy, TLS, privacy and credential handling.
->
references/security.md✓ A token for one tenant cannot read or change another tenant's resources. - Apply the profile. For IPSIE AL or FastFed, add their authentication, filter and timing rules.
->
references/profiles.md✓ Each MUST in the chosen profile maps to a test. - Add security events if used. Emit or consume RFC 9967 SETs, and support asynchronous requests.
->
references/events.md✓ A 202 response carriesSet-Txn, and the completion SET has the sametxn.
Verify before done
- All traffic is HTTPS, and requests without valid credentials get 401 (RFC 7644 §3.12).
- Responses use
Content-Type: application/scim+json(RFC 7644 §8.1). - POST
/Userswith a duplicateuserNamegets 409 with"scimType": "uniqueness". - PATCH with a failing second operation leaves the resource unchanged.
GET /Users?filter=userName eq "x"works, and a bad filter gets 400invalidFilter.ListResponsecarriestotalResults, andstartIndexanditemsPerPagewhen paged./ServiceProviderConfigreportspatch,bulk,filter,changePassword,sort,etagandauthenticationSchemes.- Error bodies use the Error schema and
statusis a string. passwordis never returned, and no resource uses the stringbulkIdin an identifier (RFC 7643 §3.1).
Reference index
references/schema.md: attribute characteristics and data types, multi-valued attributes, common attributes, User, Group, the Enterprise User extension and schema extensions.references/protocol.md: endpoints and methods, create, read, PUT, PATCH, DELETE, filters, sorting, attribute selection,/.search, Bulk,/Me, errors, versioning and ETags.references/pagination.md: index pagination from RFC 7644 and cursor pagination from RFC 9865.references/discovery.md:/ServiceProviderConfig,/ResourceTypes,/Schemas, and the RFC 9865 and RFC 9967 additions.references/security.md: authentication options, bearer tokens, RFC 7523 JWT client authentication, tenancy, TLS, privacy and credential storage.references/profiles.md: the IPSIE AL SCIM 2.0 profile and the FastFed Enterprise SCIM profile.references/events.md: RFC 9967 security events, thesub_idformat, provisioning and feed events, asynchronous requests andSet-Txn.
Related skills
oauth, for the OAuth 2.0 token endpoint and client credentials that SCIM clients use:npx skills add ScaleDockHQ/scaledock-skills --skill oauthjwt, for the RFC 7523 assertions and signed security event tokens:npx skills add ScaleDockHQ/scaledock-skills --skill jwt
Sources
Status uses the publishing body's own maturity term. Checked is the date the source was last read.
- RFC 7642: SCIM Definitions, Overview, Concepts, and Requirements: RFC (Informational), RFC 7642, checked 2026-10-02.
- RFC 7643: SCIM Core Schema: RFC (Proposed Standard, updated by RFC 9865 and RFC 9967), RFC 7643, checked 2026-10-02.
- RFC 7644: SCIM Protocol: RFC (Proposed Standard, updated by RFC 9865 and RFC 9967), RFC 7644, checked 2026-10-02.
- RFC 9865: Cursor-Based Pagination of SCIM Resources: RFC (Proposed Standard), RFC 9865, checked 2026-10-02.
- RFC 9967: SCIM Profile for Security Event Tokens: RFC (Proposed Standard), RFC 9967, checked 2026-10-02.
- RFC 7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants: RFC (Proposed Standard), RFC 7523, checked 2026-10-02.
- IPSIE AL SCIM 2.0 Profile: Editor's draft (IPSIE Working Group), Draft 00, editor's copy at commit 1a9985f (2026-09-08); Draft posture: track, checked 2026-10-02.
- IPSIE AL SCIM profile repository: Editor's draft source, main at 1a9985f (2026-09-08), checked 2026-10-02.
- FastFed Enterprise SCIM Profile 1.0: Implementer's Draft (archived working group), draft 03, identical to ID1, 2020-10-07; Draft posture: track, checked 2026-10-02.
- FastFed working group specifications: Working group page (archived), lists draft 03 as the most recent, checked 2026-10-02.
In this repository40 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- find-skillsSkill
- a2aSkill
- ag-uiSkill
- ap2Skill
- asyncapiSkill
- authzenSkill
- cedarSkill
- cloudeventsSkill
- eu-ai-actSkill
- fapiSkill
- gnapSkill
- jwtSkill
- mcp-authorizationSkill
- oauthSkill
- ocsfSkill
- openapi-arazzoSkill
- openapi-overlaySkill
- openapiSkill
- openfeatureSkill
- openid4vcSkill
- openid-connectSkill
- openid-federationSkill
- openidSkill
- opentelemetry-genaiSkill
- owasp-agenticSkill
- problem-detailsSkill
- ratelimit-headersSkill
- scaledock-agent-permissionsSkill
- scaledock-enterprise-identitySkill
- scaledock-http-apiSkill
- scaledock-mcp-serverSkill
- scaledock-repo-standardSkill
- shared-signalsSkill
- spiffeSkill
- standard-schemaSkill
- typespecSkill
- web-bot-authSkill
- webmcpSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

