Saltar a contenido

SOURCE-003 Mart DDL Candidate Technical Review

Fecha local: 2026-06-16

Estado: REVIEW TECNICA DDL MART CANDIDATO / NO EJECUTADO

portal_visible = yes

Scope: tenant

tenant_id: alpuntodeventa

Owner: Gabi / Carlos Canu

Fuente de verdad: docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-MART-DDL-CANDIDATE-TECHNICAL-REVIEW.md

1. Objetivo

Revisar tecnicamente el paquete DDL MART candidato para SOURCE-003 / SGC Ventas / Tabla 2 V2, sin ejecutarlo y sin tocar runtime, DB, datos ni servicios.

Esta revision evalua si el paquete queda apto para una futura tarea separada de preflight local-dev.

2. Safe Point

Control Valor
workspace C:\APV\openclawai
rama main
HEAD/origin informado 12b7fd22a3722e7f8e76d2a0d6d5247b572e78d9
ultimo commit informado docs: prepare source 003 mart ddl candidate
estado inicial observado ## main...origin/main
SQL ejecutado NO
psql usado NO
PostgreSQL tocado NO

3. Documentos Revisados

  • SOURCE-003-MART-DDL-CANDIDATE.md
  • sql/006_source_003_mart_ddl_candidate_preflight.sql
  • sql/006_source_003_mart_ddl_candidate_forward.sql
  • sql/006_source_003_mart_ddl_candidate_rollback.sql
  • sql/006_source_003_mart_ddl_candidate_post_checks.sql
  • SOURCE-003-MART-LAYER-CONTRACT.md
  • SOURCE-003-IMPORTER-BUILD-MART-PLAN.md
  • SOURCE-003-PROMOTE-CORE-LOCAL-DEV-POST-EXECUTION-REVIEW.md

4. Hallazgos

No se detectaron bloqueantes documentales para una futura ejecucion de preflight local-dev, siempre que sea autorizada en una tarea separada.

Controles confirmados por lectura estatica:

Control requerido Resultado
origen CORE business_observer.core_source_003_sales_items confirmado
batch piloto 1827f887-9499-4579-b4f3-234d54f41f7f confirmado
CORE preservado preflight y post-checks exigen 1886 filas
MART daily business_observer.mart_source_003_sales_daily incluida
MART by seller business_observer.mart_source_003_sales_by_seller incluida
MART by customer business_observer.mart_source_003_sales_by_customer incluida
MART by SKU business_observer.mart_source_003_sales_by_sku incluida
owner esperado openclaw_bo_admin en schema, tablas e indices
writer SELECT, INSERT, UPDATE; DELETE revocado
reader SELECT; INSERT, UPDATE, DELETE revocados
PUBLIC schema y tablas sin privilegios
rollback aborta si cualquier MART candidata existe y tiene filas
post-checks exigen row_count = 0 en las cuatro MART candidatas
RAW no hay DDL/DML sobre RAW
CORE no hay DDL/DML sobre CORE; solo checks de existencia/conteo
dashboards/LLM productivos no habilitados

5. Lectura Tecnica del Paquete

5.1 Preflight

El preflight es read-only por estructura: contiene consultas SELECT contra catalogo y conteos CORE. Valida DB local-dev, schema, roles, owner, CORE, batch piloto, campos criticos, duplicados, ausencia previa de tablas MART candidatas y ausencia de privilegios PUBLIC en schema.

Resultado de review: apto para futura ejecucion preflight local-dev con autorizacion explicita.

5.2 Forward

El forward crea exclusivamente cuatro tablas MART candidatas vacias, indices, comments, owner y grants. No contiene INSERT, UPDATE, DELETE, COPY, TRUNCATE ni lecturas/escrituras sobre RAW o CORE.

Observaciones:

  • CREATE SCHEMA IF NOT EXISTS business_observer es conservador para DDL, pero puede ocultar una precondicion incumplida si se ejecutara sin preflight. Recomendacion: no ejecutar forward si el preflight no confirma schema y owner existentes.
  • Las tablas quedan con quality_status = candidate y warnings semanticos disponibles; eso es consistente con no habilitar consumo productivo.
  • id uuid no declara default; el futuro build-mart debera generar IDs explicitamente o el forward futuro debera incorporar una politica aprobada.

Resultado de review: no apto aun para forward; solo apto para preflight local-dev.

5.3 Rollback

El rollback valida DB local-dev y recorre las cuatro MART candidatas. Si cualquiera existe y tiene filas, aborta con excepcion antes de dropear indices o tablas. No usa TRUNCATE, no borra datos, no toca RAW y no toca CORE.

Resultado de review: cumple la regla critica de no dropear MART con datos.

5.4 Post-Checks

Los post-checks validan DB, schema, owner, existencia de las cuatro tablas, owner de tablas, row_count = 0, constraints, indices, grants de writer, reader y PUBLIC, existencia de CORE y preservacion del batch piloto en 1886 filas.

Resultado de review: el paquete exige que el forward deje estructura vacia y sin privilegios publicos.

6. Riesgos Documentados

Riesgos preservados y correctamente documentados:

  • territory_key no debe inferir vendedor responsable ni territorio comercial sin contrato de cruce aprobado.
  • CMV, costos y contribution_amount quedan como columnas candidatas con lectura economica pendiente.
  • contribution_amount requiere revision semantica y conciliacion formal antes de dashboards, reportes o consultas LLM operativas.
  • Reglas de signo para notas de credito, anulaciones y comprobantes correctivos deben preservarse desde CORE y revisarse antes de cualquier KPI productivo.

Riesgos operativos no bloqueantes para preflight:

  • El paquete aun no implementa build-mart; por lo tanto no prueba reconciliacion de totales, generacion de mart_build_id, hash de conjunto ni granularidades reales.
  • No existe habilitacion para produccion, sync diaria ni carga MART; cualquier intento de forward, build o consumo debe abrir gate separado.

7. No Habilita

Esta review no habilita:

  • ejecutar SQL;
  • usar psql;
  • tocar PostgreSQL;
  • crear tablas reales;
  • modificar Python;
  • cargar datos;
  • tocar RAW/CORE/MART real;
  • generar CSV;
  • ejecutar runner;
  • usar VPS, Docker, OpenClaw, NPM o Portainer;
  • push o deploy;
  • dashboards productivos;
  • reportes productivos;
  • consultas LLM operativas.

8. Decision

text APTO PARA PREFLIGHT LOCAL-DEV NO APTO PARA PRODUCCION NO APTO PARA SYNC DIARIA NO APTO PARA BUILD-MART AUN

La aptitud queda limitada a una futura tarea de preflight local-dev, read-only y autorizada explicitamente. No habilita forward, rollback real, implementacion Python, carga MART, consumo productivo ni automatizacion diaria.