Компоненты
Основные компоненты системы
Интерфейс пользователя
Main UI
Главный интерфейс пользователя, реализованный на Vue.js. Он обеспечивает доступ к основным функциональным возможностям системы для конечных пользователей. Этот интерфейс включает такие модули, как управление бизнес-процессами, задачами, документооборотом, аналитикой и др.
Account UI
Интерфейс авторизации, регистрации, смены пароля, подтверждения почты, реализованный на Vue.js. Этот модуль позволяет пользователям управлять своими учетными записями и контролировать процесс аутентификации, включая интеграцию с внешними провайдерами OAuth2 и SSO решениями, такими как Visary ID.
API Gateway
API шлюз, который объединяет все микросервисы в единую точку доступа для внешних запросов. Это упрощает маршрутизацию и позволяет централизованно управлять безопасностью.
Services
Web Applications
- Identity: Аутентификация и авторизация с использованием OpenID Connect (OIDC) и OAuth 2.0.
- Main API: Работа с бизнес-объектами платформы.
- Workflow: Управление бизнес-процессами.
- User Profile: Управление профилями пользователей.
- File Storage: Хранение и управление файлами.
- BI: Бизнес-аналитика для создания отчетов и дашбордов.
- Calendar: Управление событиями и календарями.
- Notification: Отправка уведомлений пользователям.
- Audit: Аудит изменений данных.
- Email: Отправка email-сообщений.
- Tracker: Управление задачами.
- Office: Работа с текстовыми документами, таблицами и PDF-файлами.
- Signature: Создание цифровых подписей.
- Notes: Создание пользовательских заметок.
Workers (Фоновые сервисы)
- Preview Worker: Генерация превью картинок для загружаемых файлов.
- File Indexer: Индексация файлов с использованием OCR для распознавания текста.
Data Storage Services
Redis
Используется как key-value хранилище для:
- Кэширования данных (распределенный кэш).
- Хранения настроек.
- Управления фоновой системой заданий (с использованием Hangfire).
- Для хранения Saga (State Machine Sagas).
PostgreSQL
Реляционная база данных, используемая для хранения всех бизнес-данных платформы. Основные компоненты системы взаимодействуют с базой данных через Entity Framework Core.
Event Bus
Шина событий, построенная на RabbitMQ or Kafka, используется для асинхронного обмена сообщениями между микросервисами системы.
Monitoring
- Prometheus: Система мониторинга, которая собирает метрики с микросервисов и узлов системы для последующего анализа.
- Grafana: Инструмент для визуализации данных мониторинга, позволяет строить дашборды для отслеживания состояния системы.