Skip to main content

Архитектурная схема Системы хранения данных

Схема взаимодействия компонентов Системы хранения данных.

Наименование сервисаОписание
ArangodbБаза данных, содержащая метаданные файлов (в т. ч. информацию о владельце документа, правах доступа и пр.)
AristotelesСервер приложений, выступающий backend-частью для компонентов Системы редактирования и совместной работы в части выполнения файловых операций, разграничения прав доступа, версионирования, фиксации истории событий по объектам
DionisСервис, отвечающий за удаление и переназначение прав доступа для объектов пользователей
ElasticsearchCервис, отвечающий за поиск по содержимому по хранящимся файлам
EpicureСервис формирования и отправки сообщений безопасности с последующей отправкой в аудит-системы (SIEM)
EuclidRest API сервис, отвечает за администрирование пользователей в системе
Guests_linksСервис, осуществляющий создание, обновление, удаление гостевых ссылок
HeraclitusСервис очистки архивных данных, удаленных пользователями из корзины. Может настраивать сроки хранения архивных данных и автоудаления их с диска по заданному расписанию
KeycloakСервис SSO, сохраняет в себе настройки системы, данные по тенантам и пользователям
Nginx-gostПрокси-сервис, обеспечивающий доступ до: rabbitmq, aristotels, euclid
PheidippidesСервис, осуществляющий обработку событий в Redis каналах (автоматическая блокировка IP-адресов/публичных ссылок)
PostrgresPostgreSQL, база данных для сервиса авторизации Keycloak
RabbitMQОчередь сообщений. Используется для передачи документов в elasticsearch для поиска по содержимому документов и для передачи межкомпонентных уведомлений от Системы хранения данных в Систему редактирования и совместной работы об изменении настроек хранилища
RedisБаза данных «ключ-значение» для неперсистентных данных (в основном используется для хранения токенов и других авторизационных данных)
sharing-apiСервис, осуществляющий создание и управление прямыми ссылками, проверку доступа к файлам по прямым ссылкам
Sisyphus_
sisyphussearch
Сервис, осуществляющий поиск по содержимому документов в elasticsearch
Sisyphus_
sisyphusworker
Сервис, осуществляющий передачу файлов из rabbitMQ в elasticsearch
Storage S3Блок storage осуществляет хранение файлов системы. В качестве хранилища S3 в проекте используется minIO.
subscriptionsСервис, отвечающий за функционал подписок и уведомлений
api_gatewayВнутренний прокси-сервер PGS. Расположен после Nginx и перенаправляет запросы с постфиксом /pgsapi, /adminapi в соответствующие сервисы
user_listenerСервис для прослушивания событий в PostgreSQL. Используется при интеграции с внешними каталогами (AD, FreeIPA, OpenLDAP). Отслеживает события изменений статуса пользователя и отправляет запросы в Euclid по http для обновления статуса пользователя
restrictions_rulesСервис с правилами запретов и исключений. Интерфейс управления доступен из административной панели