Skip to content

Commit d5bafc2

Browse files
committed
fix custom unmarshalling
Signed-off-by: Markus Blaschke <mblaschke82@gmail.com>
1 parent 59e4863 commit d5bafc2

File tree

4 files changed

+41
-40
lines changed

4 files changed

+41
-40
lines changed

auditor/validator/validation.field.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,28 @@ import (
99
type (
1010
AuditConfigValidationRuleField struct {
1111
// general
12-
Not bool `yaml:"bool,omitempty"`
13-
Required bool `yaml:"required,omitempty"`
12+
Not bool `json:"bool,omitempty"`
13+
Required bool `json:"required,omitempty"`
1414

1515
// CAST
16-
ParseAs *string `yaml:"castTo,omitempty"`
16+
ParseAs *string `json:"castTo,omitempty"`
1717

1818
// STRING type
19-
Match *string `yaml:"match,omitempty"`
20-
Regexp *string `yaml:"regexp,omitempty"`
21-
regexp *regexp.Regexp `yaml:"-"`
19+
Match *string `json:"match,omitempty"`
20+
Regexp *string `json:"regexp,omitempty"`
21+
regexp *regexp.Regexp `json:"-"`
2222

2323
// STRINGLIST type
24-
AllOf *[]string `yaml:"allOf,omitempty,flow"`
25-
AnyOf *[]string `yaml:"anyOf,omitempty,flow"`
24+
AllOf *[]string `json:"allOf,omitempty,flow"`
25+
AnyOf *[]string `json:"anyOf,omitempty,flow"`
2626

2727
// NUMERIC
28-
Min *float64 `yaml:"min,omitempty"`
29-
Max *float64 `yaml:"max,omitempty"`
28+
Min *float64 `json:"min,omitempty"`
29+
Max *float64 `json:"max,omitempty"`
3030

3131
// DURATION
32-
MinDuration *time.Duration `yaml:"minDuration,omitempty"`
33-
MaxDuration *time.Duration `yaml:"maxDuration,omitempty"`
32+
MinDuration *time.Duration `json:"minDuration,omitempty"`
33+
MaxDuration *time.Duration `json:"maxDuration,omitempty"`
3434
}
3535
)
3636

auditor/validator/validation.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,35 @@ import (
1010

1111
type (
1212
AuditConfigValidation struct {
13-
Enabled bool `yaml:"enabled"`
14-
Metrics *bool `yaml:"metrics"`
15-
Query *string `yaml:"query,omitempty"`
16-
Timespan *string `yaml:"timespan,omitempty"`
17-
Workspaces *[]string `yaml:"workspaces,omitempty"`
18-
AdditionalWorkspaces *[]string `yaml:"additionalWorkspaces,omitempty"`
19-
Rules []*AuditConfigValidationRule `yaml:"rules,omitempty"`
20-
Prometheus AuditConfigValidationPrometheus `yaml:"prometheus,omitempty"`
21-
Report AuditConfigValidationReport `yaml:"report,omitempty"`
22-
Mapping *map[string]string `yaml:"mapping,omitempty"`
23-
Enrich bool `yaml:"enrich,omitempty"`
24-
ScopeRules map[string][]*AuditConfigValidationRule `yaml:"scopeRules,omitempty"`
13+
Enabled bool `json:"enabled"`
14+
Metrics *bool `json:"metrics"`
15+
Query *string `json:"query,omitempty"`
16+
Timespan *string `json:"timespan,omitempty"`
17+
Workspaces *[]string `json:"workspaces,omitempty"`
18+
AdditionalWorkspaces *[]string `json:"additionalWorkspaces,omitempty"`
19+
Rules []*AuditConfigValidationRule `json:"rules,omitempty"`
20+
Prometheus AuditConfigValidationPrometheus `json:"prometheus,omitempty"`
21+
Report AuditConfigValidationReport `json:"report,omitempty"`
22+
Mapping *map[string]string `json:"mapping,omitempty"`
23+
Enrich bool `json:"enrich,omitempty"`
24+
ScopeRules map[string][]*AuditConfigValidationRule `json:"scopeRules,omitempty"`
2525
}
2626

2727
AuditConfigValidationPrometheus struct {
28-
Labels map[string]string `yaml:"labels,omitempty"`
28+
Labels map[string]string `json:"labels,omitempty"`
2929
}
3030

3131
AuditConfigValidationReport struct {
3232
Filter struct {
33-
Status string `yaml:"status,omitempty"`
34-
Resource string `yaml:"resource,omitempty"`
35-
Rule string `yaml:"rule,omitempty"`
36-
} `yaml:"filter,omitempty"`
33+
Status string `json:"status,omitempty"`
34+
Resource string `json:"resource,omitempty"`
35+
Rule string `json:"rule,omitempty"`
36+
} `json:"filter,omitempty"`
3737

3838
Settings struct {
39-
GroupBy string `yaml:"groupBy,omitempty"`
40-
Fields string `yaml:"fields,omitempty"`
41-
} `yaml:"settings,omitempty"`
39+
GroupBy string `json:"groupBy,omitempty"`
40+
Fields string `json:"fields,omitempty"`
41+
} `json:"settings,omitempty"`
4242
}
4343
)
4444

auditor/validator/validation.rule.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package validator
22

33
import (
4+
"encoding/json"
45
"errors"
56
"fmt"
67
"regexp"
@@ -20,19 +21,19 @@ import (
2021

2122
type (
2223
AuditConfigValidationRule struct {
23-
Rule string `yaml:"rule"`
24+
Rule string `json:"rule"`
2425
Fields map[string]AuditConfigValidationRuleField
25-
Action string `yaml:"action"`
26+
Action string `json:"action"`
2627

2728
// FUNC
28-
CustomFunction *string `yaml:"func,omitempty"`
29+
CustomFunction *string `json:"func,omitempty"`
2930
customFunction *otto.Script
3031

31-
Stats AuditConfigValidationRuleStats `yaml:"stats,flow"`
32+
Stats AuditConfigValidationRuleStats `json:"stats,flow"`
3233
}
3334

3435
AuditConfigValidationRuleStats struct {
35-
Matches int64 `yaml:"matches"`
36+
Matches int64 `json:"matches"`
3637
}
3738
)
3839

@@ -42,9 +43,9 @@ var (
4243
Logger *zap.SugaredLogger
4344
)
4445

45-
func (matcher *AuditConfigValidationRule) UnmarshalYAML(unmarshal func(interface{}) error) error {
46+
func (matcher *AuditConfigValidationRule) UnmarshalJSON(b []byte) error {
4647
config := map[string]interface{}{}
47-
err := unmarshal(&config)
48+
err := json.Unmarshal(b, &config)
4849
if err == nil {
4950
matcher.Fields = map[string]AuditConfigValidationRuleField{}
5051
matcher.Action = "allow"

auditor/validator/validator_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99

1010
type (
1111
TestValidator struct {
12-
Test *AuditConfigValidation `yaml:"test"`
12+
Test *AuditConfigValidation `json:"test"`
1313
}
1414
)
1515

0 commit comments

Comments
 (0)