61 lines
2.4 KiB
SQL
61 lines
2.4 KiB
SQL
-- SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
|
|
create table "tenancy_roles" (
|
|
"id" uuid primary key,
|
|
"version" integer not null,
|
|
"created_at" timestamptz not null,
|
|
"updated_at" timestamptz not null,
|
|
"org_id" uuid not null,
|
|
"key" text not null,
|
|
"name" text not null,
|
|
"level" text not null,
|
|
"permissions" jsonb not null,
|
|
"known_permissions" jsonb not null,
|
|
"created_by" uuid,
|
|
"revision" integer not null
|
|
);
|
|
|
|
alter table "tenancy_roles" add constraint "tenancy_roles_org_id_key_key" unique nulls not distinct ("org_id", "key");
|
|
|
|
create table "project_memberships" (
|
|
"id" uuid primary key,
|
|
"version" integer not null,
|
|
"created_at" timestamptz not null,
|
|
"updated_at" timestamptz not null,
|
|
"org_id" uuid not null,
|
|
"project_id" uuid not null,
|
|
"user_id" uuid not null,
|
|
"role_key" text not null
|
|
);
|
|
|
|
alter table "project_memberships" add constraint "project_memberships_org_id_project_id_user_id_key" unique nulls not distinct ("org_id", "project_id", "user_id");
|
|
|
|
create index "project_memberships_org_id_user_id_idx" on "project_memberships" ("org_id", "user_id");
|
|
|
|
create index "project_memberships_org_id_role_key_idx" on "project_memberships" ("org_id", "role_key");
|
|
|
|
alter table "org_memberships" add column "role_key" text;
|
|
|
|
alter table "workspace_memberships" add column "role_key" text;
|
|
|
|
alter table "invitations" add column "role_key" text;
|
|
|
|
alter table "projects" add column "visibility" text;
|
|
|
|
create index "org_memberships_org_id_role_key_idx" on "org_memberships" ("org_id", "role_key");
|
|
|
|
create index "workspace_memberships_org_id_role_key_idx" on "workspace_memberships" ("org_id", "role_key");
|
|
|
|
create index "invitations_org_id_role_key_idx" on "invitations" ("org_id", "role_key");
|
|
|
|
alter table "tenancy_roles" enable row level security;
|
|
|
|
alter table "tenancy_roles" force row level security;
|
|
|
|
create policy "tenancy_roles_tenant" on "tenancy_roles" using ("org_id" = nullif(current_setting('app.org_id', true), '')::uuid) with check ("org_id" = nullif(current_setting('app.org_id', true), '')::uuid);
|
|
|
|
alter table "project_memberships" enable row level security;
|
|
|
|
alter table "project_memberships" force row level security;
|
|
|
|
create policy "project_memberships_tenant" on "project_memberships" using ("org_id" = nullif(current_setting('app.org_id', true), '')::uuid) with check ("org_id" = nullif(current_setting('app.org_id', true), '')::uuid);
|