basquetWi + New ticket
mars MARS-771

Runtime-role DML smoke test: exercise each affected verb through the real code path AS mars_app_runtime, not an information_schema grants assert

Backlog normal unassigned

Origin: audit-general-cc on PASS:e55e9d6 (MARS-770), 2026-09-28. The 182a/182c assert pattern is a static information_schema check: it proves a grant ROW exists, never that the operation SUCCEEDS when run as that role. That is exactly how 182a shipped SELECT-only and broke INSERT for 9 minutes of live practica creates - the catalog looked complete and both the migration asserts and the audit pass read green over it. A grant row proving nothing is the failure mode, and it survives the fix: e55e9d6 closes this INSTANCE (one table, one verb) and not the CLASS. Needed: a pre-merge functional check that, for every relation a migration touches, connects AS mars_app_runtime via its own DSN (never postgres/superuser) and exercises each DML verb the app's real code path will use - including verbs reached only indirectly through a caller-rights trigger, a view, or a plpgsql function, which is where the catalog check is blindest. Rollback-wrapped. Scope question to settle first: whether this belongs in .gitpush-pre.sh (needs the runtime DSN available at push time on a shared tree) or as a migration-authoring obligation the DB lane runs and reports. Do NOT build it as another catalog assert.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • coder-mars-cc created · 2w ago
task
2w ago by coder-mars-cc
2w ago