152 lines
96 KiB
HTML
152 lines
96 KiB
HTML
<!doctype html>
|
||
<html lang="ru"><meta charset="utf-8">
|
||
<title>СДЕ Sarex — типовой контур (пример)</title>
|
||
<style>
|
||
body { font-family: system-ui, sans-serif; margin: 0 auto; padding: 24px; max-width: 1760px;
|
||
background:#fafafa; color:#111; }
|
||
h1 { font-size: 22px; } h2 { font-size: 16px; margin: 32px 0 4px; }
|
||
.doc { color:#555; font-size:13px; margin:0 0 10px; max-width:900px; }
|
||
section { background:#fff; border:1px solid #ddd; border-radius:6px; padding:14px; margin-bottom:18px;
|
||
overflow-x:auto; }
|
||
svg { width:100%; height:auto; min-width:700px; }
|
||
.legend { font-size:13px; color:#444; }
|
||
.legend code { background:#eee; padding:1px 5px; border-radius:3px; }
|
||
</style>
|
||
<h1>СДЕ Sarex — типовой контур (пример)</h1>
|
||
<p class="legend">Автогенерация из <code>example-technology.archimate</code>. Зелёный — технологический слой,
|
||
голубой — прикладной. Пунктир с полым треугольником — realization, стрелка — serving,
|
||
ромб — composition, линия с шариком — assignment.</p>
|
||
<section><h2>T1. Технологический слой</h2><p class="doc">Что развёрнуто в кластере и какие технологические сервисы это даёт. Приложения-потребители вынесены в отдельные представления T2 и далее.</p><svg viewBox="0 0 1695 670" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="239" y1="90" x2="174" y2="185" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="138" y1="185" x2="105" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="325" y1="185" x2="150" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="549" y1="185" x2="329" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="773" y1="185" x2="500" y2="87" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="1000" y1="186" x2="665" y2="83" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="231" y1="285" x2="685" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="461" y1="285" x2="859" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="691" y1="285" x2="1032" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="921" y1="285" x2="1206" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="782" y1="385" x2="1357" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="1514" y1="140" x2="1555" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="1320" y1="272" x2="260" y2="315" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1320" y1="352" x2="1290" y2="351" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1320" y1="448" x2="1290" y2="443" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="168" y1="570" x2="152" y2="255" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#filled)" marker-start="url(#ball)"/><rect x="20" y="140" width="1270" height="400" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="30" y="160" font-size="13" font-weight="600" fill="#1a3a1a">Кластер k8s-prod</text><rect x="40" y="385" width="1230" height="130" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="50" y="405" font-size="13" font-weight="600" fill="#1a3a1a">Camunda Platform</text><rect x="1320" y="410" width="330" height="130" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="475" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">registry.example.com</text><rect x="1320" y="140" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="175" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">s3.example.com — объектное хранилище</text><rect x="1320" y="230" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Сетевое хранилище (StorageClass)</text><rect x="1320" y="320" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="355" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Git-сервер контура</text><rect x="20" y="570" width="300" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="170.0" y="600" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">frontend-node-01</text><rect x="40" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Ingress Gateway</text><rect x="280" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="390.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Service Mesh</text><rect x="520" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="630.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cert-manager</text><rect x="760" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="870.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zitadel</text><rect x="1000" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1110.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Vault + Agent Injector</text><rect x="40" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">PostgreSQL</text><rect x="280" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="390.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Redis</text><rect x="520" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="630.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kafka</text><rect x="760" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="870.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">RabbitMQ</text><rect x="50" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="131.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zeebe</text><rect x="224" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="305.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zeebe Gateway</text><rect x="398" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="479.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Operate</text><rect x="572" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="653.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Tasklist</text><rect x="746" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="827.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Optimize</text><rect x="920" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1001.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Identity</text><rect x="1094" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1175.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Connectors</text><rect x="20" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="95.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="95.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="185" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="260.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Выпуск</text><text x="260.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">TLS-сертификатов</text><rect x="350" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="425.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="515" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="590.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="680" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="755.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="845" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="920.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="1010" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1085.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="1175" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1250.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений</text><text x="1250.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">AMQP</text><rect x="1340" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1415.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Оркестрация процессов</text><text x="1415.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">BPMN</text><rect x="1505" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1580.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="1335" y="460" width="145" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1407.5" y="490" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Helm-чарты (OCI)</text><rect x="1490" y="460" width="145" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1562.5" y="490" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Образы контейнеров</text></svg></section><section><h2>T2. Развёртывание по узлам</h2><p class="doc">Какие группы узлов какие компоненты несут. Вложенность заменяет стрелки: хост внутри группы — composition, приложение — assignment, системное ПО — aggregation. Имена хостов заданы в профиле контура.</p><svg viewBox="0 0 1598 1018" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><rect x="450" y="20" width="1108" height="958" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="460" y="40" font-size="13" font-weight="600" fill="#1a3a1a">Группа узлов generic (Сервера приложений)</text><rect x="20" y="416" width="400" height="360" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="30" y="436" font-size="13" font-weight="600" fill="#1a3a1a">Группа узлов K8s (Поддерживающая инфраструктура)</text><rect x="20" y="20" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="76" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Группа узлов processing (Сервера приложений)</text><rect x="20" y="152" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="208" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="284" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="340" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Группа узлов DB (Базы данных)</text><rect x="20" y="796" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="852" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Репозиторий компонентов</text><rect x="20" y="928" width="400" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="953" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">CAD ферма</text><rect x="34" y="54" width="180" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="124.0" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="34" y="186" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="204" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">s3.example.com —</text><text x="124.0" y="219" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">объектное хранилище</text><rect x="34" y="318" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="343" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">PostgreSQL</text><rect x="34" y="450" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="475" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Ingress Gateway</text><rect x="229" y="450" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="475" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Service Mesh</text><rect x="34" y="512" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="537" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cert-manager</text><rect x="229" y="512" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="537" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zitadel</text><rect x="34" y="574" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="599" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Vault + Agent Injector</text><rect x="229" y="574" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="599" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Redis</text><rect x="34" y="636" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="661" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kafka</text><rect x="229" y="636" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="661" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">RabbitMQ</text><rect x="34" y="698" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="723" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Camunda Platform</text><rect x="34" y="830" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="855" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">registry.example.com</text><rect x="229" y="830" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="855" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Git-сервер контура</text><rect x="464" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="644" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">auth-flow</text><rect x="824" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="1004" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="1184" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="1364" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="464" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="644" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">control-interface</text><rect x="824" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cross-section</text><rect x="1004" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="1184" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">document-link</text><rect x="1364" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="464" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="644" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="824" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">faas</text><rect x="1004" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="1184" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="1364" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="464" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="644" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="824" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="1004" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="1184" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="1364" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="464" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">prescriptions</text><rect x="644" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">projects</text><rect x="824" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="1004" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="1184" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="1364" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">stamp-verification</text><rect x="464" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="644" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="824" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="1004" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T3. Потребители: Маршрутизация HTTPS-трафика</h2><p class="doc">21 из 35 приложений контура. Связи выведены из манифестов приложений.</p><svg viewBox="0 0 1180 485" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="600" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация HTTPS-трафика</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Ingress Gateway</text><rect x="600" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="730.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Service Mesh</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">auth-flow</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">control-interface</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">document-link</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">stamp-verification</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T4. Потребители: Аутентификация OIDC</h2><p class="doc">24 из 35 приложений контура. Связи выведены из манифестов; 14 из них подтверждаются только документацией сервиса — значения приходят из k8s-секретов и в конфигах не видны.</p><svg viewBox="0 0 1180 485" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="193" y1="80" x2="636" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="208" y1="80" x2="811" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="224" y1="80" x2="987" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zitadel</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">auth-flow</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">control-interface</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cross-section</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">prescriptions</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">projects</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="590" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="780" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="970" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T5. Потребители: Управление секретами</h2><p class="doc">25 из 35 приложений контура. Связи выведены из манифестов приложений.</p><svg viewBox="0 0 1180 565" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="193" y1="80" x2="636" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="208" y1="80" x2="811" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="224" y1="80" x2="987" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="147" y1="80" x2="108" y2="470" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Vault + Agent Injector</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="590" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="780" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="970" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="20" y="470" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="498" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T6. Потребители: Реляционное хранилище</h2><p class="doc">23 из 35 приложений контура. Связи выведены из манифестов приложений.</p><svg viewBox="0 0 1180 485" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="193" y1="80" x2="636" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="208" y1="80" x2="811" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">PostgreSQL</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="590" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="780" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T7. Потребители: Кэш</h2><p class="doc">5 из 35 приложений контура. Связи выведены из манифестов; 2 из них подтверждаются только документацией сервиса — значения приходят из k8s-секретов и в конфигах не видны.</p><svg viewBox="0 0 990 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Redis</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text></svg></section><section><h2>T8. Потребители: Событийная шина</h2><p class="doc">13 из 35 приложений контура. Связи выведены из манифестов; 1 из них подтверждаются только документацией сервиса — значения приходят из k8s-секретов и в конфигах не видны.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kafka</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text></svg></section><section><h2>T9. Потребители: Очередь сообщений AMQP</h2><p class="doc">12 из 35 приложений контура. Связи выведены из манифестов; 1 из них подтверждаются только документацией сервиса — значения приходят из k8s-секретов и в конфигах не видны.</p><svg viewBox="0 0 1180 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">RabbitMQ</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text></svg></section><section><h2>T10. Потребители: Оркестрация процессов BPMN</h2><p class="doc">1 из 35 приложений контура. Связи выведены из манифестов; 1 из них подтверждаются только документацией сервиса — значения приходят из k8s-секретов и в конфигах не видны.</p><svg viewBox="0 0 620 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Оркестрация процессов BPMN</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Camunda Platform</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text></svg></section><section><h2>T11. Потребители: Объектное хранилище</h2><p class="doc">15 из 35 приложений контура. Связи выведены из манифестов; 2 из них подтверждаются только документацией сервиса — значения приходят из k8s-секретов и в конфигах не видны.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">s3.example.com — объектное хранилище</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text></svg></section>
|
||
</html> |