Skip to content

v0.22.0 — proxy-proof resolver

Choose a tag to compare

@rustyconover rustyconover released this 27 Jul 14:04
· 141 commits to main since this release

Adds VGI_PROXY_PROOF_* handling to the worker's env-driven auth resolution, so a worker can refuse any request that did not arrive through a trusted proxy.

env var meaning
VGI_PROXY_PROOF_MODE off (default), allow, require
VGI_PROXY_PROOF_ORIGIN_ID this worker's identifier — folded into every MAC but never transmitted
VGI_PROXY_PROOF_SECRETS kid:hex pairs; the kid doubles as the calling proxy's label
VGI_PROXY_PROOF_SKEW acceptance half-window, default 30s

The gate is composed with require_all(), not chained: chaining is first-success-wins, so a gate in a chain would be satisfied by whichever credential came next — precisely the bypass it exists to close.

Malformed configuration aborts startup rather than degrading to off. The secret is shared with an independently-deployed proxy, so a typo would otherwise silently derive a different key on each side and turn require into a total rejection outage with nothing pointing at the cause.

Floor moved to vgi-rpc>=0.28.2.