Skip to content

fix(nextjs): return 401 for RSC navigations with recoverable sessions - #9285

Open
nikosdouvlis wants to merge 1 commit into
mainfrom
nikos/rsc-nav-recoverable-401
Open

fix(nextjs): return 401 for RSC navigations with recoverable sessions#9285
nikosdouvlis wants to merge 1 commit into
mainfrom
nikos/rsc-nav-recoverable-401

Conversation

@nikosdouvlis

Copy link
Copy Markdown
Member

Why

On Next.js App Router, client-side navigations can bounce a signed-in user to the sign-in page (or hang) once their session token goes stale. RSC navigation fetches are not handshake-eligible, and the refresh cookie is only planted by a handshake, so a user who signed in through clerk-js and never handshaked cannot recover: clerkMiddleware answers the RSC fetch with a 307 to sign-in and the router soft-navigates them there while they are still authenticated. Reported by an enterprise customer after upgrading to a recent @clerk/nextjs.

What changed

When the request is an App Router navigation fetch (GET, next-url header, Accept /, not a server action or pages-router data request) and the signed-out reason is recoverable (expired but refreshable token, UAT mismatches, dev browser states, clock skew), clerkMiddleware answers 401 with Cache-Control: no-store instead of the redirect. The Next router treats a non-2xx RSC response as an MPA fallback and re-runs the navigation as a full document request, which is handshake-eligible: the handshake restores the session and plants the refresh cookie, so later stale RSC navigations refresh server-side without the fallback. Genuinely signed-out users keep the 307, so navigating to a protected page after sign-out still soft-navs instantly. Also exports AuthErrorReason from @clerk/backend/internal.

When clerkMiddleware answers an App Router RSC navigation fetch with a
Clerk redirect (protect() or redirectToSignIn/redirectToSignUp), the
router soft-navigates the user to the sign-in page even when the
signed-out state is recoverable, e.g. an expired but refreshable session
token. RSC fetches are not handshake-eligible and the refresh cookie is
only planted by a handshake, so users signed in via clerk-js could not
recover and got bounced to sign-in on the first stale navigation.

Answer these navigations with a 401 instead. The Next router treats a
non-2xx RSC response as an MPA fallback and performs a full document
navigation, which is handshake-eligible: the handshake restores the
session and plants the refresh cookie so later stale RSC navigations
refresh server-side. Genuinely signed-out users keep the redirect so
their soft-nav to the sign-in page stays instant.
@changeset-bot

changeset-bot Bot commented Jul 30, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 44c3285

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

This PR includes changesets to release 10 packages
Name Type
@clerk/nextjs Patch
@clerk/backend Patch
@clerk/astro Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/hono Patch
@clerk/nuxt Patch
@clerk/react-router Patch
@clerk/tanstack-react-start Patch
@clerk/testing Patch

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

@vercel

vercel Bot commented Jul 30, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview Jul 30, 2026 11:13am
swingset Ready Ready Preview Jul 30, 2026 11:13am

Request Review

@pkg-pr-new

pkg-pr-new Bot commented Jul 30, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9285

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9285

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9285

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9285

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9285

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9285

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9285

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9285

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9285

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9285

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9285

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9285

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9285

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9285

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9285

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9285

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9285

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9285

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9285

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9285

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9285

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9285

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9285

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9285

commit: 44c3285

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Next.js middleware now detects recoverable signed-out sessions during App Router RSC navigations and returns a non-cached 401 response instead of redirecting. New tests cover recoverable reasons and excluded request types. AuthErrorReason is re-exported from the backend internal entry point, and redirect-to-URL detection is added.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Suggested reviewers: jacekradko

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: returning 401 for recoverable RSC navigations in Next.js.
Description check ✅ Passed The description is directly related to the changeset and accurately explains the middleware behavior and export change.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (3)
packages/nextjs/src/server/protect.ts (1)

235-242: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Add an explicit return type now that this is exported.

Coding guidelines require explicit return types for exported functions/public APIs.

