@minded-ai/mindedjs 3.0.4-beta.2 → 3.0.5

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.
@@ -2,7 +2,8 @@ import { OutputBlockData } from '@editorjs/editorjs';
2
2
  export type Playbook = {
3
3
  id: string;
4
4
  name: string;
5
- blocks: OutputBlockData[];
5
+ blocks?: OutputBlockData[];
6
+ prompt?: string;
6
7
  };
7
8
  /**
8
9
  * Load playbooks from directories or platform
@@ -1 +1 @@
1
- {"version":3,"file":"playbooks.d.ts","sourceRoot":"","sources":["../../src/playbooks/playbooks.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AAyFF;;GAEG;AACH,wBAAsB,aAAa,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsBxF;AAuDD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAarE"}
1
+ {"version":3,"file":"playbooks.d.ts","sourceRoot":"","sources":["../../src/playbooks/playbooks.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAyFF;;GAEG;AACH,wBAAsB,aAAa,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsBxF;AAuDD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAmBrE"}
@@ -158,7 +158,7 @@ function loadPlaybooksFromDirectories(directories) {
158
158
  try {
159
159
  const fileContent = fs.readFileSync(file, 'utf8');
160
160
  const playbook = yaml.load(fileContent);
161
- if (playbook && playbook.name && playbook.blocks) {
161
+ if (playbook && playbook.name && (playbook.blocks || playbook.prompt)) {
162
162
  playbooks.push(playbook);
163
163
  logger_1.logger.info({ msg: `Loaded playbook: ${playbook.name} from ${file}` });
164
164
  }
@@ -199,7 +199,13 @@ function combinePlaybooks(playbooks) {
199
199
  }
200
200
  // Combine all playbooks into sections
201
201
  const sections = playbooks.map((playbook) => {
202
- const markdownContent = editorJsToMarkdown(playbook.blocks);
202
+ let markdownContent = playbook.prompt;
203
+ if (!markdownContent && playbook.blocks) {
204
+ markdownContent = editorJsToMarkdown(playbook.blocks);
205
+ }
206
+ if (!markdownContent) {
207
+ throw new Error('Playbook must have either a prompt or blocks');
208
+ }
203
209
  return `# ${playbook.name}\n${markdownContent}`;
204
210
  });
205
211
  const combinedPlaybooks = sections.join('\n\n');
@@ -1 +1 @@
1
- {"version":3,"file":"playbooks.js","sourceRoot":"","sources":["../../src/playbooks/playbooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0GA,sCAsBC;AA0DD,4CAaC;AAvMD,uCAAyB;AACzB,2CAA6B;AAC7B,8CAAgC;AAChC,+EAAiE;AACjE,6EAAsF;AACtF,+CAA+C;AAC/C,4CAAyC;AAEzC,4DAAsD;AAQtD;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,QAAQ,GAA2B;QACvC,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;KACd,CAAC;IAEF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAyB;IACnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;QACb,IAAI,CAAC;YACH,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,KAAK,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,KAAI,CAAC,CAAC;oBACrC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM,IAAI,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAI,KAAI,EAAE,CAAC;oBACpC,OAAO,GAAG,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,CAAC;gBAED,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,IAAI,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAI,KAAI,EAAE,CAAC;oBACpC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,KAAK,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,KAAI,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,KAAI,WAAW,CAAC;oBAC/C,OAAO,KAAK;yBACT,GAAG,CAAC,CAAC,IAAyB,EAAE,KAAa,EAAE,EAAE;wBAChD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;4BACxB,OAAO,GAAG,KAAK,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,OAAO,KAAK,WAAW,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;gBAED,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,MAAM,IAAI,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAI,KAAI,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,OAAO,EAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3F,OAAO,KAAK,kBAAkB,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;gBACnD,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,IAAI,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAI,KAAI,EAAE,CAAC;oBACpC,OAAO,WAAW,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;gBACvD,CAAC;gBAED,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,OAAO,CAAC,CAAC,CAAC;oBACR,eAAM,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1D,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACtF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,oBAA+B;IACjE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAA,kBAAS,GAAE,CAAC;IACxC,IAAI,SAAS,GAAe,EAAE,CAAC;IAE/B,IAAI,CAAC,4BAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,IAAI,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5F,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAC/C,yDAAiC,CAAC,aAAa,EAC/C,EAAE,CACH,CAAC;QAEF,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,SAAS,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,KAAI,EAAE,CAAC;IACxC,CAAC;SAAM,IAAI,oBAAoB,EAAE,CAAC;QAChC,wBAAwB;QACxB,SAAS,GAAG,4BAA4B,CAAC,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,WAAqB;IACzD,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,uCAAuC,SAAS,EAAE,EAAE,CAAC,CAAC;YACzE,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAa,CAAC;gBAEpD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACjD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,oBAAoB,QAAQ,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iCAAiC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,gCAAgC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,SAAqB;IACpD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAsC;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC1C,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,KAAK,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"playbooks.js","sourceRoot":"","sources":["../../src/playbooks/playbooks.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ const DEFAULT_CONFIG = {
21
21
  */
