Skip to content

Commit

Permalink
🐛 Load configuration files in YAML format
Browse files Browse the repository at this point in the history
Closes #71

Signed-off-by: Salim Afiune Maya <[email protected]>
  • Loading branch information
afiune committed Nov 17, 2024
1 parent 1a6e6a1 commit 1892d0e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ require (
github.com/shurcooL/graphql v0.0.0-20230722043721-ed46e5a46466
github.com/stretchr/testify v1.9.0
golang.org/x/oauth2 v0.23.0
gopkg.in/yaml.v3 v3.0.1
)

require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
golang.org/x/crypto v0.22.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
17 changes: 11 additions & 6 deletions internal/signer/signer.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
jose "github.com/go-jose/go-jose/v3"
jwt "github.com/go-jose/go-jose/v3/jwt"
"golang.org/x/oauth2"
"gopkg.in/yaml.v3"
)

const serviceAccountIssuer = "mondoo/ams"
Expand All @@ -26,11 +27,11 @@ var (
)

type serviceAccountCredentials struct {
Mrn string `json:"mrn,omitempty"`
ParentMrn string `json:"parent_mrn,omitempty"`
PrivateKey string `json:"private_key,omitempty"`
Certificate string `json:"certificate,omitempty"`
ApiEndpoint string `json:"api_endpoint,omitempty"`
Mrn string `json:"mrn,omitempty" yaml:"mrn,omitempty"`
ParentMrn string `json:"parent_mrn,omitempty" yaml:"parent_mrn,omitempty"`
PrivateKey string `json:"private_key,omitempty" yaml:"private_key,omitempty"`
Certificate string `json:"certificate,omitempty" yaml:"certificate,omitempty"`
ApiEndpoint string `json:"api_endpoint,omitempty" yaml:"api_endpoint,omitempty"`
}

// privateKeyFromBytes loads a .p8 certificate from an in memory byte array and
Expand All @@ -56,7 +57,11 @@ func NewServiceAccountTokenSource(data []byte) (*serviceAccountTokenSource, *ser
var credentials *serviceAccountCredentials
err := json.Unmarshal(data, &credentials)
if credentials == nil || err != nil {
return nil, nil, errors.New("valid service account needs to be provided")
// if JSON format didn't work, try YAML
err = yaml.Unmarshal(data, &credentials)
if credentials == nil || err != nil {
return nil, nil, errors.New("valid service account needs to be provided")
}
}

// verify that we can read the private key
Expand Down

0 comments on commit 1892d0e

Please sign in to comment.