Skip to main content

Module probe

Module probe 

Source
Expand description

Live-response data quality: does the running server actually populate what its spec declares?

Spec reconciliation (crate::reconcile) proves the surface — every operation exists on both sides. Nothing there notices an endpoint that answers 200 with half its fields silently null, which is exactly how serde key mismatches and hand-copied structs fail. This module closes that gap with four checks over one probe pass:

  • population — which response fields carry data, diffed against a committed baseline so a field going null fails the gate (population, baseline)
  • coverage — every field the spec declares, so a field that never populates at all is locked as visible debt instead of staying invisible to the learned baseline (coverage)
  • shape — the response validated structurally against the spec’s own response schema (shape)
  • assertions — per-probe sanity bounds on values ([assert])

The engine here is pure: it takes JSON in and produces findings. The CLI half (manifest parsing, server launch, HTTP) lives in cargo-soothfast.

Modules§

assert
Per-probe sanity assertions: meta.regularMarketPrice > 0.
baseline
The committed population baseline: probes.lock.
coverage
Every field the spec declares for a response, as population paths.
population
Which fields of a JSON response actually carry data.
shape
Structural validation of a live response against the spec’s own response schema.