This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 1220" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Граница между настройкой и секретом</title>
|
||||
<desc id="desc">Вертикальная схема показывает четыре поверхности: репозиторий хранит имена и шаблон, delivery передаёт значение отдельно, runtime валидирует его, а лог получает только маску.</desc>
|
||||
<rect width="720" height="1220" rx="32" fill="#f8fafc"/>
|
||||
<text x="360" y="58" text-anchor="middle" font-family="Arial, sans-serif" font-size="30" font-weight="700" fill="#172033">Граница настройки и секрета</text>
|
||||
<text x="360" y="92" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" fill="#475569">У каждого значения — свой допустимый носитель</text>
|
||||
<g font-family="Arial, sans-serif">
|
||||
<rect x="58" y="140" width="604" height="178" rx="24" fill="#e0f2fe" stroke="#38bdf8" stroke-width="3"/>
|
||||
<text x="94" y="188" font-size="28" font-weight="700" fill="#0c4a6e">1. Репозиторий</text>
|
||||
<text x="94" y="232" font-size="22" fill="#0c4a6e">Имена, описание, шаблон</text>
|
||||
<text x="94" y="266" font-size="22" fill="#0c4a6e">Только фиктивные defaults</text>
|
||||
<text x="94" y="296" font-size="20" fill="#075985">Секрет сюда не попадает</text>
|
||||
<path d="M360 318 L360 374" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="386" width="604" height="178" rx="24" fill="#dcfce7" stroke="#4ade80" stroke-width="3"/>
|
||||
<text x="94" y="434" font-size="28" font-weight="700" fill="#14532d">2. Delivery</text>
|
||||
<text x="94" y="478" font-size="22" fill="#14532d">Защищённая переменная или файл</text>
|
||||
<text x="94" y="512" font-size="22" fill="#14532d">Есть владелец смены</text>
|
||||
<text x="94" y="542" font-size="20" fill="#166534">Не печатаем value в job</text>
|
||||
<path d="M360 564 L360 620" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="632" width="604" height="178" rx="24" fill="#fef3c7" stroke="#fbbf24" stroke-width="3"/>
|
||||
<text x="94" y="680" font-size="28" font-weight="700" fill="#78350f">3. Runtime</text>
|
||||
<text x="94" y="724" font-size="22" fill="#78350f">Loader проверяет обязательные имена</text>
|
||||
<text x="94" y="758" font-size="22" fill="#78350f">Процесс получает нужное значение</text>
|
||||
<text x="94" y="788" font-size="20" fill="#92400e">Пустой ключ останавливает запуск</text>
|
||||
<path d="M360 810 L360 866" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="878" width="604" height="178" rx="24" fill="#fae8ff" stroke="#e879f9" stroke-width="3"/>
|
||||
<text x="94" y="926" font-size="28" font-weight="700" fill="#701a75">4. Лог и поддержка</text>
|
||||
<text x="94" y="970" font-size="22" fill="#701a75">Имя переменной и request ID</text>
|
||||
<text x="94" y="1004" font-size="22" fill="#701a75">Значение заменено на [REDACTED]</text>
|
||||
<text x="94" y="1034" font-size="20" fill="#86198f">Диагностика без копии секрета</text>
|
||||
</g>
|
||||
<rect x="58" y="1100" width="604" height="66" rx="16" fill="#e2e8f0"/>
|
||||
<text x="360" y="1140" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" font-weight="700" fill="#334155">Секрет нужен процессу, а не всем артефактам</text>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto"><path d="M0 0 L10 5 L0 10 Z" fill="#64748b"/></marker>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,37 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 1260" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Путь конфигурации до работающего процесса</title>
|
||||
<desc id="desc">Вертикальная схема проводит настройку от шаблона в репозитории через delivery и loader до runtime, оставляя в диагностике только безопасный отчёт.</desc>
|
||||
<rect width="720" height="1260" rx="32" fill="#f8fafc"/>
|
||||
<text x="360" y="58" text-anchor="middle" font-family="Arial, sans-serif" font-size="30" font-weight="700" fill="#172033">Путь настройки до процесса</text>
|
||||
<text x="360" y="92" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" fill="#475569">Сборка и запуск не получают одинаковый набор данных</text>
|
||||
<g font-family="Arial, sans-serif">
|
||||
<rect x="58" y="140" width="604" height="164" rx="24" fill="#e0f2fe" stroke="#38bdf8" stroke-width="3"/>
|
||||
<text x="94" y="188" font-size="28" font-weight="700" fill="#0c4a6e">Версия в Git</text>
|
||||
<text x="94" y="232" font-size="22" fill="#0c4a6e">config.example.env</text>
|
||||
<text x="94" y="266" font-size="22" fill="#0c4a6e">Имена и безопасные defaults</text>
|
||||
<path d="M360 304 L360 352" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="364" width="604" height="164" rx="24" fill="#dcfce7" stroke="#4ade80" stroke-width="3"/>
|
||||
<text x="94" y="412" font-size="28" font-weight="700" fill="#14532d">Delivery контур</text>
|
||||
<text x="94" y="456" font-size="22" fill="#14532d">Подаёт требуемые значения</text>
|
||||
<text x="94" y="490" font-size="22" fill="#14532d">Не выводит token в журнал</text>
|
||||
<path d="M360 528 L360 576" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="588" width="604" height="164" rx="24" fill="#fef3c7" stroke="#fbbf24" stroke-width="3"/>
|
||||
<text x="94" y="636" font-size="28" font-weight="700" fill="#78350f">Config loader</text>
|
||||
<text x="94" y="680" font-size="22" fill="#78350f">Проверяет имена и формат</text>
|
||||
<text x="94" y="714" font-size="22" fill="#78350f">Отказывает до первого запроса</text>
|
||||
<path d="M360 752 L360 800" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="812" width="604" height="164" rx="24" fill="#fae8ff" stroke="#e879f9" stroke-width="3"/>
|
||||
<text x="94" y="860" font-size="28" font-weight="700" fill="#701a75">Рабочий процесс</text>
|
||||
<text x="94" y="904" font-size="22" fill="#701a75">Получает явный config object</text>
|
||||
<text x="94" y="938" font-size="22" fill="#701a75">Не читает process.env повсюду</text>
|
||||
<path d="M360 976 L360 1024" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="1036" width="604" height="142" rx="24" fill="#ede9fe" stroke="#a78bfa" stroke-width="3"/>
|
||||
<text x="94" y="1084" font-size="28" font-weight="700" fill="#4c1d95">Безопасный отчёт</text>
|
||||
<text x="94" y="1128" font-size="22" fill="#4c1d95">Имя, revision, [REDACTED]</text>
|
||||
</g>
|
||||
<rect x="58" y="1202" width="604" height="38" rx="12" fill="#e2e8f0"/>
|
||||
<text x="360" y="1228" text-anchor="middle" font-family="Arial, sans-serif" font-size="20" font-weight="700" fill="#334155">Секрет не должен стать входом сборки или лога</text>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto"><path d="M0 0 L10 5 L0 10 Z" fill="#64748b"/></marker>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,38 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 1300" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Маршрут ротации утёкшего секрета</title>
|
||||
<desc id="desc">Вертикальная схема показывает, что после обнаружения утечки команда ограничивает распространение, создаёт замену, обновляет потребителей, отзывает старое значение и только затем закрывает follow-up.</desc>
|
||||
<rect width="720" height="1300" rx="32" fill="#f8fafc"/>
|
||||
<text x="360" y="58" text-anchor="middle" font-family="Arial, sans-serif" font-size="30" font-weight="700" fill="#172033">Ротация без ложного исправления</text>
|
||||
<text x="360" y="92" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" fill="#475569">Удалить строку недостаточно, пока старая пара активна</text>
|
||||
<g font-family="Arial, sans-serif">
|
||||
<rect x="58" y="140" width="604" height="156" rx="24" fill="#fee2e2" stroke="#f87171" stroke-width="3"/>
|
||||
<text x="94" y="188" font-size="28" font-weight="700" fill="#7f1d1d">1. Обнаружить</text>
|
||||
<text x="94" y="232" font-size="22" fill="#7f1d1d">ID incident, имя, носитель</text>
|
||||
<text x="94" y="264" font-size="20" fill="#991b1b">Не копировать value в issue</text>
|
||||
<path d="M360 296 L360 340" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="352" width="604" height="156" rx="24" fill="#fef3c7" stroke="#fbbf24" stroke-width="3"/>
|
||||
<text x="94" y="400" font-size="28" font-weight="700" fill="#78350f">2. Ограничить</text>
|
||||
<text x="94" y="444" font-size="22" fill="#78350f">Остановить новый вывод в лог</text>
|
||||
<text x="94" y="476" font-size="20" fill="#92400e">Собрать consumers по имени</text>
|
||||
<path d="M360 508 L360 552" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="564" width="604" height="156" rx="24" fill="#dcfce7" stroke="#4ade80" stroke-width="3"/>
|
||||
<text x="94" y="612" font-size="28" font-weight="700" fill="#14532d">3. Заменить</text>
|
||||
<text x="94" y="656" font-size="22" fill="#14532d">Новая пара через delivery</text>
|
||||
<text x="94" y="688" font-size="20" fill="#166534">Проверить каждого consumer</text>
|
||||
<path d="M360 720 L360 764" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="776" width="604" height="156" rx="24" fill="#e0f2fe" stroke="#38bdf8" stroke-width="3"/>
|
||||
<text x="94" y="824" font-size="28" font-weight="700" fill="#0c4a6e">4. Отозвать старое</text>
|
||||
<text x="94" y="868" font-size="22" fill="#0c4a6e">После проверки или окна простоя</text>
|
||||
<text x="94" y="900" font-size="20" fill="#075985">Фиксировать время revoke</text>
|
||||
<path d="M360 932 L360 976" stroke="#64748b" stroke-width="6" marker-end="url(#arrow)"/>
|
||||
<rect x="58" y="988" width="604" height="156" rx="24" fill="#fae8ff" stroke="#e879f9" stroke-width="3"/>
|
||||
<text x="94" y="1036" font-size="28" font-weight="700" fill="#701a75">5. Проверить следы</text>
|
||||
<text x="94" y="1080" font-size="22" fill="#701a75">Git, image, job, diagnostic path</text>
|
||||
<text x="94" y="1112" font-size="20" fill="#86198f">Добавить redaction test</text>
|
||||
</g>
|
||||
<rect x="58" y="1190" width="604" height="62" rx="16" fill="#e2e8f0"/>
|
||||
<text x="360" y="1228" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" font-weight="700" fill="#334155">Cleanup не заменяет revoke</text>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto"><path d="M0 0 L10 5 L0 10 Z" fill="#64748b"/></marker>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
Reference in New Issue
Block a user