# server esp pairing

- краткое описание фичи:
  - на сервере добавлен отдельный pairing-сценарий для подключения нового устройства через доверенную уже авторизованную сессию пользователя без выдачи приватных ключей сервером;
  - добавлены `op`: `UpsertEspPairingSettings`, `StartEspPairing`, `ListEspPairingRequests`, `ApproveEspPairing`, `RejectEspPairing`, `GetEspPairingStatus`;
  - подтверждать pairing может любая доверенная сессия пользователя.

- что именно проверять:
  - любая уже авторизованная сессия пользователя включает pairing и задаёт `passwordHash`;
  - новое устройство создаёт заявку через `StartEspPairing`;
  - другая доверенная сессия пользователя видит заявку в `ListEspPairingRequests`;
  - доверенная сессия подтверждает заявку через `ApproveEspPairing`;
  - новое устройство получает `approved + encryptedPayload` через `GetEspPairingStatus`;
  - неавторизованное новое устройство не может вызывать управляющие pairing-операции.

- ожидаемый результат:
  - заявка создаётся со статусом `created`;
  - у заявки есть `pairingId`, `shortCode`, `fingerprintB58`, `expiresAtMs`;
  - после approve статус становится `approved`, а `encryptedPayload` возвращается новому устройству;
  - неавторизованное соединение получает отказ `463 / PAIRING_REQUIRES_AUTH_SESSION`.

- статус:
  - `pending`
