Единая идентификация и RBAC
Пользователи, JWT и роли живут в struna-iam. Доступ проверяется по платформенным и доменным ролям: объект, компания, площадка.
Платформа
Единая идентификация, права доступа, API и журналы для жилых, коммерческих и производственных объектов. Новые модули подключаются к общему ядру, а не создают отдельную инфраструктуру.
Основа
Общие сервисы платформы отвечают за доступ, данные и события, поэтому модули не дублируют инфраструктуру.
Пользователи, JWT и роли живут в struna-iam. Доступ проверяется по платформенным и доменным ролям: объект, компания, площадка.
strunacore — HTTP-шлюз для фронтов: аутентификация, дерево объектов, компании, оборудование, настройки и телефония.
Дома, помещения и коммерческие объекты связаны иерархией, а оборудование привязывается к узлам и наследует управляющую компанию.
struna-push доставляет уведомления через APNS, FCM, HMS и RuStore, а доменные события фиксируются в журналах.
Действия с доступами, оборудованием и производственными документами оставляют след для разбора и контроля.
Облако
Центральные сервисы платформы работают в облаке и не требуют установки на объекте.
Пользователи, пароли, JWT access/refresh и RBAC с доменными ролями. Единственный сервис, подписывающий токены.
API-шлюз: аутентификация, дерево объектов и компании, реестр оборудования, push-токены, настройки и провижининг телефонии.
Сигнальный сервер звонков: машина состояний вызова, пул SIP-аккаунтов и рассылка push при входящем вызове.
Доставка push-уведомлений через APNS, FCM, HMS и RuStore с параллельным fanout по устройствам.
Производственный контур: заказы, наряды, факт, качество, склад, отгрузка и журнал изменений.
Приём телеметрии станков от on-prem агентов, реестр станков и тегов, история семплов и событий.
On-prem
Агенты на объекте держат исходящее соединение с облаком. Входящие порты не нужны, а при обрыве связи данные не теряются.
Провижинит локальный Asterisk, применяет конфигурацию через AMI и выполняет действия СКУД по команде из облака.
Опрашивает станки по FOCAS, OPC UA и MTConnect, буферизует семплы и события в SQLite и догружает их после восстановления связи.
Агент — единственный инициатор соединения. Это упрощает установку на площадках без выделенных адресов и проброса портов.
Локальная очередь и resume-курсор позволяют пережить сбой внешнего интернета и продолжить сбор без потери данных.
Безопасность
Доступ строится на короткоживущих токенах, доменных ролях и шифровании секретов.
Токены подписывает только struna-iam. Сервисы валидируют их через gRPC, а не доверяют локальной проверке.
Права выдаются в скоупе объекта, компании или производственной площадки, а не глобально.
Пароли SIP и транков шифруются ключом сервиса и не возвращаются наружу — только признак наличия и одноразовая выдача при ротации.
Критичные действия с доступами, оборудованием и документами фиксируются в журналах платформы.
Интерфейсы
Один пользовательский опыт для жильцов, управляющих компаний и производственных команд.
Вызов, видео, открытие двери и история событий для жильца.
Объекты, участники, оборудование, настройки, телефония и платформенные справочники.
ОткрытьПлощадки, мастер-данные, заказы, наряды, факт, качество, склад и отгрузка.
ОткрытьМониторинг станков, тегов, семплов и событий. Интерфейс готовится вместе с модулем.
Интеграции
Платформа открыта для внешних систем и не требует замены существующего учёта.
MES обменивается событиями с CRM по outbox-схеме и принимает сделки Bitrix24 как проекции заказов.
Операции склада идут через порт, поэтому внешний WMS подключается без переписывания домена.
Порт телеметрии в MES и отдельный контур CNC оставляют место для внешних систем сбора и аналитики.
struna-bridge переводит замороженный legacy-контракт домофонии в вызовы новой платформы.
Схема
Слои платформы: направления и контуры, облачные сервисы, on-prem агенты и оборудование на объекте.
Разберём, какие модули нужны сейчас, как устроить on-prem контур и какие интеграции потребуются.