Skip to content

Commit 32a9594

Browse files
committed
Added support for API token authentication;
1 parent e68108b commit 32a9594

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/Myra-Security-GmbH/terraform-provider-myrasec
33
go 1.24.0
44

55
require (
6-
github.com/Myra-Security-GmbH/myrasec-go/v2 v2.48.0
6+
github.com/Myra-Security-GmbH/myrasec-go/v2 v2.50.0
77
github.com/hashicorp/go-multierror v1.1.1
88
github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.0
99
golang.org/x/net v0.47.0

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
github.com/Myra-Security-GmbH/myrasec-go/v2 v2.48.0 h1:x9GDyLg47fYT9fst7MD4+nSkre7DeytGlq0Gu60xFjo=
22
github.com/Myra-Security-GmbH/myrasec-go/v2 v2.48.0/go.mod h1:Sb2R2gu+OpcGCqoH5fjFrduyGcmYj5mJTT+/zgV4zDE=
3+
github.com/Myra-Security-GmbH/myrasec-go/v2 v2.50.0 h1:YJP5UFVPFqclQEZkm233tM+XkzBUs7Wh1+GSVoylbFg=
4+
github.com/Myra-Security-GmbH/myrasec-go/v2 v2.50.0/go.mod h1:JNnRAqwOMJ3x7VCAhoN9csnqxki2VkeYCXKGDKMN4nE=
35
github.com/Myra-Security-GmbH/signature v1.1.0 h1:/Tv8SilN0P8k5fKArvQHkf9iJWU5H34TSvgEyyZ32f4=
46
github.com/Myra-Security-GmbH/signature v1.1.0/go.mod h1:kyX4FQ2XWvJQnvxkWmcyUIqG0jAzGL22fQMf2RTvoj0=
57
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=

myrasec/config.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
type Config struct {
1515
APIKey string
1616
Secret string
17+
APIToken string
1718
Language string
1819
APIBaseURL string
1920
APICacheTTL int
@@ -25,10 +26,12 @@ type Config struct {
2526
func (c Config) validate() error {
2627
var err *multierror.Error
2728

28-
if c.APIKey == "" {
29+
hasToken = c.APIToken != ""
30+
31+
if !hasToken && c.APIKey == "" {
2932
err = multierror.Append(err, fmt.Errorf("API Key must be configured for the Myrasec provider"))
3033
}
31-
if c.Secret == "" {
34+
if !hasToken && c.Secret == "" {
3235
err = multierror.Append(err, fmt.Errorf("API Secret must be configured for the Myrasec provider"))
3336
}
3437

@@ -41,7 +44,13 @@ func (c Config) validate() error {
4144

4245
// Client returns a new instance of myrasec API client
4346
func (c Config) Client() (*myrasec.API, error) {
44-
api, err := myrasec.New(c.APIKey, c.Secret)
47+
var api *myrasec.API
48+
var err error
49+
if c.APIToken != "" {
50+
api, err = myrasec.NewWithToken(c.APIToken)
51+
} else {
52+
api, err := myrasec.New(c.APIKey, c.Secret)
53+
}
4554
if err != nil {
4655
return nil, err
4756
}

myrasec/provider.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,22 @@ func Provider() *schema.Provider {
1313
Schema: map[string]*schema.Schema{
1414
"api_key": {
1515
Type: schema.TypeString,
16-
Required: true,
16+
Required: false,
1717
DefaultFunc: schema.EnvDefaultFunc("MYRASEC_API_KEY", nil),
1818
Description: "Your MYRA API Key",
1919
},
2020
"secret": {
2121
Type: schema.TypeString,
22-
Required: true,
22+
Required: false,
2323
DefaultFunc: schema.EnvDefaultFunc("MYRASEC_API_SECRET", nil),
2424
Description: "Your MYRA API Secret",
2525
},
26+
"api_token": {
27+
Type: schema.TypeString,
28+
Required: false,
29+
DefaultFunc: schema.EnvDefaultFunc("MYRASEC_API_TOKEN", nil),
30+
Description: "Your MYRA API Token",
31+
},
2632
"language": {
2733
Type: schema.TypeString,
2834
Optional: true,
@@ -95,6 +101,7 @@ func providerConfigure(ctx context.Context, d *schema.ResourceData) (any, diag.D
95101
config := Config{
96102
APIKey: d.Get("api_key").(string),
97103
Secret: d.Get("secret").(string),
104+
APIToken: d.Get("api_token").(string),
98105
Language: d.Get("language").(string),
99106
APIBaseURL: d.Get("api_base_url").(string),
100107
APICacheTTL: d.Get("api_cache_ttl").(int),

0 commit comments

Comments
 (0)