Saltar a contenido

SOURCE-003 Mart DDL Local Dev Preflight 001

Fecha local: 2026-06-16 16:31:31 -03:00

Estado: PREFLIGHT PASS / DDL MART FORWARD 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-LOCAL-DEV-PREFLIGHT-001.md

1. Objetivo

Ejecutar solamente el preflight DDL MART candidato de SOURCE-003 contra PostgreSQL local-dev para validar condiciones previas de catalogo y CORE antes de cualquier ejecucion futura y separada del forward.

Destino autorizado:

text database: openclaw_business_observer_dev schema: business_observer

Esta tarea no ejecuto forward, rollback, post-checks, CREATE TABLE, INSERT, UPDATE, DELETE, COPY, carga de datos, sync, runner, VPS, Docker, OpenClaw, NPM, Portainer, push ni deploy.

2. Safe point

Control Resultado
rama main
git status --short sin salida
git rev-parse HEAD 838ee39130a56c3ddc6ef1e23780b5f3fc4c2da0
git rev-parse origin/main 838ee39130a56c3ddc6ef1e23780b5f3fc4c2da0
ultimo commit observado 838ee39 docs: update safe point 039b smtp validation
decision SAFE POINT PASS

3. SQL autorizado ejecutado

Se ejecuto unicamente:

text docs/tenants/alpuntodeventa/business-observer/design/sql/006_source_003_mart_ddl_candidate_preflight.sql

Comando operativo sin secretos:

powershell C:\Program Files\PostgreSQL\15\bin\psql.exe -X -w -v ON_ERROR_STOP=1 -P pager=off -h <APV_LOCAL_POSTGRES_ADMIN_HOST> -p <APV_LOCAL_POSTGRES_ADMIN_PORT> -U <APV_LOCAL_POSTGRES_ADMIN_USER> -d openclaw_business_observer_dev -f docs/tenants/alpuntodeventa/business-observer/design/sql/006_source_003_mart_ddl_candidate_preflight.sql

Notas de ejecucion:

Control Resultado
binario psql C:\Program Files\PostgreSQL\15\bin\psql.exe
ON_ERROR_STOP SI
DB indicada en comando openclaw_business_observer_dev
credenciales variables locales no versionadas; secretos no impresos
primer intento sin variables explicitas TIMEOUT, sin salida de checks, sin evidencia de modificacion
postgres-sandbox NO USADO
forward ejecutado NO
rollback ejecutado NO
post-checks ejecutados NO
DDL ejecutado NO
DML ejecutado NO
carga de datos NO
runner NO

4. Resultado del preflight

Check Observado Esperado Resultado
current_database openclaw_business_observer_dev openclaw_business_observer_dev PASS
schema_business_observer_exists true true PASS
schema_business_observer_owner openclaw_bo_admin openclaw_bo_admin PASS
required_roles_exist 3 3 PASS
required_roles_nologin/openclaw_bo_admin false false PASS
required_roles_nologin/openclaw_bo_reader false false PASS
required_roles_nologin/openclaw_bo_writer false false PASS
core_source_table_exists true true PASS
core_total_rows_preserved 1886 1886 PASS
core_authorized_batch_row_count 1886 1886 PASS
core_authorized_batch_critical_fields 0 0 PASS
core_authorized_batch_duplicates 0 0 PASS
mart_candidate_tables_absent_before_forward 0 0 PASS
public_schema_privileges_absent 0 0 PASS
preflight_read_only_no_core_or_mart_modification SELECT-only checks; no INSERT/UPDATE/DELETE/COPY/DDL against CORE or MART CORE not modified and MART not created by preflight PASS

Resultado general:

text PREFLIGHT PASS

5. Evidencia de alcance

Restriccion Resultado
DB correcta PASS
schema business_observer existe PASS
roles requeridos existen PASS
roles requeridos son NOLOGIN PASS
CORE source table business_observer.core_source_003_sales_items existe PASS
batch piloto autorizado en CORE 1886 filas
CORE total preservado 1886 filas
campos criticos del batch piloto CORE 0 filas malas
duplicados por tenant_id, sync_batch_id, line_key en batch piloto CORE 0
MART business_observer.mart_source_003_sales_daily NO EXISTE
MART business_observer.mart_source_003_sales_by_seller NO EXISTE
MART business_observer.mart_source_003_sales_by_customer NO EXISTE
MART business_observer.mart_source_003_sales_by_sku NO EXISTE
RAW tocado por DDL/DML NO
CORE tocado por DDL/DML NO
MART real tocado por DDL/DML NO
postgres-sandbox usado NO
secretos impresos NO
cambios en PostgreSQL NO

La afirmacion de que RAW, CORE y MART real no se tocaron se basa en el alcance del SQL ejecutado: el preflight contiene solamente consultas SELECT de catalogo y conteos sobre business_observer.core_source_003_sales_items. No se ejecuto ningun SQL adicional contra la DB luego del preflight aprobado.

6. Bloqueos preservados

Siguen bloqueados:

  • ejecucion de 006_source_003_mart_ddl_candidate_forward.sql
  • ejecucion de 006_source_003_mart_ddl_candidate_rollback.sql
  • ejecucion de 006_source_003_mart_ddl_candidate_post_checks.sql
  • creacion de las tablas MART candidatas
  • ejecucion de build-mart
  • modificaciones del importer Python
  • sync diaria, carga masiva y produccion final
  • VPS, Docker, OpenClaw, NPM, Portainer
  • push y deploy

7. Validaciones del repo

Validacion Resultado
git diff --check PASS
.venv-portal\Scripts\mkdocs.exe build --strict PASS

8. Decision

text PREFLIGHT PASS / DDL MART FORWARD NO EJECUTADO

El entorno local-dev cumple las condiciones previas verificadas por el preflight MART candidato. Esto no crea tablas MART, no construye agregados y no autoriza build-mart. Cualquier forward futuro requiere una tarea separada con SAFE POINT nuevo, autorizacion explicita y alcance propio.