File tree Expand file tree Collapse file tree 3 files changed +32
-0
lines changed Expand file tree Collapse file tree 3 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -52,6 +52,8 @@ func decodeDiagnostics(obj *bindings.WafObject) (*Diagnostics, error) {
5252 objElem := unsafe .CastWithOffset [bindings.WafObject ](obj .Value , i )
5353 key := unsafe .GostringSized (unsafe.Cast [byte ](objElem .ParameterName ), objElem .ParameterNameLength )
5454 switch key {
55+ case "actions" :
56+ diags .Actions , err = decodeDiagnosticsEntry (objElem )
5557 case "custom_rules" :
5658 diags .CustomRules , err = decodeDiagnosticsEntry (objElem )
5759 case "exclusions" :
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ const ErrTimeout = wafErrors.ErrTimeout
2424type Diagnostics struct {
2525 Rules * DiagnosticEntry
2626 CustomRules * DiagnosticEntry
27+ Actions * DiagnosticEntry
2728 Exclusions * DiagnosticEntry
2829 RulesOverrides * DiagnosticEntry
2930 RulesData * DiagnosticEntry
@@ -38,6 +39,7 @@ type Diagnostics struct {
3839func (d * Diagnostics ) TopLevelError () error {
3940 fields := map [string ]* DiagnosticEntry {
4041 "rules" : d .Rules ,
42+ "actions" : d .Actions ,
4143 "custom_rules" : d .CustomRules ,
4244 "exclusions" : d .Exclusions ,
4345 "rules_override" : d .RulesOverrides ,
Original file line number Diff line number Diff line change @@ -1083,6 +1083,27 @@ func TestMetrics(t *testing.T) {
10831083 ],
10841084 "transformers": []
10851085 }
1086+ ],
1087+ "actions": [
1088+ {
1089+ "id": "block",
1090+ "type": "block_request",
1091+ "parameters": {
1092+ "status_code": 403,
1093+ "type": "auto"
1094+ }
1095+ },
1096+ {
1097+ "id": "redirect",
1098+ "type": "redirect_request",
1099+ "parameters": {
1100+ "status_code": 303,
1101+ "location": "/tmp"
1102+ }
1103+ },
1104+ {
1105+ "id": "block2"
1106+ }
10861107 ]
10871108}
10881109`
@@ -1103,6 +1124,13 @@ func TestMetrics(t *testing.T) {
11031124 require .Contains (t , waf .diagnostics .Rules .Loaded , "valid-rule" )
11041125 require .Equal (t , waf .diagnostics .Version , "1.2.7" )
11051126 require .Len (t , waf .diagnostics .Rules .Errors , 1 )
1127+
1128+ // Action diagnostics
1129+ require .Len (t , waf .diagnostics .Actions .Loaded , 2 )
1130+ require .Len (t , waf .diagnostics .Actions .Failed , 1 )
1131+ require .Contains (t , waf .diagnostics .Actions .Loaded , "block" )
1132+ require .Contains (t , waf .diagnostics .Actions .Loaded , "redirect" )
1133+ require .Contains (t , waf .diagnostics .Actions .Failed , "block2" )
11061134 })
11071135
11081136 t .Run ("RunDuration" , func (t * testing.T ) {
You can’t perform that action at this time.
0 commit comments