@@ -43,6 +43,7 @@ import (
4343"github.com/coder/coder/v2/coderd/tracing"
4444"github.com/coder/coder/v2/coderd/usage"
4545"github.com/coder/coder/v2/coderd/usage/usagetypes"
46+ "github.com/coder/coder/v2/coderd/util/ptr"
4647"github.com/coder/coder/v2/coderd/util/slice"
4748"github.com/coder/coder/v2/coderd/wspubsub"
4849"github.com/coder/coder/v2/codersdk"
@@ -697,13 +698,14 @@ func (s *server) acquireProtoJob(ctx context.Context, job database.ProvisionerJo
697698
698699protoJob .Type = & proto.AcquiredJob_WorkspaceBuild_ {
699700WorkspaceBuild :& proto.AcquiredJob_WorkspaceBuild {
700- WorkspaceBuildId :workspaceBuild .ID .String (),
701- WorkspaceName :workspace .Name ,
702- State :workspaceBuild .ProvisionerState ,
703- RichParameterValues :convertRichParameterValues (workspaceBuildParameters ),
704- PreviousParameterValues :convertRichParameterValues (lastWorkspaceBuildParameters ),
705- VariableValues :asVariableValues (templateVariables ),
706- ExternalAuthProviders :externalAuthProviders ,
701+ WorkspaceBuildId :workspaceBuild .ID .String (),
702+ WorkspaceName :workspace .Name ,
703+ State :workspaceBuild .ProvisionerState ,
704+ RichParameterValues :convertRichParameterValues (workspaceBuildParameters ),
705+ PreviousParameterValues :convertRichParameterValues (lastWorkspaceBuildParameters ),
706+ VariableValues :asVariableValues (templateVariables ),
707+ ExternalAuthProviders :externalAuthProviders ,
708+ ExpReuseTerraformWorkspace :ptr .Ref (false ),// TODO: Toggle based on experiment
707709Metadata :& sdkproto.Metadata {
708710CoderUrl :s .AccessURL .String (),
709711WorkspaceTransition :transition ,
@@ -773,6 +775,11 @@ func (s *server) acquireProtoJob(ctx context.Context, job database.ProvisionerJo
773775return nil ,failJob (err .Error ())
774776}
775777
778+ templateID := ""
779+ if input .TemplateID .Valid {
780+ templateID = input .TemplateID .UUID .String ()
781+ }
782+
776783protoJob .Type = & proto.AcquiredJob_TemplateImport_ {
777784TemplateImport :& proto.AcquiredJob_TemplateImport {
778785UserVariableValues :convertVariableValues (userVariableValues ),
@@ -781,6 +788,8 @@ func (s *server) acquireProtoJob(ctx context.Context, job database.ProvisionerJo
781788// There is no owner for a template import, but we can assume
782789// the "Everyone" group as a placeholder.
783790WorkspaceOwnerGroups : []string {database .EveryoneGroup },
791+ TemplateId :templateID ,
792+ TemplateVersionId :input .TemplateVersionID .String (),
784793},
785794},
786795}
@@ -3210,6 +3219,10 @@ func auditActionFromTransition(transition database.WorkspaceTransition) database
32103219}
32113220
32123221type TemplateVersionImportJob struct {
3222+ // TemplateID is not guaranteed to be set. Template versions can be created
3223+ // without being associated with a template. Resulting in a template id of
3224+ // `uuid.Nil`
3225+ TemplateID uuid.NullUUID `json:"template_id"`
32133226TemplateVersionID uuid.UUID `json:"template_version_id"`
32143227UserVariableValues []codersdk.VariableValue `json:"user_variable_values"`
32153228}