♻️ Proposed change
-export const isServerActionRequest = (req: Request) => {
+export const isServerActionRequest = (req: Request): boolean => {

As per coding guidelines: "Always define explicit return types for functions, especially public APIs".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/nextjs/src/server/protect.ts` around lines 235 - 242, Add an
explicit boolean return type to the exported isServerActionRequest function,
preserving its existing request-header evaluation and behavior.

Source: Coding guidelines

packages/nextjs/src/server/clerkMiddleware.ts (1)

614-622: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Declare the reason list as readonly.

♻️ Proposed change
-const RECOVERABLE_SIGNED_OUT_REASONS: string[] = [
+const RECOVERABLE_SIGNED_OUT_REASONS: readonly string[] = [

As per coding guidelines: "Declare readonly arrays and objects for immutable data structures".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/nextjs/src/server/clerkMiddleware.ts` around lines 614 - 622,
Declare RECOVERABLE_SIGNED_OUT_REASONS as a readonly array while preserving its
existing AuthErrorReason entries and ordering.

Source: Coding guidelines

packages/nextjs/src/server/__tests__/clerkMiddleware.test.ts (1)

1115-1124: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add a case for server-action requests.

isAppRouterNavigationFetch newly excludes server actions via isServerActionRequest, but no test exercises that branch (e.g. rscRequest({ 'next-action': '1' }) on a POST/GET should still redirect).

As per coding guidelines: "Verify proper error handling and edge cases".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/nextjs/src/server/__tests__/clerkMiddleware.test.ts` around lines
1115 - 1124, Add a test alongside the existing Pages Router internal-navigation
case that invokes clerkMiddleware with a server-action request marked by the
next-action header, covering the relevant POST/GET request method, and assert
that auth.protect still produces a 307 redirect with a sign-in location. Reuse
the existing mockSignedOut, expiredReason, rscRequest, and middleware setup.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/nextjs/src/server/__tests__/clerkMiddleware.test.ts`:
- Around line 1115-1124: Add a test alongside the existing Pages Router
internal-navigation case that invokes clerkMiddleware with a server-action
request marked by the next-action header, covering the relevant POST/GET request
method, and assert that auth.protect still produces a 307 redirect with a
sign-in location. Reuse the existing mockSignedOut, expiredReason, rscRequest,
and middleware setup.

In `@packages/nextjs/src/server/clerkMiddleware.ts`:
- Around line 614-622: Declare RECOVERABLE_SIGNED_OUT_REASONS as a readonly
array while preserving its existing AuthErrorReason entries and ordering.

In `@packages/nextjs/src/server/protect.ts`:
- Around line 235-242: Add an explicit boolean return type to the exported
isServerActionRequest function, preserving its existing request-header
evaluation and behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 3af58a14-66ba-48b2-aa63-3922861d1ddb

📥 Commits

Reviewing files that changed from the base of the PR and between d788708 and 44c3285.

📒 Files selected for processing (7)
  • .changeset/rsc-navigation-401-for-recoverable-sessions.md
  • packages/backend/src/__tests__/exports.test.ts
  • packages/backend/src/internal.ts
  • packages/nextjs/src/server/__tests__/clerkMiddleware.test.ts
  • packages/nextjs/src/server/clerkMiddleware.ts
  • packages/nextjs/src/server/nextErrors.ts
  • packages/nextjs/src/server/protect.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • clerk/clerk_go (manual)
  • clerk/dashboard (manual)
  • clerk/accounts (manual)
  • clerk/backoffice (manual)
  • clerk/clerk (manual)
  • clerk/clerk-docs (manual)
  • clerk/cloudflare-workers (manual)
  • clerk/clerk-ios (auto-detected)
  • clerk/clerk-android (auto-detected)
  • clerk/cli (auto-detected)

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-07-30T11:16:56.546Z

Summary

Metric Count
Packages analyzed 19
Packages with changes 4
🔴 Breaking changes 93
🟡 Non-breaking changes 5
🟢 Additions 3

Warning
93 breaking change(s) detected - Major version bump required

🤖 This report was reviewed by claude-sonnet-4-6.

🔴 Breaking changes index (93)

Every breaking change, up front. Full diffs are in the package sections below.

Package Subpath Change
@clerk/backend . EnterpriseConnection.undefined
@clerk/backend . EnterpriseConnection.allowOrganizationAccountLinking
@clerk/backend . EnterpriseConnection.authenticatable
@clerk/backend . EnterpriseConnection.customAttributes
@clerk/backend . EnterpriseConnection.disableJitProvisioning
@clerk/backend . EnterpriseConnection.logoPublicUrl
@clerk/backend . EnterpriseConnection.provider
@clerk/backend . EnterpriseConnectionCustomAttribute
@clerk/backend . EnterpriseConnectionCustomAttribute.undefined
@clerk/backend . EnterpriseConnectionCustomAttribute.fromJSON
@clerk/backend . EnterpriseConnectionCustomAttribute.key
@clerk/backend . EnterpriseConnectionCustomAttribute.multiValued
@clerk/backend . EnterpriseConnectionCustomAttribute.name
@clerk/backend . EnterpriseConnectionCustomAttribute.scimPath
@clerk/backend . EnterpriseConnectionCustomAttribute.ssoPath
@clerk/backend . EnterpriseConnectionCustomAttributeJSON
@clerk/backend . EnterpriseConnectionCustomAttributeJSON.key
@clerk/backend . EnterpriseConnectionCustomAttributeJSON.multi_valued
@clerk/backend . EnterpriseConnectionCustomAttributeJSON.name
@clerk/backend . EnterpriseConnectionCustomAttributeJSON.scim_path
@clerk/backend . EnterpriseConnectionCustomAttributeJSON.sso_path
@clerk/backend . EnterpriseConnectionJSON.allow_organization_account_linking
@clerk/backend . EnterpriseConnectionJSON.allow_subdomains
@clerk/backend . EnterpriseConnectionJSON.authenticatable
@clerk/backend . EnterpriseConnectionJSON.custom_attributes
@clerk/backend . EnterpriseConnectionJSON.disable_jit_provisioning
@clerk/backend . EnterpriseConnectionJSON.logo_public_url
@clerk/backend . EnterpriseConnectionJSON.organization_id
@clerk/backend . EnterpriseConnectionJSON.provider
@clerk/backend . EnterpriseConnectionOauthConfig.undefined
@clerk/backend . EnterpriseConnectionOauthConfig.authUrl
@clerk/backend . EnterpriseConnectionOauthConfig.providerKey
@clerk/backend . EnterpriseConnectionOauthConfig.requiresPkce
@clerk/backend . EnterpriseConnectionOauthConfig.tokenUrl
@clerk/backend . EnterpriseConnectionOauthConfig.userInfoUrl
@clerk/backend . EnterpriseConnectionOauthConfigJSON.auth_url
@clerk/backend . EnterpriseConnectionOauthConfigJSON.client_id
@clerk/backend . EnterpriseConnectionOauthConfigJSON.discovery_url
@clerk/backend . EnterpriseConnectionOauthConfigJSON.logo_public_url
@clerk/backend . EnterpriseConnectionOauthConfigJSON.provider_key
@clerk/backend . EnterpriseConnectionOauthConfigJSON.requires_pkce
@clerk/backend . EnterpriseConnectionOauthConfigJSON.token_url
@clerk/backend . EnterpriseConnectionOauthConfigJSON.user_info_url
@clerk/backend . EnterpriseConnectionSamlConnection.undefined
@clerk/backend . EnterpriseConnectionSamlConnection.acsUrl
@clerk/backend . EnterpriseConnectionSamlConnection.active
@clerk/backend . EnterpriseConnectionSamlConnection.forceAuthn
@clerk/backend . EnterpriseConnectionSamlConnection.idpCertificate
@clerk/backend . EnterpriseConnectionSamlConnection.idpCertificateExpiresAt
@clerk/backend . EnterpriseConnectionSamlConnection.idpCertificateIssuedAt
@clerk/backend . EnterpriseConnectionSamlConnection.idpEntityId
@clerk/backend . EnterpriseConnectionSamlConnection.idpMetadata
@clerk/backend . EnterpriseConnectionSamlConnection.idpMetadataUrl
@clerk/backend . EnterpriseConnectionSamlConnection.idpSsoUrl
@clerk/backend . EnterpriseConnectionSamlConnection.loginHint
@clerk/backend . EnterpriseConnectionSamlConnection.spEntityId
@clerk/backend . EnterpriseConnectionSamlConnection.spMetadataUrl
@clerk/backend . EnterpriseConnectionSamlConnection.syncUserAttributes
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.acs_url
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.active
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.force_authn
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.idp_certificate_expires_at
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.idp_certificate_issued_at
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.idp_certificate
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.idp_entity_id
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.idp_metadata_url
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.idp_metadata
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.idp_sso_url
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.login_hint
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.sp_entity_id
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.sp_metadata_url
@clerk/backend . EnterpriseConnectionSamlConnectionJSON.sync_user_attributes
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHint
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHint.undefined
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHint.fromJSON
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHint.mode
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHint.source
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHintJSON
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHintJSON.mode
@clerk/backend . EnterpriseConnectionSamlConnectionLoginHintJSON.source
@clerk/expo ./native AuthViewProps.logo
@clerk/expo ./hosted-auth ./hosted-auth
@clerk/shared ./types EnterpriseOAuthConfigJSON.auth_url
@clerk/shared ./types EnterpriseOAuthConfigJSON.redirect_uri
@clerk/shared ./types EnterpriseOAuthConfigJSON.token_url
@clerk/shared ./types EnterpriseOAuthConfigJSON.user_info_url
@clerk/shared ./types EnterpriseOAuthConfigResource.authUrl
@clerk/shared ./types EnterpriseOAuthConfigResource.redirectUri
@clerk/shared ./types EnterpriseOAuthConfigResource.tokenUrl
@clerk/shared ./types EnterpriseOAuthConfigResource.userInfoUrl
@clerk/shared ./types FieldId
@clerk/shared ./types PublicUserData.deprovisioned
@clerk/shared ./types PublicUserDataJSON.deprovisioned

@clerk/backend

Version: 3.14.0 → 3.13.1
Recommended bump: MAJOR

Subpath .

🔴 Breaking Changes (80)

Changed: EnterpriseConnection.undefined
// ... 4 unchanged lines elided ...
      organizationId: string | null, 
      active: boolean, 
      syncUserAttributes: boolean, 
-     allowSubdomains: boolean | undefined, 
+     allowSubdomains: boolean, 
      disableAdditionalIdentifications: boolean, 
      createdAt: number, 
      updatedAt: number, 
      samlConnection: EnterpriseConnectionSamlConnection | null, 
-     oauthConfig: EnterpriseConnectionOauthConfig | null, 
-     provider: string, 
-     logoPublicUrl: string | undefined, 
-     allowOrganizationAccountLinking: boolean, 
-     authenticatable: boolean, 
-     disableJitProvisioning: boolean, 
-     customAttributes: EnterpriseConnectionCustomAttribute[] | undefined);
+     oauthConfig: EnterpriseConnectionOauthConfig | null);

