-
Notifications
You must be signed in to change notification settings - Fork 680
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
111
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
111 commits
Select commit
Hold shift + click to select a range
60ee647
feat: add scim to sso providers, banner reason to users, and add scim…
Bewinxed 624b762
feat: add SCIM fields and methods to models
Bewinxed b10f6f4
feat: add scim error codes
Bewinxed bfcf6aa
fix: add findUserByProvider to user model
Bewinxed 1a1e01e
chore: update Ban() calls in admin.go
Bewinxed 6f4ec12
feat: Add SCIM v2 endpoints
Bewinxed 9cffbe9
feat: register SCIM endpoints
Bewinxed ae5a873
fix: reuse existing helpers for user creation, add audit logging
Bewinxed aabec76
feat: Add Admin SCIM management endpoints
Bewinxed 5555ad4
chore: make SCIM Token prefixed
Bewinxed c20e432
fix: several bugfixes, add db-pagination
Bewinxed a2aac77
fix: restore is_super_admin to the User model
Bewinxed 0b19686
fix: RFC 7644 compliance
Bewinxed f34cf8d
chore: extract scim_parser out, minimal impl
Bewinxed 1318e1b
chore: extract scim types out
Bewinxed cc14674
chore: add scim2/filter-parser as SCIM query parser
Bewinxed ece724e
chore: add SCIM errors
Bewinxed 9acdadd
feat: add SCIM filter support to user and group queries
Bewinxed f5ff513
chore: refactor SCIM to use extracted types/helpers.
Bewinxed b36817f
feat: add scim2/filter-parser dependency
Bewinxed fac2351
feat: add scim filters with RFC 7644 support
Bewinxed d015452
fix: group schema migration fix
Bewinxed 546354b
chore: rename scim parser to scim helper after dep was added
Bewinxed 6379c0b
chore: extract UserNotInSSOProviderError as typed error
Bewinxed d6eb027
chore(scim): remove unused group query functions
Bewinxed 3d7aee8
chore: consolidate userBelongsToProvider implementations
Bewinxed 814dce4
chore: consolidate filter clause types
Bewinxed 6c5912c
fix(scim): remove duplicate types and fix error handling consistency
Bewinxed fa91384
chore: add scim test infrastructure
Bewinxed bfaf1a9
chore: add SCIM user filtering tests
Bewinxed a14169a
chore: add SCIM user PATCH tests
Bewinxed 024c400
chore: add SCIM group CRUD tests
Bewinxed 7622b7e
chore: add SCIM group filtering tests
Bewinxed c2a2e6b
chore: add SCIM group membership PATCH tests
Bewinxed 886ce98
chore: add SCIM authentication and error tests
Bewinxed cf58d3c
chore: centralize test fixtures
Bewinxed f4f72d8
chore: add nosec for false positive token error code
Bewinxed f8d7f19
fix: use sendSCIMJSON for SCIM error responses
Bewinxed 08166c1
fix: use schema-qualified table names in SCIM queries
Bewinxed 9fcd5ee
fix: scimReplaceUser now validates, updates email, and fully replaces…
Bewinxed 765f4d9
fix: handle count=0 in SCIM pagination per RFC 7644
Bewinxed dbad99d
fix: make SCIM user delete idempotent
Bewinxed 3ba2dbb
fix: sanitize JSON errors and use API_EXTERNAL_URL for SCIM base URL
Bewinxed e2b6d37
fix: use FlexBool for SCIM user Active field
Bewinxed b85f055
fix: add ESCAPE clause to LIKE filters and use SCIM error types consi…
Bewinxed 0eb41f7
chore: remove unused SCIM error code constants
Bewinxed 68b02b1
fix: optimize SCIM token lookup and add partial index
Bewinxed fc3cec5
fix: batch user loading in SetMembers to avoid N+1 queries
Bewinxed 149e2b7
fix: use API_EXTERNAL_URL for SCIM base URL in admin endpoints
Bewinxed b294dac
chore: add SCIM PUT replace and cross-provider isolation tests
Bewinxed bdb6272
fix: add request size limits and validation for SCIM endpoints
Bewinxed 8bd64fc
fix: use SHA-256 instead of bcrypt for SCIM token lookup
Bewinxed e5a88c7
fix: harden SCIM cross-provider isolation, error handling, and batch …
Bewinxed 6a9e704
chore: route all SCIM PATCH paths through filter.ParsePath
Bewinxed 8febe1a
fix: pass ResponseWriter to MaxBytesReader instead of nil
Bewinxed 7b0ec3f
fix: wrap all raw DB/model errors in SCIMHTTPError types
Bewinxed bf83439
fix: map uniqueness violations to 409 in group patch and replace
Bewinxed 4f2bd1c
fix: validate all member IDs in SetMembers before replacing
Bewinxed cac9242
fix: preserve non-not-found errors in SetMembers validation and lock …
Bewinxed 67329b3
fix: remove DISTINCT from FOR SHARE query and de-duplicate in Go
Bewinxed f4dde2f
fix: enable SCIM user reactivation for SSO users
Bewinxed 9a2c3ec
fix: scope SCIM reactivation lookup by provider to prevent cross-prov…
Bewinxed 74c8a22
fix: make SCIM reactivation deterministic by querying all matching SS…
Bewinxed 0f5b704
fix: return 400 for unsupported SCIM PATCH paths and value types
Bewinxed ca7ba7b
fix: log SCIM 5xx errors at Error level and 429 at Warn level
Bewinxed 6d197b3
fix: reject ambiguous reactivation when multiple deprovisioned users …
Bewinxed a43caab
fix: support SCIM PATCH add with explicit path for user attributes
Bewinxed 8b487af
fix: cap startIndex, use SetEmail in PATCH, map externalId uniqueness…
Bewinxed 19ac869
fix: use SetEmail consistently in SCIM PATCH/PUT and map email unique…
Bewinxed de7d50e
fix: enforce provider-scoped email uniqueness in SCIM PUT and PATCH p…
Bewinxed 7d30a0d
chore: add SCIM email uniqueness regression tests for PUT and PATCH
Bewinxed a78bc5e
fix: fix group member pointer aliasing, group create race, and FlexBo…
Bewinxed df00e88
fix: preserve non-SCIM metadata in PUT and pass IP to audit logs
Bewinxed 5462004
fix: stop clearing provider_id on externalId removal and batch group …
Bewinxed 6e1e5c5
fix: normalize active parsing, derive externalId from identity data, …
Bewinxed 12a31c8
fix: use identity_data for externalId filter and add row locking to A…
Bewinxed 702b6bc
fix: lock identity rows alongside user rows in group membership valid…
Bewinxed 0942da7
fix: honor active attribute on SCIM user create
Bewinxed 0a1f82d
fix: check non-SSO email collisions, sync sub on externalId change, g…
Bewinxed 008bb4d
fix: default members in group list, avoid eager loading, make timesta…
Bewinxed 4067fc8
chore: consolidate SCIM migrations into single file
Bewinxed 33e6d10
fix: use correct audit action when reprovisioning inactive user
Bewinxed bdc7652
fix: update identity data and merge metadata on user reactivation
Bewinxed 9be5e31
fix: deduplicate member IDs before validation in AddMembers/SetMembers
Bewinxed 964e9fd
chore: extract identity update helpers to reduce SCIM patch complexity
Bewinxed eaba906
feat: gate SCIM routes behind GOTRUE_SCIM_ENABLED config flag
Bewinxed 5f25603
fix: validate schemas field in SCIM request bodies per RFC 7644
Bewinxed b137208
fix: use NULLIF in COALESCE to skip empty userName in filter queries
Bewinxed bb42801
fix: add safety LIMIT to GetMembers query
Bewinxed 21368c0
chore: deduplicate schema and resource type definitions
Bewinxed 5b4e06d
chore: fix indentation of SCIM route registration block
Bewinxed 6dbdcb2
fix: reset ProviderID and sub when externalId is omitted in PUT and r…
Bewinxed 13dcec9
fix: check cross-provider email collisions to return 409 instead of 500
Bewinxed 9d5f8ab
fix: reset ProviderID and sub when removing externalId via PATCH
Bewinxed 150e7a2
chore: extract shared helpers and remove duplication across SCIM files
Bewinxed 050a7af
fix: remove IsSuperAdmin field re-added against upstream removal
Bewinxed 7328e2e
chore: remove dead code, fix PR description, add SCIM test coverage
Bewinxed 30d01f0
fix: update SCIM delete user response to return 404 for deprovisioned…
Bewinxed 4b5a928
fix: remove unused identityID assignment in scimCreateUser function
Bewinxed 129c3bd
chore: remove redundant tests, extract error constants, normalize SCI…
Bewinxed 6b61b9e
feat: use Pop instead of raw queries and fix some tests
Bewinxed 8c5c3a7
chore: extract shared SCIM helpers, deduplicate group member logic
Bewinxed 025855e
fix: harden SCIM reactivation, escape LIKE patterns, gate admin route…
Bewinxed b43a58a
fix: fail-fast on bad input types, require SSO identity in mutation p…
Bewinxed e1836f9
fix: fix user selection in scim groups to not include unknown fields
Bewinxed aec81f7
feat: add user lock state distinct from ban
Bewinxed d9c58d0
feat: reject locked users across auth flows
Bewinxed 4804c23
chore: deprovision SCIM users via lock instead of ban
Bewinxed e0091be
feat: support filtering SCIM users by active state
Bewinxed f91ac4d
chore: normalize SCIM audit log provider and action fields
Bewinxed 1578e13
fix: lock user row during SCIM reactivation to prevent race
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
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.
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.