56 lines
2.0 KiB
SQL
56 lines
2.0 KiB
SQL
CREATE TABLE IF NOT EXISTS workbench_resources (
|
|||
|
|
id varchar(36) NOT NULL,
|
||
|
|
tenant_id bigint NOT NULL,
|
||
|
|
owner_id varchar(36) NOT NULL,
|
||
|
|
owner_name varchar(255) NOT NULL DEFAULT '',
|
||
|
|
kind varchar(40) NOT NULL,
|
||
|
|
name varchar(200) NOT NULL,
|
||
|
|
status varchar(40) NOT NULL DEFAULT 'draft',
|
||
|
|
version integer NOT NULL DEFAULT 1,
|
||
|
|
data jsonb NOT NULL DEFAULT '{}'::jsonb,
|
||
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
||
|
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
||
|
|
PRIMARY KEY (id)
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS wb_resource_scope ON workbench_resources(tenant_id,kind,owner_id);
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_revisions (
|
||
|
|
id varchar(36) PRIMARY KEY,
|
||
|
|
tenant_id bigint NOT NULL,
|
||
|
|
resource_id varchar(36) NOT NULL,
|
||
|
|
version integer NOT NULL,
|
||
|
|
actor_id varchar(36) NOT NULL,
|
||
|
|
data jsonb NOT NULL DEFAULT '{}'::jsonb,
|
||
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
||
|
|
UNIQUE(resource_id,version)
|
||
|
|
);
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_jobs (
|
||
|
|
id varchar(36) PRIMARY KEY,
|
||
|
|
tenant_id bigint NOT NULL,
|
||
|
|
owner_id varchar(36) NOT NULL,
|
||
|
|
resource_id varchar(36) NOT NULL,
|
||
|
|
kind varchar(40) NOT NULL,
|
||
|
|
action varchar(40) NOT NULL,
|
||
|
|
status varchar(20) NOT NULL DEFAULT 'queued',
|
||
|
|
progress integer NOT NULL DEFAULT 0,
|
||
|
|
stage varchar(200) NOT NULL DEFAULT '',
|
||
|
|
error text NOT NULL DEFAULT '',
|
||
|
|
request jsonb NOT NULL DEFAULT '{}'::jsonb,
|
||
|
|
lease_token varchar(36) NOT NULL DEFAULT '',
|
||
|
|
lease_until timestamptz,
|
||
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
||
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS wb_job_queue ON workbench_jobs(status,created_at);
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_events (
|
||
|
|
id varchar(36) PRIMARY KEY,
|
||
|
|
tenant_id bigint NOT NULL,
|
||
|
|
owner_id varchar(36) NOT NULL,
|
||
|
|
resource_id varchar(36) NOT NULL DEFAULT '',
|
||
|
|
action varchar(80) NOT NULL,
|
||
|
|
message text NOT NULL DEFAULT '',
|
||
|
|
level varchar(20) NOT NULL DEFAULT 'info',
|
||
|
|
read boolean NOT NULL DEFAULT false,
|
||
|
|
created_at timestamptz NOT NULL DEFAULT now()
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS wb_event_inbox ON workbench_events(tenant_id,owner_id,read,created_at);
|