feat: Validate workspace build parameters (#5807)

This commit is contained in:
Marcin Tojek
2023-01-24 14:22:00 +01:00
committed by GitHub
parent 138887de7e
commit 26c69525d1
23 changed files with 1051 additions and 268 deletions
@@ -2650,6 +2650,7 @@ func (q *fakeQuerier) InsertTemplateVersionParameter(_ context.Context, arg data
DefaultValue: arg.DefaultValue,
Icon: arg.Icon,
Options: arg.Options,
ValidationError: arg.ValidationError,
ValidationRegex: arg.ValidationRegex,
ValidationMin: arg.ValidationMin,
ValidationMax: arg.ValidationMax,
+4 -1
View File
@@ -350,7 +350,8 @@ CREATE TABLE template_version_parameters (
options jsonb DEFAULT '[]'::jsonb NOT NULL,
validation_regex text NOT NULL,
validation_min integer NOT NULL,
validation_max integer NOT NULL
validation_max integer NOT NULL,
validation_error text DEFAULT ''::text NOT NULL
);
COMMENT ON COLUMN template_version_parameters.name IS 'Parameter name';
@@ -373,6 +374,8 @@ COMMENT ON COLUMN template_version_parameters.validation_min IS 'Validation: min
COMMENT ON COLUMN template_version_parameters.validation_max IS 'Validation: maximum length of value';
COMMENT ON COLUMN template_version_parameters.validation_error IS 'Validation: error displayed when the regex does not match.';
CREATE TABLE template_versions (
id uuid NOT NULL,
template_id uuid,
@@ -0,0 +1 @@
ALTER TABLE template_version_parameters DROP COLUMN validation_error;
@@ -0,0 +1,4 @@
ALTER TABLE template_version_parameters ADD COLUMN validation_error text NOT NULL DEFAULT '';
COMMENT ON COLUMN template_version_parameters.validation_error
IS 'Validation: error displayed when the regex does not match.';
+2
View File
@@ -1448,6 +1448,8 @@ type TemplateVersionParameter struct {
ValidationMin int32 `db:"validation_min" json:"validation_min"`
// Validation: maximum length of value
ValidationMax int32 `db:"validation_max" json:"validation_max"`
// Validation: error displayed when the regex does not match.
ValidationError string `db:"validation_error" json:"validation_error"`
}
type User struct {
+10 -4
View File
@@ -3543,7 +3543,7 @@ func (q *sqlQuerier) UpdateTemplateMetaByID(ctx context.Context, arg UpdateTempl
}
const getTemplateVersionParameters = `-- name: GetTemplateVersionParameters :many
SELECT template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max FROM template_version_parameters WHERE template_version_id = $1
SELECT template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max, validation_error FROM template_version_parameters WHERE template_version_id = $1
`
func (q *sqlQuerier) GetTemplateVersionParameters(ctx context.Context, templateVersionID uuid.UUID) ([]TemplateVersionParameter, error) {
@@ -3567,6 +3567,7 @@ func (q *sqlQuerier) GetTemplateVersionParameters(ctx context.Context, templateV
&i.ValidationRegex,
&i.ValidationMin,
&i.ValidationMax,
&i.ValidationError,
); err != nil {
return nil, err
}
@@ -3594,7 +3595,8 @@ INSERT INTO
options,
validation_regex,
validation_min,
validation_max
validation_max,
validation_error
)
VALUES
(
@@ -3608,8 +3610,9 @@ VALUES
$8,
$9,
$10,
$11
) RETURNING template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max
$11,
$12
) RETURNING template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max, validation_error
`
type InsertTemplateVersionParameterParams struct {
@@ -3624,6 +3627,7 @@ type InsertTemplateVersionParameterParams struct {
ValidationRegex string `db:"validation_regex" json:"validation_regex"`
ValidationMin int32 `db:"validation_min" json:"validation_min"`
ValidationMax int32 `db:"validation_max" json:"validation_max"`
ValidationError string `db:"validation_error" json:"validation_error"`
}
func (q *sqlQuerier) InsertTemplateVersionParameter(ctx context.Context, arg InsertTemplateVersionParameterParams) (TemplateVersionParameter, error) {
@@ -3639,6 +3643,7 @@ func (q *sqlQuerier) InsertTemplateVersionParameter(ctx context.Context, arg Ins
arg.ValidationRegex,
arg.ValidationMin,
arg.ValidationMax,
arg.ValidationError,
)
var i TemplateVersionParameter
err := row.Scan(
@@ -3653,6 +3658,7 @@ func (q *sqlQuerier) InsertTemplateVersionParameter(ctx context.Context, arg Ins
&i.ValidationRegex,
&i.ValidationMin,
&i.ValidationMax,
&i.ValidationError,
)
return i, err
}
@@ -11,7 +11,8 @@ INSERT INTO
options,
validation_regex,
validation_min,
validation_max
validation_max,
validation_error
)
VALUES
(
@@ -25,7 +26,8 @@ VALUES
$8,
$9,
$10,
$11
$11,
$12
) RETURNING *;
-- name: GetTemplateVersionParameters :many