Data Design Standard¶
Estado: activo
Scope: global
tenant_id: global
Owner: OpenClaw Platform Governance
Fuente de verdad: docs/governance/standards/DATA-DESIGN-STANDARD.md
Objetivo¶
Definir la norma base para futuras tablas PostgreSQL derivadas de SGC y
otras fuentes, de manera que sirvan al mismo tiempo para operacion,
aplicaciones, alarmas, automatizaciones, analisis con Python, machine
learning, LLM / IA, auditoria, trazabilidad y sincronizacion robusta.
Este estandar es global y aplica a dominios como Clientes, Productos,
Ventas y futuras fuentes multi-tenant.
No crea tablas, no define migraciones y no reemplaza los contratos de cada tenant o fuente.
Regla madre¶
Toda tabla futura debe diseñarse no solo para guardar datos, sino para poder:
- identificar el registro con claridad
- preservar origen y trazabilidad
- auditar sincronizaciones y cambios
- sostener lectura operativa performante
- habilitar analitica futura sin remodelado destructivo
- conservar senales utiles para
MLyLLM / IA
Regla de aplicabilidad¶
- no todos los campos de este estandar aplican a todas las tablas
- toda tabla debe justificar que campos usa y cuales no usa
created_atyupdated_atson obligatorios salvo excepcion documentada- los datos del sistema origen no reemplazan timestamps internos
fecha_alta_sgcno es igual acreated_atfecha_modificacion_origen, si existe, debe guardarse aparte
Categorias de campos recomendados¶
1. Identidad¶
Campos recomendados:
idinternotenant_idsource_keyocodigo_origen
Reglas:
idinterno sirve como identificador tecnico estable de la tabla destinotenant_ides obligatorio en tablasscope=tenantsource_keyocodigo_origenpreserva la identidad funcional del origen- cuando exista una clave logica fuerte, debe quedar explicitada y defendida por indices y validaciones
Aplicacion ya validada para APV / SOURCE-001:
tenant_id + codigo_clientequeda documentado como clave logica fuertecodigo_clientedebe canonicalizarse comoNULLIF(LTRIM(RTRIM([Codigo])), '')Telefono / WhatsAppno debe usarse como identificador unico
2. Trazabilidad¶
Campos recomendados:
source_systemsource_objectsource_query_versionsync_batch_idsource_row_hashcreated_atupdated_atextracted_atlast_seen_at
Reglas:
source_systemidentifica el sistema origensource_objectidentifica vista, tabla, archivo o endpoint origensource_query_versionpermite saber con que logica se extrajo el datosync_batch_idpermite auditar cada corrida de syncsource_row_hashpermite detectar cambios sin comparar campo por campocreated_atyupdated_atpertenecen a la fundacion de datos, no al origenextracted_atrefleja cuando la fila fue leida desde origenlast_seen_atrefleja la ultima vez que la fila fue observada en una extraccion valida
3. Estado y vigencia¶
Campos recomendados:
record_statusis_currentvalid_fromvalid_to
Reglas:
record_statusdebe separar estado funcional de estado tecnicois_currentfacilita lectura de la version vigente cuando existe historicovalid_fromyvalid_topermiten trazabilidad temporal- baja comercial, suspension o inactividad no equivalen a
hard delete
4. Calidad de dato¶
Campos recomendados:
data_quality_statusvalidation_statusvalidation_notes
Reglas:
- la calidad debe poder leerse fila a fila o por lote cuando haga falta
validation_statusdebe distinguir validado, pendiente, observado o fallidovalidation_notesdebe usarse para excepciones concretas, no como reemplazo de modelado
5. Preparacion analitica y IA¶
Campos recomendados:
- campos normalizados
- campos derivados
features_jsonmetadata_json
Reglas:
- distinguir dato
raw, dato normalizado y dato derivado - no perder senales comerciales importantes por simplificacion temprana
features_jsonsirve parafeaturesflexibles de analitica yMLmetadata_jsonsirve para metadata flexible no criticaJSONno debe reemplazar columnas criticas, claves ni filtros principales
Criterio minimo por capa¶
Raw / staging¶
- preservar la mayor fidelidad posible al origen
- conservar valores
rawrelevantes comoestado_rawowhatsapp_raw - registrar extraccion, batch y hash cuando aplique
Core¶
- consolidar identidad, normalizacion y trazabilidad operativa
- exponer claves claras, timestamps internos y estado funcional consistente
- separar lo critico en columnas explicitas
Analytics¶
- derivar agregados,
features, snapshots y lecturas de consumo - no reemplazar la trazabilidad del
core - facilitar consultas de analisis sin destruir granularidad de origen
Reglas de performance¶
- definir claves claras desde el diseño
- indexar por
tenant_id + clave logicacuando aplique - indexar por
source_row_hashcuando se use para deteccion de cambios - indexar por
last_seen_atcuando se use para auditoria o reconciliacion - separar
raw / staging,coreyanalytics - evitar
JSONcomo reemplazo de columnas criticas - usar
JSONsolo para metadata flexible ofeaturesno criticas - diseñar para lectura performante y analisis futuro, no solo para carga
Criterio para IA / ML¶
- preservar historico cuando el dato tenga valor de decision
- no hacer
hard deletesalvo excepcion documentada - mantener cambios trazables
- facilitar construccion futura de
features - distinguir datos
raw, normalizados y derivados - evitar perder senales comerciales importantes
Regla sobre historico y borrado¶
- la desaparicion de un registro en una extraccion no equivale por defecto a eliminacion logica del dominio
- el
hard deletedebe ser excepcional y quedar documentado - cuando un cambio sea importante para decision, auditoria o analitica, debe preservarse como historico, vigencia o snapshot
Checklist minimo por tabla futura¶
- identidad explicita
tenant_idcuando aplique- clave logica justificada
created_atyupdated_atpresentes o excepcion documentada- timestamps de origen diferenciados de timestamps internos
- estrategia de trazabilidad definida
- estrategia de estado y vigencia definida
- estrategia de calidad definida
- criterios de performance definidos
- decision explicita sobre historico,
hard deletey uso deJSON
Relacion con otros contratos¶
MULTI-TENANT-FOUNDATION.mddefine el aislamiento global y por tenantDATA-FOUNDATION.mddefine la arquitectura documental de la capa de datos- los contratos por tenant y por fuente deben aplicar este estandar y justificar sus excepciones
Regla final¶
Ninguna tabla futura de la Data Foundation deberia considerarse bien
diseñada si no puede explicar:
- cual es su identidad estable
- de que fuente viene
- cuando fue creada y actualizada internamente
- que lote la cargo
- como detecta cambios
- que historico preserva
- que senales deja disponibles para operacion, analitica y
IA