Add service-level mermaid diagrams for all business applications under docs/apps folder, illustrating dependencies, namespaces, and inter-service connections
This commit is contained in:
parent
57e2867d15
commit
1318889944
102
README.md
102
README.md
@ -86,63 +86,43 @@ flowchart LR
|
|||||||
Operate["Camunda Operate<br/>UI :8081"]:::app
|
Operate["Camunda Operate<br/>UI :8081"]:::app
|
||||||
end
|
end
|
||||||
|
|
||||||
%% ===== Бизнес-сервисы =====
|
%% ===== Бизнес-сервисы (каждый в своём namespace) =====
|
||||||
subgraph APPS["💼 Бизнес-сервисы"]
|
subgraph APPS["💼 Бизнес-сервисы — namespaces"]
|
||||||
direction TB
|
direction LR
|
||||||
|
CI["ns: control-interface"]:::app
|
||||||
subgraph CORE["🧩 Платформа / Core"]
|
Django["ns: django"]:::app
|
||||||
direction LR
|
EAV["ns: eav"]:::app
|
||||||
Django["django<br/>:8000 + srx-admin"]:::app
|
Workspaces["ns: workspaces"]:::app
|
||||||
EAV["eav<br/>атрибуты сущностей"]:::app
|
Projects["ns: projects"]:::app
|
||||||
CI["control-interface<br/>UI :80"]:::app
|
PM["ns: pm"]:::app
|
||||||
Workspaces["workspaces"]:::app
|
Contracts["ns: contracts"]:::app
|
||||||
Projects["projects"]:::app
|
Resources["ns: resources"]:::app
|
||||||
Subs["subscriptions"]:::app
|
Subs["ns: subscriptions"]:::app
|
||||||
SysLog["system-log"]:::app
|
SysLog["ns: system-log"]:::app
|
||||||
MsgHub["message-hub"]:::app
|
MsgHub["ns: message-hub"]:::app
|
||||||
FaaS["faas<br/>functions runtime"]:::app
|
FaaS["ns: faas"]:::app
|
||||||
Flows["flows<br/>оркестрация"]:::app
|
Flows["ns: flows"]:::app
|
||||||
end
|
Docs["ns: documentations"]:::app
|
||||||
|
DocLink["ns: document-link"]:::app
|
||||||
subgraph DOCS["📂 Документы / CDE"]
|
Attach["ns: attachments"]:::app
|
||||||
direction LR
|
Transmittal["ns: transmittal"]:::app
|
||||||
Docs["documentations<br/>filestream + pdm"]:::app
|
CDE["ns: cde"]:::app
|
||||||
DocLink["document-link"]:::app
|
Drawings["ns: drawings"]:::app
|
||||||
Attach["attachments<br/>HelmRelease"]:::app
|
BIM["ns: bim"]:::app
|
||||||
Transmittal["transmittal"]:::app
|
Stamp["ns: stamp-verification"]:::app
|
||||||
CDE["cde<br/>common data env"]:::app
|
Inspect["ns: inspections"]:::app
|
||||||
Drawings["drawings"]:::app
|
Checklists["ns: checklists"]:::app
|
||||||
BIM["bim<br/>3D-модели"]:::app
|
Remarks["ns: remarks"]:::app
|
||||||
Stamp["stamp-verification"]:::app
|
Issues["ns: issues"]:::app
|
||||||
end
|
RFI["ns: rfi"]:::app
|
||||||
|
Reviews["ns: reviews"]:::app
|
||||||
subgraph QUALITY["✅ Контроль качества"]
|
Prescr["ns: prescriptions"]:::app
|
||||||
direction LR
|
Compare["ns: comparisons"]:::app
|
||||||
Inspect["inspections"]:::app
|
Measure["ns: measurements"]:::app
|
||||||
Checklists["checklists"]:::app
|
Mapper["ns: mapper"]:::app
|
||||||
Remarks["remarks"]:::app
|
XSection["ns: cross-section"]:::app
|
||||||
Issues["issues"]:::app
|
Process["ns: processing"]:::app
|
||||||
RFI["rfi<br/>request for info"]:::app
|
Notes["ns: notes"]:::app
|
||||||
Reviews["reviews"]:::app
|
|
||||||
Prescr["prescriptions"]:::app
|
|
||||||
Compare["comparisons<br/>diff чертежей"]:::app
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph FIELD["📐 Полевые данные"]
|
|
||||||
direction LR
|
|
||||||
Measure["measurements"]:::app
|
|
||||||
Mapper["mapper"]:::app
|
|
||||||
XSection["cross-section"]:::app
|
|
||||||
Process["processing"]:::app
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph PMG["🏗 Управление проектом"]
|
|
||||||
direction LR
|
|
||||||
PM["pm<br/>project mgmt"]:::app
|
|
||||||
Contracts["contracts"]:::app
|
|
||||||
Resources["resources"]:::app
|
|
||||||
Notes["notes"]:::app
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% ===== GitOps потоки =====
|
%% ===== GitOps потоки =====
|
||||||
@ -333,12 +313,6 @@ flowchart LR
|
|||||||
BIM -. "envoy" .-> Pilot
|
BIM -. "envoy" .-> Pilot
|
||||||
Flows -. "envoy" .-> Pilot
|
Flows -. "envoy" .-> Pilot
|
||||||
|
|
||||||
%% ===== Стили подгрупп бизнес-сервисов =====
|
|
||||||
style CORE fill:#fdf2f8,stroke:#ec4899,stroke-width:1px
|
|
||||||
style DOCS fill:#fdf2f8,stroke:#ec4899,stroke-width:1px
|
|
||||||
style QUALITY fill:#fdf2f8,stroke:#ec4899,stroke-width:1px
|
|
||||||
style FIELD fill:#fdf2f8,stroke:#ec4899,stroke-width:1px
|
|
||||||
style PMG fill:#fdf2f8,stroke:#ec4899,stroke-width:1px
|
|
||||||
|
|
||||||
%% ===== Стили =====
|
%% ===== Стили =====
|
||||||
classDef ext fill:#1f2937,stroke:#9ca3af,stroke-width:2px,color:#f9fafb
|
classDef ext fill:#1f2937,stroke:#9ca3af,stroke-width:2px,color:#f9fafb
|
||||||
@ -360,6 +334,8 @@ flowchart LR
|
|||||||
style APPS fill:#fce7f3,stroke:#ec4899,stroke-width:2px
|
style APPS fill:#fce7f3,stroke:#ec4899,stroke-width:2px
|
||||||
```
|
```
|
||||||
|
|
||||||
|
📂 **Подробные диаграммы по каждому бизнес-сервису:** [`docs/apps/`](./docs/apps/README.md)
|
||||||
|
|
||||||
**Легенда:**
|
**Легенда:**
|
||||||
- 🟪 **Edge / Mesh** — терминация TLS, маршрутизация и mTLS между сервисами (Istio + cert-manager)
|
- 🟪 **Edge / Mesh** — терминация TLS, маршрутизация и mTLS между сервисами (Istio + cert-manager)
|
||||||
- 🟦 **Платформа** — служебные компоненты (storage, secrets, S3 proxy, dashboard)
|
- 🟦 **Платформа** — служебные компоненты (storage, secrets, S3 proxy, dashboard)
|
||||||
|
|||||||
58
docs/apps/README.md
Normal file
58
docs/apps/README.md
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
# Диаграммы бизнес-приложений
|
||||||
|
|
||||||
|
В этой папке для каждого бизнес-сервиса (namespace) есть отдельная mermaid-диаграмма с его зависимостями и межсервисными маршрутами.
|
||||||
|
|
||||||
|
## Индекс
|
||||||
|
|
||||||
|
### Платформа / Core
|
||||||
|
- [control-interface](./control-interface.md) — единая точка входа UI, API gateway
|
||||||
|
- [django](./django.md) — основной backend-монолит
|
||||||
|
- [eav](./eav.md) — Entity-Attribute-Value сервис атрибутов
|
||||||
|
- [workspaces](./workspaces.md) — рабочие пространства
|
||||||
|
- [projects](./projects.md) — проекты
|
||||||
|
- [subscriptions](./subscriptions.md) — подписки и доставка уведомлений
|
||||||
|
- [system-log](./system-log.md) — аудит-журнал
|
||||||
|
- [message-hub](./message-hub.md) — хаб уведомлений
|
||||||
|
- [faas](./faas.md) — runtime функций
|
||||||
|
- [flows](./flows.md) — оркестрация бизнес-потоков
|
||||||
|
|
||||||
|
### Управление проектом
|
||||||
|
- [pm](./pm.md) — project management
|
||||||
|
- [contracts](./contracts.md) — контракты
|
||||||
|
- [resources](./resources.md) — ресурсы
|
||||||
|
- [notes](./notes.md) — заметки
|
||||||
|
|
||||||
|
### Документы / CDE
|
||||||
|
- [documentations](./documentations.md) — хранилище документов
|
||||||
|
- [document-link](./document-link.md) — связи между документами
|
||||||
|
- [attachments](./attachments.md) — вложения
|
||||||
|
- [transmittal](./transmittal.md) — комплекты передачи
|
||||||
|
- [cde](./cde.md) — Common Data Environment
|
||||||
|
- [drawings](./drawings.md) — чертежи
|
||||||
|
- [bim](./bim.md) — BIM/3D-модели
|
||||||
|
- [stamp-verification](./stamp-verification.md) — верификация штампов
|
||||||
|
|
||||||
|
### Контроль качества
|
||||||
|
- [inspections](./inspections.md) — инспекции
|
||||||
|
- [checklists](./checklists.md) — чек-листы
|
||||||
|
- [remarks](./remarks.md) — замечания
|
||||||
|
- [issues](./issues.md) — проблемы
|
||||||
|
- [rfi](./rfi.md) — Request For Information
|
||||||
|
- [reviews](./reviews.md) — ревью
|
||||||
|
- [prescriptions](./prescriptions.md) — предписания
|
||||||
|
- [comparisons](./comparisons.md) — сравнение чертежей
|
||||||
|
|
||||||
|
### Полевые данные
|
||||||
|
- [measurements](./measurements.md) — замеры
|
||||||
|
- [mapper](./mapper.md) — картография
|
||||||
|
- [cross-section](./cross-section.md) — сечения
|
||||||
|
- [processing](./processing.md) — обработка
|
||||||
|
|
||||||
|
## Легенда диаграмм
|
||||||
|
|
||||||
|
- 🟪 розовый — сам сервис (текущая страница)
|
||||||
|
- 🩷 светло-розовый — соседние бизнес-сервисы
|
||||||
|
- 🟩 зелёный — БД и хранилища (PostgreSQL, Redis, MinIO)
|
||||||
|
- 🟥 красный — шины сообщений (Kafka, RabbitMQ)
|
||||||
|
- 🟦 голубой — платформенные компоненты (Vault, S3 Proxy, Istio)
|
||||||
|
- 🟧 оранжевый — Identity-провайдеры (Keycloak, Zitadel)
|
||||||
25
docs/apps/attachments.md
Normal file
25
docs/apps/attachments.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# attachments
|
||||||
|
|
||||||
|
Сервис вложений (управляется HelmRelease). Namespace: `attachments`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
Helm[helm-controller]:::infra
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
|
||||||
|
subgraph NS["ns: attachments"]
|
||||||
|
HR{{HelmRelease<br/>chart-managed}}:::cfg
|
||||||
|
App[deployment: attachments<br/>API + workers]:::comp
|
||||||
|
HR -.-> App
|
||||||
|
end
|
||||||
|
|
||||||
|
Helm -.->|reconcile| HR
|
||||||
|
App -->|PUT/GET| S3 --> MinIO
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
35
docs/apps/bim.md
Normal file
35
docs/apps/bim.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# bim
|
||||||
|
|
||||||
|
BIM / 3D-модели. Namespace: `bim`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
GW[Istio Gateway]:::infra
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
KC[Keycloak]:::idp
|
||||||
|
CDE[cde]:::peer
|
||||||
|
Process[processing]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: bim"]
|
||||||
|
Backend[deployment: backend<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
GW -->|/bim| Backend
|
||||||
|
CDE -->|REST| Backend
|
||||||
|
Backend --> PG
|
||||||
|
Backend -->|IFC/RVT| S3 --> MinIO
|
||||||
|
Backend -->|REST| Process
|
||||||
|
Backend -->|produce bim.processed| Kafka
|
||||||
|
Backend -. JWT .-> KC
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
64
docs/apps/cde.md
Normal file
64
docs/apps/cde.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# cde
|
||||||
|
|
||||||
|
Common Data Environment с набором воркеров. Namespace: `cde`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
GW[Istio Gateway]:::infra
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
KC[Keycloak]:::idp
|
||||||
|
RMQ[[RabbitMQ]]:::msg
|
||||||
|
|
||||||
|
subgraph NS["ns: cde"]
|
||||||
|
API[deployment: cde<br/>API + backend]:::comp
|
||||||
|
Split[worker: split-pdf]:::comp
|
||||||
|
Copy[worker: copy]:::comp
|
||||||
|
Versions[worker: create-versions]:::comp
|
||||||
|
Markings[worker: markings]:::comp
|
||||||
|
Sign[worker: sign]:::comp
|
||||||
|
Bundles[worker: update-bundles]:::comp
|
||||||
|
FlowsCB[worker: flows-callback]:::comp
|
||||||
|
API -. dispatch .-> Split
|
||||||
|
API -. dispatch .-> Copy
|
||||||
|
API -. dispatch .-> Versions
|
||||||
|
API -. dispatch .-> Markings
|
||||||
|
API -. dispatch .-> Sign
|
||||||
|
API -. dispatch .-> Bundles
|
||||||
|
API -. dispatch .-> FlowsCB
|
||||||
|
end
|
||||||
|
|
||||||
|
Docs[documentations]:::peer
|
||||||
|
Drawings[drawings]:::peer
|
||||||
|
BIM[bim]:::peer
|
||||||
|
DocLink[document-link]:::peer
|
||||||
|
Transmittal[transmittal]:::peer
|
||||||
|
Flows[flows]:::peer
|
||||||
|
|
||||||
|
GW -->|/cde| API
|
||||||
|
DocLink -->|REST| API
|
||||||
|
Transmittal -->|REST| API
|
||||||
|
API -->|REST| Docs
|
||||||
|
API -->|REST| Drawings
|
||||||
|
API -->|REST| BIM
|
||||||
|
API --> PG
|
||||||
|
Split -->|files| S3
|
||||||
|
Copy -->|files| S3
|
||||||
|
Versions -->|files| S3
|
||||||
|
Markings -->|files| S3
|
||||||
|
Sign -->|files| S3
|
||||||
|
Bundles -->|files| S3
|
||||||
|
S3 --> MinIO
|
||||||
|
Split & Copy & Versions & Markings & Sign & Bundles -.->|consume jobs| RMQ
|
||||||
|
FlowsCB -.->|callback| Flows
|
||||||
|
API -. JWT .-> KC
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
21
docs/apps/checklists.md
Normal file
21
docs/apps/checklists.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# checklists
|
||||||
|
|
||||||
|
Чек-листы. Namespace: `checklists`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Inspect[inspections]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: checklists"]
|
||||||
|
Backend[deployment: backend<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Inspect -->|REST| Backend
|
||||||
|
Backend --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
34
docs/apps/comparisons.md
Normal file
34
docs/apps/comparisons.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# comparisons
|
||||||
|
|
||||||
|
Сравнение чертежей. Namespace: `comparisons`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
Drawings[drawings]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: comparisons"]
|
||||||
|
Frontend[deployment: frontend<br/>nginx]:::comp
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
Cfg{{configmaps:<br/>nginx, tasks-execution}}:::cfg
|
||||||
|
Frontend --> Backend
|
||||||
|
Cfg -.-> Backend
|
||||||
|
Cfg -.-> Frontend
|
||||||
|
end
|
||||||
|
|
||||||
|
Drawings -->|REST| Backend
|
||||||
|
Kafka -->|consume drawings.uploaded| Backend
|
||||||
|
Backend --> PG
|
||||||
|
Backend -->|rendered diff| S3 --> MinIO
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
23
docs/apps/contracts.md
Normal file
23
docs/apps/contracts.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# contracts
|
||||||
|
|
||||||
|
Контракты. Namespace: `contracts`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
PM[pm]:::peer
|
||||||
|
Resources[resources]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: contracts"]
|
||||||
|
App[deployment: contracts<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
PM -->|REST| App
|
||||||
|
App -->|REST| Resources
|
||||||
|
App --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
36
docs/apps/control-interface.md
Normal file
36
docs/apps/control-interface.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# control-interface
|
||||||
|
|
||||||
|
Единый UI и API-gateway. Namespace: `control-interface`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
User([👤 User]):::ext
|
||||||
|
GW[Istio Gateway]:::infra
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
KC[Keycloak]:::idp
|
||||||
|
|
||||||
|
subgraph NS["ns: control-interface"]
|
||||||
|
UI[deployment: ui<br/>Service :80]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Django[django]:::peer
|
||||||
|
PM[pm]:::peer
|
||||||
|
Projects[projects]:::peer
|
||||||
|
Workspaces[workspaces]:::peer
|
||||||
|
|
||||||
|
User -->|HTTPS| GW --> UI
|
||||||
|
UI -->|API| Django
|
||||||
|
UI -->|API| PM
|
||||||
|
UI -->|API| Projects
|
||||||
|
UI -->|API| Workspaces
|
||||||
|
UI -->|session| Redis
|
||||||
|
UI -. OIDC .-> KC
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
|
||||||
|
classDef ext fill:#1f2937,stroke:#9ca3af,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
30
docs/apps/cross-section.md
Normal file
30
docs/apps/cross-section.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# cross-section
|
||||||
|
|
||||||
|
Поперечные сечения. Namespace: `cross-section`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
RMQ[[RabbitMQ]]:::msg
|
||||||
|
Mapper[mapper]:::peer
|
||||||
|
Process[processing]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: cross-section"]
|
||||||
|
App[deployment: cross-section<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Mapper -->|REST| App
|
||||||
|
RMQ -->|consume xs.jobs| App
|
||||||
|
App --> PG
|
||||||
|
App -->|профили| S3 --> MinIO
|
||||||
|
App -->|REST| Process
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
45
docs/apps/django.md
Normal file
45
docs/apps/django.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# django
|
||||||
|
|
||||||
|
Основной Django-монолит. Namespace: `django`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
GW[Istio Gateway]:::infra
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
Vault[Vault]:::infra
|
||||||
|
KC[Keycloak]:::idp
|
||||||
|
|
||||||
|
subgraph NS["ns: django"]
|
||||||
|
Frontend[deployment: frontend<br/>nginx :80]:::comp
|
||||||
|
Backend[deployment: backend<br/>uwsgi :8000]:::comp
|
||||||
|
Celery[deployment: celery<br/>worker]:::comp
|
||||||
|
SRX[deployment: srx-admin<br/>:8000]:::comp
|
||||||
|
Cfg{{configmaps:<br/>django, nginx, uwsgi}}:::cfg
|
||||||
|
Frontend --> Backend
|
||||||
|
Backend -. tasks via Redis .-> Celery
|
||||||
|
Cfg -.-> Backend
|
||||||
|
Cfg -.-> Frontend
|
||||||
|
end
|
||||||
|
|
||||||
|
CI[control-interface]:::peer
|
||||||
|
EAV[eav]:::peer
|
||||||
|
|
||||||
|
GW -->|/api| Frontend
|
||||||
|
CI -->|REST| Backend
|
||||||
|
EAV -->|schemas| Backend
|
||||||
|
Backend -->|JDBC/ORM| PG
|
||||||
|
Backend -->|cache| Redis
|
||||||
|
Celery -->|broker| Redis
|
||||||
|
Backend -. kv .-> Vault
|
||||||
|
Backend -. OIDC .-> KC
|
||||||
|
SRX --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
27
docs/apps/document-link.md
Normal file
27
docs/apps/document-link.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# document-link
|
||||||
|
|
||||||
|
Связи между документами. Namespace: `document-link`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Docs[documentations]:::peer
|
||||||
|
CDE[cde]:::peer
|
||||||
|
RFI[rfi]:::peer
|
||||||
|
Notes[notes]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: document-link"]
|
||||||
|
App[deployment: document-link<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
RFI -->|REST| App
|
||||||
|
Notes -->|REST| App
|
||||||
|
App -->|REST| Docs
|
||||||
|
App -->|REST| CDE
|
||||||
|
App --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
42
docs/apps/documentations.md
Normal file
42
docs/apps/documentations.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# documentations
|
||||||
|
|
||||||
|
Хранилище документов. Namespace: `documentations`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
GW[Istio Gateway]:::infra
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
KC[Keycloak]:::idp
|
||||||
|
|
||||||
|
subgraph NS["ns: documentations"]
|
||||||
|
Frontend[deployment: frontend]:::comp
|
||||||
|
API[deployment: api]:::comp
|
||||||
|
Filestream[deployment: filestream<br/>upload/download]:::comp
|
||||||
|
PDM[deployment: pdm<br/>product data mgmt]:::comp
|
||||||
|
Frontend --> API
|
||||||
|
API --> Filestream
|
||||||
|
API --> PDM
|
||||||
|
end
|
||||||
|
|
||||||
|
DocLink[document-link]:::peer
|
||||||
|
CDE[cde]:::peer
|
||||||
|
Transmittal[transmittal]:::peer
|
||||||
|
|
||||||
|
GW -->|/docs| Frontend
|
||||||
|
DocLink -->|REST| API
|
||||||
|
CDE -->|REST| API
|
||||||
|
Transmittal -->|REST| API
|
||||||
|
API --> PG
|
||||||
|
PDM --> PG
|
||||||
|
Filestream -->|files| S3 --> MinIO
|
||||||
|
API -. JWT .-> KC
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
32
docs/apps/drawings.md
Normal file
32
docs/apps/drawings.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# drawings
|
||||||
|
|
||||||
|
Чертежи. Namespace: `drawings`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
CDE[cde]:::peer
|
||||||
|
Compare[comparisons]:::peer
|
||||||
|
Stamp[stamp-verification]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: drawings"]
|
||||||
|
App[deployment: drawings<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
CDE -->|REST| App
|
||||||
|
App --> PG
|
||||||
|
App -->|DWG/PDF| S3 --> MinIO
|
||||||
|
App -->|produce drawings.uploaded| Kafka
|
||||||
|
App -->|REST| Compare
|
||||||
|
App -->|REST| Stamp
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
24
docs/apps/eav.md
Normal file
24
docs/apps/eav.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# eav
|
||||||
|
|
||||||
|
Entity-Attribute-Value сервис. Namespace: `eav`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Django[django]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: eav"]
|
||||||
|
Backend[deployment: backend<br/>Service]:::comp
|
||||||
|
Cfg{{configmap: django}}:::cfg
|
||||||
|
Cfg -.-> Backend
|
||||||
|
end
|
||||||
|
|
||||||
|
Backend --> PG
|
||||||
|
Backend -->|schemas REST| Django
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
31
docs/apps/faas.md
Normal file
31
docs/apps/faas.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# faas
|
||||||
|
|
||||||
|
Function-as-a-Service runtime. Namespace: `faas`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
RMQ[[RabbitMQ]]:::msg
|
||||||
|
Vault[Vault]:::infra
|
||||||
|
Flows[flows]:::peer
|
||||||
|
Reviews[reviews]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: faas"]
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
ExportReviews[deployment: export-reviews<br/>function]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Flows -->|trigger| Backend
|
||||||
|
Backend -->|spawn| ExportReviews
|
||||||
|
ExportReviews -->|REST| Reviews
|
||||||
|
Backend -->|queue| Redis
|
||||||
|
RMQ -->|consume tasks.*| Backend
|
||||||
|
Backend -. approle .-> Vault
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
37
docs/apps/flows.md
Normal file
37
docs/apps/flows.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# flows
|
||||||
|
|
||||||
|
Оркестрация бизнес-потоков. Namespace: `flows`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
RMQ[[RabbitMQ]]:::msg
|
||||||
|
Vault[Vault]:::infra
|
||||||
|
FaaS[faas]:::peer
|
||||||
|
Camunda[Camunda BPM]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: flows"]
|
||||||
|
Frontend[deployment: frontend]:::comp
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
Celery[deployment: celery<br/>worker]:::comp
|
||||||
|
Frontend --> Backend
|
||||||
|
Backend -. tasks .-> Celery
|
||||||
|
end
|
||||||
|
|
||||||
|
Backend -->|state| Redis
|
||||||
|
Celery -->|broker| Redis
|
||||||
|
Backend <-->|flows.*| Kafka
|
||||||
|
Backend -->|publish tasks.*| RMQ
|
||||||
|
Backend -->|trigger| FaaS
|
||||||
|
Backend -->|start workflow| Camunda
|
||||||
|
Camunda -->|callback| Backend
|
||||||
|
Backend -. approle .-> Vault
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
26
docs/apps/inspections.md
Normal file
26
docs/apps/inspections.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# inspections
|
||||||
|
|
||||||
|
Инспекции. Namespace: `inspections`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
Checklists[checklists]:::peer
|
||||||
|
Issues[issues]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: inspections"]
|
||||||
|
Backend[deployment: backend<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Backend --> PG
|
||||||
|
Backend -->|REST| Checklists
|
||||||
|
Backend -->|REST| Issues
|
||||||
|
Backend -->|produce inspect.events| Kafka
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
33
docs/apps/issues.md
Normal file
33
docs/apps/issues.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# issues
|
||||||
|
|
||||||
|
Проблемы. Namespace: `issues`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
Inspect[inspections]:::peer
|
||||||
|
Remarks[remarks]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: issues"]
|
||||||
|
Frontend[deployment: frontend]:::comp
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
Celery[deployment: celery<br/>worker]:::comp
|
||||||
|
Cfg{{configmap: production}}:::cfg
|
||||||
|
Frontend --> Backend
|
||||||
|
Backend -. tasks .-> Celery
|
||||||
|
Cfg -.-> Backend
|
||||||
|
end
|
||||||
|
|
||||||
|
Inspect -->|REST| Backend
|
||||||
|
Kafka -->|consume inspect.events| Backend
|
||||||
|
Backend -->|REST| Remarks
|
||||||
|
Backend --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
30
docs/apps/mapper.md
Normal file
30
docs/apps/mapper.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# mapper
|
||||||
|
|
||||||
|
Картография / тайлы. Namespace: `mapper`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
RMQ[[RabbitMQ]]:::msg
|
||||||
|
Measure[measurements]:::peer
|
||||||
|
XSection[cross-section]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: mapper"]
|
||||||
|
App[deployment: mapper<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Measure -->|REST| App
|
||||||
|
RMQ -->|consume tile.jobs| App
|
||||||
|
App --> PG
|
||||||
|
App -->|tiles| S3 --> MinIO
|
||||||
|
App -->|REST| XSection
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
25
docs/apps/measurements.md
Normal file
25
docs/apps/measurements.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# measurements
|
||||||
|
|
||||||
|
Замеры. Namespace: `measurements`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
Mapper[mapper]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: measurements"]
|
||||||
|
App[deployment: measurements<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
App --> PG
|
||||||
|
App -->|snapshots| S3 --> MinIO
|
||||||
|
App -->|REST| Mapper
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
24
docs/apps/message-hub.md
Normal file
24
docs/apps/message-hub.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# message-hub
|
||||||
|
|
||||||
|
Хаб уведомлений. Namespace: `message-hub`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
Subs[subscriptions]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: message-hub"]
|
||||||
|
App[deployment: message-hub<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
App <-->|pub/sub| Redis
|
||||||
|
App -->|produce notify.*| Kafka
|
||||||
|
App -->|deliver| Subs
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
26
docs/apps/notes.md
Normal file
26
docs/apps/notes.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# notes
|
||||||
|
|
||||||
|
Заметки. Namespace: `notes`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
DocLink[document-link]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: notes"]
|
||||||
|
Frontend[deployment: frontend<br/>nginx]:::comp
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
Cfg{{configmap: nginx}}:::cfg
|
||||||
|
Frontend --> Backend
|
||||||
|
Cfg -.-> Frontend
|
||||||
|
end
|
||||||
|
|
||||||
|
Backend --> PG
|
||||||
|
Backend -->|REST| DocLink
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
42
docs/apps/pm.md
Normal file
42
docs/apps/pm.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# pm
|
||||||
|
|
||||||
|
Project management. Namespace: `pm`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
GW[Istio Gateway]:::infra
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
KC[Keycloak]:::idp
|
||||||
|
|
||||||
|
subgraph NS["ns: pm"]
|
||||||
|
Backend[deployment: backend<br/>Service]:::comp
|
||||||
|
Celery[deployment: celery<br/>worker]:::comp
|
||||||
|
Cfg{{configmap: backend}}:::cfg
|
||||||
|
Cfg -.-> Backend
|
||||||
|
Backend -. tasks .-> Celery
|
||||||
|
end
|
||||||
|
|
||||||
|
CI[control-interface]:::peer
|
||||||
|
Projects[projects]:::peer
|
||||||
|
Contracts[contracts]:::peer
|
||||||
|
Resources[resources]:::peer
|
||||||
|
|
||||||
|
GW -->|/pm| Backend
|
||||||
|
CI -->|REST| Backend
|
||||||
|
Backend -->|REST| Projects
|
||||||
|
Backend -->|REST| Contracts
|
||||||
|
Backend -->|REST| Resources
|
||||||
|
Backend --> PG
|
||||||
|
Celery -->|broker| Redis
|
||||||
|
Backend -->|cache| Redis
|
||||||
|
Backend -. JWT .-> KC
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
21
docs/apps/prescriptions.md
Normal file
21
docs/apps/prescriptions.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# prescriptions
|
||||||
|
|
||||||
|
Предписания. Namespace: `prescriptions`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Reviews[reviews]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: prescriptions"]
|
||||||
|
App[deployment: prescriptions<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Reviews -->|REST| App
|
||||||
|
App --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
39
docs/apps/processing.md
Normal file
39
docs/apps/processing.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# processing
|
||||||
|
|
||||||
|
Обработка тяжёлых задач. Namespace: `processing`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
RMQ[[RabbitMQ]]:::msg
|
||||||
|
BIM[bim]:::peer
|
||||||
|
XSection[cross-section]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: processing"]
|
||||||
|
Frontend[deployment: frontend]:::comp
|
||||||
|
API[deployment: api]:::comp
|
||||||
|
Engine[deployment: engine<br/>heavy compute]:::comp
|
||||||
|
EngineLow[deployment: engine-low<br/>low priority]:::comp
|
||||||
|
Frontend --> API
|
||||||
|
API --> Engine
|
||||||
|
API --> EngineLow
|
||||||
|
end
|
||||||
|
|
||||||
|
BIM -->|REST| API
|
||||||
|
XSection -->|REST| API
|
||||||
|
Kafka -->|consume processing.jobs| API
|
||||||
|
Engine -->|publish jobs| RMQ
|
||||||
|
EngineLow -->|publish jobs| RMQ
|
||||||
|
Engine -->|raw + результаты| S3
|
||||||
|
EngineLow -->|raw + результаты| S3
|
||||||
|
S3 --> MinIO
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
25
docs/apps/projects.md
Normal file
25
docs/apps/projects.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# projects
|
||||||
|
|
||||||
|
Проекты. Namespace: `projects`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
CI[control-interface]:::peer
|
||||||
|
PM[pm]:::peer
|
||||||
|
Workspaces[workspaces]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: projects"]
|
||||||
|
App[deployment: projects<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
CI -->|REST| App
|
||||||
|
PM -->|REST| App
|
||||||
|
App -->|REST| Workspaces
|
||||||
|
App --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
26
docs/apps/remarks.md
Normal file
26
docs/apps/remarks.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# remarks
|
||||||
|
|
||||||
|
Замечания. Namespace: `remarks`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
Issues[issues]:::peer
|
||||||
|
Reviews[reviews]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: remarks"]
|
||||||
|
App[deployment: remarks<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Issues -->|REST| App
|
||||||
|
App --> PG
|
||||||
|
App -->|produce remarks.events| Kafka
|
||||||
|
Kafka -->|consume| Reviews
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
26
docs/apps/resources.md
Normal file
26
docs/apps/resources.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# resources
|
||||||
|
|
||||||
|
Ресурсы. Namespace: `resources`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
PM[pm]:::peer
|
||||||
|
Contracts[contracts]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: resources"]
|
||||||
|
Backend[deployment: backend<br/>uwsgi Service]:::comp
|
||||||
|
Cfg{{configmaps:<br/>django, uwsgi}}:::cfg
|
||||||
|
Cfg -.-> Backend
|
||||||
|
end
|
||||||
|
|
||||||
|
PM -->|REST| Backend
|
||||||
|
Contracts -->|REST| Backend
|
||||||
|
Backend --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef cfg fill:#fef3c7,stroke:#92400e,color:#000
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
26
docs/apps/reviews.md
Normal file
26
docs/apps/reviews.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# reviews
|
||||||
|
|
||||||
|
Ревью. Namespace: `reviews`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
RFI[rfi]:::peer
|
||||||
|
Prescr[prescriptions]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: reviews"]
|
||||||
|
App[deployment: reviews<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Kafka -->|consume remarks.events| App
|
||||||
|
App -->|REST| RFI
|
||||||
|
App -->|REST| Prescr
|
||||||
|
App --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
27
docs/apps/rfi.md
Normal file
27
docs/apps/rfi.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# rfi
|
||||||
|
|
||||||
|
Request For Information. Namespace: `rfi`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
DocLink[document-link]:::peer
|
||||||
|
Reviews[reviews]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: rfi"]
|
||||||
|
Frontend[deployment: frontend]:::comp
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
Celery[deployment: celery<br/>worker]:::comp
|
||||||
|
Frontend --> Backend
|
||||||
|
Backend -. tasks .-> Celery
|
||||||
|
end
|
||||||
|
|
||||||
|
Reviews -->|REST| Backend
|
||||||
|
Backend -->|REST| DocLink
|
||||||
|
Backend --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
28
docs/apps/stamp-verification.md
Normal file
28
docs/apps/stamp-verification.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# stamp-verification
|
||||||
|
|
||||||
|
Верификация штампов. Namespace: `stamp-verification`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
RMQ[[RabbitMQ]]:::msg
|
||||||
|
Drawings[drawings]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: stamp-verification"]
|
||||||
|
App[deployment: stamp-verification<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
Drawings -->|REST| App
|
||||||
|
RMQ -->|consume sign.jobs| App
|
||||||
|
App --> PG
|
||||||
|
App -->|signed PDF| S3 --> MinIO
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
26
docs/apps/subscriptions.md
Normal file
26
docs/apps/subscriptions.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# subscriptions
|
||||||
|
|
||||||
|
Подписки и доставка уведомлений. Namespace: `subscriptions`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
MsgHub[message-hub]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: subscriptions"]
|
||||||
|
Backend[deployment: backend<br/>Service]:::comp
|
||||||
|
end
|
||||||
|
|
||||||
|
MsgHub -->|deliver| Backend
|
||||||
|
Kafka -->|consume notify.*| Backend
|
||||||
|
Backend <-->|pub/sub| Redis
|
||||||
|
Backend --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
23
docs/apps/system-log.md
Normal file
23
docs/apps/system-log.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# system-log
|
||||||
|
|
||||||
|
Аудит-журнал. Namespace: `system-log`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Kafka[[Kafka]]:::msg
|
||||||
|
|
||||||
|
subgraph NS["ns: system-log"]
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
Worker[deployment: worker<br/>kafka consumer]:::comp
|
||||||
|
Worker -->|insert| Backend
|
||||||
|
end
|
||||||
|
|
||||||
|
Kafka -->|consume audit.*| Worker
|
||||||
|
Backend --> PG
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef msg fill:#ef4444,stroke:#991b1b,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
31
docs/apps/transmittal.md
Normal file
31
docs/apps/transmittal.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# transmittal
|
||||||
|
|
||||||
|
Комплекты передачи. Namespace: `transmittal`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
S3[S3 Proxy]:::infra
|
||||||
|
MinIO[(MinIO)]:::data
|
||||||
|
CDE[cde]:::peer
|
||||||
|
Docs[documentations]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: transmittal"]
|
||||||
|
Frontend[deployment: frontend]:::comp
|
||||||
|
Backend[deployment: backend<br/>API]:::comp
|
||||||
|
Worker[deployment: worker<br/>bundle assembly]:::comp
|
||||||
|
Frontend --> Backend
|
||||||
|
Backend -. async .-> Worker
|
||||||
|
end
|
||||||
|
|
||||||
|
Backend --> PG
|
||||||
|
Worker -->|bundles| S3 --> MinIO
|
||||||
|
Backend -->|REST| CDE
|
||||||
|
Backend -->|REST| Docs
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
classDef infra fill:#0ea5e9,stroke:#075985,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
27
docs/apps/workspaces.md
Normal file
27
docs/apps/workspaces.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# workspaces
|
||||||
|
|
||||||
|
Рабочие пространства. Namespace: `workspaces`.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
PG[(PostgreSQL)]:::data
|
||||||
|
Redis[(Redis)]:::data
|
||||||
|
CI[control-interface]:::peer
|
||||||
|
Projects[projects]:::peer
|
||||||
|
|
||||||
|
subgraph NS["ns: workspaces"]
|
||||||
|
Frontend[deployment: frontend]:::comp
|
||||||
|
Backend[deployment: backend]:::comp
|
||||||
|
Frontend --> Backend
|
||||||
|
end
|
||||||
|
|
||||||
|
CI -->|REST| Frontend
|
||||||
|
Projects -->|REST| Backend
|
||||||
|
Backend --> PG
|
||||||
|
Backend -->|cache| Redis
|
||||||
|
|
||||||
|
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
|
||||||
|
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
|
||||||
|
classDef data fill:#10b981,stroke:#065f46,color:#fff
|
||||||
|
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue
Block a user