@minded-ai/mindedjs 3.0.4-beta.3 → 3.0.6-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +6 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/validateFlow.d.ts +47 -0
- package/dist/cli/validateFlow.d.ts.map +1 -0
- package/dist/cli/validateFlow.js +454 -0
- package/dist/cli/validateFlow.js.map +1 -0
- package/dist/playbooks/playbooks.d.ts +2 -1
- package/dist/playbooks/playbooks.d.ts.map +1 -1
- package/dist/playbooks/playbooks.js +8 -2
- package/dist/playbooks/playbooks.js.map +1 -1
- package/docs/.gitbook/assets/agent-lifecycle-security.svg +4 -0
- package/docs/.gitbook/assets/credentials-lifecycle.svg +4 -0
- package/docs/.gitbook/assets/rpa-execution-flow.svg +4 -0
- package/docs/.gitbook/assets/system-overview.svg +4 -0
- package/docs/.gitbook/assets/tenant-isolation-overview.svg +4 -0
- package/docs/SUMMARY.md +1 -0
- package/docs/platform/security-architecture.md +343 -0
- package/package.json +2 -1
- package/src/cli/index.ts +5 -1
- package/src/cli/validateFlow.ts +502 -0
- package/src/playbooks/playbooks.ts +10 -3
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!-- Do not edit this file with editors other than draw.io -->
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="350px" height="1285px" viewBox="0 0 350 1285" content="<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" version="29.2.7"> <diagram name="Architecture Overview" id="lUb2Yy0VcGrDcHUANlMM"> <mxGraphModel dx="1426" dy="683" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="qiHXacqECXXAYTJ9b62k-160" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;align=center;verticalAlign=middle;fontSize=16;labelBackgroundColor=none;" value="&lt;b&gt;AGENT LIFECYCLE&lt;/b&gt;" vertex="1"> <mxGeometry height="40" width="280" x="683.5" y="140" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-161" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;" value="&lt;ul style=&quot;padding-left: 10px;&quot;&gt;&lt;li&gt;Pull latest vetted image&lt;/li&gt;&lt;li&gt;Scan for vulnerabilities&lt;/li&gt;&lt;li&gt;Apply security patches&lt;/li&gt;&lt;li&gt;Configure network policies&lt;/li&gt;&lt;li&gt;Set resource limits&lt;/li&gt;&lt;li&gt;Initialize audit logging&lt;/li&gt;&lt;/ul&gt;" vertex="1"> <mxGeometry height="140" width="242" x="708" y="240" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-162" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;" value="&lt;ul style=&quot;padding-left: 10px;&quot;&gt;&lt;li&gt;Load security policies&lt;/li&gt;&lt;li&gt;Establish secure connection&lt;/li&gt;&lt;li&gt;Verify agent identity&lt;/li&gt;&lt;li&gt;Fetch encrypted credentials&lt;/li&gt;&lt;li&gt;Initialize monitoring agent&lt;/li&gt;&lt;li&gt;Register with orchestrator&lt;/li&gt;&lt;/ul&gt;" vertex="1"> <mxGeometry height="130" width="241" x="709" y="445" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-163" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;" value="&lt;ul style=&quot;padding-left: 10px;&quot;&gt;&lt;li&gt;Execute flows&lt;/li&gt;&lt;li&gt;All actions validated&lt;/li&gt;&lt;li&gt;Continuous monitoring&lt;/li&gt;&lt;li&gt;Health checks&lt;/li&gt;&lt;li&gt;Log all operations&lt;/li&gt;&lt;li&gt;Resource usage tracking&lt;/li&gt;&lt;/ul&gt;" vertex="1"> <mxGeometry height="130" width="242" x="708" y="632" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-164" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;" value="[Idle Timeout]" vertex="1"> <mxGeometry height="20" width="100" x="861" y="792" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-165" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=2;fontSize=16;labelBackgroundColor=none;" value="Graceful shutdown" vertex="1"> <mxGeometry height="20" width="139" x="861" y="829" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-166" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;" value="[Task Complete]" vertex="1"> <mxGeometry height="20" width="117" x="863" y="875" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-167" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=2;fontSize=16;labelBackgroundColor=none;" value="Cleanup &amp;amp; shutdown" vertex="1"> <mxGeometry height="20" width="157" x="863" y="913" as="geometry" /> </mxCell> <mxCell id="Aohr6ZUG_8G47jTySdQy-1" edge="1" parent="1" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=16;" value=""> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="892" y="994" /> </Array> <mxPoint x="892" y="984" as="sourcePoint" /> <mxPoint x="892" y="1010" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-168" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;" value="[Security Violation]" vertex="1"> <mxGeometry height="20" width="136" x="862" y="966" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-169" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=2;fontSize=16;labelBackgroundColor=none;" value="Immediate shutdown" vertex="1"> <mxGeometry height="20" width="158" x="860" y="1007" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-170" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;" value="&lt;ul style=&quot;padding-left: 10px;&quot;&gt;&lt;li&gt;Clear credentials from memory&lt;/li&gt;&lt;li&gt;Flush logs to storage&lt;/li&gt;&lt;li&gt;Terminate active connections&lt;/li&gt;&lt;li&gt;Delete temporary files&lt;/li&gt;&lt;li&gt;Release resources&lt;/li&gt;&lt;li&gt;Notify orchestrator&lt;/li&gt;&lt;/ul&gt;" vertex="1"> <mxGeometry height="170" width="243" x="707" y="1077" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-171" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;" value="&lt;ul style=&quot;padding-left: 10px;&quot;&gt;&lt;li&gt;Destroy pod/container&lt;/li&gt;&lt;li&gt;Remove ephemeral storage&lt;/li&gt;&lt;li&gt;Verify no data leakage&lt;/li&gt;&lt;li&gt;Archive audit logs&lt;/li&gt;&lt;li&gt;Update metrics&lt;/li&gt;&lt;/ul&gt;" vertex="1"> <mxGeometry height="120" width="244" x="706" y="1300" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-172" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-161" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=16;labelBackgroundColor=none;" target="qiHXacqECXXAYTJ9b62k-162" value=""> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-173" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-162" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=16;labelBackgroundColor=none;" target="qiHXacqECXXAYTJ9b62k-163" value=""> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-174" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-163" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;" target="qiHXacqECXXAYTJ9b62k-170" value=""> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-175" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=16;labelBackgroundColor=none;" target="qiHXacqECXXAYTJ9b62k-171" value=""> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-178" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;" value=""> <mxGeometry height="50" relative="1" width="50" as="geometry"> <mxPoint x="830" y="977" as="sourcePoint" /> <mxPoint x="863" y="977" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-238" parent="1" style="text;whiteSpace=wrap;html=1;fontColor=default;labelBackgroundColor=none;fontSize=16;" value="&lt;span style=&quot;font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;[1] PROVISIONING&lt;/span&gt;" vertex="1"> <mxGeometry height="40" width="160" x="680" y="210" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-239" parent="1" style="text;whiteSpace=wrap;html=1;fontSize=16;labelBackgroundColor=none;" value="&lt;span style=&quot;font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;&lt;font&gt;[2] INITIALIZATION&lt;/font&gt;&lt;/span&gt;" vertex="1"> <mxGeometry height="40" width="160" x="670" y="413" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-240" parent="1" style="text;whiteSpace=wrap;html=1;fontSize=16;labelBackgroundColor=none;" value="&lt;b style=&quot;forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;&quot;&gt;&lt;font&gt;[3] ACTIVE STATE&lt;/font&gt;&lt;/b&gt;" vertex="1"> <mxGeometry height="40" width="140" x="680" y="593" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-241" parent="1" style="text;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=default;fontSize=16;" value="&lt;b style=&quot;forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;&quot;&gt;[4] SHUTDOWN&lt;/b&gt;&lt;br align=&quot;left&quot; style=&quot;forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;&quot;&gt;" vertex="1"> <mxGeometry height="40" width="130" x="680" y="1039" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-242" parent="1" style="text;whiteSpace=wrap;html=1;fontSize=16;labelBackgroundColor=none;" value="&lt;b style=&quot;forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;&quot;&gt;&lt;font&gt;[5] CLEANUP&lt;/font&gt;&lt;/b&gt;" vertex="1"> <mxGeometry height="40" width="110" x="680" y="1260" as="geometry" /> </mxCell> <mxCell id="Aohr6ZUG_8G47jTySdQy-3" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;" value=""> <mxGeometry height="50" relative="1" width="50" as="geometry"> <mxPoint x="830" y="888" as="sourcePoint" /> <mxPoint x="865" y="888" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="Aohr6ZUG_8G47jTySdQy-4" edge="1" parent="1" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=16;" value=""> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="890" y="903" /> </Array> <mxPoint x="890" y="893" as="sourcePoint" /> <mxPoint x="890" y="919" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="Aohr6ZUG_8G47jTySdQy-5" edge="1" parent="1" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=16;" value=""> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="889" y="820" /> </Array> <mxPoint x="889" y="810" as="sourcePoint" /> <mxPoint x="889" y="836" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="T9pB_ysCbEszbst1waTv-1" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;" value=""> <mxGeometry height="50" relative="1" width="50" as="geometry"> <mxPoint x="828" y="803" as="sourcePoint" /> <mxPoint x="863" y="803" as="targetPoint" /> </mxGeometry> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="qiHXacqECXXAYTJ9b62k-160"><g transform="translate(0.5,0.5)"><rect x="13.5" y="0" width="280" height="40" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 20px; margin-left: 15px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>AGENT LIFECYCLE</b></div></div></div></foreignObject><text x="154" y="25" fill="#333333" font-family="Helvetica" font-size="16px" text-anchor="middle">AGENT LIFECYCLE</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-161"><g transform="translate(0.5,0.5)"><rect x="38" y="100" width="242" height="140" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 230px; height: 1px; padding-top: 170px; margin-left: 50px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><ul style="padding-left: 10px;"><li>Pull latest vetted image</li><li>Scan for vulnerabilities</li><li>Apply security patches</li><li>Configure network policies</li><li>Set resource limits</li><li>Initialize audit logging</li></ul></div></div></div></foreignObject><text x="50" y="175" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Pull latest vetted imageScan...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-162"><g transform="translate(0.5,0.5)"><rect x="39" y="305" width="241" height="130" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 229px; height: 1px; padding-top: 370px; margin-left: 51px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><ul style="padding-left: 10px;"><li>Load security policies</li><li>Establish secure connection</li><li>Verify agent identity</li><li>Fetch encrypted credentials</li><li>Initialize monitoring agent</li><li>Register with orchestrator</li></ul></div></div></div></foreignObject><text x="51" y="375" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Load security policiesEstabli...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-163"><g transform="translate(0.5,0.5)"><rect x="38" y="492" width="242" height="130" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 230px; height: 1px; padding-top: 557px; margin-left: 50px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><ul style="padding-left: 10px;"><li>Execute flows</li><li>All actions validated</li><li>Continuous monitoring</li><li>Health checks</li><li>Log all operations</li><li>Resource usage tracking</li></ul></div></div></div></foreignObject><text x="50" y="562" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Execute flowsAll actions vali...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-164"><g transform="translate(0.5,0.5)"><rect x="191" y="652" width="100" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 98px; height: 1px; padding-top: 662px; margin-left: 193px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">[Idle Timeout]</div></div></div></foreignObject><text x="193" y="667" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[Idle Timeou...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-165"><g transform="translate(0.5,0.5)"><rect x="191" y="689" width="139" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 137px; height: 1px; padding-top: 699px; margin-left: 193px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Graceful shutdown</div></div></div></foreignObject><text x="193" y="704" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" font-style="italic">Graceful shutdown</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-166"><g transform="translate(0.5,0.5)"><rect x="193" y="735" width="117" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 115px; height: 1px; padding-top: 745px; margin-left: 195px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">[Task Complete]</div></div></div></foreignObject><text x="195" y="750" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[Task Complete]</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-167"><g transform="translate(0.5,0.5)"><rect x="193" y="773" width="157" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 155px; height: 1px; padding-top: 783px; margin-left: 195px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Cleanup & shutdown</div></div></div></foreignObject><text x="195" y="788" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" font-style="italic">Cleanup & shutdown</text></switch></g></g></g><g data-cell-id="Aohr6ZUG_8G47jTySdQy-1"><g transform="translate(0.5,0.5)"><path d="M 222 844 L 222 854 L 222 863.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 222 868.88 L 218.5 861.88 L 222 863.63 L 225.5 861.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-168"><g transform="translate(0.5,0.5)"><rect x="192" y="826" width="136" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 134px; height: 1px; padding-top: 836px; margin-left: 194px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">[Security Violation]</div></div></div></foreignObject><text x="194" y="841" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[Security Violati...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-169"><g transform="translate(0.5,0.5)"><rect x="190" y="867" width="158" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 156px; height: 1px; padding-top: 877px; margin-left: 192px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Immediate shutdown</div></div></div></foreignObject><text x="192" y="882" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" font-style="italic">Immediate shutdown</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-170"><g transform="translate(0.5,0.5)"><rect x="37" y="937" width="243" height="170" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 231px; height: 1px; padding-top: 1022px; margin-left: 49px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><ul style="padding-left: 10px;"><li>Clear credentials from memory</li><li>Flush logs to storage</li><li>Terminate active connections</li><li>Delete temporary files</li><li>Release resources</li><li>Notify orchestrator</li></ul></div></div></div></foreignObject><text x="49" y="1027" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Clear credentials from memory...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-171"><g transform="translate(0.5,0.5)"><rect x="36" y="1160" width="244" height="120" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 232px; height: 1px; padding-top: 1220px; margin-left: 48px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><ul style="padding-left: 10px;"><li>Destroy pod/container</li><li>Remove ephemeral storage</li><li>Verify no data leakage</li><li>Archive audit logs</li><li>Update metrics</li></ul></div></div></div></foreignObject><text x="48" y="1225" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Destroy pod/containerRemove e...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-172"><g transform="translate(0.5,0.5)"><path d="M 159 240 L 159 272.5 L 159.4 298.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 159.48 303.88 L 155.88 296.94 L 159.4 298.63 L 162.87 296.83 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-173"><g transform="translate(0.5,0.5)"><path d="M 159.5 435 L 159.5 463.5 L 159.11 485.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 159.02 490.88 L 155.64 483.82 L 159.11 485.63 L 162.64 483.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-174"><g transform="translate(0.5,0.5)"><path d="M 159 622 L 159 779.5 L 158.52 930.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 158.5 935.88 L 155.03 928.87 L 158.52 930.63 L 162.03 928.89 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-175"><g transform="translate(0.5,0.5)"><path d="M 158.5 1107 L 158.5 1133.5 L 158.12 1153.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 158.02 1158.88 L 154.65 1151.82 L 158.12 1153.63 L 161.65 1151.95 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-178"><g transform="translate(0.5,0.5)"><path d="M 160 837 L 186.63 837" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 191.88 837 L 184.88 840.5 L 186.63 837 L 184.88 833.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-238"><g transform="translate(0.5,0.5)"><rect x="10" y="70" width="160" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 158px; height: 1px; padding-top: 77px; margin-left: 12px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">[1] PROVISIONING</span></div></div></div></foreignObject><text x="12" y="93" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[1] PROVISIONING</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-239"><g transform="translate(0.5,0.5)"><rect x="0" y="273" width="160" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 158px; height: 1px; padding-top: 280px; margin-left: 2px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><font>[2] INITIALIZATION</font></span></div></div></div></foreignObject><text x="2" y="296" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[2] INITIALIZATION</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-240"><g transform="translate(0.5,0.5)"><rect x="10" y="453" width="140" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 138px; height: 1px; padding-top: 460px; margin-left: 12px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b style="forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;"><font>[3] ACTIVE STATE</font></b></div></div></div></foreignObject><text x="12" y="476" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[3] ACTIVE STATE</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-241"><g transform="translate(0.5,0.5)"><rect x="10" y="899" width="130" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 906px; margin-left: 12px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b style="forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;">[4] SHUTDOWN</b><br align="left" style="forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;" /></div></div></div></foreignObject><text x="12" y="922" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[4] SHUTDOWN
</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-242"><g transform="translate(0.5,0.5)"><rect x="10" y="1120" width="110" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 108px; height: 1px; padding-top: 1127px; margin-left: 12px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b style="forced-color-adjust: none; font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; box-shadow: none !important;"><font>[5] CLEANUP</font></b></div></div></div></foreignObject><text x="12" y="1143" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">[5] CLEANUP</text></switch></g></g></g><g data-cell-id="Aohr6ZUG_8G47jTySdQy-3"><g transform="translate(0.5,0.5)"><path d="M 160 748 L 188.63 748" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 193.88 748 L 186.88 751.5 L 188.63 748 L 186.88 744.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="Aohr6ZUG_8G47jTySdQy-4"><g transform="translate(0.5,0.5)"><path d="M 220 753 L 220 763 L 220 772.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 220 777.88 L 216.5 770.88 L 220 772.63 L 223.5 770.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="Aohr6ZUG_8G47jTySdQy-5"><g transform="translate(0.5,0.5)"><path d="M 219 670 L 219 680 L 219 689.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 219 694.88 L 215.5 687.88 L 219 689.63 L 222.5 687.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="T9pB_ysCbEszbst1waTv-1"><g transform="translate(0.5,0.5)"><path d="M 158 663 L 186.63 663" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 191.88 663 L 184.88 666.5 L 186.63 663 L 184.88 659.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!-- Do not edit this file with editors other than draw.io -->
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1223px" height="1171px" viewBox="0 0 1223 1171" content="<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" version="29.2.7"> <diagram name="Architecture Overview" id="lUb2Yy0VcGrDcHUANlMM"> <mxGraphModel dx="1678" dy="804" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="qiHXacqECXXAYTJ9b62k-41" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="CUSTOMER ADMIN" vertex="1"> <mxGeometry height="1170" width="167" x="20" y="20" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-42" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="MINDED BACKEND" vertex="1"> <mxGeometry height="1170" width="163" x="385" y="20" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-43" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="KMS&#xa;(KEY MGMT)" vertex="1"> <mxGeometry height="1170" width="150" x="766" y="20" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-44" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="AGENT POD" vertex="1"> <mxGeometry height="1170" width="150" x="966" y="20" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-45" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-41" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-42" value="1. Provide Credentials&#xa;(via secure form)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="294" y="123" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-46" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="2. Request Encryption Key&#xa;(per tenant)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="662" y="157" /> </Array> <mxPoint x="465.82352941176487" y="157" as="sourcePoint" /> <mxPoint x="840.5" y="157" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-47" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="3. Return Encryption Key"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="665" y="201" /> </Array> <mxPoint x="840.5" y="201" as="sourcePoint" /> <mxPoint x="465.82352941176487" y="201" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-48" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="4. Encrypt Credentials&#xa;(AES-256-GCM)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="662" y="254" /> </Array> <mxPoint x="465.82352941176487" y="254" as="sourcePoint" /> <mxPoint x="840.5" y="254" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-49" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-42" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-42" value="5. Store (Database)&#xa;{&#xa; agentId: &quot;...&quot;,&#xa; encrypted: &quot;...&quot;,&#xa; keyId: &quot;...&quot;,&#xa; metadata: {...}&#xa;}"> <mxGeometry relative="1" x="0.1489" y="72" as="geometry"> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="518" y="315" /> <mxPoint x="518" y="345" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-50" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-42" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-41" value="6. Confirm Stored Securely"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="297" y="393" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-51" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="7. Agent needs to execute"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="765" y="424" /> </Array> <mxPoint x="1040.5" y="424" as="sourcePoint" /> <mxPoint x="465.82352941176487" y="424" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-52" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-44" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-42" value="8. Request Credentials&#xa;(with auth token)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="765" y="489" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-53" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-42" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-42" value="9. Verify Token &amp; Permissions"> <mxGeometry relative="1" x="-0.0298" y="112" as="geometry"> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="518" y="537" /> <mxPoint x="518" y="567" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-54" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-42" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-43" value="10. Fetch Encryption Key"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="662" y="615" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-55" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-43" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-42" value="11. Return Key"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="665" y="663" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-56" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-42" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-43" value="12. Decrypt Credentials"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="662" y="711" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-57" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-42" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-44" value="13. Return (in memory only)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="762" y="759" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-58" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-44" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-44" value="14. Use credentials&#xa;(RPA action)"> <mxGeometry relative="1" x="-0.18" y="58" as="geometry"> <mxPoint y="1" as="offset" /> <Array as="points"> <mxPoint x="1092" y="807" /> <mxPoint x="1092" y="837" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-59" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-44" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-44" value="15. Clear from memory"> <mxGeometry relative="1" x="-0.225" y="68" as="geometry"> <mxPoint y="-5" as="offset" /> <Array as="points"> <mxPoint x="1092" y="885" /> <mxPoint x="1092" y="915" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-60" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="16. Log Usage&#xa;(audit trail)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="765" y="945" /> </Array> <mxPoint x="1040.5" y="945" as="sourcePoint" /> <mxPoint x="465.82352941176487" y="945" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-61" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="17. Rotate Credentials"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="294" y="976" /> </Array> <mxPoint x="102.82352941176464" y="976" as="sourcePoint" /> <mxPoint x="466" y="976" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-62" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="18. Revoke Old&#xa;(immediately)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="662" y="1017" /> </Array> <mxPoint x="465.82352941176487" y="1017" as="sourcePoint" /> <mxPoint x="840.5" y="1017" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-63" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="19. Encrypt &amp; Store New"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="665" y="1062" /> </Array> <mxPoint x="840.5" y="1062" as="sourcePoint" /> <mxPoint x="465.82352941176487" y="1062" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-64" edge="1" parent="1" style="curved=1;dashed=1;dashPattern=2 3;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" value="20. Active Sessions Notified"> <mxGeometry relative="1" x="-0.0447" y="102" as="geometry"> <mxPoint y="-1" as="offset" /> <Array as="points"> <mxPoint x="518" y="1108" /> <mxPoint x="518" y="1138" /> </Array> <mxPoint x="465.82352941176487" y="1108" as="sourcePoint" /> <mxPoint x="465.82352941176487" y="1138" as="targetPoint" /> </mxGeometry> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="qiHXacqECXXAYTJ9b62k-41"><g transform="translate(0.5,0.5)"><rect x="0" y="0" width="167" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 83.5 65 L 83.5 1170" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 165px; height: 1px; padding-top: 33px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CUSTOMER ADMIN</div></div></div></foreignObject><text x="83" y="37" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">CUSTOMER ADMIN</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-42"><g transform="translate(0.5,0.5)"><rect x="365" y="0" width="163" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.5 65 L 446.5 1170" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 161px; height: 1px; padding-top: 33px; margin-left: 366px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MINDED BACKEND</div></div></div></foreignObject><text x="447" y="37" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">MINDED BACKEND</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-43"><g transform="translate(0.5,0.5)"><rect x="746" y="0" width="150" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 821 65 L 821 1170" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 33px; margin-left: 747px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">KMS<br />(KEY MGMT)</div></div></div></foreignObject><text x="821" y="37" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">KMS...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-44"><g transform="translate(0.5,0.5)"><rect x="946" y="0" width="150" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 1021 65 L 1021 1170" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 33px; margin-left: 947px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AGENT POD</div></div></div></foreignObject><text x="1021" y="37" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">AGENT POD</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-45"><g transform="translate(0.5,0.5)"><path d="M 82.82 103 L 274 103 L 437.88 103" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 444.88 103 L 437.88 106.5 L 437.88 99.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="264" y="79">1. Provide Credentials</text><text x="264" y="98">(via secure form)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-46"><g transform="translate(0.5,0.5)"><path d="M 445.82 137 L 642 137 L 812.38 137" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 819.38 137 L 812.38 140.5 L 812.38 133.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="632.88" y="113">2. Request Encryption Key</text><text x="632.88" y="132">(per tenant)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-47"><g transform="translate(0.5,0.5)"><path d="M 820.5 181 L 645 181 L 453.94 181" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="2 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 181 L 453.94 177.5 L 453.94 184.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="633.44" y="176">3. Return Encryption Key</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-48"><g transform="translate(0.5,0.5)"><path d="M 445.82 234 L 642 234 L 812.38 234" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 819.38 234 L 812.38 237.5 L 812.38 230.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="632.88" y="210">4. Encrypt Credentials</text><text x="632.88" y="229">(AES-256-GCM)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-49"><g transform="translate(0.5,0.5)"><path d="M 445.82 295 Q 498 295 498 310 Q 498 325 453.94 325" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 325 L 453.94 321.5 L 453.94 328.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="570" y="270.47">5. Store (Database)</text><text x="570" y="289.47">{</text><text x="570" y="308.47"> agentId: "...",</text><text x="570" y="327.47"> encrypted: "...",</text><text x="570" y="346.47"> keyId: "...",</text><text x="570" y="365.47"> metadata: {...}</text><text x="570" y="384.47">}</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-50"><g transform="translate(0.5,0.5)"><path d="M 446 373 L 277 373 L 90.94 373" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="2 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 83.94 373 L 90.94 369.5 L 90.94 376.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="264.82" y="368">6. Confirm Stored Securely</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-51"><g transform="translate(0.5,0.5)"><path d="M 1020.5 404 L 745 404 L 453.94 404" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 404 L 453.94 400.5 L 453.94 407.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="733.44" y="399">7. Agent needs to execute</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-52"><g transform="translate(0.5,0.5)"><path d="M 1020.5 469 L 745 469 L 453.94 469" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 469 L 453.94 465.5 L 453.94 472.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="733.44" y="445">8. Request Credentials</text><text x="733.44" y="464">(with auth token)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-53"><g transform="translate(0.5,0.5)"><path d="M 445.82 517 Q 498 517 498 532 Q 498 547 453.94 547" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 547 L 453.94 543.5 L 453.94 550.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="610" y="536.53">9. Verify Token & Permissions</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-54"><g transform="translate(0.5,0.5)"><path d="M 445.82 595 L 642 595 L 812.38 595" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 819.38 595 L 812.38 598.5 L 812.38 591.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="632.88" y="590">10. Fetch Encryption Key</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-55"><g transform="translate(0.5,0.5)"><path d="M 820.5 643 L 645 643 L 453.94 643" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="2 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 643 L 453.94 639.5 L 453.94 646.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="633.44" y="638">11. Return Key</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-56"><g transform="translate(0.5,0.5)"><path d="M 445.82 691 L 642 691 L 812.38 691" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 819.38 691 L 812.38 694.5 L 812.38 687.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="632.88" y="686">12. Decrypt Credentials</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-57"><g transform="translate(0.5,0.5)"><path d="M 445.82 739 L 742 739 L 1012.38 739" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="2 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 1019.38 739 L 1012.38 742.5 L 1012.38 735.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="732.88" y="734">13. Return (in memory only)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-58"><g transform="translate(0.5,0.5)"><path d="M 1020.32 787 Q 1072 787 1072 802 Q 1072 817 1028.44 817" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 1021.44 817 L 1028.44 813.5 L 1028.44 820.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="1130" y="787.94">14. Use credentials</text><text x="1130" y="806.94">(RPA action)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-59"><g transform="translate(0.5,0.5)"><path d="M 1020.32 865 Q 1072 865 1072 880 Q 1072 895 1028.44 895" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 1021.44 895 L 1028.44 891.5 L 1028.44 898.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="1140" y="867.09">15. Clear from memory</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-60"><g transform="translate(0.5,0.5)"><path d="M 1020.5 925 L 745 925 L 453.94 925" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 925 L 453.94 921.5 L 453.94 928.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="733.44" y="901">16. Log Usage</text><text x="733.44" y="920">(audit trail)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-61"><g transform="translate(0.5,0.5)"><path d="M 82.82 956 L 274 956 L 437.88 956" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 444.88 956 L 437.88 959.5 L 437.88 952.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="264" y="951">17. Rotate Credentials</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-62"><g transform="translate(0.5,0.5)"><path d="M 445.82 997 L 642 997 L 812.38 997" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 819.38 997 L 812.38 1000.5 L 812.38 993.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="632.88" y="973">18. Revoke Old</text><text x="632.88" y="992">(immediately)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-63"><g transform="translate(0.5,0.5)"><path d="M 820.5 1042 L 645 1042 L 453.94 1042" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 1042 L 453.94 1038.5 L 453.94 1045.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="633.44" y="1037">19. Encrypt & Store New</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-64"><g transform="translate(0.5,0.5)"><path d="M 445.82 1088 Q 498 1088 498 1103 Q 498 1118 453.94 1118" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="2 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 446.94 1118 L 453.94 1114.5 L 453.94 1121.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="600" y="1106.53">20. Active Sessions Notified</text></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!-- Do not edit this file with editors other than draw.io -->
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1329px" height="1257px" viewBox="0 0 1329 1257" content="<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" version="29.2.7"> <diagram name="Architecture Overview" id="lUb2Yy0VcGrDcHUANlMM"> <mxGraphModel dx="2194" dy="1051" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="qiHXacqECXXAYTJ9b62k-89" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="WEBHOOK/ &#xa;SCHEDULE" vertex="1"> <mxGeometry height="1246" width="150" x="208" y="1070" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-91" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="AGENT FLOW" vertex="1"> <mxGeometry height="1246" width="150" x="420" y="1070" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-92" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="SECURITY GATEWAY" vertex="1"> <mxGeometry height="1246" width="173" x="654" y="1070" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-93" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="RPA NODE" vertex="1"> <mxGeometry height="1246" width="150" x="920" y="1070" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-94" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};size=65;labelBackgroundColor=none;fontSize=16;" value="CUSTOMER BACKEND" vertex="1"> <mxGeometry height="1246" width="185" x="1350" y="1060" as="geometry" /> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-96" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="2. VALIDATION CHECKS"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="626" y="1235" /> </Array> <mxPoint x="493.8333333333335" y="1235" as="sourcePoint" /> <mxPoint x="740" y="1235" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-97" edge="1" parent="1" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" value="Verify URL is whitelisted"> <mxGeometry relative="1" x="-0.0601" y="89" as="geometry"> <mxPoint y="-1" as="offset" /> <Array as="points"> <mxPoint x="791" y="1269" /> <mxPoint x="791" y="1299" /> </Array> <mxPoint x="739.4615384615386" y="1269" as="sourcePoint" /> <mxPoint x="739.4615384615386" y="1299" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-98" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-92" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-92" value="Verify action is allowed"> <mxGeometry relative="1" x="-0.0301" y="89" as="geometry"> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="791" y="1347" /> <mxPoint x="791" y="1377" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-99" edge="1" parent="1" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" value="Validate params &#xa;against schema"> <mxGeometry relative="1" y="62" as="geometry"> <mxPoint y="1" as="offset" /> <Array as="points"> <mxPoint x="788" y="1425" /> <mxPoint x="788" y="1455" /> </Array> <mxPoint x="736.3333333333335" y="1425" as="sourcePoint" /> <mxPoint x="736.3333333333335" y="1455" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-100" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-92" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-92" value="Check param signatures"> <mxGeometry relative="1" x="0.0301" y="89" as="geometry"> <mxPoint y="-1" as="offset" /> <Array as="points"> <mxPoint x="791" y="1503" /> <mxPoint x="791" y="1533" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-101" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-92" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-92" value="Verify agent permissions"> <mxGeometry relative="1" x="0.0601" y="89" as="geometry"> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="791" y="1581" /> <mxPoint x="791" y="1611" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-102" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-92" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-92" value="3. Request Credentials"> <mxGeometry relative="1" x="-0.0601" y="89" as="geometry"> <mxPoint y="-1" as="offset" /> <Array as="points"> <mxPoint x="791" y="1659" /> <mxPoint x="791" y="1689" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-103" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-92" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-92" value="4. Log Request (audit trail)"> <mxGeometry relative="1" x="-0.0301" y="109" as="geometry"> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="791" y="1737" /> <mxPoint x="791" y="1767" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-104" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-92" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-93" value="5. Pass to RPA (if all checks passed)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="914" y="1815" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-105" edge="1" parent="1" style="curved=1;endArrow=block;rounded=0;align=left;labelBackgroundColor=none;fontSize=16;" value="6. EXECUTE&#xa;Check URL again (defense in depth)&#xa;Sanitize input&#xa;Prevent code injection"> <mxGeometry relative="1" x="-0.0488" y="18" as="geometry"> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="1122" y="1842" /> <mxPoint x="1122" y="1872" /> </Array> <mxPoint x="993.5" y="1842" as="sourcePoint" /> <mxPoint x="993.5" y="1872" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-106" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="7. Make Request&#xa;POST /api/action (TLS encrypted)"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="1340" y="1956" /> </Array> <mxPoint x="993.9615384615386" y="1956" as="sourcePoint" /> <mxPoint x="1442" y="1956" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-107" edge="1" parent="1" style="curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;" value="Process Action"> <mxGeometry relative="1" x="-1" y="-21" as="geometry"> <mxPoint x="-11" y="-4" as="offset" /> <Array as="points"> <mxPoint x="1490" y="1993" /> <mxPoint x="1510" y="2034" /> </Array> <mxPoint x="1441.461538461538" y="1993" as="sourcePoint" /> <mxPoint x="1441.461538461538" y="2034" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-108" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="8. Response&#xa;{ success: true, data: {...} }&#xa;"> <mxGeometry relative="1" x="0.1237" as="geometry"> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="1343" y="2087" /> </Array> <mxPoint x="1442" y="2087" as="sourcePoint" /> <mxPoint x="993.5" y="2087" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-109" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="10. Log Response (audit trail)"> <mxGeometry relative="1" as="geometry"> <Array as="points" /> <mxPoint x="1000" y="2123" as="sourcePoint" /> <mxPoint x="739.4615384615386" y="2123.5384615384614" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-110" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="11. Return Result&#xa;{ success: true, data: {...}, executionId }"> <mxGeometry relative="1" x="0.0562" y="-22" as="geometry"> <mxPoint x="1" as="offset" /> <Array as="points" /> <mxPoint x="740" y="2151.996666666667" as="sourcePoint" /> <mxPoint x="493.8333333333335" y="2151.996666666667" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-111" edge="1" parent="1" source="qiHXacqECXXAYTJ9b62k-92" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-91" value="12. Continue Flow"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="629" y="2211" /> </Array> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-114" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" value="1. EXECUTE RPA ACTION"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="630" y="1189" /> </Array> <mxPoint x="498" y="1189" as="sourcePoint" /> <mxPoint x="744" y="1189" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-117" edge="1" parent="1" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;" target="qiHXacqECXXAYTJ9b62k-91" value="trigger"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="395" y="1160" /> </Array> <mxPoint x="283" y="1160" as="sourcePoint" /> <mxPoint x="473" y="1160" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="qiHXacqECXXAYTJ9b62k-254" parent="1" style="text;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontSize=16;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;9. SANITIZE Response&lt;/span&gt;&lt;br style=&quot;forced-color-adjust: none; padding: 0px; margin: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;&amp;nbsp;Remove secrets&lt;/span&gt;&lt;br style=&quot;forced-color-adjust: none; padding: 0px; margin: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;Validate format&lt;/span&gt;" vertex="1"> <mxGeometry height="80" width="200" x="1140" y="2100" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="qiHXacqECXXAYTJ9b62k-89"><g transform="translate(0.5,0.5)"><rect x="0" y="10" width="150" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 75 75 L 75 1256" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 43px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">WEBHOOK/ <br />SCHEDULE</div></div></div></foreignObject><text x="75" y="47" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">WEBHOOK/...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-91"><g transform="translate(0.5,0.5)"><rect x="212" y="10" width="150" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 287 75 L 287 1256" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 43px; margin-left: 213px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AGENT FLOW</div></div></div></foreignObject><text x="287" y="47" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">AGENT FLOW</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-92"><g transform="translate(0.5,0.5)"><rect x="446" y="10" width="173" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.5 75 L 532.5 1256" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 171px; height: 1px; padding-top: 43px; margin-left: 447px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SECURITY GATEWAY</div></div></div></foreignObject><text x="533" y="47" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">SECURITY GATEWAY</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-93"><g transform="translate(0.5,0.5)"><rect x="712" y="10" width="150" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 787 75 L 787 1256" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 43px; margin-left: 713px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">RPA NODE</div></div></div></foreignObject><text x="787" y="47" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">RPA NODE</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-94"><g transform="translate(0.5,0.5)"><rect x="1142" y="0" width="185" height="65" fill="#ffffff" stroke="#000000" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 1234.5 65 L 1234.5 1246" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 183px; height: 1px; padding-top: 33px; margin-left: 1143px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CUSTOMER BACKEND</div></div></div></foreignObject><text x="1234" y="37" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">CUSTOMER BACKEND</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-96"><g transform="translate(0.5,0.5)"><path d="M 285.83 175 L 418 175 L 523.88 175" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 530.88 175 L 523.88 178.5 L 523.88 171.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="408.91" y="170">2. VALIDATION CHECKS</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-97"><g transform="translate(0.5,0.5)"><path d="M 531.46 209 Q 583 209 583 224 Q 583 239 539.58 239" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.58 239 L 539.58 235.5 L 539.58 242.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="672" y="226.54">Verify URL is whitelisted</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-98"><g transform="translate(0.5,0.5)"><path d="M 531.46 287 Q 583 287 583 302 Q 583 317 539.58 317" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.58 317 L 539.58 313.5 L 539.58 320.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="672" y="307.08">Verify action is allowed</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-99"><g transform="translate(0.5,0.5)"><path d="M 528.33 365 Q 580 365 580 380 Q 580 395 536.45 395" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 529.45 395 L 536.45 391.5 L 536.45 398.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="642" y="377.99">Validate params </text><text x="642" y="396.99">against schema</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-100"><g transform="translate(0.5,0.5)"><path d="M 531.46 443 Q 583 443 583 458 Q 583 473 539.58 473" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.58 473 L 539.58 469.5 L 539.58 476.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="672" y="466.69">Check param signatures</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-101"><g transform="translate(0.5,0.5)"><path d="M 531.46 521 Q 583 521 583 536 Q 583 551 539.58 551" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.58 551 L 539.58 547.5 L 539.58 554.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="672" y="547.23">Verify agent permissions</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-102"><g transform="translate(0.5,0.5)"><path d="M 531.46 599 Q 583 599 583 614 Q 583 629 539.58 629" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.58 629 L 539.58 625.5 L 539.58 632.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="672" y="616.54">3. Request Credentials</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-103"><g transform="translate(0.5,0.5)"><path d="M 531.46 677 Q 583 677 583 692 Q 583 707 539.58 707" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.58 707 L 539.58 703.5 L 539.58 710.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="692" y="697.08">4. Log Request (audit trail)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-104"><g transform="translate(0.5,0.5)"><path d="M 531.46 755 L 706 755 L 778.38 755" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 785.38 755 L 778.38 758.5 L 778.38 751.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="659.15" y="750">5. Pass to RPA (if all checks passed)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-105"><g transform="translate(0.5,0.5)"><path d="M 785.5 782 Q 914 782 914 797 Q 914 812 793.62 812" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 786.62 812 L 793.62 808.5 L 793.62 815.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="934" y="768.92">6. EXECUTE</text><text x="934" y="787.92">Check URL again (defense in depth)</text><text x="934" y="806.92">Sanitize input</text><text x="934" y="825.92">Prevent code injection</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-106"><g transform="translate(0.5,0.5)"><path d="M 785.96 896 L 1132 896 L 1225.88 896" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 1232.88 896 L 1225.88 899.5 L 1225.88 892.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="1010.58" y="872">7. Make Request</text><text x="1010.58" y="891">POST /api/action (TLS encrypted)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-107"><g transform="translate(0.5,0.5)"><path d="M 1233.46 933 Q 1282 933 1292 953.5 Q 1302 974 1241.58 974" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 1234.58 974 L 1241.58 970.5 L 1241.58 977.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="1222.46" y="957">Process Action</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-108"><g transform="translate(0.5,0.5)"><path d="M 1234 1027 L 1135 1027 L 793.62 1027" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 786.62 1027 L 793.62 1023.5 L 793.62 1030.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="981.69" y="984">8. Response</text><text x="981.69" y="1003">{ success: true, data: {...} }</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-109"><g transform="translate(0.5,0.5)"><path d="M 792 1063 L 539.58 1062.85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 532.58 1062.85 L 539.58 1059.35 L 539.58 1066.35 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="661.38" y="1057.85">10. Log Response (audit trail)</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-110"><g transform="translate(0.5,0.5)"><path d="M 532 1092 L 293.95 1092.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 286.95 1092.08 L 293.95 1088.57 L 293.95 1095.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="402.31" y="1046.08">11. Return Result</text><text x="402.31" y="1065.08">{ success: true, data: {...}, executionId }</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-111"><g transform="translate(0.5,0.5)"><path d="M 532 1151 L 421 1151 L 294.08 1151" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 287.08 1151 L 294.08 1147.5 L 294.08 1154.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="408.92" y="1146">12. Continue Flow</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-114"><g transform="translate(0.5,0.5)"><path d="M 290 129 L 422 129 L 527.88 129" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 534.88 129 L 527.88 132.5 L 527.88 125.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="413.08" y="124">1. EXECUTE RPA ACTION</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-117"><g transform="translate(0.5,0.5)"><path d="M 75 100 L 187 100 L 278.38 100" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 285.38 100 L 278.38 103.5 L 278.38 96.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="16px" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><text x="181.15" y="95">trigger</text></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-254"><g transform="translate(0.5,0.5)"><rect x="932" y="1040" width="200" height="80" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 198px; height: 1px; padding-top: 1047px; margin-left: 934px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">9. SANITIZE Response</span><br style="forced-color-adjust: none; padding: 0px; margin: 0px; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" /><span style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> Remove secrets</span><br style="forced-color-adjust: none; padding: 0px; margin: 0px; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" /><span style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Validate format</span></div></div></div></foreignObject><text x="934" y="1063" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">9. SANITIZE Response...</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!-- Do not edit this file with editors other than draw.io -->
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="501px" height="722px" viewBox="0 0 501 722" content="<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" version="29.2.7"> <diagram name="Architecture Overview" id="lUb2Yy0VcGrDcHUANlMM"> <mxGraphModel dx="576" dy="683" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="S4bgjokdCwapD7wrW9yR-26" parent="1" style="swimlane;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="CUSTOMER ENVIRONMENT" vertex="1"> <mxGeometry height="200" width="500" x="1280" y="329" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-27" parent="S4bgjokdCwapD7wrW9yR-26" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="Backend/Backoffice Site (Customer&#39;s Private Network)" vertex="1"> <mxGeometry height="100" width="460" x="20" y="54" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-28" parent="S4bgjokdCwapD7wrW9yR-27" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value="Internal APIs" vertex="1"> <mxGeometry height="30" width="130" x="18" y="40" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-29" parent="S4bgjokdCwapD7wrW9yR-27" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value="Business Systems" vertex="1"> <mxGeometry height="30" width="140" x="160" y="40" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-30" parent="S4bgjokdCwapD7wrW9yR-27" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value="Databases" vertex="1"> <mxGeometry height="30" width="130" x="313" y="40" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-31" parent="S4bgjokdCwapD7wrW9yR-26" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="RPA Access (IP Whitelisted)" vertex="1"> <mxGeometry height="20" width="234" x="143" y="168" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-51" edge="1" parent="1" source="S4bgjokdCwapD7wrW9yR-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;" target="S4bgjokdCwapD7wrW9yR-26"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-32" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="INTERNET BOUNDARY" vertex="1"> <mxGeometry height="30" width="150" x="1455" y="556" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-50" edge="1" parent="1" source="S4bgjokdCwapD7wrW9yR-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;" target="S4bgjokdCwapD7wrW9yR-32"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-34" parent="1" style="swimlane;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="MINDED INFRASTRUCTURE (K8S)" vertex="1"> <mxGeometry height="440" width="500" x="1280" y="610" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-35" parent="S4bgjokdCwapD7wrW9yR-34" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="VPC (ISOLATED - OUTBOUND ONLY)" vertex="1"> <mxGeometry height="260" width="460" x="20" y="40" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-36" parent="S4bgjokdCwapD7wrW9yR-35" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="K8s Pod - Agent Instance" vertex="1"> <mxGeometry height="210" width="420" x="20" y="40" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-37" parent="S4bgjokdCwapD7wrW9yR-36" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;labelBackgroundColor=none;" value="Agent Runtime" vertex="1"> <mxGeometry height="40" width="100" x="40" y="45" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-38" parent="S4bgjokdCwapD7wrW9yR-36" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;labelBackgroundColor=none;" value="RPA Node" vertex="1"> <mxGeometry height="40" width="100" x="160" y="45" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-39" parent="S4bgjokdCwapD7wrW9yR-36" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;labelBackgroundColor=none;" value="Security Monitor" vertex="1"> <mxGeometry height="40" width="100" x="280" y="45" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-40" edge="1" parent="S4bgjokdCwapD7wrW9yR-36" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value=""> <mxGeometry height="50" relative="1" width="50" as="geometry"> <mxPoint x="140" y="65" as="sourcePoint" /> <mxPoint x="160" y="65" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-41" edge="1" parent="S4bgjokdCwapD7wrW9yR-36" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value=""> <mxGeometry height="50" relative="1" width="50" as="geometry"> <mxPoint x="260" y="65" as="sourcePoint" /> <mxPoint x="280" y="65" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-42" parent="S4bgjokdCwapD7wrW9yR-36" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;" value="&lt;ul style=&quot;padding-left: 0px;&quot;&gt;&lt;li&gt;No Inbound Traffic&lt;/li&gt;&lt;li&gt;Outbound to Whitelisted IPs Only&lt;/li&gt;&lt;li&gt;Encrypted Credentials (Runtime Decrypt)&lt;/li&gt;&lt;li&gt;URL/Action Restrictions&lt;/li&gt;&lt;li&gt;Audit Logging&lt;/li&gt;&lt;/ul&gt;" vertex="1"> <mxGeometry height="50" width="340" x="40" y="85" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-43" parent="S4bgjokdCwapD7wrW9yR-34" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;" value="MINDED BACKEND (Orchestrator)" vertex="1"> <mxGeometry height="90" width="460" x="20" y="320" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-44" parent="S4bgjokdCwapD7wrW9yR-43" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value="Credential Management" vertex="1"> <mxGeometry height="40" width="140" x="20" y="40" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-45" parent="S4bgjokdCwapD7wrW9yR-43" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value="Agent Lifecycle" vertex="1"> <mxGeometry height="40" width="135" x="165" y="40" as="geometry" /> </mxCell> <mxCell id="S4bgjokdCwapD7wrW9yR-46" parent="S4bgjokdCwapD7wrW9yR-43" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;" value="Audit Logs" vertex="1"> <mxGeometry height="40" width="130" x="310" y="40" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="S4bgjokdCwapD7wrW9yR-26"><g transform="translate(0.5,0.5)"><path d="M 0 23 L 0 0 L 500 0 L 500 23" fill="#f5f5f5" stroke="#333333" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(51, 51, 51), rgb(193, 193, 193));"/><path d="M 0 23 L 0 200 L 500 200 L 500 23" fill="none" stroke="#333333" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(51, 51, 51), rgb(193, 193, 193));"/><path d="M 0 23 L 500 23" fill="none" stroke="#333333" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(51, 51, 51), rgb(193, 193, 193));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 498px; height: 1px; padding-top: 12px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">CUSTOMER ENVIRONMENT</div></div></div></foreignObject><text x="250" y="16" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">CUSTOMER ENVIRONMENT</text></switch></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-27"><g transform="translate(0.5,0.5)"><path d="M 20 77 L 20 54 L 480 54 L 480 77" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 20 77 L 20 154 L 480 154 L 480 77" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 20 77 L 480 77" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 66px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Backend/Backoffice Site (Customer's Private Network)</div></div></div></foreignObject><text x="250" y="70" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">Backend/Backoffice Site (Customer's Private Network)</text></switch></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-28"><g transform="translate(0.5,0.5)"><rect x="38" y="94" width="130" height="30" fill="#e6e6e6" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(230, 230, 230), rgb(39, 39, 39)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 109px; margin-left: 39px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Internal APIs</div></div></div></foreignObject><text x="103" y="114" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Internal APIs</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-29"><g transform="translate(0.5,0.5)"><rect x="180" y="94" width="140" height="30" fill="#e6e6e6" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(230, 230, 230), rgb(39, 39, 39)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 109px; margin-left: 181px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Business Systems</div></div></div></foreignObject><text x="250" y="114" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Business Systems</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-30"><g transform="translate(0.5,0.5)"><rect x="333" y="94" width="130" height="30" fill="#e6e6e6" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(230, 230, 230), rgb(39, 39, 39)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 109px; margin-left: 334px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Databases</div></div></div></foreignObject><text x="398" y="114" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Databases</text></switch></g></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-31"><g transform="translate(0.5,0.5)"><rect x="143" y="168" width="234" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 232px; height: 1px; padding-top: 178px; margin-left: 144px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">RPA Access (IP Whitelisted)</div></div></div></foreignObject><text x="260" y="183" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">RPA Access (IP Whitelisted)</text></switch></g></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-51"><g transform="translate(0.5,0.5)"><path d="M 250 227 L 250 206.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 250 201.12 L 253.5 208.12 L 250 206.37 L 246.5 208.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-32"><g transform="translate(0.5,0.5)"><rect x="175" y="227" width="150" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 242px; margin-left: 176px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">INTERNET BOUNDARY</div></div></div></foreignObject><text x="250" y="247" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">INTERNET BOUNDARY</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-50"><g transform="translate(0.5,0.5)"><path d="M 250 281 L 250 263.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 250 258.12 L 253.5 265.12 L 250 263.37 L 246.5 265.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-34"><g transform="translate(0.5,0.5)"><path d="M 0 304 L 0 281 L 500 281 L 500 304" fill="#f5f5f5" stroke="#333333" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(51, 51, 51), rgb(193, 193, 193));"/><path d="M 0 304 L 0 721 L 500 721 L 500 304" fill="none" stroke="#333333" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(51, 51, 51), rgb(193, 193, 193));"/><path d="M 0 304 L 500 304" fill="none" stroke="#333333" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(51, 51, 51), rgb(193, 193, 193));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 498px; height: 1px; padding-top: 293px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">MINDED INFRASTRUCTURE (K8S)</div></div></div></foreignObject><text x="250" y="297" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">MINDED INFRASTRUCTURE (K8S)</text></switch></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-35"><g transform="translate(0.5,0.5)"><path d="M 20 344 L 20 321 L 480 321 L 480 344" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 20 344 L 20 581 L 480 581 L 480 344" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 20 344 L 480 344" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 333px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">VPC (ISOLATED - OUTBOUND ONLY)</div></div></div></foreignObject><text x="250" y="337" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">VPC (ISOLATED - OUTBOUND ONLY)</text></switch></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-36"><g transform="translate(0.5,0.5)"><path d="M 40 384 L 40 361 L 460 361 L 460 384" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 40 384 L 40 571 L 460 571 L 460 384" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 40 384 L 460 384" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 418px; height: 1px; padding-top: 373px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">K8s Pod - Agent Instance</div></div></div></foreignObject><text x="250" y="377" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">K8s Pod - Agent Instance</text></switch></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-37"><g transform="translate(0.5,0.5)"><rect x="80" y="406" width="100" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 426px; margin-left: 81px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Agent Runtime</div></div></div></foreignObject><text x="130" y="431" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Agent Runtime</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-38"><g transform="translate(0.5,0.5)"><rect x="200" y="406" width="100" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 426px; margin-left: 201px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">RPA Node</div></div></div></foreignObject><text x="250" y="431" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">RPA Node</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-39"><g transform="translate(0.5,0.5)"><rect x="320" y="406" width="100" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 426px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Security Monitor</div></div></div></foreignObject><text x="370" y="431" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Security Mon...</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-40"><g><path d="M 180 426 L 191.76 426" fill="none" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 197.76 426 L 189.76 430 L 191.76 426 L 189.76 422 Z" fill="#666666" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(102, 102, 102), rgb(149, 149, 149)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-41"><g><path d="M 300 426 L 311.76 426" fill="none" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 317.76 426 L 309.76 430 L 311.76 426 L 309.76 422 Z" fill="#666666" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(102, 102, 102), rgb(149, 149, 149)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-42"><g transform="translate(0.5,0.5)"><rect x="80" y="446" width="340" height="50" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 338px; height: 1px; padding-top: 453px; margin-left: 82px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><ul style="padding-left: 0px;"><li>No Inbound Traffic</li><li>Outbound to Whitelisted IPs Only</li><li>Encrypted Credentials (Runtime Decrypt)</li><li>URL/Action Restrictions</li><li>Audit Logging</li></ul></div></div></div></foreignObject><text x="82" y="469" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">No Inbound TrafficOutbound to Whitelisted...</text></switch></g></g></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-43"><g transform="translate(0.5,0.5)"><path d="M 20 624 L 20 601 L 480 601 L 480 624" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 20 624 L 20 691 L 480 691 L 480 624" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/><path d="M 20 624 L 480 624" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 458px; height: 1px; padding-top: 613px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">MINDED BACKEND (Orchestrator)</div></div></div></foreignObject><text x="250" y="617" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">MINDED BACKEND (Orchestrator)</text></switch></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-44"><g transform="translate(0.5,0.5)"><rect x="40" y="641" width="140" height="40" fill="#e6e6e6" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(230, 230, 230), rgb(39, 39, 39)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 661px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Credential Management</div></div></div></foreignObject><text x="110" y="666" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Credential Manage...</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-45"><g transform="translate(0.5,0.5)"><rect x="185" y="641" width="135" height="40" fill="#e6e6e6" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(230, 230, 230), rgb(39, 39, 39)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 133px; height: 1px; padding-top: 661px; margin-left: 186px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Agent Lifecycle</div></div></div></foreignObject><text x="253" y="666" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Agent Lifecycle</text></switch></g></g></g><g data-cell-id="S4bgjokdCwapD7wrW9yR-46"><g transform="translate(0.5,0.5)"><rect x="330" y="641" width="130" height="40" fill="#e6e6e6" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(230, 230, 230), rgb(39, 39, 39)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 661px; margin-left: 331px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Audit Logs</div></div></div></foreignObject><text x="395" y="666" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">Audit Logs</text></switch></g></g></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|