mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
refactor: Allow provisioner jobs to be disconnected from projects (#194)
* Nest jobs under an organization * Rename project parameter to parameter schema * Update references when computing project parameters * Add files endpoint * Allow one-off project import jobs * Allow variables to be injected that are not defined by the schema * Update API to use jobs first * Fix CLI tests * Fix linting * Fix hex length for files table * Reduce memory allocation for windows
This commit is contained in:
Generated
+38
-36
@@ -42,13 +42,13 @@ CREATE TYPE parameter_type_system AS ENUM (
|
||||
'hcl'
|
||||
);
|
||||
|
||||
CREATE TYPE project_storage_method AS ENUM (
|
||||
'inline-archive'
|
||||
CREATE TYPE provisioner_job_type AS ENUM (
|
||||
'project_version_import',
|
||||
'workspace_provision'
|
||||
);
|
||||
|
||||
CREATE TYPE provisioner_job_type AS ENUM (
|
||||
'project_import',
|
||||
'workspace_provision'
|
||||
CREATE TYPE provisioner_storage_method AS ENUM (
|
||||
'file'
|
||||
);
|
||||
|
||||
CREATE TYPE provisioner_type AS ENUM (
|
||||
@@ -89,6 +89,7 @@ CREATE TABLE api_keys (
|
||||
CREATE TABLE file (
|
||||
hash character varying(32) NOT NULL,
|
||||
created_at timestamp with time zone NOT NULL,
|
||||
created_by text NOT NULL,
|
||||
mimetype character varying(64) NOT NULL,
|
||||
data bytea NOT NULL
|
||||
);
|
||||
@@ -120,6 +121,26 @@ CREATE TABLE organizations (
|
||||
workspace_auto_off boolean DEFAULT false NOT NULL
|
||||
);
|
||||
|
||||
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
|
||||
);
|
||||
|
||||
CREATE TABLE parameter_value (
|
||||
id uuid NOT NULL,
|
||||
name character varying(64) NOT NULL,
|
||||
@@ -140,7 +161,7 @@ CREATE TABLE project (
|
||||
organization_id text NOT NULL,
|
||||
name character varying(64) NOT NULL,
|
||||
provisioner provisioner_type NOT NULL,
|
||||
active_version_id uuid
|
||||
active_version_id uuid NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE project_version (
|
||||
@@ -150,31 +171,9 @@ CREATE TABLE project_version (
|
||||
updated_at timestamp with time zone NOT NULL,
|
||||
name character varying(64) NOT NULL,
|
||||
description character varying(1048576) NOT NULL,
|
||||
storage_method project_storage_method NOT NULL,
|
||||
storage_source bytea NOT NULL,
|
||||
import_job_id uuid NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE project_version_parameter (
|
||||
id uuid NOT NULL,
|
||||
created_at timestamp with time zone NOT NULL,
|
||||
project_version_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
|
||||
);
|
||||
|
||||
CREATE TABLE provisioner_daemon (
|
||||
id uuid NOT NULL,
|
||||
created_at timestamp with time zone NOT NULL,
|
||||
@@ -191,8 +190,11 @@ CREATE TABLE provisioner_job (
|
||||
cancelled_at timestamp with time zone,
|
||||
completed_at timestamp with time zone,
|
||||
error text,
|
||||
organization_id text NOT NULL,
|
||||
initiator_id text NOT NULL,
|
||||
provisioner provisioner_type NOT NULL,
|
||||
storage_method provisioner_storage_method NOT NULL,
|
||||
storage_source text NOT NULL,
|
||||
type provisioner_job_type NOT NULL,
|
||||
input jsonb NOT NULL,
|
||||
worker_id uuid
|
||||
@@ -275,6 +277,12 @@ CREATE TABLE workspace_resource (
|
||||
ALTER TABLE ONLY file
|
||||
ADD CONSTRAINT file_hash_key UNIQUE (hash);
|
||||
|
||||
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);
|
||||
|
||||
ALTER TABLE ONLY parameter_value
|
||||
ADD CONSTRAINT parameter_value_id_key UNIQUE (id);
|
||||
|
||||
@@ -290,12 +298,6 @@ ALTER TABLE ONLY project
|
||||
ALTER TABLE ONLY project_version
|
||||
ADD CONSTRAINT project_version_id_key UNIQUE (id);
|
||||
|
||||
ALTER TABLE ONLY project_version_parameter
|
||||
ADD CONSTRAINT project_version_parameter_id_key UNIQUE (id);
|
||||
|
||||
ALTER TABLE ONLY project_version_parameter
|
||||
ADD CONSTRAINT project_version_parameter_project_version_id_name_key UNIQUE (project_version_id, name);
|
||||
|
||||
ALTER TABLE ONLY project_version
|
||||
ADD CONSTRAINT project_version_project_id_name_key UNIQUE (project_id, name);
|
||||
|
||||
@@ -335,8 +337,8 @@ ALTER TABLE ONLY workspace_resource
|
||||
ALTER TABLE ONLY workspace_resource
|
||||
ADD CONSTRAINT workspace_resource_workspace_history_id_type_name_key UNIQUE (workspace_history_id, type, name);
|
||||
|
||||
ALTER TABLE ONLY project_version_parameter
|
||||
ADD CONSTRAINT project_version_parameter_project_version_id_fkey FOREIGN KEY (project_version_id) REFERENCES project_version(id) ON DELETE CASCADE;
|
||||
ALTER TABLE ONLY parameter_schema
|
||||
ADD CONSTRAINT parameter_schema_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_job(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY project_version
|
||||
ADD CONSTRAINT project_version_project_id_fkey FOREIGN KEY (project_id) REFERENCES project(id);
|
||||
|
||||
Reference in New Issue
Block a user