POS Desktop Onboarding — Decomposition

Реализован 2026-04-30. Зеркало паттерна KDS BR 5.1 для Windows-касс. Один универсальный .exe инсталлер, регистрация устройства при первом запуске.

Решения с пользователем

  • Permission — расширили смысл существующего pos.settings.edit (теперь покрывает не только настройки кассы, но и управление устройствами).
  • Админ-UI — единая страница /devices с двумя табами (POS + KDS). Существующий KDS-таб не выпиливался — оставлен в Настройки KDS для звуков, на новой странице переиспользуется.

Этапы и статус

#СлойРепоPRДеплой
1User Service: pos_desktop_devices + entity/service/controllerserp-user-service#4✅ test VPS
2admin-bff: /api/v1/admin/pos/devices/* proxyerp-admin#7✅ test VPS
3pos-bff: heartbeat + DEVICE_REVOKED handlingerp-pos#2✅ test VPS
4POS Desktop: storage + RegistrationScreen + bootstraperp-pos-desktop#1✅ инсталлер пересобран
5admin web: страница «Устройства» с двумя табамиerp-admin#8✅ test VPS
6Vault docs: спеки + API + Data Modelobsidian_erp(этот коммит)

Ссылки

Verification

End-to-end (выполнить вручную):

  1. На чистой Windows ставим свежий ERP POS_0.1.1_x64-setup.exe (из /c/Users/A211/Desktop/erp-pos-desktop-installers/).
  2. Запуск → видим RegistrationScreen.
  3. Step 0: вводим https://erp-test.nirbi.ru/pospingHealth → переход на Step 1.
  4. Step 1: email/password владельца или менеджера с pos.settings.edit → загрузка списка ТТ → Step 2.
  5. Step 2: выбор ТТ → Step 3.
  6. Step 3: имя «Касса бар-1» → Зарегистрировать → reload → LoginScreen → PIN → /main.
  7. В админке (https://erp-test.nirbi.ru/admin) → меню «Устройства → POS и KDS» → таб POS-устройства → видим запись.
  8. Жмём «Удалить» → касса при следующем запросе получает 401 → откат на RegistrationScreen.

Что в scope не входило (отложено)

  • Tauri Store вместо localStorage (комментарий в authStore.ts про «позже перенесём» сохранён).
  • Kafka событие user.pos_device.revoked для мгновенного broadcast (в P0 — heartbeat-based force-logout).
  • Аудит-лог регистраций.
  • Kiosk-mode и автозапуск Windows.
  • Объединение KdsDevice/PosDevice в один Generic-сервис (преждевременно при двух копиях).