Skip to content

Commit 179adae

Browse files
committed
pipe through all of the protobuf stuff
1 parent f9feb97 commit 179adae

File tree

16 files changed

+805
-628
lines changed

16 files changed

+805
-628
lines changed

coderd/apidoc/docs.go

Lines changed: 3 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: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/provisionerdserver/provisionerdserver.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,7 +1133,7 @@ func (s *server) CompleteJob(ctx context.Context, completed *proto.CompletedJob)
11331133
for _, externalAuthProvider := range jobType.TemplateImport.ExternalAuthProviders {
11341134
contains := false
11351135
for _, configuredProvider := range s.ExternalAuthConfigs {
1136-
if configuredProvider.ID == externalAuthProvider {
1136+
if configuredProvider.ID == externalAuthProvider.Id {
11371137
contains = true
11381138
break
11391139
}
@@ -1147,9 +1147,17 @@ func (s *server) CompleteJob(ctx context.Context, completed *proto.CompletedJob)
11471147
}
11481148
}
11491149

1150+
externalAuthProviderIds := jobType.TemplateImport.ExternalAuthProvidersNames
1151+
if providersLen := len(jobType.TemplateImport.ExternalAuthProviders); providersLen > 0 {
1152+
externalAuthProviderIds = make([]string, 0, providersLen)
1153+
for _, provider := range jobType.TemplateImport.ExternalAuthProviders {
1154+
externalAuthProviderIds = append(externalAuthProviderIds, provider.Id)
1155+
}
1156+
}
1157+
11501158
err = s.Database.UpdateTemplateVersionExternalAuthProvidersByJobID(ctx, database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams{
11511159
JobID: jobID,
1152-
ExternalAuthProviders: jobType.TemplateImport.ExternalAuthProviders,
1160+
ExternalAuthProviders: externalAuthProviderIds,
11531161
UpdatedAt: dbtime.Now(),
11541162
})
11551163
if err != nil {

codersdk/templateversions.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ type TemplateVersionExternalAuth struct {
4141
DisplayIcon string `json:"display_icon"`
4242
AuthenticateURL string `json:"authenticate_url"`
4343
Authenticated bool `json:"authenticated"`
44+
Optional bool `json:"optional"`
4445
}
4546

4647
type ValidationMonotonicOrder string

docs/api/schemas.md

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

docs/api/templates.md

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

enterprise/coderd/provisionerdaemons.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,16 @@ func (api *API) provisionerDaemonServe(rw http.ResponseWriter, r *http.Request)
239239
apiVersion = qv
240240
}
241241

242+
if err := proto.CurrentVersion.Validate(apiVersion); err != nil {
243+
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
244+
Message: "Incompatible or unparseable version",
245+
Validations: []codersdk.ValidationError{
246+
{Field: "version", Detail: err.Error()},
247+
},
248+
})
249+
return
250+
}
251+
242252
// Create the daemon in the database.
243253
now := dbtime.Now()
244254
daemon, err := api.Database.UpsertProvisionerDaemon(authCtx, database.UpsertProvisionerDaemonParams{

provisioner/terraform/resources.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ type resourceMetadataItem struct {
123123
type State struct {
124124
Resources []*proto.Resource
125125
Parameters []*proto.RichParameter
126-
ExternalAuthProviders []string
126+
ExternalAuthProviders []*proto.ExternalAuthProviderResource
127127
}
128128

129129
// ConvertState consumes Terraform state and a GraphViz representation
@@ -695,7 +695,7 @@ func ConvertState(modules []*tfjson.StateModule, rawGraph string) (*State, error
695695
}
696696

697697
// A map is used to ensure we don't have duplicates!
698-
externalAuthProvidersMap := map[string]struct{}{}
698+
externalAuthProvidersMap := map[string]*proto.ExternalAuthProviderResource{}
699699
for _, tfResources := range tfResourcesByLabel {
700700
for _, resource := range tfResources {
701701
// Checking for `coder_git_auth` is legacy!
@@ -706,12 +706,18 @@ func ConvertState(modules []*tfjson.StateModule, rawGraph string) (*State, error
706706
if !ok {
707707
return nil, xerrors.Errorf("external auth id is not a string")
708708
}
709-
externalAuthProvidersMap[id] = struct{}{}
709+
710+
optional := false
711+
optionalAttribute, ok := resource.AttributeValues["optional"].(bool)
712+
if ok {
713+
optional = optionalAttribute
714+
}
715+
externalAuthProvidersMap[id] = &proto.ExternalAuthProviderResource{Optional: optional}
710716
}
711717
}
712-
externalAuthProviders := make([]string, 0, len(externalAuthProvidersMap))
713-
for id := range externalAuthProvidersMap {
714-
externalAuthProviders = append(externalAuthProviders, id)
718+
externalAuthProviders := make([]*proto.ExternalAuthProviderResource, 0, len(externalAuthProvidersMap))
719+
for _, provider := range externalAuthProvidersMap {
720+
externalAuthProviders = append(externalAuthProviders, provider)
715721
}
716722

717723
return &State{

0 commit comments

Comments
 (0)