diff --git a/.github/workflows/coder.yaml b/.github/workflows/coder.yaml index de216cbae2a1a..2110b28867350 100644 --- a/.github/workflows/coder.yaml +++ b/.github/workflows/coder.yaml @@ -79,7 +79,7 @@ jobs: - name: Install Protoc uses: arduino/setup-protoc@v1 with: - version: "3.6.1" + version: "3.19.4" - uses: actions/setup-go@v2 with: go-version: "^1.17" @@ -370,4 +370,4 @@ jobs: DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }} DD_CATEGORY: e2e GIT_COMMIT_MESSAGE: ${{ github.event.head_commit.message }} - run: go run scripts/datadog-cireport/main.go site/test-results/junit.xml \ No newline at end of file + run: go run scripts/datadog-cireport/main.go site/test-results/junit.xml diff --git a/.golangci.yml b/.golangci.yml index c85be43163feb..b7e48aef9e089 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -184,6 +184,7 @@ linters-settings: - r - i - db + - t # Optional list of variable declarations that should be ignored completely. (defaults to empty list) # Entries must be in the form of " " or " *" for # variables, or "const " for constants. @@ -191,6 +192,7 @@ linters-settings: - rw http.ResponseWriter - r *http.Request - t testing.T + - t testing.TB issues: # Rules listed here: https://github.com/securego/gosec#available-rules diff --git a/coderd/coderd.go b/coderd/coderd.go index 1ce7c0453d56d..d5cc11772c8e0 100644 --- a/coderd/coderd.go +++ b/coderd/coderd.go @@ -27,8 +27,8 @@ type Options struct { // New constructs the Coder API into an HTTP handler. // -// A wait function is returned to handle awaiting closure -// of hijacked HTTP requests. +// A wait function is returned to handle awaiting closure of hijacked HTTP +// requests. func New(options *Options) (http.Handler, func()) { api := &api{ Options: options, diff --git a/coderd/coderdtest/coderdtest.go b/coderd/coderdtest/coderdtest.go index 63c7c875c9cff..8e9d93a8c2201 100644 --- a/coderd/coderdtest/coderdtest.go +++ b/coderd/coderdtest/coderdtest.go @@ -61,7 +61,7 @@ func New(t *testing.T, options *Options) *codersdk.Client { t.Cleanup(func() { _ = sqlDB.Close() }) - err = database.Migrate(sqlDB) + err = database.MigrateUp(sqlDB) require.NoError(t, err) db = database.New(sqlDB) diff --git a/database/dump.sql b/database/dump.sql index 479b878b30a6a..134f257afd173 100644 --- a/database/dump.sql +++ b/database/dump.sql @@ -87,7 +87,7 @@ CREATE TABLE api_keys ( devurl_token boolean DEFAULT false NOT NULL ); -CREATE TABLE file ( +CREATE TABLE files ( hash character varying(64) NOT NULL, created_at timestamp with time zone NOT NULL, created_by text NOT NULL, @@ -122,7 +122,7 @@ CREATE TABLE organizations ( workspace_auto_off boolean DEFAULT false NOT NULL ); -CREATE TABLE parameter_schema ( +CREATE TABLE parameter_schemas ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, job_id uuid NOT NULL, @@ -141,7 +141,7 @@ CREATE TABLE parameter_schema ( validation_value_type character varying(64) NOT NULL ); -CREATE TABLE parameter_value ( +CREATE TABLE parameter_values ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone NOT NULL, @@ -153,28 +153,28 @@ CREATE TABLE parameter_value ( destination_scheme parameter_destination_scheme NOT NULL ); -CREATE TABLE project ( +CREATE TABLE project_versions ( id uuid NOT NULL, + project_id uuid, + organization_id text 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, - active_version_id uuid NOT NULL + description character varying(1048576) NOT NULL, + job_id uuid NOT NULL ); -CREATE TABLE project_version ( +CREATE TABLE projects ( id uuid NOT NULL, - project_id uuid, - organization_id text 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, - description character varying(1048576) NOT NULL, - job_id uuid NOT NULL + provisioner provisioner_type NOT NULL, + active_version_id uuid NOT NULL ); -CREATE TABLE provisioner_daemon ( +CREATE TABLE provisioner_daemons ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone, @@ -183,7 +183,16 @@ CREATE TABLE provisioner_daemon ( provisioners provisioner_type[] NOT NULL ); -CREATE TABLE provisioner_job ( +CREATE TABLE provisioner_job_logs ( + 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 +); + +CREATE TABLE provisioner_jobs ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone NOT NULL, @@ -201,15 +210,6 @@ CREATE TABLE provisioner_job ( worker_id uuid ); -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 -); - CREATE TABLE users ( id text NOT NULL, email text NOT NULL, @@ -232,16 +232,7 @@ CREATE TABLE users ( shell text DEFAULT ''::text NOT NULL ); -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 ( +CREATE TABLE workspace_agents ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone, @@ -254,7 +245,7 @@ CREATE TABLE workspace_agent ( resource_metadata jsonb ); -CREATE TABLE workspace_build ( +CREATE TABLE workspace_builds ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone NOT NULL, @@ -269,7 +260,7 @@ CREATE TABLE workspace_build ( job_id uuid NOT NULL ); -CREATE TABLE workspace_resource ( +CREATE TABLE workspace_resources ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, job_id uuid NOT NULL, @@ -279,93 +270,102 @@ CREATE TABLE workspace_resource ( agent_id uuid ); -ALTER TABLE ONLY file - ADD CONSTRAINT file_hash_key UNIQUE (hash); +CREATE TABLE workspaces ( + 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 +); + +ALTER TABLE ONLY files + ADD CONSTRAINT files_hash_key UNIQUE (hash); -ALTER TABLE ONLY parameter_schema - ADD CONSTRAINT parameter_schema_id_key UNIQUE (id); +ALTER TABLE ONLY parameter_schemas + ADD CONSTRAINT parameter_schemas_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_schemas + ADD CONSTRAINT parameter_schemas_job_id_name_key UNIQUE (job_id, name); -ALTER TABLE ONLY parameter_value - ADD CONSTRAINT parameter_value_id_key UNIQUE (id); +ALTER TABLE ONLY parameter_values + ADD CONSTRAINT parameter_values_id_key UNIQUE (id); -ALTER TABLE ONLY parameter_value - ADD CONSTRAINT parameter_value_scope_id_name_key UNIQUE (scope_id, name); +ALTER TABLE ONLY parameter_values + ADD CONSTRAINT parameter_values_scope_id_name_key UNIQUE (scope_id, name); -ALTER TABLE ONLY project - ADD CONSTRAINT project_id_key UNIQUE (id); +ALTER TABLE ONLY project_versions + ADD CONSTRAINT project_versions_id_key UNIQUE (id); -ALTER TABLE ONLY project - ADD CONSTRAINT project_organization_id_name_key UNIQUE (organization_id, name); +ALTER TABLE ONLY project_versions + ADD CONSTRAINT project_versions_project_id_name_key UNIQUE (project_id, name); -ALTER TABLE ONLY project_version - ADD CONSTRAINT project_version_id_key UNIQUE (id); +ALTER TABLE ONLY projects + ADD CONSTRAINT projects_id_key UNIQUE (id); -ALTER TABLE ONLY project_version - ADD CONSTRAINT project_version_project_id_name_key UNIQUE (project_id, name); +ALTER TABLE ONLY projects + ADD CONSTRAINT projects_organization_id_name_key UNIQUE (organization_id, name); -ALTER TABLE ONLY provisioner_daemon - ADD CONSTRAINT provisioner_daemon_id_key UNIQUE (id); +ALTER TABLE ONLY provisioner_daemons + ADD CONSTRAINT provisioner_daemons_id_key UNIQUE (id); -ALTER TABLE ONLY provisioner_daemon - ADD CONSTRAINT provisioner_daemon_name_key UNIQUE (name); +ALTER TABLE ONLY provisioner_daemons + ADD CONSTRAINT provisioner_daemons_name_key UNIQUE (name); -ALTER TABLE ONLY provisioner_job - ADD CONSTRAINT provisioner_job_id_key UNIQUE (id); +ALTER TABLE ONLY provisioner_job_logs + ADD CONSTRAINT provisioner_job_logs_id_key UNIQUE (id); -ALTER TABLE ONLY provisioner_job_log - ADD CONSTRAINT provisioner_job_log_id_key UNIQUE (id); +ALTER TABLE ONLY provisioner_jobs + ADD CONSTRAINT provisioner_jobs_id_key UNIQUE (id); -ALTER TABLE ONLY workspace_agent - ADD CONSTRAINT workspace_agent_auth_token_key UNIQUE (auth_token); +ALTER TABLE ONLY workspace_agents + ADD CONSTRAINT workspace_agents_auth_token_key UNIQUE (auth_token); -ALTER TABLE ONLY workspace_agent - ADD CONSTRAINT workspace_agent_id_key UNIQUE (id); +ALTER TABLE ONLY workspace_agents + ADD CONSTRAINT workspace_agents_id_key UNIQUE (id); -ALTER TABLE ONLY workspace_build - ADD CONSTRAINT workspace_build_id_key UNIQUE (id); +ALTER TABLE ONLY workspace_builds + ADD CONSTRAINT workspace_builds_id_key UNIQUE (id); -ALTER TABLE ONLY workspace_build - ADD CONSTRAINT workspace_build_job_id_key UNIQUE (job_id); +ALTER TABLE ONLY workspace_builds + ADD CONSTRAINT workspace_builds_job_id_key UNIQUE (job_id); -ALTER TABLE ONLY workspace_build - ADD CONSTRAINT workspace_build_workspace_id_name_key UNIQUE (workspace_id, name); +ALTER TABLE ONLY workspace_builds + ADD CONSTRAINT workspace_builds_workspace_id_name_key UNIQUE (workspace_id, name); -ALTER TABLE ONLY workspace - ADD CONSTRAINT workspace_id_key UNIQUE (id); +ALTER TABLE ONLY workspace_resources + ADD CONSTRAINT workspace_resources_id_key UNIQUE (id); -ALTER TABLE ONLY workspace - ADD CONSTRAINT workspace_owner_id_name_key UNIQUE (owner_id, name); +ALTER TABLE ONLY workspaces + ADD CONSTRAINT workspaces_id_key UNIQUE (id); -ALTER TABLE ONLY workspace_resource - ADD CONSTRAINT workspace_resource_id_key UNIQUE (id); +ALTER TABLE ONLY workspaces + ADD CONSTRAINT workspaces_owner_id_name_key UNIQUE (owner_id, name); -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 parameter_schemas + ADD CONSTRAINT parameter_schemas_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_jobs(id) ON DELETE CASCADE; -ALTER TABLE ONLY project_version - ADD CONSTRAINT project_version_project_id_fkey FOREIGN KEY (project_id) REFERENCES project(id); +ALTER TABLE ONLY project_versions + ADD CONSTRAINT project_versions_project_id_fkey FOREIGN KEY (project_id) REFERENCES projects(id); -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; +ALTER TABLE ONLY provisioner_job_logs + ADD CONSTRAINT provisioner_job_logs_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_jobs(id) ON DELETE CASCADE; -ALTER TABLE ONLY workspace_agent - ADD CONSTRAINT workspace_agent_resource_id_fkey FOREIGN KEY (resource_id) REFERENCES workspace_resource(id) ON DELETE CASCADE; +ALTER TABLE ONLY workspace_agents + ADD CONSTRAINT workspace_agents_resource_id_fkey FOREIGN KEY (resource_id) REFERENCES workspace_resources(id) ON DELETE CASCADE; -ALTER TABLE ONLY workspace_build - ADD CONSTRAINT workspace_build_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_job(id) ON DELETE CASCADE; +ALTER TABLE ONLY workspace_builds + ADD CONSTRAINT workspace_builds_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_jobs(id) ON DELETE CASCADE; -ALTER TABLE ONLY workspace_build - ADD CONSTRAINT workspace_build_project_version_id_fkey FOREIGN KEY (project_version_id) REFERENCES project_version(id) ON DELETE CASCADE; +ALTER TABLE ONLY workspace_builds + ADD CONSTRAINT workspace_builds_project_version_id_fkey FOREIGN KEY (project_version_id) REFERENCES project_versions(id) ON DELETE CASCADE; -ALTER TABLE ONLY workspace_build - ADD CONSTRAINT workspace_build_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES workspace(id) ON DELETE CASCADE; +ALTER TABLE ONLY workspace_builds + ADD CONSTRAINT workspace_builds_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES workspaces(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_resources + ADD CONSTRAINT workspace_resources_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_jobs(id) ON DELETE CASCADE; -ALTER TABLE ONLY workspace_resource - ADD CONSTRAINT workspace_resource_job_id_fkey FOREIGN KEY (job_id) REFERENCES provisioner_job(id) ON DELETE CASCADE; +ALTER TABLE ONLY workspaces + ADD CONSTRAINT workspaces_project_id_fkey FOREIGN KEY (project_id) REFERENCES projects(id); diff --git a/database/dump/main.go b/database/dump/main.go index 00e7e15271397..a9e3098ccd62f 100644 --- a/database/dump/main.go +++ b/database/dump/main.go @@ -24,7 +24,7 @@ func main() { if err != nil { panic(err) } - err = database.Migrate(db) + err = database.MigrateUp(db) if err != nil { panic(err) } diff --git a/database/migrate.go b/database/migrate.go index 3722652f48703..fc3816016a1f1 100644 --- a/database/migrate.go +++ b/database/migrate.go @@ -14,27 +14,61 @@ import ( //go:embed migrations/*.sql var migrations embed.FS -// Migrate runs SQL migrations to ensure the database schema is up-to-date. -func Migrate(db *sql.DB) error { +func migrateSetup(db *sql.DB) (*migrate.Migrate, error) { sourceDriver, err := iofs.New(migrations, "migrations") if err != nil { - return xerrors.Errorf("create iofs: %w", err) + return nil, xerrors.Errorf("create iofs: %w", err) } + dbDriver, err := postgres.WithInstance(db, &postgres.Config{}) if err != nil { - return xerrors.Errorf("wrap postgres connection: %w", err) + return nil, xerrors.Errorf("wrap postgres connection: %w", err) } + m, err := migrate.NewWithInstance("", sourceDriver, "", dbDriver) if err != nil { - return xerrors.Errorf("migrate: %w", err) + return nil, xerrors.Errorf("new migrate instance: %w", err) + } + + return m, nil +} + +// MigrateUp runs SQL migrations to ensure the database schema is up-to-date. +func MigrateUp(db *sql.DB) error { + m, err := migrateSetup(db) + if err != nil { + return xerrors.Errorf("migrate setup: %w", err) } + err = m.Up() if err != nil { if errors.Is(err, migrate.ErrNoChange) { // It's OK if no changes happened! return nil } + return xerrors.Errorf("up: %w", err) } + + return nil +} + +// MigrateDown runs all down SQL migrations. +func MigrateDown(db *sql.DB) error { + m, err := migrateSetup(db) + if err != nil { + return xerrors.Errorf("migrate setup: %w", err) + } + + err = m.Down() + if err != nil { + if errors.Is(err, migrate.ErrNoChange) { + // It's OK if no changes happened! + return nil + } + + return xerrors.Errorf("down: %w", err) + } + return nil } diff --git a/database/migrate_test.go b/database/migrate_test.go index 37aec1e96c818..d43b6813f6f1c 100644 --- a/database/migrate_test.go +++ b/database/migrate_test.go @@ -27,27 +27,51 @@ func TestMigrate(t *testing.T) { t.Run("Once", func(t *testing.T) { t.Parallel() - connection, closeFn, err := postgres.Open() - require.NoError(t, err) - defer closeFn() - db, err := sql.Open("postgres", connection) - require.NoError(t, err) - defer db.Close() - err = database.Migrate(db) + + db := testSQLDB(t) + + err := database.MigrateUp(db) require.NoError(t, err) }) t.Run("Twice", func(t *testing.T) { t.Parallel() - connection, closeFn, err := postgres.Open() + + db := testSQLDB(t) + + err := database.MigrateUp(db) + require.NoError(t, err) + + err = database.MigrateUp(db) require.NoError(t, err) - defer closeFn() - db, err := sql.Open("postgres", connection) + }) + + t.Run("UpDownUp", func(t *testing.T) { + t.Parallel() + + db := testSQLDB(t) + + err := database.MigrateUp(db) require.NoError(t, err) - defer db.Close() - err = database.Migrate(db) + + err = database.MigrateDown(db) require.NoError(t, err) - err = database.Migrate(db) + + err = database.MigrateUp(db) require.NoError(t, err) }) } + +func testSQLDB(t testing.TB) *sql.DB { + t.Helper() + + connection, closeFn, err := postgres.Open() + require.NoError(t, err) + t.Cleanup(closeFn) + + db, err := sql.Open("postgres", connection) + require.NoError(t, err) + t.Cleanup(func() { _ = db.Close() }) + + return db +} diff --git a/database/migrations/000002_projects.down.sql b/database/migrations/000002_projects.down.sql index e69de29bb2d1d..c3cf8fa04fa4f 100644 --- a/database/migrations/000002_projects.down.sql +++ b/database/migrations/000002_projects.down.sql @@ -0,0 +1,6 @@ +DROP TABLE project_versions; + +DROP TABLE projects; +DROP TYPE provisioner_type; + +DROP TABLE files; diff --git a/database/migrations/000002_projects.up.sql b/database/migrations/000002_projects.up.sql index 49222cd5d8104..4898263cab92a 100644 --- a/database/migrations/000002_projects.up.sql +++ b/database/migrations/000002_projects.up.sql @@ -1,5 +1,5 @@ -- Store arbitrary data like project source code or avatars. -CREATE TABLE file ( +CREATE TABLE files ( hash varchar(64) NOT NULL UNIQUE, created_at timestamptz NOT NULL, created_by text NOT NULL, @@ -11,7 +11,7 @@ CREATE TYPE provisioner_type AS ENUM ('echo', 'terraform'); -- Project defines infrastructure that your software project -- requires for development. -CREATE TABLE project ( +CREATE TABLE projects ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, @@ -30,10 +30,10 @@ CREATE TABLE project ( -- Project Versions store historical project data. When a Project Version is imported, -- an "import" job is queued to parse parameters. A Project Version -- can only be used if the import job succeeds. -CREATE TABLE project_version ( +CREATE TABLE project_versions ( id uuid NOT NULL UNIQUE, -- This should be indexed. - project_id uuid REFERENCES project (id), + project_id uuid REFERENCES projects (id), organization_id text NOT NULL, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, diff --git a/database/migrations/000003_workspaces.down.sql b/database/migrations/000003_workspaces.down.sql index e69de29bb2d1d..65d6db53e782c 100644 --- a/database/migrations/000003_workspaces.down.sql +++ b/database/migrations/000003_workspaces.down.sql @@ -0,0 +1,2 @@ +DROP TYPE workspace_transition; +DROP TABLE workspaces diff --git a/database/migrations/000003_workspaces.up.sql b/database/migrations/000003_workspaces.up.sql index b06b10362c4e0..ddd5d1757009e 100644 --- a/database/migrations/000003_workspaces.up.sql +++ b/database/migrations/000003_workspaces.up.sql @@ -1,9 +1,9 @@ -CREATE TABLE workspace ( +CREATE TABLE workspaces ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, owner_id text NOT NULL, - project_id uuid NOT NULL REFERENCES project (id), + project_id uuid NOT NULL REFERENCES projects (id), name varchar(64) NOT NULL, UNIQUE(owner_id, name) ); diff --git a/database/migrations/000004_jobs.down.sql b/database/migrations/000004_jobs.down.sql index e69de29bb2d1d..ec657190c6777 100644 --- a/database/migrations/000004_jobs.down.sql +++ b/database/migrations/000004_jobs.down.sql @@ -0,0 +1,21 @@ +DROP TABLE workspace_builds; + +DROP TABLE parameter_values; +DROP TABLE parameter_schemas; +DROP TYPE parameter_destination_scheme; +DROP TYPE parameter_source_scheme; +DROP TYPE parameter_type_system; +DROP TYPE parameter_scope; + +DROP TABLE workspace_agents; +DROP TABLE workspace_resources; + +DROP TABLE provisioner_job_logs; +DROP TYPE log_source; +DROP TYPE log_level; + +DROP TABLE provisioner_jobs; +DROP TYPE provisioner_storage_method; +DROP TYPE provisioner_job_type; + +DROP TABLE provisioner_daemons; diff --git a/database/migrations/000004_jobs.up.sql b/database/migrations/000004_jobs.up.sql index 8e4ebda49119e..a5038fd10c4fc 100644 --- a/database/migrations/000004_jobs.up.sql +++ b/database/migrations/000004_jobs.up.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS provisioner_daemon ( +CREATE TABLE IF NOT EXISTS provisioner_daemons ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz, @@ -16,7 +16,7 @@ CREATE TYPE provisioner_job_type AS ENUM ( CREATE TYPE provisioner_storage_method AS ENUM ('file'); -CREATE TABLE IF NOT EXISTS provisioner_job ( +CREATE TABLE IF NOT EXISTS provisioner_jobs ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, @@ -47,30 +47,30 @@ CREATE TYPE log_source AS ENUM ( 'provisioner' ); -CREATE TABLE IF NOT EXISTS provisioner_job_log ( +CREATE TABLE IF NOT EXISTS provisioner_job_logs ( id uuid NOT NULL UNIQUE, - job_id uuid NOT NULL REFERENCES provisioner_job (id) ON DELETE CASCADE, + job_id uuid NOT NULL REFERENCES provisioner_jobs (id) ON DELETE CASCADE, created_at timestamptz NOT NULL, source log_source NOT NULL, level log_level NOT NULL, output varchar(1024) NOT NULL ); -CREATE TABLE workspace_resource ( +CREATE TABLE workspace_resources ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, - job_id uuid NOT NULL REFERENCES provisioner_job(id) ON DELETE CASCADE, + job_id uuid NOT NULL REFERENCES provisioner_jobs (id) ON DELETE CASCADE, transition workspace_transition NOT NULL, type varchar(256) NOT NULL, name varchar(64) NOT NULL, agent_id uuid ); -CREATE TABLE workspace_agent ( +CREATE TABLE workspace_agents ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz, - resource_id uuid NOT NULL REFERENCES workspace_resource (id) ON DELETE CASCADE, + resource_id uuid NOT NULL REFERENCES workspace_resources (id) ON DELETE CASCADE, auth_token uuid NOT NULL UNIQUE, auth_instance_id varchar(64), environment_variables jsonb, @@ -105,10 +105,10 @@ CREATE TYPE parameter_destination_scheme AS ENUM('none', 'environment_variable', -- Parameter types, description, and validation will produce -- a UI for users to enter values. -- Needs to be made consistent with the examples below. -CREATE TABLE parameter_schema ( +CREATE TABLE parameter_schemas ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, - job_id uuid NOT NULL REFERENCES provisioner_job(id) ON DELETE CASCADE, + job_id uuid NOT NULL REFERENCES provisioner_jobs (id) ON DELETE CASCADE, name varchar(64) NOT NULL, description varchar(8192) NOT NULL DEFAULT '', default_source_scheme parameter_source_scheme, @@ -130,7 +130,7 @@ CREATE TABLE parameter_schema ( ); -- Parameters are provided to jobs for provisioning and to workspaces. -CREATE TABLE parameter_value ( +CREATE TABLE parameter_values ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, @@ -144,12 +144,12 @@ CREATE TABLE parameter_value ( UNIQUE(scope_id, name) ); -CREATE TABLE workspace_build ( +CREATE TABLE workspace_builds ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, - workspace_id uuid NOT NULL REFERENCES workspace (id) ON DELETE CASCADE, - project_version_id uuid NOT NULL REFERENCES project_version (id) ON DELETE CASCADE, + workspace_id uuid NOT NULL REFERENCES workspaces (id) ON DELETE CASCADE, + project_version_id uuid NOT NULL REFERENCES project_versions (id) ON DELETE CASCADE, name varchar(64) NOT NULL, before_id uuid, after_id uuid, @@ -158,6 +158,6 @@ CREATE TABLE workspace_build ( -- State stored by the provisioner provisioner_state bytea, -- Job ID of the action - job_id uuid NOT NULL UNIQUE REFERENCES provisioner_job(id) ON DELETE CASCADE, + job_id uuid NOT NULL UNIQUE REFERENCES provisioner_jobs (id) ON DELETE CASCADE, UNIQUE(workspace_id, name) -); \ No newline at end of file +); diff --git a/database/migrations/create_migration.sh b/database/migrations/create_migration.sh index d063ea1eec562..4af2dba471547 100755 --- a/database/migrations/create_migration.sh +++ b/database/migrations/create_migration.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash + +set -euo pipefail + cd "$(dirname "$0")" if [ -z "$1" ]; then @@ -6,6 +9,6 @@ if [ -z "$1" ]; then exit 1 fi -migrate create -ext sql -dir . -seq $1 +migrate create -ext sql -dir . -seq "$1" echo "Run \"make gen\" to generate models." diff --git a/database/query.sql b/database/query.sql index 18aa7f1c9b625..51324e862dce4 100644 --- a/database/query.sql +++ b/database/query.sql @@ -12,7 +12,7 @@ -- https://www.postgresql.org/docs/9.5/sql-select.html#SQL-FOR-UPDATE-SHARE -- name: AcquireProvisionerJob :one UPDATE - provisioner_job + provisioner_jobs SET started_at = @started_at, updated_at = @started_at, @@ -22,7 +22,7 @@ WHERE SELECT id FROM - provisioner_job AS nested + provisioner_jobs AS nested WHERE nested.started_at IS NULL AND nested.cancelled_at IS NULL @@ -38,7 +38,7 @@ WHERE -- name: DeleteParameterValueByID :exec DELETE FROM - parameter_value + parameter_values WHERE id = $1; @@ -56,7 +56,7 @@ LIMIT SELECT * FROM - file + files WHERE hash = $1 LIMIT @@ -137,7 +137,7 @@ LIMIT SELECT * FROM - parameter_value + parameter_values WHERE scope = $1 AND scope_id = $2; @@ -146,7 +146,7 @@ WHERE SELECT * FROM - parameter_value + parameter_values WHERE scope = $1 AND scope_id = $2 @@ -158,7 +158,7 @@ LIMIT SELECT * FROM - project + projects WHERE id = $1 LIMIT @@ -168,7 +168,7 @@ LIMIT SELECT * FROM - project + projects WHERE organization_id = @organization_id AND LOWER(name) = LOWER(@name) @@ -179,7 +179,7 @@ LIMIT SELECT * FROM - project + projects WHERE organization_id = $1; @@ -187,7 +187,7 @@ WHERE SELECT * FROM - parameter_schema + parameter_schemas WHERE job_id = $1; @@ -195,7 +195,7 @@ WHERE SELECT * FROM - project_version + project_versions WHERE project_id = $1 :: uuid; @@ -203,7 +203,7 @@ WHERE SELECT * FROM - project_version + project_versions WHERE project_id = $1 AND name = $2; @@ -212,7 +212,7 @@ WHERE SELECT * FROM - project_version + project_versions WHERE id = $1; @@ -220,7 +220,7 @@ WHERE SELECT * FROM - provisioner_job_log + provisioner_job_logs WHERE job_id = @job_id AND ( @@ -234,7 +234,7 @@ ORDER BY SELECT * FROM - provisioner_daemon + provisioner_daemons WHERE id = $1; @@ -242,13 +242,13 @@ WHERE SELECT * FROM - provisioner_daemon; + provisioner_daemons; -- name: GetWorkspaceAgentByAuthToken :one SELECT * FROM - workspace_agent + workspace_agents WHERE auth_token = $1; @@ -256,7 +256,7 @@ WHERE SELECT * FROM - workspace_agent + workspace_agents WHERE auth_instance_id = @auth_instance_id :: text ORDER BY @@ -266,7 +266,7 @@ ORDER BY SELECT * FROM - provisioner_job + provisioner_jobs WHERE id = $1; @@ -274,7 +274,7 @@ WHERE SELECT * FROM - provisioner_job + provisioner_jobs WHERE id = ANY(@ids :: uuid [ ]); @@ -282,7 +282,7 @@ WHERE SELECT * FROM - workspace + workspaces WHERE id = $1 LIMIT @@ -292,7 +292,7 @@ LIMIT SELECT * FROM - workspace + workspaces WHERE owner_id = $1; @@ -300,7 +300,7 @@ WHERE SELECT * FROM - workspace + workspaces WHERE owner_id = @owner_id AND LOWER(name) = LOWER(@name); @@ -310,7 +310,7 @@ SELECT project_id, COUNT(DISTINCT owner_id) FROM - workspace + workspaces WHERE project_id = ANY(@ids :: uuid [ ]) GROUP BY @@ -321,7 +321,7 @@ GROUP BY SELECT * FROM - workspace_build + workspace_builds WHERE id = $1 LIMIT @@ -331,7 +331,7 @@ LIMIT SELECT * FROM - workspace_build + workspace_builds WHERE job_id = $1 LIMIT @@ -341,7 +341,7 @@ LIMIT SELECT * FROM - workspace_build + workspace_builds WHERE workspace_id = $1 AND name = $2; @@ -350,7 +350,7 @@ WHERE SELECT * FROM - workspace_build + workspace_builds WHERE workspace_id = $1; @@ -358,7 +358,7 @@ WHERE SELECT * FROM - workspace_build + workspace_builds WHERE workspace_id = $1 AND after_id IS NULL @@ -369,7 +369,7 @@ LIMIT SELECT * FROM - workspace_resource + workspace_resources WHERE id = $1; @@ -377,7 +377,7 @@ WHERE SELECT * FROM - workspace_resource + workspace_resources WHERE job_id = $1; @@ -385,7 +385,7 @@ WHERE SELECT * FROM - workspace_agent + workspace_agents WHERE resource_id = $1; @@ -429,13 +429,13 @@ VALUES -- name: InsertFile :one INSERT INTO - file (hash, created_at, created_by, mimetype, data) + files (hash, created_at, created_by, mimetype, data) VALUES ($1, $2, $3, $4, $5) RETURNING *; -- name: InsertProvisionerJobLogs :many INSERT INTO - provisioner_job_log + provisioner_job_logs SELECT unnest(@id :: uuid [ ]) AS id, @job_id :: uuid AS job_id, @@ -464,7 +464,7 @@ VALUES -- name: InsertParameterValue :one INSERT INTO - parameter_value ( + parameter_values ( id, name, created_at, @@ -480,7 +480,7 @@ VALUES -- name: InsertProject :one INSERT INTO - project ( + projects ( id, created_at, updated_at, @@ -494,7 +494,7 @@ VALUES -- name: InsertWorkspaceResource :one INSERT INTO - workspace_resource ( + workspace_resources ( id, created_at, job_id, @@ -508,7 +508,7 @@ VALUES -- name: InsertProjectVersion :one INSERT INTO - project_version ( + project_versions ( id, project_id, organization_id, @@ -523,7 +523,7 @@ VALUES -- name: InsertParameterSchema :one INSERT INTO - parameter_schema ( + parameter_schemas ( id, created_at, job_id, @@ -563,13 +563,13 @@ VALUES -- name: InsertProvisionerDaemon :one INSERT INTO - provisioner_daemon (id, created_at, organization_id, name, provisioners) + provisioner_daemons (id, created_at, organization_id, name, provisioners) VALUES ($1, $2, $3, $4, $5) RETURNING *; -- name: InsertProvisionerJob :one INSERT INTO - provisioner_job ( + provisioner_jobs ( id, created_at, updated_at, @@ -602,7 +602,7 @@ VALUES -- name: InsertWorkspace :one INSERT INTO - workspace ( + workspaces ( id, created_at, updated_at, @@ -615,7 +615,7 @@ VALUES -- name: InsertWorkspaceAgent :one INSERT INTO - workspace_agent ( + workspace_agents ( id, created_at, updated_at, @@ -632,7 +632,7 @@ VALUES -- name: InsertWorkspaceBuild :one INSERT INTO - workspace_build ( + workspace_builds ( id, created_at, updated_at, @@ -662,7 +662,7 @@ WHERE -- name: UpdateProjectVersionByID :exec UPDATE - project_version + project_versions SET project_id = $2, updated_at = $3 @@ -671,7 +671,7 @@ WHERE -- name: UpdateProvisionerDaemonByID :exec UPDATE - provisioner_daemon + provisioner_daemons SET updated_at = $2, provisioners = $3 @@ -680,7 +680,7 @@ WHERE -- name: UpdateProvisionerJobByID :exec UPDATE - provisioner_job + provisioner_jobs SET updated_at = $2 WHERE @@ -688,7 +688,7 @@ WHERE -- name: UpdateProvisionerJobWithCompleteByID :exec UPDATE - provisioner_job + provisioner_jobs SET updated_at = $2, completed_at = $3, @@ -699,7 +699,7 @@ WHERE -- name: UpdateWorkspaceAgentByID :exec UPDATE - workspace_agent + workspace_agents SET updated_at = $2 WHERE @@ -707,7 +707,7 @@ WHERE -- name: UpdateWorkspaceBuildByID :exec UPDATE - workspace_build + workspace_builds SET updated_at = $2, after_id = $3, diff --git a/database/query.sql.go b/database/query.sql.go index 57dbc7e4af671..1a0db6a6b97eb 100644 --- a/database/query.sql.go +++ b/database/query.sql.go @@ -16,7 +16,7 @@ import ( const acquireProvisionerJob = `-- name: AcquireProvisionerJob :one UPDATE - provisioner_job + provisioner_jobs SET started_at = $1, updated_at = $1, @@ -26,7 +26,7 @@ WHERE SELECT id FROM - provisioner_job AS nested + provisioner_jobs AS nested WHERE nested.started_at IS NULL AND nested.cancelled_at IS NULL @@ -78,7 +78,7 @@ func (q *sqlQuerier) AcquireProvisionerJob(ctx context.Context, arg AcquireProvi const deleteParameterValueByID = `-- name: DeleteParameterValueByID :exec DELETE FROM - parameter_value + parameter_values WHERE id = $1 ` @@ -126,7 +126,7 @@ const getFileByHash = `-- name: GetFileByHash :one SELECT hash, created_at, created_by, mimetype, data FROM - file + files WHERE hash = $1 LIMIT @@ -286,7 +286,7 @@ const getParameterSchemasByJobID = `-- name: GetParameterSchemasByJobID :many SELECT id, created_at, job_id, name, description, default_source_scheme, default_source_value, allow_override_source, default_destination_scheme, allow_override_destination, default_refresh, redisplay_value, validation_error, validation_condition, validation_type_system, validation_value_type FROM - parameter_schema + parameter_schemas WHERE job_id = $1 ` @@ -335,7 +335,7 @@ const getParameterValueByScopeAndName = `-- name: GetParameterValueByScopeAndNam SELECT id, created_at, updated_at, scope, scope_id, name, source_scheme, source_value, destination_scheme FROM - parameter_value + parameter_values WHERE scope = $1 AND scope_id = $2 @@ -371,7 +371,7 @@ const getParameterValuesByScope = `-- name: GetParameterValuesByScope :many SELECT id, created_at, updated_at, scope, scope_id, name, source_scheme, source_value, destination_scheme FROM - parameter_value + parameter_values WHERE scope = $1 AND scope_id = $2 @@ -419,7 +419,7 @@ const getProjectByID = `-- name: GetProjectByID :one SELECT id, created_at, updated_at, organization_id, name, provisioner, active_version_id FROM - project + projects WHERE id = $1 LIMIT @@ -445,7 +445,7 @@ const getProjectByOrganizationAndName = `-- name: GetProjectByOrganizationAndNam SELECT id, created_at, updated_at, organization_id, name, provisioner, active_version_id FROM - project + projects WHERE organization_id = $1 AND LOWER(name) = LOWER($2) @@ -477,7 +477,7 @@ const getProjectVersionByID = `-- name: GetProjectVersionByID :one SELECT id, project_id, organization_id, created_at, updated_at, name, description, job_id FROM - project_version + project_versions WHERE id = $1 ` @@ -502,7 +502,7 @@ const getProjectVersionByProjectIDAndName = `-- name: GetProjectVersionByProject SELECT id, project_id, organization_id, created_at, updated_at, name, description, job_id FROM - project_version + project_versions WHERE project_id = $1 AND name = $2 @@ -533,7 +533,7 @@ const getProjectVersionsByProjectID = `-- name: GetProjectVersionsByProjectID :m SELECT id, project_id, organization_id, created_at, updated_at, name, description, job_id FROM - project_version + project_versions WHERE project_id = $1 :: uuid ` @@ -574,7 +574,7 @@ const getProjectsByOrganization = `-- name: GetProjectsByOrganization :many SELECT id, created_at, updated_at, organization_id, name, provisioner, active_version_id FROM - project + projects WHERE organization_id = $1 ` @@ -614,7 +614,7 @@ const getProvisionerDaemonByID = `-- name: GetProvisionerDaemonByID :one SELECT id, created_at, updated_at, organization_id, name, provisioners FROM - provisioner_daemon + provisioner_daemons WHERE id = $1 ` @@ -637,7 +637,7 @@ const getProvisionerDaemons = `-- name: GetProvisionerDaemons :many SELECT id, created_at, updated_at, organization_id, name, provisioners FROM - provisioner_daemon + provisioner_daemons ` func (q *sqlQuerier) GetProvisionerDaemons(ctx context.Context) ([]ProvisionerDaemon, error) { @@ -674,7 +674,7 @@ const getProvisionerJobByID = `-- name: GetProvisionerJobByID :one SELECT id, created_at, updated_at, started_at, cancelled_at, completed_at, error, organization_id, initiator_id, provisioner, storage_method, storage_source, type, input, worker_id FROM - provisioner_job + provisioner_jobs WHERE id = $1 ` @@ -706,7 +706,7 @@ const getProvisionerJobsByIDs = `-- name: GetProvisionerJobsByIDs :many SELECT id, created_at, updated_at, started_at, cancelled_at, completed_at, error, organization_id, initiator_id, provisioner, storage_method, storage_source, type, input, worker_id FROM - provisioner_job + provisioner_jobs WHERE id = ANY($1 :: uuid [ ]) ` @@ -754,7 +754,7 @@ const getProvisionerLogsByIDBetween = `-- name: GetProvisionerLogsByIDBetween :m SELECT id, job_id, created_at, source, level, output FROM - provisioner_job_log + provisioner_job_logs WHERE job_id = $1 AND ( @@ -901,7 +901,7 @@ const getWorkspaceAgentByAuthToken = `-- name: GetWorkspaceAgentByAuthToken :one SELECT id, created_at, updated_at, resource_id, auth_token, auth_instance_id, environment_variables, startup_script, instance_metadata, resource_metadata FROM - workspace_agent + workspace_agents WHERE auth_token = $1 ` @@ -928,7 +928,7 @@ const getWorkspaceAgentByInstanceID = `-- name: GetWorkspaceAgentByInstanceID :o SELECT id, created_at, updated_at, resource_id, auth_token, auth_instance_id, environment_variables, startup_script, instance_metadata, resource_metadata FROM - workspace_agent + workspace_agents WHERE auth_instance_id = $1 :: text ORDER BY @@ -957,7 +957,7 @@ const getWorkspaceAgentByResourceID = `-- name: GetWorkspaceAgentByResourceID :o SELECT id, created_at, updated_at, resource_id, auth_token, auth_instance_id, environment_variables, startup_script, instance_metadata, resource_metadata FROM - workspace_agent + workspace_agents WHERE resource_id = $1 ` @@ -984,7 +984,7 @@ const getWorkspaceBuildByID = `-- name: GetWorkspaceBuildByID :one SELECT id, created_at, updated_at, workspace_id, project_version_id, name, before_id, after_id, transition, initiator, provisioner_state, job_id FROM - workspace_build + workspace_builds WHERE id = $1 LIMIT @@ -1015,7 +1015,7 @@ const getWorkspaceBuildByJobID = `-- name: GetWorkspaceBuildByJobID :one SELECT id, created_at, updated_at, workspace_id, project_version_id, name, before_id, after_id, transition, initiator, provisioner_state, job_id FROM - workspace_build + workspace_builds WHERE job_id = $1 LIMIT @@ -1046,7 +1046,7 @@ const getWorkspaceBuildByWorkspaceID = `-- name: GetWorkspaceBuildByWorkspaceID SELECT id, created_at, updated_at, workspace_id, project_version_id, name, before_id, after_id, transition, initiator, provisioner_state, job_id FROM - workspace_build + workspace_builds WHERE workspace_id = $1 ` @@ -1091,7 +1091,7 @@ const getWorkspaceBuildByWorkspaceIDAndName = `-- name: GetWorkspaceBuildByWorks SELECT id, created_at, updated_at, workspace_id, project_version_id, name, before_id, after_id, transition, initiator, provisioner_state, job_id FROM - workspace_build + workspace_builds WHERE workspace_id = $1 AND name = $2 @@ -1126,7 +1126,7 @@ const getWorkspaceBuildByWorkspaceIDWithoutAfter = `-- name: GetWorkspaceBuildBy SELECT id, created_at, updated_at, workspace_id, project_version_id, name, before_id, after_id, transition, initiator, provisioner_state, job_id FROM - workspace_build + workspace_builds WHERE workspace_id = $1 AND after_id IS NULL @@ -1158,7 +1158,7 @@ const getWorkspaceByID = `-- name: GetWorkspaceByID :one SELECT id, created_at, updated_at, owner_id, project_id, name FROM - workspace + workspaces WHERE id = $1 LIMIT @@ -1183,7 +1183,7 @@ const getWorkspaceByUserIDAndName = `-- name: GetWorkspaceByUserIDAndName :one SELECT id, created_at, updated_at, owner_id, project_id, name FROM - workspace + workspaces WHERE owner_id = $1 AND LOWER(name) = LOWER($2) @@ -1213,7 +1213,7 @@ SELECT project_id, COUNT(DISTINCT owner_id) FROM - workspace + workspaces WHERE project_id = ANY($1 :: uuid [ ]) GROUP BY @@ -1253,7 +1253,7 @@ const getWorkspaceResourceByID = `-- name: GetWorkspaceResourceByID :one SELECT id, created_at, job_id, transition, type, name, agent_id FROM - workspace_resource + workspace_resources WHERE id = $1 ` @@ -1277,7 +1277,7 @@ const getWorkspaceResourcesByJobID = `-- name: GetWorkspaceResourcesByJobID :man SELECT id, created_at, job_id, transition, type, name, agent_id FROM - workspace_resource + workspace_resources WHERE job_id = $1 ` @@ -1317,7 +1317,7 @@ const getWorkspacesByUserID = `-- name: GetWorkspacesByUserID :many SELECT id, created_at, updated_at, owner_id, project_id, name FROM - workspace + workspaces WHERE owner_id = $1 ` @@ -1450,7 +1450,7 @@ func (q *sqlQuerier) InsertAPIKey(ctx context.Context, arg InsertAPIKeyParams) ( const insertFile = `-- name: InsertFile :one INSERT INTO - file (hash, created_at, created_by, mimetype, data) + files (hash, created_at, created_by, mimetype, data) VALUES ($1, $2, $3, $4, $5) RETURNING hash, created_at, created_by, mimetype, data ` @@ -1563,7 +1563,7 @@ func (q *sqlQuerier) InsertOrganizationMember(ctx context.Context, arg InsertOrg const insertParameterSchema = `-- name: InsertParameterSchema :one INSERT INTO - parameter_schema ( + parameter_schemas ( id, created_at, job_id, @@ -1664,7 +1664,7 @@ func (q *sqlQuerier) InsertParameterSchema(ctx context.Context, arg InsertParame const insertParameterValue = `-- name: InsertParameterValue :one INSERT INTO - parameter_value ( + parameter_values ( id, name, created_at, @@ -1720,7 +1720,7 @@ func (q *sqlQuerier) InsertParameterValue(ctx context.Context, arg InsertParamet const insertProject = `-- name: InsertProject :one INSERT INTO - project ( + projects ( id, created_at, updated_at, @@ -1768,7 +1768,7 @@ func (q *sqlQuerier) InsertProject(ctx context.Context, arg InsertProjectParams) const insertProjectVersion = `-- name: InsertProjectVersion :one INSERT INTO - project_version ( + project_versions ( id, project_id, organization_id, @@ -1820,7 +1820,7 @@ func (q *sqlQuerier) InsertProjectVersion(ctx context.Context, arg InsertProject const insertProvisionerDaemon = `-- name: InsertProvisionerDaemon :one INSERT INTO - provisioner_daemon (id, created_at, organization_id, name, provisioners) + provisioner_daemons (id, created_at, organization_id, name, provisioners) VALUES ($1, $2, $3, $4, $5) RETURNING id, created_at, updated_at, organization_id, name, provisioners ` @@ -1855,7 +1855,7 @@ func (q *sqlQuerier) InsertProvisionerDaemon(ctx context.Context, arg InsertProv const insertProvisionerJob = `-- name: InsertProvisionerJob :one INSERT INTO - provisioner_job ( + provisioner_jobs ( id, created_at, updated_at, @@ -1920,7 +1920,7 @@ func (q *sqlQuerier) InsertProvisionerJob(ctx context.Context, arg InsertProvisi const insertProvisionerJobLogs = `-- name: InsertProvisionerJobLogs :many INSERT INTO - provisioner_job_log + provisioner_job_logs SELECT unnest($1 :: uuid [ ]) AS id, $2 :: uuid AS job_id, @@ -2042,7 +2042,7 @@ func (q *sqlQuerier) InsertUser(ctx context.Context, arg InsertUserParams) (User const insertWorkspace = `-- name: InsertWorkspace :one INSERT INTO - workspace ( + workspaces ( id, created_at, updated_at, @@ -2086,7 +2086,7 @@ func (q *sqlQuerier) InsertWorkspace(ctx context.Context, arg InsertWorkspacePar const insertWorkspaceAgent = `-- name: InsertWorkspaceAgent :one INSERT INTO - workspace_agent ( + workspace_agents ( id, created_at, updated_at, @@ -2146,7 +2146,7 @@ func (q *sqlQuerier) InsertWorkspaceAgent(ctx context.Context, arg InsertWorkspa const insertWorkspaceBuild = `-- name: InsertWorkspaceBuild :one INSERT INTO - workspace_build ( + workspace_builds ( id, created_at, updated_at, @@ -2211,7 +2211,7 @@ func (q *sqlQuerier) InsertWorkspaceBuild(ctx context.Context, arg InsertWorkspa const insertWorkspaceResource = `-- name: InsertWorkspaceResource :one INSERT INTO - workspace_resource ( + workspace_resources ( id, created_at, job_id, @@ -2293,7 +2293,7 @@ func (q *sqlQuerier) UpdateAPIKeyByID(ctx context.Context, arg UpdateAPIKeyByIDP const updateProjectVersionByID = `-- name: UpdateProjectVersionByID :exec UPDATE - project_version + project_versions SET project_id = $2, updated_at = $3 @@ -2314,7 +2314,7 @@ func (q *sqlQuerier) UpdateProjectVersionByID(ctx context.Context, arg UpdatePro const updateProvisionerDaemonByID = `-- name: UpdateProvisionerDaemonByID :exec UPDATE - provisioner_daemon + provisioner_daemons SET updated_at = $2, provisioners = $3 @@ -2335,7 +2335,7 @@ func (q *sqlQuerier) UpdateProvisionerDaemonByID(ctx context.Context, arg Update const updateProvisionerJobByID = `-- name: UpdateProvisionerJobByID :exec UPDATE - provisioner_job + provisioner_jobs SET updated_at = $2 WHERE @@ -2354,7 +2354,7 @@ func (q *sqlQuerier) UpdateProvisionerJobByID(ctx context.Context, arg UpdatePro const updateProvisionerJobWithCompleteByID = `-- name: UpdateProvisionerJobWithCompleteByID :exec UPDATE - provisioner_job + provisioner_jobs SET updated_at = $2, completed_at = $3, @@ -2385,7 +2385,7 @@ func (q *sqlQuerier) UpdateProvisionerJobWithCompleteByID(ctx context.Context, a const updateWorkspaceAgentByID = `-- name: UpdateWorkspaceAgentByID :exec UPDATE - workspace_agent + workspace_agents SET updated_at = $2 WHERE @@ -2404,7 +2404,7 @@ func (q *sqlQuerier) UpdateWorkspaceAgentByID(ctx context.Context, arg UpdateWor const updateWorkspaceBuildByID = `-- name: UpdateWorkspaceBuildByID :exec UPDATE - workspace_build + workspace_builds SET updated_at = $2, after_id = $3, diff --git a/httpmw/httpmw.go b/httpmw/httpmw.go index 003b76da1e79e..655cfbd716027 100644 --- a/httpmw/httpmw.go +++ b/httpmw/httpmw.go @@ -15,14 +15,14 @@ func parseUUID(rw http.ResponseWriter, r *http.Request, param string) (uuid.UUID rawID := chi.URLParam(r, param) if rawID == "" { httpapi.Write(rw, http.StatusBadRequest, httpapi.Response{ - Message: fmt.Sprintf("%s must be provided", param), + Message: fmt.Sprintf("%q must be provided", param), }) return uuid.UUID{}, false } parsed, err := uuid.Parse(rawID) if err != nil { httpapi.Write(rw, http.StatusBadRequest, httpapi.Response{ - Message: fmt.Sprintf("%s must be a uuid", param), + Message: fmt.Sprintf("%q must be a uuid", param), }) return uuid.UUID{}, false } diff --git a/peerbroker/proto/peerbroker.pb.go b/peerbroker/proto/peerbroker.pb.go index 8a443e6e42192..b1a880bf8ce36 100644 --- a/peerbroker/proto/peerbroker.pb.go +++ b/peerbroker/proto/peerbroker.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: peerbroker/proto/peerbroker.proto package proto diff --git a/provisionerd/proto/provisionerd.pb.go b/provisionerd/proto/provisionerd.pb.go index 4a6f31fe1fa58..91213eb210f2a 100644 --- a/provisionerd/proto/provisionerd.pb.go +++ b/provisionerd/proto/provisionerd.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: provisionerd/proto/provisionerd.proto package proto diff --git a/provisionersdk/proto/provisioner.pb.go b/provisionersdk/proto/provisioner.pb.go index dfe499b6ba685..bc4fc249a5e09 100644 --- a/provisionersdk/proto/provisioner.pb.go +++ b/provisionersdk/proto/provisioner.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: provisionersdk/proto/provisioner.proto package proto