gate: allowlist appexport/estimate.go named-volume -v mount (R-29 leg a)

realVolumeSize mounts the NAMED VOLUME read-only into a throwaway alpine to du it
from a container view. No host path is involved — docker resolves the volume name
daemon-side — so it is the same safe class as the internal/backup/backup.go entry.
The gate was right to demand review; this diff is that review, on its own, because
burying an allowlist widening inside a feature commit is how an allowlist stops
meaning anything.

Tooling only: no Go change, no build, no deploy, no version bump.
This commit is contained in:
2026-08-02 15:11:08 +02:00
parent 4115e88f68
commit c432f701dd
@@ -16,6 +16,10 @@ ROOTS = ["internal", "cmd"]
ALLOWLIST = [
("internal/appbackup/dbdump.go", '"psql", "-v"',
"psql's own -v flag (ON_ERROR_STOP) — not a docker mount at all"),
("internal/appexport/estimate.go", '"-v", volumeName+":/vol:ro"',
"realVolumeSize's container-view `du`: named-volume source (no host path) mounted read-only "
"into a throwaway alpine — docker resolves the volume name daemon-side, exactly the class of "
"the internal/backup/backup.go entry below. Reviewed 2026-08-02 (R-29 leg a)"),
("internal/appexport/export.go", '"create", "-v", volName+":/vol"',
"named-volume mount (no host path): docker resolves volume names daemon-side; the tar "
"itself streams via docker cp (v0.125.0)"),