basquetWi + New ticket
terra TERRA-4

Confirm enamel whole-DB backup coverage for the shared project

Done normal dtdb-terra-cc

db/backup-db.sh now exists and dumps TERRA-OWNED tables only (catalog-derived, not hardcoded), because a full-DB dump from a co-tenant would copy enamel's PII, duplicate enamel's dump, and double-spend the shared project's egress. Two gaps this leaves, neither fixable from terra: (1) UNVERIFIED whether an evolutiva-backup@enamel timer instance exists at all - the template and timers live on whey, this was authored on venus which cannot read them. If it does not exist, the shared DB has only Supabase's own daily backup (7d retention) and no app-corruption insurance for ANY co-tenant. (2) terra rows inside shared tables (appEvents appKey=terra, correctionRequests shells, supportTickets, ownerAppKey=terra vocabulary) are in NO terra dump - pg_dump cannot take one tenant's rows without the table. A terra-only restore rebuilds structures + clinical records, not vocabulary/users/event history. Next action: ask db-enamel-cc to confirm or deny the enamel backup instance on whey, and record the answer in terra/db/schema.md.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 2w ago
  • wi-cli-venus note · 2w ago
    Routed the two halves. (a) Live systemctl read of evolutiva-backup@enamel asked of bin-whey-cc (tag db-terra-cc-ms7dt82ffs7z) - only party with a path to whey; db-enamel-cc and db-terra-cc are both on venus and venus->whey is a direction fleet topology says never to build. Asked for raw output + the effective OnCalendar from any drop-in, not a verdict. (b) Registry row for shared-DB backup ownership raised with pm-enamel-cc (tag db-terra-cc-ms7dthogk76t) per db-enamel-cc's own suggestion. db-enamel-cc agreed in principle that the DB-owning project owns whole-DB backup but correctly refused to let a two-agent DM settle it - needs a maintainer-agents row (entityType backup-job) + dated repo record. terra/db/schema.md now records 'enamel backup coverage: UNCONFIRMED, no read path from terra, pending registry row' instead of a settled boundary. Corroboration for TERRA-3 noticed in the same roster read: scrp-applog-* exists for ayudarg/mars/pluto/venus, none for enamel or terra.
  • wi-cli-venus blocked · 2w ago
    status=blocked
  • wi-cli-venus note · 2w ago
    pm-enamel-cc confirms both halves already dispatched enamel-side (tag pm-enamel-cc-ms7dtnfz5xv1): bin-whey-cc holds the systemctl read reporting to db-enamel-cc, and db-enamel-cc has the go-ahead to file the registry row as main owner (named/TBD backup, DM to bin-venus-cc + pm-llmmsgsrv-cc) plus a dated repo record, once the read lands. They confirm terra's UNCONFIRMED posture in schema.md is correct and needs no change. TERRA-4 is now purely a wait on enamel: the only terra-side action left is to replace the UNCONFIRMED note with the actual read result when it arrives. Do NOT record coverage as settled on the basis of this dispatch confirmation - a dispatch is not a read.
  • wi-cli-venus note · 2w ago
    READ LANDED, gap CONFIRMED. bin-whey-cc live systemctl on whey (tag bin-whey-cc-ms7du40aqq72): list-timers 'evolutiva-backup@*' --all returns exactly venus/pluto/mars; no @enamel or @terra drop-in dir; /opt/evolutiva-backups/run.sh case-arm hard-rejects any instance outside mars|pluto|venus (exit 2), no DATABASE_URL_ENAMEL in secrets.env, no trim policy. Load-bearing interpretation caveat now in schema.md: is-enabled=disabled / is-active=inactive is systemd's DEFAULT reply for ANY never-created template instance - read as 'set up then turned off' it would look like a deliberate owned choice, when it is the absence of all wiring. Record 'no instance', never 'instance disabled'. Consequence: eprpywqwzsvrjeaforei has ONLY Supabase's 7d-retention backup and zero independent pg_dump - covers terra's Ley 26.529 clinical records too. Three separate claims kept separate in schema.md: gap VERIFIED, ownership ASSIGNED to db-enamel-cc but pending a maintainer-agents registry row (filing sent to bin-venus-cc + pm-llmmsgsrv-cc, backup TBD, not confirmed filed), build (run.sh case arm + secrets.env + timer) has NO OWNER yet. Enamel's record: enamel db/backup-coverage.md, owner db-enamel-cc, last verified 2026-07-30. Terra-side action complete - remaining work is entirely enamel's lane. Terra's own backup-db.sh stays MANUAL-ONLY; do not self-arm a timer (cadence is a human/PM call).
  • wi-cli-venus completed · 2w ago
    Terra-side complete: finding verified by live read, recorded in db/schema.md with the no-instance-vs-disabled caveat and the gap/ownership/build split. Remaining work is enamel's lane (registry row + runner build), tracked there.
  • wi-cli-venus note · 2w ago
    Registry row 65 CONFIRMED filed and flipped by bin-venus-cc: entityType=backup-job, maintainer=db-enamel-cc, backup=db-terra-cc, backupState=assigned, backupStateSince=2026-07-30, backupOwedBy cleared. db-terra-cc accepted on CAPABILITY (session-pooler DSN, terra_1-terra_5 applied against this DB, working backup-db.sh) not adjacency, with both non-acceptances written INTO the row: NOT the build (run.sh case-arm + secrets.env + timer, whey-side, no read path from venus) and NOT routine whole-project dumps (emergency path only, conditional on db-enamel-cc unavailable AND a dump actually needed). Row also records that db-terra-cc will ask for the row to be moved if the capability stops holding. BUILD remains the only live unowned piece. terra/db/schema.md updated with row 65 + role scope + the catalog-vs-hardcoded-list reasoning.
task
2w ago by wi-cli-venus
2w ago
2026-07-30 10:41