Saltar a contenido

SOURCE-003 Build Mart Rollback Candidate 001

Fecha local: 2026-06-19

Estado: CANDIDATE / NOT EXECUTED / LOCAL-DEV ONLY / REQUIRES EXPLICIT AUTHORIZATION

Scope: tenant

tenant_id: alpuntodeventa

batch autorizado: 1827f887-9499-4579-b4f3-234d54f41f7f

1. Objetivo

Documentar y versionar un rollback candidate para SOURCE-003 MART local-dev, sin ejecutarlo, sin borrar datos reales en esta tarea y sin modificar la DB.

2. Safe point

Control Valor
workspace C:\APV\openclawai
rama main
git status -sb inicial ## main...origin/main
git rev-parse HEAD inicial d9b302ce7ad71b590a53f9ee8392e117d24dcc17
ultimo commit observado docs: validate source 003 mart idempotency execution
decision SAFE POINT PASS

3. Estado actual preservado

Estado vigente que este candidate debe respetar:

  • RAW = 1886
  • CORE = 1886
  • MART daily/seller/customer/sku = 1/25/173/180
  • batch autorizado: 1827f887-9499-4579-b4f3-234d54f41f7f
  • idempotencia ya validada: BLOCKED / SIN ESCRITURAS NUEVAS

4. Artefactos creados

  • documento: docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-BUILD-MART-ROLLBACK-CANDIDATE-001.md
  • SQL candidate: docs/tenants/alpuntodeventa/business-observer/design/sql/008_source_003_build_mart_rollback_candidate.sql

5. Diseno del rollback candidate

Estado del SQL:

text CANDIDATE / NOT EXECUTED LOCAL-DEV ONLY REQUIRES EXPLICIT AUTHORIZATION

Alcance permitido si algun dia se autoriza ejecutarlo:

  • borrar solo el batch autorizado 1827f887-9499-4579-b4f3-234d54f41f7f
  • solo en openclaw_business_observer_dev
  • solo en business_observer
  • solo sobre estas cuatro tablas MART:
  • business_observer.mart_source_003_sales_by_sku
  • business_observer.mart_source_003_sales_by_customer
  • business_observer.mart_source_003_sales_by_seller
  • business_observer.mart_source_003_sales_daily

Fuera de alcance:

  • RAW
  • CORE
  • produccion
  • sync diaria
  • La Directa
  • runtime O4
  • VPS, Docker, NPM, Portainer

6. Guardrails obligatorios del SQL

El candidate SQL deja documentado:

  • transaccion unica
  • abort si la DB actual no es openclaw_business_observer_dev
  • abort si aparece cualquier fila MART fuera del batch autorizado
  • abort si los rowcounts previos no son exactamente 1/25/173/180
  • abort si hay duplicados por grain en cualquiera de las cuatro tablas
  • borrado en orden seguro: sku -> customer -> seller -> daily
  • post-check obligatorio: MART = 0/0/0/0
  • preservacion obligatoria: RAW = 1886
  • preservacion obligatoria: CORE = 1886
  • ROLLBACK automatico ante cualquier diferencia mediante RAISE EXCEPTION

7. Validaciones esperadas si algun dia se ejecuta

7.1 Antes del delete

  • MART daily/seller/customer/sku = 1/25/173/180
  • no filas fuera del batch autorizado
  • no duplicados por grain

7.2 Despues del delete

  • MART daily/seller/customer/sku = 0/0/0/0
  • RAW = 1886
  • CORE = 1886

8. Estado de ejecucion en esta tarea

Confirmado en esta tarea:

  • rollback real: NO EJECUTADO
  • build-mart --execute: NO EJECUTADO
  • DELETE/TRUNCATE/UPDATE/INSERT/COPY: NO EJECUTADO
  • escrituras DB: NO EJECUTADAS

9. Conclusion

text SOURCE-003 BUILD-MART ROLLBACK CANDIDATE DOCUMENTADO SQL CANDIDATE / NOT EXECUTED VERSIONADO LOCAL-DEV ONLY REQUIRES EXPLICIT AUTHORIZATION SIN ESCRITURAS DB EN ESTA TAREA ESTADO PRESERVADO = RAW 1886 / CORE 1886 / MART 1 / 25 / 173 / 180