СОПКА/ РОЙ
Компоненты и потоки данных

Архитектура

Продукт: СОПКА.РойВерсия: 1.0.0Агент: 1.0.0Редакция: 14.08.2026
Правообладатель ПО: Общество с ограниченной ответственностью «Каннам». ИНН 2543020645, ОГРН 1132543001502. Правообладатель.

Общая схема

Пользовательский браузер
          │ HTTPS / WebSocket
          ▼
Внешний reverse proxy (TLS, /roy)
          │
          ▼
Монолитный сервер СОПКА.Рой
       │                 │
       ▼                 ▼
PostgreSQL 16        Redis 8.8
(постоянные данные)  (runtime, locks, cache, presence)
       ▲                 ▲
       └──── HTTPS / Socket.IO ──── Windows-агенты

Сервер приложения

Монолитный сервер СОПКА.Рой обслуживает HTML-интерфейс, JSON API, регистрацию и heartbeat агентов, приём событий, управление политиками, файловый поиск, оперативные WebSocket-сеансы, прямой экран и удалённые команды.

PostgreSQL

В базе хранятся пользователи, рабочие области, членство и роли, клиенты, политики, события, инциденты, история, команды и сущности поиска файлов. Для эксплуатации предусмотрены отдельные роли мигратора и приложения.

Redis

Redis используется для кэша авторизации агентов, presence, rate limiting, временных сообщений, блокировок синхронизации, runtime прямого экрана и межпроцессной очереди Socket.IO. Критические постоянные данные остаются в PostgreSQL.

Агент Windows

Системная служба отвечает за защищённую идентичность, heartbeat, политики, очередь и фоновые мониторы. Пользовательский процесс работает в интерактивной сессии и предоставляет функции, которым нужен рабочий стол пользователя.

Будущий агент Linux

Linux-агент планируется как отдельная реализация и не является режимом Windows-агента. Он будет использовать тот же API регистрации, heartbeat и подписанную схему политик. Первый целевой вариант графической подсистемы - X11; Wayland планируется отдельным этапом. Политики содержат список целевых платформ. Полный набор политик workspace синхронизируется на каждый клиент, но Windows- и Linux-агенты выполняют только правила, совместимые со своей ОС; в интерфейсе клиента отдельно отображается применимость политики.

Обновление агентов

Подсистема обновления состоит из серверной очереди agent_update_targets, API выдачи одноразового grant, подписанного ZIP-релиза и клиентского CopkaRoyUpdater.exe. Клиент сообщает версию в heartbeat, сервер сравнивает её с текущим релизом и при необходимости выдаёт предложение обновления.

Updater распаковывает пакет во временный каталог, проверяет манифест и файлы, копирует релиз в версионный слот и переключает launcher на новую версию. Если новая служба не запускается, выполняется откат на предыдущий слот.

Изоляция арендаторов

Основные сущности содержат workspace_id. Сервер определяет рабочую область по аутентифицированному пользователю или токену агента и не должен доверять workspace/client ID из клиентского payload без повторной проверки.

Время и идентификаторы

События передаются в UTC. Отображение выполняется в IANA-часовом поясе пользователя. Клиент имеет UUID и токен; политики имеют bundle version/UUID и могут подписываться Ed25519.