Files
xinmi/migrations/versioned/000064_principal_model.up.sql
T
yawan f7fc992f57
Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
WeKnora deployment source with the reviewed wiki identity, summary and recovery fixes
2026-09-22 16:19:06 +08:00

47 lines
1.7 KiB
SQL

-- Migration: 000064_principal_model
-- Description: Principal-based identity for MCP OAuth, tenant API config, and session ownership.
DO $$ BEGIN RAISE NOTICE '[Migration 000064] Adding principal columns to MCP OAuth tokens...'; END $$;
ALTER TABLE mcp_oauth_tokens
ADD COLUMN IF NOT EXISTS principal_type VARCHAR(32),
ADD COLUMN IF NOT EXISTS principal_id VARCHAR(512);
ALTER TABLE mcp_oauth_tokens
ALTER COLUMN user_id TYPE VARCHAR(512);
UPDATE mcp_oauth_tokens
SET principal_type = 'web_user',
principal_id = user_id
WHERE (principal_type IS NULL OR principal_type = '')
AND user_id IS NOT NULL
AND user_id <> '';
ALTER TABLE mcp_oauth_tokens
ALTER COLUMN principal_type SET NOT NULL,
ALTER COLUMN principal_id SET NOT NULL;
DROP INDEX IF EXISTS idx_mcp_oauth_tokens_tenant_user_svc;
CREATE UNIQUE INDEX IF NOT EXISTS idx_mcp_oauth_tokens_tenant_principal_svc
ON mcp_oauth_tokens(tenant_id, principal_type, principal_id, service_id);
CREATE INDEX IF NOT EXISTS idx_mcp_oauth_tokens_principal
ON mcp_oauth_tokens(principal_type, principal_id);
DO $$ BEGIN RAISE NOTICE '[Migration 000064] MCP OAuth principal columns ready'; END $$;
DO $$ BEGIN RAISE NOTICE '[Migration 000064] Adding tenant API principal config...'; END $$;
ALTER TABLE tenants
ADD COLUMN IF NOT EXISTS api_principal_config JSONB;
DO $$ BEGIN RAISE NOTICE '[Migration 000064] tenant API principal config ready'; END $$;
DO $$ BEGIN RAISE NOTICE '[Migration 000064] Widening sessions.user_id to VARCHAR(512)'; END $$;
ALTER TABLE sessions
ALTER COLUMN user_id TYPE VARCHAR(512);
DO $$ BEGIN RAISE NOTICE '[Migration 000064] principal model migration complete'; END $$;