Static analyzer: Breaking change in constructor EnterpriseConnection.undefined: Parameter allowSubdomains type changed: boolean|undefinedboolean; Parameter provider was removed; Parameter logoPublicUrl was removed; Parameter allowOrganizationAccountLinking was removed; Parameter authenticatable was removed; Parameter disableJitProvisioning was removed; Parameter customAttributes was removed

🤖 AI review (confirmed) (97%): The constructor removed multiple parameters and narrowed allowSubdomains from boolean|undefined to boolean; any consumer calling new EnterpriseConnection(...) with the old signature will fail to compile.

Migration: Update all constructor call sites to use the new signature, removing the dropped parameters and passing a required boolean for allowSubdomains.

Changed: EnterpriseConnection.allowOrganizationAccountLinking
- readonly allowOrganizationAccountLinking: boolean;

Static analyzer: Removed property EnterpriseConnection.allowOrganizationAccountLinking

🤖 AI review (confirmed) (97%): The allowOrganizationAccountLinking property was removed from the class, so any consumer reading connection.allowOrganizationAccountLinking will get a compile error.

Migration: Remove references to allowOrganizationAccountLinking from consumer code that reads this property.

Changed: EnterpriseConnection.authenticatable
- readonly authenticatable: boolean;

Static analyzer: Removed property EnterpriseConnection.authenticatable

🤖 AI review (confirmed) (97%): The authenticatable property was removed; any consumer reading connection.authenticatable will fail to compile.

Migration: Remove references to authenticatable from consumer code.

Changed: EnterpriseConnection.customAttributes
- readonly customAttributes: EnterpriseConnectionCustomAttribute[] | undefined;

Static analyzer: Removed property EnterpriseConnection.customAttributes

🤖 AI review (confirmed) (97%): The customAttributes property was removed; any consumer reading connection.customAttributes will fail to compile.

Migration: Remove references to customAttributes from consumer code.

Changed: EnterpriseConnection.disableJitProvisioning
- readonly disableJitProvisioning: boolean;

Static analyzer: Removed property EnterpriseConnection.disableJitProvisioning

🤖 AI review (confirmed) (97%): The disableJitProvisioning property was removed; any consumer reading connection.disableJitProvisioning will fail to compile.

Migration: Remove references to disableJitProvisioning from consumer code.

Changed: EnterpriseConnection.logoPublicUrl
- readonly logoPublicUrl: string | undefined;

Static analyzer: Removed property EnterpriseConnection.logoPublicUrl

🤖 AI review (confirmed) (97%): The logoPublicUrl property was removed from EnterpriseConnection; any consumer reading connection.logoPublicUrl will fail to compile.

Migration: Remove references to EnterpriseConnection.logoPublicUrl from consumer code.

Changed: EnterpriseConnection.provider
- readonly provider: string;

Static analyzer: Removed property EnterpriseConnection.provider

🤖 AI review (confirmed) (97%): The provider property was removed from EnterpriseConnection; any consumer reading connection.provider will fail to compile.

Migration: Remove references to EnterpriseConnection.provider from consumer code.

Changed: EnterpriseConnectionCustomAttribute
- export declare class EnterpriseConnectionCustomAttribute

Static analyzer: Removed class EnterpriseConnectionCustomAttribute

🤖 AI review (confirmed) (97%): The entire EnterpriseConnectionCustomAttribute class was removed; any consumer importing or instantiating it will fail to compile.

Migration: Remove all usage of EnterpriseConnectionCustomAttribute from consumer code.

Changed: EnterpriseConnectionCustomAttribute.undefined
- constructor(
-     name: string, 
-     key: string, 
-     ssoPath: string, 
-     scimPath: string, 
-     multiValued: boolean);

Static analyzer: Removed constructor EnterpriseConnectionCustomAttribute.undefined

🤖 AI review (confirmed) (97%): The constructor of the removed EnterpriseConnectionCustomAttribute class no longer exists.

Migration: Remove all new EnterpriseConnectionCustomAttribute(...) call sites.

Changed: EnterpriseConnectionCustomAttribute.fromJSON
- static fromJSON(data: EnterpriseConnectionCustomAttributeJSON): EnterpriseConnectionCustomAttribute;

Static analyzer: Removed method EnterpriseConnectionCustomAttribute.fromJSON

🤖 AI review (confirmed) (97%): The static fromJSON method of the removed EnterpriseConnectionCustomAttribute class no longer exists.

Migration: Remove all calls to EnterpriseConnectionCustomAttribute.fromJSON(...).

Changed: EnterpriseConnectionCustomAttribute.key
- readonly key: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttribute.key

🤖 AI review (confirmed) (97%): The key property of the removed EnterpriseConnectionCustomAttribute class no longer exists.

Migration: Remove all accesses to .key on EnterpriseConnectionCustomAttribute instances.

Changed: EnterpriseConnectionCustomAttribute.multiValued
- readonly multiValued: boolean;

Static analyzer: Removed property EnterpriseConnectionCustomAttribute.multiValued

🤖 AI review (confirmed) (97%): The multiValued property of the removed EnterpriseConnectionCustomAttribute class no longer exists.

Migration: Remove all accesses to .multiValued on EnterpriseConnectionCustomAttribute instances.

