Аутентификация
API-ключи Hubris в формате sk-gw-, заголовок Bearer, безопасное хранение и ротация.
Аутентификация
Все запросы к Hubris авторизуются API-ключом в заголовке Authorization: Bearer sk-gw-<32-hex>. Это совместимо с OpenAI SDK и большинством ML-инструментов.
Создание ключа
- Войдите в /keys.
- Нажмите «Новый ключ», задайте описательное имя (например, «production-bot», «dev-laptop»).
- Скопируйте ключ сразу — он показывается один раз. Hubris хранит только хеш ключа (sha256), восстановить полное значение невозможно.
- Сохраните в менеджер паролей или переменную окружения
HUBRIS_API_KEY.
Формат ключа
sk-gw- + 32 шестнадцатеричных символа (16 байт случайных данных). Пример:
sk-gw-a1b2c3d4e5f6789012345678901234ab
В UI показывается префикс sk-gw-a1b2...34ab — этого достаточно, чтобы отличить ключи между собой, но недостаточно для использования.
Использование в запросах
Заголовок: Authorization: Bearer sk-gw-.... Например, через cURL:
curl https://api.hubris.pw/v1/models \
-H "Authorization: Bearer sk-gw-..."
В OpenAI SDK ключ передаётся через параметр api_key или env-переменную:
from openai import OpenAI
client = OpenAI(api_key="sk-gw-...", base_url="https://api.hubris.pw/v1")
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "sk-gw-...", baseURL: "https://api.hubris.pw/v1" });
Что делать, если ключ скомпрометирован
- Откройте /keys.
- Найдите подозрительный ключ по префиксу или имени.
- Нажмите «Отозвать» — ключ немедленно перестаёт работать.
- Создайте новый ключ и обновите его во всех местах использования.
Безопасное хранение
- Никогда не коммитьте ключи в git — добавьте
.envфайлы в.gitignore. - Не отправляйте ключи в логи, аналитику или error-tracking. Hubris не логирует содержимое запросов, но сторонние сервисы могут.
- Ротируйте ключи при смене работы, выходе сотрудника, передаче кода подрядчику. Это секунда работы — старый отозвать, новый создать.
- Один ключ — одна цель. Отдельные ключи на dev / staging / production упрощают аудит и быструю ревокацию при инциденте.
Лимиты на ключе
В стандартном тарифе у пользовательских ключей нет искусственных лимитов — расход ограничен только балансом аккаунта. Служебные ключи (CI, скрипты) могут получить дневной лимит в копейках при создании — это страховка от утечки. Подробнее — в разделе про rate limits (готовится).
Ошибки аутентификации
GET/v1/models
Без заголовка или с невалидным ключом возвращается 401:
{
"error": {
"message": "Missing API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
Если ключ был отозван — то же самое: 401 с code: "invalid_api_key".
Что дальше
- Быстрый старт — первый запрос с вашим новым ключом.
- Каталог моделей — выбрать модель.
- Биллинг — пополнение баланса, минимальный остаток.