21 lines
1.2 KiB
SQL
21 lines
1.2 KiB
SQL
CREATE TABLE IF NOT EXISTS workbench_access_roles (
|
|||
|
|
id varchar(36) PRIMARY KEY, tenant_id bigint NOT NULL, name varchar(100) NOT NULL,
|
||
|
|
description text NOT NULL DEFAULT '', permissions jsonb NOT NULL DEFAULT '[]',
|
||
|
|
version integer NOT NULL DEFAULT 1, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(),
|
||
|
|
UNIQUE (tenant_id, name)
|
||
|
|
);
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_access_assignments (
|
||
|
|
tenant_id bigint NOT NULL, user_id varchar(36) NOT NULL, role_id varchar(36) NOT NULL REFERENCES workbench_access_roles(id),
|
||
|
|
PRIMARY KEY (tenant_id, user_id)
|
||
|
|
);
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_access_publications (
|
||
|
|
tenant_id bigint NOT NULL, kind varchar(32) NOT NULL, resource_id varchar(64) NOT NULL,
|
||
|
|
global boolean NOT NULL DEFAULT false, updated_at timestamptz NOT NULL DEFAULT now(),
|
||
|
|
PRIMARY KEY (tenant_id, kind, resource_id)
|
||
|
|
);
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_access_grants (
|
||
|
|
tenant_id bigint NOT NULL, kind varchar(32) NOT NULL, resource_id varchar(64) NOT NULL, user_id varchar(36) NOT NULL,
|
||
|
|
updated_at timestamptz NOT NULL DEFAULT now(), PRIMARY KEY (tenant_id, kind, resource_id, user_id)
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS workbench_access_grants_user ON workbench_access_grants(tenant_id,user_id);
|