https://portal.<domain>. It is
protected by Dex through oauth2-proxy forward-auth, then it trusts the X-Auth-Request-Email header
that oauth2-proxy injects. A NetworkPolicy only allows the gateway data plane to reach the portal
Service, so clients cannot bypass the SSO header path.
What it does
The deployed chart islitellm-key-portal 0.2.0. For the signed-in user it can:
- list their own keys
- create a key with a label, budget cap, budget duration, and model allowlist
- rotate a key and show the new plaintext once
- revoke a key after confirmation
Sign out
The portal itself is stateless. Browser login state is the oauth2-proxy cookie, so sign-out is handled by oauth2-proxy:Known UX gaps
The current portal is functional, not polished. Product work still worth doing:- visible sign-out control instead of requiring the oauth2-proxy URL
- clearer empty state when there are no keys
- copy-to-clipboard for newly created or rotated keys
- better grouping for spend, budget, and model allowlist