Saltar a contenido

SOURCE-003 Build Mart Rollback Rehearsal 001

Fecha: 2026-06-18

Estado: PASS / ROLLED_BACK / SIN DATOS PERSISTIDOS

Objetivo

Ejecutar el write path real de:

python scripts/source_003_importer.py build-mart --execute --confirm-local-dev-write SOURCE003_MART_LOCAL_DEV_1886 --rollback-rehearsal

usando el token real, con transaccion obligatoria y ROLLBACK forzado al final.

Alcance autorizado

  • local-dev unicamente
  • base autorizada: openclaw_business_observer_dev
  • batch autorizado: 1827f887-9499-4579-b4f3-234d54f41f7f
  • sin produccion
  • sin sync diaria
  • sin runner
  • sin CSV
  • sin persistencia en MART

Controles efectivos

  • gate duro --confirm-local-dev-write SOURCE003_MART_LOCAL_DEV_1886
  • gate duro --rollback-rehearsal
  • fingerprint DB aprobado revalidado
  • bloqueo postgres-sandbox
  • revalidacion RAW = 1886
  • revalidacion CORE = 1886
  • revalidacion MART daily/seller/customer/sku = 0/0/0/0 antes de insertar
  • inserts reales dentro de una unica transaccion
  • validacion intra-transaccion de rowcounts 1/25/173/180
  • ROLLBACK forzado
  • validacion post-rollback de MART daily/seller/customer/sku = 0/0/0/0

Evidencia estructurada

  • BEFORE
  • RAW = 1886
  • CORE = 1886
  • MART = 0/0/0/0
  • INSIDE_TX
  • inserts esperados: daily = 1, seller = 25, customer = 173, sku = 180
  • MART dentro de transaccion = 1/25/173/180
  • AFTER_ROLLBACK
  • RAW = 1886
  • CORE = 1886
  • MART = 0/0/0/0

Resultado final

  • result = PASS
  • execution_status = ROLLED_BACK
  • db_write_attempted = true
  • data_persisted = false
  • rollback_rehearsal = true
  • transaction_committed = false
  • rollback_executed = true

Nota tecnica

Durante el primer intento aparecio una constraint real de quality_status en las tablas MART (candidate/approved/blocked). El importer fue corregido para insertar quality_status = candidate, que coincide con el DDL real, y el rehearsal final paso completo sin persistencia.