diff --git a/docs/images/architecture-docker-compose.png b/docs/images/architecture-docker-compose.png index 1446bf13c31785a2ffe0bd7ead14e239c1e944e8..c371e2adb6d182a12c4d9244b698cbd926d7f649 100644 Binary files a/docs/images/architecture-docker-compose.png and b/docs/images/architecture-docker-compose.png differ diff --git a/docs/images/architecture-docker-compose.svg b/docs/images/architecture-docker-compose.svg index bf12cbe9e518e3c478af4a274179ae43dadcda3c..f40890517757248c1516d427c88eb365be8ad3b3 100644 --- a/docs/images/architecture-docker-compose.svg +++ b/docs/images/architecture-docker-compose.svg @@ -1,3 +1,3 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="840px" height="559px" viewBox="-0.5 -0.5 840 559" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 369 90.37 L 369 108 L 368.63 125.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 369 85.12 L 372.5 92.12 L 369 90.37 L 365.5 92.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 368.52 130.88 L 365.17 123.81 L 368.63 125.63 L 372.17 123.96 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="369.5" cy="7.5" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 369.5 15 L 369.5 40 M 369.5 20 L 354.5 20 M 369.5 20 L 384.5 20 M 369.5 40 L 354.5 60 M 369.5 40 L 384.5 60" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 67px; margin-left: 370px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Researcher</div></div></div></foreignObject><text x="370" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Resea...</text></switch></g><path d="M 297.13 152 L 267.37 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 302.38 152 L 295.38 155.5 L 297.13 152 L 295.38 148.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 262.12 152 L 269.12 148.5 L 267.37 152 L 269.12 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 336 172 L 336 200 L 196 200 L 196 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 196 226.88 L 192.5 219.88 L 196 221.63 L 199.5 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 401 172 L 401 200 L 546 200 L 546 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 546 226.88 L 542.5 219.88 L 546 221.63 L 549.5 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 368.5 178.37 L 368.5 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 368.5 173.12 L 372 180.12 L 368.5 178.37 L 365 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 368.5 226.88 L 365 219.88 L 368.5 221.63 L 372 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 336 178.37 L 336 200 L 283 200 L 283 294 L 196 294 L 196 317.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 336 173.12 L 339.5 180.12 L 336 178.37 L 332.5 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 196 322.88 L 192.5 315.88 L 196 317.63 L 199.5 315.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 439.87 152 L 474.63 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 434.62 152 L 441.62 148.5 L 439.87 152 L 441.62 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 479.88 152 L 472.88 155.5 L 474.63 152 L 472.88 148.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 401 178.37 L 401 200 L 459 200 L 459 294 L 546 294 L 546 317.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 401 173.12 L 404.5 180.12 L 401 178.37 L 397.5 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 546 322.88 L 542.5 315.88 L 546 317.63 L 549.5 315.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="303.5" y="132" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 152px; margin-left: 305px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Gateway Service</div></div></div></foreignObject><text x="369" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Gateway Service</text></switch></g><rect x="303.5" y="228" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 305px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Analyse Service</div></div></div></foreignObject><text x="369" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Analyse Service</text></switch></g><path d="M 196 370.37 L 196 397.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 196 365.12 L 199.5 372.12 L 196 370.37 L 192.5 372.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 196 402.88 L 192.5 395.88 L 196 397.63 L 199.5 395.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="131" y="324" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 344px; margin-left: 132px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Authentication Service<br />(Keycloak)</div></div></div></foreignObject><text x="196" y="348" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Authentication Servic...</text></switch></g><path d="M 546 370.37 L 546 397.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 546 365.12 L 549.5 372.12 L 546 370.37 L 542.5 372.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 546 402.88 L 542.5 395.88 L 546 397.63 L 549.5 395.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 617.37 344 L 654.63 344" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 612.12 344 L 619.12 340.5 L 617.37 344 L 619.12 347.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 659.88 344 L 652.88 347.5 L 654.63 344 L 652.88 340.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="481" y="324" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 344px; margin-left: 482px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Metadata Service</div></div></div></foreignObject><text x="546" y="348" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Metadata Service</text></switch></g><rect x="131" y="228" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 132px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Broker Service<br />(RabbitMQ)</div></div></div></foreignObject><text x="196" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Broker Service...</text></switch></g><path d="M 617.37 248 L 654.63 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 612.12 248 L 619.12 244.5 L 617.37 248 L 619.12 251.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 659.88 248 L 652.88 251.5 L 654.63 248 L 652.88 244.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="481" y="228" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 482px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Search Service</div></div></div></foreignObject><text x="546" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Search Service</text></switch></g><rect x="131" y="132" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 152px; margin-left: 132px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">UI</div></div></div></foreignObject><text x="196" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UI</text></switch></g><path d="M 661 224.6 C 661 219.85 672.19 216 686 216 C 692.63 216 698.99 216.91 703.68 218.52 C 708.37 220.13 711 222.32 711 224.6 L 711 271.4 C 711 276.15 699.81 280 686 280 C 672.19 280 661 276.15 661 271.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 711 224.6 C 711 229.35 699.81 233.2 686 233.2 C 672.19 233.2 661 229.35 661 224.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="643.5" y="280" width="85" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 290px; margin-left: 642px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">search-db</div></div></div></foreignObject><text x="686" y="294" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">search-db</text></switch></g><path d="M 717.37 344 L 771 344" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 712.12 344 L 719.12 340.5 L 717.37 344 L 719.12 347.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 661 320.6 C 661 315.85 672.19 312 686 312 C 692.63 312 698.99 312.91 703.68 314.52 C 708.37 316.13 711 318.32 711 320.6 L 711 367.4 C 711 372.15 699.81 376 686 376 C 672.19 376 661 372.15 661 367.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 711 320.6 C 711 325.35 699.81 329.2 686 329.2 C 672.19 329.2 661 325.35 661 320.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="643.5" y="376" width="85" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 386px; margin-left: 642px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">metadata-db</div></div></div></foreignObject><text x="686" y="390" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">metadata-db</text></switch></g><path d="M 521 412.6 C 521 407.85 532.19 404 546 404 C 552.63 404 558.99 404.91 563.68 406.52 C 568.37 408.13 571 410.32 571 412.6 L 571 459.4 C 571 464.15 559.81 468 546 468 C 532.19 468 521 464.15 521 459.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 571 412.6 C 571 417.35 559.81 421.2 546 421.2 C 532.19 421.2 521 417.35 521 412.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="503.5" y="468" width="85" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 478px; margin-left: 502px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">data-db</div></div></div></foreignObject><text x="546" y="482" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">data-db</text></switch></g><path d="M 171 412.6 C 171 407.85 182.19 404 196 404 C 202.63 404 208.99 404.91 213.68 406.52 C 218.37 408.13 221 410.32 221 412.6 L 221 459.4 C 221 464.15 209.81 468 196 468 C 182.19 468 171 464.15 171 459.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 221 412.6 C 221 417.35 209.81 421.2 196 421.2 C 182.19 421.2 171 417.35 171 412.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="153.5" y="468" width="85" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 478px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">auth-db</div></div></div></foreignObject><text x="196" y="482" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">auth-db</text></switch></g><rect x="481" y="132" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 152px; margin-left: 482px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Upload Service<br />(tusd)</div></div></div></foreignObject><text x="546" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Upload Service...</text></switch></g><rect x="731.5" y="358" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 368px; margin-left: 730px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">metadata-db-data</div></div></div></foreignObject><text x="786" y="372" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">metadata-db-data</text></switch></g><ellipse cx="785.5" cy="344" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="731.5" y="262" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 272px; margin-left: 730px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">search-db-data</div></div></div></foreignObject><text x="786" y="276" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">search-db-data</text></switch></g><path d="M 771.5 248 L 717.37 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 712.12 248 L 719.12 244.5 L 717.37 248 L 719.12 251.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="785.5" cy="248" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="492" y="538" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 548px; margin-left: 490px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">data-db-data</div></div></div></foreignObject><text x="546" y="552" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">data-db-data</text></switch></g><path d="M 546 510 L 546 490 L 546 508 L 546 494.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 546 489.12 L 549.5 496.12 L 546 494.37 L 542.5 496.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="546" cy="524" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><path d="M 196 510 L 196 494.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 196 489.12 L 199.5 496.12 L 196 494.37 L 192.5 496.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="196" cy="524" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="142" y="538" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 548px; margin-left: 140px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">auth-db-data</div></div></div></foreignObject><text x="196" y="552" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">auth-db-data</text></switch></g><path d="M 70 248 L 124.63 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 129.88 248 L 122.88 251.5 L 124.63 248 L 122.88 244.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="56" cy="248" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="2" y="262" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 272px; margin-left: 0px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">broker-service-data</div></div></div></foreignObject><text x="56" y="276" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">broker-service-data</text></switch></g><path d="M 70 344 L 124.63 344" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 129.88 344 L 122.88 347.5 L 124.63 344 L 122.88 340.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="56" cy="344" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="2" y="364" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 374px; margin-left: 0px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">authentication-service-data</div></div></div></foreignObject><text x="56" y="378" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">authentication-serv...</text></switch></g><path d="M 672 152 L 617.37 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 612.12 152 L 619.12 148.5 L 617.37 152 L 619.12 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="686" cy="152" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="632" y="166" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 176px; margin-left: 630px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">upload-service-data</div></div></div></foreignObject><text x="686" y="180" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">upload-service-data</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/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> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="710px" height="669px" viewBox="-0.5 -0.5 710 669"><defs/><g><path d="M 238.01 90.37 L 238.03 108 L 237.64 125.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 238 85.12 L 241.51 92.11 L 238.01 90.37 L 234.51 92.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 237.52 130.88 L 234.18 123.81 L 237.64 125.63 L 241.18 123.96 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="238.5" cy="7.5" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 238.5 15 L 238.5 40 M 238.5 20 L 223.5 20 M 238.5 20 L 253.5 20 M 238.5 40 L 223.5 60 M 238.5 40 L 253.5 60" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 67px; margin-left: 239px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Researcher</div></div></div></foreignObject><text x="239" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Resea...</text></switch></g><path d="M 166.13 152 L 136.37 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 171.38 152 L 164.38 155.5 L 166.13 152 L 164.38 148.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 131.12 152 L 138.12 148.5 L 136.37 152 L 138.12 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 152px; margin-left: 151px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">HTTP</div></div></div></foreignObject><text x="151" y="155" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 205 172 L 205 200 L 65 200 L 65 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 65 226.88 L 61.5 219.88 L 65 221.63 L 68.5 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 270 172 L 270.03 200 L 415 200 L 415 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 415 226.88 L 411.5 219.88 L 415 221.63 L 418.5 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 237.5 178.37 L 237.5 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 237.5 173.12 L 241 180.12 L 237.5 178.37 L 234 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 237.5 226.88 L 234 219.88 L 237.5 221.63 L 241 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 200px; margin-left: 238px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">HTTP</div></div></div></foreignObject><text x="238" y="203" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 205 178.37 L 205 200 L 152.03 200 L 152.03 294 L 65 294 L 65 317.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 205 173.12 L 208.5 180.12 L 205 178.37 L 201.5 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 65 322.88 L 61.5 315.88 L 65 317.63 L 68.5 315.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 200px; margin-left: 181px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">HTTP</div></div></div></foreignObject><text x="181" y="203" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 308.87 152 L 343.63 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 303.62 152 L 310.62 148.5 L 308.87 152 L 310.62 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 348.88 152 L 341.88 155.5 L 343.63 152 L 341.88 148.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 152px; margin-left: 326px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">TUSD</div></div></div></foreignObject><text x="326" y="155" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">TUSD</text></switch></g><path d="M 270.01 178.37 L 270.03 200 L 328.03 200 L 328.03 394 L 415 394 L 415 413.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 270 173.12 L 273.51 180.11 L 270.01 178.37 L 266.51 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 415 418.88 L 411.5 411.88 L 415 413.63 L 418.5 411.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 199px; margin-left: 294px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">HTTP</div></div></div></foreignObject><text x="294" y="202" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><rect x="172.5" y="132" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 152px; margin-left: 174px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Gateway Service</div></div></div></foreignObject><text x="238" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Gateway Service</text></switch></g><rect x="172.5" y="228" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 174px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Analyse Service</div></div></div></foreignObject><text x="238" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Analyse Service</text></switch></g><path d="M 65 370.37 L 65 397.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 65 365.12 L 68.5 372.12 L 65 370.37 L 61.5 372.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 65 402.88 L 61.5 395.88 L 65 397.63 L 68.5 395.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="324" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 344px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Authentication Service<br />(Keycloak)</div></div></div></foreignObject><text x="65" y="348" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Authentication Servic...</text></switch></g><path d="M 415 466.37 L 415 507.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 415 461.12 L 418.5 468.12 L 415 466.37 L 411.5 468.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 415 512.88 L 411.5 505.88 L 415 507.63 L 418.5 505.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 486.37 440 L 523.63 440" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 481.12 440 L 488.12 436.5 L 486.37 440 L 488.12 443.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 528.88 440 L 521.88 443.5 L 523.63 440 L 521.88 436.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 440px; margin-left: 504px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">JDBC</div></div></div></foreignObject><text x="504" y="443" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">JDBC</text></switch></g><rect x="350" y="420" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 440px; margin-left: 351px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Metadata Service</div></div></div></foreignObject><text x="415" y="444" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Metadata Service</text></switch></g><path d="M 130 248 L 149.03 248 C 149.03 244.1 155.03 244.1 155.03 248 L 155.03 248 L 160.03 248 L 160.03 394 L 238.49 394 L 238.5 413.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="1 1" pointer-events="stroke"/><path d="M 238.5 418.88 L 235 411.88 L 238.5 413.63 L 242 411.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 394px; margin-left: 200px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Spring AMQP</div></div></div></foreignObject><text x="200" y="397" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">Spring AMQP</text></switch></g><rect x="0" y="228" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Broker Service<br />(RabbitMQ)</div></div></div></foreignObject><text x="65" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Broker Service...</text></switch></g><path d="M 486.37 248 L 523.63 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 481.12 248 L 488.12 244.5 L 486.37 248 L 488.12 251.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 528.88 248 L 521.88 251.5 L 523.63 248 L 521.88 244.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 248px; margin-left: 505px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">HTTP</div></div></div></foreignObject><text x="505" y="251" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><rect x="350" y="228" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 248px; margin-left: 351px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Search Service</div></div></div></foreignObject><text x="415" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Search Service</text></switch></g><rect x="0" y="132" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 152px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">UI</div></div></div></foreignObject><text x="65" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UI</text></switch></g><path d="M 530 224.6 C 530 219.85 541.19 216 555 216 C 561.63 216 567.99 216.91 572.68 218.52 C 577.37 220.13 580 222.32 580 224.6 L 580 271.4 C 580 276.15 568.81 280 555 280 C 541.19 280 530 276.15 530 271.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 580 224.6 C 580 229.35 568.81 233.2 555 233.2 C 541.19 233.2 530 229.35 530 224.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 586.37 440 L 640 440" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 581.12 440 L 588.12 436.5 L 586.37 440 L 588.12 443.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 530 416.6 C 530 411.85 541.19 408 555 408 C 561.63 408 567.99 408.91 572.68 410.52 C 577.37 412.13 580 414.32 580 416.6 L 580 463.4 C 580 468.15 568.81 472 555 472 C 541.19 472 530 468.15 530 463.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 580 416.6 C 580 421.35 568.81 425.2 555 425.2 C 541.19 425.2 530 421.35 530 416.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="512.5" y="472" width="85" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 482px; margin-left: 511px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">metadata-db</div></div></div></foreignObject><text x="555" y="486" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">metadata-db</text></switch></g><path d="M 390 522.6 C 390 517.85 401.19 514 415 514 C 421.63 514 427.99 514.91 432.68 516.52 C 437.37 518.13 440 520.32 440 522.6 L 440 569.4 C 440 574.15 428.81 578 415 578 C 401.19 578 390 574.15 390 569.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 440 522.6 C 440 527.35 428.81 531.2 415 531.2 C 401.19 531.2 390 527.35 390 522.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="372.5" y="578" width="85" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 588px; margin-left: 371px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">data-db</div></div></div></foreignObject><text x="415" y="592" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">data-db</text></switch></g><path d="M 40 412.6 C 40 407.85 51.19 404 65 404 C 71.63 404 77.99 404.91 82.68 406.52 C 87.37 408.13 90 410.32 90 412.6 L 90 459.4 C 90 464.15 78.81 468 65 468 C 51.19 468 40 464.15 40 459.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 90 412.6 C 90 417.35 78.81 421.2 65 421.2 C 51.19 421.2 40 417.35 40 412.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="22.5" y="468" width="85" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 478px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">auth-db</div></div></div></foreignObject><text x="65" y="482" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">auth-db</text></switch></g><rect x="350" y="132" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 152px; margin-left: 351px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Upload Service<br />(tusd)</div></div></div></foreignObject><text x="415" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Upload Service...</text></switch></g><rect x="600.5" y="454" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 464px; margin-left: 599px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">metadata-db-data</div></div></div></foreignObject><text x="655" y="468" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">metadata-db-data</text></switch></g><ellipse cx="654.5" cy="440" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="600.5" y="262" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 272px; margin-left: 599px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">search-db-data</div></div></div></foreignObject><text x="655" y="276" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">search-db-data</text></switch></g><path d="M 640.5 248 L 586.37 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 581.12 248 L 588.12 244.5 L 586.37 248 L 588.12 251.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="654.5" cy="248" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="361" y="648" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 658px; margin-left: 359px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">data-db-data</div></div></div></foreignObject><text x="415" y="662" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">data-db-data</text></switch></g><path d="M 415 620 L 415 600 L 415 618 L 415 604.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 415 599.12 L 418.5 606.12 L 415 604.37 L 411.5 606.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="415" cy="634" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><path d="M 65 510 L 65 494.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 65 489.12 L 68.5 496.12 L 65 494.37 L 61.5 496.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="65" cy="524" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="11" y="538" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 548px; margin-left: 9px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">auth-db-data</div></div></div></foreignObject><text x="65" y="552" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">auth-db-data</text></switch></g><path d="M 541 152 L 486.37 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 481.12 152 L 488.12 148.5 L 486.37 152 L 488.12 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="555" cy="152" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="501" y="166" width="108" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 176px; margin-left: 499px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">upload-service-data</div></div></div></foreignObject><text x="555" y="180" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">upload-service-data</text></switch></g><path d="M 238.49 460 L 238.49 546 L 383.63 546" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 388.88 546 L 381.88 549.5 L 383.63 546 L 381.88 542.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 546px; margin-left: 271px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">JDBC</div></div></div></foreignObject><text x="271" y="549" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">JDBC</text></switch></g><rect x="173.5" y="420" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 440px; margin-left: 175px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data Service</div></div></div></foreignObject><text x="239" y="444" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Data Service</text></switch></g><path d="M 480 344 L 555 344 L 555 286.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 555 281.12 L 558.5 288.12 L 555 286.37 L 551.5 288.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 323px; margin-left: 556px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">HTTP</div></div></div></foreignObject><text x="556" y="326" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 480 344 L 555 344 L 555 401.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 555 406.88 L 551.5 399.88 L 555 401.63 L 558.5 399.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 374px; margin-left: 554px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 9px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">JDBC</div></div></div></foreignObject><text x="554" y="377" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">JDBC</text></switch></g><rect x="350" y="324" width="130" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 344px; margin-left: 351px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Mirror Service</div></div></div></foreignObject><text x="415" y="348" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Mirror Service</text></switch></g><rect x="512.5" y="291" width="85" height="17" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 300px; margin-left: 511px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">search-db</div></div></div></foreignObject><text x="555" y="303" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">search-db</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/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> \ No newline at end of file diff --git a/docs/system-services-authentication.md b/docs/system-services-authentication.md index e279d0fcafe92e3db5e531466f578d37fb63828e..2c39395f329052a95f4acb9fe76280844f9b5f3c 100644 --- a/docs/system-services-authentication.md +++ b/docs/system-services-authentication.md @@ -4,25 +4,23 @@ author: Martin Weise # Authentication Service +## tl;dr + !!! debug "Debug Information" - * Ports: 8080/tcp, 8443/tcp - * Admin Console: `http://:8443/` + * Ports: 8080/tcp + * Admin Console: `http://:8080/api/auth/admin/` + * Health: `http://:8080/api/auth/health` + * Prometheus: `http://:8080/api/auth/metrics` + +## Overview Very specific to the deployment of the organization. In our reference implementation we implement a *security assertion markup language* (SAML) service provider and use our institutional SAML identity provider for obtaining account data through an encrypted channel. From version 1.2 onwards we use Keycloak for authentication and deprecated the previous Spring Boot application. -Consequently, -the authentication will be through Keycloak. - -!!! warning "Unsupported Keycloak features" - - Due to no demand at the time, we currently do not support the following Keycloak features: - - * E-Mail verification - * Temporary passwords +Consequently, the authentication will be through Keycloak. By default, the Authentication Service comes with a self-signed certificate valid 3 months from build date. For deployment it is *highly encouraged* to use your own certificate, properly issued by a trusted PKI, e.g. GÉANT. For @@ -216,58 +214,13 @@ public ResponseEntity<DatabaseBriefDto> create(@NotNull Long containerId, | `update-semantic-concept` | Can update own table column concept | | `update-semantic-unit` | Can update own table column unit | -## API - -### Obtain Access Token - -Access tokens are needed for almost all operations. - -=== "Terminal" - - ``` console - curl -X POST \ - -d "username=foo&password=bar&grant_type=password&client_id=dbrepo-client&scope=openid&client_secret=MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" \ - http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token - ``` - -=== "Python" - - ``` py - import requests - - auth = requests.post("http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token", data={ - "username": "foo", - "password": "bar", - "grant_type": "password", - "client_id": "dbrepo-client", - "scope": "openid", - "client_secret": "MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" - }) - print(auth.json()["access_token"]) - ``` - -### Refresh Access Token - -Using the response from above, a new access token can be created via the refresh token provided. - -=== "Terminal" - - ``` console - curl -X POST \ - -d "grant_type=refresh_token&client_id=dbrepo-client&refresh_token=THE_REFRESH_TOKEN&client_secret=MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" \ - http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token - ``` +## Limitations -=== "Python" +* No support for sending e-mails through Keycloak +* No support for temporary passwords +* No support for multi-factor authentication - ``` py - import requests +## Security - auth = requests.post("http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token", data={ - "grant_type": "refresh_token", - "client_id": "dbrepo-client", - "client_secret": "MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG", - "refresh_token": "THE_REFRESH_TOKEN" - }) - print(auth.json()["access_token"]) - ``` +1. Mount your TLS certificate / private key pair into `/app/tls.crt` and `/app/tls.key` and + set `KC_HTTPS_CERTIFICATE_FILE=/app/tls.crt` and set `KC_HTTPS_CERTIFICATE_KEY_FILE=/app/tls.key`. diff --git a/docs/system-services-broker.md b/docs/system-services-broker.md index 301f5c2d5b248eb85c18604b3cddce8aa143962f..30cfcf10eadd352f6f72627939c075310bae1f65 100644 --- a/docs/system-services-broker.md +++ b/docs/system-services-broker.md @@ -4,17 +4,46 @@ author: Martin Weise # Broker Service +## tl;dr + !!! debug "Debug Information" * Ports: 5672/tcp, 15672/tcp * RabbitMQ Management Plugin: `http://:15672` * RabbitMQ Prometheus Plugin: `http://:15692/metrics` +## Overview + It holds exchanges and topics responsible for holding AMQP messages for later consumption. We -use [RabbitMQ](https://www.rabbitmq.com/) in the implementation. The AMQP endpoint listens to port `5672` for -regular declares and offers a management interface at port `15672`. +use [RabbitMQ](https://www.rabbitmq.com/) in the implementation. By default, the endpoint listens to the insecure port `5672` for incoming +AMQP tuples and insecure port `15672` for the management UI. -The default credentials are: +The default configuration creates a user with administrative privileges: * Username: `fda` * Password: `fda` +* Roles: `["administrator"]` + +The Broker Service allows two ways of authentication: + +1. Plain +2. OAuth2 + +For detailed examples how to authenticate with the Broker Service see +the [usage](/infrastructures/dbrepo/latest/usage-broker) page. + +## Limitations + +* No support for MQTT messaging as the protocol does not support virtual hosts other than `/`. + +## Security + +For a secure deployment it is necessary to configure the Broker Service as follows: + +1. Download the [`rabbitmq.conf`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/dev/dbrepo-broker-service/rabbitmq.conf.secure) and + change the `default_user` and `default_pass` lines before mounting it to `/etc/rabbitmq/rabbitmq.conf`. +2. Mount your previously generated certificate and RSA public key pair (PEM-encoded) to `/app/cert.pem` + and `/app/pubkey.pem`. Note that these are *not* used for TLS encryption, but only for authentication of users. It + is not recommended to use "real" TLS certificates, self-signed certificates with *sufficient keylength* are best-practice. +3. Mount your TLS certificate authority file into `/etc/rabbitmq/cacert.crt` and your TLS certificate / private key pair + into `/etc/tls/tls.crt` and `/etc/tls/tls.key`. diff --git a/docs/system-services-gateway.md b/docs/system-services-gateway.md index ae11a2b934ca8af802783819109d6f945882038c..fbe1ee828b5ed803626b0ef02490a7212408bbb6 100644 --- a/docs/system-services-gateway.md +++ b/docs/system-services-gateway.md @@ -4,12 +4,34 @@ author: Martin Weise # Gateway Service +## tl;dr + !!! debug "Debug Information" - * Ports: 9095/tcp - * Info: `http://:9095/actuator/info` - * Health: `http://:9095/actuator/health` - * Prometheus: `http://:9095/actuator/prometheus` + * Ports: 80/tcp, 443/tcp + +## Overview Provides a single point of access to the *application programming interface* (API) and configures a standard [NGINX](https://www.nginx.com/) reverse proxy for load balancing, SSL/TLS configuration. + +## Limitations + +(none) + +## Security + +1. Enable TLS encryption by downloading + the [`dbrepo.conf`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/dev/dbrepo-gateway-service/dbrepo.conf) + and editing the *server* block to include your TLS certificate (with trust chain) `fullchain.pem` and TLS private key + `privkey.pem` (PEM-encoded). + + ```nginx + server { + listen 443 ssl; + server_name _; + ssl_certificate /etc/nginx/fullchain.pem; + ssl_certificate_key /etc/nginx/privkey.pem; + ... + } + ``` diff --git a/docs/system-services-metadata.md b/docs/system-services-metadata.md index 15e3cc7f217448e22b317d5ccf589886f956eefa..c4a753cb34a509533fbc53cd1d3c51d9dc75f4ee 100644 --- a/docs/system-services-metadata.md +++ b/docs/system-services-metadata.md @@ -4,6 +4,8 @@ author: Martin Weise # Metadata Service +## tl;dr + !!! debug "Debug Information" * Ports: 9099/tcp @@ -12,6 +14,8 @@ author: Martin Weise * Prometheus: `http://:9099/actuator/prometheus` * Swagger UI: `http://:9099/swagger-ui/index.html` <a href="/infrastructures/dbrepo/latest/swagger/metadata" target="_blank">:fontawesome-solid-square-up-right: view online</a> +## Overview + This microservice manages: * Databases @@ -37,3 +41,11 @@ Service. This microservice handles table operations inside a database that is managed by the Database Service. We use [Hibernate](https://hibernate.org/orm/) for schema and data ingest operations. + +## Limitations + +(none) + +## Security + +(none) diff --git a/docs/system-services-upload.md b/docs/system-services-upload.md index 40f9d3d61c3c2a122df5e5addb1e895f217563c2..e1e370ce650eab5ff321a6960ffd1469839bdd29 100644 --- a/docs/system-services-upload.md +++ b/docs/system-services-upload.md @@ -4,24 +4,24 @@ author: Martin Weise # Upload Service +## tl;dr + !!! debug "Debug Information" * Ports: 1080/tcp +## Overview + Upload files using one of the official the TUSd clients: * [NodeJS / JavaScript](https://github.com/tus/tus-js-client) * [Java](https://github.com/tus/tus-java-client) * [Python](https://github.com/tus/tus-py-client) -## Example (Python) +## Limitations + +(none) -Uploads a file `file.csv` in 200 byte chunks. +## Security -```python -#!/bin/env python3 -from tusclient import client -my_client = client.TusClient('http://localhost/api/upload/files') -uploader = my_client.uploader('/path/to/file.csv', chunk_size=200) -uploader.upload() -``` +(none) diff --git a/docs/usage-auth.md b/docs/usage-auth.md new file mode 100644 index 0000000000000000000000000000000000000000..6b1967ca0544699a671db371855091046ba7e922 --- /dev/null +++ b/docs/usage-auth.md @@ -0,0 +1,60 @@ +--- +author: Martin Weise +--- + +# Authentication Service + +## Obtain Access Token + +Access tokens are needed for almost all operations. + +=== "Terminal" + + ``` console + curl -X POST \ + -d "username=foo&password=bar&grant_type=password&client_id=dbrepo-client&scope=openid&client_secret=MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" \ + http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token + ``` + +=== "Python" + + ``` py + import requests + + auth = requests.post("http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token", data={ + "username": "foo", + "password": "bar", + "grant_type": "password", + "client_id": "dbrepo-client", + "scope": "openid", + "client_secret": "MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" + }) + print(auth.json()["access_token"]) + ``` + +## Refresh Access Token + +Using the response from above, a new access token can be created via the refresh token provided. + +=== "Terminal" + + ``` console + curl -X POST \ + -d "grant_type=refresh_token&client_id=dbrepo-client&refresh_token=THE_REFRESH_TOKEN&client_secret=MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG" \ + http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token + ``` + +=== "Python" + + ``` py + import requests + + auth = requests.post("http://localhost/api/auth/realms/dbrepo/protocol/openid-connect/token", data={ + "grant_type": "refresh_token", + "client_id": "dbrepo-client", + "client_secret": "MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG", + "refresh_token": "THE_REFRESH_TOKEN" + }) + print(auth.json()["access_token"]) + ``` + diff --git a/docs/usage-upload.md b/docs/usage-upload.md new file mode 100644 index 0000000000000000000000000000000000000000..d01050cb916abe7ae6484360ffc69be9aee6b700 --- /dev/null +++ b/docs/usage-upload.md @@ -0,0 +1,17 @@ +--- +author: Martin Weise +--- + +# Upload Service + +Uploads a file `file.csv` in 200 byte chunks. + +=== "Python" + + ```python + #!/bin/env python3 + from tusclient import client + my_client = client.TusClient('http://localhost/api/upload/files') + uploader = my_client.uploader('/path/to/file.csv', chunk_size=200) + uploader.upload() + ``` diff --git a/misc/.$architecture.drawio.dtmp b/misc/.$architecture.drawio.dtmp new file mode 100644 index 0000000000000000000000000000000000000000..d8097370c86b1769a9157f955eb770cbd77ce5f9 --- /dev/null +++ b/misc/.$architecture.drawio.dtmp @@ -0,0 +1,2295 @@ +<mxfile host="Electron" modified="2023-10-09T07:59:29.614Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="Td1kgXHoYxqYNfTozfBp" version="21.1.2" type="device" pages="5"> + <diagram id="mvBsv1rP8O80Qe3yGnn_" name="docker-compose"> + <mxGraphModel dx="1509" dy="865" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="45LT9Xtm5jvL1Omwo4Uv-6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#000000;startArrow=classic;startFill=1;dashed=1;" parent="1" target="CohMdi7D_fRk0dSxzjYi-1" edge="1"> + <mxGeometry x="-0.028" relative="1" as="geometry"> + <mxPoint x="448" y="230" as="sourcePoint" /> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="S3Av5TdVFqS_SrXukbwN-2" value="Researcher" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="433.5" y="146" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-39" value="HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="S3Av5TdVFqS_SrXukbwN-1" edge="1"> + <mxGeometry x="0.0013" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="AQz-Vj6r_5Wor37pQVs6-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="SsHHCok0RUWS7ODwTELy-4" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-42" value="HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="13tBXMPt0xomx7MP2VuM-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="O_ELZSFbvl3Butg3bv_j-1" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="415" y="346" /> + <mxPoint x="362" y="346" /> + <mxPoint x="362" y="440" /> + <mxPoint x="275" y="440" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-19" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-43"> + <mxGeometry x="-0.6602" relative="1" as="geometry"> + <mxPoint x="-3" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-44" value="TUSD" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="V1Wl26Vbpgnno5Lb-wtg-38" edge="1"> + <mxGeometry x="0.0034" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="hBEam5F8n4ZBPeoiEcWH-1" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="480" y="346" /> + <mxPoint x="538" y="346" /> + <mxPoint x="538" y="540" /> + <mxPoint x="625" y="540" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-18" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-45"> + <mxGeometry x="-0.7352" y="1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="CohMdi7D_fRk0dSxzjYi-1" value="Gateway Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="382.5" y="278" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="13tBXMPt0xomx7MP2VuM-1" value="Analyse Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="382.5" y="374" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" source="O_ELZSFbvl3Butg3bv_j-1" target="V1Wl26Vbpgnno5Lb-wtg-36" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="O_ELZSFbvl3Butg3bv_j-1" value="Authentication Service<br>(Keycloak)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="210" y="470" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" source="hBEam5F8n4ZBPeoiEcWH-1" target="V1Wl26Vbpgnno5Lb-wtg-34" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" target="V1Wl26Vbpgnno5Lb-wtg-32" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="689.9999999999998" y="586" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-16" value="JDBC" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-48"> + <mxGeometry x="-0.2851" y="-2" relative="1" as="geometry"> + <mxPoint x="6" y="-2" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="hBEam5F8n4ZBPeoiEcWH-1" value="Metadata Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="560" y="566" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-15" value="Spring AMQP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=arc;dashed=1;strokeWidth=1;dashPattern=1 1;fontSize=9;" edge="1" parent="1" source="AQz-Vj6r_5Wor37pQVs6-1" target="YJRAzF6yD4Hh-bAvO1PB-1"> + <mxGeometry x="0.54" relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="370" y="394" /> + <mxPoint x="370" y="540" /> + <mxPoint x="449" y="540" /> + </Array> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="AQz-Vj6r_5Wor37pQVs6-1" value="Broker Service<br>(RabbitMQ)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="210" y="374" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-49" value="HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="SsHHCok0RUWS7ODwTELy-4" target="V1Wl26Vbpgnno5Lb-wtg-26" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="SsHHCok0RUWS7ODwTELy-4" value="Search Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="560" y="374" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="S3Av5TdVFqS_SrXukbwN-1" value="UI" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="210" y="278" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-26" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="740" y="362" width="50" height="64" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="V1Wl26Vbpgnno5Lb-wtg-32" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="850" y="586" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-32" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="740" y="554" width="50" height="64" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-33" value="metadata-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="722.5" y="618" width="85" height="20" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-34" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="600" y="660" width="50" height="64" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-35" value="data-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="582.5" y="724" width="85" height="20" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-36" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="250" y="550" width="50" height="64" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-37" value="auth-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="232.5" y="614" width="85" height="20" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-38" value="Upload Service<br>(tusd)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="560" y="278" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-3" value="metadata-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="810.5" y="600" width="108" height="20" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-6" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="850.5" y="572" width="28" height="28" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-7" value="search-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="810.5" y="408" width="108" height="20" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-8" target="V1Wl26Vbpgnno5Lb-wtg-26" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-8" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="850.5" y="380" width="28" height="28" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-10" value="data-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="571" y="794" width="108" height="20" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-11" target="V1Wl26Vbpgnno5Lb-wtg-35" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-11" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="611" y="766" width="28" height="28" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-15" target="V1Wl26Vbpgnno5Lb-wtg-37" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-15" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="261" y="656" width="28" height="28" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-16" value="auth-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="221" y="684" width="108" height="20" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-36" target="V1Wl26Vbpgnno5Lb-wtg-38" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-36" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="751" y="284" width="28" height="28" as="geometry" /> + </mxCell> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-39" value="upload-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="711" y="312" width="108" height="20" as="geometry" /> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-2" value="JDBC" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=9;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-1" target="V1Wl26Vbpgnno5Lb-wtg-34"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="448" y="582" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-1" value="Data Service" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="383.5" y="566" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-26"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="765" y="490" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-17" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="YJRAzF6yD4Hh-bAvO1PB-13"> + <mxGeometry x="0.3792" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-14" value="JDBC" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=9;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-32"> + <mxGeometry x="0.5121" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-12" value="Mirror Service" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="560" y="470" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-27" value="search-db" style="text;html=1;strokeColor=none;fillColor=default;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="722.5" y="437" width="85" height="17" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram name="Frontend" id="GYXS_N4ymJ7hX3zLKvDC"> + <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="583" pageHeight="413" math="0" shadow="0"> + <root> + <mxCell id="ihsuRJ9dWuDPEHVUeUyY-0" /> + <mxCell id="ihsuRJ9dWuDPEHVUeUyY-1" parent="ihsuRJ9dWuDPEHVUeUyY-0" /> + <mxCell id="IRxpwOfG2jHF0YoYJLJK-1" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=2;fillColor=#dae8fc;strokeColor=#000000;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="17" y="232" width="320" height="136" as="geometry" /> + </mxCell> + <mxCell id="IRxpwOfG2jHF0YoYJLJK-0" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=2;fillColor=#d5e8d4;strokeColor=#000000;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="17" y="20" width="320" height="204" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-0" value="UI" style="rounded=1;whiteSpace=wrap;html=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="187" y="30" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-1" target="kLNLoM7m2o6o68vp3Wb9-0" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-1" value="Vue.js" style="rounded=1;whiteSpace=wrap;html=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="187" y="100" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-2" target="kLNLoM7m2o6o68vp3Wb9-3" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-2" target="kLNLoM7m2o6o68vp3Wb9-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-2" target="kLNLoM7m2o6o68vp3Wb9-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-2" target="kLNLoM7m2o6o68vp3Wb9-10" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-2" value="Vuex<br>(state)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="187" y="170" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-3" target="kLNLoM7m2o6o68vp3Wb9-4" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-3" value="Vuex Persist<br>Plugin" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="27" y="170" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-4" value="Local Storage" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#FFF2CC;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="62" y="60" width="60" height="80" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-10" target="kLNLoM7m2o6o68vp3Wb9-12" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-10" value="Node.js<br>(api client)" style="rounded=1;whiteSpace=wrap;html=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="187" y="248" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-12" target="kLNLoM7m2o6o68vp3Wb9-13" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" source="kLNLoM7m2o6o68vp3Wb9-13" target="kLNLoM7m2o6o68vp3Wb9-18" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-20" value="refresh_token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="kLNLoM7m2o6o68vp3Wb9-19" vertex="1" connectable="0"> + <mxGeometry x="0.5604" y="1" relative="1" as="geometry"> + <mxPoint x="-21" y="34" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-12" value="Axios<br>(+request interceptor)" style="rounded=1;whiteSpace=wrap;html=1;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="187" y="318" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-13" value="Gateway Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B3B3B3;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="437" y="318" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="kLNLoM7m2o6o68vp3Wb9-18" value="Authentication Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B3B3B3;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="437" y="170" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="4DtipyiVSSVc0IyAwunU-1" value="client-side" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="23" y="27" width="60" height="20" as="geometry" /> + </mxCell> + <mxCell id="4DtipyiVSSVc0IyAwunU-2" value="server-side<br>(nuxt.js)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="24" y="243" width="64" height="20" as="geometry" /> + </mxCell> + <mxCell id="4DtipyiVSSVc0IyAwunU-4" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Google_Chrome_icon_%28February_2022%29.svg/2048px-Google_Chrome_icon_%28February_2022%29.svg.png;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="88" y="27" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="4DtipyiVSSVc0IyAwunU-6" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Firefox_logo%2C_2019.svg/1200px-Firefox_logo%2C_2019.svg.png;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="113" y="26.599999999999966" width="20" height="20.8" as="geometry" /> + </mxCell> + <mxCell id="4DtipyiVSSVc0IyAwunU-7" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/Nuxt_logo.svg/2560px-Nuxt_logo.svg.png;" parent="ihsuRJ9dWuDPEHVUeUyY-1" vertex="1"> + <mxGeometry x="92" y="243.15999999999997" width="28" height="20.84" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="L1JzLK7pEtbSKg_GzwHe" name="kubernetes"> + <mxGraphModel dx="3772" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="uhuFqILdIqehBGa5AEh--359" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=1;fillColor=none;dashed=1;" parent="1" vertex="1"> + <mxGeometry x="-2194" y="90" width="1680" height="1480" as="geometry" /> + </mxCell> + <mxCell id="o9QcCpmXlEoI0WZEIRtM-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="DhPzZC-KKjUQxFcC_TA6-2" target="OuYeyKodJbVhl-kyN8L6-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="OuYeyKodJbVhl-kyN8L6-1" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; 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; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Researcher</span>" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="-2319" y="967" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="_Pozg8uFO5aD6k6oWX_S-1" value="dbrepo" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ns" parent="1" vertex="1"> + <mxGeometry x="-2154" y="66" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--242" value="dbrepo-shared-claim<br>(ReadWriteMany)" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="1" vertex="1"> + <mxGeometry x="-1084" y="790" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--313" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-2060" y="1200" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--287" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--313" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--288" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--313" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--289" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--313" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--290" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--313" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--291" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--313" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--292" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--313" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--293" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--313" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--294" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--313" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--295" value="broker-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--313" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--296" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--313" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--297" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--313" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--314" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-2060" y="690" width="390" height="110" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--298" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--314" vertex="1"> + <mxGeometry width="390" height="110" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--299" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--314" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="39" as="sourcePoint" /> + <mxPoint x="121" y="39" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--310" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="uhuFqILdIqehBGa5AEh--314" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="212" y="39" as="targetPoint" /> + <mxPoint x="122" y="39" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--303" value="search-sync" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--314" vertex="1"> + <mxGeometry x="120" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--305" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;exitX=0.44;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" parent="uhuFqILdIqehBGa5AEh--314" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="326" y="39" as="sourcePoint" /> + <mxPoint x="257" y="39" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--306" value="search-sync-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--314" vertex="1"> + <mxGeometry x="307" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--309" value="search-sync" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--314" vertex="1"> + <mxGeometry x="210" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--312" value="search-sync" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=cronjob" parent="uhuFqILdIqehBGa5AEh--314" vertex="1"> + <mxGeometry x="30" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--315" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-1554" y="120" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--276" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--315" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--277" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--315" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--278" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--315" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--279" value="upload-<br>service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--315" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--280" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--315" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--281" value="upload-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--315" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--282" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--315" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--283" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--315" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--284" value="upload-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--315" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--285" value="upload-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--315" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--286" value="upload-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--315" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--316" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-948" y="877" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--265" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--316" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--266" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--316" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--267" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--316" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--268" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--316" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--269" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--316" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--270" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--316" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--271" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--316" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--272" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--316" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--273" value="auth-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--316" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--274" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--316" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--275" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--316" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--317" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-2060" y="434" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--254" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--317" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--255" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--317" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--256" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--317" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--257" value="semantic-<br>service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--317" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--258" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--317" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--259" value="semantic-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--317" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--260" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--317" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--261" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--317" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--262" value="semantic-<br style="border-color: var(--border-color);">secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--317" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--263" value="semantic-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--317" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--264" value="semantic-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--317" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--318" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-2060" y="877" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--243" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--318" vertex="1"> + <mxGeometry y="1" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--244" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--318" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--245" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--318" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--246" value="ui" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--318" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--247" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--318" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--248" value="ui" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--318" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--249" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--318" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--250" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--318" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--251" value="ui-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--318" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--252" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; 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; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">ui</span>" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--318" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--253" value="ui" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--318" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--321" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-949" y="1200" width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--67" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--68" value="data-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="30" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--76" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--78" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--79" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="79" y="47" as="sourcePoint" /> + <mxPoint x="121" y="46.75999999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--80" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="47" as="sourcePoint" /> + <mxPoint x="222" y="47" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--81" value="data-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="120" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--70" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--143" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--224" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--321" source="uhuFqILdIqehBGa5AEh--71" target="uhuFqILdIqehBGa5AEh--81" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--71" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--144" value="data-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="307" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--145" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="47.09999999999991" as="sourcePoint" /> + <mxPoint x="308" y="46.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--159" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="325" y="145" as="sourcePoint" /> + <mxPoint x="245" y="48" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--160" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="323" y="156" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--161" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--321" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="173" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--146" value="data-db-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="307" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--72" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--142" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--69" value="data-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--321" vertex="1"> + <mxGeometry x="220" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--322" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-1554" y="1200" width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--202" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--205" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--322" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--206" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--322" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--210" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--211" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--322" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--212" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--216" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--322" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="56" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--228" value="search-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry x="307" y="133" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--229" value="search-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry x="307" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--230" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--322" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="264.0999999999999" as="sourcePoint" /> + <mxPoint x="308" y="263.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--231" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--322" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="156.0999999999999" as="sourcePoint" /> + <mxPoint x="308" y="155.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--220" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--217" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;jumpStyle=none;" parent="uhuFqILdIqehBGa5AEh--322" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="319" y="58" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--226" value="search-db-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry x="307" y="25" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--219" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--322" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--323" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-1554" y="441" width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--182" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--183" value="metadata-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="30" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--184" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--185" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--186" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="79" y="47" as="sourcePoint" /> + <mxPoint x="121" y="46.75999999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--187" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="47" as="sourcePoint" /> + <mxPoint x="222" y="47" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--188" value="metadata-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="120" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--201" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="uhuFqILdIqehBGa5AEh--323" source="uhuFqILdIqehBGa5AEh--183" target="uhuFqILdIqehBGa5AEh--188" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--189" value="metadata-db-<br>replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--190" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--225" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;dashed=1;" parent="uhuFqILdIqehBGa5AEh--323" source="uhuFqILdIqehBGa5AEh--191" target="uhuFqILdIqehBGa5AEh--188" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--191" value="metadata-db-<br>replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--192" value="metadata-db-<br>claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="307" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--193" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="47.09999999999991" as="sourcePoint" /> + <mxPoint x="308" y="46.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--194" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="325" y="145" as="sourcePoint" /> + <mxPoint x="245" y="48" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--195" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="323" y="156" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--196" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--323" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="173" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--197" value="metadata-db-<br style="border-color: var(--border-color);">secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="307" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--198" value="metadata-db-<br style="border-color: var(--border-color);">replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--199" value="metadata-db-<br style="border-color: var(--border-color);">replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--200" value="metadata-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--323" vertex="1"> + <mxGeometry x="220" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--324" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-2239" y="812" width="90" height="370" as="geometry" /> + </mxCell> + <mxCell id="DhPzZC-KKjUQxFcC_TA6-2" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--324" vertex="1"> + <mxGeometry width="90" height="370" as="geometry" /> + </mxCell> + <mxCell id="DhPzZC-KKjUQxFcC_TA6-1" value="ingress" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="uhuFqILdIqehBGa5AEh--324" vertex="1"> + <mxGeometry x="20" y="18" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="DhPzZC-KKjUQxFcC_TA6-3" value="ingress-pid" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="uhuFqILdIqehBGa5AEh--324" vertex="1"> + <mxGeometry x="20" y="107" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="o9QcCpmXlEoI0WZEIRtM-1" value="ingress-root" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="uhuFqILdIqehBGa5AEh--324" vertex="1"> + <mxGeometry x="20" y="198" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="o9QcCpmXlEoI0WZEIRtM-2" value="ingress-api" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="uhuFqILdIqehBGa5AEh--324" vertex="1"> + <mxGeometry x="20" y="288" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--325" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-948" y="445" width="390" height="326" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--232" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--325" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="237" y="3" as="sourcePoint" /> + <mxPoint x="281" y="3" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--233" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--325" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="327" y="3" as="sourcePoint" /> + <mxPoint x="380" y="57" as="targetPoint" /> + <Array as="points"> + <mxPoint x="355" y="3" /> + <mxPoint x="355" y="57" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--320" value="" style="group" parent="uhuFqILdIqehBGa5AEh--325" vertex="1" connectable="0"> + <mxGeometry width="390" height="326" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--162" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry width="390" height="326" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--163" value="auth-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="30" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--164" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--165" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--166" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="79" y="47" as="sourcePoint" /> + <mxPoint x="121" y="46.75999999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--167" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="47" as="sourcePoint" /> + <mxPoint x="222" y="47" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--168" value="auth-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="120" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--169" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--170" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--223" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;dashed=1;" parent="uhuFqILdIqehBGa5AEh--320" source="uhuFqILdIqehBGa5AEh--171" target="uhuFqILdIqehBGa5AEh--168" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--171" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--172" value="auth-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="307" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--173" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="47.09999999999991" as="sourcePoint" /> + <mxPoint x="308" y="46.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--174" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="325" y="145" as="sourcePoint" /> + <mxPoint x="245" y="48" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--175" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="323" y="156" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--176" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--320" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="173" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--177" value="auth-db-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="307" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--178" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--179" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--180" value="auth-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--320" vertex="1"> + <mxGeometry x="220" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--327" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--182" target="uhuFqILdIqehBGa5AEh--21" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--328" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--265" target="uhuFqILdIqehBGa5AEh--162" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--329" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--21" target="uhuFqILdIqehBGa5AEh--265" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--330" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;exitX=1;exitY=0.75;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--21" target="uhuFqILdIqehBGa5AEh--67" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1104" y="1044" /> + <mxPoint x="-1104" y="1365" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--331" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--21" target="uhuFqILdIqehBGa5AEh--202" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--334" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;strokeWidth=3;" parent="1" source="uhuFqILdIqehBGa5AEh--243" target="uhuFqILdIqehBGa5AEh--287" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--335" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="uhuFqILdIqehBGa5AEh--254" target="uhuFqILdIqehBGa5AEh--21" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1614" y="600" /> + <mxPoint x="-1614" y="931" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--336" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--254" target="uhuFqILdIqehBGa5AEh--182" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--338" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;strokeWidth=3;entryX=1;entryY=0.75;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--21" target="uhuFqILdIqehBGa5AEh--276" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-274" y="400" as="targetPoint" /> + <Array as="points"> + <mxPoint x="-1124" y="931" /> + <mxPoint x="-1124" y="286" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--340" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--243" target="uhuFqILdIqehBGa5AEh--21" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--341" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;strokeWidth=3;" parent="1" source="uhuFqILdIqehBGa5AEh--298" target="uhuFqILdIqehBGa5AEh--21" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1624" y="745" /> + <mxPoint x="-1624" y="988" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--342" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;jumpStyle=arc;" parent="1" source="uhuFqILdIqehBGa5AEh--298" target="uhuFqILdIqehBGa5AEh--202" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1624" y="745" /> + <mxPoint x="-1624" y="1365" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--343" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;jumpStyle=arc;" parent="1" source="uhuFqILdIqehBGa5AEh--287" target="uhuFqILdIqehBGa5AEh--21" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1634" y="1255" /> + <mxPoint x="-1634" y="1150" /> + <mxPoint x="-1456" y="1150" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--349" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-1554" y="875" width="390" height="225" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--21" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="uhuFqILdIqehBGa5AEh--349" vertex="1"> + <mxGeometry width="390" height="225" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--234" value="metadata-<br>service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="uhuFqILdIqehBGa5AEh--349" vertex="1"> + <mxGeometry x="30" y="79" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--235" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--349" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="103" as="sourcePoint" /> + <mxPoint x="220" y="49" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="103" /> + <mxPoint x="195" y="49" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--236" value="metadata-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="uhuFqILdIqehBGa5AEh--349" vertex="1"> + <mxGeometry x="120" y="79" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--240" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--349" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="98" as="sourcePoint" /> + <mxPoint x="249" y="42" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--241" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="uhuFqILdIqehBGa5AEh--349" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="109" as="sourcePoint" /> + <mxPoint x="252" y="159" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--239" value="metadata-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="uhuFqILdIqehBGa5AEh--349" vertex="1"> + <mxGeometry x="307" y="79" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--237" value="metadata-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--349" vertex="1"> + <mxGeometry x="220" y="133" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--238" value="metadata-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="uhuFqILdIqehBGa5AEh--349" vertex="1"> + <mxGeometry x="220" y="25" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--347" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="uhuFqILdIqehBGa5AEh--349" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="78" y="103" as="sourcePoint" /> + <mxPoint x="122" y="103" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--348" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="uhuFqILdIqehBGa5AEh--349" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="168" y="103" as="sourcePoint" /> + <mxPoint x="221" y="157" as="targetPoint" /> + <Array as="points"> + <mxPoint x="196" y="103" /> + <mxPoint x="196" y="157" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--356" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;startArrow=classic;startFill=1;" parent="1" source="uhuFqILdIqehBGa5AEh--276" target="uhuFqILdIqehBGa5AEh--242" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--357" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0.995;entryY=0.63;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;jumpStyle=arc;" parent="1" source="uhuFqILdIqehBGa5AEh--67" target="uhuFqILdIqehBGa5AEh--242" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="uhuFqILdIqehBGa5AEh--358" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.005;entryY=0.63;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;jumpStyle=arc;" parent="1" source="uhuFqILdIqehBGa5AEh--21" target="uhuFqILdIqehBGa5AEh--242" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="XQle7S94-AV5mvv9U2em-1" value="<b>Cluster</b> aks-dbrepo (Kubernetes 1.24.10, Standard_B4ms 4vCPUs 16GB RAM)<br><b>ResourceGroup</b> dbrepo" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="-2320" y="11" width="590" height="40" as="geometry" /> + </mxCell> + <mxCell id="43mXpWcvjyxaWf1V1qYn-1" value="Namespace" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ns;fontStyle=2" parent="1" vertex="1"> + <mxGeometry x="-86" y="29" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="43mXpWcvjyxaWf1V1qYn-2" value="<i>Ingress</i>" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="1" vertex="1"> + <mxGeometry x="-86" y="139" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="43mXpWcvjyxaWf1V1qYn-3" value="Deployment" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;fontStyle=2" parent="1" vertex="1"> + <mxGeometry x="-86" y="249" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="43mXpWcvjyxaWf1V1qYn-4" value="Service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc;flipH=0;fontStyle=2" parent="1" vertex="1"> + <mxGeometry x="-86" y="360" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="43mXpWcvjyxaWf1V1qYn-5" value="Pod" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod;flipH=0;fontStyle=2" parent="1" vertex="1"> + <mxGeometry x="-86" y="470" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="43mXpWcvjyxaWf1V1qYn-7" value="Persistent Volume<br>Claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc;fontStyle=2" parent="1" vertex="1"> + <mxGeometry x="-86" y="580" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="43mXpWcvjyxaWf1V1qYn-8" value="Secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret;fontStyle=2" parent="1" vertex="1"> + <mxGeometry x="-86" y="690" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="RQzdi1eE1gEFqANnGBYO-1" value="<b>Helm Charts</b><br><br>dbrepo.azurecr.io/helm/dbrepo-core (generic open-source)<br>dbrepo.azure.io/helm/dbrepo-azure (uses dbrepo-core for Azure specific deployment)<br><br><b>Docker Images</b><br><br>dbrepo.azurecr.io/dbrepo/* (placeholder for service names)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="-460" y="1460" width="430" height="148.5" as="geometry" /> + </mxCell> + <mxCell id="ZitV3d0DDrJxuNcBGxlc-1" value="dbrepo.azurecr.io
(Standard)" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://sysadminas.eu/assets/images/post16/ACR.png;" parent="1" vertex="1"> + <mxGeometry x="-136.76999999999998" y="1341.5" width="89.53" height="47" as="geometry" /> + </mxCell> + <mxCell id="ZitV3d0DDrJxuNcBGxlc-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="ZitV3d0DDrJxuNcBGxlc-4" target="ZitV3d0DDrJxuNcBGxlc-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="ZitV3d0DDrJxuNcBGxlc-3" value="Images, Helm Charts" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ZitV3d0DDrJxuNcBGxlc-2" vertex="1" connectable="0"> + <mxGeometry x="0.2037" y="-1" relative="1" as="geometry"> + <mxPoint x="-28" y="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="ZitV3d0DDrJxuNcBGxlc-4" value="gitlab.phaidra.org
(Sourcecode, CI/CD)" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAAQQAAAA9CAYAAABLChfbAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAldEVYdENyZWF0aW9uIFRpbWUARnIgMTEgQXVnIDIwMjMgMTM6MTU6NDTPh1bqAAAboUlEQVR4nO2deXwTZf7HP0naHDRNQtM2tKWUutACPUBBRLYI6nJ0cUUEF36CInhSUTxwFRBBFLorrCsrFkUOXQE5ihyLSFsQsaXYWhB6AK1HuVqalkCSTkjSJjO/P9KUppmZJJOkx5r369U/mmfmmW+SyWee7/f5fp+HR1EUhQABAgQAwO9sAwIECNB1CAhCgAABWgkIQoAAAVoJCEKAAAFa8VgQLHU1qMuYhrqMabD+dtYfNnmEsbgAtVNG4to7r4E0GjrbnAABujU8T2cZ6jKmoan0hO1koQSx31b6xTB3sNTVoGZsb/AjEkARDZDOXoiwua91mj0BAnR3PBohWOpqYM7fCZ5YCp5YCopogLG4wF+2uYTI2Q+epCfAF4AnjYBh9+bAKCFAAC/wSBD0e7aBJ4+99YJQCkPOPl/b5Damou/Ak0bY/uELQOnrcLOosNPs6eqUlVWgrKwCBBEQzQD0eCQIxOZM8MTS1v95QgmMx77ulKeypa4GTSV5AF9w60WhFIb9X3a4LV2dj9d9Ch6Ph9TUZKSmJiM0VIp3l2d2tlkBuiBB7h5I6xq0PJXNZT9BMjzNl3a5hMjZDwilDq/xxFKY8jbDei0TgnBVh9rjDgRhgNVigcFwE41EI5qamqEMC0NISA8AgFwh9/k1X3j+JazNWoMIRRz4Apv+k1YSS5YuwoWLF7Fh48c+v2aA7ovbQUX1K3NgLj7sMEIAAMpEoMfDTyH8lbf8YiATdRnT0Hz+tOMIocUe2dMLoZg1t0PtYaKsrALHCwpRUnISJcWncaa8iOFIJSam34MRI+7EpMkPIj6+L6TSEK+vnZqaDJUynrZdralGQX4h/ph2t1fX4QLbCMVkMiPj+WcRHRPVgRZ1Hv9cvQbGmzdp20wmM95Y9JrX94K7uCUI1mtq1Dx0p5MYAABIKwQ9lei1JQ98SccYbamrQe2DKeDJetHaA74AsYc7b0qUIAzI3vUV1n+8CSeKvwMggQihEImDIAkR0Z5DWkmYTc3QmwgAegxKGIrJUx7AY7MeRWJiAic7Pl73KeZmzIdKSfM5AVBrNFi9ajleXTCfU//ewOOxjYb0OH++kvP77m7E9hqAK+pLAIJpWvXQ3tD6ZfRIh1suA3E0B2giADpB4AtguXweTVXnIB48zNf20WLIP8Lc2OLGmM6UdJg9bdm9ey9eev4NXFFXQyYOZ3w6t4cv4EMSImoRDCUa6q9hRea/sCLzbczLmI/Mf6zg+JSwsrYyPZn8Tbi8JwBAEOQcxlJr9B1tTqcik0sRborsEp+FW4Jg2Lv1VjSfDqEUxJGDHScIbtjTmP2fDhUEnVaH9PEP4UTxdwiXx0GljPGqP76AD5VSCdLaE2uzNmNt1noU5B/xaHj/x7SRAJpYjtDj3vvGuOwnL/cwGho0EImdRzdmkxkTJ07osCdYAP/iUhBMZ0pg+flH+uF5CzyhBE3HD4Gc+6rf3QZLXQ2aS3PBVw1ktcd0PAfWa+oOCS7afPXREEHg9ojAXW4JA4m0USOxLms9npv7tFvnpqQkYfHCpViR+bZTULFBexHzMua7JTAbPv0cO7O3MLaXlpYjJSAI/xO4nHYkjhx0iuY79yJAc9UJNFWd85VdjBjyj9iSkVzYQxENNlfHzxwvOIHU1DshE4ugUPpPDG3CEI+5Gc94NGX47splWL3qA1CULYio1lSDooB33l6JDz/6wK0+QmUhECESKmW80x8g4fiOAnRFWEcIpNEA48Ht4Aldf+k8eSxuFh71+zDdpbtgt0caAePRryF/5HG/2VJWVoG0URMQLqf3/9pieyrfAMDkE0ogE/dkDDraUSnjsWTpIvSO7Y0nZj/mlp2vLpiPZ597CnqdHo1EI2JiYjosah2ge8F6F98sKgSlr3Oa2qODJ5SA2Pqhzwyjw1JXA8vPP7plD/gCNJXk+a0AiyAMGHvvXyATS1nFgLSSUGuqYTY1452330BBfiHOn6+E9oYWFEVBe0OL0tJybN70CW4flgS1phpaDXuil0oZj9lzHkdlZZXb9kqlIYiOiUJiYkJADAIwwioIxM4Nbj2NbT0JQOkuw3SmxBd20cI6u0CHUApdztd+sWXh64uh1mhYn+jXNQREIjGys/dAZ6zBm28txB/T7kZiYkJrEE6ukCMlJQlPzH4M3+XnouZKLSZNHQe1ppr1+jJxNGY//qxP31OAAIyCYC9kcutp3AJPHmuLOfgJd92FVnuEEr8UPJWVVWBt1hqolErGY9QaDcalp6Ho5FFMmfKQ231Hx0Rhx64vsC5rPasoSEJEOFH8HXbv3uuR7QECsMEoCETOfsdCJjfgCSUwHtzutVF0WOpqYLl4ziOBapta7UteyHgZMnE0Y7tao8fE9Ptx4OBXnLPtnpv7tEtRkImj8eEHWZz69yVCIV1CTYDuCGNQUf9pplvBRAf4AlAmArovN0MQ1dtb2xwwnTrB7UShFPrtm3xWa3G84ASOFeQxTi8aDWYMTu6HAwe/8vpaz819GiUlJ7FxUzZUSplTuyREhGMFeSgrq0BKShKjvWy0n3asrKzCtQaNw2t1V+shEjPdKj1wsuQnp3OY+u9u1NZcRUVFBUpLK3Du3Dk06g0wGGwjzl5RkRg4cCBSU5OQlJTU4anWbdPiG/U2myIjlRg6bCj69+/H6bOn/ZaNxQXMmYku4Iml0H201Ha+LxFK6VOn3bDHlwVP/16TBREiGdv1plp8sS3X6+vYWb58KTZuygZpJVvzCByRYd+e/YyCkDZqJEvvMmhvXHJIKtq1YzeWLF3keJQ4mjFWolLKMGPmM6CbPRmcfBcKThzpdkFMgjBg/74DeO/v/2pTeyJDMETgg9cqjmaTBWZ8Cft7H5QwFK+9MR9TH3nYr+/5eMEJPPPkCzhbdRKABMGQgg+ezSZYAawHYAQAzMuYj4WLXndbrGgFQb99k+vcAxZ4YiknMfEXPHksiLyDkP/fbK/6qa25ikMHvoVMQT9yUms0WLxwKeOPkwvRMVGYlzETa7PWIBj08ZODX+fizbcWMvSgRIRC6iQmpJWESCR2OlrSowcAGWt8pD22Yx2PNxrMUCicRzVdnW1bd2DOzBdhRj1k4mjWRDObSIbA/t7r1dcwe87jmD3ncWzdsh2Pzpjmc/veXZ6JJUsXubDN9rmTVhJrs7ZgbdYarF71gVs1K06CYL2mtlU1euoudGF4Qgn0G1d5LQhlZeXQm2qhCnH+IkgrCRHEyHje95H/eS9mwGgyQSJ2/gEDgNFkAkEYut2TuCuh0+rwzNPzsDN7S0tWp+cZp4IgW/IYaSUxY+Z07Nt7ADt2feEzG+2l7J7Ux6iUMpBWKRa89hKKi0qwcfPHrPeJkyAQeQc5uwtdFh8VPB3479do/yS0o9caMWnqOL/4kYmJCYF1C/wIQRha6lBO+ST13J5VujN7J0KfDPH6uxMEBeGzzV94JAb09uwGAFaRchIE6dltkI6IAGCFqZEHnZoHaxPPYyO6AgIhBbmKgjiUAiwSkDkfAoM/59QXQRhQVnoWMpoCHwAwox5/nT7FG3O7EHoYDbceCCJxMEP8wobRYHbuwWRGU1OzX6zzNU/Ofq5FDJjdJKPB3FqafgsZZGIpS3wlBhs3fYJhw4a6XX/ijBLV1Rcwe848RCjiWl8lrSQoCmgy2z5joSjYZbasStkLO7O3IGX5IEYX00EQLHU14NUeBkJsdejiUNuPydTIg9kAGK53j20cQsJIyHu1W+YhSApeXSlIo4FTAZZep8exggJEKJgCihIkJw/y3NguhlIZhtFpYyENvSUI1b9eQkP9NVpRsFpI3D4syeF4O72iIru8G/PZ5i+wM3sL66yR3lSL0Wlj8ZdJE5GcPAhSqRQ3bxpQWlqB3bv24kRxISIUUbSfT4QiDnMzFuDBBx/gNHpUKWWYPnUWIhQ9wRfwYbWQuKa7ASAYg5P7oXesbfr7yuVanCk/ByCYdkbqVn+21Pd77xtDOwvhsECKNX8P8NnDrYLQnq4+YqAVgrYYqoDFFRDc5vkPt7KyCgMGJNLeOKSVhF5rhIlSe9yvv+HxwlmDiuXni1yWLj/15HPYsmkPbfGWWlOH8+dPe7yYSYSiLwCm9RCqO2SBFIIwIDRU6lAJ6miHHncPT8Gqf65kncLbtnUHZsyczbIQTQ3WZa1lHCUkJQ5Dvfoa4xPePsNkNJghFAXjjTdfxgN/SXf6fCorq/DF59uwIjOTUaAAm8glpSagsOioU5vDGeTlnwERc8KNOJSCqh+JsFiS8ZjOQCCkEBbrQgy85EL1RcY2igIGJPu27Lk70V1cg/bs33cAAGA2NYO0Ot7TWo0BE9PvQe6RAy7n8x+dMQ2rV2VCraHPxRBBgaPffs/ZTrsY9O4ThYKiXLy6YD6tWCYmJuDdlctw6JsDaNASTu/Jjj3LlS5HxVFCDNfdMlAcSiF6kBUCYefvJB8SRkLVj7TFCdyAd6OO03WuXq0DU6lvo86IxAH9OfUboPMQiUWYlzEftw9LQoP2Ymt5uFpTDTOsWP/pR267PLYpPfpKVplCgm/z8r1a/l5vqsVX+7e5NWoaP2EsDn3zJRq0zA+xYERg82bneJpjUDEkzCMjVf1I6Op4nRZbCIt1XwjsUD2ZF3phw2QysbZHRro/b9+W2pqrnM5rT0hIj8CqRR4yZcpDDnUmOq0O5eVnUae2uX6e+vyj08bip5IKpyAjX8CHWlMNq8XCyU6by7HeIxdq/ISxmJcxH2uzttDGFBSKHjiwLxe6f+oc7htHQWCJJDMh70VBFELi+uWOEwWB0Oa6dDz0OfskuI+Upj78aMtCrN7hbuJJAGbkCrlXqdb9Em7DDwVnGGcd6tRqj0XbNuwP5TRLMe/FDKzN2kyb5WoXqfLysw7v2UEQrAPGgJ/7GhDkWTDH7kKof+H7PeDoMnDIBkt8xD3ofWU+eDC6GEEwEabsyZoa7A5qjaZ1b4cAnceJghLGLFaAW6ylQUvgnbdf5WRPYmICJqbfj/yjRQz3lww//FDsIAgOshGk8i6pRtWPREiY/57c3gYOKXEkpxkGABAzZAkCgEgc1FpcEuD3hU6rw/GCE5j2yGM4W3WBNV+DGxrcNeJOzmdPfWQy9KYbtG3BEOFCtWM1rcMIIahXDJr6TIJA/SMQxC1T0R8uhE9cBAsBKmUy59OFQiHYljS/fOkK574DdG1qa66iuvoCbt40oKFBg7MV5/Dzz7+i8vzPqLtaD7WmumXNSf/UbiQlca+N6d+/H+yFTu2RiINRXX3J4TWnTEXBfbOAz/Z57Da0xZcuhFcuQlvMteDfz319xbi4PmBa0lwkDsZvvzJHdAN0L/JyD6Pohx9xOO8ojhXktWsVAgiFTCyCUBQMHg8+X2nbDmklES6Pg0zOXWjCI5iD3SJxMKp/veRQB+MkCLxh40Dt8k1CiLezEFxmEWixELD2mQQhR3cBAOLj+7K2qzV61NZc9TgyTTQS0JtqoTexfenBkIlFLHGG7pkH0JXQaXX48sudWLJwBa7pLsKeluyvH7s7UBQQE8ttVsxOLxV7yX+9+prD/06CwJeEwPrI31kzFj2BiwvhUIPgC8y1EDy20qsuQkJ6QCaOZozYAhpUV1/wWBC2bXevtiI39zBmz5nHmG/PFuMIwM6t3bYqEaGI4yQCthRns0/dBh4PaG7iNlVph21WwzbTUOcwHUr7KxWMmgxrn0mAxTeLnHiSyORpopFLDFUgx63iHEy0I1fIMereu2A2MT2NbRFbT4mOiXLrL1QWCoBpJsPY0h7AU95dnompUyfDZDJBpYx3GRQkrSSMBjPUGj3UmrrWRKak1ASsXrXE51uv6XXe/QbZkqFsU5rBEATdGhcwvvugv20FJY70mSgArmchfJ5+bCFAJj6O4GkLfNLdkCGp0JucK/sAQCaWYvcu/y14+tPJ0wCYf/SuhoYBnNm9ey+WLF0ElTKetY5AqzG0/vAbtBcR3y8WixfOw+ZNn6AgvxCNjQQKi47iqaeeAECfvsyVBvUNzglNgK0ojw37Hpt2GNdU5EtCQC06BKyZCWjOcp51aA+dC+GXRCNDFcgh8xD8gu/2ikj/83isyHwb9hVp2tI2P9wf6wh+vmk7wuXM38H/QqVlR0IQBsyY+qxDSXF77G7Ak3Om4pFHpiAlJZnVJTQYfLtxLl/Ahxn1MBhucs5Cra6+wNhGF6NgHR8JwlXgLdoLcuDDtkpBH9HWhfCbGIxb5VMxAGw/ut6qRMaiEREi8e81vl8FubKyClfUlbRPMaPBjLuHjwmkLXtITk4ezKhndBGuawgkpSbg/PlCbNj4McZPGNvhi6jaKSsr53yuLQ1bSNvWZG5G4oD+DvUaLiN9fEmI7Yf1xFc+FQUACB9FInyUD8Wgxb3hZRzxmZvQFrlCjoemTECDlt6NUihDsDN7C3IOtZ+q8o5V773PuJ6i3mTGffeP9un1fg98c/AQ42K5VguJQcm34ZucvX4vwXaNEj8Wc9/8aOf23RBBQdumN5nRv/8fHF5zO/QvGDUZWFwBKqiHT+IKZCIgiLX9kYledwcYqmBV3Qm89T34Q+/zQYf0PPPc02DzEyMUcZiQ/n8+K1ravXsvNm76BGFKJndBg/Q/j/fJtX5P/FL1G+PS8td09Xjplec9HnVprrtXLewJEQopli/9F6dza2uuYl92Lks6tQaDkhx3UfcoQUBw2yAEvf+TVy6EVQRgOMBv81nz5QCZ2tLGhRYXQbh0r9+3f09JScJfp85k3H+RL+BDJhYhpvcAr0WhrKwCU6fOQric3s81GswYnTa2k/c+YM7e7L4YMXTYHR6fdbygEL7eDZsv4KMZDdi2dYfH527a+BnMMLHOnIwZc4/j9Ty+CnDLhbAQHo0WrFGAYDB9G19sa7N64qa1XLv5xR/94iIwsfzdJTCjnrFdEiKCTCxFTO8UlxulMLFt6w6kpiYjXN6TMQKuN9XihZcyOPXvO5pcRrK7I3VXPRfz119ZxrLEHnciFHGYMXO6Rw+YsrIKLFm6DBGKnrTtRoMZE9MnO8VFOBccCEZNBhbkAcpBbomC3UVw2a+7LoShCmTfPwFvfe/3Lejbk5iYgHfeXuly78VwuRRpo0bihedfQllZhct+CcLQWigzY+Z0RCjiGMXAPjrwZN9IrkjEYpYSbyW+OZjjdxt8Dd0akLdQ4th3BR719+aiZdCbCD8UN9lGCSJE4tHps6DT6lweX1lZhelTZ0EmDme0R2+qpd03wmFNRS6QRgOsW94B/4d/0GY2WkXMowLWfk0AVQkI6Kb97bMIHTgqaA9BGDDu/gdwqvgs7VqDbbmuIdCMBoxOG4u0USNx+9AhrXkDdWo1LlRfxLlz51BSfBpnyosgQqTLPtWaapSWlrvcFMYXayq+uWgZVmSupc3CI60kGrQEtm75CA9OeqA1Yu1qnwj2NRU1WL1qOaKivEvbtdPU1IQnZj/m8JptjwP6xUPsa2Qeyd/rljtm2zxlGVTKGMZj2L4vV2sq2rmuITAo+Tb8Y9U7GD9hLO0x27buwPznX0eTuZkx1d1qISEWi3Hul5NO35HXgtB6EfsCraLo1pwFa5R7owLWfi8DAvtIyUIA5lrOC6X6mtqaq+jbezAk4mC31jOwz2s7BiWFAMQQQYxQucTlTQHYbi53dwbyhSDkHMrDhPRxjCm9NlGoR29VH/yhfx80NTXjRHERSkt/ZBQsNkEA0LI+Ibc1JpxpQmMj4XDz5+UexrjxYxnfk31143VZqzHzsUdpxS0v9zCWLlmBE8VFUCl7sWy3x10Q7J+tfQFX2z10DYMSUnDfn9LQNz4eN67fwOnTpThz6iyuqKtZF1i127J503+cRBLwoSAAtl2fqJUTwDPVg0ySOgQOvYHUAfxTVSATH4fghSxOy6j7i8rKKoz+4wRoNQaXT3Vvsd0cFz1aHckXgqDT6tCv72DweGC90Ugr2ZrarTddw+pV7zHa6UoQfIlaU+0kCARhQL++KbBaSNYsxQZtPQAjBiffhd6x0SAaCfz68yVcUVcCuLXvpX0RVKbl6rkIAmklEd27F/72xsuYMXO6g3hZLSR0uptohhn24jdX+2cAtlHGyLQh+C6ffv9Rn34bgnCVbRZi4hPg9/BdzgK/RxXIJzYg+G+fdykxAGzxhFNnjuOO4YOg1tT47TpGgxkN2otYl7W+w5dKkyvkeOPNl1kX7QRsYiEJsVVliqDAuXPnOshCz5FKQ/DRJ++3VDbSY9vxqBdUynhU/3IZ+UeL8FNJBcxmW92DShnfKgZJqQl4f00mGrS+mW6209xkwaMzpuHJOc86rOosCOIjTCmFSqmESimDJETkUgy0GgNUqjDs++8uxmP8Is/BE1eAuuMroNl7USBNAMb8gOBRT3pvmJ+IjolCYdFRLF64EGpNNe1ORlwhrSTUmhrI5KEoyC/0Ygcg73h1wXzcPXwMrmvcm1UKlUtQUnzaq5WG/c2UKQ9hXsZ81uCwHbvQtf/h2Xd0yv5qW8sr9GtmcEWvI0AQBmzY+DEGJw/kXDyl1ujxh4RYFJ08yl4BydVQVwQNngwq/QpIfgw3YWiuAtnjbghmnIIg/i7fG+gH3l25DAX5hbh9WFJLMYyeMc3ZFVaLTQhsLsJ7OPfLyU7ONwC+ydmL/gl9oNZUu3xfgiA+zpQXdfkpyQ8/+gCLFy7lJORqjQZCUTBKSwsRHRMFwuB78ZO1qV85lp+D0Wl3uCVgdmz3UTUmpt+DvG//6zr9muoAmnbPoiybQFm+SHDvbxOopu83dIRpfqO0tJxavHApBcgoABQgo0SIpGTiaCpcHuf0JxNHU4Cy5VhQ4fI4al3WeqqxkfDKDnt/9H8ySntD61F/jY0EtXrVBxQgoQBQwYigZOJohz8RIlvfd3b2Hg52+f7P1edYkF9IDUoY2nK8kpKJo6kIRZzDX7g8ruW9CSkA1LyM+Q79ZmfvYbWhtLSc9trh8jjGc0SIdLLddl/dam9/T7W9l8LlcVRuTp7b369Pg4psWM7sAe/Uw0Awe244aQL49/+n24wK3KGsrAK5OYdRXFSCy5euQKdtdGgPFgahd2w0hgxJxe1DhyAhob/L6UR3yTmUBz6feRm7seP+xLnvvNzD2LEjG3VX63FdY1vIM0zZE72iIjFw4ECMGDEcg4ekMkboOwqSpBin6dpzvOAEvjmYg2+PHMPli1db9+MQi8VQRiiQOKA/Jj30AMaMucfpaVtbcxVlZeW0nzdJUhgxYjjtcN3VZ0H3Hem0Ohw+chQ7t+/G5UtXcPOmsXUxlYjIMKSNGon0P4/3eFTZYYIAANbfzoL8YR745qPOwtBcBVI+C4L0j7pc4NDXtPeru/qGqL9XdFpda0lzd9gIx35feXM/daggAC2JTN+uBL9+5S1RaK4C2W9Dlw4cBgjwe6DDBcGO3YUgRfeCf3fm/5SLECBAd6XTBCFAgABdj/8HaTLFvi3/FOQAAAAASUVORK5CYII=;" parent="1" vertex="1"> + <mxGeometry x="-460" y="1349.5" width="132.13" height="31" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram name="kubernetes-core" id="zCL3C3PTpr-oPp3sT7_2"> + <mxGraphModel dx="3772" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0"> + <root> + <mxCell id="9zPUeIaJexzoN4Df6JNy-0" /> + <mxCell id="9zPUeIaJexzoN4Df6JNy-1" parent="9zPUeIaJexzoN4Df6JNy-0" /> + <mxCell id="9zPUeIaJexzoN4Df6JNy-2" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=1;fillColor=none;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-2024" y="90" width="1680" height="1480" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-4" value="Researcher" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-2150" y="967" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-5" value="dbrepo" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ns" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-1984" y="66" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-6" value="dbrepo-shared-claim<br>(ReadWriteMany)" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-914" y="790" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-7" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1890" y="1200" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-8" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-7" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-9" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-7" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-10" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-7" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-11" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-7" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-12" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-7" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-13" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-7" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-14" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-7" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-15" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-7" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-16" value="broker-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-7" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-17" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-7" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-18" value="broker-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-7" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-19" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1890" y="690" width="390" height="110" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-20" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-19" vertex="1"> + <mxGeometry width="390" height="110" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-21" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-19" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="39" as="sourcePoint" /> + <mxPoint x="121" y="39" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="9zPUeIaJexzoN4Df6JNy-19" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="212" y="39" as="targetPoint" /> + <mxPoint x="122" y="39" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-23" value="search-sync" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-19" vertex="1"> + <mxGeometry x="120" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-24" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;exitX=0.44;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" parent="9zPUeIaJexzoN4Df6JNy-19" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="326" y="39" as="sourcePoint" /> + <mxPoint x="257" y="39" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-25" value="search-sync-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-19" vertex="1"> + <mxGeometry x="307" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-26" value="search-sync" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-19" vertex="1"> + <mxGeometry x="210" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-27" value="search-sync" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=cronjob" parent="9zPUeIaJexzoN4Df6JNy-19" vertex="1"> + <mxGeometry x="30" y="15" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-28" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1384" y="120" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-29" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-28" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-30" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-28" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-31" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-28" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-32" value="upload-<br>service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-28" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-33" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-28" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-34" value="upload-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-28" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-35" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-28" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-36" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-28" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-37" value="upload-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-28" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-38" value="upload-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-28" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-39" value="upload-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-28" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-40" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-778" y="877" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-41" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-40" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-42" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-40" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-43" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-40" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-44" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-40" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-45" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-40" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-46" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-40" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-47" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-40" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-48" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-40" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-49" value="auth-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-40" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-50" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-40" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-51" value="auth-service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-40" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-52" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1890" y="434" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-53" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-52" vertex="1"> + <mxGeometry width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-54" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-52" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-55" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-52" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-56" value="semantic-<br>service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-52" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-57" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-52" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-58" value="semantic-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-52" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-59" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-52" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-60" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-52" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-61" value="semantic-<br style="border-color: var(--border-color);">secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-52" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-62" value="semantic-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-52" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-63" value="semantic-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-52" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-64" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1890" y="877" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-65" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-64" vertex="1"> + <mxGeometry y="1" width="390" height="221" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-66" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-64" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="99" as="sourcePoint" /> + <mxPoint x="121" y="99" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-67" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-64" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="153" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="153" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-68" value="ui" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-64" vertex="1"> + <mxGeometry x="30" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-69" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-64" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="99" as="sourcePoint" /> + <mxPoint x="220" y="45" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="99" /> + <mxPoint x="195" y="45" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-70" value="ui" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-64" vertex="1"> + <mxGeometry x="120" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-71" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-64" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="94" as="sourcePoint" /> + <mxPoint x="249" y="38" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-72" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-64" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="105" as="sourcePoint" /> + <mxPoint x="252" y="155" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-73" value="ui-secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-64" vertex="1"> + <mxGeometry x="307" y="75" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-74" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; 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; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">ui</span>" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-64" vertex="1"> + <mxGeometry x="220" y="130" width="50" height="47" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-75" value="ui" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-64" vertex="1"> + <mxGeometry x="220" y="21" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-76" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-779" y="1200" width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-77" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-78" value="data-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="30" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-79" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-80" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-81" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="79" y="47" as="sourcePoint" /> + <mxPoint x="121" y="46.75999999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-82" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="47" as="sourcePoint" /> + <mxPoint x="222" y="47" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-83" value="data-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="120" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-84" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-85" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-86" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-76" source="9zPUeIaJexzoN4Df6JNy-87" target="9zPUeIaJexzoN4Df6JNy-83" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-87" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-88" value="data-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="307" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-89" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="47.09999999999991" as="sourcePoint" /> + <mxPoint x="308" y="46.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-90" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="325" y="145" as="sourcePoint" /> + <mxPoint x="245" y="48" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-91" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="323" y="156" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-92" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-76" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="173" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-93" value="data-db-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="307" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-94" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-95" value="data-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-96" value="data-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-76" vertex="1"> + <mxGeometry x="220" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-97" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1384" y="1200" width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-98" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-99" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-97" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-100" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-97" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-101" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-102" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-97" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-103" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-104" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-97" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="56" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-105" value="search-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry x="307" y="133" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-106" value="search-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry x="307" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-107" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-97" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="264.0999999999999" as="sourcePoint" /> + <mxPoint x="308" y="263.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-108" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-97" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="156.0999999999999" as="sourcePoint" /> + <mxPoint x="308" y="155.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-109" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-110" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;jumpStyle=none;" parent="9zPUeIaJexzoN4Df6JNy-97" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="319" y="58" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-111" value="search-db-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry x="307" y="25" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-112" value="search-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-97" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-113" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1384" y="441" width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-114" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry width="390" height="330" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-115" value="metadata-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="30" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-116" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-117" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-118" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="79" y="47" as="sourcePoint" /> + <mxPoint x="121" y="46.75999999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-119" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="47" as="sourcePoint" /> + <mxPoint x="222" y="47" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-120" value="metadata-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="120" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-121" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="9zPUeIaJexzoN4Df6JNy-113" source="9zPUeIaJexzoN4Df6JNy-115" target="9zPUeIaJexzoN4Df6JNy-120" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-122" value="metadata-db-<br>replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-123" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-124" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-113" source="9zPUeIaJexzoN4Df6JNy-125" target="9zPUeIaJexzoN4Df6JNy-120" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-125" value="metadata-db-<br>replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-126" value="metadata-db-<br>claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="307" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-127" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="47.09999999999991" as="sourcePoint" /> + <mxPoint x="308" y="46.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-128" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="325" y="145" as="sourcePoint" /> + <mxPoint x="245" y="48" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-129" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="323" y="156" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-130" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-113" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="173" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-131" value="metadata-db-<br style="border-color: var(--border-color);">secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="307" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-132" value="metadata-db-<br style="border-color: var(--border-color);">replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-133" value="metadata-db-<br style="border-color: var(--border-color);">replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-134" value="metadata-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-113" vertex="1"> + <mxGeometry x="220" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-135" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-2069" y="812" width="90" height="370" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-136" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-135" vertex="1"> + <mxGeometry width="90" height="370" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-137" value="ingress" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="9zPUeIaJexzoN4Df6JNy-135" vertex="1"> + <mxGeometry x="20" y="18" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-138" value="ingress-pid" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="9zPUeIaJexzoN4Df6JNy-135" vertex="1"> + <mxGeometry x="20" y="107" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-139" value="ingress-root" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="9zPUeIaJexzoN4Df6JNy-135" vertex="1"> + <mxGeometry x="20" y="198" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-140" value="ingress-api" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="9zPUeIaJexzoN4Df6JNy-135" vertex="1"> + <mxGeometry x="20" y="288" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-141" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-778" y="445" width="390" height="326" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-142" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-141" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="237" y="3" as="sourcePoint" /> + <mxPoint x="281" y="3" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-143" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-141" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="327" y="3" as="sourcePoint" /> + <mxPoint x="380" y="57" as="targetPoint" /> + <Array as="points"> + <mxPoint x="355" y="3" /> + <mxPoint x="355" y="57" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-144" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-141" vertex="1" connectable="0"> + <mxGeometry width="390" height="326" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-145" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry width="390" height="326" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-146" value="auth-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="30" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-147" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="77" y="210" as="sourcePoint" /> + <mxPoint x="121" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-148" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="264" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="264" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-149" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="79" y="47" as="sourcePoint" /> + <mxPoint x="121" y="46.75999999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-150" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="47" as="sourcePoint" /> + <mxPoint x="222" y="47" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-151" value="auth-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="120" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-152" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="30" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-153" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="210" as="sourcePoint" /> + <mxPoint x="220" y="156" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="210" /> + <mxPoint x="195" y="156" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-154" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-144" source="9zPUeIaJexzoN4Df6JNy-155" target="9zPUeIaJexzoN4Df6JNy-151" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-155" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="120" y="186" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-156" value="auth-db-claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="307" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-157" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="268" y="47.09999999999991" as="sourcePoint" /> + <mxPoint x="308" y="46.8599999999999" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-158" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="325" y="145" as="sourcePoint" /> + <mxPoint x="245" y="48" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-159" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="323" y="156" as="sourcePoint" /> + <mxPoint x="252" y="156" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-160" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-144" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="173" as="sourcePoint" /> + <mxPoint x="248" y="265" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-161" value="auth-db-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="307" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-162" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="220" y="240" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-163" value="auth-db-replica" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="220" y="132" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-164" value="auth-db" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-144" vertex="1"> + <mxGeometry x="220" y="23" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-165" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-114" target="9zPUeIaJexzoN4Df6JNy-179" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-166" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-41" target="9zPUeIaJexzoN4Df6JNy-145" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-167" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-179" target="9zPUeIaJexzoN4Df6JNy-41" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-168" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;exitX=1;exitY=0.75;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-179" target="9zPUeIaJexzoN4Df6JNy-77" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-934" y="1044" /> + <mxPoint x="-934" y="1365" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-169" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-179" target="9zPUeIaJexzoN4Df6JNy-98" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;strokeWidth=3;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-65" target="9zPUeIaJexzoN4Df6JNy-8" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-171" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-53" target="9zPUeIaJexzoN4Df6JNy-179" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1444" y="600" /> + <mxPoint x="-1444" y="931" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-172" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-53" target="9zPUeIaJexzoN4Df6JNy-114" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-173" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;strokeWidth=3;entryX=1;entryY=0.75;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-179" target="9zPUeIaJexzoN4Df6JNy-29" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-104" y="400" as="targetPoint" /> + <Array as="points"> + <mxPoint x="-954" y="931" /> + <mxPoint x="-954" y="286" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-174" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;strokeWidth=3;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-65" target="9zPUeIaJexzoN4Df6JNy-179" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-175" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;strokeWidth=3;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-20" target="9zPUeIaJexzoN4Df6JNy-179" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1454" y="745" /> + <mxPoint x="-1454" y="988" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-176" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;jumpStyle=arc;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-20" target="9zPUeIaJexzoN4Df6JNy-98" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1454" y="745" /> + <mxPoint x="-1454" y="1365" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-177" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;jumpStyle=arc;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-8" target="9zPUeIaJexzoN4Df6JNy-179" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-1464" y="1255" /> + <mxPoint x="-1464" y="1150" /> + <mxPoint x="-1286" y="1150" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-178" value="" style="group" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1" connectable="0"> + <mxGeometry x="-1384" y="875" width="390" height="225" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-179" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="9zPUeIaJexzoN4Df6JNy-178" vertex="1"> + <mxGeometry width="390" height="225" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-180" value="metadata-<br>service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;" parent="9zPUeIaJexzoN4Df6JNy-178" vertex="1"> + <mxGeometry x="30" y="79" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-181" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-178" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="167" y="103" as="sourcePoint" /> + <mxPoint x="220" y="49" as="targetPoint" /> + <Array as="points"> + <mxPoint x="195" y="103" /> + <mxPoint x="195" y="49" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-182" value="metadata-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc" parent="9zPUeIaJexzoN4Df6JNy-178" vertex="1"> + <mxGeometry x="120" y="79" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-183" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-178" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="321" y="98" as="sourcePoint" /> + <mxPoint x="249" y="42" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-184" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="9zPUeIaJexzoN4Df6JNy-178" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="329" y="109" as="sourcePoint" /> + <mxPoint x="252" y="159" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-185" value="metadata-<br>secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret" parent="9zPUeIaJexzoN4Df6JNy-178" vertex="1"> + <mxGeometry x="307" y="79" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-186" value="metadata-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-178" vertex="1"> + <mxGeometry x="220" y="133" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-187" value="metadata-<br style="border-color: var(--border-color);">service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod" parent="9zPUeIaJexzoN4Df6JNy-178" vertex="1"> + <mxGeometry x="220" y="25" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-188" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;" parent="9zPUeIaJexzoN4Df6JNy-178" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="78" y="103" as="sourcePoint" /> + <mxPoint x="122" y="103" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-189" value="" style="endArrow=classic;html=1;rounded=1;strokeWidth=1;edgeStyle=orthogonalEdgeStyle;" parent="9zPUeIaJexzoN4Df6JNy-178" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="168" y="103" as="sourcePoint" /> + <mxPoint x="221" y="157" as="targetPoint" /> + <Array as="points"> + <mxPoint x="196" y="103" /> + <mxPoint x="196" y="157" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-190" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;startArrow=classic;startFill=1;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-29" target="9zPUeIaJexzoN4Df6JNy-6" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-191" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0.995;entryY=0.63;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;jumpStyle=arc;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-77" target="9zPUeIaJexzoN4Df6JNy-6" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-192" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.005;entryY=0.63;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;fillColor=#e1d5e7;strokeColor=#9673a6;jumpStyle=arc;" parent="9zPUeIaJexzoN4Df6JNy-1" source="9zPUeIaJexzoN4Df6JNy-179" target="9zPUeIaJexzoN4Df6JNy-6" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-194" value="Namespace" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ns;fontStyle=2" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-280" y="90" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-195" value="<i>Ingress</i>" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=ing" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-280" y="200" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-196" value="Deployment" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=deploy;flipH=0;fontStyle=2" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-280" y="310" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-197" value="Service" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=svc;flipH=0;fontStyle=2" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-280" y="421" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-198" value="Pod" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pod;flipH=0;fontStyle=2" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-280" y="531" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-199" value="Persistent Volume<br>Claim" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=pvc;fontStyle=2" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-280" y="641" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="9zPUeIaJexzoN4Df6JNy-200" value="Secret" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];verticalLabelPosition=bottom;align=center;verticalAlign=top;shape=mxgraph.kubernetes.icon;prIcon=secret;fontStyle=2" parent="9zPUeIaJexzoN4Df6JNy-1" vertex="1"> + <mxGeometry x="-280" y="751" width="50" height="48" as="geometry" /> + </mxCell> + <mxCell id="pu2ujC6uqX3OPgaOAFM2-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="9zPUeIaJexzoN4Df6JNy-1" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-2070" y="997" as="targetPoint" /> + <mxPoint x="-2120" y="997" as="sourcePoint" /> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="DNBJDzVGt1bZ_wE9aRrb" name="Authentication (TU)"> + <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="UK1E1MY9NPGJr35xhmfM-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-5" target="QHHrKqhJkxuvhbEd7n-v-1" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="618" y="253" as="sourcePoint" /> + <mxPoint x="677.5" y="221" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="0UriubutAV_ndhbAIQOG-1" target="lwbPPWB284nzco3shXtu-11" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="0UriubutAV_ndhbAIQOG-1" value="SATOSA" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="447.5" y="414" width="170" height="210" as="geometry" /> + </mxCell> + <mxCell id="h4DClbYJ9orVhpn0rvY8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="OTtTGdUG0AnkBV5d_5uu-1" target="OTtTGdUG0AnkBV5d_5uu-2" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="OTtTGdUG0AnkBV5d_5uu-1" value="SAML 2.0 IdP<br>(Frontend)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="467.5" y="444" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="h4DClbYJ9orVhpn0rvY8-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="OTtTGdUG0AnkBV5d_5uu-2" target="OTtTGdUG0AnkBV5d_5uu-3" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="OTtTGdUG0AnkBV5d_5uu-2" value="Middleware" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="467.5" y="504" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="OTtTGdUG0AnkBV5d_5uu-3" value="SAML 2.0 SP<br>(Backend)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="467.5" y="564" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="h4DClbYJ9orVhpn0rvY8-2" value="<a href="https://test.dbrepo.tuwien.ac.at/api/auth/realms/dbrepo/.well-known/openid-configuration">JSON<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="307.5" y="181" width="70" height="90" as="geometry" /> + </mxCell> + <mxCell id="lwbPPWB284nzco3shXtu-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="h4DClbYJ9orVhpn0rvY8-3" target="OTtTGdUG0AnkBV5d_5uu-3" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="410" y="576" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="h4DClbYJ9orVhpn0rvY8-3" value="<a href="https://test.dbrepo.tuwien.ac.at/saml2/endpoint">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="307.5" y="539" width="70" height="90" as="geometry" /> + </mxCell> + <mxCell id="QHHrKqhJkxuvhbEd7n-v-1" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="677.5" y="248" width="50" height="64" as="geometry" /> + </mxCell> + <mxCell id="QHHrKqhJkxuvhbEd7n-v-2" value="auth-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="660" y="314" width="85" height="20" as="geometry" /> + </mxCell> + <mxCell id="hp2oGXdcphavrsRCR3EN-1" value="<b>EntityID&nbsp;</b>https://test.dbrepo.tuwien.ac.at/saml2/backend" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="10" y="10" width="440" height="20" as="geometry" /> + </mxCell> + <mxCell id="lwbPPWB284nzco3shXtu-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;dashed=1;" parent="1" source="lwbPPWB284nzco3shXtu-11" target="h4DClbYJ9orVhpn0rvY8-3" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="lwbPPWB284nzco3shXtu-11" value="TU SSO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="50" y="474" width="170" height="90" as="geometry" /> + </mxCell> + <mxCell id="lwbPPWB284nzco3shXtu-12" value="SimpleSAML" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> + <mxGeometry x="70" y="504" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="lwbPPWB284nzco3shXtu-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="lwbPPWB284nzco3shXtu-18" target="OTtTGdUG0AnkBV5d_5uu-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="lwbPPWB284nzco3shXtu-18" value="<a href="https://test.dbrepo.tuwien.ac.at/saml2/backend">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="307.5" y="419" width="70" height="90" as="geometry" /> + </mxCell> + <mxCell id="tOMRmRFzJHC1-SXyWV1O-3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#000000;startArrow=classic;startFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry x="-0.028" relative="1" as="geometry"> + <mxPoint x="532" y="126" as="sourcePoint" /> + <mxPoint as="offset" /> + <mxPoint x="532" y="174" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="tOMRmRFzJHC1-SXyWV1O-4" value="Researcher" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="517.5" y="42" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-4" value="<a href="https://test.dbrepo.tuwien.ac.at/api/auth/realms/dbrepo/broker/saml/endpoint/descriptor">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="307.5" y="300" width="70" height="90" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-5" value="Keycloak" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="447.5" y="175" width="170" height="210" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-7" target="6Mvu0cpha-60HerBRlcp-10" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-7" value="OIDC IdP" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="467.5" y="205" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-5" target="0UriubutAV_ndhbAIQOG-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-10" value="SAML 2.0 SP<br>(Identity Broker)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="467.5" y="325" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="lwbPPWB284nzco3shXtu-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="h4DClbYJ9orVhpn0rvY8-2" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="467.5" y="226" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-4" target="6Mvu0cpha-60HerBRlcp-10" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-15" target="OTtTGdUG0AnkBV5d_5uu-1" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="6Mvu0cpha-60HerBRlcp-15" value="JSON<br>(Denylist)" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="667.5" y="419" width="70" height="90" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/misc/architecture.drawio b/misc/architecture.drawio index c5d7c5922b22c452adfe90d6ff4f6fd2c7b93082..f53478c269f32d26d42225b21a4aa2035f038cb4 100644 --- a/misc/architecture.drawio +++ b/misc/architecture.drawio @@ -1,212 +1,6 @@ -<mxfile host="Electron" modified="2023-09-22T11:53:08.451Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="nPzW193kQO8dlamlRgj-" version="21.1.2" type="device" pages="6"> - <diagram name="Deployment" id="BS_rNRZWEkVqn4O3IFNu"> - <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="840" pageHeight="509" math="0" shadow="0"> - <root> - <mxCell id="0" /> - <mxCell id="1" parent="0" /> - <mxCell id="qJbSU32InUa3qXW1C_Xf-53" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fontColor=#000000;fillColor=none;" parent="1" vertex="1"> - <mxGeometry y="27" width="840" height="420" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-84" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;fillColor=#DBEBFF;dashed=1;dashPattern=1 4;fillStyle=solid;" parent="1" vertex="1"> - <mxGeometry x="25" y="56" width="790" height="120" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-85" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fontSize=10;fillColor=#D5E8D4;dashed=1;dashPattern=1 4;fillStyle=solid;" parent="1" vertex="1"> - <mxGeometry x="25" y="176" width="790" height="182" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontColor=#000000;startArrow=classic;startFill=1;" parent="1" source="qJbSU32InUa3qXW1C_Xf-1" target="qJbSU32InUa3qXW1C_Xf-32" edge="1"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontColor=#000000;startArrow=classic;startFill=1;" parent="1" source="qJbSU32InUa3qXW1C_Xf-1" target="qJbSU32InUa3qXW1C_Xf-33" edge="1"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontColor=#000000;startArrow=classic;startFill=1;" parent="1" source="qJbSU32InUa3qXW1C_Xf-1" target="qJbSU32InUa3qXW1C_Xf-31" edge="1"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=#000000;startArrow=classic;startFill=1;" parent="1" source="qJbSU32InUa3qXW1C_Xf-1" target="qJbSU32InUa3qXW1C_Xf-2" edge="1"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.516;entryDx=0;entryDy=0;fontColor=#000000;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" source="qJbSU32InUa3qXW1C_Xf-1" target="qJbSU32InUa3qXW1C_Xf-29" edge="1"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-1" value="Reverse Proxy<br>NGINX" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="355" y="67" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-2" value="UI<br>/" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="355" y="188" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-3" value="Gateway Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B3B3B3;fontColor=#000000;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="355" y="248" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-5" value="Container Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="36" y="248" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-6" value="Table Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="666" y="188" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-7" value="Query Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="36" y="308" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-8" value="Database Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="516" y="188" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-9" value="Identifier Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="36" y="188" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-10" value="Authentication Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B3B3B3;" parent="1" vertex="1"> - <mxGeometry x="196" y="248" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-11" value="Analyse Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="516" y="308" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-12" value="Search Database" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="666" y="248" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-13" value="Semantics Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="516" y="248" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-14" value="Metadata Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="196" y="309" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-15" value="Broker Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="196" y="188" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontColor=#000000;endArrow=none;endFill=0;dashed=1;dashPattern=1 4;" parent="1" edge="1"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="737" y="392" as="targetPoint" /> - <mxPoint x="448" y="392" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-29" value="Prometheus<br><font style="font-size: 10px;">/prometheus</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="196" y="66" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontColor=#000000;startArrow=classic;startFill=1;endArrow=classic;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;dashed=1;dashPattern=1 2;" parent="1" source="qJbSU32InUa3qXW1C_Xf-30" target="qJbSU32InUa3qXW1C_Xf-29" edge="1"> - <mxGeometry relative="1" as="geometry"> - <Array as="points"> - <mxPoint x="101" y="122" /> - <mxPoint x="261" y="122" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-30" value="Alertmanager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="36" y="66" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-31" value="cAdvisor<br><font style="font-size: 10px;">/cadvisor</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="516" y="67" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-32" value="Jupyterhub<br><font style="font-size: 10px;">/jupyterhub</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="516" y="127" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-33" value="Grafana<br><font style="font-size: 10px;">/grafana</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="196" y="127" width="130" height="40" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=#000000;endArrow=classic;endFill=1;" parent="1" source="qJbSU32InUa3qXW1C_Xf-44" target="qJbSU32InUa3qXW1C_Xf-62" edge="1"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontColor=#000000;endArrow=none;endFill=0;dashed=1;dashPattern=1 4;" parent="1" edge="1"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="389" y="391.76" as="targetPoint" /> - <mxPoint x="79" y="391.76" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-91" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontSize=10;fontColor=#000000;startArrow=classic;startFill=1;endArrow=classic;endFill=1;" parent="1" source="qJbSU32InUa3qXW1C_Xf-54" target="qJbSU32InUa3qXW1C_Xf-1" edge="1"> - <mxGeometry relative="1" as="geometry"> - <Array as="points"> - <mxPoint x="420" y="37" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-54" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fontColor=#000000;fillColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="415" y="17" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-55" value="tcp 80, 443" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="426" width="66" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontColor=#000000;startArrow=classic;startFill=1;endArrow=classic;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="qJbSU32InUa3qXW1C_Xf-56" target="qJbSU32InUa3qXW1C_Xf-15" edge="1"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="177" y="40" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="177" y="37" /> - <mxPoint x="177" y="208" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-56" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fontColor=#000000;fillColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="173" y="17" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-57" value="tcp 5672" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="186" width="76" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-58" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fontColor=#000000;fillColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="412" y="437" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-59" value="tcp 10000+" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="426" y="451" width="76" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-62" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fontColor=#000000;fillColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="47" y="437" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-63" value="tcp 10000+" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="61" y="451" width="76" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-64" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fontColor=#000000;fillColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="758" y="437" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-65" value="tcp 10000+" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="769" y="451" width="71" height="20" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-69" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=#000000;endArrow=classic;endFill=1;" parent="1" edge="1"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="417" y="408" as="sourcePoint" /> - <mxPoint x="417" y="437" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-70" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=#000000;endArrow=classic;endFill=1;" parent="1" edge="1"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="763" y="408" as="sourcePoint" /> - <mxPoint x="763" y="437" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-76" value="dbrepo1.ec.tuwien.ac.at" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="738" y="24" width="60" height="30" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-80" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://gitlab.developers.cam.ac.uk/uploads/-/system/project/avatar/4542/compose.png;" parent="1" vertex="1"> - <mxGeometry x="744.63" y="66" width="60.75" height="77" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-87" value="1)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="794" y="143" width="27" height="30" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-88" value="2)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="794" y="324" width="27" height="30" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-89" value="1)&nbsp;https://gitlab.tuwien.ac.at/martin.weise/dbrepo-tuw/-/blob/master/docker-compose.dbrepo1.yml<br>2)&nbsp;https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/master/docker-compose.dbrepo1.yml" style="text;whiteSpace=wrap;html=1;fontSize=10;fontColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="12" y="471" width="520" height="29" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-25" value="" style="sketch=0;aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/mscae/SQL_Database_generic.svg;" parent="1" vertex="1"> - <mxGeometry x="398" y="367" width="38" height="50" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-44" value="" style="sketch=0;aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/mscae/SQL_Database_generic.svg;" parent="1" vertex="1"> - <mxGeometry x="33" y="367" width="38" height="50" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-49" value="" style="sketch=0;aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/mscae/SQL_Database_generic.svg;" parent="1" vertex="1"> - <mxGeometry x="745" y="367" width="38" height="50" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-93" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://assets.stickpng.com/images/58480f12cef1014c0b5e4931.png;" parent="1" vertex="1"> - <mxGeometry x="61" y="400" width="34.67" height="23" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-94" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://assets.stickpng.com/images/58480f12cef1014c0b5e4931.png;" parent="1" vertex="1"> - <mxGeometry x="426" y="400" width="34.67" height="23" as="geometry" /> - </mxCell> - <mxCell id="qJbSU32InUa3qXW1C_Xf-95" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://assets.stickpng.com/images/58480f12cef1014c0b5e4931.png;" parent="1" vertex="1"> - <mxGeometry x="772.17" y="400" width="34.67" height="23" as="geometry" /> - </mxCell> - <mxCell id="EIwzJq8dkpXTqFd1RJj--1" value="User Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="355" y="308" width="130" height="40" as="geometry" /> - </mxCell> - </root> - </mxGraphModel> - </diagram> +<mxfile host="Electron" modified="2023-10-09T07:59:25.474Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="6dOe4E5f3TKTd8nRObHK" version="21.1.2" type="device" pages="5"> <diagram id="mvBsv1rP8O80Qe3yGnn_" name="docker-compose"> - <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <mxGraphModel dx="1509" dy="865" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> @@ -219,8 +13,10 @@ <mxCell id="S3Av5TdVFqS_SrXukbwN-2" value="Researcher" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> <mxGeometry x="433.5" y="146" width="30" height="60" as="geometry" /> </mxCell> - <mxCell id="V1Wl26Vbpgnno5Lb-wtg-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="S3Av5TdVFqS_SrXukbwN-1" edge="1"> - <mxGeometry relative="1" as="geometry" /> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-39" value="HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="S3Av5TdVFqS_SrXukbwN-1" edge="1"> + <mxGeometry x="0.0013" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="AQz-Vj6r_5Wor37pQVs6-1" edge="1"> <mxGeometry relative="1" as="geometry" /> @@ -228,7 +24,7 @@ <mxCell id="V1Wl26Vbpgnno5Lb-wtg-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="SsHHCok0RUWS7ODwTELy-4" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="V1Wl26Vbpgnno5Lb-wtg-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="13tBXMPt0xomx7MP2VuM-1" edge="1"> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-42" value="HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="13tBXMPt0xomx7MP2VuM-1" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="O_ELZSFbvl3Butg3bv_j-1" edge="1"> @@ -241,19 +37,31 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="V1Wl26Vbpgnno5Lb-wtg-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="V1Wl26Vbpgnno5Lb-wtg-38" edge="1"> - <mxGeometry relative="1" as="geometry" /> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-19" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-43"> + <mxGeometry x="-0.6602" relative="1" as="geometry"> + <mxPoint x="-3" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-44" value="TUSD" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="V1Wl26Vbpgnno5Lb-wtg-38" edge="1"> + <mxGeometry x="0.0034" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="CohMdi7D_fRk0dSxzjYi-1" target="hBEam5F8n4ZBPeoiEcWH-1" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="480" y="346" /> <mxPoint x="538" y="346" /> - <mxPoint x="538" y="440" /> - <mxPoint x="625" y="440" /> + <mxPoint x="538" y="540" /> + <mxPoint x="625" y="540" /> </Array> </mxGeometry> </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-18" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-45"> + <mxGeometry x="-0.7352" y="1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> <mxCell id="CohMdi7D_fRk0dSxzjYi-1" value="Gateway Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="382.5" y="278" width="130" height="40" as="geometry" /> </mxCell> @@ -269,16 +77,33 @@ <mxCell id="V1Wl26Vbpgnno5Lb-wtg-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" source="hBEam5F8n4ZBPeoiEcWH-1" target="V1Wl26Vbpgnno5Lb-wtg-34" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="V1Wl26Vbpgnno5Lb-wtg-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" source="hBEam5F8n4ZBPeoiEcWH-1" target="V1Wl26Vbpgnno5Lb-wtg-32" edge="1"> - <mxGeometry relative="1" as="geometry" /> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" target="V1Wl26Vbpgnno5Lb-wtg-32" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="689.9999999999998" y="586" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-16" value="JDBC" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-48"> + <mxGeometry x="-0.2851" y="-2" relative="1" as="geometry"> + <mxPoint x="6" y="-2" as="offset" /> + </mxGeometry> </mxCell> <mxCell id="hBEam5F8n4ZBPeoiEcWH-1" value="Metadata Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="560" y="470" width="130" height="40" as="geometry" /> + <mxGeometry x="560" y="566" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-15" value="Spring AMQP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=arc;dashed=1;strokeWidth=1;dashPattern=1 1;fontSize=9;" edge="1" parent="1" source="AQz-Vj6r_5Wor37pQVs6-1" target="YJRAzF6yD4Hh-bAvO1PB-1"> + <mxGeometry x="0.54" relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="370" y="394" /> + <mxPoint x="370" y="540" /> + <mxPoint x="449" y="540" /> + </Array> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> <mxCell id="AQz-Vj6r_5Wor37pQVs6-1" value="Broker Service<br>(RabbitMQ)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="210" y="374" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="V1Wl26Vbpgnno5Lb-wtg-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" source="SsHHCok0RUWS7ODwTELy-4" target="V1Wl26Vbpgnno5Lb-wtg-26" edge="1"> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-49" value="HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;fontSize=9;" parent="1" source="SsHHCok0RUWS7ODwTELy-4" target="V1Wl26Vbpgnno5Lb-wtg-26" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="SsHHCok0RUWS7ODwTELy-4" value="Search Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> @@ -290,25 +115,22 @@ <mxCell id="V1Wl26Vbpgnno5Lb-wtg-26" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> <mxGeometry x="740" y="362" width="50" height="64" as="geometry" /> </mxCell> - <mxCell id="V1Wl26Vbpgnno5Lb-wtg-27" value="search-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="722.5" y="426" width="85" height="20" as="geometry" /> - </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="V1Wl26Vbpgnno5Lb-wtg-32" edge="1"> <mxGeometry relative="1" as="geometry"> - <mxPoint x="850" y="490" as="targetPoint" /> + <mxPoint x="850" y="586" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-32" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="740" y="458" width="50" height="64" as="geometry" /> + <mxGeometry x="740" y="554" width="50" height="64" as="geometry" /> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-33" value="metadata-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="722.5" y="522" width="85" height="20" as="geometry" /> + <mxGeometry x="722.5" y="618" width="85" height="20" as="geometry" /> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-34" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="600" y="550" width="50" height="64" as="geometry" /> + <mxGeometry x="600" y="660" width="50" height="64" as="geometry" /> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-35" value="data-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="582.5" y="614" width="85" height="20" as="geometry" /> + <mxGeometry x="582.5" y="724" width="85" height="20" as="geometry" /> </mxCell> <mxCell id="V1Wl26Vbpgnno5Lb-wtg-36" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> <mxGeometry x="250" y="550" width="50" height="64" as="geometry" /> @@ -320,10 +142,10 @@ <mxGeometry x="560" y="278" width="130" height="40" as="geometry" /> </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-3" value="metadata-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="810.5" y="504" width="108" height="20" as="geometry" /> + <mxGeometry x="810.5" y="600" width="108" height="20" as="geometry" /> </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-6" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="850.5" y="476" width="28" height="28" as="geometry" /> + <mxGeometry x="850.5" y="572" width="28" height="28" as="geometry" /> </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-7" value="search-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> <mxGeometry x="810.5" y="408" width="108" height="20" as="geometry" /> @@ -335,13 +157,13 @@ <mxGeometry x="850.5" y="380" width="28" height="28" as="geometry" /> </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-10" value="data-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="571" y="684" width="108" height="20" as="geometry" /> + <mxGeometry x="571" y="794" width="108" height="20" as="geometry" /> </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-11" target="V1Wl26Vbpgnno5Lb-wtg-35" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-11" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="611" y="656" width="28" height="28" as="geometry" /> + <mxGeometry x="611" y="766" width="28" height="28" as="geometry" /> </mxCell> <mxCell id="A18w2Y2_AVEIFkgUy5Lv-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-15" target="V1Wl26Vbpgnno5Lb-wtg-37" edge="1"> <mxGeometry relative="1" as="geometry" /> @@ -352,32 +174,47 @@ <mxCell id="A18w2Y2_AVEIFkgUy5Lv-16" value="auth-db-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> <mxGeometry x="221" y="684" width="108" height="20" as="geometry" /> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-28" target="AQz-Vj6r_5Wor37pQVs6-1" edge="1"> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-36" target="V1Wl26Vbpgnno5Lb-wtg-38" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-28" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="121" y="380" width="28" height="28" as="geometry" /> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-36" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="751" y="284" width="28" height="28" as="geometry" /> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-30" value="broker-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="81" y="408" width="108" height="20" as="geometry" /> + <mxCell id="A18w2Y2_AVEIFkgUy5Lv-39" value="upload-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="711" y="312" width="108" height="20" as="geometry" /> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-31" target="O_ELZSFbvl3Butg3bv_j-1" edge="1"> - <mxGeometry relative="1" as="geometry" /> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-2" value="JDBC" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=9;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-1" target="V1Wl26Vbpgnno5Lb-wtg-34"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="448" y="582" /> + </Array> + </mxGeometry> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-31" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="121" y="476" width="28" height="28" as="geometry" /> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-1" value="Data Service" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="383.5" y="566" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-32" value="authentication-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="81" y="510" width="108" height="20" as="geometry" /> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-26"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="765" y="490" /> + </Array> + </mxGeometry> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="A18w2Y2_AVEIFkgUy5Lv-36" target="V1Wl26Vbpgnno5Lb-wtg-38" edge="1"> - <mxGeometry relative="1" as="geometry" /> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-17" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="YJRAzF6yD4Hh-bAvO1PB-13"> + <mxGeometry x="0.3792" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-36" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" parent="1" vertex="1"> - <mxGeometry x="751" y="284" width="28" height="28" as="geometry" /> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-14" value="JDBC" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=9;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-32"> + <mxGeometry x="0.5121" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> - <mxCell id="A18w2Y2_AVEIFkgUy5Lv-39" value="upload-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> - <mxGeometry x="711" y="312" width="108" height="20" as="geometry" /> + <mxCell id="YJRAzF6yD4Hh-bAvO1PB-12" value="Mirror Service" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="560" y="470" width="130" height="40" as="geometry" /> + </mxCell> + <mxCell id="V1Wl26Vbpgnno5Lb-wtg-27" value="search-db" style="text;html=1;strokeColor=none;fillColor=default;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> + <mxGeometry x="722.5" y="437" width="85" height="17" as="geometry" /> </mxCell> </root> </mxGraphModel> @@ -2343,113 +2180,113 @@ </root> </mxGraphModel> </diagram> - <diagram id="DNBJDzVGt1bZ_wE9aRrb" name="Authentication"> + <diagram id="DNBJDzVGt1bZ_wE9aRrb" name="Authentication (TU)"> <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> - <mxCell id="UK1E1MY9NPGJr35xhmfM-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="6Mvu0cpha-60HerBRlcp-5" target="QHHrKqhJkxuvhbEd7n-v-1"> + <mxCell id="UK1E1MY9NPGJr35xhmfM-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-5" target="QHHrKqhJkxuvhbEd7n-v-1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="618" y="253" as="sourcePoint" /> <mxPoint x="677.5" y="221" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="0UriubutAV_ndhbAIQOG-1" target="lwbPPWB284nzco3shXtu-11"> + <mxCell id="6Mvu0cpha-60HerBRlcp-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="0UriubutAV_ndhbAIQOG-1" target="lwbPPWB284nzco3shXtu-11" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="0UriubutAV_ndhbAIQOG-1" value="SATOSA" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" vertex="1" parent="1"> + <mxCell id="0UriubutAV_ndhbAIQOG-1" value="SATOSA" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" parent="1" vertex="1"> <mxGeometry x="447.5" y="414" width="170" height="210" as="geometry" /> </mxCell> - <mxCell id="h4DClbYJ9orVhpn0rvY8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="OTtTGdUG0AnkBV5d_5uu-1" target="OTtTGdUG0AnkBV5d_5uu-2"> + <mxCell id="h4DClbYJ9orVhpn0rvY8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="OTtTGdUG0AnkBV5d_5uu-1" target="OTtTGdUG0AnkBV5d_5uu-2" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="OTtTGdUG0AnkBV5d_5uu-1" value="SAML 2.0 IdP<br>(Frontend)" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxCell id="OTtTGdUG0AnkBV5d_5uu-1" value="SAML 2.0 IdP<br>(Frontend)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="467.5" y="444" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="h4DClbYJ9orVhpn0rvY8-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="OTtTGdUG0AnkBV5d_5uu-2" target="OTtTGdUG0AnkBV5d_5uu-3"> + <mxCell id="h4DClbYJ9orVhpn0rvY8-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="OTtTGdUG0AnkBV5d_5uu-2" target="OTtTGdUG0AnkBV5d_5uu-3" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="OTtTGdUG0AnkBV5d_5uu-2" value="Middleware" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxCell id="OTtTGdUG0AnkBV5d_5uu-2" value="Middleware" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="467.5" y="504" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="OTtTGdUG0AnkBV5d_5uu-3" value="SAML 2.0 SP<br>(Backend)" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxCell id="OTtTGdUG0AnkBV5d_5uu-3" value="SAML 2.0 SP<br>(Backend)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="467.5" y="564" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="h4DClbYJ9orVhpn0rvY8-2" value="<a href="https://test.dbrepo.tuwien.ac.at/api/auth/realms/dbrepo/.well-known/openid-configuration">JSON<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1"> + <mxCell id="h4DClbYJ9orVhpn0rvY8-2" value="<a href="https://test.dbrepo.tuwien.ac.at/api/auth/realms/dbrepo/.well-known/openid-configuration">JSON<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="307.5" y="181" width="70" height="90" as="geometry" /> </mxCell> - <mxCell id="lwbPPWB284nzco3shXtu-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" edge="1" parent="1" source="h4DClbYJ9orVhpn0rvY8-3" target="OTtTGdUG0AnkBV5d_5uu-3"> + <mxCell id="lwbPPWB284nzco3shXtu-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="h4DClbYJ9orVhpn0rvY8-3" target="OTtTGdUG0AnkBV5d_5uu-3" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="410" y="576" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="h4DClbYJ9orVhpn0rvY8-3" value="<a href="https://test.dbrepo.tuwien.ac.at/saml2/endpoint">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1"> + <mxCell id="h4DClbYJ9orVhpn0rvY8-3" value="<a href="https://test.dbrepo.tuwien.ac.at/saml2/endpoint">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="307.5" y="539" width="70" height="90" as="geometry" /> </mxCell> - <mxCell id="QHHrKqhJkxuvhbEd7n-v-1" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="1"> + <mxCell id="QHHrKqhJkxuvhbEd7n-v-1" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8.600000000000023;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> <mxGeometry x="677.5" y="248" width="50" height="64" as="geometry" /> </mxCell> - <mxCell id="QHHrKqhJkxuvhbEd7n-v-2" value="auth-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" vertex="1" parent="1"> + <mxCell id="QHHrKqhJkxuvhbEd7n-v-2" value="auth-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1"> <mxGeometry x="660" y="314" width="85" height="20" as="geometry" /> </mxCell> - <mxCell id="hp2oGXdcphavrsRCR3EN-1" value="<b>EntityID&nbsp;</b>https://test.dbrepo.tuwien.ac.at/saml2/backend" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxCell id="hp2oGXdcphavrsRCR3EN-1" value="<b>EntityID&nbsp;</b>https://test.dbrepo.tuwien.ac.at/saml2/backend" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="10" y="10" width="440" height="20" as="geometry" /> </mxCell> - <mxCell id="lwbPPWB284nzco3shXtu-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;dashed=1;" edge="1" parent="1" source="lwbPPWB284nzco3shXtu-11" target="h4DClbYJ9orVhpn0rvY8-3"> + <mxCell id="lwbPPWB284nzco3shXtu-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;dashed=1;" parent="1" source="lwbPPWB284nzco3shXtu-11" target="h4DClbYJ9orVhpn0rvY8-3" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="lwbPPWB284nzco3shXtu-11" value="TU SSO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" vertex="1" parent="1"> + <mxCell id="lwbPPWB284nzco3shXtu-11" value="TU SSO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" parent="1" vertex="1"> <mxGeometry x="50" y="474" width="170" height="90" as="geometry" /> </mxCell> - <mxCell id="lwbPPWB284nzco3shXtu-12" value="SimpleSAML" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1"> + <mxCell id="lwbPPWB284nzco3shXtu-12" value="SimpleSAML" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="70" y="504" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="lwbPPWB284nzco3shXtu-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" edge="1" parent="1" source="lwbPPWB284nzco3shXtu-18" target="OTtTGdUG0AnkBV5d_5uu-1"> + <mxCell id="lwbPPWB284nzco3shXtu-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="lwbPPWB284nzco3shXtu-18" target="OTtTGdUG0AnkBV5d_5uu-1" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="lwbPPWB284nzco3shXtu-18" value="<a href="https://test.dbrepo.tuwien.ac.at/saml2/backend">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1"> + <mxCell id="lwbPPWB284nzco3shXtu-18" value="<a href="https://test.dbrepo.tuwien.ac.at/saml2/backend">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="307.5" y="419" width="70" height="90" as="geometry" /> </mxCell> - <mxCell id="tOMRmRFzJHC1-SXyWV1O-3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#000000;startArrow=classic;startFill=1;dashed=1;" edge="1" parent="1"> + <mxCell id="tOMRmRFzJHC1-SXyWV1O-3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#000000;startArrow=classic;startFill=1;dashed=1;" parent="1" edge="1"> <mxGeometry x="-0.028" relative="1" as="geometry"> <mxPoint x="532" y="126" as="sourcePoint" /> <mxPoint as="offset" /> <mxPoint x="532" y="174" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="tOMRmRFzJHC1-SXyWV1O-4" value="Researcher" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1"> + <mxCell id="tOMRmRFzJHC1-SXyWV1O-4" value="Researcher" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> <mxGeometry x="517.5" y="42" width="30" height="60" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-4" value="<a href="https://test.dbrepo.tuwien.ac.at/api/auth/realms/dbrepo/broker/saml/endpoint/descriptor">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1"> + <mxCell id="6Mvu0cpha-60HerBRlcp-4" value="<a href="https://test.dbrepo.tuwien.ac.at/api/auth/realms/dbrepo/broker/saml/endpoint/descriptor">XML<br>Metadata</a>" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="307.5" y="300" width="70" height="90" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-5" value="Keycloak" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" vertex="1" parent="1"> + <mxCell id="6Mvu0cpha-60HerBRlcp-5" value="Keycloak" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;verticalAlign=top;" parent="1" vertex="1"> <mxGeometry x="447.5" y="175" width="170" height="210" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="6Mvu0cpha-60HerBRlcp-7" target="6Mvu0cpha-60HerBRlcp-10"> + <mxCell id="6Mvu0cpha-60HerBRlcp-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-7" target="6Mvu0cpha-60HerBRlcp-10" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-7" value="OIDC IdP" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxCell id="6Mvu0cpha-60HerBRlcp-7" value="OIDC IdP" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="467.5" y="205" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="6Mvu0cpha-60HerBRlcp-5" target="0UriubutAV_ndhbAIQOG-1"> + <mxCell id="6Mvu0cpha-60HerBRlcp-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-5" target="0UriubutAV_ndhbAIQOG-1" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-10" value="SAML 2.0 SP<br>(Identity Broker)" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxCell id="6Mvu0cpha-60HerBRlcp-10" value="SAML 2.0 SP<br>(Identity Broker)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="467.5" y="325" width="130" height="40" as="geometry" /> </mxCell> - <mxCell id="lwbPPWB284nzco3shXtu-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" edge="1" parent="1" source="h4DClbYJ9orVhpn0rvY8-2"> + <mxCell id="lwbPPWB284nzco3shXtu-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="h4DClbYJ9orVhpn0rvY8-2" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="467.5" y="226" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;" edge="1" parent="1" source="6Mvu0cpha-60HerBRlcp-4" target="6Mvu0cpha-60HerBRlcp-10"> + <mxCell id="6Mvu0cpha-60HerBRlcp-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-4" target="6Mvu0cpha-60HerBRlcp-10" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="6Mvu0cpha-60HerBRlcp-15" target="OTtTGdUG0AnkBV5d_5uu-1"> + <mxCell id="6Mvu0cpha-60HerBRlcp-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="6Mvu0cpha-60HerBRlcp-15" target="OTtTGdUG0AnkBV5d_5uu-1" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="6Mvu0cpha-60HerBRlcp-15" value="JSON<br>(Denylist)" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1"> + <mxCell id="6Mvu0cpha-60HerBRlcp-15" value="JSON<br>(Denylist)" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="667.5" y="419" width="70" height="90" as="geometry" /> </mxCell> </root> diff --git a/mkdocs.yml b/mkdocs.yml index 8ce274608efb2dfe56f84de048821a391c5032a3..0b64037695b70e07aa8dfd75622c3760017ad403 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,8 +28,10 @@ nav: - User Interface: system-other-ui.md - Usage: - Overview: usage-overview.md + - Authentication Service: usage-auth.md - Broker Service: usage-broker.md - Identifier Service: usage-identifier.md + - Upload Service: usage-upload.md - publications.md - contact.md extra_css: