


КОНСТРУКТОР ОТЧЕТОВ КИТ - это интеллектуальная платформа для оптимизации процессов в организациях за счет автоматизации сбора отчетности. Ее архитектура построена на микросервисной модели, что обеспечивает масштабируемость и гибкость.
Основные компоненты платформы и их взаимодействие:
ㅤ
Frontend (React + TypeScript, Vite):
- Constructor UI: Веб‑интерфейс конструктора отчётов/форм, реализованный на React 19 + TypeScript с использованием Vite для сборки. Обеспечивает визуальную настройку форм, атрибутов, периодов и связанных сущностей.
- UI‑компоненты и тема: Библиотека Ant Design (компоненты таблиц, форм, модалок, дерева и т.п.) плюс emotion для стилизации.
- Управление состоянием: Redux Toolkit + react-redux для хранения состояния конструктора, выбранных сущностей, прав доступа и текущих контекстов работы.
- Маршрутизация: react-router-dom для разделения интерфейса на разделы (конструктор, справочники, отчёты, администрирование).
- Аутентификация на фронтенде: Интеграция с Keycloak через keycloak-js и @react-keycloak/web, управление сессией пользователя и прокидывание токенов в API‑запросы.
- Работа с API: axios для вызова REST/HTTP‑эндпоинтов бэкенда, обработка ошибок и перехватчики для авторизации.
⠀
Backend (микросервисы на Go):
- Reforming Service (reforming): Основной сервис конструктора, реализующий бизнес‑логику работы с формами, атрибутами, источниками, периодами и организационной структурой. Использует gorilla/mux для HTTP‑маршрутизации, pgx и squirrel для работы с PostgreSQL, а также golang-migrate для управления миграциями.
- Reference Service (reference): Сервис справочников и нормативно‑справочной информации (организации, периоды, цепочки, дополнительные сущности), к которым привязывается конструктор. Обеспечивает согласованность справочных данных и доступ к ним через API.
- Storage Service (storage): Сервис файлового/объектного хранилища отчётов, вложений и экспортов. Использует minio-go и aws-sdk-go для работы с S3‑совместимыми хранилищами (MinIO и др.), а также PostgreSQL для метаданных.
- Toolkit Library (toolkit): Общая библиотека для всех сервисов:
· унифицированный доступ к БД (pgx, sqlx, драйверы PostgreSQL, ClickHouse, MongoDB);
· интеграция с RabbitMQ и Redis (очереди и кэш);
· поддержка JWT/OIDC через jwx, jwt;
· логирование (logrus), конфигурация (viper), telemetry (OpenTelemetry, Prometheus).
- API‑слой: Во всех сервисах используется kin-openapi и oapi-codegen для генерации и валидации OpenAPI‑совместимых HTTP‑API. Фронтенд обращается к этим HTTP‑сервисам напрямую либо через внешний gateway (в инфраструктуре).
- Аутентификация и авторизация:
· На стороне фронтенда — Keycloak (OIDC);
· На стороне бэкенда — валидация JWT‑токенов, маппинг ролей и прав доступа к операциям конструктора, маршрутам и данным.
- Фоновая обработка: Долгие операции (генерация отчётов, экспорты, нотификации) могут обрабатываться асинхронно через RabbitMQ и Redis (очереди задач и кэш).
- Мониторинг и наблюдаемость: Встроенные метрики через prometheus/client_golang, трассировка и распределённый трейсинг через OpenTelemetry.
⠀
Database (PostgreSQL):
- Основная реляционная БД: PostgreSQL используется как основное хранилище данных конструктора.
- Миграции и схема: Управление схемой через golang-migrate; реализованы таблицы для форм (form), атрибутов (attr), периодов (period), организаций (org), цепочек (chain, chain_org) и связанных сущностей.
- Бизнес‑логика в БД: Используются триггеры и функции (например, obj_before_insert_update, obj_before_delete, tree_before_insert_update и т.п.) для обеспечения целостности, ведения истории и автоматического обслуживания связей.
⠀
Дополнительные хранилища и компоненты:
- Object Storage (MinIO / S3): Для хранения файлов отчётов, шаблонов и вложений через minio-go / S3‑API (Storage Service).
- ClickHouse / MongoDB (через toolkit): Поддержка подключения к аналитическим и документ‑ориентированным хранилищам (ClickHouse, MongoDB) для специализированных сценариев отчётности и аналитики.
- Cache (Redis): Используется для кэширования часто запрашиваемых данных и хранения вспомогательных структур (сессии, кэши справочников, промежуточные результаты).
- Message Queue (RabbitMQ): Брокер сообщений для асинхронного взаимодействия сервисов, постановки задач на фоновую обработку и обмен событийной информацией.
ㅤ⠀
Взаимодействие компонентов:
- Фронтенд → Backend: Интерфейс конструктора (React) обращается к HTTP‑API микросервисов reforming, reference, storage (напрямую или через внешний API gateway в инфраструктуре).
- Микросервисы ↔ Database: Каждый сервис использует общую библиотеку toolkit для работы с PostgreSQL и (при необходимости) дополнительными хранилищами.
- Асинхронные задачи: Для долгих операций сервисы помещают задания в очереди RabbitMQ, результаты и промежуточные данные кешируются в Redis и/или сохраняются в объектное хранилище.
- Наблюдаемость: Все сервисы экспортируют метрики для Prometheus и трассы для OpenTelemetry, что позволяет контролировать состояние конструктора и производительность.
⠀
Методы и средства разработки программного обеспечения:
- Языки программирования: Go 1.25+ (бэкенд‑сервисы и общие библиотеки), TypeScript + JavaScript (ES6+) (фронтенд), SQL (PostgreSQL, миграции, триггеры).
- Фреймворки и библиотеки: Frontend: React, Vite, Redux Toolkit, React Router, Ant Design, axios, emotion. Backend: gorilla/mux, pgx, sqlx, golang-migrate, viper, logrus, oapi-codegen, Prometheus client, OpenTelemetry, клиенты RabbitMQ, Redis, minio-go, драйверы PostgreSQL/ClickHouse/MongoDB.
- Инструменты разработки: Редакторы/IDE: VS Code, GoLand/IntelliJ (типично для Go и фронтенда), Статический анализ и форматирование: eslint, prettier, typescript-eslint (фронтенд), go test, testcontainers-go, stretchr/testify (бэкенд).
- Система контроля версий: Git, с размещением исходного кода и версионированием модулей в GitLab (модули вида gitlab.komintekh.ru/komintekh/reporting/...).
- Методология разработки: Гибкие методологии Agile (Scrum/Kanban) с короткими итерациями, code review через merge‑request’ы в GitLab и автоматическими проверками.
- Инструменты тестирования: Backend: модульные тесты на Go с использованием testify, go-sqlmock, testcontainers-go (подъём PostgreSQL/MinIO/RabbitMQ в контейнерах); Frontend: линтеры и типизация (eslint, TypeScript), при необходимости — UI/интеграционные тесты (можно расширять Jest/Playwright).
- Контейнеризация и оркестрация: Контейнеризация всех сервисов через Docker (отдельные Dockerfile для серверов и миграций),
Оркестрация в Kubernetes, конфигурация окружений через Helm‑чарты (в т.ч. значения для stage), использование конфиг‑томов и секретов.
- CI/CD: GitLab CI/CD для сборки Docker‑образов, прогонки тестов, применения миграций БД и выката в Kubernetes‑окружения (dev/stage/prod).

КОНСТРУКТОР ОТЧЕТОВ КИТ имеет свидетельство о государственной регистрации программы для ЭВМ № 2026613973 от 11.02.2026 в Федеральной службе по интеллектуальной собственности (Роспатент)
КОНСТРУКТОР ОТЧЕТОВ КИТ имеет свидетельство о государственной регистрации программы для ЭВМ № 2026613973 от 11.02.2026 в Федеральной службе по интеллектуальной собственности (Роспатент)
Руководство пользователя — это документ, который помогает людям эффективно и безопасно использовать различные системы, программы или устройства. Его основная цель — сделать продукт понятным для пользователей любого уровня подготовки.
Стоимость ПО может варьироваться в зависимости от проекта и пожеланий Заказчика. В документе указана цена за поставку всех модулей платформы.