Перейти к основному содержимому

Выпуск API-ключа

Ключи выпускаются в веб-интерфейсе диспетчера: Настройки → Интеграции → API-ключи.

Через API это тоже возможно (POST /api/v1/integration/api-keys/), но там используется не ключ, а обычная авторизация пользователя — это панель управления, а не публичный API.

Выпускать ключи может только пользователь с ролью «Администратор компании» (company_admin). Диспетчер и водитель ключи не видят и не создают.

Формат ключа

dp_live_7f3a9c21.hV2nQpX8mK4rT7yLwZ0aB3cD6eF9gJ1kN5sU8vY2xA
└──── префикс ────┘└──────────────── секрет ────────────────┘

Префикс не является секретом — его можно писать в логи, чтобы понимать, какой именно ключ использовался. Часть после точки — секрет.

Ключ показывается один раз

В базе хранится только хеш секрета. Восстановить ключ невозможно — ни через поддержку, ни через интерфейс. Сохраните его сразу при создании. Если ключ потерян, выпустите новый и отзовите старый.

Ротация и отзыв

  • Ротация (POST /api/v1/integration/api-keys/{id}/rotate/) выдаёт новый ключ вместо старого. Старый перестаёт работать немедленно, без переходного периода — обновляйте ключ в своей системе сразу.
  • Отзыв делает ключ нерабочим, но запись сохраняется для аудита.
  • Срок действия (expires_at) можно задать при создании. После этой даты ключ перестаёт работать автоматически.

Область доступа (scopes)

При создании можно ограничить ключ списком разрешений:

РазрешениеЧто открывает
planning:writeзапуск планирования
routes:readчтение маршрутов
tracking:readотслеживание

Важные особенности:

  • Пустой список разрешений означает полный доступ, а не отсутствие доступа.
  • Разрешения не проверяются на опечатки при создании. Если написать routes:reed, ключ создастся, но при обращении к маршрутам вернёт 403. Копируйте названия точно.
  • Для работы с заказами отдельное разрешение не требуется — доступ есть у любого действующего ключа.

Поле last_used_at

Отметка времени последнего использования обновляется не чаще раза в минуту, поэтому она может отставать. Для мониторинга активности в реальном времени она не подходит.