From 119d79f059c81c175c3394dce1af866508343d87 Mon Sep 17 00:00:00 2001 From: Devin Gould Date: Tue, 18 Aug 2026 11:00:40 -0700 Subject: [PATCH] chore(*): deprecate the keyless substrate ahead of removal Co-Authored-By: Claude Fable 5 --- .changeset/keyless-substrate-deprecated.md | 6 ++++++ .../backend/src/api/endpoints/AccountlessApplicationsAPI.ts | 3 +++ packages/backend/src/api/factory.ts | 3 +++ .../backend/src/api/resources/AccountlessApplication.ts | 3 +++ .../shared/src/keyless/resolveKeysWithKeylessFallback.ts | 2 ++ packages/shared/src/keyless/service.ts | 2 ++ 6 files changed, 19 insertions(+) create mode 100644 .changeset/keyless-substrate-deprecated.md diff --git a/.changeset/keyless-substrate-deprecated.md b/.changeset/keyless-substrate-deprecated.md new file mode 100644 index 00000000000..fa7204e7ee2 --- /dev/null +++ b/.changeset/keyless-substrate-deprecated.md @@ -0,0 +1,6 @@ +--- +'@clerk/shared': patch +'@clerk/backend': patch +--- + +Mark the keyless substrate as deprecated ahead of removal in the next major: `resolveKeysWithKeylessFallback` in `@clerk/shared/keyless`, and the experimental accountless applications API in `@clerk/backend`. Both are kept functional for the claimed-keys migration path and for older published SDK versions. diff --git a/packages/backend/src/api/endpoints/AccountlessApplicationsAPI.ts b/packages/backend/src/api/endpoints/AccountlessApplicationsAPI.ts index 37b69809753..19c1537bf52 100644 --- a/packages/backend/src/api/endpoints/AccountlessApplicationsAPI.ts +++ b/packages/backend/src/api/endpoints/AccountlessApplicationsAPI.ts @@ -9,6 +9,9 @@ type AccountlessApplicationParams = { source?: string; }; +/** + * @deprecated Keyless mode is no longer activated by the framework SDKs. Kept for the claimed-keys migration path and older published SDK versions; remove in the next major. + */ export class AccountlessApplicationAPI extends AbstractAPI { public async createAccountlessApplication(params?: AccountlessApplicationParams): Promise { const headerParams = params?.requestHeaders ? Object.fromEntries(params.requestHeaders.entries()) : undefined; diff --git a/packages/backend/src/api/factory.ts b/packages/backend/src/api/factory.ts index c9b6f700f0f..ae360d7fb0f 100644 --- a/packages/backend/src/api/factory.ts +++ b/packages/backend/src/api/factory.ts @@ -48,6 +48,9 @@ export function createBackendApiClient(options: CreateBackendApiOptions) { const request = buildRequest(options); return { + /** + * @deprecated Keyless mode is no longer activated by the framework SDKs. Kept for the claimed-keys migration path and older published SDK versions; remove in the next major. + */ __experimental_accountlessApplications: new AccountlessApplicationAPI( buildRequest({ ...options, requireSecretKey: false }), ), diff --git a/packages/backend/src/api/resources/AccountlessApplication.ts b/packages/backend/src/api/resources/AccountlessApplication.ts index b74584ad7f9..636f8bc2591 100644 --- a/packages/backend/src/api/resources/AccountlessApplication.ts +++ b/packages/backend/src/api/resources/AccountlessApplication.ts @@ -1,5 +1,8 @@ import type { AccountlessApplicationJSON } from './JSON'; +/** + * @deprecated Keyless mode is no longer activated by the framework SDKs. Kept for the claimed-keys migration path and older published SDK versions; remove in the next major. + */ export class AccountlessApplication { constructor( readonly publishableKey: string, diff --git a/packages/shared/src/keyless/resolveKeysWithKeylessFallback.ts b/packages/shared/src/keyless/resolveKeysWithKeylessFallback.ts index fc923ae2a2f..e7c11ccf9f3 100644 --- a/packages/shared/src/keyless/resolveKeysWithKeylessFallback.ts +++ b/packages/shared/src/keyless/resolveKeysWithKeylessFallback.ts @@ -17,6 +17,8 @@ export interface KeylessResult { * @param keylessService - The keyless service instance (or null if unavailable) * @param canUseKeyless - Whether keyless mode is enabled in the current environment * @returns The resolved keys (either configured or from keyless mode) + * + * @deprecated Keyless mode is no longer activated by the framework SDKs; kept for older published SDK versions. Remove in the next major. */ export async function resolveKeysWithKeylessFallback( configuredPublishableKey: string | undefined, diff --git a/packages/shared/src/keyless/service.ts b/packages/shared/src/keyless/service.ts index 7e776a3e9ac..c491ca0456b 100644 --- a/packages/shared/src/keyless/service.ts +++ b/packages/shared/src/keyless/service.ts @@ -128,6 +128,8 @@ export interface KeylessService { * @param configuredPublishableKey - The publishable key from options or environment * @param configuredSecretKey - The secret key from options or environment * @returns The resolved keys (either configured or from keyless mode) + * + * @deprecated Keyless mode is no longer activated by the framework SDKs; kept for older published SDK versions. Remove in the next major. */ resolveKeysWithKeylessFallback: ( configuredPublishableKey: string | undefined,