Assessor_2.0/docs/images/onboarding/02-import-pipeline.svg

102 lines
10 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 1200 600" 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="600" fill="#FAFAFB"/>
<text x="40" y="46" font-size="22" font-weight="600" fill="#1D1D1F" text-anchor="start">From scan report to stored finding</text>
<text x="40" y="72" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Every import is a two-stage transaction: preview first, save only after the analyst confirms.</text>
<text x="40" y="116" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Preview: parsed in memory, nothing saved yet</text>
<rect x="40" y="132" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="65" cy="153" r="11" fill="#1D1D1F"/>
<text x="65" y="158" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">1</text>
<text x="84" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Upload</text>
<text x="54" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Data Hub › client ›</text>
<text x="54" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Import Data. Up to 50</text>
<text x="54" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">files, 100 MiB each.</text>
<rect x="270" y="132" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="295" cy="153" r="11" fill="#1D1D1F"/>
<text x="295" y="158" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">2</text>
<text x="314" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Isolated worker</text>
<text x="284" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Parser runs with time</text>
<text x="284" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">and memory limits.</text>
<text x="284" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Active content never</text>
<text x="284" y="239" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">runs.</text>
<rect x="500" y="132" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="525" cy="153" r="11" fill="#1D1D1F"/>
<text x="525" y="158" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">3</text>
<text x="544" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Format parser</text>
<text x="514" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">HTML, XML, JSON, CSV,</text>
<text x="514" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Excel to one</text>
<text x="514" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">ImportDocument with</text>
<text x="514" y="239" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">source positions.</text>
<rect x="730" y="132" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="755" cy="153" r="11" fill="#1D1D1F"/>
<text x="755" y="158" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">4</text>
<text x="774" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Recognition</text>
<text x="744" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Detects the tool,</text>
<text x="744" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">relevant tables and</text>
<text x="744" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">field roles, with a</text>
<text x="744" y="239" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">confidence score.</text>
<rect x="960" y="132" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="985" cy="153" r="11" fill="#1D1D1F"/>
<text x="985" y="158" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">5</text>
<text x="1004" y="158" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Scanner profile</text>
<text x="974" y="182" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Maps fields, status,</text>
<text x="974" y="201" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">severity, first-read</text>
<text x="974" y="220" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">and native score of</text>
<text x="974" y="239" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">that tool.</text>
<path d="M240 207 H268" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<path d="M470 207 H498" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<path d="M700 207 H728" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<path d="M930 207 H958" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<path d="M960 282 V342 H140 V378" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<rect x="427.4" y="332" width="245.20000000000002" height="20" fill="#FAFAFB"/>
<text x="550" y="347" font-size="14" font-weight="400" fill="#1D1D1F" text-anchor="middle">analyst confirms the selection</text>
<text x="40" y="318" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Commit: one atomic repository transaction</text>
<rect x="40" y="380" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="65" cy="401" r="11" fill="#1D1D1F"/>
<text x="65" y="406" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">6</text>
<text x="84" y="406" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Preview review</text>
<text x="54" y="430" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Tool, confidence,</text>
<text x="54" y="449" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">warnings, unmapped</text>
<text x="54" y="468" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">fields, SHA-256</text>
<text x="54" y="487" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">duplicates.</text>
<rect x="270" y="380" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="295" cy="401" r="11" fill="#1D1D1F"/>
<text x="295" y="406" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">7</text>
<text x="314" y="406" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Canonical model</text>
<text x="284" y="430" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Definitions and</text>
<text x="284" y="449" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">occurrences. Original</text>
<text x="284" y="468" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">and normalized values</text>
<text x="284" y="487" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">side by side.</text>
<rect x="500" y="380" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="525" cy="401" r="11" fill="#1D1D1F"/>
<text x="525" y="406" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">8</text>
<text x="544" y="406" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Atomic commit</text>
<text x="514" y="430" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">One DB transaction,</text>
<text x="514" y="449" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">one revision. No</text>
<text x="514" y="468" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">partial imports on</text>
<text x="514" y="487" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">error.</text>
<rect x="730" y="380" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="755" cy="401" r="11" fill="#1D1D1F"/>
<text x="755" y="406" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">9</text>
<text x="774" y="406" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">PostgreSQL</text>
<text x="744" y="430" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">System of record. Full</text>
<text x="744" y="449" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">canonical object plus</text>
<text x="744" y="468" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">relational keys.</text>
<rect x="960" y="380" width="200" height="150" rx="0" fill="#F5F5F7" stroke="#DCDDE3" stroke-width="1"/>
<circle cx="985" cy="401" r="11" fill="#1D1D1F"/>
<text x="985" y="406" font-size="12" font-weight="600" fill="#FFFFFF" text-anchor="middle">10</text>
<text x="1004" y="406" font-size="16" font-weight="600" fill="#1D1D1F" text-anchor="start">Read models</text>
<text x="974" y="430" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">Unified results, Work</text>
<text x="974" y="449" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">sheets, Result DB rows</text>
<text x="974" y="468" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">rebuilt and checked.</text>
<path d="M240 455 H268" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<path d="M470 455 H498" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<path d="M700 455 H728" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<path d="M930 455 H958" fill="none" stroke="#4A4A50" stroke-width="2" marker-end="url(#arrow)"/>
<text x="40" y="566" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">GPO backups take a parallel path through the GPO inventory worker and the baseline comparison (next diagram). A reimport must be</text>
<text x="40" y="585" font-size="14" font-weight="400" fill="#5F6068" text-anchor="start">byte-identical to the original files (SHA-256) and keeps all reviews and accepted risks.</text>
</svg>