Changed: EnterpriseConnectionCustomAttribute.name
- readonly name: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttribute.name

🤖 AI review (confirmed) (97%): The name property of the removed EnterpriseConnectionCustomAttribute class no longer exists.

Migration: Remove all accesses to .name on EnterpriseConnectionCustomAttribute instances.

Changed: EnterpriseConnectionCustomAttribute.scimPath
- readonly scimPath: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttribute.scimPath

🤖 AI review (confirmed) (97%): The scimPath property of the removed EnterpriseConnectionCustomAttribute class no longer exists.

Migration: Remove all accesses to .scimPath on EnterpriseConnectionCustomAttribute instances.

Changed: EnterpriseConnectionCustomAttribute.ssoPath
- readonly ssoPath: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttribute.ssoPath

🤖 AI review (confirmed) (97%): The ssoPath property of the removed EnterpriseConnectionCustomAttribute class no longer exists.

Migration: Remove all accesses to .ssoPath on EnterpriseConnectionCustomAttribute instances.

Changed: EnterpriseConnectionCustomAttributeJSON
- export interface EnterpriseConnectionCustomAttributeJSON

Static analyzer: Removed interface EnterpriseConnectionCustomAttributeJSON

🤖 AI review (confirmed) (97%): The entire EnterpriseConnectionCustomAttributeJSON interface was removed; any consumer importing or using it will fail to compile.

Migration: Remove all usage of EnterpriseConnectionCustomAttributeJSON from consumer code.

Changed: EnterpriseConnectionCustomAttributeJSON.key
- key: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttributeJSON.key

🤖 AI review (confirmed) (97%): The key property of the removed EnterpriseConnectionCustomAttributeJSON interface no longer exists.

Migration: Remove references to .key on EnterpriseConnectionCustomAttributeJSON values.

Changed: EnterpriseConnectionCustomAttributeJSON.multi_valued
- multi_valued: boolean;

Static analyzer: Removed property EnterpriseConnectionCustomAttributeJSON.multi_valued

🤖 AI review (confirmed) (97%): The multi_valued property of the removed EnterpriseConnectionCustomAttributeJSON interface no longer exists.

Migration: Remove references to .multi_valued on EnterpriseConnectionCustomAttributeJSON values.

Changed: EnterpriseConnectionCustomAttributeJSON.name
- name: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttributeJSON.name

🤖 AI review (confirmed) (97%): The name property of the removed EnterpriseConnectionCustomAttributeJSON interface no longer exists.

Migration: Remove references to .name on EnterpriseConnectionCustomAttributeJSON values.

Changed: EnterpriseConnectionCustomAttributeJSON.scim_path
- scim_path: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttributeJSON.scim_path

🤖 AI review (confirmed) (97%): The scim_path property of the removed EnterpriseConnectionCustomAttributeJSON interface no longer exists.

Migration: Remove references to .scim_path on EnterpriseConnectionCustomAttributeJSON values.

Changed: EnterpriseConnectionCustomAttributeJSON.sso_path
- sso_path: string;

Static analyzer: Removed property EnterpriseConnectionCustomAttributeJSON.sso_path

🤖 AI review (confirmed) (97%): The sso_path property of the removed EnterpriseConnectionCustomAttributeJSON interface no longer exists.

Migration: Remove references to .sso_path on EnterpriseConnectionCustomAttributeJSON values.

Changed: EnterpriseConnectionJSON.allow_organization_account_linking
- allow_organization_account_linking: boolean;

Static analyzer: Removed property EnterpriseConnectionJSON.allow_organization_account_linking

🤖 AI review (confirmed) (97%): The allow_organization_account_linking property was removed from EnterpriseConnectionJSON; any consumer constructing or reading objects typed as this interface will get a compile error.

Migration: Remove references to allow_organization_account_linking from objects typed as EnterpriseConnectionJSON.

Changed: EnterpriseConnectionJSON.allow_subdomains
- allow_subdomains?: boolean;
+ allow_subdomains: boolean;

Static analyzer: Breaking change in property EnterpriseConnectionJSON.allow_subdomains: Member is no longer optional

🤖 AI review (confirmed) (85%): EnterpriseConnectionJSON is a JSON interface used as input (consumers may construct objects of this type); making allow_subdomains required where it was previously optional means existing objects without the field will no longer satisfy the type.

Migration: Ensure all objects typed as EnterpriseConnectionJSON include a required allow_subdomains: boolean property.

Changed: EnterpriseConnectionJSON.authenticatable
- authenticatable: boolean;

Static analyzer: Removed property EnterpriseConnectionJSON.authenticatable

🤖 AI review (confirmed) (97%): The authenticatable property was removed from EnterpriseConnectionJSON; consumers reading or constructing this type will get compile errors.

Migration: Remove references to authenticatable from code using EnterpriseConnectionJSON.

Changed: EnterpriseConnectionJSON.custom_attributes
- custom_attributes?: EnterpriseConnectionCustomAttributeJSON[];

Static analyzer: Removed property EnterpriseConnectionJSON.custom_attributes

🤖 AI review (confirmed) (97%): The custom_attributes property was removed from EnterpriseConnectionJSON; any consumer using this property will fail to compile.

Migration: Remove references to custom_attributes from code using EnterpriseConnectionJSON.

Changed: EnterpriseConnectionJSON.disable_jit_provisioning
- disable_jit_provisioning: boolean;

Static analyzer: Removed property EnterpriseConnectionJSON.disable_jit_provisioning

🤖 AI review (confirmed) (97%): The disable_jit_provisioning property was removed from EnterpriseConnectionJSON; any consumer using this property will fail to compile.

Migration: Remove references to disable_jit_provisioning from code using EnterpriseConnectionJSON.

Changed: EnterpriseConnectionJSON.logo_public_url
- logo_public_url?: string;

Static analyzer: Removed property EnterpriseConnectionJSON.logo_public_url

🤖 AI review (confirmed) (97%): The logo_public_url property was removed from EnterpriseConnectionJSON; any consumer using this property will fail to compile.

Migration: Remove references to logo_public_url from code using EnterpriseConnectionJSON.

Changed: EnterpriseConnectionJSON.organization_id
- organization_id?: string | null;
+ organization_id: string | null;

Static analyzer: Breaking change in property EnterpriseConnectionJSON.organization_id: Member is no longer optional

🤖 AI review (confirmed) (85%): EnterpriseConnectionJSON is used as an input/construction type; making organization_id required where it was previously optional means existing objects without the field no longer satisfy the type.

Migration: Ensure all objects typed as EnterpriseConnectionJSON include a required organization_id: string | null property.

Changed: EnterpriseConnectionJSON.provider
- provider: string;

Static analyzer: Removed property EnterpriseConnectionJSON.provider

