Data Contract Catalog
Data contracts make interface ownership explicit between producer and consumer teams before a breaking change lands in production.
Why this is needed
- Dashboards break because nobody knew who depended on a table.
- Wiki contracts are not queryable or approved.
- Packages can promote contract versions with models.
Proposed entities in EntiHub
Governance settings
| Setting | Recommended value | Why |
|---|---|---|
approvalRequired |
true |
Contract changes need producer + consumer awareness. |
historyEnabled |
true |
History of breaking changes. |
allowSameAuthorApproval |
false |
Maker/checker separation for sensitive changes. |
deletedRetentionDays |
90 (or higher) |
Soft-delete retention for auditability. |
Entity definition (YAML sketch)
name: data_contract
displayName: Data contract
domain: Data Platform
description: Data contract
version: "1.0.0"
approvalRequired: true
historyEnabled: true
deletedRetentionDays: 90
displayRefColumn: contract_code
uniqueConstraints:
- name: uq_data_contract_0
columns: [contract_code, version]
columns:
- name: contract_code
dataType: string
nullable: false
maxLength: 64
- name: producer_team
dataType: string
nullable: false
maxLength: 128
- name: consumer_team
dataType: string
nullable: false
maxLength: 128
- name: dataset_name
dataType: string
nullable: false
maxLength: 128
- name: sla_hours
dataType: int
nullable: true
- name: breaking_change_policy
dataType: string
nullable: false
maxLength: 256
- name: version
dataType: string
nullable: false
maxLength: 32
- name: status
dataType: string
nullable: false
maxLength: 16
YAML sketches
Sketches highlight the important fields and governance flags. Trim or extend columns to match your domain. See Setup Entity for the full YAML reference.
Sample data
| contract_code | producer_team | consumer_team | dataset_name | sla_hours | breaking_change_policy | version | status |
|---|---|---|---|---|---|---|---|
| DC-CUST-DIM | MDM | BI | dim_customer | 4 | 14-day notice + major version | 1.2.0 | active |
Benefits for the company
- Dependencies are visible before breaking changes.
- SLA ownership is explicit.
- Fits package-based multi-env promotion.