@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-validate
Quick 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 on event.source.valid.
strict records 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