- Overview
- API Resources
Asynchronous table-level data-quality checks (freshness, missing-data) and constraint toggles, configured per table through the objectValidations field.
Object-level validations are asynchronous, table-level data-quality checks that evaluate a whole table rather than individual rows. Unlike the column-level validations applied inline during ingestion, they run after rollout — on a schedule or on demand — independently of any single ingest request.
You configure them per table in an objectValidations array, set when you save a schema or create a custom table and updated later with Patch a solution's schema.
Entry fields
Each entry in the objectValidations array is an object:
| Field | Required | Description |
|---|---|---|
type | Yes | One of freshness, missing_data_validation, foreign_key, unique_key. |
enabled | Yes | Whether the rule or toggle is active. |
severity | Data-quality rules only | error or warn. Required for freshness and missing_data_validation; not allowed on the constraint toggles. |
params | Data-quality rules only | Rule parameters. Required for freshness and missing_data_validation; not allowed on the constraint toggles. Keys depend on type (see below). |
Data-quality rules
-
freshness— flags a table whose most-recent record is older than a threshold.params:Param Description columnTimestamp or date column to measure recency on. thresholdNumeric age limit. unitOne of minutes,hours,days,months,years. -
missing_data_validation— flags a time window that received fewer rows than expected.params:Param Description columnTimestamp or date column that defines the window. intervalNumeric length of the window. unitOne of minutes,hours,days,months,years.minRowCountMinimum number of rows expected in the window.
Constraint toggles
foreign_key and unique_key entries enable or disable the asynchronous constraint checks for the table — they carry only type and enabled (no params, no severity). For example, { "type": "unique_key", "enabled": false } turns the async unique-key collision check off, and { "type": "foreign_key", "enabled": false } turns the async foreign-key reference check off.
These toggles are distinct from the structural foreignKeys / uniqueKeys per-table fields. Those define the constraints (which columns form a key, which table is referenced); the foreign_key / unique_key toggles only control whether the corresponding asynchronous check runs. The primary key constraint can never be toggled off.
Defaults
- The
objectValidationsarray is optional. Omit it and the table has no data-quality rules; its foreign-key and unique-key checks still run with their default behavior. - A constraint toggle you don't list runs on by default — the async foreign-key and unique-key checks are active unless you add an entry with
"enabled": false. The primary-key check is always on and cannot be disabled. - Within an entry there are no implicit defaults:
typeandenabledare always required, andfreshness/missing_data_validationadditionally requireseverityandparams. Omitting a required field returns400 Bad Request.
Example
"objectValidations": [
{ "type": "freshness",
"params": { "column": "order_date", "threshold": 24, "unit": "hours" },
"enabled": true, "severity": "error" },
{ "type": "missing_data_validation",
"params": { "column": "order_date", "interval": 1, "unit": "days", "minRowCount": 100 },
"enabled": true, "severity": "warn" },
{ "type": "unique_key", "enabled": false },
{ "type": "foreign_key", "enabled": false }
]
"objectValidations": [
{ "type": "freshness",
"params": { "column": "order_date", "threshold": 24, "unit": "hours" },
"enabled": true, "severity": "error" },
{ "type": "missing_data_validation",
"params": { "column": "order_date", "interval": 1, "unit": "days", "minRowCount": 100 },
"enabled": true, "severity": "warn" },
{ "type": "unique_key", "enabled": false },
{ "type": "foreign_key", "enabled": false }
]
Results
Object-level validations run asynchronously, and their outcomes surface in the Data Quality Dashboard.
Failures are reported under the OBJECT_VALIDATION error codes — DI_{E|W}_24F01 (freshness) and DI_{E|W}_24M01 (missing data), where E is an error and W a non-fatal warning.