Skip to content

feat(webapp): Directory Sync (SCIM) for Identity & Access - #4148

Merged
0ski merged 1 commit into
mainfrom
oskar/feat-directory-sync
Jul 6, 2026
Merged

feat(webapp): Directory Sync (SCIM) for Identity & Access#4148
0ski merged 1 commit into
mainfrom
oskar/feat-directory-sync

Conversation

@0ski

@0ski0ski commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Extend the SSO plugin contract for directory sync and apply membership effects
from the accounts webhook worker: provision users in mapped groups (role from
group mapping, else the org default role), deprovision on removal, and keep a
sticky-removal tombstone so JIT never silently re-adds a removed user. JIT and
Directory Sync coexist; roles default to Developer (the JIT default-role picker
has no 'None'). Changing a group's role in the dashboard re-applies it to that
group's current members immediately. The Directory Sync settings section
(group→role mapping, external-domain + manual-membership policy, deferred Save)
appears once a domain is verified — independent of SSO — gated by the hasSso
flag. The settings page polls the whole page while entitled with override-aware
drafts so in-progress edits are never clobbered.

@changeset-bot

changeset-botBot commented Jul 3, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: eae6a92

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 28 packages
NameType
@trigger.dev/pluginsPatch
@trigger.dev/rbacPatch
@trigger.dev/ssoPatch
@trigger.dev/buildPatch
@trigger.dev/corePatch
@trigger.dev/pythonPatch
@trigger.dev/react-hooksPatch
@trigger.dev/redis-workerPatch
@trigger.dev/rscPatch
@trigger.dev/schema-to-jsonPatch
@trigger.dev/sdkPatch
@trigger.dev/databasePatch
@trigger.dev/otlp-importerPatch
trigger.devPatch
@internal/dashboard-agentPatch
@internal/cachePatch
@internal/clickhousePatch
@internal/llm-model-catalogPatch
@internal/redisPatch
@internal/replicationPatch
@internal/run-enginePatch
@internal/run-storePatch
@internal/schedule-enginePatch
@internal/testcontainersPatch
@internal/tracingPatch
@internal/tsqlPatch
@internal/zod-workerPatch
@internal/sdk-compat-testsPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitaiBot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR adds WorkOS Directory Sync (SCIM) support to the SSO plugin contract and webapp. New directory sync types and controller methods are added, fallback and lazy controller implementations are extended, and webhook processing now returns host membership effects. The webapp applies those effects, blocks manual membership changes when directory-managed membership is enforced, and adds Directory Sync configuration controls to the SSO settings page.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Description check⚠️ WarningThe description summarizes the change but misses the required template sections, including Closes #, checklist, testing, changelog, and screenshots.Rewrite the PR description to match the template and add the missing issue reference, checklist items, testing steps, changelog, and screenshots sections.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Title check✅ PassedThe title is concise and accurately captures the main change: adding Directory Sync support for Identity & Access.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch oskar/feat-directory-sync

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@0ski
0skiforce-pushed the oskar/feat-directory-sync branch from 4a57f15 to 3cba6afCompareJuly 3, 2026 16:06
@0ski
0ski marked this pull request as ready for review July 3, 2026 16:06
@pkg-pr-new

pkg-pr-newBot commented Jul 3, 2026

Copy link
Copy Markdown

Open in StackBlitz

@trigger.dev/build

npm i https://pkg.pr.new/@trigger.dev/build@eae6a92

trigger.dev

npm i https://pkg.pr.new/trigger.dev@eae6a92

@trigger.dev/core

npm i https://pkg.pr.new/@trigger.dev/core@eae6a92

@trigger.dev/python

npm i https://pkg.pr.new/@trigger.dev/python@eae6a92

@trigger.dev/react-hooks

npm i https://pkg.pr.new/@trigger.dev/react-hooks@eae6a92

@trigger.dev/redis-worker

npm i https://pkg.pr.new/@trigger.dev/redis-worker@eae6a92

@trigger.dev/rsc

npm i https://pkg.pr.new/@trigger.dev/rsc@eae6a92

@trigger.dev/schema-to-json

npm i https://pkg.pr.new/@trigger.dev/schema-to-json@eae6a92

@trigger.dev/sdk

npm i https://pkg.pr.new/@trigger.dev/sdk@eae6a92

commit: eae6a92

devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@0ski
0skiforce-pushed the oskar/feat-directory-sync branch from 3cba6af to 0043359CompareJuly 3, 2026 16:24
devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@0ski
0skiforce-pushed the oskar/feat-directory-sync branch from 0043359 to c485cabCompareJuly 3, 2026 16:31
devin-ai-integration[bot]

This comment was marked as resolved.

@0ski
0skiforce-pushed the oskar/feat-directory-sync branch 3 times, most recently from 3571991 to 99c84abCompareJuly 3, 2026 16:52
coderabbitai[bot]

This comment was marked as resolved.

@0ski
0skiforce-pushed the oskar/feat-directory-sync branch from 99c84ab to 395c60bCompareJuly 3, 2026 17:29
@0ski0ski changed the title feat(webapp): WorkOS Directory Sync (SCIM) for Identity & Accessfeat(webapp): Directory Sync (SCIM) for Identity & AccessJul 3, 2026
Extend the SSO plugin contract for directory sync and apply membership effects
from the accounts webhook worker: provision users in mapped groups (role from
group mapping, else the org default role), deprovision on removal, and keep a
sticky-removal tombstone so JIT never silently re-adds a removed user. JIT and
Directory Sync coexist; roles default to Developer (the JIT default-role picker
has no 'None'). Changing a group's role in the dashboard re-applies it to that
group's current members immediately. The Directory Sync settings section
(group→role mapping, external-domain + manual-membership policy, deferred Save)
appears once a domain is verified — independent of SSO — gated by the hasSso
flag. The settings page polls the whole page while entitled with override-aware
drafts so in-progress edits are never clobbered.
@0ski
0skiforce-pushed the oskar/feat-directory-sync branch from 395c60b to eae6a92CompareJuly 3, 2026 17:56
d-cs
d-cs approved these changes Jul 3, 2026
@0ski
0ski merged commit de65370 into mainJul 6, 2026
48 checks passed
@0ski
0ski deleted the oskar/feat-directory-sync branch July 6, 2026 07:31
@github-actionsgithub-actionsBot mentioned this pull request Jul 6, 2026
carderne pushed a commit that referenced this pull request Jul 6, 2026
## Summary
1 improvement.
## Improvements
- Extend the SSO plugin contract with WorkOS Directory Sync (SCIM)
support.
([#4148](#4148))
<details>
<summary>Raw changeset output</summary>
# Releases
## @trigger.dev/build@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.1`
## trigger.dev@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.5.1`
- `@trigger.dev/core@4.5.1`
- `@trigger.dev/schema-to-json@4.5.1`
## @trigger.dev/python@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/build@4.5.1`
- `@trigger.dev/core@4.5.1`
- `@trigger.dev/sdk@4.5.1`
## @trigger.dev/react-hooks@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.1`
## @trigger.dev/redis-worker@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.1`
## @trigger.dev/rsc@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.1`
## @trigger.dev/schema-to-json@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.1`
## @trigger.dev/sdk@4.5.1
### Patch Changes
- Updated dependencies:
- `@trigger.dev/core@4.5.1`
## @trigger.dev/core@4.5.1
## @trigger.dev/plugins@4.5.1
### Patch Changes
- Extend the SSO plugin contract with WorkOS Directory Sync (SCIM)
support.
([#4148](#4148))
- Updated dependencies:
- `@trigger.dev/core@4.5.1`
</details>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@0ski@d-cs