From a3f77b3feebe8dda69d741e74aba23bff5efe19a Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Mon, 23 Jun 2025 10:24:57 -0500 Subject: [PATCH] chore: remove per request dynamic parameters opt in and rely on template When in experimental this was used as an escape hatch. Removed to be consistent with the template author's intentions --- coderd/apidoc/docs.go | 7 ------- coderd/apidoc/swagger.json | 7 ------- coderd/parameters_test.go | 3 --- coderd/workspacebuilds.go | 4 ---- coderd/workspaces.go | 4 ---- coderd/wsbuilder/wsbuilder.go | 20 ++++--------------- codersdk/organizations.go | 1 - codersdk/workspaces.go | 4 ---- docs/reference/api/builds.md | 1 - docs/reference/api/schemas.md | 4 ---- docs/reference/api/workspaces.md | 2 -- enterprise/coderd/workspaces_test.go | 1 - site/src/api/typesGenerated.ts | 2 -- .../CreateWorkspacePageExperimental.tsx | 1 - 14 files changed, 4 insertions(+), 57 deletions(-) diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index 6844d166d8f1d..ec11a67fcf0be 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -12043,10 +12043,6 @@ const docTemplate = `{ "dry_run": { "type": "boolean" }, - "enable_dynamic_parameters": { - "description": "EnableDynamicParameters skips some of the static parameter checking.\nIt will default to whatever the template has marked as the default experience.\nRequires the \"dynamic-experiment\" to be used.", - "type": "boolean" - }, "log_level": { "description": "Log level changes the default logging verbosity of a provider (\"info\" if empty).", "enum": [ @@ -12128,9 +12124,6 @@ const docTemplate = `{ "autostart_schedule": { "type": "string" }, - "enable_dynamic_parameters": { - "type": "boolean" - }, "name": { "type": "string" }, diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 35d39cfbe3839..d346b166580f7 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -10753,10 +10753,6 @@ "dry_run": { "type": "boolean" }, - "enable_dynamic_parameters": { - "description": "EnableDynamicParameters skips some of the static parameter checking.\nIt will default to whatever the template has marked as the default experience.\nRequires the \"dynamic-experiment\" to be used.", - "type": "boolean" - }, "log_level": { "description": "Log level changes the default logging verbosity of a provider (\"info\" if empty).", "enum": ["debug"], @@ -10828,9 +10824,6 @@ "autostart_schedule": { "type": "string" }, - "enable_dynamic_parameters": { - "type": "boolean" - }, "name": { "type": "string" }, diff --git a/coderd/parameters_test.go b/coderd/parameters_test.go index a18000673b50e..3a5cae7adbe5b 100644 --- a/coderd/parameters_test.go +++ b/coderd/parameters_test.go @@ -15,7 +15,6 @@ import ( "github.com/coder/coder/v2/coderd/database/dbtestutil" "github.com/coder/coder/v2/coderd/database/pubsub" "github.com/coder/coder/v2/coderd/rbac" - "github.com/coder/coder/v2/coderd/util/ptr" "github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/codersdk/wsjson" "github.com/coder/coder/v2/provisioner/echo" @@ -260,7 +259,6 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) { Value: "eu", }, } - request.EnableDynamicParameters = true }) coderdtest.AwaitWorkspaceBuildJobCompleted(t, setup.client, wrk.LatestBuild.ID) @@ -285,7 +283,6 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) { RichParameterValues: []codersdk.WorkspaceBuildParameter{ {Name: "region", Value: regionVal}, }, - EnableDynamicParameters: ptr.Ref(true), }) require.NoError(t, err) coderdtest.AwaitWorkspaceBuildJobCompleted(t, setup.client, bld.ID) diff --git a/coderd/workspacebuilds.go b/coderd/workspacebuilds.go index 526be7e4e4f89..12d8301a405f7 100644 --- a/coderd/workspacebuilds.go +++ b/coderd/workspacebuilds.go @@ -385,10 +385,6 @@ func (api *API) postWorkspaceBuilds(rw http.ResponseWriter, r *http.Request) { builder = builder.State(createBuild.ProvisionerState) } - if createBuild.EnableDynamicParameters != nil { - builder = builder.DynamicParameters(*createBuild.EnableDynamicParameters) - } - workspaceBuild, provisionerJob, provisionerDaemons, err = builder.Build( ctx, tx, diff --git a/coderd/workspaces.go b/coderd/workspaces.go index 58375ae4c4d45..cafb629dcb8f0 100644 --- a/coderd/workspaces.go +++ b/coderd/workspaces.go @@ -717,10 +717,6 @@ func createWorkspace( builder = builder.MarkPrebuiltWorkspaceClaim() } - if req.EnableDynamicParameters { - builder = builder.DynamicParameters(req.EnableDynamicParameters) - } - workspaceBuild, provisionerJob, provisionerDaemons, err = builder.Build( ctx, db, diff --git a/coderd/wsbuilder/wsbuilder.go b/coderd/wsbuilder/wsbuilder.go index aaccd337ee793..3ffc0452b05ce 100644 --- a/coderd/wsbuilder/wsbuilder.go +++ b/coderd/wsbuilder/wsbuilder.go @@ -57,12 +57,10 @@ type Builder struct { deploymentValues *codersdk.DeploymentValues experiments codersdk.Experiments - richParameterValues []codersdk.WorkspaceBuildParameter - // dynamicParametersEnabled is non-nil if set externally - dynamicParametersEnabled *bool - initiator uuid.UUID - reason database.BuildReason - templateVersionPresetID uuid.UUID + richParameterValues []codersdk.WorkspaceBuildParameter + initiator uuid.UUID + reason database.BuildReason + templateVersionPresetID uuid.UUID // used during build, makes function arguments less verbose ctx context.Context @@ -204,12 +202,6 @@ func (b Builder) MarkPrebuiltWorkspaceClaim() Builder { return b } -func (b Builder) DynamicParameters(using bool) Builder { - // nolint: revive - b.dynamicParametersEnabled = ptr.Ref(using) - return b -} - // SetLastWorkspaceBuildInTx prepopulates the Builder's cache with the last workspace build. This allows us // to avoid a repeated database query when the Builder's caller also needs the workspace build, e.g. auto-start & // auto-stop. @@ -1211,10 +1203,6 @@ func (b *Builder) checkRunningBuild() error { } func (b *Builder) usingDynamicParameters() bool { - if b.dynamicParametersEnabled != nil { - return *b.dynamicParametersEnabled - } - tpl, err := b.getTemplate() if err != nil { return false // Let another part of the code get this error diff --git a/codersdk/organizations.go b/codersdk/organizations.go index 728540ef2e6e1..08c1fb0034b46 100644 --- a/codersdk/organizations.go +++ b/codersdk/organizations.go @@ -227,7 +227,6 @@ type CreateWorkspaceRequest struct { RichParameterValues []WorkspaceBuildParameter `json:"rich_parameter_values,omitempty"` AutomaticUpdates AutomaticUpdates `json:"automatic_updates,omitempty"` TemplateVersionPresetID uuid.UUID `json:"template_version_preset_id,omitempty" format:"uuid"` - EnableDynamicParameters bool `json:"enable_dynamic_parameters,omitempty"` } func (c *Client) OrganizationByName(ctx context.Context, name string) (Organization, error) { diff --git a/codersdk/workspaces.go b/codersdk/workspaces.go index 2c73d60a2696c..c776f2cf5a473 100644 --- a/codersdk/workspaces.go +++ b/codersdk/workspaces.go @@ -110,10 +110,6 @@ type CreateWorkspaceBuildRequest struct { LogLevel ProvisionerLogLevel `json:"log_level,omitempty" validate:"omitempty,oneof=debug"` // TemplateVersionPresetID is the ID of the template version preset to use for the build. TemplateVersionPresetID uuid.UUID `json:"template_version_preset_id,omitempty" format:"uuid"` - // EnableDynamicParameters skips some of the static parameter checking. - // It will default to whatever the template has marked as the default experience. - // Requires the "dynamic-experiment" to be used. - EnableDynamicParameters *bool `json:"enable_dynamic_parameters,omitempty"` } type WorkspaceOptions struct { diff --git a/docs/reference/api/builds.md b/docs/reference/api/builds.md index c47b89d0bbba1..bb279f5825f6e 100644 --- a/docs/reference/api/builds.md +++ b/docs/reference/api/builds.md @@ -1752,7 +1752,6 @@ curl -X POST http://coder-server:8080/api/v2/workspaces/{workspace}/builds \ ```json { "dry_run": true, - "enable_dynamic_parameters": true, "log_level": "debug", "orphan": true, "rich_parameter_values": [ diff --git a/docs/reference/api/schemas.md b/docs/reference/api/schemas.md index e0999f6bb3778..d1da727a45816 100644 --- a/docs/reference/api/schemas.md +++ b/docs/reference/api/schemas.md @@ -1917,7 +1917,6 @@ This is required on creation to enable a user-flow of validating a template work ```json { "dry_run": true, - "enable_dynamic_parameters": true, "log_level": "debug", "orphan": true, "rich_parameter_values": [ @@ -1940,7 +1939,6 @@ This is required on creation to enable a user-flow of validating a template work | Name | Type | Required | Restrictions | Description | |------------------------------|-------------------------------------------------------------------------------|----------|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `dry_run` | boolean | false | | | -| `enable_dynamic_parameters` | boolean | false | | Enable dynamic parameters skips some of the static parameter checking. It will default to whatever the template has marked as the default experience. Requires the "dynamic-experiment" to be used. | | `log_level` | [codersdk.ProvisionerLogLevel](#codersdkprovisionerloglevel) | false | | Log level changes the default logging verbosity of a provider ("info" if empty). | | `orphan` | boolean | false | | Orphan may be set for the Destroy transition. | | `rich_parameter_values` | array of [codersdk.WorkspaceBuildParameter](#codersdkworkspacebuildparameter) | false | | Rich parameter values are optional. It will write params to the 'workspace' scope. This will overwrite any existing parameters with the same name. This will not delete old params not included in this list. | @@ -1982,7 +1980,6 @@ This is required on creation to enable a user-flow of validating a template work { "automatic_updates": "always", "autostart_schedule": "string", - "enable_dynamic_parameters": true, "name": "string", "rich_parameter_values": [ { @@ -2005,7 +2002,6 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o |------------------------------|-------------------------------------------------------------------------------|----------|--------------|---------------------------------------------------------------------------------------------------------| | `automatic_updates` | [codersdk.AutomaticUpdates](#codersdkautomaticupdates) | false | | | | `autostart_schedule` | string | false | | | -| `enable_dynamic_parameters` | boolean | false | | | | `name` | string | true | | | | `rich_parameter_values` | array of [codersdk.WorkspaceBuildParameter](#codersdkworkspacebuildparameter) | false | | Rich parameter values allows for additional parameters to be provided during the initial provision. | | `template_id` | string | false | | Template ID specifies which template should be used for creating the workspace. | diff --git a/docs/reference/api/workspaces.md b/docs/reference/api/workspaces.md index a13c61cc05ee6..a43a5f2c8fe18 100644 --- a/docs/reference/api/workspaces.md +++ b/docs/reference/api/workspaces.md @@ -25,7 +25,6 @@ of the template will be used. { "automatic_updates": "always", "autostart_schedule": "string", - "enable_dynamic_parameters": true, "name": "string", "rich_parameter_values": [ { @@ -624,7 +623,6 @@ of the template will be used. { "automatic_updates": "always", "autostart_schedule": "string", - "enable_dynamic_parameters": true, "name": "string", "rich_parameter_values": [ { diff --git a/enterprise/coderd/workspaces_test.go b/enterprise/coderd/workspaces_test.go index 125647b099282..ef9d1b977ea00 100644 --- a/enterprise/coderd/workspaces_test.go +++ b/enterprise/coderd/workspaces_test.go @@ -1759,7 +1759,6 @@ func TestWorkspaceTemplateParamsChange(t *testing.T) { Value: "7", }, }, - EnableDynamicParameters: true, }) // Then: the build should succeed. The updated value of param_min should be diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index d536ac3a0fe5e..9a5acb4fbe569 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -490,7 +490,6 @@ export interface CreateWorkspaceBuildRequest { readonly rich_parameter_values?: readonly WorkspaceBuildParameter[]; readonly log_level?: ProvisionerLogLevel; readonly template_version_preset_id?: string; - readonly enable_dynamic_parameters?: boolean; } // From codersdk/workspaceproxy.go @@ -510,7 +509,6 @@ export interface CreateWorkspaceRequest { readonly rich_parameter_values?: readonly WorkspaceBuildParameter[]; readonly automatic_updates?: AutomaticUpdates; readonly template_version_preset_id?: string; - readonly enable_dynamic_parameters?: boolean; } // From codersdk/deployment.go diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx index 070576a5e9a99..2e39c5625a6cb 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx @@ -326,7 +326,6 @@ const CreateWorkspacePageExperimental: FC = () => { const workspace = await createWorkspaceMutation.mutateAsync({ ...workspaceRequest, - enable_dynamic_parameters: true, userId: owner.id, }); onCreateWorkspace(workspace);