Check of single property
Aggregated property lints
Function able to lint Schema AST
Main working function, traversing JSON Schema
It lints all properties on current level, then tries to extract all
subschemas from properties like items
, additionalItems
etc and
recursively lint them as well
Main working function, traversing JSON Schema
It lints all properties on current level, then tries to extract all
subschemas from properties like items
, additionalItems
etc and
recursively lint them as well
parsed JSON AST
non-empty list of summed failures (all, including nested) or unit in case of success
Check that Schema with non-object type doesn't contain object properties
Check that schema with type string
contains maxLength
property or has
other possibility to extract length
Check that string's maxLength
property isn't greater than Redshift VARCHAR(max), 65535
See http://docs.aws.amazon.com/redshift/latest/dg/r_Character_types.html
Check that array's minItems
property isn't greater than maxItems
Check that string's minLength
property isn't greater than maxLength
Check that schema with type number
or integer
contains both minimum
and maximum properties
Check that number's minimum
property isn't greater than maximum
Check that Schema with non-numeric type doesn't contain numeric properties
Check that Schema with non-object type doesn't contain object properties
Check that non-required properties have type null
Check that all required keys listed in properties
Check that all required keys listed in properties
take patternProperties
in account
Check that Schema with non-string type doesn't contain string properties
Check that schema contains known formats
Some property was processed successfully
Whole subschema was processed successfully
Contains Schema validation logic for JSON AST to find nonsense (impossible) JSON Schemas, ie. Schemas which cannot validate ANY value, yet syntactically correct. This doesn't have logic to validate accordance to JSON Schema specs such as non-empty
required
or numericmaximum
. Separate validator should be used for that.https://github.com/snowplow/iglu/issues/164