🤖 AI review (confirmed) (97%): The provider property was removed from EnterpriseConnectionJSON; any consumer using this property will fail to compile.

Migration: Remove references to provider from code using EnterpriseConnectionJSON.

Changed: EnterpriseConnectionOauthConfig.undefined
  constructor(
      id: string, 
      name: string, 
-     clientId: string | undefined, 
-     discoveryUrl: string | undefined, 
-     logoPublicUrl: string | undefined, 
+     clientId: string, 
+     discoveryUrl: string, 
+     logoPublicUrl: string, 
      createdAt: number, 
-     updatedAt: number, 
-     providerKey: string, 
-     authUrl: string | undefined, 
-     tokenUrl: string | undefined, 
-     userInfoUrl: string | undefined, 
-     requiresPkce: boolean);
+     updatedAt: number);

Static analyzer: Breaking change in constructor EnterpriseConnectionOauthConfig.undefined: Parameter clientId type changed: string|undefinedstring; Parameter discoveryUrl type changed: string|undefinedstring; Parameter logoPublicUrl type changed: string|undefinedstring; Parameter providerKey was removed; Parameter authUrl was removed; Parameter tokenUrl was removed; Parameter userInfoUrl was removed; Parameter requiresPkce was removed

🤖 AI review (confirmed) (97%): The constructor removed multiple parameters and narrowed three parameters from string|undefined to string; any consumer calling new EnterpriseConnectionOauthConfig(...) with the old signature will fail to compile.

Migration: Update all constructor call sites to the new signature, removing dropped parameters and passing required string values for clientId, discoveryUrl, and logoPublicUrl.

Changed: EnterpriseConnectionOauthConfig.authUrl
- readonly authUrl: string | undefined;

Static analyzer: Removed property EnterpriseConnectionOauthConfig.authUrl

🤖 AI review (confirmed) (97%): The authUrl property was removed from EnterpriseConnectionOauthConfig; any consumer reading config.authUrl will fail to compile.

Migration: Remove references to .authUrl on EnterpriseConnectionOauthConfig instances.

Changed: EnterpriseConnectionOauthConfig.providerKey
- readonly providerKey: string;

Static analyzer: Removed property EnterpriseConnectionOauthConfig.providerKey

🤖 AI review (confirmed) (97%): The providerKey property was removed from EnterpriseConnectionOauthConfig; any consumer reading config.providerKey will fail to compile.

Migration: Remove references to .providerKey on EnterpriseConnectionOauthConfig instances.

Changed: EnterpriseConnectionOauthConfig.requiresPkce
- readonly requiresPkce: boolean;

Static analyzer: Removed property EnterpriseConnectionOauthConfig.requiresPkce

🤖 AI review (confirmed) (97%): The requiresPkce property was removed from EnterpriseConnectionOauthConfig; any consumer reading config.requiresPkce will fail to compile.

Migration: Remove references to .requiresPkce on EnterpriseConnectionOauthConfig instances.

Changed: EnterpriseConnectionOauthConfig.tokenUrl
- readonly tokenUrl: string | undefined;

Static analyzer: Removed property EnterpriseConnectionOauthConfig.tokenUrl

🤖 AI review (confirmed) (97%): The tokenUrl property was removed from EnterpriseConnectionOauthConfig; any consumer reading config.tokenUrl will fail to compile.

Migration: Remove references to .tokenUrl on EnterpriseConnectionOauthConfig instances.

Changed: EnterpriseConnectionOauthConfig.userInfoUrl
- readonly userInfoUrl: string | undefined;

Static analyzer: Removed property EnterpriseConnectionOauthConfig.userInfoUrl

🤖 AI review (confirmed) (97%): The userInfoUrl property was removed from EnterpriseConnectionOauthConfig; any consumer reading config.userInfoUrl will fail to compile.

Migration: Remove references to .userInfoUrl on EnterpriseConnectionOauthConfig instances.

Changed: EnterpriseConnectionOauthConfigJSON.auth_url
- auth_url?: string;

Static analyzer: Removed property EnterpriseConnectionOauthConfigJSON.auth_url

🤖 AI review (confirmed) (97%): The auth_url property was removed from EnterpriseConnectionOauthConfigJSON; any consumer constructing or reading objects of this type will get a compile error.

Migration: Remove references to auth_url from code using EnterpriseConnectionOauthConfigJSON.

Changed: EnterpriseConnectionOauthConfigJSON.client_id
- client_id?: string;
+ client_id: string;

Static analyzer: Breaking change in property EnterpriseConnectionOauthConfigJSON.client_id: Member is no longer optional

🤖 AI review (confirmed) (85%): Making client_id required in EnterpriseConnectionOauthConfigJSON is breaking for consumers who construct objects of this interface with client_id omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionOauthConfigJSON include a client_id string property.

Changed: EnterpriseConnectionOauthConfigJSON.discovery_url
- discovery_url?: string;
+ discovery_url: string;

Static analyzer: Breaking change in property EnterpriseConnectionOauthConfigJSON.discovery_url: Member is no longer optional

🤖 AI review (confirmed) (85%): Making discovery_url required in EnterpriseConnectionOauthConfigJSON is breaking for consumers who construct objects with discovery_url omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionOauthConfigJSON include a discovery_url string property.

Changed: EnterpriseConnectionOauthConfigJSON.logo_public_url
- logo_public_url?: string;
+ logo_public_url: string;

Static analyzer: Breaking change in property EnterpriseConnectionOauthConfigJSON.logo_public_url: Member is no longer optional

🤖 AI review (confirmed) (85%): Making logo_public_url required in EnterpriseConnectionOauthConfigJSON is breaking for consumers who construct objects with logo_public_url omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionOauthConfigJSON include a logo_public_url string property.

Changed: EnterpriseConnectionOauthConfigJSON.provider_key
- provider_key: string;

Static analyzer: Removed property EnterpriseConnectionOauthConfigJSON.provider_key

🤖 AI review (confirmed) (90%): Removing provider_key from EnterpriseConnectionOauthConfigJSON breaks consumers that read or construct objects expecting this required property.

Migration: Remove any references to provider_key from code that reads or constructs EnterpriseConnectionOauthConfigJSON objects.

Changed: EnterpriseConnectionOauthConfigJSON.requires_pkce
- requires_pkce: boolean;

Static analyzer: Removed property EnterpriseConnectionOauthConfigJSON.requires_pkce

🤖 AI review (confirmed) (90%): Removing requires_pkce from EnterpriseConnectionOauthConfigJSON breaks consumers that read or construct objects expecting this required property.

Migration: Remove any references to requires_pkce from code that reads or constructs EnterpriseConnectionOauthConfigJSON objects.

Changed: EnterpriseConnectionOauthConfigJSON.token_url
- token_url?: string;

Static analyzer: Removed property EnterpriseConnectionOauthConfigJSON.token_url

