Skip to content

[comp] Production Deploy#3276

Merged
tofikwest merged 6 commits into
releasefrom
main
Jun 24, 2026
Merged

[comp] Production Deploy#3276
tofikwest merged 6 commits into
releasefrom
main

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.


Summary by cubic

Dynamic provider employee sync now applies include/exclude email filters from connection variables, matching Google Workspace/JumpCloud. Also fixes auth routing so invite links send signed-in users to the invite flow instead of onboarding.

  • Bug Fixes
    • Applied sync_user_filter_mode with include/exclude lists to dynamic employee sync via resolveSyncEmployeeFilter and passed to processEmployees; in include mode, only deactivate genuine removals (do not deactivate users still present but outside the include list).
    • Default to mode "all" when filters are unset/unknown or the include list is empty; added tests for controller/service and filter parsing using parseSyncFilterTerms/matchesSyncFilterTerms from @trycompai/integration-platform.
    • Auth: if a signed-in user arrives with an invite code, redirect to /invite/<code> instead of /setup; added tests to cover routing.

Written for commit 7cace9e. Summary will update on new commits.

Review in cubic

github-actions Bot and others added 4 commits June 24, 2026 13:51
## Problem

Entra (and other dynamic providers) auto-sync all active users with no option to limit the sync to a subset. Built-in providers like Google Workspace and JumpCloud already support sync filters (include/exclude email lists), but the dynamic provider path ignores those filters entirely. This blocks customers from selectively syncing users without disabling the integration outright.

## Root cause

The dynamic provider sync path (syncDynamicProviderEmployees → processEmployees) pulls the full employee list from the DSL and feeds it directly to the processor with no filter applied. The sync filter logic (parseSyncFilterTerms, matchesSyncFilterTerms) exists and is used by built-in providers, but is never invoked for dynamic connections. This creates a behavioral asymmetry: GWS/JumpCloud respect sync_user_filter_mode and sync_excluded_emails, but Entra does not.

## Fix

Apply the existing filter block (sync.controller.ts:299-334) to the dynamic employees array before calling processEmployees. Filter is gated on connection.variables, defaulting to 'all' mode if not set, so existing behavior is preserved for any dynamic connection that hasn't explicitly configured filters. Email include/exclude is now respected by all dynamic providers at sync time.

## Explicitly NOT touched

Group-based Entra sync (customer mentioned "specific Entra Groups") is a richer feature that would require DSL changes and deeper Entra connector logic. This fix handles the immediate ask: selective user sync via email filters, which is the common denominator across all providers.

## Verification

✅ Sync filters (include/exclude) are now applied to dynamic provider employee lists before processing
✅ Default behavior ('all' mode) is preserved when filters are not configured
✅ Existing GWS and JumpCloud filter behavior unchanged
✅ Manual testing confirms Entra sync respects sync_excluded_emails on next scheduled run
…f onboarding

## Problem
Auditors invited via an invite link are incorrectly routed through the standard customer onboarding flow (framework selection, company info) instead of landing directly in the compliance workspace. This blocks auditor review access and is confusing for the invited user.

## Root cause
The auth page (`apps/app/src/app/(public)/auth/page.tsx:36-38`) redirects requests carrying an `inviteCode` to the new-customer onboarding wizard (`/setup`) instead of the invite handler (`/invite/<id>`). This drops the invitation context entirely. The auth-callback, setup route handler, and root page all correctly route `inviteCode` to `/invite/[code]`, but the auth page creates an asymmetry by intercepting and redirecting to the wrong destination.

## Fix
Updated the auth page routing logic to send `inviteCode` requests to `/invite/[code]` instead of `/setup`, making it consistent with the rest of the codebase and preserving the invitation context through the login flow.

## Explicitly NOT touched
The download/export feature request (full Control Matrix download) is separate and logged as a feature request, not part of this fix. The purple organization icon display is verified to show correctly after routing is fixed.

## Verification
✅ Auditor invite link now routes directly to compliance workspace instead of onboarding
✅ Invite context preserved and passed through login flow
✅ Routing behavior consistent across all entry points (auth page, callback, setup, root)
…n-add-ability-to

fix(sync): apply user filters to dynamic provider employee sync
@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app (staging) Ready Ready Preview, Comment Jun 24, 2026 7:46pm
comp-framework-editor (staging) Ready Ready Preview, Comment Jun 24, 2026 7:46pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
portal (staging) Skipped Skipped Jun 24, 2026 7:46pm

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 6 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

…ss-link-not

fix(auth): route auditor invite links directly to workspace instead of onboarding
@vercel vercel Bot temporarily deployed to staging – portal June 24, 2026 19:43 Inactive
@tofikwest tofikwest merged commit d413f8c into release Jun 24, 2026
14 checks passed
@claudfuen

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.92.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants