This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
CREATE TABLE IF NOT EXISTS "admin_app_permissions" (
|
||||
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
|
||||
"admin_id" UUID NOT NULL,
|
||||
"app_id" UUID NOT NULL,
|
||||
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "admin_app_permissions_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS "admin_app_permissions_admin_id_app_id_key"
|
||||
ON "admin_app_permissions"("admin_id", "app_id");
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "admin_app_permissions_app_id_idx"
|
||||
ON "admin_app_permissions"("app_id");
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint WHERE conname = 'admin_app_permissions_admin_id_fkey'
|
||||
) THEN
|
||||
ALTER TABLE "admin_app_permissions"
|
||||
ADD CONSTRAINT "admin_app_permissions_admin_id_fkey"
|
||||
FOREIGN KEY ("admin_id") REFERENCES "admins"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint WHERE conname = 'admin_app_permissions_app_id_fkey'
|
||||
) THEN
|
||||
ALTER TABLE "admin_app_permissions"
|
||||
ADD CONSTRAINT "admin_app_permissions_app_id_fkey"
|
||||
FOREIGN KEY ("app_id") REFERENCES "apps"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
@@ -74,11 +74,25 @@ model Admin {
|
||||
sessions AdminSession[]
|
||||
auditLogs AdminAuditLog[]
|
||||
sshKeys AdminSshKey[]
|
||||
appPermissions AdminAppPermission[]
|
||||
|
||||
@@index([isActive, role])
|
||||
@@map("admins")
|
||||
}
|
||||
|
||||
model AdminAppPermission {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
adminId String @map("admin_id") @db.Uuid
|
||||
appId String @map("app_id") @db.Uuid
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
admin Admin @relation(fields: [adminId], references: [id], onDelete: Cascade)
|
||||
app App @relation(fields: [appId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([adminId, appId])
|
||||
@@index([appId])
|
||||
@@map("admin_app_permissions")
|
||||
}
|
||||
|
||||
model AdminSshKey {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
adminId String @map("admin_id") @db.Uuid
|
||||
@@ -142,6 +156,7 @@ model App {
|
||||
releases AppRelease[]
|
||||
deployments DeploymentJob[]
|
||||
runtimeProfiles RuntimeEnvProfile[]
|
||||
adminPermissions AdminAppPermission[]
|
||||
|
||||
@@map("apps")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user