Initial curated projectbrain source from 8a7b1e0651dbdab97d744cbd2e653ab3970ac6c5
This commit is contained in:
commit
5aa3e8d685
700 files changed
+132801
No files matched your search
+164
@@ -0,0 +1,164 @@
|
||||
-- Durable cross-domain work graph, completion contract, saved views and diagnostics.
|
||||
-- Existing domain records remain authoritative for their domain; these tables provide
|
||||
-- the shared operating-system projection and its durable dependency/audit edges.
|
||||
|
||||
CREATE TABLE "WorkGraphNode" (
|
||||
"id" TEXT NOT NULL,
|
||||
"projectId" TEXT NOT NULL,
|
||||
"stableKey" TEXT NOT NULL,
|
||||
"source" TEXT NOT NULL,
|
||||
"sourceId" TEXT NOT NULL,
|
||||
"type" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"canonicalLifecycle" TEXT NOT NULL DEFAULT 'ready',
|
||||
"domainLifecycle" TEXT NOT NULL DEFAULT 'pending',
|
||||
"scope" TEXT NOT NULL DEFAULT 'committed',
|
||||
"priority" INTEGER NOT NULL DEFAULT 50,
|
||||
"phase" TEXT,
|
||||
"risk" TEXT NOT NULL DEFAULT 'normal',
|
||||
"blockingStatus" TEXT NOT NULL DEFAULT 'open',
|
||||
"executionEligibility" TEXT NOT NULL DEFAULT 'blocked',
|
||||
"blockReason" TEXT,
|
||||
"owner" TEXT,
|
||||
"leaseToken" TEXT,
|
||||
"leaseExpiresAt" TIMESTAMP(3),
|
||||
"attemptCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"consecutiveFailureCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"recoveryStartedAt" TIMESTAMP(3),
|
||||
"lastMeaningfulProgressAt" TIMESTAMP(3),
|
||||
"completionEvidenceJson" JSONB,
|
||||
"metadataJson" JSONB,
|
||||
"supersededById" TEXT,
|
||||
"completedAt" TIMESTAMP(3),
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
CONSTRAINT "WorkGraphNode_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE "WorkGraphDependency" (
|
||||
"id" TEXT NOT NULL,
|
||||
"projectId" TEXT NOT NULL,
|
||||
"nodeId" TEXT NOT NULL,
|
||||
"dependsOnNodeId" TEXT NOT NULL,
|
||||
"dependencyType" TEXT NOT NULL DEFAULT 'blocks',
|
||||
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "WorkGraphDependency_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE "WorkGraphAuditEvent" (
|
||||
"id" TEXT NOT NULL,
|
||||
"projectId" TEXT NOT NULL,
|
||||
"nodeId" TEXT,
|
||||
"eventType" TEXT NOT NULL,
|
||||
"actor" TEXT NOT NULL,
|
||||
"summary" TEXT NOT NULL,
|
||||
"payloadJson" JSONB,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "WorkGraphAuditEvent_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE "WorkGraphEvidence" (
|
||||
"id" TEXT NOT NULL,
|
||||
"projectId" TEXT NOT NULL,
|
||||
"nodeId" TEXT NOT NULL,
|
||||
"kind" TEXT NOT NULL,
|
||||
"referenceType" TEXT NOT NULL,
|
||||
"referenceId" TEXT NOT NULL,
|
||||
"status" TEXT NOT NULL DEFAULT 'observed',
|
||||
"summary" TEXT NOT NULL,
|
||||
"metadataJson" JSONB,
|
||||
"verifiedAt" TIMESTAMP(3),
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "WorkGraphEvidence_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE "ProjectDefinitionOfDone" (
|
||||
"id" TEXT NOT NULL,
|
||||
"projectId" TEXT NOT NULL,
|
||||
"requirementsJson" JSONB NOT NULL,
|
||||
"scopePolicyJson" JSONB NOT NULL,
|
||||
"status" TEXT NOT NULL DEFAULT 'incomplete',
|
||||
"satisfiedCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"requirementCount" INTEGER NOT NULL DEFAULT 0,
|
||||
"lastEvaluatedAt" TIMESTAMP(3),
|
||||
"lastEvidenceAt" TIMESTAMP(3),
|
||||
"evaluationJson" JSONB,
|
||||
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
||||
"updatedBy" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
CONSTRAINT "ProjectDefinitionOfDone_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE "ProjectSavedView" (
|
||||
"id" TEXT NOT NULL,
|
||||
"ownerKey" TEXT NOT NULL,
|
||||
"projectId" TEXT,
|
||||
"name" TEXT NOT NULL,
|
||||
"scope" TEXT NOT NULL DEFAULT 'portfolio',
|
||||
"filtersJson" JSONB NOT NULL,
|
||||
"isPinned" BOOLEAN NOT NULL DEFAULT false,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
CONSTRAINT "ProjectSavedView_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE "DiagnosticRun" (
|
||||
"id" TEXT NOT NULL,
|
||||
"projectId" TEXT,
|
||||
"scope" TEXT NOT NULL DEFAULT 'platform',
|
||||
"status" TEXT NOT NULL DEFAULT 'running',
|
||||
"summary" TEXT,
|
||||
"checksJson" JSONB NOT NULL,
|
||||
"repairPlanJson" JSONB,
|
||||
"startedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"completedAt" TIMESTAMP(3),
|
||||
"createdBy" TEXT NOT NULL DEFAULT 'system',
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "DiagnosticRun_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX "WorkGraphNode_projectId_stableKey_key" ON "WorkGraphNode"("projectId", "stableKey");
|
||||
CREATE UNIQUE INDEX "WorkGraphNode_projectId_source_sourceId_key" ON "WorkGraphNode"("projectId", "source", "sourceId");
|
||||
CREATE INDEX "WorkGraphNode_projectId_executionEligibility_priority_idx" ON "WorkGraphNode"("projectId", "executionEligibility", "priority");
|
||||
CREATE INDEX "WorkGraphNode_projectId_canonicalLifecycle_idx" ON "WorkGraphNode"("projectId", "canonicalLifecycle");
|
||||
CREATE INDEX "WorkGraphNode_projectId_scope_idx" ON "WorkGraphNode"("projectId", "scope");
|
||||
CREATE INDEX "WorkGraphNode_projectId_leaseExpiresAt_idx" ON "WorkGraphNode"("projectId", "leaseExpiresAt");
|
||||
CREATE INDEX "WorkGraphNode_projectId_updatedAt_idx" ON "WorkGraphNode"("projectId", "updatedAt");
|
||||
CREATE INDEX "WorkGraphNode_projectId_supersededById_idx" ON "WorkGraphNode"("projectId", "supersededById");
|
||||
|
||||
CREATE UNIQUE INDEX "WorkGraphDependency_nodeId_dependsOnNodeId_key" ON "WorkGraphDependency"("nodeId", "dependsOnNodeId");
|
||||
CREATE INDEX "WorkGraphDependency_projectId_nodeId_idx" ON "WorkGraphDependency"("projectId", "nodeId");
|
||||
CREATE INDEX "WorkGraphDependency_projectId_dependsOnNodeId_idx" ON "WorkGraphDependency"("projectId", "dependsOnNodeId");
|
||||
|
||||
CREATE INDEX "WorkGraphAuditEvent_projectId_createdAt_idx" ON "WorkGraphAuditEvent"("projectId", "createdAt");
|
||||
CREATE INDEX "WorkGraphAuditEvent_projectId_nodeId_createdAt_idx" ON "WorkGraphAuditEvent"("projectId", "nodeId", "createdAt");
|
||||
CREATE INDEX "WorkGraphAuditEvent_projectId_eventType_idx" ON "WorkGraphAuditEvent"("projectId", "eventType");
|
||||
|
||||
CREATE UNIQUE INDEX "WorkGraphEvidence_nodeId_kind_referenceType_referenceId_key" ON "WorkGraphEvidence"("nodeId", "kind", "referenceType", "referenceId");
|
||||
CREATE INDEX "WorkGraphEvidence_projectId_nodeId_idx" ON "WorkGraphEvidence"("projectId", "nodeId");
|
||||
CREATE INDEX "WorkGraphEvidence_projectId_status_idx" ON "WorkGraphEvidence"("projectId", "status");
|
||||
|
||||
CREATE UNIQUE INDEX "ProjectDefinitionOfDone_projectId_key" ON "ProjectDefinitionOfDone"("projectId");
|
||||
CREATE INDEX "ProjectDefinitionOfDone_status_lastEvaluatedAt_idx" ON "ProjectDefinitionOfDone"("status", "lastEvaluatedAt");
|
||||
|
||||
CREATE UNIQUE INDEX "ProjectSavedView_ownerKey_scope_name_key" ON "ProjectSavedView"("ownerKey", "scope", "name");
|
||||
CREATE INDEX "ProjectSavedView_ownerKey_scope_updatedAt_idx" ON "ProjectSavedView"("ownerKey", "scope", "updatedAt");
|
||||
CREATE INDEX "ProjectSavedView_projectId_updatedAt_idx" ON "ProjectSavedView"("projectId", "updatedAt");
|
||||
|
||||
CREATE INDEX "DiagnosticRun_projectId_createdAt_idx" ON "DiagnosticRun"("projectId", "createdAt");
|
||||
CREATE INDEX "DiagnosticRun_scope_status_createdAt_idx" ON "DiagnosticRun"("scope", "status", "createdAt");
|
||||
|
||||
ALTER TABLE "WorkGraphNode" ADD CONSTRAINT "WorkGraphNode_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphNode" ADD CONSTRAINT "WorkGraphNode_supersededById_fkey" FOREIGN KEY ("supersededById") REFERENCES "WorkGraphNode"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphDependency" ADD CONSTRAINT "WorkGraphDependency_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphDependency" ADD CONSTRAINT "WorkGraphDependency_nodeId_fkey" FOREIGN KEY ("nodeId") REFERENCES "WorkGraphNode"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphDependency" ADD CONSTRAINT "WorkGraphDependency_dependsOnNodeId_fkey" FOREIGN KEY ("dependsOnNodeId") REFERENCES "WorkGraphNode"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphAuditEvent" ADD CONSTRAINT "WorkGraphAuditEvent_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphAuditEvent" ADD CONSTRAINT "WorkGraphAuditEvent_nodeId_fkey" FOREIGN KEY ("nodeId") REFERENCES "WorkGraphNode"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphEvidence" ADD CONSTRAINT "WorkGraphEvidence_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "WorkGraphEvidence" ADD CONSTRAINT "WorkGraphEvidence_nodeId_fkey" FOREIGN KEY ("nodeId") REFERENCES "WorkGraphNode"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "ProjectDefinitionOfDone" ADD CONSTRAINT "ProjectDefinitionOfDone_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "ProjectSavedView" ADD CONSTRAINT "ProjectSavedView_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "DiagnosticRun" ADD CONSTRAINT "DiagnosticRun_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
Reference in new issue
Block a user