]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
doc: enforce more the completenes of json schema
authorPhilippe Antoine <pantoine@oisf.net>
Mon, 8 Sep 2025 17:33:13 +0000 (19:33 +0200)
committerVictor Julien <victor@inliniac.net>
Sat, 13 Sep 2025 06:40:10 +0000 (08:40 +0200)
see jq 'paths( objects | (.type == "object" and (has("additionalProperties") | not) )) | join(".")' etc/schema.json

fix and complete bittorrent on the way

etc/schema.json

index 251ade927126a5b0c80f0d713253daf32a8c89d5..781529f4c05effd0a8a86f9c82d41ebef97ed7b8 100644 (file)
@@ -26,6 +26,7 @@
                 },
                 "metadata": {
                     "type": "object",
+                    "additionalProperties": true,
                     "properties": {
                         "affected_product": {
                             "type": "array",
                             "type": "array",
                             "items": {
                                 "type": "object",
-                                "items": {
-                                    "type": "object",
-                                    "additionalProperties": false,
-                                    "required": [
-                                        "id",
-                                        "ip",
-                                        "port"
-                                    ],
-                                    "properties": {
-                                        "id": {
-                                            "type": "string"
-                                        },
-                                        "ip": {
-                                            "type": "string"
-                                        },
-                                        "port": {
-                                            "type": "number"
-                                        }
+                                "additionalProperties": false,
+                                "required": [
+                                    "id",
+                                    "ip",
+                                    "port"
+                                ],
+                                "properties": {
+                                    "id": {
+                                        "type": "string"
+                                    },
+                                    "ip": {
+                                        "type": "string"
+                                    },
+                                    "port": {
+                                        "type": "number"
                                     }
                                 }
                             }
                         "values": {
                             "type": "array",
                             "items": {
-                                "type": "object"
+                                "type": "object",
+                                "additionalProperties": false,
+                                "properties": {
+                                    "ip": {
+                                        "type": "string"
+                                    },
+                                    "port": {
+                                        "type": "number"
+                                    }
+                                }
                             }
                         }
                     }
                                         "type": "array",
                                         "minItems": 1,
                                         "items": {
-                                            "type": "object"
+                                            "type": "object",
+                                            "additionalProperties": true
                                         }
                                     },
                                     "prefix_code": {
                                                 "type": "array",
                                                 "minItems": 1,
                                                 "items": {
-                                                    "type": "object"
+                                                    "type": "object",
+                                                    "additionalProperties": true
                                                 }
                                             },
                                             "prefix_code": {
                                                 "type": "array",
                                                 "minItems": 1,
                                                 "items": {
-                                                    "type": "object"
+                                                    "type": "object",
+                                                    "additionalProperties": true
                                                 }
                                             },
                                             "prefix_code": {
                     "minItems": 1,
                     "items": {
                         "type": "object",
+                        "additionalProperties": false,
                         "properties": {
                             "rrname": {
                                 "description": "Resource name being requested",
             "properties": {
                 "entropy": {
                     "type": "object",
+                    "additionalProperties": true,
                     "suricata": {
                         "keywords": [
                             "entropy"
                 },
                 "flowints": {
                     "type": "object",
+                    "additionalProperties": true,
                     "suricata": {
                         "keywords": [
                             "flowint"
                     "minItems": 1,
                     "items": {
                         "type": "object",
+                        "additionalProperties": true,
                         "properties": {
                             "gid": {
                                 "type": "string"
                             "type": "boolean"
                         },
                         "properties": {
-                            "type": "object"
+                            "type": "object",
+                            "additionalProperties": true
                         },
                         "qos": {
                             "type": "integer"
                             "type": "string"
                         },
                         "properties": {
-                            "type": "object"
+                            "type": "object",
+                            "additionalProperties": true
                         },
                         "protocol_string": {
                             "type": "string"
                                     "type": "string"
                                 },
                                 "properties": {
-                                    "type": "object"
+                                    "type": "object",
+                                    "additionalProperties": true
                                 },
                                 "topic": {
                                     "type": "string"
                             "type": "boolean"
                         },
                         "properties": {
-                            "type": "object"
+                            "type": "object",
+                            "additionalProperties": true
                         },
                         "qos": {
                             "type": "integer"
                             "type": "integer"
                         },
                         "properties": {
-                            "type": "object"
+                            "type": "object",
+                            "additionalProperties": true
                         },
                         "qos": {
                             "type": "integer"
         },
         "ndpi": {
             "type": "object",
+            "additionalProperties": true,
             "description": "nDPI plugin, contents provided by 3rd party library"
         },
         "netflow": {
                     "properties": {
                         "copy_data_in": {
                             "type": "object",
+                            "additionalProperties": false,
                             "description": "CopyData message from CopyIn mode",
                             "properties": {
                                 "data_size": {
                                     "minItems": 1,
                                     "items": {
                                         "type": "object",
+                                        "additionalProperties": true,
                                         "properties": {
                                             "application_name": {
                                                 "type": "string"
                         },
                         "copy_data_out": {
                             "type": "object",
+                            "additionalProperties": false,
                             "description": "CopyData message from CopyOut mode",
                             "properties": {
                                 "data_size": {
                         },
                         "copy_in_response": {
                             "type": "object",
+                            "additionalProperties": false,
                             "description": "Backend/server response accepting CopyIn mode",
                             "properties": {
                                 "columns": {
                         },
                         "copy_out_response": {
                             "type": "object",
+                            "additionalProperties": false,
                             "description": "Backend/server response accepting CopyOut mode",
                             "properties": {
                                 "columns": {
                             "minItems": 1,
                             "items": {
                                 "type": "object",
+                                "additionalProperties": true,
                                 "properties": {
                                     "application_name": {
                                         "type": "string"
         },
         "pop3": {
             "type": "object",
+            "additionalProperties": false,
             "properties": {
                 "request": {
                     "type": "object",
+                    "additionalProperties": false,
                     "properties": {
                         "args": {
                             "type": "array",
                 },
                 "response": {
                     "type": "object",
+                    "additionalProperties": false,
                     "properties": {
                         "data": {
                             "type": "array",
                 },
                 "capture": {
                     "type": "object",
+                    "additionalProperties": false,
                     "properties": {
                         "kernel_drops": {
                             "type": "integer"
                 },
                 "exception_policy": {
                     "type": "object",
+                    "additionalProperties": false,
                     "properties": {
                         "app_layer": {
                             "type": "object",
             "type": "integer"
         },
         "stream_tcp": {
-            "type": "object"
+            "type": "object",
+            "additionalProperties": true
         },
         "suricata_version": {
             "type": "string"
         },
         "tcp": {
             "type": "object",
+            "additionalProperties": false,
             "properties": {
                 "ack": {
                     "type": "boolean"
                 },
                 "client_handshake": {
                     "type": "object",
+                    "additionalProperties": false,
                     "properties": {
                         "ciphers": {
                             "description": "TLS client cipher(s)",
                 },
                 "server_handshake": {
                     "type": "object",
+                    "additionalProperties": false,
                     "properties": {
                         "cipher": {
                             "description": "TLS server's chosen cipher",
         },
         "verdict_type": {
             "type": "object",
+            "additionalProperties": false,
             "properties": {
                 "action": {
                     "type": "string"
         },
         "exceptionPolicy": {
             "type": "object",
+            "additionalProperties": false,
             "properties": {
                 "bypass": {
                     "type": "integer",