Cloud
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.
Please refer to the JSON Schema website for information and tutorials regarding the syntax of the schema.
-
Common
-
Advanced
processor:
label: ""
json_schema:
schema: "" # No default (optional)
schema_path: "" # No default (optional)
processor:
label: ""
json_schema:
schema: "" # No default (optional)
schema_path: "" # No default (optional)
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 Redpanda Connect configuration:
pipeline:
processors:
- json_schema:
schema_path: "file://path_to_schema.json"
- catch:
- log:
level: ERROR
message: "Schema validation failed due to: ${!error()}"
- mapping: '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.
Was this helpful?