22
22
  function schemaToJsonFormat(schema) {
23
23
  // Use zod-to-json-schema for robust conversion
24
- // Type assertion to avoid excessive type depth inference
24
+ // Type assertion to avoid excessive type depth inference (TS2589)
25
25
  const jsonSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(schema, {
26
26
  target: 'openApi3',
27
27
  $refStrategy: 'none', // Inline all references for simpler prompts
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/toolsLibrary/extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/toolsLibrary/extraction.ts"],"names":[],"mappings":"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"}
@@ -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="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;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&quot; version=&quot;29.2.7&quot;&gt;&#10; &lt;diagram name=&quot;Architecture Overview&quot; id=&quot;lUb2Yy0VcGrDcHUANlMM&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;1426&quot; dy=&quot;683&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-160&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;align=center;verticalAlign=middle;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;AGENT LIFECYCLE&amp;lt;/b&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;280&quot; x=&quot;683.5&quot; y=&quot;140&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-161&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;ul style=&amp;quot;padding-left: 10px;&amp;quot;&amp;gt;&amp;lt;li&amp;gt;Pull latest vetted image&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Scan for vulnerabilities&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Apply security patches&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Configure network policies&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Set resource limits&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Initialize audit logging&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;140&quot; width=&quot;242&quot; x=&quot;708&quot; y=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-162&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;ul style=&amp;quot;padding-left: 10px;&amp;quot;&amp;gt;&amp;lt;li&amp;gt;Load security policies&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Establish secure connection&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Verify agent identity&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Fetch encrypted credentials&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Initialize monitoring agent&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Register with orchestrator&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;130&quot; width=&quot;241&quot; x=&quot;709&quot; y=&quot;445&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-163&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;ul style=&amp;quot;padding-left: 10px;&amp;quot;&amp;gt;&amp;lt;li&amp;gt;Execute flows&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;All actions validated&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Continuous monitoring&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Health checks&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Log all operations&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Resource usage tracking&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;130&quot; width=&quot;242&quot; x=&quot;708&quot; y=&quot;632&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-164&quot; parent=&quot;1&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;[Idle Timeout]&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;20&quot; width=&quot;100&quot; x=&quot;861&quot; y=&quot;792&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-165&quot; parent=&quot;1&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=2;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Graceful shutdown&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;20&quot; width=&quot;139&quot; x=&quot;861&quot; y=&quot;829&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-166&quot; parent=&quot;1&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;[Task Complete]&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;20&quot; width=&quot;117&quot; x=&quot;863&quot; y=&quot;875&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-167&quot; parent=&quot;1&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=2;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Cleanup &amp;amp;amp; shutdown&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;20&quot; width=&quot;157&quot; x=&quot;863&quot; y=&quot;913&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Aohr6ZUG_8G47jTySdQy-1&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=16;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;892&quot; y=&quot;994&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;892&quot; y=&quot;984&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;892&quot; y=&quot;1010&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-168&quot; parent=&quot;1&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;[Security Violation]&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;20&quot; width=&quot;136&quot; x=&quot;862&quot; y=&quot;966&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-169&quot; parent=&quot;1&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=2;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Immediate shutdown&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;20&quot; width=&quot;158&quot; x=&quot;860&quot; y=&quot;1007&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-170&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;ul style=&amp;quot;padding-left: 10px;&amp;quot;&amp;gt;&amp;lt;li&amp;gt;Clear credentials from memory&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Flush logs to storage&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Terminate active connections&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Delete temporary files&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Release resources&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Notify orchestrator&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;170&quot; width=&quot;243&quot; x=&quot;707&quot; y=&quot;1077&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-171&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=5;spacingBottom=5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;ul style=&amp;quot;padding-left: 10px;&amp;quot;&amp;gt;&amp;lt;li&amp;gt;Destroy pod/container&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Remove ephemeral storage&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Verify no data leakage&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Archive audit logs&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Update metrics&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;120&quot; width=&quot;244&quot; x=&quot;706&quot; y=&quot;1300&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-172&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-161&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=16;labelBackgroundColor=none;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-162&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-173&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-162&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=16;labelBackgroundColor=none;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-163&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-174&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-163&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-170&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-175&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-170&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=16;labelBackgroundColor=none;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-171&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-178&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;830&quot; y=&quot;977&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;863&quot; y=&quot;977&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-238&quot; parent=&quot;1&quot; style=&quot;text;whiteSpace=wrap;html=1;fontColor=default;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;&amp;lt;span style=&amp;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;&amp;quot;&amp;gt;[1] PROVISIONING&amp;lt;/span&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;160&quot; x=&quot;680&quot; y=&quot;210&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-239&quot; parent=&quot;1&quot; style=&quot;text;whiteSpace=wrap;html=1;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;span style=&amp;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;&amp;quot;&amp;gt;&amp;lt;font&amp;gt;[2] INITIALIZATION&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;160&quot; x=&quot;670&quot; y=&quot;413&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-240&quot; parent=&quot;1&quot; style=&quot;text;whiteSpace=wrap;html=1;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b style=&amp;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;&amp;quot;&amp;gt;&amp;lt;font&amp;gt;[3] ACTIVE STATE&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;140&quot; x=&quot;680&quot; y=&quot;593&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-241&quot; parent=&quot;1&quot; style=&quot;text;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=default;fontSize=16;&quot; value=&quot;&amp;lt;b style=&amp;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;&amp;quot;&amp;gt;[4] SHUTDOWN&amp;lt;/b&amp;gt;&amp;lt;br align=&amp;quot;left&amp;quot; style=&amp;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;&amp;quot;&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;130&quot; x=&quot;680&quot; y=&quot;1039&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-242&quot; parent=&quot;1&quot; style=&quot;text;whiteSpace=wrap;html=1;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b style=&amp;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;&amp;quot;&amp;gt;&amp;lt;font&amp;gt;[5] CLEANUP&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;110&quot; x=&quot;680&quot; y=&quot;1260&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Aohr6ZUG_8G47jTySdQy-3&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;830&quot; y=&quot;888&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;865&quot; y=&quot;888&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Aohr6ZUG_8G47jTySdQy-4&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=16;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;890&quot; y=&quot;903&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;890&quot; y=&quot;893&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;890&quot; y=&quot;919&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Aohr6ZUG_8G47jTySdQy-5&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=16;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;889&quot; y=&quot;820&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;889&quot; y=&quot;810&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;889&quot; y=&quot;836&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;T9pB_ysCbEszbst1waTv-1&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;828&quot; y=&quot;803&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;863&quot; y=&quot;803&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><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 &amp; 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 &amp; 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&#xa;</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="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;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&quot; version=&quot;29.2.7&quot;&gt;&#10; &lt;diagram name=&quot;Architecture Overview&quot; id=&quot;lUb2Yy0VcGrDcHUANlMM&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;1678&quot; dy=&quot;804&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-41&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;CUSTOMER ADMIN&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1170&quot; width=&quot;167&quot; x=&quot;20&quot; y=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-42&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;MINDED BACKEND&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1170&quot; width=&quot;163&quot; x=&quot;385&quot; y=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-43&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;KMS&amp;#xa;(KEY MGMT)&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1170&quot; width=&quot;150&quot; x=&quot;766&quot; y=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-44&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;AGENT POD&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1170&quot; width=&quot;150&quot; x=&quot;966&quot; y=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-45&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-41&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-42&quot; value=&quot;1. Provide Credentials&amp;#xa;(via secure form)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;294&quot; y=&quot;123&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-46&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;2. Request Encryption Key&amp;#xa;(per tenant)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;662&quot; y=&quot;157&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;157&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;840.5&quot; y=&quot;157&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-47&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;3. Return Encryption Key&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;665&quot; y=&quot;201&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;840.5&quot; y=&quot;201&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;201&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-48&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;4. Encrypt Credentials&amp;#xa;(AES-256-GCM)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;662&quot; y=&quot;254&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;254&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;840.5&quot; y=&quot;254&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-49&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-42&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-42&quot; value=&quot;5. Store (Database)&amp;#xa;{&amp;#xa; agentId: &amp;quot;...&amp;quot;,&amp;#xa; encrypted: &amp;quot;...&amp;quot;,&amp;#xa; keyId: &amp;quot;...&amp;quot;,&amp;#xa; metadata: {...}&amp;#xa;}&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;0.1489&quot; y=&quot;72&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;518&quot; y=&quot;315&quot; /&gt;&#10; &lt;mxPoint x=&quot;518&quot; y=&quot;345&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-50&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-42&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-41&quot; value=&quot;6. Confirm Stored Securely&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;297&quot; y=&quot;393&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-51&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;7. Agent needs to execute&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;765&quot; y=&quot;424&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;1040.5&quot; y=&quot;424&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;424&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-52&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-44&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-42&quot; value=&quot;8. Request Credentials&amp;#xa;(with auth token)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;765&quot; y=&quot;489&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-53&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-42&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-42&quot; value=&quot;9. Verify Token &amp;amp; Permissions&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.0298&quot; y=&quot;112&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;518&quot; y=&quot;537&quot; /&gt;&#10; &lt;mxPoint x=&quot;518&quot; y=&quot;567&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-54&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-42&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-43&quot; value=&quot;10. Fetch Encryption Key&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;662&quot; y=&quot;615&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-55&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-43&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-42&quot; value=&quot;11. Return Key&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;665&quot; y=&quot;663&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-56&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-42&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-43&quot; value=&quot;12. Decrypt Credentials&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;662&quot; y=&quot;711&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-57&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-42&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-44&quot; value=&quot;13. Return (in memory only)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;762&quot; y=&quot;759&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-58&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-44&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-44&quot; value=&quot;14. Use credentials&amp;#xa;(RPA action)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.18&quot; y=&quot;58&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;1&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;1092&quot; y=&quot;807&quot; /&gt;&#10; &lt;mxPoint x=&quot;1092&quot; y=&quot;837&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-59&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-44&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-44&quot; value=&quot;15. Clear from memory&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.225&quot; y=&quot;68&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;-5&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;1092&quot; y=&quot;885&quot; /&gt;&#10; &lt;mxPoint x=&quot;1092&quot; y=&quot;915&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-60&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;16. Log Usage&amp;#xa;(audit trail)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;765&quot; y=&quot;945&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;1040.5&quot; y=&quot;945&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;945&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-61&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;17. Rotate Credentials&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;294&quot; y=&quot;976&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;102.82352941176464&quot; y=&quot;976&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;466&quot; y=&quot;976&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-62&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;18. Revoke Old&amp;#xa;(immediately)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;662&quot; y=&quot;1017&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;1017&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;840.5&quot; y=&quot;1017&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-63&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;19. Encrypt &amp;amp; Store New&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;665&quot; y=&quot;1062&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;840.5&quot; y=&quot;1062&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;1062&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-64&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;curved=1;dashed=1;dashPattern=2 3;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;20. Active Sessions Notified&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.0447&quot; y=&quot;102&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;-1&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;518&quot; y=&quot;1108&quot; /&gt;&#10; &lt;mxPoint x=&quot;518&quot; y=&quot;1138&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;1108&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;465.82352941176487&quot; y=&quot;1138&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><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 &amp; 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 &amp; 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="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;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&quot; version=&quot;29.2.7&quot;&gt;&#10; &lt;diagram name=&quot;Architecture Overview&quot; id=&quot;lUb2Yy0VcGrDcHUANlMM&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;2194&quot; dy=&quot;1051&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-89&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;WEBHOOK/ &amp;#xa;SCHEDULE&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1246&quot; width=&quot;150&quot; x=&quot;208&quot; y=&quot;1070&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-91&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;AGENT FLOW&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1246&quot; width=&quot;150&quot; x=&quot;420&quot; y=&quot;1070&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-92&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;SECURITY GATEWAY&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1246&quot; width=&quot;173&quot; x=&quot;654&quot; y=&quot;1070&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-93&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;RPA NODE&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1246&quot; width=&quot;150&quot; x=&quot;920&quot; y=&quot;1070&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-94&quot; parent=&quot;1&quot; style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&amp;quot;edgeStyle&amp;quot;:&amp;quot;elbowEdgeStyle&amp;quot;,&amp;quot;elbow&amp;quot;:&amp;quot;vertical&amp;quot;,&amp;quot;curved&amp;quot;:0,&amp;quot;rounded&amp;quot;:0};size=65;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;CUSTOMER BACKEND&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;1246&quot; width=&quot;185&quot; x=&quot;1350&quot; y=&quot;1060&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-96&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;2. VALIDATION CHECKS&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;626&quot; y=&quot;1235&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;493.8333333333335&quot; y=&quot;1235&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;740&quot; y=&quot;1235&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-97&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;Verify URL is whitelisted&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.0601&quot; y=&quot;89&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;-1&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1269&quot; /&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1299&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;739.4615384615386&quot; y=&quot;1269&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;739.4615384615386&quot; y=&quot;1299&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-98&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-92&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-92&quot; value=&quot;Verify action is allowed&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.0301&quot; y=&quot;89&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1347&quot; /&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1377&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-99&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;Validate params &amp;#xa;against schema&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; y=&quot;62&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;1&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;788&quot; y=&quot;1425&quot; /&gt;&#10; &lt;mxPoint x=&quot;788&quot; y=&quot;1455&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;736.3333333333335&quot; y=&quot;1425&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;736.3333333333335&quot; y=&quot;1455&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-100&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-92&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-92&quot; value=&quot;Check param signatures&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;0.0301&quot; y=&quot;89&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;-1&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1503&quot; /&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1533&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-101&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-92&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-92&quot; value=&quot;Verify agent permissions&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;0.0601&quot; y=&quot;89&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1581&quot; /&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1611&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-102&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-92&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-92&quot; value=&quot;3. Request Credentials&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.0601&quot; y=&quot;89&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;-1&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1659&quot; /&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1689&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-103&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-92&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-92&quot; value=&quot;4. Log Request (audit trail)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.0301&quot; y=&quot;109&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1737&quot; /&gt;&#10; &lt;mxPoint x=&quot;791&quot; y=&quot;1767&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-104&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-92&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-93&quot; value=&quot;5. Pass to RPA (if all checks passed)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;914&quot; y=&quot;1815&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-105&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;curved=1;endArrow=block;rounded=0;align=left;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;6. EXECUTE&amp;#xa;Check URL again (defense in depth)&amp;#xa;Sanitize input&amp;#xa;Prevent code injection&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-0.0488&quot; y=&quot;18&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;1122&quot; y=&quot;1842&quot; /&gt;&#10; &lt;mxPoint x=&quot;1122&quot; y=&quot;1872&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;993.5&quot; y=&quot;1842&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;993.5&quot; y=&quot;1872&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-106&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;7. Make Request&amp;#xa;POST /api/action (TLS encrypted)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;1340&quot; y=&quot;1956&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;993.9615384615386&quot; y=&quot;1956&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;1442&quot; y=&quot;1956&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-107&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;curved=1;endArrow=block;rounded=0;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;Process Action&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;-1&quot; y=&quot;-21&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;-11&quot; y=&quot;-4&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;1490&quot; y=&quot;1993&quot; /&gt;&#10; &lt;mxPoint x=&quot;1510&quot; y=&quot;2034&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;1441.461538461538&quot; y=&quot;1993&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;1441.461538461538&quot; y=&quot;2034&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-108&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;8. Response&amp;#xa;{ success: true, data: {...} }&amp;#xa;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;0.1237&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;1343&quot; y=&quot;2087&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;1442&quot; y=&quot;2087&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;993.5&quot; y=&quot;2087&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-109&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;10. Log Response (audit trail)&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot; /&gt;&#10; &lt;mxPoint x=&quot;1000&quot; y=&quot;2123&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;739.4615384615386&quot; y=&quot;2123.5384615384614&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-110&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;11. Return Result&amp;#xa;{ success: true, data: {...}, executionId }&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; x=&quot;0.0562&quot; y=&quot;-22&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;1&quot; as=&quot;offset&quot; /&gt;&#10; &lt;Array as=&quot;points&quot; /&gt;&#10; &lt;mxPoint x=&quot;740&quot; y=&quot;2151.996666666667&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;493.8333333333335&quot; y=&quot;2151.996666666667&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-111&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;qiHXacqECXXAYTJ9b62k-92&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-91&quot; value=&quot;12. Continue Flow&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;629&quot; y=&quot;2211&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-114&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;1. EXECUTE RPA ACTION&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;630&quot; y=&quot;1189&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;498&quot; y=&quot;1189&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;744&quot; y=&quot;1189&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-117&quot; edge=&quot;1&quot; parent=&quot;1&quot; style=&quot;verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;labelBackgroundColor=none;fontSize=16;&quot; target=&quot;qiHXacqECXXAYTJ9b62k-91&quot; value=&quot;trigger&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;395&quot; y=&quot;1160&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;mxPoint x=&quot;283&quot; y=&quot;1160&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;473&quot; y=&quot;1160&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-254&quot; parent=&quot;1&quot; style=&quot;text;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontSize=16;&quot; value=&quot;&amp;lt;span style=&amp;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;&amp;quot;&amp;gt;9. SANITIZE Response&amp;lt;/span&amp;gt;&amp;lt;br style=&amp;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;&amp;quot;&amp;gt;&amp;lt;span style=&amp;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;&amp;quot;&amp;gt;&amp;amp;nbsp;Remove secrets&amp;lt;/span&amp;gt;&amp;lt;br style=&amp;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;&amp;quot;&amp;gt;&amp;lt;span style=&amp;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;&amp;quot;&amp;gt;Validate format&amp;lt;/span&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;80&quot; width=&quot;200&quot; x=&quot;1140&quot; y=&quot;2100&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><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="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;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&quot; version=&quot;29.2.7&quot;&gt;&#10; &lt;diagram name=&quot;Architecture Overview&quot; id=&quot;lUb2Yy0VcGrDcHUANlMM&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;576&quot; dy=&quot;683&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-26&quot; parent=&quot;1&quot; style=&quot;swimlane;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;CUSTOMER ENVIRONMENT&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;200&quot; width=&quot;500&quot; x=&quot;1280&quot; y=&quot;329&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-27&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-26&quot; style=&quot;swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;Backend/Backoffice Site (Customer&amp;#39;s Private Network)&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;100&quot; width=&quot;460&quot; x=&quot;20&quot; y=&quot;54&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-28&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-27&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Internal APIs&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;130&quot; x=&quot;18&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-29&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-27&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Business Systems&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;140&quot; x=&quot;160&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-30&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-27&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Databases&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;130&quot; x=&quot;313&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-31&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-26&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;RPA Access (IP Whitelisted)&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;20&quot; width=&quot;234&quot; x=&quot;143&quot; y=&quot;168&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-51&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;S4bgjokdCwapD7wrW9yR-32&quot; style=&quot;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;&quot; target=&quot;S4bgjokdCwapD7wrW9yR-26&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-32&quot; parent=&quot;1&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;INTERNET BOUNDARY&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;150&quot; x=&quot;1455&quot; y=&quot;556&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-50&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;S4bgjokdCwapD7wrW9yR-34&quot; style=&quot;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;&quot; target=&quot;S4bgjokdCwapD7wrW9yR-32&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-34&quot; parent=&quot;1&quot; style=&quot;swimlane;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;MINDED INFRASTRUCTURE (K8S)&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;440&quot; width=&quot;500&quot; x=&quot;1280&quot; y=&quot;610&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-35&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-34&quot; style=&quot;swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;VPC (ISOLATED - OUTBOUND ONLY)&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;260&quot; width=&quot;460&quot; x=&quot;20&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-36&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-35&quot; style=&quot;swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;K8s Pod - Agent Instance&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;210&quot; width=&quot;420&quot; x=&quot;20&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-37&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-36&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Agent Runtime&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;100&quot; x=&quot;40&quot; y=&quot;45&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-38&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-36&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;RPA Node&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;100&quot; x=&quot;160&quot; y=&quot;45&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-39&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-36&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Security Monitor&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;100&quot; x=&quot;280&quot; y=&quot;45&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-40&quot; edge=&quot;1&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-36&quot; style=&quot;endArrow=classic;html=1;strokeWidth=2;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;140&quot; y=&quot;65&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;160&quot; y=&quot;65&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-41&quot; edge=&quot;1&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-36&quot; style=&quot;endArrow=classic;html=1;strokeWidth=2;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;260&quot; y=&quot;65&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;280&quot; y=&quot;65&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-42&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-36&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;ul style=&amp;quot;padding-left: 0px;&amp;quot;&amp;gt;&amp;lt;li&amp;gt;No Inbound Traffic&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Outbound to Whitelisted IPs Only&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Encrypted Credentials (Runtime Decrypt)&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;URL/Action Restrictions&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Audit Logging&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; width=&quot;340&quot; x=&quot;40&quot; y=&quot;85&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-43&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-34&quot; style=&quot;swimlane;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontSize=16;fontStyle=1;labelBackgroundColor=none;&quot; value=&quot;MINDED BACKEND (Orchestrator)&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;90&quot; width=&quot;460&quot; x=&quot;20&quot; y=&quot;320&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-44&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-43&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Credential Management&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;140&quot; x=&quot;20&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-45&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-43&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Agent Lifecycle&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;135&quot; x=&quot;165&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;S4bgjokdCwapD7wrW9yR-46&quot; parent=&quot;S4bgjokdCwapD7wrW9yR-43&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#e6e6e6;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;Audit Logs&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;130&quot; x=&quot;310&quot; y=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><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>
@@ -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="641px" height="681px" viewBox="0 0 641 681" content="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;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&quot; version=&quot;29.2.7&quot;&gt;&#10; &lt;diagram name=&quot;Architecture Overview&quot; id=&quot;lUb2Yy0VcGrDcHUANlMM&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;576&quot; dy=&quot;683&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-243&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;align=center;spacingTop=10;fillColor=#f9f9f9;strokeColor=#333333;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;MINDED INFRASTRUCTURE&amp;lt;/b&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;680&quot; width=&quot;640&quot; x=&quot;1080&quot; y=&quot;830&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-244&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=10;fillColor=#ffffff;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;TENANT A (Customer A)&amp;lt;/b&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;240&quot; width=&quot;580&quot; x=&quot;1110&quot; y=&quot;880&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-245&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=10;fillColor=#f5f5f5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;Namespace&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;tenant-a&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Agent Pods:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- agent-a-1&amp;lt;br&amp;gt;- agent-a-2&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Network:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- policy-a&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;190&quot; width=&quot;220&quot; x=&quot;1130&quot; y=&quot;920&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-246&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=10;fillColor=#f5f5f5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;Encryption&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;Key: key_a&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Credentials DB:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- encrypted with key_a&amp;lt;br&amp;gt;- isolated schema&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;IP Whitelist:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- customer-a-ips.com&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;190&quot; width=&quot;260&quot; x=&quot;1410&quot; y=&quot;920&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-247&quot; connectable=&quot;0&quot; parent=&quot;1&quot; style=&quot;group;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;40&quot; width=&quot;580&quot; x=&quot;1110&quot; y=&quot;1140&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-248&quot; edge=&quot;1&quot; parent=&quot;qiHXacqECXXAYTJ9b62k-247&quot; style=&quot;endArrow=none;html=1;strokeWidth=2;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;10&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;580&quot; y=&quot;10&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-249&quot; parent=&quot;qiHXacqECXXAYTJ9b62k-247&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;ISOLATION BOUNDARY&amp;lt;/b&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;580&quot; y=&quot;5&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-250&quot; edge=&quot;1&quot; parent=&quot;qiHXacqECXXAYTJ9b62k-247&quot; style=&quot;endArrow=none;html=1;strokeWidth=2;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry height=&quot;50&quot; relative=&quot;1&quot; width=&quot;50&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint y=&quot;30&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;580&quot; y=&quot;30&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-251&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;align=left;spacingLeft=10;spacingTop=10;fillColor=#ffffff;strokeColor=#666666;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;TENANT B (Customer B)&amp;lt;/b&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;240&quot; width=&quot;580&quot; x=&quot;1110&quot; y=&quot;1200&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-252&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=10;fillColor=#f5f5f5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;Namespace&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;tenant-b&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Agent Pods:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- agent-b-1&amp;lt;br&amp;gt;- agent-b-2&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Network:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- policy-b&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;190&quot; width=&quot;220&quot; x=&quot;1130&quot; y=&quot;1240&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;qiHXacqECXXAYTJ9b62k-253&quot; parent=&quot;1&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;spacingTop=10;fillColor=#f5f5f5;fontSize=16;labelBackgroundColor=none;&quot; value=&quot;&amp;lt;b&amp;gt;Encryption&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;Key: key_b&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Credentials DB:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- encrypted with key_b&amp;lt;br&amp;gt;- isolated schema&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;IP Whitelist:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;- customer-b-ips.net&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;190&quot; width=&quot;260&quot; x=&quot;1410&quot; y=&quot;1240&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="qiHXacqECXXAYTJ9b62k-243"><g transform="translate(0.5,0.5)"><rect x="0" y="0" width="640" height="680" fill="#f9f9f9" stroke="#333333" pointer-events="all" style="fill: light-dark(rgb(249, 249, 249), rgb(23, 23, 23)); 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 flex-start; justify-content: unsafe center; width: 638px; height: 1px; padding-top: 17px; 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; "><b>MINDED INFRASTRUCTURE</b></div></div></div></foreignObject><text x="320" y="33" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px" text-anchor="middle">MINDED INFRASTRUCTURE</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-244"><g transform="translate(0.5,0.5)"><rect x="30" y="50" width="580" height="240" fill="#ffffff" stroke="#666666" 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));"/></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: 568px; height: 1px; padding-top: 67px; margin-left: 42px;"><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>TENANT A (Customer A)</b></div></div></div></foreignObject><text x="42" y="83" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">TENANT A (Customer A)</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-245"><g transform="translate(0.5,0.5)"><rect x="50" y="90" width="220" height="190" fill="#f5f5f5" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); 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: 208px; height: 1px; padding-top: 190px; margin-left: 62px;"><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>Namespace</b><br />tenant-a<br /><br /><b>Agent Pods:</b><br />- agent-a-1<br />- agent-a-2<br /><br /><b>Network:</b><br />- policy-a</div></div></div></foreignObject><text x="62" y="195" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Namespace...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-246"><g transform="translate(0.5,0.5)"><rect x="330" y="90" width="260" height="190" fill="#f5f5f5" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); 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: 248px; height: 1px; padding-top: 190px; margin-left: 342px;"><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>Encryption</b><br />Key: key_a<br /><br /><b>Credentials DB:</b><br />- encrypted with key_a<br />- isolated schema<br /><br /><b>IP Whitelist:</b><br />- customer-a-ips.com</div></div></div></foreignObject><text x="342" y="195" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Encryption...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-247"><g transform="translate(0.5,0.5)"/><g data-cell-id="qiHXacqECXXAYTJ9b62k-248"><g><path d="M 30 320 L 610 320" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-249"><g transform="translate(0.5,0.5)"><rect x="30" y="315" width="580" 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: 578px; height: 1px; padding-top: 330px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #666666; "><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: light-dark(#666666, #959595); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>ISOLATION BOUNDARY</b></div></div></div></foreignObject><text x="320" y="335" fill="#666666" font-family="Helvetica" font-size="16px" text-anchor="middle">ISOLATION BOUNDARY</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-250"><g><path d="M 30 340 L 610 340" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-251"><g transform="translate(0.5,0.5)"><rect x="30" y="370" width="580" height="240" fill="#ffffff" stroke="#666666" 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));"/></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: 568px; height: 1px; padding-top: 387px; margin-left: 42px;"><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>TENANT B (Customer B)</b></div></div></div></foreignObject><text x="42" y="403" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">TENANT B (Customer B)</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-252"><g transform="translate(0.5,0.5)"><rect x="50" y="410" width="220" height="190" fill="#f5f5f5" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); 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: 208px; height: 1px; padding-top: 510px; margin-left: 62px;"><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>Namespace</b><br />tenant-b<br /><br /><b>Agent Pods:</b><br />- agent-b-1<br />- agent-b-2<br /><br /><b>Network:</b><br />- policy-b</div></div></div></foreignObject><text x="62" y="515" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Namespace...</text></switch></g></g></g><g data-cell-id="qiHXacqECXXAYTJ9b62k-253"><g transform="translate(0.5,0.5)"><rect x="330" y="410" width="260" height="190" fill="#f5f5f5" stroke="#000000" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); 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: 248px; height: 1px; padding-top: 510px; margin-left: 342px;"><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>Encryption</b><br />Key: key_b<br /><br /><b>Credentials DB:</b><br />- encrypted with key_b<br />- isolated schema<br /><br /><b>IP Whitelist:</b><br />- customer-b-ips.net</div></div></div></foreignObject><text x="342" y="515" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="16px">Encryption...</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>
package/docs/SUMMARY.md CHANGED
@@ -37,6 +37,7 @@
37
37
  - [Browser Task](platform/browserTask.md)
38
38
  - [SSO (Single Sign-On)](platform/sso.md)
39
39
  - [On-prem Deployment](platform/on-prem.md)
40
+ - [Security Architecture](platform/security-architecture.md)
40
41
 
41
42
  ## Tooling
42
43
 
@@ -0,0 +1,361 @@
1
+ # **Minded Agent Security Architecture**
2
+
3
+ Minded AI agents automate complex workflows in customer environments while maintaining enterprise-grade security. This architecture enables powerful automation capabilities against your sensitive systems and data, with multiple layers of protection to ensure your infrastructure remains secure.
4
+
5
+ ## **Security Approach**
6
+
7
+ Minded is designed to provide maximum automation power while maintaining zero-trust security. You can automate mission-critical workflows with confidence, while Minded ensures every action is verified, logged, and restricted through multiple security layers.
8
+
9
+ ## Quick Navigation
10
+
11
+ - [System Overview](#️-system-overview)
12
+ - [Security Layers](#️-security-layers)
13
+ - [Network Isolation](#layer-1-network-isolation)
14
+ - [Authentication & Authorization](#layer-2-authentication--authorization)
15
+ - [RPA Security Controls](#layer-3-rpa-security-controls)
16
+ - [Runtime Security](#layer-4-runtime-security)
17
+ - [Monitoring & Audit](#layer-5-monitoring--audit)
18
+ - [Credential Lifecycle Flow](#️-credential-lifecycle-flow)
19
+ - [RPA Execution Flow](#️-rpa-execution-flow-with-security-controls)
20
+ - [Agent Lifecycle Security](#️-agent-lifecycle-security)
21
+ - [Tenant Isolation Architecture](#️-tenant-isolation-architecture)
22
+ - [Infrastructure Security](#️-infrastructure-security)
23
+ - [Agent Behavior Verification](#️-agent-behavior-verification--action-limits)
24
+ - [Security FAQs](#security-faqs)
25
+ - [See Also](#see-also)
26
+
27
+ ---
28
+
29
+ ## 🏗️ System Overview
30
+
31
+ <figure><img src="../.gitbook/assets/system-overview.svg" alt="Minded System Overview Diagram"></figure>
32
+
33
+ **Key Principles**:
34
+
35
+ - **Zero Trust**: Every action verified, logged, and restricted
36
+ - **Least Privilege**: Agents only access what they need, when they need it
37
+ - **Defense in Depth**: Multiple security layers protect against breaches
38
+ - **Tenant Isolation**: Complete separation between customer environments
39
+
40
+ ---
41
+
42
+ ## 🛡️ Security Layers
43
+
44
+ ### Layer 1: Network Isolation
45
+
46
+ ---
47
+
48
+ **VPC Configuration:**
49
+
50
+ - All inbound traffic: BLOCKED
51
+ - Outbound traffic: WHITELISTED IPs only
52
+ - Internal pod-to-pod: ISOLATED by tenant + namespace
53
+
54
+ **IP Whitelisting:**
55
+
56
+ - Customer provides allowed IP ranges
57
+ - Minded agent can ONLY connect to those IPs
58
+ - Dynamic IP updates via Minded platform
59
+
60
+ **Traffic Monitoring:**
61
+
62
+ - All network requests logged
63
+ - Alerts on unauthorized connection attempts
64
+ - Automatic blocking of suspicious patterns
65
+
66
+ ### Layer 2: Authentication & Authorization
67
+
68
+ ---
69
+
70
+ **Storage:**
71
+
72
+ - Credentials encrypted at rest (AES-256-GCM)
73
+ - Keys stored in AWS Key Management Service (KMS)
74
+
75
+ **Runtime:**
76
+
77
+ - Credentials decrypted only during execution
78
+ - Never stored in memory after use
79
+ - Automatic expiration/rotation
80
+
81
+ **Access Control:**
82
+
83
+ - Agent-specific credentials (not shared)
84
+ - MFA support for sensitive operations
85
+ - Role-based access control (RBAC)
86
+ - Immediate credential revocation capability
87
+
88
+ ### Layer 3: RPA Security Controls
89
+
90
+ ---
91
+
92
+ **URL Restrictions:**
93
+
94
+ - Whitelist of allowed URLs/domains
95
+ - Regex pattern matching for dynamic URLs
96
+ - Block attempts to modify URL parameters
97
+ - Prevent URL redirection attacks
98
+
99
+ **Action Limitations:**
100
+
101
+ - Predefined set of allowed actions
102
+ - Parameter validation against schemas
103
+ - Read-only mode for sensitive operations
104
+ - Block file upload/download outside scope
105
+
106
+ **Parameter Integrity:**
107
+
108
+ - Hash-based verification of parameters
109
+ - Signature validation for critical actions
110
+ - Block modification of flow-defined values
111
+ - Audit trail for all parameter changes
112
+
113
+ ### Layer 4: Runtime Security
114
+
115
+ ---
116
+
117
+ **Pod/Container Security:**
118
+
119
+ - Non-root user execution
120
+ - Read-only file system (except temp dirs)
121
+ - Resource limits (CPU, memory, network)
122
+ - Security context constraints
123
+ - Regular image scanning for vulnerabilities
124
+
125
+ **Process Monitoring:**
126
+
127
+ - Antivirus/antimalware scanning
128
+ - Behavioral analysis for anomalies
129
+
130
+ **Lifecycle Management:**
131
+
132
+ - Auto-shutdown when idle (configurable timeout)
133
+ - No persistent state on disk
134
+ - Fresh instance per execution (optional)
135
+
136
+ **Data Protection:**
137
+
138
+ - Encryption in transit (TLS 1.2)
139
+ - Encryption at rest (all storage volumes)
140
+ - Secure deletion of temporary data
141
+
142
+ ### Layer 5: Monitoring & Audit
143
+
144
+ ---
145
+
146
+ **Audit Logging:**
147
+
148
+ - Every action logged with timestamp
149
+ - User identity, agent ID, action type
150
+ - Input/output parameters (sanitized)
151
+ - Log retention policy (90 days default)
152
+
153
+ **Real-time Monitoring:**
154
+
155
+ - Dashboard for active agent sessions
156
+ - Resource utilization tracking
157
+ - Error rate and failure monitoring
158
+ - Network traffic analysis
159
+
160
+ **Alerting:**
161
+
162
+ - Unauthorized access attempts
163
+ - Unusual job triggers
164
+ - Credential access outside business hours
165
+ - Failed authentication attempts
166
+ - Suspicious parameter modifications
167
+ - Policy violations
168
+
169
+ **Integration:**
170
+
171
+ - Email/Slack alerts
172
+ - Customer SOC integration
173
+
174
+ ---
175
+
176
+ ## 1️⃣ Credential Lifecycle Flow
177
+
178
+ **How credentials are managed from creation to revocation**
179
+
180
+ <figure><img src="../.gitbook/assets/credentials-lifecycle.svg" alt="Minded Credentials Lifecycle Flow Diagram"></figure>
181
+
182
+ **Key Security Features**:
183
+
184
+ - Credentials never stored in plaintext
185
+ - Encryption keys managed separately from encrypted data
186
+ - Credentials only decrypted at runtime, never persisted
187
+ - Immediate revocation capability
188
+ - Complete audit trail
189
+
190
+ ---
191
+
192
+ ## 2️⃣ RPA Execution Flow Security Controls
193
+
194
+ **How we run security checks for RPA action executions**
195
+
196
+ <figure><img src="../.gitbook/assets/rpa-execution-flow.svg" alt="Minded RPA Execution Flow Security Diagram"></figure>
197
+
198
+ **Default checklist for action verification**:
199
+
200
+ 1. Is the URL on your allowed list?
201
+ 2. Is this action permitted for this agent?
202
+ 3. Are the parameters valid and properly formatted?
203
+ 4. Have the parameters been tampered with?
204
+ 5. Does the agent have permission to do this?
205
+ 6. Log the request before running
206
+ 7. Double-check the URL before making the request
207
+ 8. Clean up any unsafe input
208
+ 9. Block any attempts to inject code
209
+ 10. Remove sensitive data from the response
210
+ 11. Log the result after completion
211
+
212
+ **What happens when a check doesn't pass**:
213
+
214
+ 1. The action is blocked immediately
215
+ 2. All the details are logged
216
+ 3. Extreme violations may suspend the agent until further investigation
217
+
218
+ ---
219
+
220
+ ## 3️⃣ Agent Lifecycle Security
221
+
222
+ **From deployment to shutdown - security at every stage**
223
+
224
+ <figure><img src="../.gitbook/assets/agent-lifecycle-security.svg" alt="Minded Agent Lifecycle Security Diagram"></figure>
225
+
226
+ ### Idle Timeout Configuration
227
+
228
+ Default: 30 minutes of inactivity
229
+ Options:
230
+
231
+ - Always-on (for critical agents)
232
+ - Custom timeout (5-120 minutes)
233
+ - Immediate shutdown after task
234
+
235
+ Benefits:
236
+
237
+ - Reduce attack surface
238
+ - Lower resource costs
239
+ - Fresh state for each execution
240
+
241
+ ---
242
+
243
+ ## 4️⃣ Tenant Isolation Architecture
244
+
245
+ **Ensuring complete separation between customer environments**
246
+
247
+ <figure><img src="../.gitbook/assets/tenant-isolation-overview.svg" alt="Minded Tenant Isolation Architecture Diagram"></figure>
248
+
249
+ ### Isolation Guarantees
250
+
251
+ **Network:**
252
+
253
+ - Separate K8s namespaces
254
+ - Network policies prevent cross-tenant traffic
255
+ - Separate VPCs (enterprise tier)
256
+
257
+ **Data:**
258
+
259
+ - Separate encryption keys per tenant
260
+ - Logical database isolation (schemas/tables)
261
+ - Physical database isolation (enterprise tier)
262
+
263
+ **Compute:**
264
+
265
+ - No pod sharing between tenants
266
+ - Resource quotas per tenant
267
+ - Dedicated nodes (enterprise tier)
268
+
269
+ **Credentials:**
270
+
271
+ - Cannot access other tenant's credentials
272
+ - Cannot list other tenant's agents
273
+ - Cannot execute actions on other tenant's behalf
274
+
275
+ **Audit Logs:**
276
+
277
+ - Separate log streams per tenant
278
+ - Cannot view other tenant's logs
279
+ - Cannot tamper with other tenant's logs
280
+
281
+ ---
282
+
283
+ ## 5️⃣ Infrastructure Security
284
+
285
+ **How we protect the systems running your agents**
286
+
287
+ Think of each agent as running in its own secure, locked room. Here's what that means in practice:
288
+
289
+ - **No elevated privileges** - Agents run as standard users, never as administrators. They can't make system-level changes.
290
+ - **Nothing can be modified** - The agent's environment is read-only. Even if something tried to tamper with it, the changes wouldn't stick.
291
+ - **Complete isolation** - Agents can't see or touch the underlying infrastructure. They operate in their own sealed environment.
292
+ - **Guardrails on resources** - Each agent has strict limits on computing power and memory. They can't consume more than allocated.
293
+ - **Regularly checked for vulnerabilities** - We continuously scan our systems for security issues and patch them promptly.
294
+
295
+ ---
296
+
297
+ ## 6️⃣ Agent Behavior Verification & Action Limits
298
+
299
+ **Ensuring agents only perform intended actions within defined boundaries**
300
+
301
+ ### Webhook Security
302
+
303
+ Every webhook that triggers an agent is verified before processing:
304
+
305
+ - **Signed payloads** - All webhooks include an HMAC-SHA256 signature that we validate
306
+ - **Timestamp checks** - We reject webhooks older than 5 minutes to prevent replay attacks
307
+ - **Source validation** - Webhooks must come from whitelisted IPs with valid API keys
308
+
309
+ ### What Gets Logged
310
+
311
+ Every agent action creates a complete audit trail:
312
+
313
+ - Unique ID for tracking the specific invocation
314
+ - Start and end timestamps
315
+ - How it was triggered (webhook, schedule, or manual)
316
+ - Input parameters (with sensitive data removed)
317
+ - All actions performed and their results
318
+ - Any resources that were created or modified
319
+
320
+ ### Reconciliation
321
+
322
+ We continuously verify that agents only do what they're supposed to:
323
+
324
+ - Compare expected actions against actual actions
325
+ - Alert immediately if there are discrepancies
326
+ - Generate daily reconciliation reports for review
327
+
328
+ ---
329
+
330
+ ## See Also
331
+
332
+ For more information on related security and operational topics, see:
333
+
334
+ - **[Secrets Management](secrets.md)** - Detailed guide on storing and managing credentials securely
335
+ - **[Operator Documentation](operator.md)** - Operational procedures and best practices for running agents
336
+ - **[On-Premise Deployment](on-prem.md)** - Security considerations for self-hosted Minded installations
337
+ - **[Browser Task (RPA)](browserTask.md)** - Technical details on RPA capabilities and configurations
338
+
339
+ ---
340
+
341
+ ## Security FAQs
342
+
343
+ ### Q: What happens if an agent tries to access systems outside my whitelist?
344
+
345
+ The request is blocked immediately at multiple layers. First, our security gateway checks the URL against your whitelist. Even if that somehow fails, network policies at the infrastructure level block the connection. All attempts are logged, alerts are triggered, and repeated violations will suspend the agent automatically.
346
+
347
+ ### Q: How do you protect my credentials?
348
+
349
+ Credentials are encrypted using AES-256 before storage, with encryption keys managed separately in AWS KMS. They're only decrypted in memory during execution and cleared immediately after use. Even if someone gained access to our database, they'd only find encrypted data that's useless without the keys.
350
+
351
+ ### Q: Can one customer's agent access another customer's data?
352
+
353
+ No. Each customer operates in a completely isolated environment with separate namespaces, encryption keys, and network policies. There's no pathway for one tenant's agent to reach another tenant's resources - the infrastructure physically prevents it.
354
+
355
+ ### Q: How do you prevent malicious code from running?
356
+
357
+ All action parameters are validated against schemas and checked for tampering using signatures. Inputs are sanitized to remove dangerous content. We scan all container images for vulnerabilities before deployment and monitor runtime behavior for anomalies.
358
+
359
+ ### Q: What visibility do I have into agent activity?
360
+
361
+ Every action is logged with full details including timestamps, parameters, and results. You can access audit logs, set up alerts, and integrate with your existing monitoring tools. You'll know exactly what your agents are doing at all times.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minded-ai/mindedjs",
3
- "version": "3.0.4-beta.2",
3
+ "version": "3.0.5",
4
4
  "description": "MindedJS is a TypeScript library for building agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -72,4 +72,4 @@
72
72
  "peerDependencies": {
73
73
  "playwright": "^1.55.0"
74
74
  }
75
- }
75
+ }
@@ -11,7 +11,8 @@ import { Environment } from '../types/Platform.types';
11
11
  export type Playbook = {
12
12
  id: string;
13
13
  name: string;
14
- blocks: OutputBlockData[];
14
+ blocks?: OutputBlockData[];
15
+ prompt?: string;
15
16
  };
16
17
 
17
18
  /**
@@ -147,7 +148,7 @@ function loadPlaybooksFromDirectories(directories: string[]): Playbook[] {
147
148
  const fileContent = fs.readFileSync(file, 'utf8');
148
149
  const playbook = yaml.load(fileContent) as Playbook;
149
150
 
150
- if (playbook && playbook.name && playbook.blocks) {
151
+ if (playbook && playbook.name && (playbook.blocks || playbook.prompt)) {
151
152
  playbooks.push(playbook);
152
153
  logger.info({ msg: `Loaded playbook: ${playbook.name} from ${file}` });
153
154
  } else {
@@ -191,7 +192,13 @@ export function combinePlaybooks(playbooks: Playbook[]): string | null {
191
192
 
192
193
  // Combine all playbooks into sections
193
194
  const sections = playbooks.map((playbook) => {
194
- const markdownContent = editorJsToMarkdown(playbook.blocks);
195
+ let markdownContent = playbook.prompt;
196
+ if (!markdownContent && playbook.blocks) {
197
+ markdownContent = editorJsToMarkdown(playbook.blocks);
198
+ }
199
+ if (!markdownContent) {
200
+ throw new Error('Playbook must have either a prompt or blocks');
201
+ }
195
202
  return `# ${playbook.name}\n${markdownContent}`;
196
203
  });
197
204
 
@@ -40,8 +40,8 @@ const DEFAULT_CONFIG: Partial<ExtractionConfig> = {
40
40
  */
41
41
  function schemaToJsonFormat(schema: ExtractionSchema): string {
42
42
  // Use zod-to-json-schema for robust conversion
43
- // Type assertion to avoid excessive type depth inference
44
- const jsonSchema = zodToJsonSchema(schema as z.ZodType, {
43
+ // Type assertion to avoid excessive type depth inference (TS2589)
44
+ const jsonSchema = zodToJsonSchema(schema as any, {
45
45
  target: 'openApi3',
46
46
  $refStrategy: 'none', // Inline all references for simpler prompts
47
47
  });