litellm/ui
moe-berri 2edfe2dc10 feat(auto_router): mint a server-issued capability token for shunt worker auth
Replaces the ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY environment-variable read with a
short-lived token the proxy mints itself, so the generated command authenticates to
/v1/bulk_read and /v1/code_write without depending on the calling client's shell holding
either variable. That dependency only ever held for Claude Code; any other client (Cursor, a
custom agent) would have sent an empty bearer and 401'd.

The token is a sealed grant (litellm/proxy/guardrails/shunt_capability_token.py) built on the
proxy's own encrypt_value_helper, the same primitive the gateway's OAuth flow already seals
values with. It carries a reference to the caller's key hash rather than the key itself, and
a two-minute expiry rather than a single-use guard: an agent retrying a timed-out Bash command
must still authenticate, and a single-use claim would turn that ordinary retry into a
permanent 401. The worst a replay inside the window can do is spend the caller's own already-
budgeted quota on a request they already made.

Carried in the generated command's Authorization header, never a URL query string: every
other sealed token in this proxy already avoids query strings, since they routinely end up in
access logs.

/v1/bulk_read and /v1/code_write now authenticate exclusively via this token instead of the
normal user_api_key_auth path, since nothing but a shunt-generated command should ever call
them. Master-key callers (UserAPIKeyAuth.api_key holds a stable alias rather than a DB-backed
hash for that case) carry the real master key in the grant instead, compared directly at the
endpoint.
2026-09-07 16:07:11 -07:00
..
litellm-dashboard feat(auto_router): mint a server-issued capability token for shunt worker auth 2026-09-07 16:07:11 -07:00
Dockerfile fix(docker): bump nginx runtime to 1.31.5-alpine3.24 and pin digest to resolve critical CVEs (#39561) 2026-09-03 08:46:07 -07:00
nginx.conf fix(ui): boot the UI image as an arbitrary uid by anchoring nginx writes under /tmp (#37982) 2026-08-24 11:57:36 -07:00