fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(backend): Use paginated type response for API keys list method - #7162

Merged
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types
Nov 5, 2025
Merged

fix(backend): Use paginated type response for API keys list method#7162
wobsoriano merged 6 commits into
mainfrom
rob/user-3879-api-keys-pagination-types

Conversation

@wobsoriano

@wobsorianowobsoriano commented Nov 5, 2025

Copy link
Copy Markdown
Member

Description

Fixes incorrect return type for clerkClient.apiKeys.list()

Screenshot 2025-11-05 at 12 47 07 PMScreenshot 2025-11-05 at 12 53 18 PM

Resolves USER-3879

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

  • Breaking Changes

    • API key list responses are now paginated; clients must handle pagination metadata when listing API keys.
  • Documentation

    • Updated documentation and packaging to reflect the paginated API key list format.
  • Chores

    • Added a changeset noting the corrected API key list response and minor version bump.

@changeset-bot

changeset-botBot commented Nov 5, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 88d0d63

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

This PR includes changesets to release 11 packages
NameType
@clerk/backendMinor
@clerk/agent-toolkitPatch
@clerk/astroPatch
@clerk/expressPatch
@clerk/fastifyPatch
@clerk/nextjsPatch
@clerk/nuxtPatch
@clerk/react-routerPatch
@clerk/remixPatch
@clerk/tanstack-react-startPatch
@clerk/testingPatch

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

vercelBot commented Nov 5, 2025

Copy link
Copy Markdown

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
clerk-js-sandboxReadyReadyPreviewCommentNov 5, 2025 8:52pm

@coderabbitai

coderabbitaiBot commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated APIKeysApi typings and imports: list() now returns PaginatedResourceResponse<APIKey[]>, ClerkPaginationRequest import path changed, and a new changeset file was added. No control-flow changes; getSecret() remains present.

Changes

Cohort / File(s)Change Summary
API Keys Endpoint Typings
packages/backend/src/api/endpoints/APIKeysApi.ts
Updated imports to use ClerkPaginationRequest from '@clerk/shared/types' and added PaginatedResourceResponse import. Changed list() return type from APIKey[] to PaginatedResourceResponse<APIKey[]>.
Changeset
.changeset/famous-planes-invent.md
Added changeset marking a patch bump with description "Fixed API keys list method return type".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify callers of APIKeysAPI.list() handle the PaginatedResourceResponse wrapper.
  • Confirm the updated import path for ClerkPaginationRequest resolves correctly.
  • Check getSecret() remains usable and type-compatible.

Poem

🐰 I hopped through types and neatly pruned,

pagination wrapped the list — finely tuned,
imports hopped paths and landed right,
a tiny changeset tucked in tight,
nibbling bugs away by moonlight. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe PR title accurately and specifically describes the main change: updating the return type of the API keys list method to use a paginated response type.
Linked Issues check✅ PassedThe code changes directly address the linked issue USER-3879 by correcting the TypeScript return type for apiKeys.list() to use PaginatedResourceResponse, fixing the incorrect types documented in the issue.
Out of Scope Changes check✅ PassedAll changes are directly related to fixing the API keys list method return type as specified in the linked issue; no out-of-scope modifications detected.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rob/user-3879-api-keys-pagination-types

📜 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 507f51d and 88d0d63.

📒 Files selected for processing (1)
  • .changeset/famous-planes-invent.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/famous-planes-invent.md
⏰ 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). (25)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
.changeset/famous-planes-invent.md (1)

1-12: LGTM!

The changeset is properly formatted with the correct YAML frontmatter. The minor version bump and description accurately reflect the fix to the apiKeys.list() return type. The TypeScript code example is helpful and clearly demonstrates the new pagination structure with data and totalCount properties, aligning with the PaginatedResourceResponse<APIKey[]> type change.


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

@wobsorianowobsoriano changed the title chore(backend): Remove API keys getSecret method and fix list method typefix(backend): Use paginated type response for API keys list methodNov 5, 2025
@wobsoriano

Copy link
Copy Markdown
MemberAuthor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Hey @wobsoriano - the snapshot version command generated the following package versions:

