Skip to main content
An audit passes when its query returns zero rows. Every returned row is a violation.

Singular audit

Concrete audits live recursively under audits/, excluding audits/generic/:
Audits require at least one model __ref. Source refs are not allowed.

Generic audit

Reusable definitions live under audits/generic/:
  • @name inserts a raw identifier, expression, number, string, or list.
  • @'name' inserts quoted SQL literals.
Instantiate definitions from a pipeline’s schema.yml:
Column-level instances receive model and column; model-level instances receive model. Implicit context values cannot be overridden.

Live audits

Live audits resolve refs to current direct tables or published virtual-environment views. A failing error-severity audit exits 1; warnings do not. Audit selectors support bare model names, pipeline:<name>, and an optional leading + to include upstream models. A trailing + is not supported for audits.

Staged audits

This virtual-environment command resolves refs to deployment tables, combines data-quality results with replay readiness, and reports ready, caution, or not_ready. audit backfill does not accept --select. Error-severity failures recommend against publishing, but StreamBuild does not enforce that recommendation as a publish lock. Warning-severity failures are included in the results without changing the assessment by themselves. Python macros are available in audit SQL bodies.