Skip to content

Commit 37e6a35

Browse files
authored
Merge pull request #140 from kubescape/deprecate-ConfigInputs
Deprecate ConfigInputs, use ControlConfigInputs
2 parents 0f7c874 + 56c721e commit 37e6a35

3 files changed

Lines changed: 42 additions & 1 deletion

File tree

reporthandling/datastructures.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ type PolicyRule struct {
5959
Match []RuleMatchObjects `json:"match" bson:"match"` // k8s resources this rule needs as inputs
6060
DynamicMatch []RuleMatchObjects `json:"dynamicMatch,omitempty" bson:"dynamicMatch,omitempty"` // NON-k8s resources this rule needs as inputs, acquired by host-scanner
6161
RuleDependencies []RuleDependency `json:"ruleDependencies" bson:"ruleDependencies"` // packages this rule uses
62-
ConfigInputs []string `json:"configInputs" bson:"configInputs"` // DEPRECATED
6362
ControlConfigInputs []ControlConfigInputs `json:"controlConfigInputs" bson:"controlConfigInputs" ` // list of inputs from postureControlInputs in customerConfig for this rule
6463
Description string `json:"description" bson:"description"`
6564
Remediation string `json:"remediation" bson:"remediation"`

resources/resourcesutils.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/open-policy-agent/opa/storage/inmem"
1111

1212
k8sinterface "github.com/kubescape/k8s-interface/k8sinterface"
13+
"github.com/kubescape/opa-utils/reporthandling"
1314
"k8s.io/client-go/rest"
1415
)
1516

@@ -88,6 +89,20 @@ func (data *RegoDependenciesData) GetFilteredPostureControlInputs(settings []str
8889
return jsonObj
8990
}
9091

92+
func (data *RegoDependenciesData) GetFilteredPostureControlConfigInputs(settings []reporthandling.ControlConfigInputs) map[string][]string {
93+
jsonObj := map[string][]string{}
94+
for i := range settings {
95+
splitted := strings.Split(settings[i].Path, ".")
96+
if len(splitted) != 3 {
97+
continue
98+
}
99+
if v, k := data.PostureControlInputs[splitted[2]]; k && v != nil {
100+
jsonObj[splitted[2]] = v
101+
}
102+
}
103+
return jsonObj
104+
}
105+
91106
// TOStorage - converts rego data inputs to a storage.Store object.
92107
func (data *RegoDependenciesData) TOStorage() (storage.Store, error) {
93108
return inmem.NewFromObject(map[string]interface{}{"postureControlInputs": data.PostureControlInputs,

resources/resourcesutils_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"strings"
55
"testing"
66

7+
"github.com/kubescape/opa-utils/reporthandling"
78
"github.com/stretchr/testify/assert"
89
)
910

@@ -20,3 +21,29 @@ func TestGetFilteredPostureControlInputs(t *testing.T) {
2021
_, ok = postureControlInputs[splitted1[2]]
2122
assert.False(t, ok)
2223
}
24+
25+
func TestGetFilteredPostureControlConfigInputs(t *testing.T) {
26+
regoInputData := RegoDependenciesData{}
27+
regoInputData.PostureControlInputs = map[string][]string{"sensitiveKeyNames": {"keyA", "keyB"}}
28+
29+
inputs := []reporthandling.ControlConfigInputs{
30+
{
31+
Path: "settings.postureControlInputs.sensitiveKeyNames",
32+
Name: "Sensitive Key Names",
33+
},
34+
{
35+
Path: "settings.postureControlInputs.blabla",
36+
Name: "Blabla",
37+
},
38+
}
39+
40+
postureControlInputs := regoInputData.GetFilteredPostureControlConfigInputs(inputs)
41+
42+
splitted0 := strings.Split(inputs[0].Path, ".")
43+
_, ok := postureControlInputs[splitted0[2]]
44+
assert.True(t, ok)
45+
46+
splitted1 := strings.Split(inputs[1].Path, ".")
47+
_, ok = postureControlInputs[splitted1[2]]
48+
assert.False(t, ok)
49+
}

0 commit comments

Comments
 (0)