🤖 AI review (confirmed) (85%): Removing token_url from EnterpriseConnectionOauthConfigJSON breaks consumers that read this optional property.

Migration: Remove any references to token_url from code that reads or constructs EnterpriseConnectionOauthConfigJSON objects.

Changed: EnterpriseConnectionOauthConfigJSON.user_info_url
- user_info_url?: string;

Static analyzer: Removed property EnterpriseConnectionOauthConfigJSON.user_info_url

🤖 AI review (confirmed) (85%): Removing user_info_url from EnterpriseConnectionOauthConfigJSON breaks consumers that read this optional property.

Migration: Remove any references to user_info_url from code that reads or constructs EnterpriseConnectionOauthConfigJSON objects.

Changed: EnterpriseConnectionSamlConnection.undefined
  constructor(
      id: string, 
      name: string, 
-     idpEntityId: string | undefined, 
-     idpSsoUrl: string | undefined, 
-     idpCertificate: string | undefined, 
-     idpCertificateIssuedAt: number | undefined, 
-     idpCertificateExpiresAt: number | undefined, 
-     idpMetadataUrl: string | undefined, 
-     idpMetadata: string | undefined, 
-     acsUrl: string | undefined, 
-     spEntityId: string | undefined, 
-     spMetadataUrl: string | undefined, 
-     syncUserAttributes: boolean | undefined, 
+     idpEntityId: string, 
+     idpSsoUrl: string, 
+     idpCertificate: string, 
+     idpCertificateIssuedAt: number, 
+     idpCertificateExpiresAt: number, 
+     idpMetadataUrl: string, 
+     idpMetadata: string, 
+     acsUrl: string, 
+     spEntityId: string, 
+     spMetadataUrl: string, 
+     syncUserAttributes: boolean, 
      allowSubdomains: boolean, 
-     allowIdpInitiated: boolean, 
-     active: boolean, 
-     forceAuthn: boolean, 
-     loginHint: EnterpriseConnectionSamlConnectionLoginHint);
+     allowIdpInitiated: boolean);

Static analyzer: Breaking change in constructor EnterpriseConnectionSamlConnection.undefined: Parameter idpEntityId type changed: string|undefinedstring; Parameter idpSsoUrl type changed: string|undefinedstring; Parameter idpCertificate type changed: string|undefinedstring; Parameter idpCertificateIssuedAt type changed: number|undefinednumber; Parameter idpCertificateExpiresAt type changed: number|undefinednumber; Parameter idpMetadataUrl type changed: string|undefinedstring; Parameter idpMetadata type changed: string|undefinedstring; Parameter acsUrl type changed: string|undefinedstring; Parameter spEntityId type changed: string|undefinedstring; Parameter spMetadataUrl type changed: string|undefinedstring; Parameter syncUserAttributes type changed: boolean|undefinedboolean; Parameter active was removed; Parameter forceAuthn was removed; Parameter loginHint was removed

🤖 AI review (confirmed) (90%): The EnterpriseConnectionSamlConnection constructor narrowed multiple parameters from T|undefined to T and removed active, forceAuthn, and loginHint, breaking any consumer calling the constructor with those signatures.

Migration: Update constructor calls to pass non-undefined values for all required parameters and remove the active, forceAuthn, and loginHint arguments.

Changed: EnterpriseConnectionSamlConnection.acsUrl
- readonly acsUrl: string | undefined;
+ readonly acsUrl: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.acsUrl: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing acsUrl from string|undefined to string on the output class EnterpriseConnectionSamlConnection breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for acsUrl on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.active
- readonly active: boolean;

Static analyzer: Removed property EnterpriseConnectionSamlConnection.active

🤖 AI review (confirmed) (90%): Removing the active property from the EnterpriseConnectionSamlConnection class breaks consumers that read instance.active.

Migration: Remove any code that reads active from EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.forceAuthn
- readonly forceAuthn: boolean;

Static analyzer: Removed property EnterpriseConnectionSamlConnection.forceAuthn

🤖 AI review (confirmed) (90%): Removing the forceAuthn property from EnterpriseConnectionSamlConnection breaks consumers that read instance.forceAuthn.

Migration: Remove any code that reads forceAuthn from EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.idpCertificate
- readonly idpCertificate: string | undefined;
+ readonly idpCertificate: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.idpCertificate: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing idpCertificate from string|undefined to string on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for idpCertificate on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.idpCertificateExpiresAt
- readonly idpCertificateExpiresAt: number | undefined;
+ readonly idpCertificateExpiresAt: number;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.idpCertificateExpiresAt: Type changed: number|undefinednumber

🤖 AI review (confirmed) (85%): Narrowing idpCertificateExpiresAt from number|undefined to number on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for idpCertificateExpiresAt on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.idpCertificateIssuedAt
- readonly idpCertificateIssuedAt: number | undefined;
+ readonly idpCertificateIssuedAt: number;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.idpCertificateIssuedAt: Type changed: number|undefinednumber

🤖 AI review (confirmed) (85%): Narrowing idpCertificateIssuedAt from number|undefined to number on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for idpCertificateIssuedAt on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.idpEntityId
- readonly idpEntityId: string | undefined;
+ readonly idpEntityId: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.idpEntityId: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing idpEntityId from string|undefined to string on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for idpEntityId on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.idpMetadata
- readonly idpMetadata: string | undefined;
+ readonly idpMetadata: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.idpMetadata: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing idpMetadata from string|undefined to string on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for idpMetadata on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.idpMetadataUrl
- readonly idpMetadataUrl: string | undefined;
+ readonly idpMetadataUrl: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.idpMetadataUrl: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing idpMetadataUrl from string|undefined to string on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for idpMetadataUrl on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.idpSsoUrl
- readonly idpSsoUrl: string | undefined;
+ readonly idpSsoUrl: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.idpSsoUrl: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing idpSsoUrl from string|undefined to string on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for idpSsoUrl on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.loginHint
- readonly loginHint: EnterpriseConnectionSamlConnectionLoginHint;

Static analyzer: Removed property EnterpriseConnectionSamlConnection.loginHint

🤖 AI review (confirmed) (90%): Removing the loginHint property from EnterpriseConnectionSamlConnection breaks consumers that read instance.loginHint.

Migration: Remove any code that reads loginHint from EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.spEntityId
- readonly spEntityId: string | undefined;
+ readonly spEntityId: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.spEntityId: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing spEntityId from string|undefined to string on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for spEntityId on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.spMetadataUrl
- readonly spMetadataUrl: string | undefined;
+ readonly spMetadataUrl: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.spMetadataUrl: Type changed: string|undefinedstring

