Files
Reactive-Resume/migrations/20260323204916_strange_the_order/snapshot.json
T
Christian Pojoni b4aaf9712f feat(mcp): add OAuth 2.1 for claude.ai MCP connector (#2829)
* feat(mcp): add OAuth 2.1 authentication for claude.ai MCP connector

Enable OAuth 2.1 (RFC 8414 + RFC 7591) for the MCP endpoint using
better-auth's MCP plugin. This allows claude.ai and other MCP clients
to authenticate via Dynamic Client Registration and Authorization Code
flow with PKCE, using the existing login page.

- Add `mcp()` plugin to better-auth config with login page redirect
- Add `.well-known/oauth-authorization-server` discovery endpoint
- Add `.well-known/oauth-protected-resource` metadata endpoint
- Update MCP handler to accept Bearer tokens via `getMcpSession`
- Retain `x-api-key` fallback for backward compatibility
- Return proper HTTP 401 + WWW-Authenticate header for unauthed requests
- Add `oauthApplication`, `oauthAccessToken`, `oauthConsent` tables

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): use typed AuthError and suppress noisy verifyApiKey throws

- Replace string-matching error detection with instanceof AuthError
- Wrap verifyApiKey in try-catch to avoid logging malformed key errors
- Move console.error below auth check so 401s don't pollute logs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(mcp): add database migration for OAuth tables

Creates oauth_application, oauth_access_token, and oauth_consent tables
required for MCP OAuth 2.1 Dynamic Client Registration flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): resolve OAuth Bearer token auth for oRPC tool calls

The oRPC context only checked session cookies and API keys, causing
MCP tool calls from OAuth clients (claude.ai) to fail with Unauthorized
even though the MCP endpoint itself authenticated successfully.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): look up user by userId from OAuth access token

getMcpSession returns OAuthAccessToken (with userId), not a session
object with a user property. Must query the user table by userId.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(mcp): migrate from deprecated mcp() plugin to @better-auth/oauth-provider

The better-auth MCP plugin is marked for deprecation in favor of the
OAuth Provider plugin. This refactors the entire OAuth 2.1 flow to use
@better-auth/oauth-provider with JWT-based token verification, replacing
the opaque token lookup via getMcpSession().

Key changes:
- Replace mcp() with jwt() + oauthProvider() in auth config
- Replace getMcpSession() with verifyAccessToken() (JWT/JWKS)
- Replace oauthApplication table with oauthClient (RFC 7591 compliant)
- Add oauthRefreshToken table and jwks table for JWT signing keys
- Extract shared authBaseUrl and verifyOAuthToken helper
- Hoist McpServer to module scope (avoid per-request reconstruction)
- Update .well-known discovery endpoints for OAuth Provider

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): resolve OAuth 2.1 flow for claude.ai MCP connector

Multiple fixes required to make the full MCP OAuth flow work with
claude.ai's implementation:

- Add RFC 8414 discovery route at /.well-known/oauth-authorization-server/api/auth
  (claude.ai appends the issuer path per spec)
- Add /auth/oauth server route to handle login/consent flow
  (generates auth codes directly, bypassing h3 cookie issues)
- Default token_endpoint_auth_method to "none" via onRequest plugin hook
  (claude.ai omits this field, causing confidential client rejection)
- Strip prompt=consent from authorize requests via onRequest hook
  (better-auth checks prompt before skipConsent, causing redirect loops)
- Add validAudiences for MCP resource URL
  (JWT aud claim contains the MCP URL, not the base URL)
- Disable CSRF check for cross-origin OAuth flows
- Log token endpoint errors for debugging
- Set skipConsent on OAuth clients via /auth/oauth route

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): harden OAuth security and enforce lock on delete

- Scope CSRF bypass to OAuth2 paths only instead of disabling globally
- Validate redirect_uri against registered client URIs (prevents code interception)
- Use pathname matching instead of fragile url.includes() for route guards
- Replace biased modulo code generation with crypto.randomBytes
- Enforce resume lock check on delete (previously silently ignored)
- Remove debug console.error logging of OAuth token response bodies
- Use Response.json() consistently for MCP 401 response

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Update dependencies, refine ignore patterns, and enhance documentation

- Updated various dependencies in package.json and pnpm-lock.yaml for improved stability and features.
- Adjusted ignore patterns in knip.json to include specific component directories.
- Enhanced documentation for the MCP server, clarifying authentication methods and configuration options.
- Made minor adjustments to VSCode settings for better code organization.

* fix(mcp): resolve OAuth client registration and stale token handling

Claude.ai sends token_endpoint_auth_method: "client_secret_post" without
a client_secret during Dynamic Client Registration, causing Better Auth to
reject it as an unauthenticated confidential client. Force to "none" for
unauthenticated registrations.

