Search and filter model
Filtering needs strict grammar validation and result bounds to prevent expensive backend scans and unexpected result windows. FreeSCIM keeps the public contract practical: exact-match user filters, active-state filters, and exact group display-name lookup.
Pagination guidance
- Use stable sort and deterministic cursors where available.
- Document default page size and server maximums.
- Expose throttling headers to guide client pacing.
Performance guardrail
When queries grow, move to indexed attribute paths first, then broaden query complexity in controlled maintenance windows.
Filter edge cases
- Reject unsupported operators instead of silently widening queries.
- Fail closed for unsupported operators to avoid full table scan explosions.
- Return stable sort ordering for every paginated cursor response.
GET /scim/v2/Users?filter=userName+eq+%22alice%22&startIndex=1&count=25GET /scim/v2/Users?filter=active+eq+false&startIndex=1&count=25GET /scim/v2/Groups?filter=displayName+eq+%22eng-admin%22&startIndex=1&count=25