fix(database): add composite unique constraints for workspace isolation

This commit is contained in:
Jason Woltje
2026-01-29 20:06:45 -06:00
parent 9977d9bcf4
commit 715481fbbb

View File

@@ -267,6 +267,7 @@ model Task {
subtasks Task[] @relation("TaskSubtasks")
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
@@unique([id, workspaceId])
@@index([workspaceId])
@@index([workspaceId, status])
@@index([workspaceId, dueDate])
@@ -300,6 +301,7 @@ model Event {
project Project? @relation(fields: [projectId], references: [id], onDelete: SetNull)
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
@@unique([id, workspaceId])
@@index([workspaceId])
@@index([workspaceId, startTime])
@@index([creatorId])
@@ -331,6 +333,7 @@ model Project {
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
ideas Idea[]
@@unique([id, workspaceId])
@@index([workspaceId])
@@index([workspaceId, status])
@@index([creatorId])
@@ -354,6 +357,7 @@ model ActivityLog {
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@unique([id, workspaceId])
@@index([workspaceId])
@@index([workspaceId, createdAt])
@@index([entityType, entityId])
@@ -408,6 +412,7 @@ model Domain {
projects Project[]
ideas Idea[]
@@unique([id, workspaceId])
@@unique([workspaceId, slug])
@@index([workspaceId])
@@map("domains")
@@ -447,6 +452,7 @@ model Idea {
project Project? @relation(fields: [projectId], references: [id], onDelete: SetNull)
creator User @relation("IdeaCreator", fields: [creatorId], references: [id], onDelete: Cascade)
@@unique([id, workspaceId])
@@index([workspaceId])
@@index([workspaceId, status])
@@index([domainId])
@@ -612,6 +618,7 @@ model UserLayout {
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@unique([id, workspaceId])
@@unique([workspaceId, userId, name])
@@index([userId])
@@map("user_layouts")