Skip to content

Commit 8387dd2

Browse files
authored
chore: add form_type parameter argument to db (#17920)
`form_type` is a new parameter field in the terraform provider. Bring that field into coder/coder. Validation for `multi-select` has also been added.
1 parent 776c144 commit 8387dd2

35 files changed

+1555
-821
lines changed

coderd/apidoc/docs.go

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/apidoc/swagger.json

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/db2sdk/db2sdk.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@ func WorkspaceBuildParameters(params []database.WorkspaceBuildParameter) []coder
9292
}
9393

9494
func TemplateVersionParameters(params []database.TemplateVersionParameter) ([]codersdk.TemplateVersionParameter, error) {
95-
out := make([]codersdk.TemplateVersionParameter, len(params))
96-
var err error
97-
for i, p := range params {
98-
out[i], err = TemplateVersionParameter(p)
95+
out := make([]codersdk.TemplateVersionParameter, 0, len(params))
96+
for _, p := range params {
97+
np, err := TemplateVersionParameter(p)
9998
if err != nil {
10099
return nil, xerrors.Errorf("convert template version parameter %q: %w", p.Name, err)
101100
}
101+
out = append(out, np)
102102
}
103103

104104
return out, nil
@@ -131,6 +131,7 @@ func TemplateVersionParameter(param database.TemplateVersionParameter) (codersdk
131131
Description: param.Description,
132132
DescriptionPlaintext: descriptionPlaintext,
133133
Type: param.Type,
134+
FormType: string(param.FormType),
134135
Mutable: param.Mutable,
135136
DefaultValue: param.DefaultValue,
136137
Icon: param.Icon,
@@ -293,7 +294,8 @@ func templateVersionParameterOptions(rawOptions json.RawMessage) ([]codersdk.Tem
293294
if err != nil {
294295
return nil, err
295296
}
296-
var options []codersdk.TemplateVersionParameterOption
297+
298+
options := make([]codersdk.TemplateVersionParameterOption, 0)
297299
for _, option := range protoOptions {
298300
options = append(options, codersdk.TemplateVersionParameterOption{
299301
Name: option.Name,

coderd/database/dbgen/dbgen.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -992,6 +992,7 @@ func TemplateVersionParameter(t testing.TB, db database.Store, orig database.Tem
992992
Name: takeFirst(orig.Name, testutil.GetRandomName(t)),
993993
Description: takeFirst(orig.Description, testutil.GetRandomName(t)),
994994
Type: takeFirst(orig.Type, "string"),
995+
FormType: orig.FormType, // empty string is ok!
995996
Mutable: takeFirst(orig.Mutable, false),
996997
DefaultValue: takeFirst(orig.DefaultValue, testutil.GetRandomName(t)),
997998
Icon: takeFirst(orig.Icon, testutil.GetRandomName(t)),

coderd/database/dbmem/dbmem.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9393,6 +9393,7 @@ func (q *FakeQuerier) InsertTemplateVersionParameter(_ context.Context, arg data
93939393
DisplayName: arg.DisplayName,
93949394
Description: arg.Description,
93959395
Type: arg.Type,
9396+
FormType: arg.FormType,
93969397
Mutable: arg.Mutable,
93979398
DefaultValue: arg.DefaultValue,
93989399
Icon: arg.Icon,

coderd/database/dump.sql

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TABLE template_version_parameters DROP COLUMN form_type;
2+
DROP TYPE parameter_form_type;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CREATE TYPE parameter_form_type AS ENUM ('', 'error', 'radio', 'dropdown', 'input', 'textarea', 'slider', 'checkbox', 'switch', 'tag-select', 'multi-select');
2+
COMMENT ON TYPE parameter_form_type
3+
IS 'Enum set should match the terraform provider set. This is defined as future form_types are not supported, and should be rejected. '
4+
'Always include the empty string for using the default form type.';
5+
6+
-- Intentionally leaving the default blank. The provisioner will not re-run any
7+
-- imports to backfill these values. Missing values just have to be handled.
8+
ALTER TABLE template_version_parameters ADD COLUMN form_type parameter_form_type NOT NULL DEFAULT '';
9+
10+
COMMENT ON COLUMN template_version_parameters.form_type
11+
IS 'Specify what form_type should be used to render the parameter in the UI. Unsupported values are rejected.';

coderd/database/models.go

Lines changed: 88 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

Lines changed: 26 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)