Files
any-hub/specs/007-apt-apk-cache/contracts/proxy-paths.md
2025-11-18 09:55:07 +08:00

1.7 KiB

Proxy Path Contracts: APT/APK

APT

Downstream Request Upstream Target Caching Notes
/dists/<suite>/<component>/binary-<arch>/Packages[.gz/.xz] same path on Upstream RequireRevalidate=true Send If-None-Match/If-Modified-Since if cached
/dists/<suite>/Release same path RequireRevalidate=true Preserve content; may have accompanying .gpg
/dists/<suite>/InRelease same path RequireRevalidate=true Signed inline; no body changes
/dists/<suite>/Release.gpg same path RequireRevalidate=true Signature only; no rewrite
/pool/<vendor>/<name>.deb same path AllowCache/AllowStore=true, RequireRevalidate=false Treat as immutable
/dists/<suite>/by-hash/<algo>/<hash> same path AllowCache/AllowStore=true, RequireRevalidate=false Path encodes hash, no extra validation

Alpine APK

Downstream Request Upstream Target Caching Notes
/v3.<branch>/main/<arch>/APKINDEX.tar.gz (and variants) same path RequireRevalidate=true Preserve signature/headers
/v3.<branch>/<repo>/<arch>/APKINDEX.tar.gz same path RequireRevalidate=true Same handling as above
/v3.<branch>/<repo>/<arch>/packages/<file>.apk same path AllowCache/AllowStore=true, RequireRevalidate=false Immutable package
APKINDEX signature files same path RequireRevalidate=true No rewrite

Behaviors

  • No body/URL rewrite; proxy only normalizes cache policy per path shape.
  • Preserve status codes, headers, and signature files exactly as upstream.
  • Conditional requests (If-None-Match/If-Modified-Since) applied to all index/signature paths when cached.