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 Type | Schema Validation | Quality Validation | Semantics 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:| Section | Description |
|---|---|
| Schema | Expected column definitions — names, types, constraints |
| Semantics | Business rules — required owners, descriptions, domains, tags |
| Quality Expectations | References to test cases that must pass |
| SLA | Refresh frequency, max latency, availability targets |
| Terms of Use | Allowed/disallowed use cases, compliance requirements |
| Security | Access policies and classification requirements |
Contract Status
| Status | Description |
|---|---|
Draft | Contract is being defined, not enforced |
Active | Contract is active and enforced |
Deprecated | Contract is deprecated, will be retired |
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/dataContracts | List data contracts |
POST | /v1/dataContracts | Create a data contract |
GET | /v1/dataContracts/{id} | Get by ID |
GET | /v1/dataContracts/name/{fqn} | Get by FQN |
GET | /v1/dataContracts/entity | Get effective contract for an entity |
PATCH | /v1/dataContracts/{id} | Update a data contract |
PUT | /v1/dataContracts | Create or update |
DELETE | /v1/dataContracts/{id} | Delete by ID |
DELETE | /v1/dataContracts/name/{fqn} | Delete by FQN |
PUT | /v1/dataContracts/restore | Restore soft-deleted |
GET | /v1/dataContracts/{id}/versions | List versions |
GET | /v1/dataContracts/{id}/versions/{version} | Get specific version |
POST | /v1/dataContracts/{id}/validate | Validate contract |
GET | /v1/dataContracts/{id}/results | List execution results |
GET | /v1/dataContracts/{id}/results/latest | Get latest result |
PUT | /v1/dataContracts/{id}/results | Add execution result |
GET | /v1/dataContracts/{id}/odcs | Export to ODCS JSON |
GET | /v1/dataContracts/{id}/odcs/yaml | Export to ODCS YAML |
POST | /v1/dataContracts/odcs | Import from ODCS JSON |
POST | /v1/dataContracts/odcs/yaml | Import 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.Create Contract
Create a new data contract for an entity.
List Contracts
List and filter data contracts.
Retrieve Contract
Get a contract by ID, FQN, or entity.
Validate
Validate contracts and view execution results.
Import & Export
Import and export contracts using the Open Data Contract Standard (ODCS) format.