mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-26 09:54:43 +10:00
b4aaf9712f
* 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>
3050 lines
69 KiB
JSON
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": []
|
|
}
|