Skip to content

Conversation

@wobsoriano
Copy link
Member

@wobsoriano wobsoriano commented Nov 14, 2025

Description

This PR standardizes remaining API keys that is camel-cased like mountApiKeys into mountAPIKeys (with "API" in all caps) across the codebase.

This is technically a breaking change for devs that directly calls mountApiKeys or unmountApiKeys on the Clerk instance. However:

  1. These methods are not documented in our public API
  2. The recommended approach is to use the <APIKeys /> AIO rather than calling mount methods directly
  3. The APIKeys component is marked as @experimental and in early access

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

Summary by CodeRabbit

  • New Features

    • API Keys now include feature-flag checks and an early-access warning when rendered.
  • Bug Fixes

    • Fixed case-sensitive import issues to avoid module resolution errors.
  • Refactor

    • Standardized API Keys naming across public hooks, methods, types, and UI props.
  • Chores

    • Bumped minor versions for related packages and added a changeset documenting the naming standardization.

@changeset-bot
Copy link

changeset-bot bot commented Nov 14, 2025

🦋 Changeset detected

Latest commit: ddcdb76

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

This PR includes changesets to release 22 packages
Name Type
@clerk/clerk-js Minor
@clerk/clerk-react Minor
@clerk/shared Minor
@clerk/chrome-extension Patch
@clerk/clerk-expo Patch
@clerk/elements Patch
@clerk/nextjs Patch
@clerk/react-router Patch
@clerk/remix Patch
@clerk/tanstack-react-start Patch
@clerk/agent-toolkit Patch
@clerk/astro Patch
@clerk/backend Patch
@clerk/expo-passkeys Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/nuxt Patch
@clerk/testing Patch
@clerk/themes Patch
@clerk/types Patch
@clerk/vue Patch
@clerk/localizations 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
Copy link

vercel bot commented Nov 14, 2025

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

Project Deployment Preview Comments Updated (UTC)
clerk-js-sandbox Ready Ready Preview Comment Nov 15, 2025 1:16am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 14, 2025

Walkthrough

Standardizes API keys naming and casing across packages (ApiKeys → APIKeys), renames public APIs from mountApiKeys/unmountApiKeys to mountAPIKeys/unmountAPIKeys, renames hook/types (useApiKeysuseAPIKeys, related types), updates imports/paths, and adds feature-flag and environment checks to the new mountAPIKeys implementation.

Changes

