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

Аутентификация

Каждый запрос к /api/robotics/v1/ несёт учётные данные робота:

Authorization: Bearer sit_rk_<hex>

Учётные данные робота — не аккаунт пользователя. У них нет личности, нет членства и нет прав сотрудника — они могут действовать только на поверхности робототехники. Это сделано намеренно: атрибуция сотрудников (кто что подал и какая оплата из этого следует) никогда не может указывать на робота.

Учётные данные привязаны к активации робототехники ровно одного филиала, и филиал выводится из ключа — вы никогда не отправляете идентификатор филиала. Ключ одного филиала не видит и не может тронуть задачи другого, даже внутри одного ресторана.

Область Даёт право
serving_tasks:read Получать список задач подачи и опрашивать их.
serving_tasks:report Принимать задачи и сообщать прогресс.
fleet:heartbeat Отправлять heartbeat и читать снимок парка.

Учётные данные выдаются с областями, нужными вашей интеграции; запрос вне ваших областей отклоняется.

Ключи показываются ровно один раз при выдаче — владелец создаёт учётные данные в Sitora Biz и передаёт вам ключ; Sitora хранит только хеш. Владелец может провести ротацию в любой момент, что атомарно отзывает старый ключ и создаёт новый.

Обрабатывайте 401 эскалацией за новым ключом, а не повторами: отозванный или заменённый ключ уже никогда не станет действительным.

Правомочность проверяется на каждом запросе

Заголовок раздела «Правомочность проверяется на каждом запросе»

Ключ, который аутентифицируется, — не автоматически ключ, которому можно действовать. Каждый запрос заново проверяет, что ваша сертификация актуальна, что активация филиала жива и что тариф ресторана всё ещё включает робототехнику. Если что-то из этого истекает, вся поверхность возвращает 403 с названной в сообщении причиной — немедленно, а не при следующем предложении. Приостановленная активация — намеренное исключение: вы продолжаете читать и отправлять heartbeat, чтобы припарковаться и дождаться возобновления.

Когда парк выводится из работы посреди выполнения, Sitora отменяет его текущие задачи, чтобы ни один заказ не остался ждать робота, который больше не может отчитаться.