Expand architecture documentation: add SMTP integration details to multiple components in matrix.example.json and example-technology.xml.
This commit is contained in:
parent
3830144269
commit
2ca8360388
@ -8,150 +8,227 @@
|
|||||||
|
|
||||||
Односторонняя синхронизация учётных записей из ядра платформы во внешний провайдер идентификации: созданный или изменённый пользователь вместе с профилем, принадлежностью организации и метаданными появляется в Zitadel, где на этих данных строится авторизация доменных сервисов. Работает консьюмером Kafka-топика, отдельный консольный режим использовался для первичной массовой миграции пользователей и компаний. Входящих вызовов не принимает.
|
Односторонняя синхронизация учётных записей из ядра платформы во внешний провайдер идентификации: созданный или изменённый пользователь вместе с профилем, принадлежностью организации и метаданными появляется в Zitadel, где на этих данных строится авторизация доменных сервисов. Работает консьюмером Kafka-топика, отдельный консольный режим использовался для первичной массовой миграции пользователей и компаний. Входящих вызовов не принимает.
|
||||||
|
|
||||||
|
Стек: Python · консьюмер Kafka (kafka-python) · requests с ретраями · Zitadel Management API.
|
||||||
|
|
||||||
## attachments
|
## attachments
|
||||||
|
|
||||||
Универсальное хранилище файловых вложений к любым сущностям платформы: файл кладётся в S3, метаданные — в PostgreSQL, привязка полиморфная («имя модели + идентификатор экземпляра»). Скачивание идёт по временным подписанным ссылкам напрямую из объектного хранилища.
|
Универсальное хранилище файловых вложений к любым сущностям платформы: файл кладётся в S3, метаданные — в PostgreSQL, привязка полиморфная («имя модели + идентификатор экземпляра»). Скачивание идёт по временным подписанным ссылкам напрямую из объектного хранилища.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · PostgreSQL (psycopg2, сырой SQL; Alembic только для схемы) · S3 через boto3 · OpenTelemetry.
|
||||||
|
|
||||||
## auth-flow
|
## auth-flow
|
||||||
|
|
||||||
Входная точка авторизации платформы: страницы `/login`, `/logout`, `/auth/callback`, `/auth/error` и обработка OIDC-редиректов Zitadel по Authorization Code flow. Полученные токены передаются в оболочку микрофронтендов; бизнес-данных компонент не хранит.
|
Входная точка авторизации платформы: страницы `/login`, `/logout`, `/auth/callback`, `/auth/error` и обработка OIDC-редиректов Zitadel по Authorization Code flow. Полученные токены передаются в оболочку микрофронтендов; бизнес-данных компонент не хранит.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · Webpack 5 · внутренний sdk-js поверх oidc-client · Zitadel (OIDC) · oauth2-proxy в инфраструктуре.
|
||||||
|
|
||||||
## bim
|
## bim
|
||||||
|
|
||||||
Ядро работы с информационными моделями: хранит BIM-модели проекта, дерево элементов, их свойства и статусную модель хода строительства (в том числе корпоративные шаблоны статусов с цветами и переходами). Питает раскраску моделей во вьюере, фильтрацию элементов и отчётность о проценте готовности.
|
Ядро работы с информационными моделями: хранит BIM-модели проекта, дерево элементов, их свойства и статусную модель хода строительства (в том числе корпоративные шаблоны статусов с цветами и переходами). Питает раскраску моделей во вьюере, фильтрацию элементов и отчётность о проценте готовности.
|
||||||
|
|
||||||
|
Стек: Go (go-pg, gorilla/mux, Prometheus) и легаси-часть на Python/Flask · PostgreSQL с шардированием и партиционированием · S3 · джоб metadata-inserter на Go.
|
||||||
|
|
||||||
## cde
|
## cde
|
||||||
|
|
||||||
Среда общих данных (CDE): документы, версии, комплекты, права, штампы, QR-метки, электронные подписи, публичные ссылки и changelog. Публикует доменные события через transactional outbox в Kafka и постепенно принимает на себя мутирующие вызовы legacy-сервисов документации.
|
Среда общих данных (CDE): документы, версии, комплекты, права, штампы, QR-метки, электронные подписи, публичные ссылки и changelog. Публикует доменные события через transactional outbox в Kafka и постепенно принимает на себя мутирующие вызовы legacy-сервисов документации.
|
||||||
|
|
||||||
|
Стек: Go (Fiber, go-pg) · PostgreSQL · S3/MinIO · Valkey · Kafka (transactional outbox) · Camunda 8 / Zeebe · OpenTelemetry.
|
||||||
|
|
||||||
## checklists
|
## checklists
|
||||||
|
|
||||||
Шаблоны проверок (чек-листы из шагов и типизированных элементов ввода) и результаты их заполнения. Результат привязывается к любой сущности платформы через пару «тип сущности + идентификатор» и может блокироваться после согласования по вызову из flows.
|
Шаблоны проверок (чек-листы из шагов и типизированных элементов ввода) и результаты их заполнения. Результат привязывается к любой сущности платформы через пару «тип сущности + идентификатор» и может блокироваться после согласования по вызову из flows.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · Piccolo ORM с админкой · PostgreSQL (JSONB) · собственный JWT-middleware · OpenTelemetry.
|
||||||
|
|
||||||
## comparisons
|
## comparisons
|
||||||
|
|
||||||
Сравнение проектных данных и выявление отклонений: облако точек к облаку, облако к модели, PDF к PDF, BIM к BIM, расчёт отклонений. Тяжёлые вычисления делегируются движку workflow, результат раскладывается на элементы и изменения, доступные для фильтрации и верификации инженером.
|
Сравнение проектных данных и выявление отклонений: облако точек к облаку, облако к модели, PDF к PDF, BIM к BIM, расчёт отклонений. Тяжёлые вычисления делегируются движку workflow, результат раскладывается на элементы и изменения, доступные для фильтрации и верификации инженером.
|
||||||
|
|
||||||
|
Стек: Go (Fiber, go-pg) · PostgreSQL · Docker-образы задач в реестре · фронтенд на TypeScript/React/MobX/Material-UI (Module Federation).
|
||||||
|
|
||||||
## contracts
|
## contracts
|
||||||
|
|
||||||
Реестр договоров компании: номер, подрядчик, сроки, стоимость, привязка к проекту или объекту. Даёт коммерческий контур поверх производственных данных; на договор, в частности, ссылается предписание.
|
Реестр договоров компании: номер, подрядчик, сроки, стоимость, привязка к проекту или объекту. Даёт коммерческий контур поверх производственных данных; на договор, в частности, ссылается предписание.
|
||||||
|
|
||||||
|
Стек: Go · Fiber v3 · pgx + squirrel · PostgreSQL (JSONB) · фронтенд на TypeScript/React/MobX по Feature-Sliced Design.
|
||||||
|
|
||||||
## control-interface
|
## control-interface
|
||||||
|
|
||||||
Административный контур платформы (srx-admin): управление пользователями, ролями, атрибутами, подразделениями, проектами и функциональными группами, а также реестром активов компании с правами доступа. Отдельный крупный сценарий — пакетный импорт активов из XLSX со статусами заданий и отчётами об ошибках.
|
Административный контур платформы (srx-admin): управление пользователями, ролями, атрибутами, подразделениями, проектами и функциональными группами, а также реестром активов компании с правами доступа. Отдельный крупный сценарий — пакетный импорт активов из XLSX со статусами заданий и отчётами об ошибках.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · Material-UI и ui-kit · Webpack 5 Module Federation · монорепозиторий npm-workspaces; собственного хранилища нет.
|
||||||
|
|
||||||
## cross-section
|
## cross-section
|
||||||
|
|
||||||
Инструмент построения поперечных сечений по облакам точек и BIM-документам прямо во вьюере, с сохранением сечений, цветовой легендой документов и экспортом в DWG. Применяется при обмере и контроле построенного; серверная часть — drawings.
|
Инструмент построения поперечных сечений по облакам точек и BIM-документам прямо во вьюере, с сохранением сечений, цветовой легендой документов и экспортом в DWG. Применяется при обмере и контроле построенного; серверная часть — drawings.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · pixi-viewer · джоб экспорта в DWG на Go с Python-генератором · PostgreSQL · объектное хранилище.
|
||||||
|
|
||||||
## django
|
## django
|
||||||
|
|
||||||
Легаси-монолит и ядро продукта: компании, пользователи, роли и подрядчики, объекты строительства, миссии аэрофотосъёмки, ортофотопланы, облака точек и поверхности, измерения, аналитика с дашбордами и метриками, карта, ТОиР, уведомления и журнал действий. Здесь же — основной SPA-хост, в который встраиваются все микрофронтенды платформы.
|
Легаси-монолит и ядро продукта: компании, пользователи, роли и подрядчики, объекты строительства, миссии аэрофотосъёмки, ортофотопланы, облака точек и поверхности, измерения, аналитика с дашбордами и метриками, карта, ТОиР, уведомления и журнал действий. Здесь же — основной SPA-хост, в который встраиваются все микрофронтенды платформы.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-guardian · channels · Celery + Redis · Kafka · PostgreSQL, ClickHouse, MongoDB, S3 · фронтенд на TypeScript/React/MobX (Module Federation, PWA).
|
||||||
|
|
||||||
## documentations
|
## documentations
|
||||||
|
|
||||||
Рабочая среда документации проекта: диски, дерево папок, документы с версиями, страницами, атрибутами, правами и связями; штампы, ЭЦП, подписки, корзина, публичные ссылки. Отвечает также за постановку загруженных инженерных форматов в очередь конвертации. Домен находится в миграции — мутирующие операции проксируются в cde.
|
Рабочая среда документации проекта: диски, дерево папок, документы с версиями, страницами, атрибутами, правами и связями; штампы, ЭЦП, подписки, корзина, публичные ссылки. Отвечает также за постановку загруженных инженерных форматов в очередь конвертации. Домен находится в миграции — мутирующие операции проксируются в cde.
|
||||||
|
|
||||||
|
Стек: Go (go-pg, Fiber, swaggo) · PostgreSQL · S3 с многочастной загрузкой · Valkey · RabbitMQ · Mailgun/SMTP · фронтенд на TypeScript/React/MobX.
|
||||||
|
|
||||||
## document-link
|
## document-link
|
||||||
|
|
||||||
Публичная страница выданной наружу ссылки на документ: получатель без учётной записи видит карточку документа и скачивает файл. Собственного бэкенда нет — данные отдаёт публичный эндпоинт documentations, срок действия ограничен JWT ссылки.
|
Публичная страница выданной наружу ссылки на документ: получатель без учётной записи видит карточку документа и скачивает файл. Собственного бэкенда нет — данные отдаёт публичный эндпоинт documentations, срок действия ограничен JWT ссылки.
|
||||||
|
|
||||||
|
Стек: TypeScript · Next.js (app router) · React · SWR · Tailwind; собственного бэкенда нет.
|
||||||
|
|
||||||
## drawings
|
## drawings
|
||||||
|
|
||||||
Серверная часть сечений: хранит поперечные сечения по поверхностям и облакам точек и задания на их экспорт, принимает результат асинхронной выгрузки по webhook. Применяется при исполнительной съёмке и контроле выполненных объёмов.
|
Серверная часть сечений: хранит поперечные сечения по поверхностям и облакам точек и задания на их экспорт, принимает результат асинхронной выгрузки по webhook. Применяется при исполнительной съёмке и контроле выполненных объёмов.
|
||||||
|
|
||||||
|
Стек: Go · gorilla/mux · go-pg с миграциями · PostgreSQL · внутренние библиотеки gotools и sdk-go · Prometheus.
|
||||||
|
|
||||||
## eav
|
## eav
|
||||||
|
|
||||||
Универсальная модель «сущность — атрибут — значение»: пользовательские атрибуты, их типы, схемы и справочники, расширяющие любые доменные объекты без изменения схемы БД. Второй блок — иерархический классификатор активов объекта (WBS-дерево) с импортом и экспортом через Excel.
|
Универсальная модель «сущность — атрибут — значение»: пользовательские атрибуты, их типы, схемы и справочники, расширяющие любые доменные объекты без изменения схемы БД. Второй блок — иерархический классификатор активов объекта (WBS-дерево) с импортом и экспортом через Excel.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-filter · Celery · PostgreSQL (в том числе сырой SQL для иерархии) · pandas + openpyxl · контракты protobuf.
|
||||||
|
|
||||||
## faas
|
## faas
|
||||||
|
|
||||||
Логическое имя слоя эфемерных вычислительных функций — одноразовых job-контейнеров, запускаемых движком workflow поверх Kubernetes. Отдельного репозитория и кодовой базы не найдено; значение компонента требует уточнения у команды платформы.
|
Логическое имя слоя эфемерных вычислительных функций — одноразовых job-контейнеров, запускаемых движком workflow поверх Kubernetes. Отдельного репозитория и кодовой базы не найдено; значение компонента требует уточнения у команды платформы.
|
||||||
|
|
||||||
|
Стек: Предположительно Kubernetes Job и воркеры RabbitMQ поверх Docker-образов на Python и Go; собственной кодовой базы не найдено, стек требует подтверждения.
|
||||||
|
|
||||||
## flows
|
## flows
|
||||||
|
|
||||||
Маршруты согласования проектной документации: маршрут из шагов с назначенными согласующими, ревью документов, решения участников, сроки по рабочим дням и очередь задач согласующего. Публикует события согласования в Kafka и умеет автоматически инициировать трансмиттал после завершения маршрута.
|
Маршруты согласования проектной документации: маршрут из шагов с назначенными согласующими, ревью документов, решения участников, сроки по рабочим дням и очередь задач согласующего. Публикует события согласования в Kafka и умеет автоматически инициировать трансмиттал после завершения маршрута.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · SQLAlchemy + Alembic · PostgreSQL (JSONB) · Celery · FastStream + Kafka · фронтенд на TypeScript/React/MobX (rsbuild + Module Federation).
|
||||||
|
|
||||||
## iam
|
## iam
|
||||||
|
|
||||||
Платформенный IAM: иерархия ресурсов, компании, пользователи, сервисные аккаунты и права по модели ReBAC (SpiceDB). Отвечает на вопросы «какие права у пользователя на ресурс» и «какие ресурсы доступны пользователю», на которые опираются остальные сервисы; пользователи заводятся во внешнем Zitadel.
|
Платформенный IAM: иерархия ресурсов, компании, пользователи, сервисные аккаунты и права по модели ReBAC (SpiceDB). Отвечает на вопросы «какие права у пользователя на ресурс» и «какие ресурсы доступны пользователю», на которые опираются остальные сервисы; пользователи заводятся во внешнем Zitadel.
|
||||||
|
|
||||||
|
Стек: Go, гексагональная архитектура · SpiceDB по gRPC с собственным Postgres-datastore · PostgreSQL · S3 · Kafka · Zitadel Management API · Helm с Istio.
|
||||||
|
|
||||||
## inspections
|
## inspections
|
||||||
|
|
||||||
События и проверки на объекте: планирование осмотров с типом, датой, ответственными, локацией и настраиваемыми атрибутами, контроль занятости исполнителей, история изменений и выгрузка реестра в XLSX. Отдельная подсистема — правила доступности и идемпотентное бронирование слотов для выездов и приёмок.
|
События и проверки на объекте: планирование осмотров с типом, датой, ответственными, локацией и настраиваемыми атрибутами, контроль занятости исполнителей, история изменений и выгрузка реестра в XLSX. Отдельная подсистема — правила доступности и идемпотентное бронирование слотов для выездов и приёмок.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · Piccolo ORM с админкой · PostgreSQL (JSONB, триггеры, advisory-локи) · FastStream + Kafka · фронтенд на React/MobX с DevExpress Scheduler.
|
||||||
|
|
||||||
## issues
|
## issues
|
||||||
|
|
||||||
Сервис замечаний строительного контроля: типы, настраиваемые статусные модели с правами на переходы, ответственные, комментарии, фото-вложения, атрибуты EAV и история изменений. Включает выпуск предписаний, выгрузку реестров в XLSX и PDF и рассылку уведомлений. Один бэкенд обслуживает также компоненты remarks и prescriptions.
|
Сервис замечаний строительного контроля: типы, настраиваемые статусные модели с правами на переходы, ответственные, комментарии, фото-вложения, атрибуты EAV и история изменений. Включает выпуск предписаний, выгрузку реестров в XLSX и PDF и рассылку уведомлений. Один бэкенд обслуживает также компоненты remarks и prescriptions.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL с полнотекстовым поиском · Celery + Redis · Kafka · S3 · pandas и ReportLab для XLSX и PDF · SimpleJWT с Zitadel.
|
||||||
|
|
||||||
## mapper
|
## mapper
|
||||||
|
|
||||||
Агрегирующий сервис (BFF), склеивающий данные нескольких API в один ответ для интерфейса: реестр документов диска вместе с состоянием согласования и заметки вместе с их связями. Собственной доменной модели и базы не имеет, ответы кеширует в Redis.
|
Агрегирующий сервис (BFF), склеивающий данные нескольких API в один ответ для интерфейса: реестр документов диска вместе с состоянием согласования и заметки вместе с их связями. Собственной доменной модели и базы не имеет, ответы кеширует в Redis.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · httpx с ретраями · Redis/RedisJSON как кеш; собственной БД нет.
|
||||||
|
|
||||||
## measurements
|
## measurements
|
||||||
|
|
||||||
Геопространственные измерения по материалам аэросъёмки: высота и температура в точке, профиль вдоль ломаной, расчёт объёма по контуру и разности объёмов между съёмками, метаданные растров и пересчёт координат. Stateless-сервис без собственной БД, читающий GeoTIFF напрямую из объектного хранилища.
|
Геопространственные измерения по материалам аэросъёмки: высота и температура в точке, профиль вдоль ломаной, расчёт объёма по контуру и разности объёмов между съёмками, метаданные растров и пересчёт координат. Stateless-сервис без собственной БД, читающий GeoTIFF напрямую из объектного хранилища.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · GDAL, pyproj, NumPy, OpenCV, SciPy · чтение GeoTIFF из S3 через boto3; собственной БД нет.
|
||||||
|
|
||||||
## message-hub
|
## message-hub
|
||||||
|
|
||||||
Событийный хаб домена планирования: принимает события Kafka и выполняет побочные действия — пересчёт аналитики, обновление атрибутов, письма, экспорты, системный журнал, автопланирование, синхронизацию проектов и ресурсов. Транслирует изменения в браузер по WebSocket, обеспечивая живое обновление доски проекта.
|
Событийный хаб домена планирования: принимает события Kafka и выполняет побочные действия — пересчёт аналитики, обновление атрибутов, письма, экспорты, системный журнал, автопланирование, синхронизацию проектов и ресурсов. Транслирует изменения в браузер по WebSocket, обеспечивая живое обновление доски проекта.
|
||||||
|
|
||||||
|
Стек: Python · FastStream + Kafka (aiokafka) · python-socketio с Redis · SQLAlchemy Core с сырым SQL к PostgreSQL · S3 · Jinja2 для писем.
|
||||||
|
|
||||||
## notes
|
## notes
|
||||||
|
|
||||||
Заметки и примечания на объектах проекта: пометка на 2D-чертеже или в 3D-модели со сроком, цветом, фотографиями, вложениями и связями с сущностями разных сервисов. Поддерживает отправку скриншота вида и формирование документа по заметке; применяется при авторском надзоре и строительном контроле.
|
Заметки и примечания на объектах проекта: пометка на 2D-чертеже или в 3D-модели со сроком, цветом, фотографиями, вложениями и связями с сущностями разных сервисов. Поддерживает отправку скриншота вида и формирование документа по заметке; применяется при авторском надзоре и строительном контроле.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · SQLAlchemy + Alembic · PostgreSQL с полнотекстовым поиском · фронтенд на TypeScript/React/MobX/Material-UI.
|
||||||
|
|
||||||
## pm
|
## pm
|
||||||
|
|
||||||
Календарно-сетевое планирование: иерархия задач, длительности, связи предшествования, календари, базовые планы, факт и проценты выполнения, ресурсы и назначения. Импорт графиков из MS Project, Primavera и XLSX, работа на диаграмме Ганта, экспорт в PDF, асинхронное автопланирование и пересчёт.
|
Календарно-сетевое планирование: иерархия задач, длительности, связи предшествования, календари, базовые планы, факт и проценты выполнения, ресурсы и назначения. Импорт графиков из MS Project, Primavera и XLSX, работа на диаграмме Ганта, экспорт в PDF, асинхронное автопланирование и пересчёт.
|
||||||
|
|
||||||
|
Стек: Python · Django 5 + DRF, целевой стиль — FastAPI с async SQLAlchemy · PostgreSQL с триггерами · ClickHouse · S3 · Celery + Redis · Kafka · pandas, парсеры MS Project и Primavera · фронтенд на React/MobX.
|
||||||
|
|
||||||
## prescriptions
|
## prescriptions
|
||||||
|
|
||||||
Выдача предписаний подрядчику по результатам строительного контроля: предписание собирается из замечаний, привязывается к договору, подрядчику и объекту, получает номер и проходит согласование по статусам. Официальный документ формируется по шаблону движком workflow; бэкенд — приложение внутри issues.
|
Выдача предписаний подрядчику по результатам строительного контроля: предписание собирается из замечаний, привязывается к договору, подрядчику и объекту, получает номер и проходит согласование по статусам. Официальный документ формируется по шаблону движком workflow; бэкенд — приложение внутри issues.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL (приложение внутри бэкенда issues) · генерация документов движком workflow · фронтенд на React/MobX (rsbuild + Module Federation).
|
||||||
|
|
||||||
## processing
|
## processing
|
||||||
|
|
||||||
Фабрика тяжёлых вычислений платформы: движок workflow исполняет граф задач, каждая из которых запускается отдельным контейнером (Kubernetes Job или воркер через RabbitMQ). Через него работают конвертация форматов, сравнения, экспорт в DWG и генерация документов; отдельный интерфейс даёт мониторинг, логи, отмену и перезапуск задач.
|
Фабрика тяжёлых вычислений платформы: движок workflow исполняет граф задач, каждая из которых запускается отдельным контейнером (Kubernetes Job или воркер через RabbitMQ). Через него работают конвертация форматов, сравнения, экспорт в DWG и генерация документов; отдельный интерфейс даёт мониторинг, логи, отмену и перезапуск задач.
|
||||||
|
|
||||||
|
Стек: Go (pgx, go-pg, zap) · PostgreSQL · Kubernetes client-go для джобов · RabbitMQ для сторонних воркеров · джобы на Python (boto3, внутренняя workflows-tools) · фронтенд на React/MobX.
|
||||||
|
|
||||||
## projects
|
## projects
|
||||||
|
|
||||||
Витрина проектов и карточка проекта — верхнеуровневый вход пользователя в платформу: атрибуты, местоположение, фотографии, группировки и настраиваемые вкладки с разделами-виджетами. Агрегирует показатели остальных модулей, включая встраивание внешней аналитики.
|
Витрина проектов и карточка проекта — верхнеуровневый вход пользователя в платформу: атрибуты, местоположение, фотографии, группировки и настраиваемые вкладки с разделами-виджетами. Агрегирует показатели остальных модулей, включая встраивание внешней аналитики.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · async SQLAlchemy 2.0 + Alembic · PostgreSQL (JSONB) · S3 · фронтенд на React/MobX с TanStack Query и leaflet · встраивание Superset.
|
||||||
|
|
||||||
## remarks
|
## remarks
|
||||||
|
|
||||||
Пользовательский модуль работы с замечаниями (UI): пин на чертеже, в ячейке XLSX или на задаче графика, описание, срок, ответственные, вложения и пометки поверх листа, табличное и списочное представления, фильтры, массовое редактирование и экспорт. Собственный бэкенд архивирован — модуль работает поверх issues.
|
Пользовательский модуль работы с замечаниями (UI): пин на чертеже, в ячейке XLSX или на задаче графика, описание, срок, ответственные, вложения и пометки поверх листа, табличное и списочное представления, фильтры, массовое редактирование и экспорт. Собственный бэкенд архивирован — модуль работает поверх issues.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · Material-UI · TanStack Table и Virtual; серверная часть — стек issues.
|
||||||
|
|
||||||
## resources
|
## resources
|
||||||
|
|
||||||
Единый реестр ресурсов платформы — иерархия объектов строительства (проект, объект, участок и ниже) с типами, географическим положением, кодами и правами доступа. Идентификатор ресурса служит сквозным ключом проекта во всех остальных сервисах, а сам реестр — общей точкой проверки прав, поэтому это один из самых востребованных компонентов контура. Интеграция только синхронная, по HTTP.
|
Единый реестр ресурсов платформы — иерархия объектов строительства (проект, объект, участок и ниже) с типами, географическим положением, кодами и правами доступа. Идентификатор ресурса служит сквозным ключом проекта во всех остальных сервисах, а сам реестр — общей точкой проверки прав, поэтому это один из самых востребованных компонентов контура. Интеграция только синхронная, по HTTP.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-filter · PostgreSQL с ltree и PostGIS · фронтенд в отдельном репозитории.
|
||||||
|
|
||||||
## reviews
|
## reviews
|
||||||
|
|
||||||
Рабочее место согласующего: очередь задач с приоритетами и сроками, просмотр документа, пометки и замечания, заполнение чек-листов и вынесение решения (согласовано / с замечаниями / отклонено). Ключевой этап между выпуском версии документа и выдачей её «в производство работ»; бэкенд общий с flows.
|
Рабочее место согласующего: очередь задач с приоритетами и сроками, просмотр документа, пометки и замечания, заполнение чек-листов и вынесение решения (согласовано / с замечаниями / отклонено). Ключевой этап между выпуском версии документа и выдачей её «в производство работ»; бэкенд общий с flows.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · rsbuild + Module Federation; серверная часть — стек flows, экспорт отчётов вынесен в отдельный сервис.
|
||||||
|
|
||||||
## rfi
|
## rfi
|
||||||
|
|
||||||
Формальные запросы информации между участниками проекта: запрос с приоритетом, статусом, ответственными и привязкой к ресурсу, переписка сообщениями с пометкой одного из них как решения. Приоритеты и статусы настраиваются на уровне компании, ведётся полный журнал изменений полей.
|
Формальные запросы информации между участниками проекта: запрос с приоритетом, статусом, ответственными и привязкой к ресурсу, переписка сообщениями с пометкой одного из них как решения. Приоритеты и статусы настраиваются на уровне компании, ведётся полный журнал изменений полей.
|
||||||
|
|
||||||
|
Стек: Python · Django 5.1 + DRF · django-filter · PostgreSQL · Celery · SimpleJWT с Zitadel · фронтенд на TypeScript/React/MobX (rsbuild + Module Federation).
|
||||||
|
|
||||||
## stamp-verification
|
## stamp-verification
|
||||||
|
|
||||||
Публичная страница проверки подлинности документа по QR-штампу: сканирование кода с бумажной или PDF-копии открывает карточку с документом, страницей и его актуальным состоянием, включая статус согласования. Авторизация не требуется; серверная часть — публичный эндпоинт documentations.
|
Публичная страница проверки подлинности документа по QR-штампу: сканирование кода с бумажной или PDF-копии открывает карточку с документом, страницей и его актуальным состоянием, включая статус согласования. Авторизация не требуется; серверная часть — публичный эндпоинт documentations.
|
||||||
|
|
||||||
|
Стек: Статический сайт без сборщика: HTML, vanilla JS, moment.js; серверная часть — Go (gorilla/mux, go-pg, PostgreSQL) в составе documentation-api.
|
||||||
|
|
||||||
## subscriptions
|
## subscriptions
|
||||||
|
|
||||||
Подписки на изменения объектов и рассылка уведомлений по e-mail, SMTP/Mailgun и Telegram с периодичностью от мгновенной до еженедельной. Источник изменений — не брокер, а периодический опрос журнала system-log; тексты формируются по шаблонам, привязанным к модели и типу события.
|
Подписки на изменения объектов и рассылка уведомлений по e-mail, SMTP/Mailgun и Telegram с периодичностью от мгновенной до еженедельной. Источник изменений — не брокер, а периодический опрос журнала system-log; тексты формируются по шаблонам, привязанным к модели и типу события.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL с PostGIS и TimescaleDB · SMTP и Mailgun · python-telegram-bot · Jinja2 · OpenTelemetry.
|
||||||
|
|
||||||
## system-log
|
## system-log
|
||||||
|
|
||||||
Централизованный журнал системных событий (аудит) всей платформы: кто, что и над каким объектом сделал, с метаданными, ресурсом и компанией. Обеспечивает прослеживаемость изменений и служит источником событий для механизма подписок и уведомлений.
|
Централизованный журнал системных событий (аудит) всей платформы: кто, что и над каким объектом сделал, с метаданными, ресурсом и компанией. Обеспечивает прослеживаемость изменений и служит источником событий для механизма подписок и уведомлений.
|
||||||
|
|
||||||
|
Стек: Go · Fiber · pgx + squirrel с миграциями на старте · PostgreSQL · Kafka через sarama (опционально) · отдельный воркер с cron · OpenTelemetry.
|
||||||
|
|
||||||
## transmittal
|
## transmittal
|
||||||
|
|
||||||
Формальная передача комплектов документации между участниками — сопроводительное письмо с составом, получателями, сроком и результатом приёма или отклонения. По завершении формируется акт передачи в PDF; есть шаблоны трансмитталов и связь с согласованиями, замыкающая цикл «выдал документацию → получил замечания».
|
Формальная передача комплектов документации между участниками — сопроводительное письмо с составом, получателями, сроком и результатом приёма или отклонения. По завершении формируется акт передачи в PDF; есть шаблоны трансмитталов и связь с согласованиями, замыкающая цикл «выдал документацию → получил замечания».
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · async SQLAlchemy + Alembic · PostgreSQL · S3 · taskiq + RabbitMQ · Jinja2 с собственным конвертером HTML в PDF · Mailgun и SMTP · фронтенд на React/MobX (Module Federation).
|
||||||
|
|
||||||
## workspaces
|
## workspaces
|
||||||
|
|
||||||
Рабочее пространство — сцена, в которой пользователь одновременно работает с BIM-моделями, облаками точек, PDF-чертежами и панорамами объекта, настраивает отображение и сохраняет именованные состояния. Поддерживает установку прикладных модулей компании как федеративных приложений внутри сцены и архивирование данных при закрытии этапов.
|
Рабочее пространство — сцена, в которой пользователь одновременно работает с BIM-моделями, облаками точек, PDF-чертежами и панорамами объекта, настраивает отображение и сохраняет именованные состояния. Поддерживает установку прикладных модулей компании как федеративных приложений внутри сцены и архивирование данных при закрытии этапов.
|
||||||
|
|
||||||
|
Стек: Go (gorilla/mux, go-pg, Prometheus, Sentry, JWT на RSA) · PostgreSQL · фронтенд на TypeScript/React/MobX с viewer (Module Federation), кеш в IndexedDB · тесты Cypress и Jest.
|
||||||
|
|
||||||
## ac-bim-converter
|
## ac-bim-converter
|
||||||
|
|
||||||
Подготовка исходных САПР-моделей (IFC, NWD и другие форматы Autodesk) к просмотру и анализу: облегчённая геометрия glTF/`.s3d` плюс структурированный набор свойств, категорий и материалов элементов. Обязательное звено между загрузкой документа в CDE и появлением работоспособной модели в интерфейсе; работает как эфемерный джоб и как постоянный воркер RPC.
|
Подготовка исходных САПР-моделей (IFC, NWD и другие форматы Autodesk) к просмотру и анализу: облегчённая геометрия glTF/`.s3d` плюс структурированный набор свойств, категорий и материалов элементов. Обязательное звено между загрузкой документа в CDE и появлением работоспособной модели в интерфейсе; работает как эфемерный джоб и как постоянный воркер RPC.
|
||||||
|
|
||||||
|
Стек: Ядро на Python с ifcopenshell и NumPy · обвязка и воркеры на Go · RabbitMQ (RPC) · S3 · Docker · плагин Navisworks на C#/.NET (SharpGLTF) · форматы IFC и NWD в glTF/GLB, `.s3d` и JSON свойств.
|
||||||
|
|
||||||
|
|||||||
@ -5,118 +5,194 @@
|
|||||||
<folder name="Business" id="folder-business" type="business"/>
|
<folder name="Business" id="folder-business" type="business"/>
|
||||||
<folder name="Application" id="folder-application" type="application">
|
<folder name="Application" id="folder-application" type="application">
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="ams-sync" id="ac-ams-sync">
|
<element xsi:type="archimate:ApplicationComponent" name="ams-sync" id="ac-ams-sync">
|
||||||
<documentation>Односторонняя синхронизация учётных записей из ядра платформы во внешний провайдер идентификации: созданный или изменённый пользователь вместе с профилем, принадлежностью организации и метаданными появляется в Zitadel, где на этих данных строится авторизация доменных сервисов. Работает консьюмером Kafka-топика, отдельный консольный режим использовался для первичной массовой миграции пользователей и компаний. Входящих вызовов не принимает.</documentation>
|
<documentation>Односторонняя синхронизация учётных записей из ядра платформы во внешний провайдер идентификации: созданный или изменённый пользователь вместе с профилем, принадлежностью организации и метаданными появляется в Zitadel, где на этих данных строится авторизация доменных сервисов. Работает консьюмером Kafka-топика, отдельный консольный режим использовался для первичной массовой миграции пользователей и компаний. Входящих вызовов не принимает.
|
||||||
|
|
||||||
|
Стек: Python · консьюмер Kafka (kafka-python) · requests с ретраями · Zitadel Management API.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="attachments" id="ac-attachments">
|
<element xsi:type="archimate:ApplicationComponent" name="attachments" id="ac-attachments">
|
||||||
<documentation>Универсальное хранилище файловых вложений к любым сущностям платформы: файл кладётся в S3, метаданные — в PostgreSQL, привязка полиморфная («имя модели + идентификатор экземпляра»). Скачивание идёт по временным подписанным ссылкам напрямую из объектного хранилища.</documentation>
|
<documentation>Универсальное хранилище файловых вложений к любым сущностям платформы: файл кладётся в S3, метаданные — в PostgreSQL, привязка полиморфная («имя модели + идентификатор экземпляра»). Скачивание идёт по временным подписанным ссылкам напрямую из объектного хранилища.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · PostgreSQL (psycopg2, сырой SQL; Alembic только для схемы) · S3 через boto3 · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="auth-flow" id="ac-auth-flow">
|
<element xsi:type="archimate:ApplicationComponent" name="auth-flow" id="ac-auth-flow">
|
||||||
<documentation>Входная точка авторизации платформы: страницы `/login`, `/logout`, `/auth/callback`, `/auth/error` и обработка OIDC-редиректов Zitadel по Authorization Code flow. Полученные токены передаются в оболочку микрофронтендов; бизнес-данных компонент не хранит.</documentation>
|
<documentation>Входная точка авторизации платформы: страницы `/login`, `/logout`, `/auth/callback`, `/auth/error` и обработка OIDC-редиректов Zitadel по Authorization Code flow. Полученные токены передаются в оболочку микрофронтендов; бизнес-данных компонент не хранит.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · Webpack 5 · внутренний sdk-js поверх oidc-client · Zitadel (OIDC) · oauth2-proxy в инфраструктуре.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="bim" id="ac-bim">
|
<element xsi:type="archimate:ApplicationComponent" name="bim" id="ac-bim">
|
||||||
<documentation>Ядро работы с информационными моделями: хранит BIM-модели проекта, дерево элементов, их свойства и статусную модель хода строительства (в том числе корпоративные шаблоны статусов с цветами и переходами). Питает раскраску моделей во вьюере, фильтрацию элементов и отчётность о проценте готовности.</documentation>
|
<documentation>Ядро работы с информационными моделями: хранит BIM-модели проекта, дерево элементов, их свойства и статусную модель хода строительства (в том числе корпоративные шаблоны статусов с цветами и переходами). Питает раскраску моделей во вьюере, фильтрацию элементов и отчётность о проценте готовности.
|
||||||
|
|
||||||
|
Стек: Go (go-pg, gorilla/mux, Prometheus) и легаси-часть на Python/Flask · PostgreSQL с шардированием и партиционированием · S3 · джоб metadata-inserter на Go.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="cde" id="ac-cde">
|
<element xsi:type="archimate:ApplicationComponent" name="cde" id="ac-cde">
|
||||||
<documentation>Среда общих данных (CDE): документы, версии, комплекты, права, штампы, QR-метки, электронные подписи, публичные ссылки и changelog. Публикует доменные события через transactional outbox в Kafka и постепенно принимает на себя мутирующие вызовы legacy-сервисов документации.</documentation>
|
<documentation>Среда общих данных (CDE): документы, версии, комплекты, права, штампы, QR-метки, электронные подписи, публичные ссылки и changelog. Публикует доменные события через transactional outbox в Kafka и постепенно принимает на себя мутирующие вызовы legacy-сервисов документации.
|
||||||
|
|
||||||
|
Стек: Go (Fiber, go-pg) · PostgreSQL · S3/MinIO · Valkey · Kafka (transactional outbox) · Camunda 8 / Zeebe · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="checklists" id="ac-checklists">
|
<element xsi:type="archimate:ApplicationComponent" name="checklists" id="ac-checklists">
|
||||||
<documentation>Шаблоны проверок (чек-листы из шагов и типизированных элементов ввода) и результаты их заполнения. Результат привязывается к любой сущности платформы через пару «тип сущности + идентификатор» и может блокироваться после согласования по вызову из flows.</documentation>
|
<documentation>Шаблоны проверок (чек-листы из шагов и типизированных элементов ввода) и результаты их заполнения. Результат привязывается к любой сущности платформы через пару «тип сущности + идентификатор» и может блокироваться после согласования по вызову из flows.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · Piccolo ORM с админкой · PostgreSQL (JSONB) · собственный JWT-middleware · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="comparisons" id="ac-comparisons">
|
<element xsi:type="archimate:ApplicationComponent" name="comparisons" id="ac-comparisons">
|
||||||
<documentation>Сравнение проектных данных и выявление отклонений: облако точек к облаку, облако к модели, PDF к PDF, BIM к BIM, расчёт отклонений. Тяжёлые вычисления делегируются движку workflow, результат раскладывается на элементы и изменения, доступные для фильтрации и верификации инженером.</documentation>
|
<documentation>Сравнение проектных данных и выявление отклонений: облако точек к облаку, облако к модели, PDF к PDF, BIM к BIM, расчёт отклонений. Тяжёлые вычисления делегируются движку workflow, результат раскладывается на элементы и изменения, доступные для фильтрации и верификации инженером.
|
||||||
|
|
||||||
|
Стек: Go (Fiber, go-pg) · PostgreSQL · Docker-образы задач в реестре · фронтенд на TypeScript/React/MobX/Material-UI (Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="contracts" id="ac-contracts">
|
<element xsi:type="archimate:ApplicationComponent" name="contracts" id="ac-contracts">
|
||||||
<documentation>Реестр договоров компании: номер, подрядчик, сроки, стоимость, привязка к проекту или объекту. Даёт коммерческий контур поверх производственных данных; на договор, в частности, ссылается предписание.</documentation>
|
<documentation>Реестр договоров компании: номер, подрядчик, сроки, стоимость, привязка к проекту или объекту. Даёт коммерческий контур поверх производственных данных; на договор, в частности, ссылается предписание.
|
||||||
|
|
||||||
|
Стек: Go · Fiber v3 · pgx + squirrel · PostgreSQL (JSONB) · фронтенд на TypeScript/React/MobX по Feature-Sliced Design.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="control-interface" id="ac-control-interface">
|
<element xsi:type="archimate:ApplicationComponent" name="control-interface" id="ac-control-interface">
|
||||||
<documentation>Административный контур платформы (srx-admin): управление пользователями, ролями, атрибутами, подразделениями, проектами и функциональными группами, а также реестром активов компании с правами доступа. Отдельный крупный сценарий — пакетный импорт активов из XLSX со статусами заданий и отчётами об ошибках.</documentation>
|
<documentation>Административный контур платформы (srx-admin): управление пользователями, ролями, атрибутами, подразделениями, проектами и функциональными группами, а также реестром активов компании с правами доступа. Отдельный крупный сценарий — пакетный импорт активов из XLSX со статусами заданий и отчётами об ошибках.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · Material-UI и ui-kit · Webpack 5 Module Federation · монорепозиторий npm-workspaces; собственного хранилища нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="cross-section" id="ac-cross-section">
|
<element xsi:type="archimate:ApplicationComponent" name="cross-section" id="ac-cross-section">
|
||||||
<documentation>Инструмент построения поперечных сечений по облакам точек и BIM-документам прямо во вьюере, с сохранением сечений, цветовой легендой документов и экспортом в DWG. Применяется при обмере и контроле построенного; серверная часть — drawings.</documentation>
|
<documentation>Инструмент построения поперечных сечений по облакам точек и BIM-документам прямо во вьюере, с сохранением сечений, цветовой легендой документов и экспортом в DWG. Применяется при обмере и контроле построенного; серверная часть — drawings.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · pixi-viewer · джоб экспорта в DWG на Go с Python-генератором · PostgreSQL · объектное хранилище.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="django" id="ac-django">
|
<element xsi:type="archimate:ApplicationComponent" name="django" id="ac-django">
|
||||||
<documentation>Легаси-монолит и ядро продукта: компании, пользователи, роли и подрядчики, объекты строительства, миссии аэрофотосъёмки, ортофотопланы, облака точек и поверхности, измерения, аналитика с дашбордами и метриками, карта, ТОиР, уведомления и журнал действий. Здесь же — основной SPA-хост, в который встраиваются все микрофронтенды платформы.</documentation>
|
<documentation>Легаси-монолит и ядро продукта: компании, пользователи, роли и подрядчики, объекты строительства, миссии аэрофотосъёмки, ортофотопланы, облака точек и поверхности, измерения, аналитика с дашбордами и метриками, карта, ТОиР, уведомления и журнал действий. Здесь же — основной SPA-хост, в который встраиваются все микрофронтенды платформы.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-guardian · channels · Celery + Redis · Kafka · PostgreSQL, ClickHouse, MongoDB, S3 · фронтенд на TypeScript/React/MobX (Module Federation, PWA).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="document-link" id="ac-document-link">
|
<element xsi:type="archimate:ApplicationComponent" name="document-link" id="ac-document-link">
|
||||||
<documentation>Публичная страница выданной наружу ссылки на документ: получатель без учётной записи видит карточку документа и скачивает файл. Собственного бэкенда нет — данные отдаёт публичный эндпоинт documentations, срок действия ограничен JWT ссылки.</documentation>
|
<documentation>Публичная страница выданной наружу ссылки на документ: получатель без учётной записи видит карточку документа и скачивает файл. Собственного бэкенда нет — данные отдаёт публичный эндпоинт documentations, срок действия ограничен JWT ссылки.
|
||||||
|
|
||||||
|
Стек: TypeScript · Next.js (app router) · React · SWR · Tailwind; собственного бэкенда нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="documentations" id="ac-documentations">
|
<element xsi:type="archimate:ApplicationComponent" name="documentations" id="ac-documentations">
|
||||||
<documentation>Рабочая среда документации проекта: диски, дерево папок, документы с версиями, страницами, атрибутами, правами и связями; штампы, ЭЦП, подписки, корзина, публичные ссылки. Отвечает также за постановку загруженных инженерных форматов в очередь конвертации. Домен находится в миграции — мутирующие операции проксируются в cde.</documentation>
|
<documentation>Рабочая среда документации проекта: диски, дерево папок, документы с версиями, страницами, атрибутами, правами и связями; штампы, ЭЦП, подписки, корзина, публичные ссылки. Отвечает также за постановку загруженных инженерных форматов в очередь конвертации. Домен находится в миграции — мутирующие операции проксируются в cde.
|
||||||
|
|
||||||
|
Стек: Go (go-pg, Fiber, swaggo) · PostgreSQL · S3 с многочастной загрузкой · Valkey · RabbitMQ · Mailgun/SMTP · фронтенд на TypeScript/React/MobX.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="drawings" id="ac-drawings">
|
<element xsi:type="archimate:ApplicationComponent" name="drawings" id="ac-drawings">
|
||||||
<documentation>Серверная часть сечений: хранит поперечные сечения по поверхностям и облакам точек и задания на их экспорт, принимает результат асинхронной выгрузки по webhook. Применяется при исполнительной съёмке и контроле выполненных объёмов.</documentation>
|
<documentation>Серверная часть сечений: хранит поперечные сечения по поверхностям и облакам точек и задания на их экспорт, принимает результат асинхронной выгрузки по webhook. Применяется при исполнительной съёмке и контроле выполненных объёмов.
|
||||||
|
|
||||||
|
Стек: Go · gorilla/mux · go-pg с миграциями · PostgreSQL · внутренние библиотеки gotools и sdk-go · Prometheus.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="eav" id="ac-eav">
|
<element xsi:type="archimate:ApplicationComponent" name="eav" id="ac-eav">
|
||||||
<documentation>Универсальная модель «сущность — атрибут — значение»: пользовательские атрибуты, их типы, схемы и справочники, расширяющие любые доменные объекты без изменения схемы БД. Второй блок — иерархический классификатор активов объекта (WBS-дерево) с импортом и экспортом через Excel.</documentation>
|
<documentation>Универсальная модель «сущность — атрибут — значение»: пользовательские атрибуты, их типы, схемы и справочники, расширяющие любые доменные объекты без изменения схемы БД. Второй блок — иерархический классификатор активов объекта (WBS-дерево) с импортом и экспортом через Excel.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-filter · Celery · PostgreSQL (в том числе сырой SQL для иерархии) · pandas + openpyxl · контракты protobuf.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="faas" id="ac-faas">
|
<element xsi:type="archimate:ApplicationComponent" name="faas" id="ac-faas">
|
||||||
<documentation>Логическое имя слоя эфемерных вычислительных функций — одноразовых job-контейнеров, запускаемых движком workflow поверх Kubernetes. Отдельного репозитория и кодовой базы не найдено; значение компонента требует уточнения у команды платформы.</documentation>
|
<documentation>Логическое имя слоя эфемерных вычислительных функций — одноразовых job-контейнеров, запускаемых движком workflow поверх Kubernetes. Отдельного репозитория и кодовой базы не найдено; значение компонента требует уточнения у команды платформы.
|
||||||
|
|
||||||
|
Стек: Предположительно Kubernetes Job и воркеры RabbitMQ поверх Docker-образов на Python и Go; собственной кодовой базы не найдено, стек требует подтверждения.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="flows" id="ac-flows">
|
<element xsi:type="archimate:ApplicationComponent" name="flows" id="ac-flows">
|
||||||
<documentation>Маршруты согласования проектной документации: маршрут из шагов с назначенными согласующими, ревью документов, решения участников, сроки по рабочим дням и очередь задач согласующего. Публикует события согласования в Kafka и умеет автоматически инициировать трансмиттал после завершения маршрута.</documentation>
|
<documentation>Маршруты согласования проектной документации: маршрут из шагов с назначенными согласующими, ревью документов, решения участников, сроки по рабочим дням и очередь задач согласующего. Публикует события согласования в Kafka и умеет автоматически инициировать трансмиттал после завершения маршрута.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · SQLAlchemy + Alembic · PostgreSQL (JSONB) · Celery · FastStream + Kafka · фронтенд на TypeScript/React/MobX (rsbuild + Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="iam" id="ac-iam">
|
<element xsi:type="archimate:ApplicationComponent" name="iam" id="ac-iam">
|
||||||
<documentation>Платформенный IAM: иерархия ресурсов, компании, пользователи, сервисные аккаунты и права по модели ReBAC (SpiceDB). Отвечает на вопросы «какие права у пользователя на ресурс» и «какие ресурсы доступны пользователю», на которые опираются остальные сервисы; пользователи заводятся во внешнем Zitadel.</documentation>
|
<documentation>Платформенный IAM: иерархия ресурсов, компании, пользователи, сервисные аккаунты и права по модели ReBAC (SpiceDB). Отвечает на вопросы «какие права у пользователя на ресурс» и «какие ресурсы доступны пользователю», на которые опираются остальные сервисы; пользователи заводятся во внешнем Zitadel.
|
||||||
|
|
||||||
|
Стек: Go, гексагональная архитектура · SpiceDB по gRPC с собственным Postgres-datastore · PostgreSQL · S3 · Kafka · Zitadel Management API · Helm с Istio.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="inspections" id="ac-inspections">
|
<element xsi:type="archimate:ApplicationComponent" name="inspections" id="ac-inspections">
|
||||||
<documentation>События и проверки на объекте: планирование осмотров с типом, датой, ответственными, локацией и настраиваемыми атрибутами, контроль занятости исполнителей, история изменений и выгрузка реестра в XLSX. Отдельная подсистема — правила доступности и идемпотентное бронирование слотов для выездов и приёмок.</documentation>
|
<documentation>События и проверки на объекте: планирование осмотров с типом, датой, ответственными, локацией и настраиваемыми атрибутами, контроль занятости исполнителей, история изменений и выгрузка реестра в XLSX. Отдельная подсистема — правила доступности и идемпотентное бронирование слотов для выездов и приёмок.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · Piccolo ORM с админкой · PostgreSQL (JSONB, триггеры, advisory-локи) · FastStream + Kafka · фронтенд на React/MobX с DevExpress Scheduler.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="issues" id="ac-issues">
|
<element xsi:type="archimate:ApplicationComponent" name="issues" id="ac-issues">
|
||||||
<documentation>Сервис замечаний строительного контроля: типы, настраиваемые статусные модели с правами на переходы, ответственные, комментарии, фото-вложения, атрибуты EAV и история изменений. Включает выпуск предписаний, выгрузку реестров в XLSX и PDF и рассылку уведомлений. Один бэкенд обслуживает также компоненты remarks и prescriptions.</documentation>
|
<documentation>Сервис замечаний строительного контроля: типы, настраиваемые статусные модели с правами на переходы, ответственные, комментарии, фото-вложения, атрибуты EAV и история изменений. Включает выпуск предписаний, выгрузку реестров в XLSX и PDF и рассылку уведомлений. Один бэкенд обслуживает также компоненты remarks и prescriptions.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL с полнотекстовым поиском · Celery + Redis · Kafka · S3 · pandas и ReportLab для XLSX и PDF · SimpleJWT с Zitadel.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="mapper" id="ac-mapper">
|
<element xsi:type="archimate:ApplicationComponent" name="mapper" id="ac-mapper">
|
||||||
<documentation>Агрегирующий сервис (BFF), склеивающий данные нескольких API в один ответ для интерфейса: реестр документов диска вместе с состоянием согласования и заметки вместе с их связями. Собственной доменной модели и базы не имеет, ответы кеширует в Redis.</documentation>
|
<documentation>Агрегирующий сервис (BFF), склеивающий данные нескольких API в один ответ для интерфейса: реестр документов диска вместе с состоянием согласования и заметки вместе с их связями. Собственной доменной модели и базы не имеет, ответы кеширует в Redis.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · httpx с ретраями · Redis/RedisJSON как кеш; собственной БД нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="measurements" id="ac-measurements">
|
<element xsi:type="archimate:ApplicationComponent" name="measurements" id="ac-measurements">
|
||||||
<documentation>Геопространственные измерения по материалам аэросъёмки: высота и температура в точке, профиль вдоль ломаной, расчёт объёма по контуру и разности объёмов между съёмками, метаданные растров и пересчёт координат. Stateless-сервис без собственной БД, читающий GeoTIFF напрямую из объектного хранилища.</documentation>
|
<documentation>Геопространственные измерения по материалам аэросъёмки: высота и температура в точке, профиль вдоль ломаной, расчёт объёма по контуру и разности объёмов между съёмками, метаданные растров и пересчёт координат. Stateless-сервис без собственной БД, читающий GeoTIFF напрямую из объектного хранилища.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · GDAL, pyproj, NumPy, OpenCV, SciPy · чтение GeoTIFF из S3 через boto3; собственной БД нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="message-hub" id="ac-message-hub">
|
<element xsi:type="archimate:ApplicationComponent" name="message-hub" id="ac-message-hub">
|
||||||
<documentation>Событийный хаб домена планирования: принимает события Kafka и выполняет побочные действия — пересчёт аналитики, обновление атрибутов, письма, экспорты, системный журнал, автопланирование, синхронизацию проектов и ресурсов. Транслирует изменения в браузер по WebSocket, обеспечивая живое обновление доски проекта.</documentation>
|
<documentation>Событийный хаб домена планирования: принимает события Kafka и выполняет побочные действия — пересчёт аналитики, обновление атрибутов, письма, экспорты, системный журнал, автопланирование, синхронизацию проектов и ресурсов. Транслирует изменения в браузер по WebSocket, обеспечивая живое обновление доски проекта.
|
||||||
|
|
||||||
|
Стек: Python · FastStream + Kafka (aiokafka) · python-socketio с Redis · SQLAlchemy Core с сырым SQL к PostgreSQL · S3 · Jinja2 для писем.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="notes" id="ac-notes">
|
<element xsi:type="archimate:ApplicationComponent" name="notes" id="ac-notes">
|
||||||
<documentation>Заметки и примечания на объектах проекта: пометка на 2D-чертеже или в 3D-модели со сроком, цветом, фотографиями, вложениями и связями с сущностями разных сервисов. Поддерживает отправку скриншота вида и формирование документа по заметке; применяется при авторском надзоре и строительном контроле.</documentation>
|
<documentation>Заметки и примечания на объектах проекта: пометка на 2D-чертеже или в 3D-модели со сроком, цветом, фотографиями, вложениями и связями с сущностями разных сервисов. Поддерживает отправку скриншота вида и формирование документа по заметке; применяется при авторском надзоре и строительном контроле.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · SQLAlchemy + Alembic · PostgreSQL с полнотекстовым поиском · фронтенд на TypeScript/React/MobX/Material-UI.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="pm" id="ac-pm">
|
<element xsi:type="archimate:ApplicationComponent" name="pm" id="ac-pm">
|
||||||
<documentation>Календарно-сетевое планирование: иерархия задач, длительности, связи предшествования, календари, базовые планы, факт и проценты выполнения, ресурсы и назначения. Импорт графиков из MS Project, Primavera и XLSX, работа на диаграмме Ганта, экспорт в PDF, асинхронное автопланирование и пересчёт.</documentation>
|
<documentation>Календарно-сетевое планирование: иерархия задач, длительности, связи предшествования, календари, базовые планы, факт и проценты выполнения, ресурсы и назначения. Импорт графиков из MS Project, Primavera и XLSX, работа на диаграмме Ганта, экспорт в PDF, асинхронное автопланирование и пересчёт.
|
||||||
|
|
||||||
|
Стек: Python · Django 5 + DRF, целевой стиль — FastAPI с async SQLAlchemy · PostgreSQL с триггерами · ClickHouse · S3 · Celery + Redis · Kafka · pandas, парсеры MS Project и Primavera · фронтенд на React/MobX.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="prescriptions" id="ac-prescriptions">
|
<element xsi:type="archimate:ApplicationComponent" name="prescriptions" id="ac-prescriptions">
|
||||||
<documentation>Выдача предписаний подрядчику по результатам строительного контроля: предписание собирается из замечаний, привязывается к договору, подрядчику и объекту, получает номер и проходит согласование по статусам. Официальный документ формируется по шаблону движком workflow; бэкенд — приложение внутри issues.</documentation>
|
<documentation>Выдача предписаний подрядчику по результатам строительного контроля: предписание собирается из замечаний, привязывается к договору, подрядчику и объекту, получает номер и проходит согласование по статусам. Официальный документ формируется по шаблону движком workflow; бэкенд — приложение внутри issues.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL (приложение внутри бэкенда issues) · генерация документов движком workflow · фронтенд на React/MobX (rsbuild + Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="processing" id="ac-processing">
|
<element xsi:type="archimate:ApplicationComponent" name="processing" id="ac-processing">
|
||||||
<documentation>Фабрика тяжёлых вычислений платформы: движок workflow исполняет граф задач, каждая из которых запускается отдельным контейнером (Kubernetes Job или воркер через RabbitMQ). Через него работают конвертация форматов, сравнения, экспорт в DWG и генерация документов; отдельный интерфейс даёт мониторинг, логи, отмену и перезапуск задач.</documentation>
|
<documentation>Фабрика тяжёлых вычислений платформы: движок workflow исполняет граф задач, каждая из которых запускается отдельным контейнером (Kubernetes Job или воркер через RabbitMQ). Через него работают конвертация форматов, сравнения, экспорт в DWG и генерация документов; отдельный интерфейс даёт мониторинг, логи, отмену и перезапуск задач.
|
||||||
|
|
||||||
|
Стек: Go (pgx, go-pg, zap) · PostgreSQL · Kubernetes client-go для джобов · RabbitMQ для сторонних воркеров · джобы на Python (boto3, внутренняя workflows-tools) · фронтенд на React/MobX.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="projects" id="ac-projects">
|
<element xsi:type="archimate:ApplicationComponent" name="projects" id="ac-projects">
|
||||||
<documentation>Витрина проектов и карточка проекта — верхнеуровневый вход пользователя в платформу: атрибуты, местоположение, фотографии, группировки и настраиваемые вкладки с разделами-виджетами. Агрегирует показатели остальных модулей, включая встраивание внешней аналитики.</documentation>
|
<documentation>Витрина проектов и карточка проекта — верхнеуровневый вход пользователя в платформу: атрибуты, местоположение, фотографии, группировки и настраиваемые вкладки с разделами-виджетами. Агрегирует показатели остальных модулей, включая встраивание внешней аналитики.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · async SQLAlchemy 2.0 + Alembic · PostgreSQL (JSONB) · S3 · фронтенд на React/MobX с TanStack Query и leaflet · встраивание Superset.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="remarks" id="ac-remarks">
|
<element xsi:type="archimate:ApplicationComponent" name="remarks" id="ac-remarks">
|
||||||
<documentation>Пользовательский модуль работы с замечаниями (UI): пин на чертеже, в ячейке XLSX или на задаче графика, описание, срок, ответственные, вложения и пометки поверх листа, табличное и списочное представления, фильтры, массовое редактирование и экспорт. Собственный бэкенд архивирован — модуль работает поверх issues.</documentation>
|
<documentation>Пользовательский модуль работы с замечаниями (UI): пин на чертеже, в ячейке XLSX или на задаче графика, описание, срок, ответственные, вложения и пометки поверх листа, табличное и списочное представления, фильтры, массовое редактирование и экспорт. Собственный бэкенд архивирован — модуль работает поверх issues.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · Material-UI · TanStack Table и Virtual; серверная часть — стек issues.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="resources" id="ac-resources">
|
<element xsi:type="archimate:ApplicationComponent" name="resources" id="ac-resources">
|
||||||
<documentation>Единый реестр ресурсов платформы — иерархия объектов строительства (проект, объект, участок и ниже) с типами, географическим положением, кодами и правами доступа. Идентификатор ресурса служит сквозным ключом проекта во всех остальных сервисах, а сам реестр — общей точкой проверки прав, поэтому это один из самых востребованных компонентов контура. Интеграция только синхронная, по HTTP.</documentation>
|
<documentation>Единый реестр ресурсов платформы — иерархия объектов строительства (проект, объект, участок и ниже) с типами, географическим положением, кодами и правами доступа. Идентификатор ресурса служит сквозным ключом проекта во всех остальных сервисах, а сам реестр — общей точкой проверки прав, поэтому это один из самых востребованных компонентов контура. Интеграция только синхронная, по HTTP.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-filter · PostgreSQL с ltree и PostGIS · фронтенд в отдельном репозитории.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="reviews" id="ac-reviews">
|
<element xsi:type="archimate:ApplicationComponent" name="reviews" id="ac-reviews">
|
||||||
<documentation>Рабочее место согласующего: очередь задач с приоритетами и сроками, просмотр документа, пометки и замечания, заполнение чек-листов и вынесение решения (согласовано / с замечаниями / отклонено). Ключевой этап между выпуском версии документа и выдачей её «в производство работ»; бэкенд общий с flows.</documentation>
|
<documentation>Рабочее место согласующего: очередь задач с приоритетами и сроками, просмотр документа, пометки и замечания, заполнение чек-листов и вынесение решения (согласовано / с замечаниями / отклонено). Ключевой этап между выпуском версии документа и выдачей её «в производство работ»; бэкенд общий с flows.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · rsbuild + Module Federation; серверная часть — стек flows, экспорт отчётов вынесен в отдельный сервис.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="rfi" id="ac-rfi">
|
<element xsi:type="archimate:ApplicationComponent" name="rfi" id="ac-rfi">
|
||||||
<documentation>Формальные запросы информации между участниками проекта: запрос с приоритетом, статусом, ответственными и привязкой к ресурсу, переписка сообщениями с пометкой одного из них как решения. Приоритеты и статусы настраиваются на уровне компании, ведётся полный журнал изменений полей.</documentation>
|
<documentation>Формальные запросы информации между участниками проекта: запрос с приоритетом, статусом, ответственными и привязкой к ресурсу, переписка сообщениями с пометкой одного из них как решения. Приоритеты и статусы настраиваются на уровне компании, ведётся полный журнал изменений полей.
|
||||||
|
|
||||||
|
Стек: Python · Django 5.1 + DRF · django-filter · PostgreSQL · Celery · SimpleJWT с Zitadel · фронтенд на TypeScript/React/MobX (rsbuild + Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="stamp-verification" id="ac-stamp-verification">
|
<element xsi:type="archimate:ApplicationComponent" name="stamp-verification" id="ac-stamp-verification">
|
||||||
<documentation>Публичная страница проверки подлинности документа по QR-штампу: сканирование кода с бумажной или PDF-копии открывает карточку с документом, страницей и его актуальным состоянием, включая статус согласования. Авторизация не требуется; серверная часть — публичный эндпоинт documentations.</documentation>
|
<documentation>Публичная страница проверки подлинности документа по QR-штампу: сканирование кода с бумажной или PDF-копии открывает карточку с документом, страницей и его актуальным состоянием, включая статус согласования. Авторизация не требуется; серверная часть — публичный эндпоинт documentations.
|
||||||
|
|
||||||
|
Стек: Статический сайт без сборщика: HTML, vanilla JS, moment.js; серверная часть — Go (gorilla/mux, go-pg, PostgreSQL) в составе documentation-api.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="subscriptions" id="ac-subscriptions">
|
<element xsi:type="archimate:ApplicationComponent" name="subscriptions" id="ac-subscriptions">
|
||||||
<documentation>Подписки на изменения объектов и рассылка уведомлений по e-mail, SMTP/Mailgun и Telegram с периодичностью от мгновенной до еженедельной. Источник изменений — не брокер, а периодический опрос журнала system-log; тексты формируются по шаблонам, привязанным к модели и типу события.</documentation>
|
<documentation>Подписки на изменения объектов и рассылка уведомлений по e-mail, SMTP/Mailgun и Telegram с периодичностью от мгновенной до еженедельной. Источник изменений — не брокер, а периодический опрос журнала system-log; тексты формируются по шаблонам, привязанным к модели и типу события.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL с PostGIS и TimescaleDB · SMTP и Mailgun · python-telegram-bot · Jinja2 · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="system-log" id="ac-system-log">
|
<element xsi:type="archimate:ApplicationComponent" name="system-log" id="ac-system-log">
|
||||||
<documentation>Централизованный журнал системных событий (аудит) всей платформы: кто, что и над каким объектом сделал, с метаданными, ресурсом и компанией. Обеспечивает прослеживаемость изменений и служит источником событий для механизма подписок и уведомлений.</documentation>
|
<documentation>Централизованный журнал системных событий (аудит) всей платформы: кто, что и над каким объектом сделал, с метаданными, ресурсом и компанией. Обеспечивает прослеживаемость изменений и служит источником событий для механизма подписок и уведомлений.
|
||||||
|
|
||||||
|
Стек: Go · Fiber · pgx + squirrel с миграциями на старте · PostgreSQL · Kafka через sarama (опционально) · отдельный воркер с cron · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="transmittal" id="ac-transmittal">
|
<element xsi:type="archimate:ApplicationComponent" name="transmittal" id="ac-transmittal">
|
||||||
<documentation>Формальная передача комплектов документации между участниками — сопроводительное письмо с составом, получателями, сроком и результатом приёма или отклонения. По завершении формируется акт передачи в PDF; есть шаблоны трансмитталов и связь с согласованиями, замыкающая цикл «выдал документацию → получил замечания».</documentation>
|
<documentation>Формальная передача комплектов документации между участниками — сопроводительное письмо с составом, получателями, сроком и результатом приёма или отклонения. По завершении формируется акт передачи в PDF; есть шаблоны трансмитталов и связь с согласованиями, замыкающая цикл «выдал документацию → получил замечания».
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · async SQLAlchemy + Alembic · PostgreSQL · S3 · taskiq + RabbitMQ · Jinja2 с собственным конвертером HTML в PDF · Mailgun и SMTP · фронтенд на React/MobX (Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="workspaces" id="ac-workspaces">
|
<element xsi:type="archimate:ApplicationComponent" name="workspaces" id="ac-workspaces">
|
||||||
<documentation>Рабочее пространство — сцена, в которой пользователь одновременно работает с BIM-моделями, облаками точек, PDF-чертежами и панорамами объекта, настраивает отображение и сохраняет именованные состояния. Поддерживает установку прикладных модулей компании как федеративных приложений внутри сцены и архивирование данных при закрытии этапов.</documentation>
|
<documentation>Рабочее пространство — сцена, в которой пользователь одновременно работает с BIM-моделями, облаками точек, PDF-чертежами и панорамами объекта, настраивает отображение и сохраняет именованные состояния. Поддерживает установку прикладных модулей компании как федеративных приложений внутри сцены и архивирование данных при закрытии этапов.
|
||||||
|
|
||||||
|
Стек: Go (gorilla/mux, go-pg, Prometheus, Sentry, JWT на RSA) · PostgreSQL · фронтенд на TypeScript/React/MobX с viewer (Module Federation), кеш в IndexedDB · тесты Cypress и Jest.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element xsi:type="archimate:ApplicationComponent" name="Конвертер BIM-моделей" id="ac-bim-converter">
|
<element xsi:type="archimate:ApplicationComponent" name="Конвертер BIM-моделей" id="ac-bim-converter">
|
||||||
<documentation>Подготовка исходных САПР-моделей (IFC, NWD и другие форматы Autodesk) к просмотру и анализу: облегчённая геометрия glTF/`.s3d` плюс структурированный набор свойств, категорий и материалов элементов. Обязательное звено между загрузкой документа в CDE и появлением работоспособной модели в интерфейсе; работает как эфемерный джоб и как постоянный воркер RPC.</documentation>
|
<documentation>Подготовка исходных САПР-моделей (IFC, NWD и другие форматы Autodesk) к просмотру и анализу: облегчённая геометрия glTF/`.s3d` плюс структурированный набор свойств, категорий и материалов элементов. Обязательное звено между загрузкой документа в CDE и появлением работоспособной модели в интерфейсе; работает как эфемерный джоб и как постоянный воркер RPC.
|
||||||
|
|
||||||
|
Стек: Ядро на Python с ifcopenshell и NumPy · обвязка и воркеры на Go · RabbitMQ (RPC) · S3 · Docker · плагин Navisworks на C#/.NET (SharpGLTF) · форматы IFC и NWD в glTF/GLB, `.s3d` и JSON свойств.</documentation>
|
||||||
</element>
|
</element>
|
||||||
</folder>
|
</folder>
|
||||||
<folder name="Technology & Physical" id="folder-technology" type="technology">
|
<folder name="Technology & Physical" id="folder-technology" type="technology">
|
||||||
@ -898,47 +974,47 @@
|
|||||||
<bounds x="425" y="20" width="170" height="55"/>
|
<bounds x="425" y="20" width="170" height="55"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0118" source="do-0110" target="do-0111" relationship="rel-244"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0118" source="do-0110" target="do-0111" relationship="rel-244"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0127" source="do-0110" target="do-0112" relationship="rel-271"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0127" source="do-0110" target="do-0112" relationship="rel-271"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0133" source="do-0110" target="do-0116" relationship="rel-280"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0133" source="do-0110" target="do-0115" relationship="rel-280"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0142" source="do-0110" target="do-0113" relationship="rel-300"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0142" source="do-0110" target="do-0113" relationship="rel-300"/>
|
||||||
</child>
|
</child>
|
||||||
<child xsi:type="archimate:DiagramObject" id="do-0111" archimateElement="ac-django" targetConnections="cn-0118 cn-0119 cn-0120">
|
<child xsi:type="archimate:DiagramObject" id="do-0111" archimateElement="ac-django" targetConnections="cn-0118 cn-0119 cn-0120">
|
||||||
<bounds x="711" y="108" width="170" height="55"/>
|
<bounds x="711" y="108" width="170" height="55"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0121" source="do-0111" target="do-0110" relationship="rel-251"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0121" source="do-0111" target="do-0110" relationship="rel-251"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0126" source="do-0111" target="do-0112" relationship="rel-270"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0126" source="do-0111" target="do-0112" relationship="rel-270"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0132" source="do-0111" target="do-0116" relationship="rel-279"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0132" source="do-0111" target="do-0115" relationship="rel-279"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0138" source="do-0111" target="do-0117" relationship="rel-295"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0138" source="do-0111" target="do-0117" relationship="rel-295"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0141" source="do-0111" target="do-0113" relationship="rel-299"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0141" source="do-0111" target="do-0113" relationship="rel-299"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0144" source="do-0111" target="do-0115" relationship="rel-303"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0144" source="do-0111" target="do-0116" relationship="rel-303"/>
|
||||||
</child>
|
</child>
|
||||||
<child xsi:type="archimate:DiagramObject" id="do-0112" archimateElement="ac-flows" targetConnections="cn-0126 cn-0127 cn-0128 cn-0129 cn-0130 cn-0131">
|
<child xsi:type="archimate:DiagramObject" id="do-0112" archimateElement="ac-flows" targetConnections="cn-0126 cn-0127 cn-0128 cn-0129 cn-0130 cn-0131">
|
||||||
<bounds x="830" y="320" width="170" height="55"/>
|
<bounds x="830" y="320" width="170" height="55"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0123" source="do-0112" target="do-0110" relationship="rel-254"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0123" source="do-0112" target="do-0110" relationship="rel-254"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0135" source="do-0112" target="do-0116" relationship="rel-282"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0135" source="do-0112" target="do-0115" relationship="rel-282"/>
|
||||||
</child>
|
</child>
|
||||||
<child xsi:type="archimate:DiagramObject" id="do-0113" archimateElement="ac-processing" targetConnections="cn-0141 cn-0142 cn-0143">
|
<child xsi:type="archimate:DiagramObject" id="do-0113" archimateElement="ac-processing" targetConnections="cn-0141 cn-0142 cn-0143">
|
||||||
<bounds x="711" y="532" width="170" height="55"/>
|
<bounds x="711" y="532" width="170" height="55"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0120" source="do-0113" target="do-0111" relationship="rel-247"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0120" source="do-0113" target="do-0111" relationship="rel-247"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0124" source="do-0113" target="do-0110" relationship="rel-258"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0124" source="do-0113" target="do-0110" relationship="rel-258"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0130" source="do-0113" target="do-0112" relationship="rel-275"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0130" source="do-0113" target="do-0112" relationship="rel-275"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0136" source="do-0113" target="do-0116" relationship="rel-284"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0136" source="do-0113" target="do-0115" relationship="rel-284"/>
|
||||||
</child>
|
</child>
|
||||||
<child xsi:type="archimate:DiagramObject" id="do-0114" archimateElement="ac-eav">
|
<child xsi:type="archimate:DiagramObject" id="do-0114" archimateElement="ac-eav">
|
||||||
<bounds x="425" y="620" width="170" height="55"/>
|
<bounds x="425" y="620" width="170" height="55"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0122" source="do-0114" target="do-0110" relationship="rel-253"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0122" source="do-0114" target="do-0110" relationship="rel-253"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0128" source="do-0114" target="do-0112" relationship="rel-272"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0128" source="do-0114" target="do-0112" relationship="rel-272"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0134" source="do-0114" target="do-0116" relationship="rel-281"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0134" source="do-0114" target="do-0115" relationship="rel-281"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0139" source="do-0114" target="do-0117" relationship="rel-296"/>
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0139" source="do-0114" target="do-0117" relationship="rel-296"/>
|
||||||
</child>
|
</child>
|
||||||
<child xsi:type="archimate:DiagramObject" id="do-0115" archimateElement="ac-resources" targetConnections="cn-0144">
|
<child xsi:type="archimate:DiagramObject" id="do-0115" archimateElement="ac-issues" targetConnections="cn-0132 cn-0133 cn-0134 cn-0135 cn-0136 cn-0137">
|
||||||
<bounds x="139" y="532" width="170" height="55"/>
|
<bounds x="139" y="532" width="170" height="55"/>
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0125" source="do-0115" target="do-0110" relationship="rel-260"/>
|
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0131" source="do-0115" target="do-0112" relationship="rel-276"/>
|
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0137" source="do-0115" target="do-0116" relationship="rel-285"/>
|
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0140" source="do-0115" target="do-0117" relationship="rel-298"/>
|
|
||||||
<sourceConnection xsi:type="archimate:Connection" id="cn-0143" source="do-0115" target="do-0113" relationship="rel-302"/>
|
|
||||||
</child>
|
</child>
|
||||||
<child xsi:type="archimate:DiagramObject" id="do-0116" archimateElement="ac-issues" targetConnections="cn-0132 cn-0133 cn-0134 cn-0135 cn-0136 cn-0137">
|
<child xsi:type="archimate:DiagramObject" id="do-0116" archimateElement="ac-resources" targetConnections="cn-0144">
|
||||||
<bounds x="20" y="320" width="170" height="55"/>
|
<bounds x="20" y="320" width="170" height="55"/>
|
||||||
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0125" source="do-0116" target="do-0110" relationship="rel-260"/>
|
||||||
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0131" source="do-0116" target="do-0112" relationship="rel-276"/>
|
||||||
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0137" source="do-0116" target="do-0115" relationship="rel-285"/>
|
||||||
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0140" source="do-0116" target="do-0117" relationship="rel-298"/>
|
||||||
|
<sourceConnection xsi:type="archimate:Connection" id="cn-0143" source="do-0116" target="do-0113" relationship="rel-302"/>
|
||||||
</child>
|
</child>
|
||||||
<child xsi:type="archimate:DiagramObject" id="do-0117" archimateElement="ac-pm" targetConnections="cn-0138 cn-0139 cn-0140">
|
<child xsi:type="archimate:DiagramObject" id="do-0117" archimateElement="ac-pm" targetConnections="cn-0138 cn-0139 cn-0140">
|
||||||
<bounds x="139" y="108" width="170" height="55"/>
|
<bounds x="139" y="108" width="170" height="55"/>
|
||||||
|
|||||||
@ -7,155 +7,231 @@
|
|||||||
<elements>
|
<elements>
|
||||||
<element identifier="ac-ams-sync" xsi:type="ApplicationComponent">
|
<element identifier="ac-ams-sync" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">ams-sync</name>
|
<name xml:lang="ru">ams-sync</name>
|
||||||
<documentation xml:lang="ru">Односторонняя синхронизация учётных записей из ядра платформы во внешний провайдер идентификации: созданный или изменённый пользователь вместе с профилем, принадлежностью организации и метаданными появляется в Zitadel, где на этих данных строится авторизация доменных сервисов. Работает консьюмером Kafka-топика, отдельный консольный режим использовался для первичной массовой миграции пользователей и компаний. Входящих вызовов не принимает.</documentation>
|
<documentation xml:lang="ru">Односторонняя синхронизация учётных записей из ядра платформы во внешний провайдер идентификации: созданный или изменённый пользователь вместе с профилем, принадлежностью организации и метаданными появляется в Zitadel, где на этих данных строится авторизация доменных сервисов. Работает консьюмером Kafka-топика, отдельный консольный режим использовался для первичной массовой миграции пользователей и компаний. Входящих вызовов не принимает.
|
||||||
|
|
||||||
|
Стек: Python · консьюмер Kafka (kafka-python) · requests с ретраями · Zitadel Management API.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-attachments" xsi:type="ApplicationComponent">
|
<element identifier="ac-attachments" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">attachments</name>
|
<name xml:lang="ru">attachments</name>
|
||||||
<documentation xml:lang="ru">Универсальное хранилище файловых вложений к любым сущностям платформы: файл кладётся в S3, метаданные — в PostgreSQL, привязка полиморфная («имя модели + идентификатор экземпляра»). Скачивание идёт по временным подписанным ссылкам напрямую из объектного хранилища.</documentation>
|
<documentation xml:lang="ru">Универсальное хранилище файловых вложений к любым сущностям платформы: файл кладётся в S3, метаданные — в PostgreSQL, привязка полиморфная («имя модели + идентификатор экземпляра»). Скачивание идёт по временным подписанным ссылкам напрямую из объектного хранилища.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · PostgreSQL (psycopg2, сырой SQL; Alembic только для схемы) · S3 через boto3 · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-auth-flow" xsi:type="ApplicationComponent">
|
<element identifier="ac-auth-flow" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">auth-flow</name>
|
<name xml:lang="ru">auth-flow</name>
|
||||||
<documentation xml:lang="ru">Входная точка авторизации платформы: страницы `/login`, `/logout`, `/auth/callback`, `/auth/error` и обработка OIDC-редиректов Zitadel по Authorization Code flow. Полученные токены передаются в оболочку микрофронтендов; бизнес-данных компонент не хранит.</documentation>
|
<documentation xml:lang="ru">Входная точка авторизации платформы: страницы `/login`, `/logout`, `/auth/callback`, `/auth/error` и обработка OIDC-редиректов Zitadel по Authorization Code flow. Полученные токены передаются в оболочку микрофронтендов; бизнес-данных компонент не хранит.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · Webpack 5 · внутренний sdk-js поверх oidc-client · Zitadel (OIDC) · oauth2-proxy в инфраструктуре.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-bim" xsi:type="ApplicationComponent">
|
<element identifier="ac-bim" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">bim</name>
|
<name xml:lang="ru">bim</name>
|
||||||
<documentation xml:lang="ru">Ядро работы с информационными моделями: хранит BIM-модели проекта, дерево элементов, их свойства и статусную модель хода строительства (в том числе корпоративные шаблоны статусов с цветами и переходами). Питает раскраску моделей во вьюере, фильтрацию элементов и отчётность о проценте готовности.</documentation>
|
<documentation xml:lang="ru">Ядро работы с информационными моделями: хранит BIM-модели проекта, дерево элементов, их свойства и статусную модель хода строительства (в том числе корпоративные шаблоны статусов с цветами и переходами). Питает раскраску моделей во вьюере, фильтрацию элементов и отчётность о проценте готовности.
|
||||||
|
|
||||||
|
Стек: Go (go-pg, gorilla/mux, Prometheus) и легаси-часть на Python/Flask · PostgreSQL с шардированием и партиционированием · S3 · джоб metadata-inserter на Go.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-cde" xsi:type="ApplicationComponent">
|
<element identifier="ac-cde" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">cde</name>
|
<name xml:lang="ru">cde</name>
|
||||||
<documentation xml:lang="ru">Среда общих данных (CDE): документы, версии, комплекты, права, штампы, QR-метки, электронные подписи, публичные ссылки и changelog. Публикует доменные события через transactional outbox в Kafka и постепенно принимает на себя мутирующие вызовы legacy-сервисов документации.</documentation>
|
<documentation xml:lang="ru">Среда общих данных (CDE): документы, версии, комплекты, права, штампы, QR-метки, электронные подписи, публичные ссылки и changelog. Публикует доменные события через transactional outbox в Kafka и постепенно принимает на себя мутирующие вызовы legacy-сервисов документации.
|
||||||
|
|
||||||
|
Стек: Go (Fiber, go-pg) · PostgreSQL · S3/MinIO · Valkey · Kafka (transactional outbox) · Camunda 8 / Zeebe · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-checklists" xsi:type="ApplicationComponent">
|
<element identifier="ac-checklists" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">checklists</name>
|
<name xml:lang="ru">checklists</name>
|
||||||
<documentation xml:lang="ru">Шаблоны проверок (чек-листы из шагов и типизированных элементов ввода) и результаты их заполнения. Результат привязывается к любой сущности платформы через пару «тип сущности + идентификатор» и может блокироваться после согласования по вызову из flows.</documentation>
|
<documentation xml:lang="ru">Шаблоны проверок (чек-листы из шагов и типизированных элементов ввода) и результаты их заполнения. Результат привязывается к любой сущности платформы через пару «тип сущности + идентификатор» и может блокироваться после согласования по вызову из flows.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · Piccolo ORM с админкой · PostgreSQL (JSONB) · собственный JWT-middleware · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-comparisons" xsi:type="ApplicationComponent">
|
<element identifier="ac-comparisons" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">comparisons</name>
|
<name xml:lang="ru">comparisons</name>
|
||||||
<documentation xml:lang="ru">Сравнение проектных данных и выявление отклонений: облако точек к облаку, облако к модели, PDF к PDF, BIM к BIM, расчёт отклонений. Тяжёлые вычисления делегируются движку workflow, результат раскладывается на элементы и изменения, доступные для фильтрации и верификации инженером.</documentation>
|
<documentation xml:lang="ru">Сравнение проектных данных и выявление отклонений: облако точек к облаку, облако к модели, PDF к PDF, BIM к BIM, расчёт отклонений. Тяжёлые вычисления делегируются движку workflow, результат раскладывается на элементы и изменения, доступные для фильтрации и верификации инженером.
|
||||||
|
|
||||||
|
Стек: Go (Fiber, go-pg) · PostgreSQL · Docker-образы задач в реестре · фронтенд на TypeScript/React/MobX/Material-UI (Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-contracts" xsi:type="ApplicationComponent">
|
<element identifier="ac-contracts" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">contracts</name>
|
<name xml:lang="ru">contracts</name>
|
||||||
<documentation xml:lang="ru">Реестр договоров компании: номер, подрядчик, сроки, стоимость, привязка к проекту или объекту. Даёт коммерческий контур поверх производственных данных; на договор, в частности, ссылается предписание.</documentation>
|
<documentation xml:lang="ru">Реестр договоров компании: номер, подрядчик, сроки, стоимость, привязка к проекту или объекту. Даёт коммерческий контур поверх производственных данных; на договор, в частности, ссылается предписание.
|
||||||
|
|
||||||
|
Стек: Go · Fiber v3 · pgx + squirrel · PostgreSQL (JSONB) · фронтенд на TypeScript/React/MobX по Feature-Sliced Design.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-control-interface" xsi:type="ApplicationComponent">
|
<element identifier="ac-control-interface" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">control-interface</name>
|
<name xml:lang="ru">control-interface</name>
|
||||||
<documentation xml:lang="ru">Административный контур платформы (srx-admin): управление пользователями, ролями, атрибутами, подразделениями, проектами и функциональными группами, а также реестром активов компании с правами доступа. Отдельный крупный сценарий — пакетный импорт активов из XLSX со статусами заданий и отчётами об ошибках.</documentation>
|
<documentation xml:lang="ru">Административный контур платформы (srx-admin): управление пользователями, ролями, атрибутами, подразделениями, проектами и функциональными группами, а также реестром активов компании с правами доступа. Отдельный крупный сценарий — пакетный импорт активов из XLSX со статусами заданий и отчётами об ошибках.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · Material-UI и ui-kit · Webpack 5 Module Federation · монорепозиторий npm-workspaces; собственного хранилища нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-cross-section" xsi:type="ApplicationComponent">
|
<element identifier="ac-cross-section" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">cross-section</name>
|
<name xml:lang="ru">cross-section</name>
|
||||||
<documentation xml:lang="ru">Инструмент построения поперечных сечений по облакам точек и BIM-документам прямо во вьюере, с сохранением сечений, цветовой легендой документов и экспортом в DWG. Применяется при обмере и контроле построенного; серверная часть — drawings.</documentation>
|
<documentation xml:lang="ru">Инструмент построения поперечных сечений по облакам точек и BIM-документам прямо во вьюере, с сохранением сечений, цветовой легендой документов и экспортом в DWG. Применяется при обмере и контроле построенного; серверная часть — drawings.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · pixi-viewer · джоб экспорта в DWG на Go с Python-генератором · PostgreSQL · объектное хранилище.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-django" xsi:type="ApplicationComponent">
|
<element identifier="ac-django" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">django</name>
|
<name xml:lang="ru">django</name>
|
||||||
<documentation xml:lang="ru">Легаси-монолит и ядро продукта: компании, пользователи, роли и подрядчики, объекты строительства, миссии аэрофотосъёмки, ортофотопланы, облака точек и поверхности, измерения, аналитика с дашбордами и метриками, карта, ТОиР, уведомления и журнал действий. Здесь же — основной SPA-хост, в который встраиваются все микрофронтенды платформы.</documentation>
|
<documentation xml:lang="ru">Легаси-монолит и ядро продукта: компании, пользователи, роли и подрядчики, объекты строительства, миссии аэрофотосъёмки, ортофотопланы, облака точек и поверхности, измерения, аналитика с дашбордами и метриками, карта, ТОиР, уведомления и журнал действий. Здесь же — основной SPA-хост, в который встраиваются все микрофронтенды платформы.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-guardian · channels · Celery + Redis · Kafka · PostgreSQL, ClickHouse, MongoDB, S3 · фронтенд на TypeScript/React/MobX (Module Federation, PWA).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-document-link" xsi:type="ApplicationComponent">
|
<element identifier="ac-document-link" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">document-link</name>
|
<name xml:lang="ru">document-link</name>
|
||||||
<documentation xml:lang="ru">Публичная страница выданной наружу ссылки на документ: получатель без учётной записи видит карточку документа и скачивает файл. Собственного бэкенда нет — данные отдаёт публичный эндпоинт documentations, срок действия ограничен JWT ссылки.</documentation>
|
<documentation xml:lang="ru">Публичная страница выданной наружу ссылки на документ: получатель без учётной записи видит карточку документа и скачивает файл. Собственного бэкенда нет — данные отдаёт публичный эндпоинт documentations, срок действия ограничен JWT ссылки.
|
||||||
|
|
||||||
|
Стек: TypeScript · Next.js (app router) · React · SWR · Tailwind; собственного бэкенда нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-documentations" xsi:type="ApplicationComponent">
|
<element identifier="ac-documentations" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">documentations</name>
|
<name xml:lang="ru">documentations</name>
|
||||||
<documentation xml:lang="ru">Рабочая среда документации проекта: диски, дерево папок, документы с версиями, страницами, атрибутами, правами и связями; штампы, ЭЦП, подписки, корзина, публичные ссылки. Отвечает также за постановку загруженных инженерных форматов в очередь конвертации. Домен находится в миграции — мутирующие операции проксируются в cde.</documentation>
|
<documentation xml:lang="ru">Рабочая среда документации проекта: диски, дерево папок, документы с версиями, страницами, атрибутами, правами и связями; штампы, ЭЦП, подписки, корзина, публичные ссылки. Отвечает также за постановку загруженных инженерных форматов в очередь конвертации. Домен находится в миграции — мутирующие операции проксируются в cde.
|
||||||
|
|
||||||
|
Стек: Go (go-pg, Fiber, swaggo) · PostgreSQL · S3 с многочастной загрузкой · Valkey · RabbitMQ · Mailgun/SMTP · фронтенд на TypeScript/React/MobX.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-drawings" xsi:type="ApplicationComponent">
|
<element identifier="ac-drawings" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">drawings</name>
|
<name xml:lang="ru">drawings</name>
|
||||||
<documentation xml:lang="ru">Серверная часть сечений: хранит поперечные сечения по поверхностям и облакам точек и задания на их экспорт, принимает результат асинхронной выгрузки по webhook. Применяется при исполнительной съёмке и контроле выполненных объёмов.</documentation>
|
<documentation xml:lang="ru">Серверная часть сечений: хранит поперечные сечения по поверхностям и облакам точек и задания на их экспорт, принимает результат асинхронной выгрузки по webhook. Применяется при исполнительной съёмке и контроле выполненных объёмов.
|
||||||
|
|
||||||
|
Стек: Go · gorilla/mux · go-pg с миграциями · PostgreSQL · внутренние библиотеки gotools и sdk-go · Prometheus.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-eav" xsi:type="ApplicationComponent">
|
<element identifier="ac-eav" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">eav</name>
|
<name xml:lang="ru">eav</name>
|
||||||
<documentation xml:lang="ru">Универсальная модель «сущность — атрибут — значение»: пользовательские атрибуты, их типы, схемы и справочники, расширяющие любые доменные объекты без изменения схемы БД. Второй блок — иерархический классификатор активов объекта (WBS-дерево) с импортом и экспортом через Excel.</documentation>
|
<documentation xml:lang="ru">Универсальная модель «сущность — атрибут — значение»: пользовательские атрибуты, их типы, схемы и справочники, расширяющие любые доменные объекты без изменения схемы БД. Второй блок — иерархический классификатор активов объекта (WBS-дерево) с импортом и экспортом через Excel.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-filter · Celery · PostgreSQL (в том числе сырой SQL для иерархии) · pandas + openpyxl · контракты protobuf.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-faas" xsi:type="ApplicationComponent">
|
<element identifier="ac-faas" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">faas</name>
|
<name xml:lang="ru">faas</name>
|
||||||
<documentation xml:lang="ru">Логическое имя слоя эфемерных вычислительных функций — одноразовых job-контейнеров, запускаемых движком workflow поверх Kubernetes. Отдельного репозитория и кодовой базы не найдено; значение компонента требует уточнения у команды платформы.</documentation>
|
<documentation xml:lang="ru">Логическое имя слоя эфемерных вычислительных функций — одноразовых job-контейнеров, запускаемых движком workflow поверх Kubernetes. Отдельного репозитория и кодовой базы не найдено; значение компонента требует уточнения у команды платформы.
|
||||||
|
|
||||||
|
Стек: Предположительно Kubernetes Job и воркеры RabbitMQ поверх Docker-образов на Python и Go; собственной кодовой базы не найдено, стек требует подтверждения.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-flows" xsi:type="ApplicationComponent">
|
<element identifier="ac-flows" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">flows</name>
|
<name xml:lang="ru">flows</name>
|
||||||
<documentation xml:lang="ru">Маршруты согласования проектной документации: маршрут из шагов с назначенными согласующими, ревью документов, решения участников, сроки по рабочим дням и очередь задач согласующего. Публикует события согласования в Kafka и умеет автоматически инициировать трансмиттал после завершения маршрута.</documentation>
|
<documentation xml:lang="ru">Маршруты согласования проектной документации: маршрут из шагов с назначенными согласующими, ревью документов, решения участников, сроки по рабочим дням и очередь задач согласующего. Публикует события согласования в Kafka и умеет автоматически инициировать трансмиттал после завершения маршрута.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · SQLAlchemy + Alembic · PostgreSQL (JSONB) · Celery · FastStream + Kafka · фронтенд на TypeScript/React/MobX (rsbuild + Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-iam" xsi:type="ApplicationComponent">
|
<element identifier="ac-iam" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">iam</name>
|
<name xml:lang="ru">iam</name>
|
||||||
<documentation xml:lang="ru">Платформенный IAM: иерархия ресурсов, компании, пользователи, сервисные аккаунты и права по модели ReBAC (SpiceDB). Отвечает на вопросы «какие права у пользователя на ресурс» и «какие ресурсы доступны пользователю», на которые опираются остальные сервисы; пользователи заводятся во внешнем Zitadel.</documentation>
|
<documentation xml:lang="ru">Платформенный IAM: иерархия ресурсов, компании, пользователи, сервисные аккаунты и права по модели ReBAC (SpiceDB). Отвечает на вопросы «какие права у пользователя на ресурс» и «какие ресурсы доступны пользователю», на которые опираются остальные сервисы; пользователи заводятся во внешнем Zitadel.
|
||||||
|
|
||||||
|
Стек: Go, гексагональная архитектура · SpiceDB по gRPC с собственным Postgres-datastore · PostgreSQL · S3 · Kafka · Zitadel Management API · Helm с Istio.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-inspections" xsi:type="ApplicationComponent">
|
<element identifier="ac-inspections" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">inspections</name>
|
<name xml:lang="ru">inspections</name>
|
||||||
<documentation xml:lang="ru">События и проверки на объекте: планирование осмотров с типом, датой, ответственными, локацией и настраиваемыми атрибутами, контроль занятости исполнителей, история изменений и выгрузка реестра в XLSX. Отдельная подсистема — правила доступности и идемпотентное бронирование слотов для выездов и приёмок.</documentation>
|
<documentation xml:lang="ru">События и проверки на объекте: планирование осмотров с типом, датой, ответственными, локацией и настраиваемыми атрибутами, контроль занятости исполнителей, история изменений и выгрузка реестра в XLSX. Отдельная подсистема — правила доступности и идемпотентное бронирование слотов для выездов и приёмок.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · Piccolo ORM с админкой · PostgreSQL (JSONB, триггеры, advisory-локи) · FastStream + Kafka · фронтенд на React/MobX с DevExpress Scheduler.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-issues" xsi:type="ApplicationComponent">
|
<element identifier="ac-issues" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">issues</name>
|
<name xml:lang="ru">issues</name>
|
||||||
<documentation xml:lang="ru">Сервис замечаний строительного контроля: типы, настраиваемые статусные модели с правами на переходы, ответственные, комментарии, фото-вложения, атрибуты EAV и история изменений. Включает выпуск предписаний, выгрузку реестров в XLSX и PDF и рассылку уведомлений. Один бэкенд обслуживает также компоненты remarks и prescriptions.</documentation>
|
<documentation xml:lang="ru">Сервис замечаний строительного контроля: типы, настраиваемые статусные модели с правами на переходы, ответственные, комментарии, фото-вложения, атрибуты EAV и история изменений. Включает выпуск предписаний, выгрузку реестров в XLSX и PDF и рассылку уведомлений. Один бэкенд обслуживает также компоненты remarks и prescriptions.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL с полнотекстовым поиском · Celery + Redis · Kafka · S3 · pandas и ReportLab для XLSX и PDF · SimpleJWT с Zitadel.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-mapper" xsi:type="ApplicationComponent">
|
<element identifier="ac-mapper" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">mapper</name>
|
<name xml:lang="ru">mapper</name>
|
||||||
<documentation xml:lang="ru">Агрегирующий сервис (BFF), склеивающий данные нескольких API в один ответ для интерфейса: реестр документов диска вместе с состоянием согласования и заметки вместе с их связями. Собственной доменной модели и базы не имеет, ответы кеширует в Redis.</documentation>
|
<documentation xml:lang="ru">Агрегирующий сервис (BFF), склеивающий данные нескольких API в один ответ для интерфейса: реестр документов диска вместе с состоянием согласования и заметки вместе с их связями. Собственной доменной модели и базы не имеет, ответы кеширует в Redis.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · httpx с ретраями · Redis/RedisJSON как кеш; собственной БД нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-measurements" xsi:type="ApplicationComponent">
|
<element identifier="ac-measurements" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">measurements</name>
|
<name xml:lang="ru">measurements</name>
|
||||||
<documentation xml:lang="ru">Геопространственные измерения по материалам аэросъёмки: высота и температура в точке, профиль вдоль ломаной, расчёт объёма по контуру и разности объёмов между съёмками, метаданные растров и пересчёт координат. Stateless-сервис без собственной БД, читающий GeoTIFF напрямую из объектного хранилища.</documentation>
|
<documentation xml:lang="ru">Геопространственные измерения по материалам аэросъёмки: высота и температура в точке, профиль вдоль ломаной, расчёт объёма по контуру и разности объёмов между съёмками, метаданные растров и пересчёт координат. Stateless-сервис без собственной БД, читающий GeoTIFF напрямую из объектного хранилища.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · GDAL, pyproj, NumPy, OpenCV, SciPy · чтение GeoTIFF из S3 через boto3; собственной БД нет.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-message-hub" xsi:type="ApplicationComponent">
|
<element identifier="ac-message-hub" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">message-hub</name>
|
<name xml:lang="ru">message-hub</name>
|
||||||
<documentation xml:lang="ru">Событийный хаб домена планирования: принимает события Kafka и выполняет побочные действия — пересчёт аналитики, обновление атрибутов, письма, экспорты, системный журнал, автопланирование, синхронизацию проектов и ресурсов. Транслирует изменения в браузер по WebSocket, обеспечивая живое обновление доски проекта.</documentation>
|
<documentation xml:lang="ru">Событийный хаб домена планирования: принимает события Kafka и выполняет побочные действия — пересчёт аналитики, обновление атрибутов, письма, экспорты, системный журнал, автопланирование, синхронизацию проектов и ресурсов. Транслирует изменения в браузер по WebSocket, обеспечивая живое обновление доски проекта.
|
||||||
|
|
||||||
|
Стек: Python · FastStream + Kafka (aiokafka) · python-socketio с Redis · SQLAlchemy Core с сырым SQL к PostgreSQL · S3 · Jinja2 для писем.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-notes" xsi:type="ApplicationComponent">
|
<element identifier="ac-notes" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">notes</name>
|
<name xml:lang="ru">notes</name>
|
||||||
<documentation xml:lang="ru">Заметки и примечания на объектах проекта: пометка на 2D-чертеже или в 3D-модели со сроком, цветом, фотографиями, вложениями и связями с сущностями разных сервисов. Поддерживает отправку скриншота вида и формирование документа по заметке; применяется при авторском надзоре и строительном контроле.</documentation>
|
<documentation xml:lang="ru">Заметки и примечания на объектах проекта: пометка на 2D-чертеже или в 3D-модели со сроком, цветом, фотографиями, вложениями и связями с сущностями разных сервисов. Поддерживает отправку скриншота вида и формирование документа по заметке; применяется при авторском надзоре и строительном контроле.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · SQLAlchemy + Alembic · PostgreSQL с полнотекстовым поиском · фронтенд на TypeScript/React/MobX/Material-UI.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-pm" xsi:type="ApplicationComponent">
|
<element identifier="ac-pm" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">pm</name>
|
<name xml:lang="ru">pm</name>
|
||||||
<documentation xml:lang="ru">Календарно-сетевое планирование: иерархия задач, длительности, связи предшествования, календари, базовые планы, факт и проценты выполнения, ресурсы и назначения. Импорт графиков из MS Project, Primavera и XLSX, работа на диаграмме Ганта, экспорт в PDF, асинхронное автопланирование и пересчёт.</documentation>
|
<documentation xml:lang="ru">Календарно-сетевое планирование: иерархия задач, длительности, связи предшествования, календари, базовые планы, факт и проценты выполнения, ресурсы и назначения. Импорт графиков из MS Project, Primavera и XLSX, работа на диаграмме Ганта, экспорт в PDF, асинхронное автопланирование и пересчёт.
|
||||||
|
|
||||||
|
Стек: Python · Django 5 + DRF, целевой стиль — FastAPI с async SQLAlchemy · PostgreSQL с триггерами · ClickHouse · S3 · Celery + Redis · Kafka · pandas, парсеры MS Project и Primavera · фронтенд на React/MobX.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-prescriptions" xsi:type="ApplicationComponent">
|
<element identifier="ac-prescriptions" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">prescriptions</name>
|
<name xml:lang="ru">prescriptions</name>
|
||||||
<documentation xml:lang="ru">Выдача предписаний подрядчику по результатам строительного контроля: предписание собирается из замечаний, привязывается к договору, подрядчику и объекту, получает номер и проходит согласование по статусам. Официальный документ формируется по шаблону движком workflow; бэкенд — приложение внутри issues.</documentation>
|
<documentation xml:lang="ru">Выдача предписаний подрядчику по результатам строительного контроля: предписание собирается из замечаний, привязывается к договору, подрядчику и объекту, получает номер и проходит согласование по статусам. Официальный документ формируется по шаблону движком workflow; бэкенд — приложение внутри issues.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL (приложение внутри бэкенда issues) · генерация документов движком workflow · фронтенд на React/MobX (rsbuild + Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-processing" xsi:type="ApplicationComponent">
|
<element identifier="ac-processing" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">processing</name>
|
<name xml:lang="ru">processing</name>
|
||||||
<documentation xml:lang="ru">Фабрика тяжёлых вычислений платформы: движок workflow исполняет граф задач, каждая из которых запускается отдельным контейнером (Kubernetes Job или воркер через RabbitMQ). Через него работают конвертация форматов, сравнения, экспорт в DWG и генерация документов; отдельный интерфейс даёт мониторинг, логи, отмену и перезапуск задач.</documentation>
|
<documentation xml:lang="ru">Фабрика тяжёлых вычислений платформы: движок workflow исполняет граф задач, каждая из которых запускается отдельным контейнером (Kubernetes Job или воркер через RabbitMQ). Через него работают конвертация форматов, сравнения, экспорт в DWG и генерация документов; отдельный интерфейс даёт мониторинг, логи, отмену и перезапуск задач.
|
||||||
|
|
||||||
|
Стек: Go (pgx, go-pg, zap) · PostgreSQL · Kubernetes client-go для джобов · RabbitMQ для сторонних воркеров · джобы на Python (boto3, внутренняя workflows-tools) · фронтенд на React/MobX.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-projects" xsi:type="ApplicationComponent">
|
<element identifier="ac-projects" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">projects</name>
|
<name xml:lang="ru">projects</name>
|
||||||
<documentation xml:lang="ru">Витрина проектов и карточка проекта — верхнеуровневый вход пользователя в платформу: атрибуты, местоположение, фотографии, группировки и настраиваемые вкладки с разделами-виджетами. Агрегирует показатели остальных модулей, включая встраивание внешней аналитики.</documentation>
|
<documentation xml:lang="ru">Витрина проектов и карточка проекта — верхнеуровневый вход пользователя в платформу: атрибуты, местоположение, фотографии, группировки и настраиваемые вкладки с разделами-виджетами. Агрегирует показатели остальных модулей, включая встраивание внешней аналитики.
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · async SQLAlchemy 2.0 + Alembic · PostgreSQL (JSONB) · S3 · фронтенд на React/MobX с TanStack Query и leaflet · встраивание Superset.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-remarks" xsi:type="ApplicationComponent">
|
<element identifier="ac-remarks" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">remarks</name>
|
<name xml:lang="ru">remarks</name>
|
||||||
<documentation xml:lang="ru">Пользовательский модуль работы с замечаниями (UI): пин на чертеже, в ячейке XLSX или на задаче графика, описание, срок, ответственные, вложения и пометки поверх листа, табличное и списочное представления, фильтры, массовое редактирование и экспорт. Собственный бэкенд архивирован — модуль работает поверх issues.</documentation>
|
<documentation xml:lang="ru">Пользовательский модуль работы с замечаниями (UI): пин на чертеже, в ячейке XLSX или на задаче графика, описание, срок, ответственные, вложения и пометки поверх листа, табличное и списочное представления, фильтры, массовое редактирование и экспорт. Собственный бэкенд архивирован — модуль работает поверх issues.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · Material-UI · TanStack Table и Virtual; серверная часть — стек issues.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-resources" xsi:type="ApplicationComponent">
|
<element identifier="ac-resources" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">resources</name>
|
<name xml:lang="ru">resources</name>
|
||||||
<documentation xml:lang="ru">Единый реестр ресурсов платформы — иерархия объектов строительства (проект, объект, участок и ниже) с типами, географическим положением, кодами и правами доступа. Идентификатор ресурса служит сквозным ключом проекта во всех остальных сервисах, а сам реестр — общей точкой проверки прав, поэтому это один из самых востребованных компонентов контура. Интеграция только синхронная, по HTTP.</documentation>
|
<documentation xml:lang="ru">Единый реестр ресурсов платформы — иерархия объектов строительства (проект, объект, участок и ниже) с типами, географическим положением, кодами и правами доступа. Идентификатор ресурса служит сквозным ключом проекта во всех остальных сервисах, а сам реестр — общей точкой проверки прав, поэтому это один из самых востребованных компонентов контура. Интеграция только синхронная, по HTTP.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · django-filter · PostgreSQL с ltree и PostGIS · фронтенд в отдельном репозитории.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-reviews" xsi:type="ApplicationComponent">
|
<element identifier="ac-reviews" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">reviews</name>
|
<name xml:lang="ru">reviews</name>
|
||||||
<documentation xml:lang="ru">Рабочее место согласующего: очередь задач с приоритетами и сроками, просмотр документа, пометки и замечания, заполнение чек-листов и вынесение решения (согласовано / с замечаниями / отклонено). Ключевой этап между выпуском версии документа и выдачей её «в производство работ»; бэкенд общий с flows.</documentation>
|
<documentation xml:lang="ru">Рабочее место согласующего: очередь задач с приоритетами и сроками, просмотр документа, пометки и замечания, заполнение чек-листов и вынесение решения (согласовано / с замечаниями / отклонено). Ключевой этап между выпуском версии документа и выдачей её «в производство работ»; бэкенд общий с flows.
|
||||||
|
|
||||||
|
Стек: TypeScript · React · MobX · rsbuild + Module Federation; серверная часть — стек flows, экспорт отчётов вынесен в отдельный сервис.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-rfi" xsi:type="ApplicationComponent">
|
<element identifier="ac-rfi" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">rfi</name>
|
<name xml:lang="ru">rfi</name>
|
||||||
<documentation xml:lang="ru">Формальные запросы информации между участниками проекта: запрос с приоритетом, статусом, ответственными и привязкой к ресурсу, переписка сообщениями с пометкой одного из них как решения. Приоритеты и статусы настраиваются на уровне компании, ведётся полный журнал изменений полей.</documentation>
|
<documentation xml:lang="ru">Формальные запросы информации между участниками проекта: запрос с приоритетом, статусом, ответственными и привязкой к ресурсу, переписка сообщениями с пометкой одного из них как решения. Приоритеты и статусы настраиваются на уровне компании, ведётся полный журнал изменений полей.
|
||||||
|
|
||||||
|
Стек: Python · Django 5.1 + DRF · django-filter · PostgreSQL · Celery · SimpleJWT с Zitadel · фронтенд на TypeScript/React/MobX (rsbuild + Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-stamp-verification" xsi:type="ApplicationComponent">
|
<element identifier="ac-stamp-verification" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">stamp-verification</name>
|
<name xml:lang="ru">stamp-verification</name>
|
||||||
<documentation xml:lang="ru">Публичная страница проверки подлинности документа по QR-штампу: сканирование кода с бумажной или PDF-копии открывает карточку с документом, страницей и его актуальным состоянием, включая статус согласования. Авторизация не требуется; серверная часть — публичный эндпоинт documentations.</documentation>
|
<documentation xml:lang="ru">Публичная страница проверки подлинности документа по QR-штампу: сканирование кода с бумажной или PDF-копии открывает карточку с документом, страницей и его актуальным состоянием, включая статус согласования. Авторизация не требуется; серверная часть — публичный эндпоинт documentations.
|
||||||
|
|
||||||
|
Стек: Статический сайт без сборщика: HTML, vanilla JS, moment.js; серверная часть — Go (gorilla/mux, go-pg, PostgreSQL) в составе documentation-api.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-subscriptions" xsi:type="ApplicationComponent">
|
<element identifier="ac-subscriptions" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">subscriptions</name>
|
<name xml:lang="ru">subscriptions</name>
|
||||||
<documentation xml:lang="ru">Подписки на изменения объектов и рассылка уведомлений по e-mail, SMTP/Mailgun и Telegram с периодичностью от мгновенной до еженедельной. Источник изменений — не брокер, а периодический опрос журнала system-log; тексты формируются по шаблонам, привязанным к модели и типу события.</documentation>
|
<documentation xml:lang="ru">Подписки на изменения объектов и рассылка уведомлений по e-mail, SMTP/Mailgun и Telegram с периодичностью от мгновенной до еженедельной. Источник изменений — не брокер, а периодический опрос журнала system-log; тексты формируются по шаблонам, привязанным к модели и типу события.
|
||||||
|
|
||||||
|
Стек: Python · Django + DRF · PostgreSQL с PostGIS и TimescaleDB · SMTP и Mailgun · python-telegram-bot · Jinja2 · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-system-log" xsi:type="ApplicationComponent">
|
<element identifier="ac-system-log" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">system-log</name>
|
<name xml:lang="ru">system-log</name>
|
||||||
<documentation xml:lang="ru">Централизованный журнал системных событий (аудит) всей платформы: кто, что и над каким объектом сделал, с метаданными, ресурсом и компанией. Обеспечивает прослеживаемость изменений и служит источником событий для механизма подписок и уведомлений.</documentation>
|
<documentation xml:lang="ru">Централизованный журнал системных событий (аудит) всей платформы: кто, что и над каким объектом сделал, с метаданными, ресурсом и компанией. Обеспечивает прослеживаемость изменений и служит источником событий для механизма подписок и уведомлений.
|
||||||
|
|
||||||
|
Стек: Go · Fiber · pgx + squirrel с миграциями на старте · PostgreSQL · Kafka через sarama (опционально) · отдельный воркер с cron · OpenTelemetry.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-transmittal" xsi:type="ApplicationComponent">
|
<element identifier="ac-transmittal" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">transmittal</name>
|
<name xml:lang="ru">transmittal</name>
|
||||||
<documentation xml:lang="ru">Формальная передача комплектов документации между участниками — сопроводительное письмо с составом, получателями, сроком и результатом приёма или отклонения. По завершении формируется акт передачи в PDF; есть шаблоны трансмитталов и связь с согласованиями, замыкающая цикл «выдал документацию → получил замечания».</documentation>
|
<documentation xml:lang="ru">Формальная передача комплектов документации между участниками — сопроводительное письмо с составом, получателями, сроком и результатом приёма или отклонения. По завершении формируется акт передачи в PDF; есть шаблоны трансмитталов и связь с согласованиями, замыкающая цикл «выдал документацию → получил замечания».
|
||||||
|
|
||||||
|
Стек: Python · FastAPI · async SQLAlchemy + Alembic · PostgreSQL · S3 · taskiq + RabbitMQ · Jinja2 с собственным конвертером HTML в PDF · Mailgun и SMTP · фронтенд на React/MobX (Module Federation).</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-workspaces" xsi:type="ApplicationComponent">
|
<element identifier="ac-workspaces" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">workspaces</name>
|
<name xml:lang="ru">workspaces</name>
|
||||||
<documentation xml:lang="ru">Рабочее пространство — сцена, в которой пользователь одновременно работает с BIM-моделями, облаками точек, PDF-чертежами и панорамами объекта, настраивает отображение и сохраняет именованные состояния. Поддерживает установку прикладных модулей компании как федеративных приложений внутри сцены и архивирование данных при закрытии этапов.</documentation>
|
<documentation xml:lang="ru">Рабочее пространство — сцена, в которой пользователь одновременно работает с BIM-моделями, облаками точек, PDF-чертежами и панорамами объекта, настраивает отображение и сохраняет именованные состояния. Поддерживает установку прикладных модулей компании как федеративных приложений внутри сцены и архивирование данных при закрытии этапов.
|
||||||
|
|
||||||
|
Стек: Go (gorilla/mux, go-pg, Prometheus, Sentry, JWT на RSA) · PostgreSQL · фронтенд на TypeScript/React/MobX с viewer (Module Federation), кеш в IndexedDB · тесты Cypress и Jest.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="ac-bim-converter" xsi:type="ApplicationComponent">
|
<element identifier="ac-bim-converter" xsi:type="ApplicationComponent">
|
||||||
<name xml:lang="ru">Конвертер BIM-моделей</name>
|
<name xml:lang="ru">Конвертер BIM-моделей</name>
|
||||||
<documentation xml:lang="ru">Подготовка исходных САПР-моделей (IFC, NWD и другие форматы Autodesk) к просмотру и анализу: облегчённая геометрия glTF/`.s3d` плюс структурированный набор свойств, категорий и материалов элементов. Обязательное звено между загрузкой документа в CDE и появлением работоспособной модели в интерфейсе; работает как эфемерный джоб и как постоянный воркер RPC.</documentation>
|
<documentation xml:lang="ru">Подготовка исходных САПР-моделей (IFC, NWD и другие форматы Autodesk) к просмотру и анализу: облегчённая геометрия glTF/`.s3d` плюс структурированный набор свойств, категорий и материалов элементов. Обязательное звено между загрузкой документа в CDE и появлением работоспособной модели в интерфейсе; работает как эфемерный джоб и как постоянный воркер RPC.
|
||||||
|
|
||||||
|
Стек: Ядро на Python с ifcopenshell и NumPy · обвязка и воркеры на Go · RabbitMQ (RPC) · S3 · Docker · плагин Navisworks на C#/.NET (SharpGLTF) · форматы IFC и NWD в glTF/GLB, `.s3d` и JSON свойств.</documentation>
|
||||||
</element>
|
</element>
|
||||||
<element identifier="nd-cluster" xsi:type="Node">
|
<element identifier="nd-cluster" xsi:type="Node">
|
||||||
<name xml:lang="ru">Кластер k8s-prod</name>
|
<name xml:lang="ru">Кластер k8s-prod</name>
|
||||||
@ -795,34 +871,34 @@
|
|||||||
<node identifier="do-0112" elementRef="ac-flows" xsi:type="Element" x="830" y="320" w="170" h="55"/>
|
<node identifier="do-0112" elementRef="ac-flows" xsi:type="Element" x="830" y="320" w="170" h="55"/>
|
||||||
<node identifier="do-0113" elementRef="ac-processing" xsi:type="Element" x="711" y="532" w="170" h="55"/>
|
<node identifier="do-0113" elementRef="ac-processing" xsi:type="Element" x="711" y="532" w="170" h="55"/>
|
||||||
<node identifier="do-0114" elementRef="ac-eav" xsi:type="Element" x="425" y="620" w="170" h="55"/>
|
<node identifier="do-0114" elementRef="ac-eav" xsi:type="Element" x="425" y="620" w="170" h="55"/>
|
||||||
<node identifier="do-0115" elementRef="ac-resources" xsi:type="Element" x="139" y="532" w="170" h="55"/>
|
<node identifier="do-0115" elementRef="ac-issues" xsi:type="Element" x="139" y="532" w="170" h="55"/>
|
||||||
<node identifier="do-0116" elementRef="ac-issues" xsi:type="Element" x="20" y="320" w="170" h="55"/>
|
<node identifier="do-0116" elementRef="ac-resources" xsi:type="Element" x="20" y="320" w="170" h="55"/>
|
||||||
<node identifier="do-0117" elementRef="ac-pm" xsi:type="Element" x="139" y="108" w="170" h="55"/>
|
<node identifier="do-0117" elementRef="ac-pm" xsi:type="Element" x="139" y="108" w="170" h="55"/>
|
||||||
<connection identifier="cn-0118" relationshipRef="rel-244" xsi:type="Relationship" source="do-0110" target="do-0111"/>
|
<connection identifier="cn-0118" relationshipRef="rel-244" xsi:type="Relationship" source="do-0110" target="do-0111"/>
|
||||||
<connection identifier="cn-0127" relationshipRef="rel-271" xsi:type="Relationship" source="do-0110" target="do-0112"/>
|
<connection identifier="cn-0127" relationshipRef="rel-271" xsi:type="Relationship" source="do-0110" target="do-0112"/>
|
||||||
<connection identifier="cn-0133" relationshipRef="rel-280" xsi:type="Relationship" source="do-0110" target="do-0116"/>
|
<connection identifier="cn-0133" relationshipRef="rel-280" xsi:type="Relationship" source="do-0110" target="do-0115"/>
|
||||||
<connection identifier="cn-0142" relationshipRef="rel-300" xsi:type="Relationship" source="do-0110" target="do-0113"/>
|
<connection identifier="cn-0142" relationshipRef="rel-300" xsi:type="Relationship" source="do-0110" target="do-0113"/>
|
||||||
<connection identifier="cn-0121" relationshipRef="rel-251" xsi:type="Relationship" source="do-0111" target="do-0110"/>
|
<connection identifier="cn-0121" relationshipRef="rel-251" xsi:type="Relationship" source="do-0111" target="do-0110"/>
|
||||||
<connection identifier="cn-0126" relationshipRef="rel-270" xsi:type="Relationship" source="do-0111" target="do-0112"/>
|
<connection identifier="cn-0126" relationshipRef="rel-270" xsi:type="Relationship" source="do-0111" target="do-0112"/>
|
||||||
<connection identifier="cn-0132" relationshipRef="rel-279" xsi:type="Relationship" source="do-0111" target="do-0116"/>
|
<connection identifier="cn-0132" relationshipRef="rel-279" xsi:type="Relationship" source="do-0111" target="do-0115"/>
|
||||||
<connection identifier="cn-0138" relationshipRef="rel-295" xsi:type="Relationship" source="do-0111" target="do-0117"/>
|
<connection identifier="cn-0138" relationshipRef="rel-295" xsi:type="Relationship" source="do-0111" target="do-0117"/>
|
||||||
<connection identifier="cn-0141" relationshipRef="rel-299" xsi:type="Relationship" source="do-0111" target="do-0113"/>
|
<connection identifier="cn-0141" relationshipRef="rel-299" xsi:type="Relationship" source="do-0111" target="do-0113"/>
|
||||||
<connection identifier="cn-0144" relationshipRef="rel-303" xsi:type="Relationship" source="do-0111" target="do-0115"/>
|
<connection identifier="cn-0144" relationshipRef="rel-303" xsi:type="Relationship" source="do-0111" target="do-0116"/>
|
||||||
<connection identifier="cn-0123" relationshipRef="rel-254" xsi:type="Relationship" source="do-0112" target="do-0110"/>
|
<connection identifier="cn-0123" relationshipRef="rel-254" xsi:type="Relationship" source="do-0112" target="do-0110"/>
|
||||||
<connection identifier="cn-0135" relationshipRef="rel-282" xsi:type="Relationship" source="do-0112" target="do-0116"/>
|
<connection identifier="cn-0135" relationshipRef="rel-282" xsi:type="Relationship" source="do-0112" target="do-0115"/>
|
||||||
<connection identifier="cn-0120" relationshipRef="rel-247" xsi:type="Relationship" source="do-0113" target="do-0111"/>
|
<connection identifier="cn-0120" relationshipRef="rel-247" xsi:type="Relationship" source="do-0113" target="do-0111"/>
|
||||||
<connection identifier="cn-0124" relationshipRef="rel-258" xsi:type="Relationship" source="do-0113" target="do-0110"/>
|
<connection identifier="cn-0124" relationshipRef="rel-258" xsi:type="Relationship" source="do-0113" target="do-0110"/>
|
||||||
<connection identifier="cn-0130" relationshipRef="rel-275" xsi:type="Relationship" source="do-0113" target="do-0112"/>
|
<connection identifier="cn-0130" relationshipRef="rel-275" xsi:type="Relationship" source="do-0113" target="do-0112"/>
|
||||||
<connection identifier="cn-0136" relationshipRef="rel-284" xsi:type="Relationship" source="do-0113" target="do-0116"/>
|
<connection identifier="cn-0136" relationshipRef="rel-284" xsi:type="Relationship" source="do-0113" target="do-0115"/>
|
||||||
<connection identifier="cn-0122" relationshipRef="rel-253" xsi:type="Relationship" source="do-0114" target="do-0110"/>
|
<connection identifier="cn-0122" relationshipRef="rel-253" xsi:type="Relationship" source="do-0114" target="do-0110"/>
|
||||||
<connection identifier="cn-0128" relationshipRef="rel-272" xsi:type="Relationship" source="do-0114" target="do-0112"/>
|
<connection identifier="cn-0128" relationshipRef="rel-272" xsi:type="Relationship" source="do-0114" target="do-0112"/>
|
||||||
<connection identifier="cn-0134" relationshipRef="rel-281" xsi:type="Relationship" source="do-0114" target="do-0116"/>
|
<connection identifier="cn-0134" relationshipRef="rel-281" xsi:type="Relationship" source="do-0114" target="do-0115"/>
|
||||||
<connection identifier="cn-0139" relationshipRef="rel-296" xsi:type="Relationship" source="do-0114" target="do-0117"/>
|
<connection identifier="cn-0139" relationshipRef="rel-296" xsi:type="Relationship" source="do-0114" target="do-0117"/>
|
||||||
<connection identifier="cn-0125" relationshipRef="rel-260" xsi:type="Relationship" source="do-0115" target="do-0110"/>
|
<connection identifier="cn-0125" relationshipRef="rel-260" xsi:type="Relationship" source="do-0116" target="do-0110"/>
|
||||||
<connection identifier="cn-0131" relationshipRef="rel-276" xsi:type="Relationship" source="do-0115" target="do-0112"/>
|
<connection identifier="cn-0131" relationshipRef="rel-276" xsi:type="Relationship" source="do-0116" target="do-0112"/>
|
||||||
<connection identifier="cn-0137" relationshipRef="rel-285" xsi:type="Relationship" source="do-0115" target="do-0116"/>
|
<connection identifier="cn-0137" relationshipRef="rel-285" xsi:type="Relationship" source="do-0116" target="do-0115"/>
|
||||||
<connection identifier="cn-0140" relationshipRef="rel-298" xsi:type="Relationship" source="do-0115" target="do-0117"/>
|
<connection identifier="cn-0140" relationshipRef="rel-298" xsi:type="Relationship" source="do-0116" target="do-0117"/>
|
||||||
<connection identifier="cn-0143" relationshipRef="rel-302" xsi:type="Relationship" source="do-0115" target="do-0113"/>
|
<connection identifier="cn-0143" relationshipRef="rel-302" xsi:type="Relationship" source="do-0116" target="do-0113"/>
|
||||||
<connection identifier="cn-0119" relationshipRef="rel-246" xsi:type="Relationship" source="do-0117" target="do-0111"/>
|
<connection identifier="cn-0119" relationshipRef="rel-246" xsi:type="Relationship" source="do-0117" target="do-0111"/>
|
||||||
<connection identifier="cn-0129" relationshipRef="rel-274" xsi:type="Relationship" source="do-0117" target="do-0112"/>
|
<connection identifier="cn-0129" relationshipRef="rel-274" xsi:type="Relationship" source="do-0117" target="do-0112"/>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@ -47,7 +47,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"attachments": {
|
"attachments": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -57,7 +58,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"auth-flow": {
|
"auth-flow": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -67,7 +69,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"bim": {
|
"bim": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -77,7 +80,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"cde": {
|
"cde": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -87,7 +91,8 @@
|
|||||||
"s3": "doc",
|
"s3": "doc",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"checklists": {
|
"checklists": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -97,7 +102,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"comparisons": {
|
"comparisons": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -107,7 +113,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"contracts": {
|
"contracts": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -117,7 +124,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"control-interface": {
|
"control-interface": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -127,7 +135,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"cross-section": {
|
"cross-section": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -137,7 +146,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"django": {
|
"django": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -147,7 +157,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": "manifest",
|
"redis": "manifest",
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"document-link": {
|
"document-link": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -157,7 +168,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"documentations": {
|
"documentations": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -167,7 +179,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"drawings": {
|
"drawings": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -177,7 +190,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"eav": {
|
"eav": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -187,7 +201,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"faas": {
|
"faas": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -197,7 +212,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"flows": {
|
"flows": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -207,7 +223,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": "manifest"
|
||||||
},
|
},
|
||||||
"iam": {
|
"iam": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -217,7 +234,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"inspections": {
|
"inspections": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -227,7 +245,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": "manifest"
|
||||||
},
|
},
|
||||||
"issues": {
|
"issues": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -237,7 +256,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": "doc",
|
"redis": "doc",
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": "manifest"
|
||||||
},
|
},
|
||||||
"mapper": {
|
"mapper": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -247,7 +267,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": "doc",
|
"redis": "doc",
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"measurements": {
|
"measurements": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -257,7 +278,8 @@
|
|||||||
"s3": "doc",
|
"s3": "doc",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"message-hub": {
|
"message-hub": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -267,7 +289,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": "manifest",
|
"redis": "manifest",
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"notes": {
|
"notes": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -277,7 +300,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"pm": {
|
"pm": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -287,7 +311,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": "manifest",
|
"redis": "manifest",
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"prescriptions": {
|
"prescriptions": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -297,7 +322,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"processing": {
|
"processing": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -307,7 +333,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "manifest"
|
"oidc": "manifest",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"projects": {
|
"projects": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -317,7 +344,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"remarks": {
|
"remarks": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -327,7 +355,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -337,7 +366,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"reviews": {
|
"reviews": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -347,7 +377,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"rfi": {
|
"rfi": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -357,7 +388,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": "manifest"
|
||||||
},
|
},
|
||||||
"stamp-verification": {
|
"stamp-verification": {
|
||||||
"postgres": false,
|
"postgres": false,
|
||||||
@ -367,7 +399,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": false,
|
"vault": false,
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"subscriptions": {
|
"subscriptions": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -377,7 +410,8 @@
|
|||||||
"s3": "manifest",
|
"s3": "manifest",
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": "manifest"
|
||||||
},
|
},
|
||||||
"system-log": {
|
"system-log": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -387,7 +421,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": false
|
"oidc": false,
|
||||||
|
"smtp": false
|
||||||
},
|
},
|
||||||
"transmittal": {
|
"transmittal": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -397,7 +432,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": "doc"
|
||||||
},
|
},
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
"postgres": "manifest",
|
"postgres": "manifest",
|
||||||
@ -407,7 +443,8 @@
|
|||||||
"s3": false,
|
"s3": false,
|
||||||
"redis": false,
|
"redis": false,
|
||||||
"vault": "manifest",
|
"vault": "manifest",
|
||||||
"oidc": "doc"
|
"oidc": "doc",
|
||||||
|
"smtp": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"exposed": [
|
"exposed": [
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -33,6 +33,7 @@ MARKERS = {
|
|||||||
"redis": [r"REDIS_HOST", r"REDIS__", r"redis\.[a-z-]+\.svc"],
|
"redis": [r"REDIS_HOST", r"REDIS__", r"redis\.[a-z-]+\.svc"],
|
||||||
"vault": [r"vault\.hashicorp\.com/agent-inject"],
|
"vault": [r"vault\.hashicorp\.com/agent-inject"],
|
||||||
"oidc": [r"ZITADEL", r"JWKS", r"OIDC", r"jwt-public"],
|
"oidc": [r"ZITADEL", r"JWKS", r"OIDC", r"jwt-public"],
|
||||||
|
"smtp": [r"SMTP[_A-Z]*_HOST", r"SMTP__HOST", r"FROM_EMAIL", r"EMAIL_FROM"],
|
||||||
}
|
}
|
||||||
|
|
||||||
def read(paths):
|
def read(paths):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user