Cohort / File(s) Summary
Changeset Documentation
\.changeset/brown-bags-fold\.md
Adds a changeset documenting minor bumps for @clerk/clerk-js, @clerk/clerk-react, and @clerk/shared with summary "Standardized API keys naming convention".
Core API Method Renaming & Feature Flags
packages/clerk-js/src/core/clerk.ts
Renames mountApiKeysmountAPIKeys and unmountApiKeysunmountAPIKeys. mountAPIKeys now asserts readiness, logs an early-access warning, and enforces feature-flag checks (global, organization, user) that throw ClerkRuntimeError in development or return early in non-dev; mounts component and records telemetry if allowed.
Isomorphic / React Integration
packages/react/src/isomorphicClerk.ts, packages/clerk-js/sandbox/app.ts, packages/react/src/components/uiComponents.tsx
Renames premount storage premountApiKeysNodespremountAPIKeysNodes, updates mount/unmount call sites to mountAPIKeys/unmountAPIKeys, and updates the sandbox route handler and ClerkHostRenderer to use the new methods.
Shared Types & Hook Renaming
packages/shared/src/types/clerk.ts, packages/shared/src/react/hooks/useAPIKeys.ts, packages/shared/src/react/hooks/index.ts
Updates Clerk interface method names to mountAPIKeys/unmountAPIKeys. Renames hook and types: useApiKeysuseAPIKeys, UseApiKeysParamsUseAPIKeysParams, UseApiKeysReturnUseAPIKeysReturn, telemetry/event key updated; re-export now exposes useAPIKeys as __experimental_useAPIKeys.
Directory & Import Path Standardization
packages/clerk-js/src/ui/contexts/components/index.ts, packages/clerk-js/src/ui/lazyModules/components.ts, packages/clerk-js/src/ui/components/*/APIKeys*.tsx, packages/clerk-js/src/ui/components/APIKeys/__tests__/APIKeys.spec.tsx
Replaces imports/exports referencing ApiKeys with APIKeys (directory/file casing and re-exports) across contexts, lazy modules, user/org profile components, and tests.
Organization Context & Routes
packages/clerk-js/src/ui/contexts/components/OrganizationProfile.ts, packages/clerk-js/src/ui/components/OrganizationProfile/OrganizationProfileRoutes.tsx
Renames context property isApiKeysPageRootisAPIKeysPageRoot, updates OrganizationProfileContextType and usages in route conditionals.
User Profile Route Import
packages/clerk-js/src/ui/components/UserProfile/UserProfileRoutes.tsx
Updates dynamic import path from ./ApiKeysPage to ./APIKeysPage (lazy-loaded component reference adjusted).
APIKeys Component Internal Identifier Changes
packages/clerk-js/src/ui/components/APIKeys/APIKeys.tsx, packages/clerk-js/src/ui/components/APIKeys/RevokeAPIKeyConfirmationModal.tsx
Renames state and props to API-style capitalization: selectedApiKeyIdselectedAPIKeyID, setSelectedApiKeyIdsetSelectedAPIKeyID, apiKeyId prop → apiKeyID; updates handlers, modal prop, and revoke call payload accordingly.
Tests & Misc. Imports
packages/clerk-js/src/ui/components/APIKeys/__tests__/APIKeys.spec.tsx
Fixes import path casing for tests to reference APIKeys module.

Sequence Diagram(s)

sequenceDiagram
    participant App as Application
    participant ClerkCore as Clerk (core)
    participant Feature as FeatureFlags
    participant APIKeysComp as APIKeys Component

    App->>ClerkCore: mountAPIKeys(node, props)
    ClerkCore->>ClerkCore: assert component readiness
    ClerkCore->>ClerkCore: log early-access warning
    ClerkCore->>Feature: check disabledAllAPIKeysFeatures
    alt all API keys disabled
        Feature-->>ClerkCore: true
        ClerkCore->>App: throw ClerkRuntimeError (CANNOT_RENDER_API_KEYS_DISABLED)
    else
        Feature-->>ClerkCore: false
        ClerkCore->>Feature: check disabledOrganizationAPIKeysFeature (if org)
        alt org API keys disabled
            Feature-->>ClerkCore: true
            ClerkCore->>App: throw ClerkRuntimeError (CANNOT_RENDER_API_KEYS_ORG_DISABLED)
        else
            Feature-->>ClerkCore: false
            ClerkCore->>Feature: check disabledUserAPIKeysFeature
            alt user API keys disabled
                Feature-->>ClerkCore: true
                ClerkCore->>App: throw ClerkRuntimeError (CANNOT_RENDER_API_KEYS_USER_DISABLED)
            else
                Feature-->>ClerkCore: false
                ClerkCore->>APIKeysComp: mount component (render)
                ClerkCore->>ClerkCore: record telemetry
                APIKeysComp-->>App: mounted
            end
        end
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Pay attention to feature-flag logic and error-code consistency in packages/clerk-js/src/core/clerk.ts.
  • Verify all renamed public APIs and types are updated consistently across packages (shared types, react bindings, isomorphic clerk, and re-exports).
  • Confirm lazy/dynamic import paths and test imports resolve correctly on case-sensitive filesystems.

Possibly related PRs

Suggested reviewers

  • tmilewski

Poem

🐰 Hop-hop, a naming spree I made today,
APIKeys now stands proud and bold in play,
Hooks and mounts all tidy, flags check the gate,
Caps fixed, imports fixed — code looks first-rate! 🎩✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main change: standardizing API keys naming convention across the codebase from camelCase (mountApiKeys) to API-in-caps (mountAPIKeys).
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/standardize-api-keys-naming

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 41ca895 and ddcdb76.

📒 Files selected for processing (1)
  • packages/clerk-js/src/ui/components/APIKeys/APIKeys.tsx (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Build Packages
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (2)
packages/clerk-js/src/ui/components/APIKeys/APIKeys.tsx (2)

104-105: LGTM! State variable naming is now consistent.

Both state variables correctly use uppercase "API" (selectedAPIKeyID and selectedAPIKeyName), which aligns with the PR's standardization goal.


223-228: LGTM! Modal reset and prop passing correctly use standardized naming.

The reset logic and props passed to RevokeAPIKeyConfirmationModal correctly use the updated state variables with uppercase "API".


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

@wobsoriano wobsoriano changed the title chore(clerk-js): Standardize API keys naming convention refactor(clerk-js): Standardize API keys naming convention Nov 15, 2025
@wobsoriano wobsoriano marked this pull request as ready for review November 15, 2025 00:39
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/clerk-js/src/core/clerk.ts (1)

1247-1263: Feature flag checks should be mutually exclusive based on context.

The current logic checks both organization-specific and user-specific feature flags sequentially, which could cause incorrect behavior. When this.organization exists (org context), both the org check (lines 1247-1254) and user check (lines 1256-1263) can execute. This means API keys could be blocked due to user-level restrictions even when mounting in an organization context.

Apply this diff to make the checks mutually exclusive:

     if (this.organization && disabledOrganizationAPIKeysFeature(this, this.environment)) {
       if (this.#instanceType === 'development') {
         throw new ClerkRuntimeError(warnings.cannotRenderAPIKeysComponentForOrgWhenDisabled, {
           code: CANNOT_RENDER_API_KEYS_ORG_DISABLED_ERROR_CODE,
         });
       }
       return;
-    }
-
-    if (disabledUserAPIKeysFeature(this, this.environment)) {
+    } else if (!this.organization && disabledUserAPIKeysFeature(this, this.environment)) {
       if (this.#instanceType === 'development') {
         throw new ClerkRuntimeError(warnings.cannotRenderAPIKeysComponentForUserWhenDisabled, {
           code: CANNOT_RENDER_API_KEYS_USER_DISABLED_ERROR_CODE,
         });
       }
       return;
     }
🧹 Nitpick comments (2)
packages/react/src/components/uiComponents.tsx (1)

641-641: Inconsistent component name casing.

The component identifier uses 'ApiKeys' with lowercase 'i', while the rest of the naming convention standardization uses uppercase 'API'. Consider updating this to 'APIKeys' for consistency.

Apply this diff to align the component name:

-  { component: 'ApiKeys', renderWhileLoading: true },
+  { component: 'APIKeys', renderWhileLoading: true },
packages/clerk-js/src/ui/components/ApiKeys/ApiKeys.tsx (1)

104-105: Inconsistent naming convention for apiKeyName identifiers.

The refactor standardized apiKeyId to apiKeyID (uppercase acronym), but apiKeyName remains with lowercase "name". For consistency with the apiKeyID pattern, consider updating to apiKeyName (title case "Name").

Apply these changes for consistency:

-  const [selectedAPIKeyID, setSelectedAPIKeyID] = useState('');
-  const [selectedApiKeyName, setSelectedApiKeyName] = useState('');
+  const [selectedAPIKeyID, setSelectedAPIKeyID] = useState('');
+  const [selectedAPIKeyName, setSelectedAPIKeyName] = useState('');
-  const handleRevoke = (apiKeyID: string, apiKeyName: string) => {
+  const handleRevoke = (apiKeyID: string, apiKeyName: string) => {
     setSelectedAPIKeyID(apiKeyID);
-    setSelectedApiKeyName(apiKeyName);
+    setSelectedAPIKeyName(apiKeyName);
     setIsRevokeModalOpen(true);
   };
       onClose={() => {
         setSelectedAPIKeyID('');
-        setSelectedApiKeyName('');
+        setSelectedAPIKeyName('');
         setIsRevokeModalOpen(false);
       }}
       apiKeyID={selectedAPIKeyID}
-      apiKeyName={selectedApiKeyName}
+      apiKeyName={selectedAPIKeyName}
       onRevokeSuccess={invalidateAll}

Also applies to: 126-128, 223-224, 227-228

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 866008c and d646721.

📒 Files selected for processing (18)
  • .changeset/brown-bags-fold.md (1 hunks)
  • packages/clerk-js/sandbox/app.ts (1 hunks)
  • packages/clerk-js/src/core/clerk.ts (2 hunks)
  • packages/clerk-js/src/ui/components/ApiKeys/ApiKeys.tsx (3 hunks)
  • packages/clerk-js/src/ui/components/ApiKeys/RevokeAPIKeyConfirmationModal.tsx (3 hunks)
  • packages/clerk-js/src/ui/components/ApiKeys/__tests__/ApiKeys.spec.tsx (1 hunks)
  • packages/clerk-js/src/ui/components/OrganizationProfile/OrganizationAPIKeysPage.tsx (1 hunks)
  • packages/clerk-js/src/ui/components/OrganizationProfile/OrganizationProfileRoutes.tsx (3 hunks)
  • packages/clerk-js/src/ui/components/UserProfile/APIKeysPage.tsx (1 hunks)
  • packages/clerk-js/src/ui/components/UserProfile/UserProfileRoutes.tsx (1 hunks)
  • packages/clerk-js/src/ui/contexts/components/OrganizationProfile.ts (3 hunks)
  • packages/clerk-js/src/ui/contexts/components/index.ts (1 hunks)
  • packages/clerk-js/src/ui/lazyModules/components.ts (1 hunks)
  • packages/react/src/components/uiComponents.tsx (1 hunks)
  • packages/react/src/isomorphicClerk.ts (3 hunks)
  • packages/shared/src/react/hooks/index.ts (1 hunks)
  • packages/shared/src/react/hooks/useAPIKeys.ts (6 hunks)
  • packages/shared/src/types/clerk.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (6)
packages/clerk-js/src/ui/contexts/components/OrganizationProfile.ts (1)
packages/clerk-js/src/ui/constants.ts (1)
  • ORGANIZATION_PROFILE_NAVBAR_ROUTE_ID (8-13)
packages/clerk-js/src/core/clerk.ts (1)
packages/shared/src/types/clerk.ts (1)
  • APIKeysProps (1959-1978)
packages/clerk-js/src/ui/components/OrganizationProfile/OrganizationProfileRoutes.tsx (1)
packages/clerk-js/src/ui/contexts/components/OrganizationProfile.ts (1)
  • useOrganizationProfileContext (33-86)
packages/clerk-js/sandbox/app.ts (2)
packages/clerk-js/src/core/clerk.ts (1)
  • Clerk (200-3040)
packages/shared/src/types/clerk.ts (1)
  • Clerk (169-939)
packages/react/src/isomorphicClerk.ts (1)
packages/shared/src/types/clerk.ts (1)
  • APIKeysProps (1959-1978)
packages/shared/src/react/hooks/useAPIKeys.ts (4)
packages/shared/src/react/types.ts (2)
  • PaginatedHookConfig (89-102)
  • PaginatedResources (13-79)
packages/shared/src/types/apiKeys.ts (1)
  • APIKeyResource (5-22)
packages/shared/src/react/hooks/index.ts (1)
  • useAPIKeys (2-2)
packages/shared/src/telemetry/events/method-called.ts (1)
  • eventMethodCalled (13-25)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (17)
.changeset/brown-bags-fold.md (1)

1-7: LGTM!

The changeset correctly documents the naming convention standardization with appropriate minor version bumps for the affected packages.

packages/clerk-js/src/ui/components/OrganizationProfile/OrganizationAPIKeysPage.tsx (1)

8-8: LGTM!

The import path has been correctly updated to align with the APIKeys directory rename. This change is consistent with similar updates across the codebase.

packages/clerk-js/src/ui/components/OrganizationProfile/OrganizationProfileRoutes.tsx (3)

16-20: LGTM!

The lazy import path and chunk name are correctly configured for the OrganizationAPIKeysPage component.


134-134: LGTM!

The route path condition correctly uses the renamed isAPIKeysPageRoot variable.


46-46: Property rename verified successfully.

The context property has been correctly renamed to isAPIKeysPageRoot and is properly exported from OrganizationProfileContext. The destructuring in OrganizationProfileRoutes.tsx (line 46) correctly uses the renamed property, matching the context type definition and export.

packages/shared/src/react/hooks/index.ts (1)

2-2: No issues found with the renamed hook export.

The verification confirms that useAPIKeys is properly exported from the implementation file at line 69 of packages/shared/src/react/hooks/useAPIKeys.ts. The re-export in packages/shared/src/react/hooks/index.ts correctly references this export, so the naming change from useApiKeys to useAPIKeys is consistent across the codebase.

packages/clerk-js/src/ui/components/UserProfile/UserProfileRoutes.tsx (1)

16-20: Lazy import path verification successful.

The file packages/clerk-js/src/ui/components/UserProfile/APIKeysPage.tsx exists at the expected location and correctly exports APIKeysPage. The updated import path is valid and the code change is correct.

packages/react/src/components/uiComponents.tsx (1)

631-632: Method names verified as correct.

Both mountAPIKeys and unmountAPIKeys exist on the Clerk instance with the proper type signatures defined in packages/shared/src/types/clerk.ts and implemented in packages/clerk-js/src/core/clerk.ts. The usage at lines 631-632 is valid.

packages/clerk-js/src/ui/components/ApiKeys/__tests__/ApiKeys.spec.tsx (1)

6-6: LGTM! Import path correctly updated.

The import path has been updated to reflect the standardized naming convention for the APIKeys module.

packages/clerk-js/src/ui/contexts/components/index.ts (1)

1-1: LGTM! Export path correctly updated.

The export path has been updated to match the standardized APIKeys module naming.

packages/clerk-js/sandbox/app.ts (1)

328-328: LGTM! Method call correctly updated.

The sandbox app now correctly uses the renamed mountAPIKeys method, aligning with the standardized API naming convention.

packages/clerk-js/src/ui/components/ApiKeys/RevokeAPIKeyConfirmationModal.tsx (1)

17-17: LGTM! Prop renamed consistently.

The apiKeyId prop has been correctly renamed to apiKeyID throughout the component, following the common convention of capitalizing "ID" as a suffix. All references (prop type, parameter destructuring, conditional check, and API call) have been updated consistently.

Also applies to: 27-27, 51-51, 55-55

packages/shared/src/types/clerk.ts (1)

586-586: LGTM! Public API methods renamed consistently.

The mountApiKeys and unmountApiKeys methods have been correctly renamed to mountAPIKeys and unmountAPIKeys, standardizing the naming convention. Since these methods are marked as @experimental, the breaking change is acceptable. The JSDoc comments remain accurate and appropriate.

Also applies to: 598-598

packages/clerk-js/src/ui/contexts/components/OrganizationProfile.ts (1)

27-27: LGTM! Property renamed consistently.

The isApiKeysPageRoot property has been correctly renamed to isAPIKeysPageRoot throughout the context type definition, variable assignment, and return object, maintaining consistency with the standardized naming convention.

Also applies to: 70-70, 83-83

packages/react/src/isomorphicClerk.ts (1)

1149-1163: LGTM! Public methods renamed correctly.

The mountApiKeys and unmountApiKeys methods have been correctly renamed to mountAPIKeys and unmountAPIKeys, and the internal calls to clerkjs.mountAPIKeys and clerkjs.unmountAPIKeys are properly updated.

Note: The internal property references (premountAPIKeysNode) should use plural form as noted in the previous comment.

packages/shared/src/react/hooks/useAPIKeys.ts (1)

12-12: LGTM! Hook and types renamed consistently.

The useApiKeys hook and its associated types have been comprehensively renamed to useAPIKeys, UseAPIKeysParams, and UseAPIKeysReturn. All references including JSDoc comments, telemetry events, and type casts have been updated correctly. The changes maintain functionality while improving naming consistency.

Also applies to: 26-26, 69-69, 84-84, 107-107

packages/clerk-js/src/core/clerk.ts (1)

1285-1288: LGTM!

The unmountAPIKeys method correctly handles unmounting without requiring feature flag checks. The implementation is consistent with other unmount methods in the codebase.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d646721 and b827ee5.

📒 Files selected for processing (3)
  • packages/clerk-js/src/ui/components/ApiKeys/APIKeys.tsx (3 hunks)
  • packages/clerk-js/src/ui/components/ApiKeys/__tests__/APIKeys.spec.tsx (1 hunks)
  • packages/react/src/isomorphicClerk.ts (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/react/src/isomorphicClerk.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Formatting | Dedupe | Changeset
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (3)
packages/clerk-js/src/ui/components/ApiKeys/__tests__/APIKeys.spec.tsx (1)

6-6: LGTM!

Import path correctly updated to reflect the standardized module naming.

packages/clerk-js/src/ui/components/ApiKeys/APIKeys.tsx (2)

126-130: LGTM!

Function parameter and state setter correctly updated to use apiKeyID with uppercase conventions.


222-231: No issues found—props match the component interface perfectly.

The RevokeAPIKeyConfirmationModal component's prop interface defines apiKeyID (line 14) and apiKeyName (line 16), which exactly match the props being passed in APIKeys.tsx lines 227–228. There is no inconsistency between the usage and the component's prop interface. While the naming pattern differs between apiKeyID (uppercase API) and apiKeyName (lowercase api), this pattern is consistent within the interface itself and was not changed by this PR snippet.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
packages/clerk-js/src/ui/components/APIKeys/APIKeys.tsx (1)

105-105: Incomplete standardization: selectedApiKeyName still uses lowercase "Api".

Line 105 still uses lowercase "Api" in selectedApiKeyName, which is inconsistent with line 104's selectedAPIKeyID (uppercase "API"). This was flagged in a previous review and remains unresolved. To complete the standardization, rename to selectedAPIKeyName and update all references on lines 128, 224, and 228.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between b827ee5 and 41ca895.

📒 Files selected for processing (3)
  • packages/clerk-js/src/ui/components/APIKeys/APIKeys.tsx (3 hunks)
  • packages/clerk-js/src/ui/components/APIKeys/RevokeAPIKeyConfirmationModal.tsx (3 hunks)
  • packages/clerk-js/src/ui/components/APIKeys/__tests__/APIKeys.spec.tsx (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Build Packages
  • GitHub Check: Formatting | Dedupe | Changeset
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (2)
packages/clerk-js/src/ui/components/APIKeys/__tests__/APIKeys.spec.tsx (1)

6-6: LGTM!

The import path correctly updated to match the renamed module directory structure.

packages/clerk-js/src/ui/components/APIKeys/RevokeAPIKeyConfirmationModal.tsx (1)

17-17: LGTM!

All instances of apiKeyId have been consistently renamed to apiKeyID (uppercase "ID"), properly standardizing the naming convention throughout the component.

Also applies to: 27-27, 51-51, 55-55

@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 15, 2025

Open in StackBlitz

@clerk/agent-toolkit

npm i https://pkg.pr.new/@clerk/agent-toolkit@7223

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

npm i https://pkg.pr.new/@clerk/dev-cli@7223

@clerk/elements

npm i https://pkg.pr.new/@clerk/elements@7223

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

npm i https://pkg.pr.new/@clerk/remix@7223

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

npm i https://pkg.pr.new/@clerk/themes@7223

@clerk/types

npm i https://pkg.pr.new/@clerk/types@7223

@clerk/upgrade

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

@clerk/vue

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

commit: ddcdb76

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.

3 participants