json_schema
Checks messages against a provided JSONSchema definition but does not change the payload under any circumstances. If a message does not match the schema it can be caught using error handling methods outlined here.
# Config fields, showing default valueslabel: ""json_schema:schema: ""schema_path: ""
Please refer to the JSON Schema website for information and tutorials regarding the syntax of the schema.
Fields​
schema​
A schema to apply. Use either this or the schema_path field.
Type: string
Default: ""
schema_path​
The path of a schema document to apply. Use either this or the schema field.
Type: string
Default: ""
Examples​
With the following JSONSchema document:
{"$id": "https://example.com/person.schema.json","$schema": "http://json-schema.org/draft-07/schema#","title": "Person","type": "object","properties": {"firstName": {"type": "string","description": "The person's first name."},"lastName": {"type": "string","description": "The person's last name."},"age": {"description": "Age in years which must be equal to or greater than zero.","type": "integer","minimum": 0}}}
And the following Benthos configuration:
pipeline:processors:- json_schema:schema_path: "file://path_to_schema.json"- catch:- log:level: ERRORmessage: "Schema validation failed due to: ${!error()}"- bloblang: 'root = deleted()' # Drop messages that fail
If a payload being processed looked like:
{"firstName":"John","lastName":"Doe","age":-21}
Then a log message would appear explaining the fault and the payload would be dropped.