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-devunicamente- 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/0antes de insertar - inserts reales dentro de una unica transaccion
- validacion intra-transaccion de rowcounts
1/25/173/180 ROLLBACKforzado- validacion post-rollback de
MART daily/seller/customer/sku = 0/0/0/0
Evidencia estructurada¶
BEFORERAW = 1886CORE = 1886MART = 0/0/0/0INSIDE_TX- inserts esperados:
daily = 1,seller = 25,customer = 173,sku = 180 MART dentro de transaccion = 1/25/173/180AFTER_ROLLBACKRAW = 1886CORE = 1886MART = 0/0/0/0
Resultado final¶
result = PASSexecution_status = ROLLED_BACKdb_write_attempted = truedata_persisted = falserollback_rehearsal = truetransaction_committed = falserollback_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.