Мастер настройки

После первого входа Dashboard перенаправляет на мастер настройки (/setup), пока в CRM не установлен флаг settings.setup.complete = true.

Шаги мастера

Шаг Содержание
Старт Краткое описание процесса
Инфраструктура Проверка доступности API (/api/health)
Объект Создание автомойки или удаление демо-объекта
Посты Серийные номера, логин/пароль MQTT для каждого поста
Валюта Справочник валют, валюта по умолчанию
MQTT Синхронизация учётных записей Mosquitto с CRM
Справочники Режимы работы, типы скидок
Готово Завершение мастера

После завершения — страница приветствия (/welcome), затем обычный Dashboard.

RBAC

Роль Мастер
Administrator Полный доступ, завершение мастера
Operator Создание/редактирование объектов, постов, справочников; завершение мастера
Viewer Только просмотр шагов; для входа в CRM нужно подтвердить ознакомление

Завершить мастер (complete: true) могут пользователи с правом update (Administrator, Operator).

Демо-данные

init-seed создаёт демо-автомойку «Центральная» и посты WP-POST-001 / WP-POST-002. В мастере их можно удалить одной кнопкой или заменить своими объектами.

Повторный запуск

  • Система → Мастер настройки (Administrator / Operator)
  • Прямая ссылка: /setup?restart=1

MQTT на шаге «MQTT»

Кнопка «Синхронизировать MQTT» вызывает POST /api/crm/post-device/mqtt/sync-users:

  • пересоздаёт passwd Mosquitto (system + логины постов);
  • генерирует ACL — каждый пост только в топиках своего serialNumber;
  • Mosquitto подхватывает изменения автоматически (перезагрузка passwd/ACL).

Синхронизация также выполняется при сохранении поста в разделе Посты.

Хранение состояния

Настройка setup в /api/crm/settings (ключ setup):

{
  "complete": true,
  "completedAt": "2026-07-07T12:00:00.000Z",
  "completedBy": { "userId": "…", "login": "admin" },
  "skippedSteps": []
}

См. также: Быстрый старт, MQTT, Dashboard — Посты.