Skip to content

Contracts

Schema contracts allow you to define and validate the expected shape of your data sources over time.

Models

Data contract models.

ColumnContract

Bases: BaseModel

Contract for a single column.

Checks can be simple strings ("not_null", "unique") or dicts with params ({"range": {"min": 0.01}}, {"accepted_values": ["USD", "EUR"]}).

SchemaContract

Bases: BaseModel

Schema contract defining expected columns.

SLAConfig

Bases: BaseModel

Service Level Agreement configuration.

ContractConfig

Bases: BaseModel

Full data contract configuration.

ContractViolation

Bases: BaseModel

A single contract violation.

SchemaDrift

Bases: BaseModel

Schema drift detected between contract and actual table.

ContractResult

Bases: BaseModel

Result of contract validation.

ContractChange

Bases: BaseModel

A single change between two contract versions.

Validator

Data contract validation.

validate_contract(contract, connection, sources=None)

Validate a data contract against a live data source.

Performs three types of validation: 1. Schema check: compares actual columns against contract definition. 2. SLA check: validates freshness, completeness, availability. 3. Per-column checks: expands column-level checks (not_null, unique).

Diff

Contract diff: compare two versions of a data contract.

diff_contracts(old, new)

Compare two contract versions and return the list of changes.

Identifies added/removed/changed columns, type changes, SLA changes, and marks breaking changes.