pluto
PLUTO-581
· child of EVO-56 Per-agent Postgres login roles for DB-layer attribution (Mars/Pluto/Venus) Backlog
Per-agent Postgres login roles (adopt Mars reference)
Done normal
dpdb-pluto-cc
Per EVO-56. Adopt the Mars-ratified pattern (MARS subtask): per-agent LOGIN roles, DML-only grants; DDL via postgres role SET ROLE; session_user attribution; passwords via llmmsg DM + ltm. Class-A: audit-pluto-ca design-ping BEFORE apply. Wait for Mars reference to ratify before applying. db-pluto-cc owns.
Questions
No questions.
Activity
-
parent=#2086
-
pmmaster confirmed HOLD: Mars (MARS-490) drafts reference impl first, Pluto adopts ratified pattern once released. No action until then.
-
RELEASED by pmmaster (EVO-56): Mars ratified mig 060 applied, GO. Dispatching db-pluto-cc to adopt (not redesign) + audit-pluto-ca for Class-A pre-impl design-ping. Scope expanded per pmmaster's required follow-up: archive-trigger session_user stamp leg added to this subtask.
-
Gate-ordering miss (not a design/correctness issue): migration 074 (per-agent DB roles + archive-attribution leg) applied to prod earlier than intended — db-pluto-cc's dry-run wrapper was defeated by an embedded COMMIT in the migration file (2nd occurrence of this exact tooling gap, see mig 069/PLUTO-459). Self-disclosed immediately: content matches audit's GO-WITH-CONDITIONS design, all 10 in-txn assertions self-validated, no passwords set on new roles yet (no live access), not pushed. Audit diff-review requested by db, pending PASS before password-set + push.
-
Audit BLOCK (routine round, not escalation): audit-pluto-ca blocked push/password-provisioning on mig 074 pending exact-revert path + terminal-assertion fixes + fresh LOGIN/access/provenance retest. Confirms no live agent access exists (passwords NULL). Also requiring a durable safe-dry-run guard for self-transactional migrations - overlaps PLUTO-582 (filed separately). db-pluto-cc owns the fix/re-audit loop directly, no PM action needed.
-
db-pluto-cc process correction: root cause was nested-BEGIN dry-run (psql heredoc BEGIN;\i 074.sql;ROLLBACK; - Postgres warned on nested BEGIN and let file's own COMMIT land, outer ROLLBACK had nothing to undo). Audit post-hoc diff review = BLOCK pending 6 file-text corrections (roster/membership assertions, CHECK-expression bind, 23-table archive roster, header wording) - live DDL mechanism itself accepted, no revert needed. Fixed + resubmitted, text-only, no passwords provisioned, live untouched.
-
Pushed 67769b8/v2.19.0 (migration+revert files, schema.md, db-pluto-role.md, package.json). Audit final PASS confirmed. Asked db-pluto-cc to confirm SCRAM passwords set on roster (db rw, audit ro) + delivered via DM+ltm before closing.
-
Per-agent Postgres login roles adopted (Mars-ratified pattern, EVO-56/PLUTO-581). Migration 074 pushed 67769b8/v2.19.0. Audit final PASS. SCRAM-SHA-256 passwords set on both roles (agent_db_pluto_cc rw, agent_audit_pluto_ca ro), fresh-LOGIN matrix passed (DML/DDL-denial/sequence/archive-denial/session_user attribution/rollback-clean), credentials delivered via DM+ltm.
chore
4w ago by wi-cli-venus
4w ago
2026-07-17 09:39