Loading…
Loading…
Validation lets you check that traffic conforms to the contract — and, crucially, lets you see what enforcing would reject before you turn it on.
Validation lets you check that traffic conforms to the contract — and, crucially, lets you see what enforcing would reject before you turn it on. There are two independent validation options:
Both are conversion options and are the only two with a real per-Service override tier (system default → per service).
Each validation option has three modes. The non-enforcing modes are named differently for request vs response, but they mean the same thing — log only, do not reject.
| | Request validation | Response validation |
|---|---|---|
| Off | off | off |
| Log-only (preview) | shadow (default) | monitor (default) |
| Enforce | enforce | enforce |
No validation is performed. Conversion proceeds on a best-effort basis.
This is the default, and the reason validation de-risks rollout. In shadow/monitor mode the platform evaluates the contract on every call and records every would-be failure — but does not change behavior. Traffic is neither rejected nor altered.
That gives you a data-driven preview: turn shadow/monitor on, let real traffic flow, and inspect the would-be-rejected calls in observability. You can then see exactly what enforcing the contract would reject — before you flip the switch — and fix the data, the contract, or the field override accordingly instead of guessing.
Once the shadow/monitor data is clean, switch to enforce. Now non-conforming traffic is
rejected with a clear, coded error instead of being logged and passed through:
off / (default shadow|monitor) → inspect would-be failures → fix → enforce
Set the option platform-wide under Settings → Conversion defaults, then override per service under Services → your service as different services reach enforcement-readiness at different times.
Riding on top of the validation mode are per-field validation regexes — a pattern
constraint attached to a leaf field (UTF-8 / Hebrew-aware). These are direction-aware (separate
request and response patterns) and are authored as a field-level override.
pattern, so the
published contract documents the constraint.This is also where the onboarding-time "string fields without a validation regex" setting
fits: it governs whether the platform notifies, suggests, or silently applies a generic regex to
string fields that arrive with no XSD pattern during mapping generation (see the
conversion options reference).