2022-01-05 15:20:56 +00:00
|
|
|
-- Code generated by 'make database/generate'. DO NOT EDIT.
|
|
|
|
|
2022-01-25 19:52:58 +00:00
|
|
|
CREATE TYPE log_level AS ENUM (
|
|
|
|
'trace',
|
|
|
|
'debug',
|
|
|
|
'info',
|
|
|
|
'warn',
|
2022-02-01 05:36:15 +00:00
|
|
|
'error'
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TYPE log_source AS ENUM (
|
|
|
|
'provisioner_daemon',
|
|
|
|
'provisioner'
|
2022-01-25 19:52:58 +00:00
|
|
|
);
|
|
|
|
|
2022-01-12 18:04:11 +00:00
|
|
|
CREATE TYPE login_type AS ENUM (
|
|
|
|
'built-in',
|
|
|
|
'saml',
|
|
|
|
'oidc'
|
|
|
|
);
|
|
|
|
|
2022-01-29 23:38:32 +00:00
|
|
|
CREATE TYPE parameter_destination_scheme AS ENUM (
|
2022-02-04 19:36:43 +00:00
|
|
|
'none',
|
2022-01-29 23:38:32 +00:00
|
|
|
'environment_variable',
|
|
|
|
'provisioner_variable'
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TYPE parameter_scope AS ENUM (
|
|
|
|
'organization',
|
|
|
|
'project',
|
|
|
|
'user',
|
|
|
|
'workspace'
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TYPE parameter_source_scheme AS ENUM (
|
2022-02-04 19:36:43 +00:00
|
|
|
'none',
|
2022-01-29 23:38:32 +00:00
|
|
|
'data'
|
|
|
|
);
|
|
|
|
|
2022-01-24 17:07:42 +00:00
|
|
|
CREATE TYPE parameter_type_system AS ENUM (
|
2022-02-04 19:36:43 +00:00
|
|
|
'none',
|
2022-01-24 17:07:42 +00:00
|
|
|
'hcl'
|
|
|
|
);
|
|
|
|
|
2022-01-29 23:38:32 +00:00
|
|
|
CREATE TYPE provisioner_job_type AS ENUM (
|
2022-02-08 18:00:44 +00:00
|
|
|
'project_version_import',
|
2022-01-29 23:38:32 +00:00
|
|
|
'workspace_provision'
|
|
|
|
);
|
|
|
|
|
2022-02-08 18:00:44 +00:00
|
|
|
CREATE TYPE provisioner_storage_method AS ENUM (
|
|
|
|
'file'
|
|
|
|
);
|
|
|
|
|
2022-01-24 17:07:42 +00:00
|
|
|
CREATE TYPE provisioner_type AS ENUM (
|
2022-02-04 22:51:54 +00:00
|
|
|
'echo',
|
|
|
|
'terraform'
|
2022-01-24 17:07:42 +00:00
|
|
|
);
|
|
|
|
|
2022-01-12 18:04:11 +00:00
|
|
|
CREATE TYPE userstatus AS ENUM (
|
|
|
|
'active',
|
|
|
|
'dormant',
|
|
|
|
'decommissioned'
|
|
|
|
);
|
|
|
|
|
2022-01-25 19:52:58 +00:00
|
|
|
CREATE TYPE workspace_transition AS ENUM (
|
|
|
|
'start',
|
|
|
|
'stop',
|
|
|
|
'delete'
|
|
|
|
);
|
|
|
|
|
2022-01-12 18:04:11 +00:00
|
|
|
CREATE TABLE api_keys (
|
|
|
|
id text NOT NULL,
|
|
|
|
hashed_secret bytea NOT NULL,
|
|
|
|
user_id text NOT NULL,
|
|
|
|
application boolean NOT NULL,
|
|
|
|
name text NOT NULL,
|
|
|
|
last_used timestamp with time zone NOT NULL,
|
|
|
|
expires_at timestamp with time zone NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
login_type login_type NOT NULL,
|
|
|
|
oidc_access_token text DEFAULT ''::text NOT NULL,
|
|
|
|
oidc_refresh_token text DEFAULT ''::text NOT NULL,
|
|
|
|
oidc_id_token text DEFAULT ''::text NOT NULL,
|
|
|
|
oidc_expiry timestamp with time zone DEFAULT '0001-01-01 00:00:00+00'::timestamp with time zone NOT NULL,
|
|
|
|
devurl_token boolean DEFAULT false NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-02-07 21:32:37 +00:00
|
|
|
CREATE TABLE file (
|
|
|
|
hash character varying(32) NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
2022-02-08 18:00:44 +00:00
|
|
|
created_by text NOT NULL,
|
2022-02-07 21:32:37 +00:00
|
|
|
mimetype character varying(64) NOT NULL,
|
|
|
|
data bytea NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-01-12 18:04:11 +00:00
|
|
|
CREATE TABLE licenses (
|
|
|
|
id integer NOT NULL,
|
|
|
|
license jsonb NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE organization_members (
|
|
|
|
organization_id text NOT NULL,
|
|
|
|
user_id text NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
roles text[] DEFAULT '{organization-member}'::text[] NOT NULL
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE organizations (
|
|
|
|
id text NOT NULL,
|
|
|
|
name text NOT NULL,
|
|
|
|
description text NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
"default" boolean DEFAULT false NOT NULL,
|
|
|
|
auto_off_threshold bigint DEFAULT '28800000000000'::bigint NOT NULL,
|
|
|
|
cpu_provisioning_rate real DEFAULT 4.0 NOT NULL,
|
|
|
|
memory_provisioning_rate real DEFAULT 1.0 NOT NULL,
|
|
|
|
workspace_auto_off boolean DEFAULT false NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-02-08 18:00:44 +00:00
|
|
|
CREATE TABLE parameter_schema (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
job_id uuid NOT NULL,
|
|
|
|
name character varying(64) NOT NULL,
|
|
|
|
description character varying(8192) DEFAULT ''::character varying NOT NULL,
|
|
|
|
default_source_scheme parameter_source_scheme,
|
|
|
|
default_source_value text,
|
|
|
|
allow_override_source boolean NOT NULL,
|
|
|
|
default_destination_scheme parameter_destination_scheme,
|
|
|
|
default_destination_value text,
|
|
|
|
allow_override_destination boolean NOT NULL,
|
|
|
|
default_refresh text NOT NULL,
|
|
|
|
redisplay_value boolean NOT NULL,
|
|
|
|
validation_error character varying(256) NOT NULL,
|
|
|
|
validation_condition character varying(512) NOT NULL,
|
|
|
|
validation_type_system parameter_type_system NOT NULL,
|
|
|
|
validation_value_type character varying(64) NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-01-29 23:38:32 +00:00
|
|
|
CREATE TABLE parameter_value (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
name character varying(64) NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
scope parameter_scope NOT NULL,
|
|
|
|
scope_id text NOT NULL,
|
|
|
|
source_scheme parameter_source_scheme NOT NULL,
|
|
|
|
source_value text NOT NULL,
|
|
|
|
destination_scheme parameter_destination_scheme NOT NULL,
|
|
|
|
destination_value text NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-01-24 17:07:42 +00:00
|
|
|
CREATE TABLE project (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
organization_id text NOT NULL,
|
|
|
|
name character varying(64) NOT NULL,
|
|
|
|
provisioner provisioner_type NOT NULL,
|
2022-02-08 18:00:44 +00:00
|
|
|
active_version_id uuid NOT NULL
|
2022-01-24 17:07:42 +00:00
|
|
|
);
|
|
|
|
|
2022-02-07 21:40:08 +00:00
|
|
|
CREATE TABLE project_version (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
project_id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
name character varying(64) NOT NULL,
|
|
|
|
description character varying(1048576) NOT NULL,
|
|
|
|
import_job_id uuid NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-01-29 23:38:32 +00:00
|
|
|
CREATE TABLE provisioner_daemon (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone,
|
|
|
|
name character varying(64) NOT NULL,
|
|
|
|
provisioners provisioner_type[] NOT NULL
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE provisioner_job (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
started_at timestamp with time zone,
|
|
|
|
cancelled_at timestamp with time zone,
|
|
|
|
completed_at timestamp with time zone,
|
|
|
|
error text,
|
2022-02-08 18:00:44 +00:00
|
|
|
organization_id text NOT NULL,
|
2022-01-29 23:38:32 +00:00
|
|
|
initiator_id text NOT NULL,
|
|
|
|
provisioner provisioner_type NOT NULL,
|
2022-02-08 18:00:44 +00:00
|
|
|
storage_method provisioner_storage_method NOT NULL,
|
|
|
|
storage_source text NOT NULL,
|
2022-01-29 23:38:32 +00:00
|
|
|
type provisioner_job_type NOT NULL,
|
|
|
|
input jsonb NOT NULL,
|
|
|
|
worker_id uuid
|
|
|
|
);
|
|
|
|
|
2022-02-07 21:32:37 +00:00
|
|
|
CREATE TABLE provisioner_job_log (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
job_id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
source log_source NOT NULL,
|
|
|
|
level log_level NOT NULL,
|
|
|
|
output character varying(1024) NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-01-12 18:04:11 +00:00
|
|
|
CREATE TABLE users (
|
|
|
|
id text NOT NULL,
|
|
|
|
email text NOT NULL,
|
|
|
|
name text NOT NULL,
|
|
|
|
revoked boolean NOT NULL,
|
|
|
|
login_type login_type NOT NULL,
|
|
|
|
hashed_password bytea NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
temporary_password boolean DEFAULT false NOT NULL,
|
|
|
|
avatar_hash text DEFAULT ''::text NOT NULL,
|
|
|
|
ssh_key_regenerated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
|
|
username text DEFAULT ''::text NOT NULL,
|
|
|
|
dotfiles_git_uri text DEFAULT ''::text NOT NULL,
|
|
|
|
roles text[] DEFAULT '{site-member}'::text[] NOT NULL,
|
|
|
|
status userstatus DEFAULT 'active'::public.userstatus NOT NULL,
|
|
|
|
relatime timestamp with time zone DEFAULT now() NOT NULL,
|
|
|
|
gpg_key_regenerated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
|
|
_decomissioned boolean DEFAULT false NOT NULL,
|
|
|
|
shell text DEFAULT ''::text NOT NULL
|
|
|
|
);
|
|
|
|
|
2022-01-25 19:52:58 +00:00
|
|
|
CREATE TABLE workspace (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
owner_id text NOT NULL,
|
|
|
|
project_id uuid NOT NULL,
|
|
|
|
name character varying(64) NOT NULL
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE workspace_agent (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
workspace_resource_id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
instance_metadata jsonb NOT NULL,
|
|
|
|
resource_metadata jsonb NOT NULL
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE workspace_history (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
updated_at timestamp with time zone NOT NULL,
|
|
|
|
workspace_id uuid NOT NULL,
|
2022-02-05 02:47:58 +00:00
|
|
|
project_version_id uuid NOT NULL,
|
2022-02-01 05:36:15 +00:00
|
|
|
name character varying(64) NOT NULL,
|
2022-01-25 19:52:58 +00:00
|
|
|
before_id uuid,
|
|
|
|
after_id uuid,
|
|
|
|
transition workspace_transition NOT NULL,
|
|
|
|
initiator character varying(255) NOT NULL,
|
|
|
|
provisioner_state bytea,
|
|
|
|
provision_job_id uuid NOT NULL
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE workspace_resource (
|
|
|
|
id uuid NOT NULL,
|
|
|
|
created_at timestamp with time zone NOT NULL,
|
|
|
|
workspace_history_id uuid NOT NULL,
|
|
|
|
type character varying(256) NOT NULL,
|
|
|
|
name character varying(64) NOT NULL,
|
|
|
|
workspace_agent_token character varying(128) NOT NULL,
|
|
|
|
workspace_agent_id uuid
|
|
|
|
);
|
|
|
|
|
2022-02-07 21:32:37 +00:00
|
|
|
ALTER TABLE ONLY file
|
|
|
|
ADD CONSTRAINT file_hash_key UNIQUE (hash);
|
|
|
|
|
2022-02-08 18:00:44 +00:00
|
|
|
ALTER TABLE ONLY parameter_schema
|
|
|
|
ADD CONSTRAINT parameter_schema_id_key UNIQUE (id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY parameter_schema
|
|
|
|
ADD CONSTRAINT parameter_schema_job_id_name_key UNIQUE (job_id, name);
|
|
|
|
|
2022-01-29 23:38:32 +00:00
|
|
|
ALTER TABLE ONLY parameter_value
|
|
|
|
ADD CONSTRAINT parameter_value_id_key UNIQUE (id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY parameter_value
|
|
|
|
ADD CONSTRAINT parameter_value_name_scope_scope_id_key UNIQUE (name, scope, scope_id);
|
|
|
|
|
2022-01-24 17:07:42 +00:00
|
|
|
ALTER TABLE ONLY project
|
|
|
|
ADD CONSTRAINT project_id_key UNIQUE (id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY project
|
|
|
|
ADD CONSTRAINT project_organization_id_name_key UNIQUE (organization_id, name);
|
|
|
|
|
2022-02-06 00:24:51 +00:00
|
|
|
ALTER TABLE ONLY project_version
|
|
|
|
ADD CONSTRAINT project_version_id_key UNIQUE (id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY project_version
|
|
|
|
ADD CONSTRAINT project_version_project_id_name_key UNIQUE (project_id, name);
|
|
|
|
|
2022-01-29 23:38:32 +00:00
|
|
|
ALTER TABLE ONLY provisioner_daemon
|
|
|
|
ADD CONSTRAINT provisioner_daemon_id_key UNIQUE (id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY provisioner_daemon
|
|
|
|
ADD CONSTRAINT provisioner_daemon_name_key UNIQUE (name);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY provisioner_job
|
|
|
|
ADD CONSTRAINT provisioner_job_id_key UNIQUE (id);
|
|
|
|
|
2022-02-07 21:32:37 +00:00
|
|
|
ALTER TABLE ONLY provisioner_job_log
|
|
|
|
ADD CONSTRAINT provisioner_job_log_id_key UNIQUE (id);
|
|
|
|
|
2022-01-25 19:52:58 +00:00
|
|
|
ALTER TABLE ONLY workspace_agent
|
|
|
|
ADD CONSTRAINT workspace_agent_id_key UNIQUE (id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY workspace_history
|
|
|
|
ADD CONSTRAINT workspace_history_id_key UNIQUE (id);
|
|
|
|
|
2022-02-01 05:36:15 +00:00
|
|
|
ALTER TABLE ONLY workspace_history
|
|
|
|
ADD CONSTRAINT workspace_history_workspace_id_name_key UNIQUE (workspace_id, name);
|
|
|
|
|
2022-01-25 19:52:58 +00:00
|
|
|
ALTER TABLE ONLY workspace
|
|
|
|
ADD CONSTRAINT workspace_id_key UNIQUE (id);
|
|
|
|
|
2022-02-01 05:36:15 +00:00
|
|
|
ALTER TABLE ONLY workspace
|
|
|
|
ADD CONSTRAINT workspace_owner_id_name_key UNIQUE (owner_id, name);
|
|
|
|
|
2022-01-25 19:52:58 +00:00
|
|
|
ALTER TABLE ONLY workspace_resource
|
|
|
|
ADD CONSTRAINT workspace_resource_id_key UNIQUE (id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY workspace_resource
|
|
|
|
ADD CONSTRAINT workspace_resource_workspace_agent_token_key UNIQUE (workspace_agent_token);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY workspace_resource
|
2022-02-08 01:35:18 +00:00
|
|
|
ADD CONSTRAINT workspace_resource_workspace_history_id_type_name_key UNIQUE (workspace_history_id, type, name);
|
2022-01-25 19:52:58 +00:00
|
|
|
|
2022-02-08 18:00:44 +00:00
|
|
|
ALTER TABLE ONLY parameter_schema
|
|
|
|
ADD CONSTRAINT parameter_schema_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_job(id) ON DELETE CASCADE;
|
2022-02-06 00:24:51 +00:00
|
|
|
|
2022-02-05 02:47:58 +00:00
|
|
|
ALTER TABLE ONLY project_version
|
|
|
|
ADD CONSTRAINT project_version_project_id_fkey FOREIGN KEY (project_id) REFERENCES project(id);
|
2022-01-24 17:07:42 +00:00
|
|
|
|
2022-02-07 21:32:37 +00:00
|
|
|
ALTER TABLE ONLY provisioner_job_log
|
|
|
|
ADD CONSTRAINT provisioner_job_log_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_job(id) ON DELETE CASCADE;
|
2022-01-29 23:38:32 +00:00
|
|
|
|
2022-01-25 19:52:58 +00:00
|
|
|
ALTER TABLE ONLY workspace_agent
|
|
|
|
ADD CONSTRAINT workspace_agent_workspace_resource_id_fkey FOREIGN KEY (workspace_resource_id) REFERENCES workspace_resource(id) ON DELETE CASCADE;
|
|
|
|
|
|
|
|
ALTER TABLE ONLY workspace_history
|
2022-02-05 02:47:58 +00:00
|
|
|
ADD CONSTRAINT workspace_history_project_version_id_fkey FOREIGN KEY (project_version_id) REFERENCES project_version(id) ON DELETE CASCADE;
|
2022-01-25 19:52:58 +00:00
|
|
|
|
|
|
|
ALTER TABLE ONLY workspace_history
|
|
|
|
ADD CONSTRAINT workspace_history_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES workspace(id) ON DELETE CASCADE;
|
|
|
|
|
|
|
|
ALTER TABLE ONLY workspace
|
|
|
|
ADD CONSTRAINT workspace_project_id_fkey FOREIGN KEY (project_id) REFERENCES project(id);
|
|
|
|
|
|
|
|
ALTER TABLE ONLY workspace_resource
|
|
|
|
ADD CONSTRAINT workspace_resource_workspace_history_id_fkey FOREIGN KEY (workspace_history_id) REFERENCES workspace_history(id) ON DELETE CASCADE;
|
|
|
|
|