mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
39 lines
1.3 KiB
SQL
39 lines
1.3 KiB
SQL
-- 0062_github_copilot_user_oauth
|
|
-- Add github-copilot as a provider client type and store OAuth tokens per user.
|
|
|
|
ALTER TABLE IF EXISTS providers DROP CONSTRAINT IF EXISTS providers_client_type_check;
|
|
|
|
ALTER TABLE IF EXISTS providers
|
|
ADD CONSTRAINT providers_client_type_check CHECK (
|
|
client_type IN (
|
|
'openai-responses',
|
|
'openai-completions',
|
|
'anthropic-messages',
|
|
'google-generative-ai',
|
|
'openai-codex',
|
|
'github-copilot',
|
|
'edge-speech'
|
|
)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS user_provider_oauth_tokens (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
provider_id UUID NOT NULL REFERENCES providers(id) ON DELETE CASCADE,
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
access_token TEXT NOT NULL DEFAULT '',
|
|
refresh_token TEXT NOT NULL DEFAULT '',
|
|
expires_at TIMESTAMPTZ,
|
|
scope TEXT NOT NULL DEFAULT '',
|
|
token_type TEXT NOT NULL DEFAULT '',
|
|
state TEXT NOT NULL DEFAULT '',
|
|
pkce_code_verifier TEXT NOT NULL DEFAULT '',
|
|
metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
CONSTRAINT user_provider_oauth_tokens_provider_user_unique UNIQUE (provider_id, user_id)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_user_provider_oauth_tokens_state
|
|
ON user_provider_oauth_tokens(state)
|
|
WHERE state != '';
|