docs mobile p21 t04 storage expiry - AlexandreZanata/Abastevo GitHub Wiki
P21-T04 — Local storage and all-copy expiry evidence
Status: LOCAL_DONE on codex/phase-21-photo-contribution. Issue: #84. Entry P21-T03 satisfied. Binds B-BR-C01/C06 and BUC-C02/C03 to existing contracts. No product code change in this task; evidence only.
Services (disposable, tmpfs, synthetic credentials)
- PostGIS
postgis/postgis:18-3.6@sha256:60f6ad…(pinned, as ininfra/compose.validation.yml). - S3Mock
adobe/s3mock:4.11.0@sha256:cd49108c…substituted for MinIO:docker.io/miniopulls are denied from this workstation andquay.ioanswers 401, so the pinned MinIO image could not be fetched. Runner: untracked/tmpcompose mirror (db identical, storage → S3Mock), removed afterwards with volumes; zero containers left. - Migrations 000001–000030 applied; bucket
validation-privatecreated; no production DSN, photo or credential anywhere.
Results (all green, -race)
- Evidence unit: 7/7 packages ok (media forward/sanitize, storage presign/transfer, jobs, erase, application, domain budgets).
- Evidence integration (
-tags=integration, PostGIS + S3Mock): 7/7 packages ok — presigned SigV4 PUT/GET/DELETE transfers, reserve/complete atomicity, verify/quarantine/sweep, idle-session expiry, forward E2E. The SigV4 round-trip passing against S3Mock validates the substitution for transfer semantics; signature-enforcement parity with MinIO is not claimed. - Backup harness
test-backup.sh: 10 passed, 0 failed (encrypted artifact, secret-free manifest, verify/refusals, age alarms, pruning). - Restore drill
test-restore.sh: 9 passed, 0 failed (integrity, counts, deletion-ledger replay on restored snapshot, erased state preserved, drill dropped, non-drill drop refused). First attempt failed twice on my env omission (missingANPFUEL_TEST_DRILL_DSN_PREFIXfrom the matrix script, replay hit the dev default); rerun with the matrix variable is the recorded 9/0 — the failure was harness invocation, not product. - No-storage path
TestPublicProcessIdentityAndSignedWrites(empty endpoint): ok. - 24 h boundary:
ForwardDeadline+ sweep/expiry/quarantine tests green inside the suites above; deletion failures stay visible (quarantine) and retryable (bounded backoff, worker pass noted by the drill warning).
Explicitly deferred (not waived)
- Full
test-local-backend.shmatrix (load, edge TLS, deploy, infra-config, security, govulncheck): unchanged P08-owned coverage, not rerun here; this task scoped storage/expiry/restore. - MinIO-parity run: rerun against pinned MinIO wherever pulls work (CI or another station) before claiming emulator parity.
- Real-provider (G09) and device-matrix (P24) proofs remain owned by their gates.