@@ -72,12 +72,14 @@ func (api *API) templateBuilderBases(rw http.ResponseWriter, r *http.Request) {
7272 slog .F ("base_template_id" , id ))
7373 continue
7474 }
75+ vars := baseVariablesToSDK (templatebuilder .BaseVariables (id ))
7576 bases = append (bases , codersdk.TemplateBuilderBase {
7677 ID : ex .ID ,
7778 Name : ex .Name ,
7879 Description : ex .Description ,
7980 Icon : ex .Icon ,
8081 OS : string (templatebuilder .BaseTemplateOS (id )),
82+ Variables : vars ,
8183 })
8284 }
8385
@@ -90,6 +92,26 @@ func (api *API) templateBuilderBases(rw http.ResponseWriter, r *http.Request) {
9092 })
9193}
9294
95+ // baseVariablesToSDK converts base template variables to the SDK type,
96+ // filtering out computed variables that the builder wires automatically.
97+ func baseVariablesToSDK (vars []templatebuilder.ModuleVariable ) []codersdk.TemplateBuilderModuleVariable {
98+ out := make ([]codersdk.TemplateBuilderModuleVariable , 0 , len (vars ))
99+ for _ , v := range vars {
100+ if v .Computed {
101+ continue
102+ }
103+ out = append (out , codersdk.TemplateBuilderModuleVariable {
104+ Name : v .Name ,
105+ Type : codersdk .TemplateBuilderVariableType (v .Type ),
106+ Description : v .Description ,
107+ Default : v .Default ,
108+ Required : v .Required ,
109+ Sensitive : v .Sensitive ,
110+ })
111+ }
112+ return out
113+ }
114+
93115// @Summary List template builder modules
94116// @ID list-template-builder-modules
95117// @Security CoderSessionToken
@@ -171,8 +193,9 @@ func (api *API) templateBuilderCompose(rw http.ResponseWriter, r *http.Request)
171193 }
172194
173195 composeReq := templatebuilder.ComposeRequest {
174- BaseTemplateID : req .BaseTemplateID ,
175- RegistryURL : api .DeploymentValues .TemplateBuilder .RegistryURL .String (),
196+ BaseTemplateID : req .BaseTemplateID ,
197+ BaseVariableValues : req .BaseVariableValues ,
198+ RegistryURL : api .DeploymentValues .TemplateBuilder .RegistryURL .String (),
176199 }
177200 for _ , m := range req .Modules {
178201 composeReq .Modules = append (composeReq .Modules , templatebuilder.ComposeModule {
@@ -280,8 +303,9 @@ func (api *API) templateBuilderCreateTemplate(rw http.ResponseWriter, r *http.Re
280303
281304 // Compose the template.
282305 composeReq := templatebuilder.ComposeRequest {
283- BaseTemplateID : req .BaseTemplateID ,
284- RegistryURL : api .DeploymentValues .TemplateBuilder .RegistryURL .String (),
306+ BaseTemplateID : req .BaseTemplateID ,
307+ BaseVariableValues : req .BaseVariableValues ,
308+ RegistryURL : api .DeploymentValues .TemplateBuilder .RegistryURL .String (),
285309 }
286310 for _ , m := range req .Modules {
287311 composeReq .Modules = append (composeReq .Modules , templatebuilder.ComposeModule {
0 commit comments