movilba
MOVILBA-353
Import: DB equals the snapshot; only documented Eugenia-agreed overrides (ssot-overrides.md) are exceptions
Canceled high
dmdb04-mba-l-ca
Re-scoped 2026-09-19 (Elazar): the attributed-bypass button/trigger reshape is dropped. A new SSOT snapshot makes DEV and PROD equal to it (update/add/delete) regardless of row origin; no reconciliation, no who-wins evaluation. Only exceptions: documented errors agreed with Eugenia in docs/reference/ssot-overrides.md, with the import behaviour declared. Implementation split into MOVILBA-516..522.
Sub-tickets — 2/2 done
MOVILBA-523 Done high
dmdb02-mba-l-ca
MOVILBA-524 Done high
dmdb03-mba-l-cc
Activity
-
Import: DB equals the snapshot; only documented Eugenia-agreed overrides (ssot-overrides.md) are exceptions
-
was: Eugenia pidio (Elazar, CLI 2026-09-08 04:00) un modo BYPASS: su cuenta, un boton, para cargar datos que violan las reglas que ella misma fijo - porque el SSOT es un libro de documentacion PRESENTADA y ella no puede corregir una fecha ni un expediente para que MovilBA los acepte. Regla general adoptada: toda regla de negocio nueva nace con via de excepcion auditada y ATRIBUIDA. Consecuencia medida: DEV tiene DOS triggers armados que hacen RAISE incondicional sobre rutap.vehiculo_historial_normalizado - vh_norm_reject_book_column_update (MOVILBA-344, 43 columnas del libro) y vh_norm_reject_app_delete (anterior) - y un RAISE en la base es la unica capa que el boton de bypass NO puede saltar. Ninguno existe en PROD. DISEÑO de db02-mba-l-cc, sin migracion: (1) el canal de atribucion YA existe y es src/lib/audit-wrapper.ts:29, setTransactionActor -> set_config('app.current_user_id', id, true), is_local por transaccion, ya usado por fn_soft_delete; los guards simplemente no participan. (2) Forma: el guard lee current_setting('app.current_user_id', true) y current_setting('app.bypass_motivo', true); sin motivo se comporta EXACTAMENTE como hoy (RAISE), con motivo permite y registra actor+motivo+tabla+record_id+valores viejos/nuevos. Usar el bypass CUESTA un motivo declarado, por eso es auditable y no un agujero. (3) Costo: tabla propia para el registro - audit_log NO sirve, no tiene columna de motivo y es la tabla de evidencia (leccion del evento 658); es la unica DDL de la idea. Setting propio, no reusar app.current_user_id o toda escritura auditada seria un bypass. Y la garantia se debilita honestamente: cualquier codigo que abra una transaccion puede setear el GUC, asi que esto frena el accidente y registra lo deliberado - NO es un limite de seguridad y no se describe como tal; aceptable porque la amenaza medida fue nuestro propio pipeline mutando filas del libro, no un escritor hostil. (4) El guard de DELETE no se reshapea: su forma honesta es un permiso, no un trigger - movilba_user no deberia tener DELETE sobre esa tabla. Un REVOKE, sin via de excepcion, porque el bypass tampoco quiere borrar filas del libro. NADA APLICADO, ninguna migracion escrita. Requiere GO de Elazar y audit antes de cualquier DDL.
-
re-scoped, see description
-
2026-09-19 06:48 ART SSOT received at /data-lezama/movilba/libro/2026-09-19-0648-parque-rutap.xlsx; MD5 9e0db506e2559ae84632d66bdcab7248; Base parses 5,528 rows x 53 columns versus 5,514 in 2026-09-17 snapshot. Import is held behind MOVILBA-516..522 and audit; operational execution is tracked as a child. PROD first, then DEV, per current SSOT rule.
-
New SSOT 2026-09-19 cannot be imported as-is: Base rows 5529 AF206GP and 5530 AE335EU reverse Tipo_Servicio and Linea (64/SP instead of SP/64). MOVILBA-523 is blocked; MOVILBA-524 owns a strict preflight gate. Source correction request added to Para Eugenia #8.
-
db04-mba-l-ca
-
db04-mba-l-ca 2026-09-24 04:03 -03 — SELECT-only current-state check: DEV movilba_dev snapshot 18 and PROD movilba snapshot 5 both identify 2026-09-19-0648-parque-rutap-corrected.xlsx with 5528 source rows. Only snapshot identity and source-row count were checked; the no-override/fidelity policy was not fully tested. Status unchanged; no DB write.
-
Duplicate policy epic of MOVILBA-186: current-book fidelity, import/normalization, reconciliation and documented overrides now have scoped work items under 186 and its children. Do not re-run a separate 353 track.
feature
5w ago by wi-cli-venus
1w ago
2026-10-05 18:11