Skip to main content

Data Contracts

Data contracts define the schema, quality expectations, SLA guarantees, and governance rules for data assets. Contracts can be attached directly to entities or inherited from data products.

Supported Entity Types

Data contracts can be attached to the following entity types:
Entity TypeSchema ValidationQuality ValidationSemantics Validation
Table
Topic
API Endpoint
Dashboard Data Model
Stored Procedure
Database
Database Schema
Dashboard
Chart
Pipeline
Search Index
API Collection
ML Model
Container
Data Product

Contract Sections

A data contract consists of several optional sections:
SectionDescription
SchemaExpected column definitions — names, types, constraints
SemanticsBusiness rules — required owners, descriptions, domains, tags
Quality ExpectationsReferences to test cases that must pass
SLARefresh frequency, max latency, availability targets
Terms of UseAllowed/disallowed use cases, compliance requirements
SecurityAccess policies and classification requirements

Contract Status

StatusDescription
DraftContract is being defined, not enforced
ActiveContract is active and enforced
DeprecatedContract is deprecated, will be retired

API Endpoints

MethodEndpointDescription
GET/v1/dataContractsList data contracts
POST/v1/dataContractsCreate a data contract
GET/v1/dataContracts/{id}Get by ID
GET/v1/dataContracts/name/{fqn}Get by FQN
GET/v1/dataContracts/entityGet effective contract for an entity
PATCH/v1/dataContracts/{id}Update a data contract
PUT/v1/dataContractsCreate or update
DELETE/v1/dataContracts/{id}Delete by ID
DELETE/v1/dataContracts/name/{fqn}Delete by FQN
PUT/v1/dataContracts/restoreRestore soft-deleted
GET/v1/dataContracts/{id}/versionsList versions
GET/v1/dataContracts/{id}/versions/{version}Get specific version
POST/v1/dataContracts/{id}/validateValidate contract
GET/v1/dataContracts/{id}/resultsList execution results
GET/v1/dataContracts/{id}/results/latestGet latest result
PUT/v1/dataContracts/{id}/resultsAdd execution result
GET/v1/dataContracts/{id}/odcsExport to ODCS JSON
GET/v1/dataContracts/{id}/odcs/yamlExport to ODCS YAML
POST/v1/dataContracts/odcsImport from ODCS JSON
POST/v1/dataContracts/odcs/yamlImport from ODCS YAML

Inheritance

When an entity belongs to a Data Product that has a data contract, the entity inherits the contract’s semantics, SLA, terms of use, and security rules. The entity can also have its own contract that takes precedence over inherited properties.