38 lines
3.7 KiB
XML
38 lines
3.7 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 620" role="img" aria-labelledby="title desc">
|
||
<title id="title">Consumer map для удаления устаревшего API</title>
|
||
<desc id="desc">Схема показывает, как от одного API-контракта расходятся строки потребителей с владельцем, путём миграции, дедлайном, объявлением и границей доказательства. Неизвестный потребитель блокирует автоматическое удаление.</desc>
|
||
<rect width="800" height="620" fill="#0f172a"/>
|
||
<text x="48" y="55" fill="#f8fafc" font-family="Arial, sans-serif" font-size="28" font-weight="700">Consumer map до removal gate</text>
|
||
<text x="48" y="83" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="16">Один контракт → явные поля → отдельная ветка unknown</text>
|
||
|
||
<rect x="48" y="125" width="205" height="132" rx="14" fill="#1d4ed8"/>
|
||
<text x="72" y="162" fill="#dbeafe" font-family="Arial, sans-serif" font-size="15" font-weight="700">API contract</text>
|
||
<text x="72" y="193" fill="#ffffff" font-family="Arial, sans-serif" font-size="20" font-weight="700">v1 POST /posting</text>
|
||
<text x="72" y="220" fill="#dbeafe" font-family="Arial, sans-serif" font-size="15">replacement: v2</text>
|
||
<path d="M253 190 H312" stroke="#93c5fd" stroke-width="4" fill="none"/>
|
||
<path d="M302 180 L320 190 L302 200" stroke="#93c5fd" stroke-width="4" fill="none"/>
|
||
|
||
<rect x="326" y="108" width="418" height="173" rx="14" fill="#172554" stroke="#60a5fa" stroke-width="2"/>
|
||
<text x="352" y="143" fill="#bfdbfe" font-family="Arial, sans-serif" font-size="17" font-weight="700">Строка known consumer</text>
|
||
<line x1="352" y1="158" x2="718" y2="158" stroke="#334155" stroke-width="1"/>
|
||
<text x="352" y="187" fill="#f8fafc" font-family="Arial, sans-serif" font-size="16">owner</text>
|
||
<text x="492" y="187" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="16">migration path</text>
|
||
<text x="352" y="220" fill="#f8fafc" font-family="Arial, sans-serif" font-size="16">deadline</text>
|
||
<text x="492" y="220" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="16">announcement</text>
|
||
<text x="352" y="253" fill="#f8fafc" font-family="Arial, sans-serif" font-size="16">evidence boundary</text>
|
||
<text x="572" y="253" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="16">не итог о population</text>
|
||
|
||
<path d="M150 257 V334 H312" stroke="#94a3b8" stroke-width="4" fill="none"/>
|
||
<path d="M302 324 L320 334 L302 344" stroke="#94a3b8" stroke-width="4" fill="none"/>
|
||
<rect x="326" y="306" width="418" height="122" rx="14" fill="#3f1d3b" stroke="#f472b6" stroke-width="2"/>
|
||
<text x="352" y="344" fill="#fce7f3" font-family="Arial, sans-serif" font-size="18" font-weight="700">Unknown consumer</text>
|
||
<text x="352" y="376" fill="#f8fafc" font-family="Arial, sans-serif" font-size="16">scope не доказан</text>
|
||
<text x="352" y="403" fill="#fbcfe8" font-family="Arial, sans-serif" font-size="16">не превращать в «0 пользователей»</text>
|
||
|
||
<path d="M535 428 V476" stroke="#f472b6" stroke-width="4" fill="none"/>
|
||
<path d="M525 466 L535 484 L545 466" stroke="#f472b6" stroke-width="4" fill="none"/>
|
||
<rect x="100" y="492" width="600" height="80" rx="14" fill="#422006" stroke="#fbbf24" stroke-width="2"/>
|
||
<text x="129" y="527" fill="#fef3c7" font-family="Arial, sans-serif" font-size="20" font-weight="700">Removal gate закрыт</text>
|
||
<text x="129" y="554" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">Нужны human decision, stop condition и restore boundary.</text>
|
||
</svg>
|