-
Notifications
You must be signed in to change notification settings - Fork 654
feat: Add SCIM V2 #2309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Bewinxed
wants to merge
105
commits into
master
Choose a base branch
from
bewinxed/add-scim-v2
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat: Add SCIM V2 #2309
Changes from all commits
Commits
Show all changes
105 commits
Select commit
Hold shift + click to select a range
086b28f
feat: add scim to sso providers, banner reason to users, and add scim…
Bewinxed 742aa80
feat: add SCIM fields and methods to models
Bewinxed d9e25cb
feat: add scim error codes
Bewinxed 4d38667
fix: add findUserByProvider to user model
Bewinxed 4efc01d
chore: update Ban() calls in admin.go
Bewinxed 210ebd1
feat: Add SCIM v2 endpoints
Bewinxed 0659822
feat: register SCIM endpoints
Bewinxed 00317da
fix: reuse existing helpers for user creation, add audit logging
Bewinxed 8ea1ec0
feat: Add Admin SCIM management endpoints
Bewinxed 8f8aa1b
chore: make SCIM Token prefixed
Bewinxed e977276
fix: several bugfixes, add db-pagination
Bewinxed b3676aa
fix: restore is_super_admin to the User model
Bewinxed cac75ef
fix: RFC 7644 compliance
Bewinxed adb3125
chore: extract scim_parser out, minimal impl
Bewinxed ae537dc
chore: extract scim types out
Bewinxed 5d14e16
chore: add scim2/filter-parser as SCIM query parser
Bewinxed 9183e45
chore: add SCIM errors
Bewinxed 1cc3ec3
feat: add SCIM filter support to user and group queries
Bewinxed 4731c5a
chore: refactor SCIM to use extracted types/helpers.
Bewinxed 090dbf2
feat: add scim2/filter-parser dependency
Bewinxed d890c41
feat: add scim filters with RFC 7644 support
Bewinxed 548f909
fix: group schema migration fix
Bewinxed d6ee008
chore: rename scim parser to scim helper after dep was added
Bewinxed 4a96798
chore: extract UserNotInSSOProviderError as typed error
Bewinxed 3ebe331
chore(scim): remove unused group query functions
Bewinxed 5bb5172
chore: consolidate userBelongsToProvider implementations
Bewinxed 7d38d1a
chore: consolidate filter clause types
Bewinxed cc91093
fix(scim): remove duplicate types and fix error handling consistency
Bewinxed 96ed466
chore: add scim test infrastructure
Bewinxed fc330c3
chore: add SCIM user filtering tests
Bewinxed 3f04db3
chore: add SCIM user PATCH tests
Bewinxed 0ea17fb
chore: add SCIM group CRUD tests
Bewinxed 1c69b1c
chore: add SCIM group filtering tests
Bewinxed ff5c1dc
chore: add SCIM group membership PATCH tests
Bewinxed a431f22
chore: add SCIM authentication and error tests
Bewinxed c007f3f
chore: centralize test fixtures
Bewinxed 184e3b4
chore: add nosec for false positive token error code
Bewinxed b278e1d
fix: use sendSCIMJSON for SCIM error responses
Bewinxed 68d75d8
fix: use schema-qualified table names in SCIM queries
Bewinxed 161eafa
fix: scimReplaceUser now validates, updates email, and fully replaces…
Bewinxed 3b43ce4
fix: handle count=0 in SCIM pagination per RFC 7644
Bewinxed d64ac57
fix: make SCIM user delete idempotent
Bewinxed fca20d3
fix: sanitize JSON errors and use API_EXTERNAL_URL for SCIM base URL
Bewinxed 076683d
fix: use FlexBool for SCIM user Active field
Bewinxed d91aeb5
fix: add ESCAPE clause to LIKE filters and use SCIM error types consi…
Bewinxed 75480a8
chore: remove unused SCIM error code constants
Bewinxed 6024d8d
fix: optimize SCIM token lookup and add partial index
Bewinxed c6afbc8
fix: batch user loading in SetMembers to avoid N+1 queries
Bewinxed 13cd615
fix: use API_EXTERNAL_URL for SCIM base URL in admin endpoints
Bewinxed 58a14f7
chore: add SCIM PUT replace and cross-provider isolation tests
Bewinxed 313c57c
fix: add request size limits and validation for SCIM endpoints
Bewinxed 4fe20cc
fix: use SHA-256 instead of bcrypt for SCIM token lookup
Bewinxed 7241f9d
fix: harden SCIM cross-provider isolation, error handling, and batch …
Bewinxed c0482dd
refactor: route all SCIM PATCH paths through filter.ParsePath
Bewinxed 51282de
fix: pass ResponseWriter to MaxBytesReader instead of nil
Bewinxed fc66e83
fix: wrap all raw DB/model errors in SCIMHTTPError types
Bewinxed 75204ed
fix: map uniqueness violations to 409 in group patch and replace
Bewinxed c10e61e
fix: validate all member IDs in SetMembers before replacing
Bewinxed ce05abb
fix: preserve non-not-found errors in SetMembers validation and lock …
Bewinxed f2035ab
fix: remove DISTINCT from FOR SHARE query and de-duplicate in Go
Bewinxed 1f4e920
fix: enable SCIM user reactivation for SSO users
Bewinxed e855455
fix: scope SCIM reactivation lookup by provider to prevent cross-prov…
Bewinxed e8b22b9
fix: make SCIM reactivation deterministic by querying all matching SS…
Bewinxed 09a8d17
fix: return 400 for unsupported SCIM PATCH paths and value types
Bewinxed 332b8e4
fix: log SCIM 5xx errors at Error level and 429 at Warn level
Bewinxed 650abd9
fix: reject ambiguous reactivation when multiple deprovisioned users …
Bewinxed 504bad4
fix: support SCIM PATCH add with explicit path for user attributes
Bewinxed 630f38e
fix: cap startIndex, use SetEmail in PATCH, map externalId uniqueness…
Bewinxed e310393
fix: use SetEmail consistently in SCIM PATCH/PUT and map email unique…
Bewinxed a9259b5
fix: enforce provider-scoped email uniqueness in SCIM PUT and PATCH p…
Bewinxed 0484837
test: add SCIM email uniqueness regression tests for PUT and PATCH
Bewinxed 1bab6ed
fix: fix group member pointer aliasing, group create race, and FlexBo…
Bewinxed b7a9348
fix: preserve non-SCIM metadata in PUT and pass IP to audit logs
Bewinxed 050e64b
fix: stop clearing provider_id on externalId removal and batch group …
Bewinxed 5bfb196
fix: normalize active parsing, derive externalId from identity data, …
Bewinxed f123bd3
fix: use identity_data for externalId filter and add row locking to A…
Bewinxed ed379b2
fix: lock identity rows alongside user rows in group membership valid…
Bewinxed 97c5d34
fix: honor active attribute on SCIM user create
Bewinxed 8c2b44f
fix: check non-SSO email collisions, sync sub on externalId change, g…
Bewinxed 270db7f
fix: default members in group list, avoid eager loading, make timesta…
Bewinxed 407d495
chore: consolidate SCIM migrations into single file
Bewinxed f22a0b7
fix: use correct audit action when reprovisioning inactive user
Bewinxed f38e226
fix: update identity data and merge metadata on user reactivation
Bewinxed 0873bf8
fix: deduplicate member IDs before validation in AddMembers/SetMembers
Bewinxed a6e6ce5
refactor: extract identity update helpers to reduce SCIM patch comple…
Bewinxed 0474ed1
feat: gate SCIM routes behind GOTRUE_SCIM_ENABLED config flag
Bewinxed 6b96df9
fix: validate schemas field in SCIM request bodies per RFC 7644
Bewinxed c28221f
fix: use NULLIF in COALESCE to skip empty userName in filter queries
Bewinxed 1459b26
fix: add safety LIMIT to GetMembers query
Bewinxed 767dabb
refactor: deduplicate schema and resource type definitions
Bewinxed 10ca92c
style: fix indentation of SCIM route registration block
Bewinxed 6965e3c
fix: reset ProviderID and sub when externalId is omitted in PUT and r…
Bewinxed a53392e
fix: check cross-provider email collisions to return 409 instead of 500
Bewinxed 1db2a53
fix: reset ProviderID and sub when removing externalId via PATCH
Bewinxed 941b0e6
refactor: extract shared helpers and remove duplication across SCIM f…
Bewinxed 17797dc
fix: remove IsSuperAdmin field re-added against upstream removal
Bewinxed 60a56f7
cleanup: remove dead code, fix PR description, add SCIM test coverage
Bewinxed 85aab09
fix: update SCIM delete user response to return 404 for deprovisioned…
Bewinxed a9cb049
fix: remove unused identityID assignment in scimCreateUser function
Bewinxed 9194354
chore: remove redundant tests, extract error constants, normalize SCI…
Bewinxed 8275288
feat: use Pop instead of raw queries and fix some tests
Bewinxed 71b1987
refactor: extract shared SCIM helpers, deduplicate group member logic
Bewinxed ae0848a
fix: harden SCIM reactivation, escape LIKE patterns, gate admin route…
Bewinxed d4279e6
fix: fail-fast on bad input types, require SSO identity in mutation p…
Bewinxed 56af022
fix: fix user selection in scim groups to not include unknown fields
Bewinxed File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.