For the complete documentation index, see llms.txt. This page is also available as Markdown.

Test Results Import

How DQ test results land in ODD — push-client integrations with Great Expectations and dbt, statistical profiles via odd-collector-profiler, and the custom-framework ingestion endpoint.

Monitor test suite results in ODD Platform without thinking about masking or removing sensitive data — your datasets do not migrate to your ODD Platform installation, the platform gathers test results only.

The platform ingests test results from four canonical paths today, plus a custom-framework escape hatch.

Great Expectations

Push-client integration via odd-great-expectations. Add the action to your Great Expectations checkpoint configuration; on each validation run the action emits the validation results into ODD's Ingestion API. Test outcomes surface on the dataset's detail page Test reports tab and aggregate into the Quality Dashboard.

dbt tests

Push-client integration via odd-dbt. Run dbt test (or your normal dbt build); the adapter emits the test outcomes into ODD's Ingestion API. The same surface conventions as Great Expectations — per-dataset Test reports tab + dashboard aggregation.

Statistical profiles via odd-collector-profiler

Pull-strategy collector that uses Capital One's DataProfiler under the hood. See odd-collector-profiler for the adapter's per-source coverage. Profile results contribute to the platform's quality signal alongside framework-driven test outcomes — the dashboard renders them as part of the same anomaly-class breakdown.

Custom frameworks

For frameworks not covered by an existing adapter, push results directly through the platform's Ingestion API — the same contract every other producer uses. Author a small client that maps your framework's outcomes onto ODD's DataEntityList schema with the DataQualityTest and DataQualityTestRun entity types, and POST that payload to POST /ingestion/entities.

Do not send test results to POST /ingestion/entities/datasets/stats — that endpoint accepts a DatasetStatisticsList (per-column statistical profiles, the path the odd-collector-profiler uses), not a DataEntityList. A DataEntityList posted there does not land as test results. See the specification's Ingestion API documentation for the wire contract.

Where to next

Last updated