PDF-005B SOURCE-003 Staging Target Tables DDL Candidate¶
Fecha local: 2026-06-19
Estado:
DDL CANDIDATE PREPARADO / NO SQL EJECUTADO / NO LOAD / NO SYNC / STAGING ONLY
portal_visible = yes
Scope: tenant
tenant_id: alpuntodeventa
Owner: Gabi / Carlos Canu
Fuente de verdad:
docs/tenants/alpuntodeventa/business-observer/production/PDF-005B-SOURCE-003-STAGING-TARGET-TABLES-DDL-CANDIDATE.md
1. Contexto¶
PDF-005A preparo el gate documental para backup post-DDL y preflight de
carga inicial controlada de SOURCE-003 en PostgreSQL staging.
La evidencia posterior informada para este gate deja:
- DB, schema y roles staging:
PASS; - tablas de negocio en
business_observer:0; - carga inicial
SOURCE-003:NO-GOpor tablas destino ausentes.
Este documento prepara solo el candidate DDL de tablas destino para corregir ese bloqueo en un gate futuro. No autoriza ejecucion.
2. Alcance¶
Alcance permitido:
- PostgreSQL staging
openclaw_business_observer_staging; - schema
business_observer; - tablas destino vacias de
SOURCE-003; - owner y grants con roles staging ya documentados;
- SQL candidate versionado para revision.
Quedan fuera:
- produccion;
openclaw-postgres-sandbox;- carga real de datos;
COPY,INSERT,UPDATE,DELETE,TRUNCATE;- sync diaria, scheduler, pipelines, dashboards productivos o LLM productivo;
- cambios en Docker, OpenClaw, NPM, Portainer o servicios.
3. Backup vigente¶
Backup post-DDL real informado fuera de Git:
text
/opt/backups/openclaw/business-observer-staging/postgres/post-ddl/20260619T211134Z/openclaw-bo-staging-postgres-post-ddl-20260619T211134Z.dump
sha256=e7f6afb319b1ef365f45b107226dec3c579922902623c6c5afeba367ab6acc8d
El backup se referencia como precondicion de ejecucion futura. No fue creado, leido, copiado ni agregado al repo durante este gate.
4. DDL existente detectado¶
No se detecto un PDF-005B existente ni un DDL candidate ya aprobado para
ejecucion sobre PostgreSQL staging.
Si se detectaron candidatos y ejecuciones previas en local-dev:
source_003_sales_items: piloto/dedicado local-dev, no aprobado para staging;raw_source_003_sales_items: DDL RAW local-dev;core_source_003_sales_items: DDL CORE local-dev;mart_source_003_sales_daily;mart_source_003_sales_by_seller;mart_source_003_sales_by_customer;mart_source_003_sales_by_sku.
Esos antecedentes sirven como base tecnica, pero no habilitan ejecucion en staging.
5. Tablas destino propuestas¶
El candidate cubre estas tablas vacias:
| Capa | Tabla |
|---|---|
| base/piloto controlado | business_observer.source_003_sales_items |
| RAW | business_observer.raw_source_003_sales_items |
| CORE | business_observer.core_source_003_sales_items |
| MART | business_observer.mart_source_003_sales_daily |
| MART | business_observer.mart_source_003_sales_by_seller |
| MART | business_observer.mart_source_003_sales_by_customer |
| MART | business_observer.mart_source_003_sales_by_sku |
6. Ownership y grants esperados¶
Owner esperado:
openclaw_bo_staging_owner
Roles de consumo/escritura esperados:
openclaw_bo_staging_writer:SELECT,INSERT,UPDATE;openclaw_bo_staging_reader:SELECT;openclaw_bo_staging_reporting_ro:SELECT;PUBLIC: sin privilegios.
El writer no debe recibir DELETE, TRUNCATE, REFERENCES ni TRIGGER.
7. Indices esperados¶
Los indices candidatos priorizan:
- tenant y fecha;
- tenant y batch;
- tenant y hash de origen;
- tenant y cliente;
- tenant y vendedor;
- tenant y SKU;
- documento;
- estado de registro;
- claves de agregados MART.
No se propone particionado en este gate. Performance real queda pendiente de validacion con datos.
8. Relacion con autoridades vigentes¶
Data Contract:
- la venta itemizada debe preservar tenant, trazabilidad, historia y no hacer
hard delete; seller_transactionalno debe reemplazarse por vendedor asignado;- costos, impuestos, descuentos, CMV y contribucion deben conservar precision.
Source Authority V2:
- autoridad vigente:
docs/tenants/alpuntodeventa/business-observer/source-authority/SOURCE-003-VENTAS-VNEXT-TABLA2-AUTHORITY-V2.sql; Horaforma parte de la identidad;Tabla 2es la salida itemizada a persistir.
Mapping activo:
docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-SALES-ITEMS-COLUMN-MAPPING.md;68/68columnas reales mapeadas;source_row_hash_v1debe cubrir las68columnas reales;- campos logisticos/personales quedan persistibles pero con exposicion controlada.
Blueprint:
SALES-BLUEPRINTdefine ventas como hecho transaccional itemizado y no como cabecera o total agregado.
9. Riesgo line_key_v4¶
line_key_v4 queda tratado como AMARILLO ACEPTADO.
Lectura obligatoria:
- no existe
line_id_sourcefisicoERPdisponible en la vistaSGC; line_sequence_v1es tecnica de pipeline y no identidad legal perfecta;- el alcance aceptado es analitico para
Business Observer, BI, IA y ML; - no debe presentarse como identidad
VERDEni auditoria legal de renglon ERP.
10. SQL candidate¶
Paquete creado:
text
infra/business-observer/staging/postgres/ddl/PDF-005B/
Archivos:
001-source-003-target-tables-preflight.candidate.sql;002-source-003-target-tables-forward.candidate.sql;003-source-003-target-tables-post-checks.candidate.sql;rollback-drop-source-003-target-tables.candidate.sql.
El paquete:
- limita el target a
openclaw_business_observer_staging; - exige schema
business_observer; - exige roles staging;
- no contiene passwords, connection strings ni
LOGIN; - no ejecuta DML;
- no crea jobs, scheduler ni pipelines;
- no toca produccion ni sandbox.
11. Validaciones previas requeridas¶
Antes de ejecutar en un gate futuro:
- SAFE POINT nuevo;
- backup post-DDL vigente validado;
- target staging confirmado;
- produccion ausente o excluida;
- sandbox intacto y excluido;
- schema
business_observerpresente; - roles staging
NOLOGINpresentes; - tablas destino esperadas ausentes o estado idempotente revisado;
PUBLICsin privilegios;- autorizacion humana explicita para ejecutar DDL.
12. Criterios GO / NO-GO¶
GO futuro solo si:
- existe autorizacion explicita separada para ejecutar
PDF-005B; - backup post-DDL esta validado;
- el preflight read-only pasa;
- el SQL candidate fue revisado;
- el target coincide con staging;
- no hay tablas con datos previos en las relaciones destino;
- produccion, sandbox, sync, scheduler y pipelines siguen excluidos.
NO-GO inmediato si:
- falta backup validado;
- el target no es
openclaw_business_observer_staging; - aparece
openclaw-postgres-sandbox; - aparece produccion;
- faltan roles staging;
- el preflight detecta tablas destino ya existentes con estado no explicado;
- se intenta cargar datos o ejecutar pipelines en el mismo gate;
- falta autorizacion humana explicita.
13. Rollback esperado¶
Rollback candidate:
text
infra/business-observer/staging/postgres/ddl/PDF-005B/rollback-drop-source-003-target-tables.candidate.sql
Reglas:
- requiere autorizacion separada;
- aborta si cualquier tabla destino contiene filas;
- solo aplica sobre staging;
- no usa
DELETE,TRUNCATEniCOPY; - debe ejecutarse solo despues de backup inmediato y evidencia de target.
14. Validaciones post-DDL esperadas¶
Si se ejecutara en un gate futuro, los post-checks deben confirmar:
transaction_read_only=onen validacion;7/7tablas presentes;- owner
openclaw_bo_staging_owner; - row count esperado
0para todas las tablas; PUBLICsin privilegios;- writer sin
DELETE/TRUNCATE; - reader y reporting read-only;
- produccion y sandbox no tocados.
15. Autorizacion requerida para ejecucion futura¶
La ejecucion futura requiere una autorizacion nueva con texto equivalente a:
text
Autorizo ejecutar PDF-005B DDL real para crear tablas destino SOURCE-003 en
PostgreSQL staging Business Observer, usando solo los SQL candidates
versionados de PDF-005B, sin cargar datos, sin COPY, sin sync, sin scheduler,
sin pipelines, sin produccion y sin openclaw-postgres-sandbox.
Sin esa autorizacion, el estado sigue siendo candidate documental.
16. Confirmaciones de alcance de este gate¶
Durante este gate:
- no se ejecuto SQL;
- no se ejecuto carga
SOURCE-003; - no se inserto, actualizo, borro ni trunco datos;
- no se ejecuto
COPY; - no se ejecuto sync, scheduler ni pipelines;
- no se toco produccion;
- no se toco
openclaw-postgres-sandbox; - no se tocaron OpenClaw, NPM, Portainer, Docker ni servicios;
- no se leyeron secret files;
- no se imprimieron passwords ni connection strings reales;
- no se crearon dumps dentro del repo;
- no se agregaron backups al repo;
- no se hizo commit, push ni deploy.
17. Conclusion¶
text
PDF-005B PREPARED
DDL CANDIDATE ONLY
SOURCE-003 STAGING TARGET TABLES = PROPOSED
SQL EXECUTION = NOT AUTHORIZED / NOT EXECUTED
LOAD = NO-GO
SYNC/SCHEDULER/PIPELINES = NO-GO
PRODUCTION = NO-GO
SANDBOX = NO-GO
NEXT GATE = EXPLICIT AUTHORIZATION TO EXECUTE PDF-005B DDL ONLY