Repository navigation
v0.5.2
What's Changed
TRN-169: Fix presigned evac/supply URLs requiring Bearer auth
Presigned URLs returned by evac and supply were returning HTTP 401 without an Authorization header. Root cause: Caddy's blanket Bearer check fired before the request reached the Python transport (which already bypassed Bearer correctly for /files/ routes).
Fix: Add a ga-transport-files-presigned Caddy route matching /files/*?sig=*, ordered before the Bearer-gated files route. Presigned URLs are now fully self-authenticating — any HTTP client (bare curl, browser, S3 SDK) can use them without an Authorization header.
Changes:
scripts/install.sh: new Caddy route exempting/files/*?sig=*from Bearer authtransport/auth.py: document the intentional Bearer bypass in_dispatch_filetests/unit/test_auth.py: 4 new tests for the presigned bypasstests/unit/test_hardening.py: regression guard for Caddy route orderingdocs/architecture.md: presigned URLs documented as self-authenticating
Note: Requires re-running ./install.sh to regenerate the Caddy config on existing deployments.