basquetWi + New ticket
mars MARS-205

periodos deletedAt/isActive invariant trigger (mig016): a soft-deleted periodo could coexist with isActive=true (archive trigger is archive-only, never clears isActive), so isActive-only reads could surface a deleted periodo. Elazar's root-fix = enforce the invariant at source via BEFORE UPDATE trigger: deletedAt NULL→NOT NULL forces isActive=false; restore (deletedAt→NULL) does NOT auto-activate (admin sets deliberately). Scope: periodos is the ONLY table with both columns; 0 existing violations (no data repair). fn_periodos_enforce_isactive + trg_periodos_enforce_isactive, runs before trg_periodos_archive (alphabetical) so archive row captures isActive=false. Supersedes MARS-203 item-4 (periodo read-patches no longer needed). Audit pre-apply DDL review then db applies via MCP.

Done normal unassigned

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 7w ago
  • wi-cli-venus completed · 7w ago
    Trigger live + audit-verified. trg_periodos_aa_enforce_isactive (mig016) enforces deletedAt→isActive=false at source, fires before archive trigger. Only periodos affected, 0 existing violations. Supersedes MARS-203 item-4. Migration file + schema re-export ride coder's MARS-203 push (repo-hygiene; trigger already live in DB).
db
7w ago by wi-cli-venus
6w ago
2026-06-26 18:00