@walkeros/transformer-validate
v4.6.0
Published
JSON Schema contract validation transformer for walkerOS
Maintainers
Readme
@walkeros/transformer-validate
Enforce JSON Schema contracts on walkerOS events at runtime. Checks each event against its contract and records a verdict, either annotating the event and continuing or dropping it. Runs on both web and server.
Documentation • NPM Package • Source Code
Installation
npm install @walkeros/transformer-validateQuick start
import { startFlow } from '@walkeros/collector';
import { transformerValidate } from '@walkeros/transformer-validate';
await startFlow({
transformers: {
validate: {
code: transformerValidate,
config: { settings: { contract: [contractWeb], mode: 'strict' } },
},
},
});The same step in a bundled flow, referencing a named contract from the top-level
contract block:
{
"version": 4,
"contract": {
"web": {
"events": {
"order": {
"complete": {
"properties": { "data": { "required": ["total", "currency"] } }
}
}
}
}
},
"flows": {
"default": {
"transformers": {
"validate": {
"package": "@walkeros/transformer-validate",
"config": {
"settings": { "contract": ["$contract.web"], "mode": "strict" }
},
"next": "ga4"
}
}
}
}
}Modes
mode decides what happens to an invalid event:
pass(default) writes the verdict to the event and continues, so a downstream step can route onevent.source.valid.strictrecords the errors and stops the chain, so the event never reaches downstream steps.
The boolean verdict goes onto the event as data that travels with it. The issue list goes onto the ingest as diagnostics, so it survives even a strict-mode drop.
Documentation
Full configuration, contract references, and examples live in the docs: https://www.walkeros.io/docs/transformers/validate
Contribute
Feel free to contribute by submitting an issue, starting a discussion, or getting in contact.
License
MIT
