admin appPermissions
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-07-09 09:07:03 +09:00
parent beb9dda8c6
commit eb79bddcc0
6 changed files with 127 additions and 2 deletions
@@ -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 $$;
+15
View File
@@ -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")
}