OPS52-media-guard — OPS52-media — Guard de intenção explícita para escrita em bucket de produção #37

Closed
opened 2026-08-18 11:19:19 +00:00 by fsolla · 2 comments
Owner
id depends serializes priority
OPS52-media-guard
10
P3

Achado do /simplify da OPS52-media (#10, 2026-08-18): o write-mode (reconcile) do pnpm media:recover depende só da presença completa das envs S3_* para escrever no bucket — sem flag de intenção dedicada. Caminho de risco: um worktree que receba credenciais de prod (cópia all-or-nothing do main) rodando reconcile contra rows locais (db:pull inclui media) escreveria covers no bucket de prod; o echo do alvo torna visível, mas não impede. Mitigação proposta: exigir confirmação explícita (ex.: MEDIA_RECOVER_CONFIRM=1 ou prompt interativo) no modo reconcile, mantendo dry-run/verify desprotegidos. Decidido no gate: adiar (paridade com seeds, echo + dry-run + runbook no homeserver como contrato); registrar para revisit. Fechamento da #10 não é bloqueado.

--- id: OPS52-media-guard depends: [10] serializes: [] priority: P3 --- Achado do /simplify da OPS52-media (#10, 2026-08-18): o write-mode (reconcile) do `pnpm media:recover` depende só da presença completa das envs S3_* para escrever no bucket — sem flag de intenção dedicada. Caminho de risco: um worktree que receba credenciais de prod (cópia all-or-nothing do main) rodando reconcile contra rows locais (db:pull inclui media) escreveria covers no bucket de prod; o echo do alvo torna visível, mas não impede. Mitigação proposta: exigir confirmação explícita (ex.: MEDIA_RECOVER_CONFIRM=1 ou prompt interativo) no modo reconcile, mantendo dry-run/verify desprotegidos. Decidido no gate: adiar (paridade com seeds, echo + dry-run + runbook no homeserver como contrato); registrar para revisit. Fechamento da #10 não é bloqueado.
fsolla added the
kind:chore
ready
labels 2026-08-18 11:19:19 +00:00
fsolla added
in-progress
and removed
ready
labels 2026-08-18 14:35:18 +00:00
Author
Owner

Claimed by agent run at 2026-08-18T14:35:18.962Z. Lock otimista: outro claim deve falhar e re-rodar pnpm agent:claim.

Claimed by agent run at 2026-08-18T14:35:18.962Z. Lock otimista: outro claim deve falhar e re-rodar `pnpm agent:claim`.
Author
Owner

Entregue em #50 (merge em main 2026-08-18): reconcile do pnpm media:recover exige MEDIA_RECOVER_CONFIRM=1 (fail-closed, antes de DB/S3/rede); dry-run/verify seguem sem flag. isTruthyEnv em scripts/lib/cli.mjs (dono dos guards), unit-testado; isRemoteDbOverrideSet delegou (comportamento preservado). Runbook/AGENTS.md/changelog atualizados. Débito do /simplify registrado como #49 (OPS60 — seed-posts com a mesma classe de risco, já destravado).

Entregue em #50 (merge em main 2026-08-18): reconcile do `pnpm media:recover` exige `MEDIA_RECOVER_CONFIRM=1` (fail-closed, antes de DB/S3/rede); dry-run/verify seguem sem flag. `isTruthyEnv` em `scripts/lib/cli.mjs` (dono dos guards), unit-testado; `isRemoteDbOverrideSet` delegou (comportamento preservado). Runbook/AGENTS.md/changelog atualizados. Débito do /simplify registrado como #49 (OPS60 — seed-posts com a mesma classe de risco, já destravado).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: fsolla/teqo#37
No description provided.