feat(coderd/database): add support for presets (#16509)

This pull requests adds the necessary migrations and queries to support
presets within the coderd database. Future PRs will build functionality
to the provisioners and the frontend.
This commit is contained in:
Sas Swart
2025-02-11 13:55:09 +02:00
committed by GitHub
parent 0e728a7a9b
commit 34b46f9205
20 changed files with 948 additions and 144 deletions

View File

@ -0,0 +1,41 @@
-- name: InsertPreset :one
INSERT INTO
template_version_presets (id, template_version_id, name, created_at)
VALUES
(@id, @template_version_id, @name, @created_at) RETURNING *;
-- name: InsertPresetParameters :many
INSERT INTO
template_version_preset_parameters (id, template_version_preset_id, name, value)
SELECT
@id,
@template_version_preset_id,
unnest(@names :: TEXT[]),
unnest(@values :: TEXT[])
RETURNING *;
-- name: GetPresetsByTemplateVersionID :many
SELECT
*
FROM
template_version_presets
WHERE
template_version_id = @template_version_id;
-- name: GetPresetByWorkspaceBuildID :one
SELECT
template_version_presets.*
FROM
template_version_presets
INNER JOIN workspace_builds ON workspace_builds.template_version_preset_id = template_version_presets.id
WHERE
workspace_builds.id = @workspace_build_id;
-- name: GetPresetParametersByTemplateVersionID :many
SELECT
template_version_preset_parameters.*
FROM
template_version_preset_parameters
INNER JOIN template_version_presets ON template_version_preset_parameters.template_version_preset_id = template_version_presets.id
WHERE
template_version_presets.template_version_id = @template_version_id;

View File

@ -120,10 +120,11 @@ INSERT INTO
provisioner_state,
deadline,
max_deadline,
reason
reason,
template_version_preset_id
)
VALUES
($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13);
($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14);
-- name: UpdateWorkspaceBuildCostByID :exec
UPDATE