Commit Graph
5 Commits
Author SHA1 Message Date
inference-bot 3ee385de12 Encrypt member chat keys at rest (AES-256-GCM)
Member feedback: keys stored in plaintext in the portal DB are a
key-compromise incident waiting to happen. Members.key_token (the chat
key) is now encrypted with AES-256-GCM using a KEK from the PORTAL_KEK
env var. Plaintext exists only in memory when a key is served (dashboard,
LibreChat key feed, LiteLLM management). Startup migration encrypts
existing rows idempotently; fail-closed when the KEK is absent.
Member-managed API keys were already reveal-once (hash-only at rest).
2026-10-28 16:48:58 -06:00
inference-bot c7ed245939 Read usage aggregations from LiteLLM Postgres directly (HTTP fallback kept) 2026-09-26 16:39:23 -06:00
inference-bot 1312df4131 Add rate limiting (slowapi) to control-plane endpoints: admin, broker, webhook, /v1/models 2026-09-14 20:58:13 -06:00
inference-bot 80ac982055 Support OpenWebUI: verify X-OpenWebUI-User-Jwt (HS256) or fall back to X-User-Email + portal secret 2026-09-06 21:51:25 -06:00
inference-bot 451fb561bc Scaffold member portal: OC webhook + Cloudron user mgmt + LiteLLM key injection 2026-09-04 17:06:27 -06:00