43 lines
2.0 KiB
SQL
43 lines
2.0 KiB
SQL
CREATE TYPE "GiteaAccessMode" AS ENUM ('read_only', 'read_write');
|
|
|
|
CREATE TABLE "GiteaRepositoryLink" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"owner" TEXT NOT NULL,
|
|
"repository" TEXT NOT NULL,
|
|
"defaultBranch" TEXT NOT NULL,
|
|
"accessMode" "GiteaAccessMode" NOT NULL DEFAULT 'read_write',
|
|
"linkedBy" TEXT NOT NULL,
|
|
"lastVerifiedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
CONSTRAINT "GiteaRepositoryLink_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE TABLE "McpAuditEvent" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT,
|
|
"operationId" TEXT NOT NULL,
|
|
"actor" TEXT NOT NULL,
|
|
"toolName" TEXT NOT NULL,
|
|
"repository" TEXT,
|
|
"branch" TEXT,
|
|
"outcome" TEXT NOT NULL,
|
|
"errorCode" TEXT,
|
|
"durationMs" INTEGER NOT NULL,
|
|
"metadataJson" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT "McpAuditEvent_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "GiteaRepositoryLink_projectId_key" ON "GiteaRepositoryLink"("projectId");
|
|
CREATE UNIQUE INDEX "GiteaRepositoryLink_owner_repository_key" ON "GiteaRepositoryLink"("owner", "repository");
|
|
CREATE INDEX "GiteaRepositoryLink_owner_repository_idx" ON "GiteaRepositoryLink"("owner", "repository");
|
|
CREATE UNIQUE INDEX "McpAuditEvent_operationId_key" ON "McpAuditEvent"("operationId");
|
|
CREATE INDEX "McpAuditEvent_projectId_createdAt_idx" ON "McpAuditEvent"("projectId", "createdAt");
|
|
CREATE INDEX "McpAuditEvent_toolName_createdAt_idx" ON "McpAuditEvent"("toolName", "createdAt");
|
|
CREATE INDEX "McpAuditEvent_outcome_createdAt_idx" ON "McpAuditEvent"("outcome", "createdAt");
|
|
|
|
ALTER TABLE "GiteaRepositoryLink" ADD CONSTRAINT "GiteaRepositoryLink_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
ALTER TABLE "McpAuditEvent" ADD CONSTRAINT "McpAuditEvent_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|