Also catch JWKS verification errors (e.g. key rotation after redeployment)
so stale Bearer tokens return 401 instead of 200 with an error body,
allowing clients to re-initiate the OAuth flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* reiterate on tests

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-03-24 11:03:56 +01:00

3050 lines
69 KiB
JSON

{
"version": "8",
"dialect": "postgres",
"id": "35e0fff4-f296-413c-8ab2-18fc66146d8f",
"prevIds": ["c9c88ad3-f804-4cd4-883a-afe376d46792"],
"ddl": [
{
"isRlsEnabled": false,
"name": "account",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "apikey",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "jwks",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "oauth_access_token",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "oauth_client",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "oauth_consent",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "oauth_refresh_token",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "passkey",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "resume",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "resume_statistics",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "session",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "two_factor",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "user",
"entityType": "tables",
"schema": "public"
},
{
"isRlsEnabled": false,
"name": "verification",
"entityType": "tables",
"schema": "public"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "account_id",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "'credential'",
"generated": null,
"identity": null,
"name": "provider_id",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "scope",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id_token",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "password",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "access_token",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "refresh_token",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "access_token_expires_at",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "refresh_token_expires_at",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "account"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "name",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "start",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "prefix",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "key",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "'default'",
"generated": null,
"identity": null,
"name": "config_id",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "reference_id",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "integer",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "refill_interval",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "integer",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "refill_amount",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "last_refill_at",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "true",
"generated": null,
"identity": null,
"name": "enabled",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "false",
"generated": null,
"identity": null,
"name": "rate_limit_enabled",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "integer",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "86400000",
"generated": null,
"identity": null,
"name": "rate_limit_time_window",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "integer",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "10",
"generated": null,
"identity": null,
"name": "rate_limit_max",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "integer",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "0",
"generated": null,
"identity": null,
"name": "request_count",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "integer",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "remaining",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "last_request",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "expires_at",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "permissions",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "jsonb",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "metadata",
"entityType": "columns",
"schema": "public",
"table": "apikey"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "jwks"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "public_key",
"entityType": "columns",
"schema": "public",
"table": "jwks"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "private_key",
"entityType": "columns",
"schema": "public",
"table": "jwks"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "jwks"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "expires_at",
"entityType": "columns",
"schema": "public",
"table": "jwks"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "token",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "client_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "session_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "reference_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "refresh_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "expires_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "scopes",
"entityType": "columns",
"schema": "public",
"table": "oauth_access_token"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "client_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "client_secret",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "false",
"generated": null,
"identity": null,
"name": "disabled",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "skip_consent",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "enable_end_session",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "subject_type",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "scopes",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "name",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "uri",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "icon",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "contacts",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "tos",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "policy",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "software_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "software_version",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "software_statement",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "redirect_uris",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "post_logout_redirect_uris",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "token_endpoint_auth_method",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "grant_types",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "response_types",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "public",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "type",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "require_pkce",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "reference_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "jsonb",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "metadata",
"entityType": "columns",
"schema": "public",
"table": "oauth_client"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "oauth_consent"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "client_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_consent"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_consent"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "reference_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_consent"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "scopes",
"entityType": "columns",
"schema": "public",
"table": "oauth_consent"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_consent"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_consent"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "token",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "client_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "session_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "reference_id",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "expires_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "revoked",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "auth_time",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 1,
"default": null,
"generated": null,
"identity": null,
"name": "scopes",
"entityType": "columns",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "name",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "aaguid",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "public_key",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "credential_id",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "integer",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "counter",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "device_type",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "false",
"generated": null,
"identity": null,
"name": "backed_up",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "transports",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "passkey"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "name",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "slug",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 1,
"default": "'{}'",
"generated": null,
"identity": null,
"name": "tags",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "false",
"generated": null,
"identity": null,
"name": "is_public",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "false",
"generated": null,
"identity": null,
"name": "is_locked",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "password",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "jsonb",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "data",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "resume"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "integer",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "0",
"generated": null,
"identity": null,
"name": "views",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "integer",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "0",
"generated": null,
"identity": null,
"name": "downloads",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "last_viewed_at",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "last_downloaded_at",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "resume_id",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "resume_statistics"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "token",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "ip_address",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_agent",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "expires_at",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "session"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "two_factor"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "user_id",
"entityType": "columns",
"schema": "public",
"table": "two_factor"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "secret",
"entityType": "columns",
"schema": "public",
"table": "two_factor"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "backup_codes",
"entityType": "columns",
"schema": "public",
"table": "two_factor"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "two_factor"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "two_factor"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "text",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "image",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "name",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "email",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "false",
"generated": null,
"identity": null,
"name": "email_verified",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "username",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "display_username",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "boolean",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "false",
"generated": null,
"identity": null,
"name": "two_factor_enabled",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": false,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "last_active_at",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "user"
},
{
"type": "uuid",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "id",
"entityType": "columns",
"schema": "public",
"table": "verification"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "identifier",
"entityType": "columns",
"schema": "public",
"table": "verification"
},
{
"type": "text",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "value",
"entityType": "columns",
"schema": "public",
"table": "verification"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": null,
"generated": null,
"identity": null,
"name": "expires_at",
"entityType": "columns",
"schema": "public",
"table": "verification"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "created_at",
"entityType": "columns",
"schema": "public",
"table": "verification"
},
{
"type": "timestamp with time zone",
"typeSchema": null,
"notNull": true,
"dimensions": 0,
"default": "now()",
"generated": null,
"identity": null,
"name": "updated_at",
"entityType": "columns",
"schema": "public",
"table": "verification"
},
{
"nameExplicit": false,
"columns": [
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "account_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "account"
},
{
"nameExplicit": false,
"columns": [
{
"value": "reference_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "apikey_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "apikey"
},
{
"nameExplicit": false,
"columns": [
{
"value": "key",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "apikey_key_index",
"entityType": "indexes",
"schema": "public",
"table": "apikey"
},
{
"nameExplicit": false,
"columns": [
{
"value": "config_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "apikey_config_id_index",
"entityType": "indexes",
"schema": "public",
"table": "apikey"
},
{
"nameExplicit": false,
"columns": [
{
"value": "enabled",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
},
{
"value": "reference_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "apikey_enabled_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "apikey"
},
{
"nameExplicit": false,
"columns": [
{
"value": "token",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "oauth_access_token_token_index",
"entityType": "indexes",
"schema": "public",
"table": "oauth_access_token"
},
{
"nameExplicit": false,
"columns": [
{
"value": "client_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "oauth_client_client_id_index",
"entityType": "indexes",
"schema": "public",
"table": "oauth_client"
},
{
"nameExplicit": false,
"columns": [
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
},
{
"value": "client_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "oauth_consent_user_id_client_id_index",
"entityType": "indexes",
"schema": "public",
"table": "oauth_consent"
},
{
"nameExplicit": false,
"columns": [
{
"value": "token",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "oauth_refresh_token_token_index",
"entityType": "indexes",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"nameExplicit": false,
"columns": [
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "passkey_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "passkey"
},
{
"nameExplicit": false,
"columns": [
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "resume_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "resume"
},
{
"nameExplicit": false,
"columns": [
{
"value": "created_at",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "resume_created_at_index",
"entityType": "indexes",
"schema": "public",
"table": "resume"
},
{
"nameExplicit": false,
"columns": [
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
},
{
"value": "updated_at",
"isExpression": false,
"asc": false,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "resume_user_id_updated_at_index",
"entityType": "indexes",
"schema": "public",
"table": "resume"
},
{
"nameExplicit": false,
"columns": [
{
"value": "is_public",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
},
{
"value": "slug",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
},
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "resume_is_public_slug_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "resume"
},
{
"nameExplicit": false,
"columns": [
{
"value": "token",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
},
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "session_token_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "session"
},
{
"nameExplicit": false,
"columns": [
{
"value": "expires_at",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "session_expires_at_index",
"entityType": "indexes",
"schema": "public",
"table": "session"
},
{
"nameExplicit": false,
"columns": [
{
"value": "user_id",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "two_factor_user_id_index",
"entityType": "indexes",
"schema": "public",
"table": "two_factor"
},
{
"nameExplicit": false,
"columns": [
{
"value": "secret",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "two_factor_secret_index",
"entityType": "indexes",
"schema": "public",
"table": "two_factor"
},
{
"nameExplicit": false,
"columns": [
{
"value": "created_at",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "user_created_at_index",
"entityType": "indexes",
"schema": "public",
"table": "user"
},
{
"nameExplicit": false,
"columns": [
{
"value": "identifier",
"isExpression": false,
"asc": true,
"nullsFirst": false,
"opclass": null
}
],
"isUnique": false,
"where": null,
"with": "",
"method": "btree",
"concurrently": false,
"name": "verification_identifier_index",
"entityType": "indexes",
"schema": "public",
"table": "verification"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "account_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "account"
},
{
"nameExplicit": false,
"columns": ["reference_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "apikey_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "apikey"
},
{
"nameExplicit": false,
"columns": ["client_id"],
"schemaTo": "public",
"tableTo": "oauth_client",
"columnsTo": ["client_id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_access_token_client_id_oauth_client_client_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_access_token"
},
{
"nameExplicit": false,
"columns": ["session_id"],
"schemaTo": "public",
"tableTo": "session",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "SET NULL",
"name": "oauth_access_token_session_id_session_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_access_token"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_access_token_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_access_token"
},
{
"nameExplicit": false,
"columns": ["refresh_id"],
"schemaTo": "public",
"tableTo": "oauth_refresh_token",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_access_token_refresh_id_oauth_refresh_token_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_access_token"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_client_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_client"
},
{
"nameExplicit": false,
"columns": ["client_id"],
"schemaTo": "public",
"tableTo": "oauth_client",
"columnsTo": ["client_id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_consent_client_id_oauth_client_client_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_consent"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_consent_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_consent"
},
{
"nameExplicit": false,
"columns": ["client_id"],
"schemaTo": "public",
"tableTo": "oauth_client",
"columnsTo": ["client_id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_refresh_token_client_id_oauth_client_client_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"nameExplicit": false,
"columns": ["session_id"],
"schemaTo": "public",
"tableTo": "session",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "SET NULL",
"name": "oauth_refresh_token_session_id_session_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "oauth_refresh_token_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "oauth_refresh_token"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "passkey_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "passkey"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "resume_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "resume"
},
{
"nameExplicit": false,
"columns": ["resume_id"],
"schemaTo": "public",
"tableTo": "resume",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "resume_statistics_resume_id_resume_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "resume_statistics"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "session_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "session"
},
{
"nameExplicit": false,
"columns": ["user_id"],
"schemaTo": "public",
"tableTo": "user",
"columnsTo": ["id"],
"onUpdate": "NO ACTION",
"onDelete": "CASCADE",
"name": "two_factor_user_id_user_id_fkey",
"entityType": "fks",
"schema": "public",
"table": "two_factor"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "account_pkey",
"schema": "public",
"table": "account",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "apikey_pkey",
"schema": "public",
"table": "apikey",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "jwks_pkey",
"schema": "public",
"table": "jwks",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "oauth_access_token_pkey",
"schema": "public",
"table": "oauth_access_token",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "oauth_client_pkey",
"schema": "public",
"table": "oauth_client",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "oauth_consent_pkey",
"schema": "public",
"table": "oauth_consent",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "oauth_refresh_token_pkey",
"schema": "public",
"table": "oauth_refresh_token",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "passkey_pkey",
"schema": "public",
"table": "passkey",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "resume_pkey",
"schema": "public",
"table": "resume",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "resume_statistics_pkey",
"schema": "public",
"table": "resume_statistics",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "session_pkey",
"schema": "public",
"table": "session",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "two_factor_pkey",
"schema": "public",
"table": "two_factor",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "user_pkey",
"schema": "public",
"table": "user",
"entityType": "pks"
},
{
"columns": ["id"],
"nameExplicit": false,
"name": "verification_pkey",
"schema": "public",
"table": "verification",
"entityType": "pks"
},
{
"nameExplicit": false,
"columns": ["slug", "user_id"],
"nullsNotDistinct": false,
"name": "resume_slug_user_id_unique",
"entityType": "uniques",
"schema": "public",
"table": "resume"
},
{
"nameExplicit": false,
"columns": ["token"],
"nullsNotDistinct": false,
"name": "oauth_access_token_token_key",
"schema": "public",
"table": "oauth_access_token",
"entityType": "uniques"
},
{
"nameExplicit": false,
"columns": ["client_id"],
"nullsNotDistinct": false,
"name": "oauth_client_client_id_key",
"schema": "public",
"table": "oauth_client",
"entityType": "uniques"
},
{
"nameExplicit": false,
"columns": ["resume_id"],
"nullsNotDistinct": false,
"name": "resume_statistics_resume_id_key",
"schema": "public",
"table": "resume_statistics",
"entityType": "uniques"
},
{
"nameExplicit": false,
"columns": ["token"],
"nullsNotDistinct": false,
"name": "session_token_key",
"schema": "public",
"table": "session",
"entityType": "uniques"
},
{
"nameExplicit": false,
"columns": ["email"],
"nullsNotDistinct": false,
"name": "user_email_key",
"schema": "public",
"table": "user",
"entityType": "uniques"
},
{
"nameExplicit": false,
"columns": ["username"],
"nullsNotDistinct": false,
"name": "user_username_key",
"schema": "public",
"table": "user",
"entityType": "uniques"
},
{
"nameExplicit": false,
"columns": ["display_username"],
"nullsNotDistinct": false,
"name": "user_display_username_key",
"schema": "public",
"table": "user",
"entityType": "uniques"
},
{
"nameExplicit": false,
"columns": ["identifier"],
"nullsNotDistinct": false,
"name": "verification_identifier_key",
"schema": "public",
"table": "verification",
"entityType": "uniques"
}
],
"renames": []
}