Захотел выдавать разным клиентам разные ключи к шлюзу: чтобы видеть, кто сколько потратил, и отзывать доступ по одному, а не всем сразу.
Штатный способ у LiteLLM — поднять под это Postgres. База ради ключей на одном ноутбуке выглядела перебором, поэтому пошёл через собственную функцию проверки.
Споткнулся на неочевидном: в закреплённой версии эта функция заменяет встроенную проверку целиком. Отката на мастер-ключ внутри нет. То есть если написать её наивно — «проверяю свои ключи, остальное отдаю шлюзу», — мастер-ключ перестанет работать, а административные ручки отвалятся. Узнал это не из документации, а из исходников тега.
Решение: своя функция сверяет и клиентские ключи, и мастер-ключ, читая его прямо из окружения.
Цена: я привязан к поведению конкретной версии шлюза, и при обновлении это первое, что надо перепроверять.