dify/knowledge-fs/packages/database/migrations/0031_source_connection_capability_provenance.postgres.sql

29 lines
1.1 KiB
SQL

-- Knowledge Platform schema migration
-- Migration id: 0031_source_connection_capability_provenance
-- Dialect: postgres
-- Integrated source connections persist only the admitted Capability grant locator. The bearer,
-- raw jti, Dify credential, and membership snapshot never cross this persistence boundary.
ALTER TABLE "source_connections"
ADD COLUMN IF NOT EXISTS "capability_grant_id" UUID;
DO $kfs_source_connection_capability_grant_fk$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'source_connections_capability_grant_fk'
AND conrelid = 'source_connections'::regclass
) THEN
ALTER TABLE "source_connections"
ADD CONSTRAINT "source_connections_capability_grant_fk"
FOREIGN KEY ("tenant_id", "knowledge_space_id", "capability_grant_id")
REFERENCES "capability_grants" ("tenant_id", "knowledge_space_id", "grant_id")
ON DELETE RESTRICT;
END IF;
END
$kfs_source_connection_capability_grant_fk$;
CREATE INDEX IF NOT EXISTS "source_connections_capability_grant_idx"
ON "source_connections" ("tenant_id", "knowledge_space_id", "capability_grant_id");