98 lines
10 KiB
XML
98 lines
10 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="640" viewBox="0 0 1200 640" font-family="Inter, 'Segoe UI', Arial, sans-serif">
|
||
<defs>
|
||
<marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 z" fill="#4A4A50"/></marker>
|
||
<marker id="arrow-start" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 z" fill="#4A4A50"/></marker>
|
||
</defs>
|
||
<rect x="0" y="0" width="1200" height="640" fill="#FAFAFB"/>
|
||
<text x="40" y="46" font-size="22" font-weight="600" fill="#1D1D1F" text-anchor="start">AI workflows (Compliance Engine)</text>
|
||
<text x="40" y="72" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Both AI features run in the backend only, start from Result DB rows and are advisory: they never change findings, verdicts or scores.</text>
|
||
<text x="40" y="116" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">A · AI Overview (Client Info › AI Overview)</text>
|
||
<rect x="40" y="132" width="200" height="120" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="54" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Result DB rows</text>
|
||
<text x="54" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">All rows of the</text>
|
||
<text x="54" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">selected timeslot.</text>
|
||
<rect x="270" y="132" width="200" height="120" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="284" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Privacy-safe input</text>
|
||
<text x="284" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">aiOverviewInputJson in</text>
|
||
<text x="284" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">deterministic order.</text>
|
||
<rect x="500" y="132" width="200" height="120" rx="0" fill="#FFFFFF" stroke="#2F6FEB" stroke-width="2"/>
|
||
<text x="514" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">LiteLLM gateway</text>
|
||
<text x="514" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">HTTPS, approved model</text>
|
||
<text x="514" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">alias, no automatic</text>
|
||
<text x="514" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">retries.</text>
|
||
<rect x="730" y="132" width="200" height="120" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="744" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Validate output</text>
|
||
<text x="744" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">JSON schema, known</text>
|
||
<text x="744" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">rule IDs only, length</text>
|
||
<text x="744" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">limits.</text>
|
||
<rect x="960" y="132" width="200" height="120" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="974" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">AI Overview tab</text>
|
||
<text x="974" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Rendered as plain</text>
|
||
<text x="974" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">text. Marked stale</text>
|
||
<text x="974" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">when input changes.</text>
|
||
<path d="M240 192 H268" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M470 192 H498" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M700 192 H728" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M930 192 H958" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<text x="40" y="300" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">B · ISO control mapping (Finding Reader › Map ISO controls, Result DB › Map all)</text>
|
||
<rect x="40" y="316" width="140" height="170" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="54" y="342" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">Result DB row</text>
|
||
<text x="54" y="363" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">One finding or</text>
|
||
<text x="54" y="381" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">a filtered</text>
|
||
<text x="54" y="399" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">batch.</text>
|
||
<rect x="202" y="316" width="140" height="170" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="216" y="342" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">Query builder</text>
|
||
<text x="216" y="363" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">Rule-level</text>
|
||
<text x="216" y="381" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">check text. No</text>
|
||
<text x="216" y="399" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">assets or</text>
|
||
<text x="216" y="417" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">values.</text>
|
||
<rect x="364" y="316" width="140" height="170" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="378" y="342" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">Embedding</text>
|
||
<text x="378" y="363" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">Approved</text>
|
||
<text x="378" y="381" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">embedding</text>
|
||
<text x="378" y="399" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">model.</text>
|
||
<rect x="526" y="316" width="140" height="170" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="540" y="342" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">Qdrant index</text>
|
||
<text x="540" y="363" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">ISO 27001/27002</text>
|
||
<text x="540" y="381" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">corpus. Top 32</text>
|
||
<text x="540" y="399" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">chunks to 8</text>
|
||
<text x="540" y="417" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">controls.</text>
|
||
<rect x="688" y="316" width="140" height="170" rx="0" fill="#FFFFFF" stroke="#2F6FEB" stroke-width="2"/>
|
||
<text x="702" y="342" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">LiteLLM mapper</text>
|
||
<text x="702" y="363" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">Grounded</text>
|
||
<text x="702" y="381" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">proposals from</text>
|
||
<text x="702" y="399" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">retrieved</text>
|
||
<text x="702" y="417" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">controls only.</text>
|
||
<rect x="850" y="316" width="140" height="170" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="864" y="342" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">Accept /</text>
|
||
<text x="864" y="361" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">Reject</text>
|
||
<text x="864" y="382" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">Human decision</text>
|
||
<text x="864" y="400" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">per control.</text>
|
||
<text x="864" y="418" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">First two</text>
|
||
<text x="864" y="436" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">proposals</text>
|
||
<text x="864" y="454" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">auto-accepted.</text>
|
||
<rect x="1012" y="316" width="140" height="170" rx="0" fill="#FFFFFF" stroke="#DCDDE3" stroke-width="1"/>
|
||
<text x="1026" y="342" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">Compliance</text>
|
||
<text x="1026" y="361" font-size="14" font-weight="600" fill="#1D1D1F" text-anchor="start">tables</text>
|
||
<text x="1026" y="382" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">Finding Reader,</text>
|
||
<text x="1026" y="400" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">Client Info</text>
|
||
<text x="1026" y="418" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">tile, Work ISO</text>
|
||
<text x="1026" y="436" font-size="13" font-weight="400" fill="#5F6068" text-anchor="start">facets.</text>
|
||
<path d="M180 400 H200" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M342 400 H362" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M504 400 H524" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M666 400 H686" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M828 400 H848" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<path d="M990 400 H1010" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
|
||
<rect x="40" y="520" width="540" height="92" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
|
||
<rect x="40" y="520" width="4" height="92" fill="#2E9E5B"/>
|
||
<text x="56" y="546" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Sent to AI services</text>
|
||
<text x="56" y="570" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Result DB rows through the privacy-safe export; rule-level check</text>
|
||
<text x="56" y="589" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">text; retrieved ISO corpus excerpts.</text>
|
||
<rect x="620" y="520" width="540" height="92" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
|
||
<rect x="620" y="520" width="4" height="92" fill="#D64545"/>
|
||
<text x="636" y="546" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Never sent</text>
|
||
<text x="636" y="570" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Original files, GPO customer values, host, account and tenant</text>
|
||
<text x="636" y="589" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">names, reviews, evidence, file paths.</text>
|
||
</svg>
|