🤖 AI review (confirmed) (85%): Narrowing spMetadataUrl from string|undefined to string on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for spMetadataUrl on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnection.syncUserAttributes
- readonly syncUserAttributes: boolean | undefined;
+ readonly syncUserAttributes: boolean;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnection.syncUserAttributes: Type changed: boolean|undefinedboolean

🤖 AI review (confirmed) (85%): Narrowing syncUserAttributes from boolean|undefined to boolean on the output class breaks consumers that handled the undefined case.

Migration: Remove null/undefined checks for syncUserAttributes on EnterpriseConnectionSamlConnection instances.

Changed: EnterpriseConnectionSamlConnectionJSON.acs_url
- acs_url?: string;
+ acs_url: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.acs_url: Member is no longer optional

🤖 AI review (confirmed) (85%): Making acs_url required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with acs_url omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include an acs_url string property.

Changed: EnterpriseConnectionSamlConnectionJSON.active
- active: boolean;

Static analyzer: Removed property EnterpriseConnectionSamlConnectionJSON.active

🤖 AI review (confirmed) (90%): Removing active from EnterpriseConnectionSamlConnectionJSON breaks consumers that read or construct objects expecting this required property.

Migration: Remove any references to active from code that reads or constructs EnterpriseConnectionSamlConnectionJSON objects.

Changed: EnterpriseConnectionSamlConnectionJSON.force_authn
- force_authn: boolean;

Static analyzer: Removed property EnterpriseConnectionSamlConnectionJSON.force_authn

🤖 AI review (confirmed) (90%): Removing force_authn from EnterpriseConnectionSamlConnectionJSON breaks consumers that read or construct objects expecting this required property.

Migration: Remove any references to force_authn from code that reads or constructs EnterpriseConnectionSamlConnectionJSON objects.

Changed: EnterpriseConnectionSamlConnectionJSON.idp_certificate_expires_at
- idp_certificate_expires_at?: number;
+ idp_certificate_expires_at: number;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.idp_certificate_expires_at: Member is no longer optional

🤖 AI review (confirmed) (85%): Making idp_certificate_expires_at required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include idp_certificate_expires_at.

Changed: EnterpriseConnectionSamlConnectionJSON.idp_certificate_issued_at
- idp_certificate_issued_at?: number;
+ idp_certificate_issued_at: number;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.idp_certificate_issued_at: Member is no longer optional

🤖 AI review (confirmed) (85%): Making idp_certificate_issued_at required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include idp_certificate_issued_at.

Changed: EnterpriseConnectionSamlConnectionJSON.idp_certificate
- idp_certificate?: string;
+ idp_certificate: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.idp_certificate: Member is no longer optional

🤖 AI review (confirmed) (85%): Making idp_certificate required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include idp_certificate.

Changed: EnterpriseConnectionSamlConnectionJSON.idp_entity_id
- idp_entity_id?: string;
+ idp_entity_id: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.idp_entity_id: Member is no longer optional

🤖 AI review (confirmed) (85%): Making idp_entity_id required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include idp_entity_id.

Changed: EnterpriseConnectionSamlConnectionJSON.idp_metadata_url
- idp_metadata_url?: string;
+ idp_metadata_url: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.idp_metadata_url: Member is no longer optional

🤖 AI review (confirmed) (85%): Making idp_metadata_url required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include idp_metadata_url.

Changed: EnterpriseConnectionSamlConnectionJSON.idp_metadata
- idp_metadata?: string;
+ idp_metadata: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.idp_metadata: Member is no longer optional

🤖 AI review (confirmed) (85%): Making idp_metadata required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include idp_metadata.

Changed: EnterpriseConnectionSamlConnectionJSON.idp_sso_url
- idp_sso_url?: string;
+ idp_sso_url: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.idp_sso_url: Member is no longer optional

🤖 AI review (confirmed) (85%): Making idp_sso_url required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include idp_sso_url.

Changed: EnterpriseConnectionSamlConnectionJSON.login_hint
- login_hint: EnterpriseConnectionSamlConnectionLoginHintJSON;

Static analyzer: Removed property EnterpriseConnectionSamlConnectionJSON.login_hint

🤖 AI review (confirmed) (90%): Removing login_hint from EnterpriseConnectionSamlConnectionJSON breaks consumers that read or construct objects expecting this required property.

Migration: Remove any references to login_hint from code that reads or constructs EnterpriseConnectionSamlConnectionJSON objects.

Changed: EnterpriseConnectionSamlConnectionJSON.sp_entity_id
- sp_entity_id?: string;
+ sp_entity_id: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.sp_entity_id: Member is no longer optional

🤖 AI review (confirmed) (85%): Making sp_entity_id required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include sp_entity_id.

Changed: EnterpriseConnectionSamlConnectionJSON.sp_metadata_url
- sp_metadata_url?: string;
+ sp_metadata_url: string;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.sp_metadata_url: Member is no longer optional

🤖 AI review (confirmed) (85%): Making sp_metadata_url required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include sp_metadata_url.

Changed: EnterpriseConnectionSamlConnectionJSON.sync_user_attributes
- sync_user_attributes?: boolean;
+ sync_user_attributes: boolean;

Static analyzer: Breaking change in property EnterpriseConnectionSamlConnectionJSON.sync_user_attributes: Member is no longer optional

🤖 AI review (confirmed) (85%): Making sync_user_attributes required in EnterpriseConnectionSamlConnectionJSON breaks consumers who construct objects with this field omitted.

Migration: Ensure all objects constructed as EnterpriseConnectionSamlConnectionJSON include sync_user_attributes.

Changed: EnterpriseConnectionSamlConnectionLoginHint
- export declare class EnterpriseConnectionSamlConnectionLoginHint

Static analyzer: Removed class EnterpriseConnectionSamlConnectionLoginHint

🤖 AI review (confirmed) (95%): Removing the exported EnterpriseConnectionSamlConnectionLoginHint class entirely breaks any consumer that imports or uses it.

Migration: Remove all imports and usage of EnterpriseConnectionSamlConnectionLoginHint from consumer code.

Changed: EnterpriseConnectionSamlConnectionLoginHint.undefined
- constructor(
-     mode: 'email_address' | 'custom_attribute' | 'off', 
-     source?: string | undefined);

Static analyzer: Removed constructor EnterpriseConnectionSamlConnectionLoginHint.undefined

🤖 AI review (confirmed) (95%): The constructor of EnterpriseConnectionSamlConnectionLoginHint is removed along with the class, breaking any consumer that instantiated it.

Migration: Remove all new EnterpriseConnectionSamlConnectionLoginHint(...) calls from consumer code.

Changed: EnterpriseConnectionSamlConnectionLoginHint.fromJSON
- static fromJSON(data: EnterpriseConnectionSamlConnectionLoginHintJSON): EnterpriseConnectionSamlConnectionLoginHint;

Static analyzer: Removed method EnterpriseConnectionSamlConnectionLoginHint.fromJSON

