Files
Memoh/db/migrations/0022_mcp_probe_and_oauth.up.sql
Acbox Liu 64609c2101 feat: MCP OAuth (#178)
* feat: MCP OAuth

* fix: redirect url and oauth
2026-03-04 00:41:05 +08:00

35 lines
1.5 KiB
SQL

-- 0022_mcp_probe_and_oauth
-- Add probe status fields and auth_type to mcp_connections; create mcp_oauth_tokens table
ALTER TABLE mcp_connections
ADD COLUMN IF NOT EXISTS status TEXT NOT NULL DEFAULT 'unknown',
ADD COLUMN IF NOT EXISTS tools_cache JSONB NOT NULL DEFAULT '[]'::jsonb,
ADD COLUMN IF NOT EXISTS last_probed_at TIMESTAMPTZ,
ADD COLUMN IF NOT EXISTS status_message TEXT NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS auth_type TEXT NOT NULL DEFAULT 'none';
CREATE TABLE IF NOT EXISTS mcp_oauth_tokens (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
connection_id UUID NOT NULL UNIQUE REFERENCES mcp_connections(id) ON DELETE CASCADE,
resource_metadata_url TEXT NOT NULL DEFAULT '',
authorization_server_url TEXT NOT NULL DEFAULT '',
authorization_endpoint TEXT NOT NULL DEFAULT '',
token_endpoint TEXT NOT NULL DEFAULT '',
registration_endpoint TEXT NOT NULL DEFAULT '',
scopes_supported TEXT[] NOT NULL DEFAULT '{}',
client_id TEXT NOT NULL DEFAULT '',
client_secret TEXT NOT NULL DEFAULT '',
access_token TEXT NOT NULL DEFAULT '',
refresh_token TEXT NOT NULL DEFAULT '',
token_type TEXT NOT NULL DEFAULT 'Bearer',
expires_at TIMESTAMPTZ,
scope TEXT NOT NULL DEFAULT '',
pkce_code_verifier TEXT NOT NULL DEFAULT '',
state_param TEXT NOT NULL DEFAULT '',
resource_uri TEXT NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_mcp_oauth_tokens_connection_id ON mcp_oauth_tokens(connection_id);