<mxfile host="app.diagrams.net" modified="2026-10-25T00:00:00.000Z" agent="OpenAI Codex" version="24.7.17" type="device"><diagram id="designing-secure-rag" name="Designing Secure RAG Systems"><mxGraphModel dx="1440" dy="920" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1440" pageHeight="920" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="s1" value="GOVERNED KNOWLEDGE PATH" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fffefa;fillOpacity=45;strokeColor=#222222;strokeWidth=2;dashed=1;dashPattern=8 6;fontColor=#676761;fontSize=14;fontStyle=1;verticalAlign=top;spacingTop=12;" vertex="1" parent="1"><mxGeometry x="54" y="185" width="1332" height="440" as="geometry"/></mxCell><mxCell id="sources" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;01 · SOURCE&lt;/small&gt;&lt;br&gt;&lt;b&gt;Enterprise&lt;br&gt;sources&lt;/b&gt;&lt;br&gt;Documents · tickets&lt;br&gt;Policies · records&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#efeee9;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="90" y="355" width="210" height="118" as="geometry"/></mxCell><mxCell id="ingest" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;02 · INGEST&lt;/small&gt;&lt;br&gt;&lt;b&gt;Validate and&lt;br&gt;classify&lt;/b&gt;&lt;br&gt;Provenance · scanning&lt;br&gt;Sensitivity metadata&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e4efe7;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="350" y="355" width="220" height="118" as="geometry"/></mxCell><mxCell id="auth" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;04 · AUTHORIZE&lt;/small&gt;&lt;br&gt;&lt;b&gt;Permission-aware&lt;br&gt;retrieval&lt;/b&gt;&lt;br&gt;Tenant and user filters&lt;br&gt;Before model context&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e2edf5;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="890" y="355" width="210" height="118" as="geometry"/></mxCell><mxCell id="search" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;03 · INDEX&lt;/small&gt;&lt;br&gt;&lt;b&gt;Search index&lt;/b&gt;&lt;br&gt;Hybrid retrieval&lt;br&gt;Trusted source links&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6edcf;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="620" y="355" width="220" height="118" as="geometry"/></mxCell><mxCell id="answer" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;05 · RESPOND&lt;/small&gt;&lt;br&gt;&lt;b&gt;Grounded&lt;br&gt;answer&lt;/b&gt;&lt;br&gt;Citations · audit&lt;br&gt;Output checks&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f4e2df;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="1150" y="355" width="200" height="118" as="geometry"/></mxCell><mxCell id="control" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;CONTROL PLANE&lt;/small&gt;&lt;br&gt;&lt;b&gt;Identity · tenant isolation · immutable logs&lt;/b&gt;&lt;br&gt;Security controls span ingestion, retrieval, generation, and review.&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#efeee9;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="345" y="690" width="750" height="96" as="geometry"/></mxCell><mxCell id="e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="sources" target="ingest"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="ingest" target="search"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="search" target="auth"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="auth" target="answer"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;dashed=1;dashPattern=8 6;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="auth" target="control"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;dashed=1;dashPattern=8 6;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="answer" target="control"><mxGeometry relative="1" as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>