ArmoHotspot/backend/.claude/skills/prisma-postgres/references/management-api-sdk.md
Gökhan ÖZARSLAN 6b5a6d0a71 ilk dosyalar
2026-08-16 15:09:05 +03:00

2.3 KiB

management-api-sdk

Use @prisma/management-api-sdk for typed API integration with optional OAuth and token refresh.

The Platform API evolves independently from Prisma ORM. Inspect the installed package's generated api.d.ts for exact paths and request/response shapes.

Priority

HIGH

Why It Matters

The SDK provides typed endpoint methods and removes boilerplate around auth and refresh handling, which reduces errors in production provisioning flows.

Install

npm install @prisma/management-api-sdk

Simple client (existing token)

import { createManagementApiClient } from '@prisma/management-api-sdk'

const client = createManagementApiClient({ token: process.env.PRISMA_SERVICE_TOKEN! })
const { data: workspaces } = await client.GET('/v1/workspaces')

Check the generated client result before using data; typed clients surface HTTP failures separately. Never log a full response from connection/key creation because it may contain one-time credentials.

Workspace service tokens

The typed client exposes routes to list, create, and revoke workspace service tokens:

  • GET /v1/workspaces/{workspaceId}/service-tokens
  • POST /v1/workspaces/{workspaceId}/service-tokens
  • DELETE /v1/workspaces/{workspaceId}/service-tokens/{serviceTokenId}

Creation accepts a display name. The response's data.value is the complete token and is returned exactly once; transfer it directly to the intended secret store without logging the response. Later list calls return metadata and valueHint, not the token value. Treat revocation as destructive and resolve both ids explicitly.

Full SDK (OAuth + refresh)

import { createManagementApiSdk, type TokenStorage } from '@prisma/management-api-sdk'

const tokenStorage: TokenStorage = {
  async getTokens() { return null },
  async setTokens(tokens) {},
  async clearTokens() {},
}

const api = createManagementApiSdk({
  clientId: process.env.PRISMA_CLIENT_ID!,
  redirectUri: 'https://your-app.com/auth/callback',
  tokenStorage,
})

OAuth SDK flow

  1. Call getLoginUrl() and persist state + verifier.
  2. Redirect user to login URL.
  3. Handle callback with handleCallback().
  4. Use api.client for typed endpoint calls.
  5. Call logout() when needed.

References