🤖 AI review (confirmed) (95%): The static fromJSON method of EnterpriseConnectionSamlConnectionLoginHint is removed along with the class, breaking any consumer that called it.

Migration: Remove all calls to EnterpriseConnectionSamlConnectionLoginHint.fromJSON(...) from consumer code.

Changed: EnterpriseConnectionSamlConnectionLoginHint.mode
- readonly mode: 'email_address' | 'custom_attribute' | 'off';

Static analyzer: Removed property EnterpriseConnectionSamlConnectionLoginHint.mode

🤖 AI review (confirmed) (95%): The mode property of EnterpriseConnectionSamlConnectionLoginHint is removed along with the class, breaking any consumer that accessed instance.mode.

Migration: Remove all references to .mode on EnterpriseConnectionSamlConnectionLoginHint instances from consumer code.

Changed: EnterpriseConnectionSamlConnectionLoginHint.source
- readonly source?: string | undefined;

Static analyzer: Removed property EnterpriseConnectionSamlConnectionLoginHint.source

🤖 AI review (confirmed) (90%): The source property was removed from EnterpriseConnectionSamlConnectionLoginHint class; consumers reading this property will get a compile error.

Migration: Remove any code that accesses .source on EnterpriseConnectionSamlConnectionLoginHint instances, as the property no longer exists.

Changed: EnterpriseConnectionSamlConnectionLoginHintJSON
- export interface EnterpriseConnectionSamlConnectionLoginHintJSON

Static analyzer: Removed interface EnterpriseConnectionSamlConnectionLoginHintJSON

🤖 AI review (confirmed) (95%): The EnterpriseConnectionSamlConnectionLoginHintJSON interface has been entirely removed from the public API; consumers referencing this type will fail to compile.

Migration: Remove all references to EnterpriseConnectionSamlConnectionLoginHintJSON from consumer code, as the interface is no longer exported.

Changed: EnterpriseConnectionSamlConnectionLoginHintJSON.mode
- mode: 'email_address' | 'custom_attribute' | 'off';

Static analyzer: Removed property EnterpriseConnectionSamlConnectionLoginHintJSON.mode

🤖 AI review (confirmed) (95%): The mode property of the now-removed EnterpriseConnectionSamlConnectionLoginHintJSON interface is gone along with the interface itself; any consumer using this property will fail to compile.

Migration: Remove all references to EnterpriseConnectionSamlConnectionLoginHintJSON.mode from consumer code, as the interface no longer exists.

Changed: EnterpriseConnectionSamlConnectionLoginHintJSON.source
- source?: string;

Static analyzer: Removed property EnterpriseConnectionSamlConnectionLoginHintJSON.source

🤖 AI review (confirmed) (95%): The source property of the now-removed EnterpriseConnectionSamlConnectionLoginHintJSON interface is gone along with the interface itself; any consumer using this property will fail to compile.

Migration: Remove all references to EnterpriseConnectionSamlConnectionLoginHintJSON.source from consumer code, as the interface no longer exists.

🟡 Non-breaking Changes (4)

Modified: EnterpriseConnection.allowSubdomains
- readonly allowSubdomains: boolean | undefined;
+ readonly allowSubdomains: boolean;

Static analyzer: Breaking change in property EnterpriseConnection.allowSubdomains: Type changed: boolean|undefinedboolean

🤖 AI review (reclassified as non-breaking) (90%): Narrowing allowSubdomains from boolean|undefined to boolean on an output/read property is non-breaking for consumers who only read it; however consumers who typed their own variable as boolean|undefined and assigned it from this property could break. As an output property type narrowing, this is actually non-breaking (covariant position).

Modified: EnterpriseConnectionOauthConfig.clientId
- readonly clientId: string | undefined;
+ readonly clientId: string;

Static analyzer: Breaking change in property EnterpriseConnectionOauthConfig.clientId: Type changed: string|undefinedstring

🤖 AI review (reclassified as non-breaking) (90%): Narrowing clientId from string|undefined to string on a read-only output property is covariant — consumers reading this property get a more specific type, which is safe.

Modified: EnterpriseConnectionOauthConfig.discoveryUrl
- readonly discoveryUrl: string | undefined;
+ readonly discoveryUrl: string;

Static analyzer: Breaking change in property EnterpriseConnectionOauthConfig.discoveryUrl: Type changed: string|undefinedstring

🤖 AI review (reclassified as non-breaking) (90%): Narrowing discoveryUrl from string|undefined to string on a read-only output property is covariant — consumers reading this property get a more specific type, which is safe.

Modified: EnterpriseConnectionOauthConfig.logoPublicUrl
- readonly logoPublicUrl: string | undefined;
+ readonly logoPublicUrl: string;

Static analyzer: Breaking change in property EnterpriseConnectionOauthConfig.logoPublicUrl: Type changed: string|undefinedstring

🤖 AI review (reclassified as non-breaking) (90%): Narrowing logoPublicUrl from string|undefined to string on a read-only output property is covariant — consumers reading this property get a more specific type, which is safe.

Subpath ./internal

🟢 Additions (2)

Added: AuthErrorReason
+ export type AuthErrorReason = (typeof AuthErrorReason)[keyof typeof AuthErrorReason];

Added type alias AuthErrorReason

Added: AuthErrorReason
+ AuthErrorReason: {
+     readonly ClientUATWithoutSessionToken: "client-uat-but-no-session-token";
+     readonly DevBrowserMissing: "dev-browser-missing";
+     readonly DevBrowserSync: "dev-browser-sync";
+     readonly PrimaryRespondsToSyncing: "primary-responds-to-syncing";
+     readonly PrimaryDomainCrossOriginSync: "primary-domain-cross-origin-sync";
+     readonly SatelliteCookieNeedsSyncing: "satellite-needs-syncing";
+     readonly SessionTokenAndUATMissing: "session-token-and-uat-missing";
+     readonly SessionTokenMissing: "session-token-missing";
+     readonly SessionTokenExpired: "session-token-expired";
+     readonly SessionTokenIATBeforeClientUAT: "session-token-iat-before-client-uat";
+     readonly SessionTokenNBF: "session-token-nbf";
+     readonly SessionTokenIatInTheFuture: "session-token-iat-in-the-future";
+     readonly SessionTokenWithoutClientUAT: "session-token-but-no-client-uat";
+     readonly ActiveOrganizationMismatch: "active-organization-mismatch";
+     readonly TokenTypeMismatch: "token-type-mismatch";
+     readonly UnexpectedError: "unexpected-error";
+ }

Added variable AuthErrorReason


Note
Report truncated to fit GitHub's comment size limit. 3 more packages (15 changes) omitted from this comment. See the full JSON report (--format json) or the uploaded run artifact for the complete diff.


Report generated by Break Check

Last ran on 44c3285.

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.

1 participant