Contrato de operações.
Os metadados de operações informam aos painéis e aos processos de suporte como uma tabela deve ser operada. ContractForge registra essas informações; a entrega da notificação permanece externa.
Exemplo completo
- YAML
- Python
_metadata:
contract_version: 1.0.0
ownership:
business_owner: crm-analytics
technical_owner: data-engineering
steward: data-governance
support_group: data-platform
escalation_group: data-platform-oncall
operations:
criticality: high
expected_frequency: daily
freshness_sla_minutes: 180
alert_on_failure: true
alert_on_quality_fail: true
runbook_url: https://example.com/runbooks/s_customers
owners: [data-engineering]
groups: [data-platform, data-governance]
tags:
domain: crm
tier: curated
from contractforge import ingest
result = ingest(
source="main.raw.customers",
catalog="main",
target_schema="crm_curated",
target_table="s_customers",
mode="upsert",
merge_keys=["customer_id"],
operations={
"ownership": {
"business_owner": "crm-analytics",
"technical_owner": "data-engineering",
"steward": "data-governance",
"support_group": "data-platform",
"escalation_group": "data-platform-oncall",
},
"operations": {
"criticality": "high",
"expected_frequency": "daily",
"freshness_sla_minutes": 180,
"alert_on_failure": True,
"alert_on_quality_fail": True,
"runbook_url": "https://example.com/runbooks/s_customers",
"owners": ["data-engineering"],
"groups": ["data-platform", "data-governance"],
"tags": {"domain": "crm", "tier": "curated"},
},
},
)
Em modo bundle, o *.ingestion.yaml correspondente define o target da tabela. Não coloque target no arquivo de operações, a menos que você queira uma verificação explícita de compatibilidade.
Campos
| Campo | Tipo | Padrão | Usar |
|---|---|---|---|
_metadata | objeto | Metadados de arquivo para auditoria e verificações de pacotes. | |
target | objeto | opcional | Verificação de compatibilidade opcional com relação ao destino de ingestão. |
ownership.business_owner | string | nulo | nulo | Proprietário de empresa ou grupo empresarial responsável. |
ownership.technical_owner | string | nulo | nulo | Proprietário técnico ou grupo de engenharia. |
ownership.steward | string | nulo | nulo | Administrador de dados ou proprietário de governança. |
ownership.support_group | string | nulo | nulo | Grupo de apoio primário. |
ownership.escalation_group | string | nulo | nulo | Grupo de escalonamento para incidentes. |
operations.criticality | low | medium | high | critical | nulo | Criticidade operacional. |
operations.expected_frequency | hourly | daily | weekly | monthly | ad_hoc | nulo | Cadência de corrida esperada. |
operations.freshness_sla_minutes | inteiro | nulo | nulo | SLA de frescor em minutos. |
operations.alert_on_failure | booleano | falso | Sinalizador para alerta de falha externa. |
operations.alert_on_quality_fail | booleano | falso | Sinalizador para alerta de qualidade externo. |
operations.runbook_url | string | nulo | nulo | URL do runbook. |
operations.owners | string | lista[string] | [] | Identificadores adicionais do proprietário. |
operations.groups | string | lista[string] | [] | Grupos associados à tabela ou produto de dados. |
operations.tags | objeto[string,string] | Tags operacionais para dashboards e agrupamento de custos. | |
criticality, expected_frequency, freshness_sla_minutes, alert_on_failure, alert_on_quality_fail, runbook_url, owners, groups, tags | o mesmo que aninhado | mesmo | Aliases simples aceitos para arquivos compactos. O formulário operations.* aninhado é mais claro. |