PackageVersion
@clerk/agent-toolkit0.1.47-snapshot.v20251105204110
@clerk/astro2.14.5-snapshot.v20251105204110
@clerk/backend2.19.4-snapshot.v20251105204110
@clerk/chrome-extension2.7.13-snapshot.v20251105204110
@clerk/clerk-js5.105.0-snapshot.v20251105204110
@clerk/elements0.23.78-snapshot.v20251105204110
@clerk/clerk-expo2.18.2-snapshot.v20251105204110
@clerk/expo-passkeys0.4.15-snapshot.v20251105204110
@clerk/express1.7.46-snapshot.v20251105204110
@clerk/fastify2.5.3-snapshot.v20251105204110
@clerk/localizations3.27.0-snapshot.v20251105204110
@clerk/nextjs6.34.4-snapshot.v20251105204110
@clerk/nuxt1.11.5-snapshot.v20251105204110
@clerk/clerk-react5.53.7-snapshot.v20251105204110
@clerk/react-router2.1.9-snapshot.v20251105204110
@clerk/remix4.13.12-snapshot.v20251105204110
@clerk/shared3.31.1-snapshot.v20251105204110
@clerk/tanstack-react-start0.26.8-snapshot.v20251105204110
@clerk/testing1.13.12-snapshot.v20251105204110
@clerk/themes2.4.33-snapshot.v20251105204110
@clerk/types4.97.2-snapshot.v20251105204110
@clerk/vue1.14.12-snapshot.v20251105204110

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/agent-toolkit

npm i @clerk/agent-toolkit@0.1.47-snapshot.v20251105204110 --save-exact

@clerk/astro

npm i @clerk/astro@2.14.5-snapshot.v20251105204110 --save-exact

@clerk/backend

npm i @clerk/backend@2.19.4-snapshot.v20251105204110 --save-exact

@clerk/chrome-extension

npm i @clerk/chrome-extension@2.7.13-snapshot.v20251105204110 --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@5.105.0-snapshot.v20251105204110 --save-exact

@clerk/elements

npm i @clerk/elements@0.23.78-snapshot.v20251105204110 --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@2.18.2-snapshot.v20251105204110 --save-exact

@clerk/expo-passkeys

npm i @clerk/expo-passkeys@0.4.15-snapshot.v20251105204110 --save-exact

@clerk/express

npm i @clerk/express@1.7.46-snapshot.v20251105204110 --save-exact

@clerk/fastify

npm i @clerk/fastify@2.5.3-snapshot.v20251105204110 --save-exact

@clerk/localizations

npm i @clerk/localizations@3.27.0-snapshot.v20251105204110 --save-exact

@clerk/nextjs

npm i @clerk/nextjs@6.34.4-snapshot.v20251105204110 --save-exact

@clerk/nuxt

npm i @clerk/nuxt@1.11.5-snapshot.v20251105204110 --save-exact

@clerk/clerk-react

npm i @clerk/clerk-react@5.53.7-snapshot.v20251105204110 --save-exact

@clerk/react-router

npm i @clerk/react-router@2.1.9-snapshot.v20251105204110 --save-exact

@clerk/remix

npm i @clerk/remix@4.13.12-snapshot.v20251105204110 --save-exact

@clerk/shared

npm i @clerk/shared@3.31.1-snapshot.v20251105204110 --save-exact

@clerk/tanstack-react-start

npm i @clerk/tanstack-react-start@0.26.8-snapshot.v20251105204110 --save-exact

@clerk/testing

npm i @clerk/testing@1.13.12-snapshot.v20251105204110 --save-exact

@clerk/themes

npm i @clerk/themes@2.4.33-snapshot.v20251105204110 --save-exact

@clerk/types

npm i @clerk/types@4.97.2-snapshot.v20251105204110 --save-exact

@clerk/vue

npm i @clerk/vue@1.14.12-snapshot.v20251105204110 --save-exact

@pkg-pr-new

pkg-pr-newBot commented Nov 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/dev-cli

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

@clerk/elements

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

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

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

@clerk/types

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

@clerk/upgrade

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

@clerk/vue

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

commit: 88d0d63

@@ -0,0 +1,5 @@
---
"@clerk/backend": minor

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

doing a minor since the data property is introduced in https://github.com/clerk/cloudflare-workers/pull/1378 and it was api_keys before.

api keys still in beta so still just a minor bump

@wobsoriano
wobsoriano enabled auto-merge (squash) November 5, 2025 20:54
@blacksmith-sh

blacksmith-shBot commented Nov 5, 2025

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

TestView Logs
[chrome] › integration/tests/
session-tasks-multi-session.test.ts:33:9 › session tasks multi-session flow @nextjs › l
ong-running--next.appRouter.withSessionTasks › when switching sessions, navigate to tas
k
View Logs


Fix in Cursor

@wobsoriano
wobsoriano merged commit b505755 into mainNov 5, 2025
70 of 73 checks passed
@wobsoriano
wobsoriano deleted the rob/user-3879-api-keys-pagination-types branch November 5, 2025 21:06
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@wobsoriano@clerk-cookie@tmilewski