twitst4tz

twitter statistics web application
Log | Files | Refs | README | LICENSE

json-schema-secure.json (2570B)


      1 {
      2   "$schema": "http://json-schema.org/draft-07/schema#",
      3   "$id": "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-secure.json#",
      4   "title": "Meta-schema for the security assessment of JSON Schemas",
      5   "description": "If a JSON Schema fails validation against this meta-schema, it may be unsafe to validate untrusted data",
      6   "definitions": {
      7     "schemaArray": {
      8       "type": "array",
      9       "minItems": 1,
     10       "items": {"$ref": "#"}
     11     }
     12   },
     13   "dependencies": {
     14     "patternProperties": {
     15       "description": "prevent slow validation of large property names",
     16       "required": ["propertyNames"],
     17       "properties": {
     18         "propertyNames": {
     19           "required": ["maxLength"]
     20         }
     21       }
     22     },
     23     "uniqueItems": {
     24       "description": "prevent slow validation of large non-scalar arrays",
     25       "if": {
     26         "properties": {
     27           "uniqueItems": {"const": true},
     28           "items": {
     29             "properties": {
     30               "type": {
     31                 "anyOf": [
     32                   {
     33                     "enum": ["object", "array"]
     34                   },
     35                   {
     36                     "type": "array",
     37                     "contains": {"enum": ["object", "array"]}
     38                   }
     39                 ]
     40               }
     41             }
     42           }
     43         }
     44       },
     45       "then": {
     46         "required": ["maxItems"]
     47       }
     48     },
     49     "pattern": {
     50       "description": "prevent slow pattern matching of large strings",
     51       "required": ["maxLength"]
     52     },
     53     "format": {
     54       "description": "prevent slow format validation of large strings",
     55       "required": ["maxLength"]
     56     }
     57   },
     58   "properties": {
     59     "additionalItems": {"$ref": "#"},
     60     "additionalProperties": {"$ref": "#"},
     61     "dependencies": {
     62       "additionalProperties": {
     63         "anyOf": [
     64           {"type": "array"},
     65           {"$ref": "#"}
     66         ]
     67       }
     68     },
     69     "items": {
     70       "anyOf": [
     71         {"$ref": "#"},
     72         {"$ref": "#/definitions/schemaArray"}
     73       ]
     74     },
     75     "definitions": {
     76       "additionalProperties": {"$ref": "#"}
     77     },
     78     "patternProperties": {
     79       "additionalProperties": {"$ref": "#"}
     80     },
     81     "properties": {
     82       "additionalProperties": {"$ref": "#"}
     83     },
     84     "if": {"$ref": "#"},
     85     "then": {"$ref": "#"},
     86     "else": {"$ref": "#"},
     87     "allOf": {"$ref": "#/definitions/schemaArray"},
     88     "anyOf": {"$ref": "#/definitions/schemaArray"},
     89     "oneOf": {"$ref": "#/definitions/schemaArray"},
     90     "not": {"$ref": "#"},
     91     "contains": {"$ref": "#"},
     92     "propertyNames": {"$ref": "#"}
     93   }
     94 }