diff --git a/.docs/deployment-docker-compose.md b/.docs/deployment-docker-compose.md index eeda3a6a3e411f322cb48412be084dfeea44f4be..ad00ccbb7284ce8d3830e35ac2dc9dbc508538b7 100644 --- a/.docs/deployment-docker-compose.md +++ b/.docs/deployment-docker-compose.md @@ -12,46 +12,46 @@ If you have [Docker](https://docs.docker.com/engine/install/) already installed curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/dev/install.sh | bash ``` -## Architecture - -The repository is designed as a microservice architecture to ensure scalability and the utilization of various -technologies. The conceptualized microservices operate the basic database operations, data versioning as well as -*findability*, *accessability*, *interoperability* and *reuseability* (FAIR). - -<figure markdown> - -<figcaption>Architecture of the services deployed via Docker Compose</figcaption> -</figure> - -Alternatively, you can also deploy DBRepo with [Helm](../deployment-helm/) in your virtual machine instead. - -## Environment Values - -| Key | Type | Default | Description | -|------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DBREPO_CLIENT_ID` | string | `dbrepo-client` | Client ID of the keycloak client for API communication. | -| `DBREPO_CLIENT_SECRET` | string | `MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG` | Client secret of the keycloak client, this should be changed in the admin console of keycloak. | -| `JWT_ISSUER` | string | `http://localhost/api/auth/realms/dbrepo` | The issuer in the JWT `iss` field of the (decoded) token. Public deployments with hostnames other than localhost need to change that. The issuer always has the form `<PROTOCOL>://<HOSTNAME>/api/auth/realms/dbrepo`, e.g. change PROTOCOL to https for SSL/TLS deployments. | -| `JWT_PUBKEY` | string | `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB` | Public key that can verify the JWT signature, this should be changed. | -| `JWT_CERT` | string | `MIICmzCCAYMCBgGG3GWyBTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqqcdDYFZZb28M0tEJzEP77FmD/Xqioyj9zWX6VwUSOMAgmMmn8eqs9hT9T0a+q4YTo9tUW1PNbUpwprA5b4Uk04DcIajxDVMUR/PjcHytmkqwVskq9AZW/Vngdoo+8tSbuIybwe/3Vwt266hbHpDcM97a+DXcYooRl7tQWCEX7RP27wQrMD9epDQ6IgKayZg9vC9/03dsIqwH9jXQRiZlFvwiEKhX2aY7lPGBaCK414JO00K/Z49iov9TRa/IYVbSt5qwgrx6DcqsBSPwOnI6A85UGfeUEZ/7coVJiL7RvBlsllapsL9eWTbQajVh94k9Ei3sibEPbtH+U2OAM78zAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAASnN1Cuif1sdfEK2kWAURSXGJCohCROLWdKFjaeHPRaEfpbFJsgxW0Yj3nwX5O3bUlOWoTyENwnXSsXMQsqnNi+At32CKaKO8+AkhAbgQL9F0B+KeJwmYv3cUj5N/LYkJjBvZBzUZ4Ugu5dcxH0k7AktLAIwimkyEnxTNolOA3UyrGGpREr8MCKWVr10RFuOpF/0CsJNNwbHXzalO9D756EUcRWZ9VSg6QVNso0YYRKTnILWDn9hcTRnqGy3SHo3anFTqQZ+BB57YbgFWy6udC0LYRB3zdp6zNti87eu/VEymiDY/mmo1AB8Tm0b6vxFz4AKcL3ax5qS6YnZ9efSzk=IJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB` | Public key that can verify the JWT signature, this should be changed. | - ## Requirements ### Hardware For this small, local, test deployment any modern hardware would suffice, we recommend a dedicated virtual machine with -the following settings. Note that most of the vCPU and RAM resources will be needed for starting the infrastructure, -this is because of Docker. During idle times, the deployment will use significantly less resources. +the following settings. + +!!! tip "Resource Consumption" -- 4 vCPU cores + Note that most of the vCPU and RAM resources will be needed for starting the infrastructure, this is because of + Docker. During operation and especially idle times, the deployment will use significantly less resources. + +- 8 vCPU cores - 16GB RAM memory - 100GB SSD storage ### Software -Install Docker Engine for your operating system. There are excellent guides available for Linux, we highly recommend -to use a stable distribution such as [:simple-debian: Debian](https://www.debian.org/download). In the following guide -we only consider Debian. +We only test the Docker Compose deployment with the +official [Docker engine](https://docs.docker.com/engine/install/debian/) installed on +a [Debian](https://www.debian.org/)-based operating system. Other software deployments (e.g. Docker Desktop on Windows) +are *not* recommended and not tested. + +## Architecture + +### Overview + +The repository is designed as a service-based architecture to ensure scalability and the utilization of various +technologies. The conceptualized microservices operate the basic database operations, data versioning as well as +*findability*, *accessability*, *interoperability* and *reuseability* (FAIR). + +<figure markdown> + +<figcaption>Architecture of the services deployed via Docker Compose</figcaption> +</figure> + +### Notes + +Please note that we only save the state of the databases as well as the [Broker Service](../system-services-broker) +since RabbitMQ maintains state inside the container. ## Deployment @@ -142,3 +142,9 @@ docker run --rm --volumes-from $NAME -v /home/$USER/backup/.tar.gz:/backup/$NAME ``` Future releases will be backwards compatible and will come with migration scripts. + +## Limitations + +!!! info "Alternative Deployments" + + Alternatively, you can also deploy DBRepo with [Helm](../deployment-helm/) in your virtual machine instead. diff --git a/.docs/images/architecture-docker-compose.png b/.docs/images/architecture-docker-compose.png index c371e2adb6d182a12c4d9244b698cbd926d7f649..8b33fabc84573842188eb757045daa354fd4ac88 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 f40890517757248c1516d427c88eb365be8ad3b3..8054dce967d44a7383f8253cfc603a532bcde2e6 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="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 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="839px" height="669px" viewBox="-0.5 -0.5 839 669"><defs/><g><path d="M 367.01 90.37 L 367.03 108.03 L 366.64 125.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 367 85.12 L 370.51 92.11 L 367.01 90.37 L 363.51 92.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 366.52 130.88 L 363.18 123.81 L 366.64 125.63 L 370.18 123.96 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="367.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 367.5 15 L 367.5 40 M 367.5 20 L 352.5 20 M 367.5 20 L 382.5 20 M 367.5 40 L 352.5 60 M 367.5 40 L 382.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: 368px;"><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="368" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Resea...</text></switch></g><path d="M 295.13 152 L 265.37 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 300.38 152 L 293.38 155.5 L 295.13 152 L 293.38 148.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 260.12 152 L 267.12 148.5 L 265.37 152 L 267.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: 280px;"><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="280" y="155" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 334 172 L 334 200.03 L 194 200.03 L 194 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 194 226.88 L 190.5 219.88 L 194 221.63 L 197.5 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 399 172 L 399.03 200.03 L 544 200.03 L 544 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 544 226.88 L 540.5 219.88 L 544 221.63 L 547.5 219.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 366.5 178.37 L 366.5 221.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 366.5 173.12 L 370 180.12 L 366.5 178.37 L 363 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 366.5 226.88 L 363 219.88 L 366.5 221.63 L 370 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: 367px;"><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="367" y="203" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 334 178.37 L 334 200.03 L 281.03 200.03 L 281.03 294.03 L 194 294.03 L 194 317.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 334 173.12 L 337.5 180.12 L 334 178.37 L 330.5 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 194 322.88 L 190.5 315.88 L 194 317.63 L 197.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: 310px;"><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="310" y="203" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 437.87 152 L 472.63 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 432.62 152 L 439.62 148.5 L 437.87 152 L 439.62 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 477.88 152 L 470.88 155.5 L 472.63 152 L 470.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: 456px;"><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="456" y="155" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">TUSD</text></switch></g><path d="M 399.01 178.37 L 399.03 200.03 L 457.03 200.03 L 457.03 394.03 L 544 394.03 L 544 413.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 399 173.12 L 402.51 180.11 L 399.01 178.37 L 395.51 180.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 544 418.88 L 540.5 411.88 L 544 413.63 L 547.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: 423px;"><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="423" y="202" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><rect x="301.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: 303px;"><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="367" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Gateway Service</text></switch></g><rect x="301.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: 303px;"><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="367" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Analyse Service</text></switch></g><path d="M 194 370.37 L 194 397.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 194 365.12 L 197.5 372.12 L 194 370.37 L 190.5 372.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 194 402.88 L 190.5 395.88 L 194 397.63 L 197.5 395.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="129" 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: 130px;"><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="194" y="348" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Authentication Servic...</text></switch></g><path d="M 544 466.37 L 544 507.63" fill="none" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 544 461.12 L 547.5 468.12 L 544 466.37 L 540.5 468.12 Z" fill="#b3b3b3" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="all"/><path d="M 544 512.88 L 540.5 505.88 L 544 507.63 L 547.5 505.88 Z" fill="#b3b3b3" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="all"/><path d="M 615.37 440 L 652.63 440" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 610.12 440 L 617.12 436.5 L 615.37 440 L 617.12 443.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 657.88 440 L 650.88 443.5 L 652.63 440 L 650.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: 633px;"><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="633" y="443" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">JDBC</text></switch></g><rect x="479" 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: 480px;"><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="544" y="444" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Metadata Service</text></switch></g><path d="M 259 248 L 278.03 248.02 C 278.03 244.12 284.03 244.12 284.03 248.02 L 284.03 248.02 L 289.03 248.03 L 289.03 394.03 L 367.49 394.03 L 367.5 413.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="1 1" pointer-events="stroke"/><path d="M 367.5 418.88 L 364 411.88 L 367.5 413.63 L 371 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: 329px;"><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="329" y="397" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">Spring AMQP</text></switch></g><rect x="129" 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: 130px;"><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="194" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Broker Service...</text></switch></g><path d="M 615.37 248 L 652.63 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 610.12 248 L 617.12 244.5 L 615.37 248 L 617.12 251.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 657.88 248 L 650.88 251.5 L 652.63 248 L 650.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: 634px;"><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="634" y="251" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><rect x="479" 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: 480px;"><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="544" y="252" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Search Service</text></switch></g><rect x="129" 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: 130px;"><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="194" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UI</text></switch></g><path d="M 659 224.6 C 659 219.85 670.19 216 684 216 C 690.63 216 696.99 216.91 701.68 218.52 C 706.37 220.13 709 222.32 709 224.6 L 709 271.4 C 709 276.15 697.81 280 684 280 C 670.19 280 659 276.15 659 271.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 709 224.6 C 709 229.35 697.81 233.2 684 233.2 C 670.19 233.2 659 229.35 659 224.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 715.37 440 L 769 440" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 710.12 440 L 717.12 436.5 L 715.37 440 L 717.12 443.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 659 416.6 C 659 411.85 670.19 408 684 408 C 690.63 408 696.99 408.91 701.68 410.52 C 706.37 412.13 709 414.32 709 416.6 L 709 463.4 C 709 468.15 697.81 472 684 472 C 670.19 472 659 468.15 659 463.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 709 416.6 C 709 421.35 697.81 425.2 684 425.2 C 670.19 425.2 659 421.35 659 416.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="641.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: 640px;"><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="684" y="486" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">metadata-db</text></switch></g><path d="M 519 522.6 C 519 517.85 530.19 514 544 514 C 550.63 514 556.99 514.91 561.68 516.52 C 566.37 518.13 569 520.32 569 522.6 L 569 569.4 C 569 574.15 557.81 578 544 578 C 530.19 578 519 574.15 519 569.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 569 522.6 C 569 527.35 557.81 531.2 544 531.2 C 530.19 531.2 519 527.35 519 522.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="501.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: 500px;"><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="544" y="592" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">data-db</text></switch></g><path d="M 169 412.6 C 169 407.85 180.19 404 194 404 C 200.63 404 206.99 404.91 211.68 406.52 C 216.37 408.13 219 410.32 219 412.6 L 219 459.4 C 219 464.15 207.81 468 194 468 C 180.19 468 169 464.15 169 459.4 Z" fill="#dae8fc" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 219 412.6 C 219 417.35 207.81 421.2 194 421.2 C 180.19 421.2 169 417.35 169 412.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="151.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: 150px;"><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="194" y="482" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">auth-db</text></switch></g><rect x="479" 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: 480px;"><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="544" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Upload Service...</text></switch></g><rect x="729.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: 728px;"><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="784" y="468" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">metadata-db-data</text></switch></g><ellipse cx="783.5" cy="440" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="729.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: 728px;"><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="784" 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 769.5 248 L 715.37 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 710.12 248 L 717.12 244.5 L 715.37 248 L 717.12 251.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="783.5" cy="248" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="490" 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: 488px;"><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="544" 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 544 620 L 544 600.03 L 544 618.03 L 544 604.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 544 599.12 L 547.5 606.12 L 544 604.37 L 540.5 606.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="544" cy="634" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><path d="M 194 510 L 194 494.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 194 489.12 L 197.5 496.12 L 194 494.37 L 190.5 496.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="194" cy="524" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="140" 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: 138px;"><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="194" 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 670 152 L 615.37 152" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 610.12 152 L 617.12 148.5 L 615.37 152 L 617.12 155.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="684" cy="152" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="630" 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: 628px;"><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="684" 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 367.49 460 L 367.49 546.03 L 512.63 546" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 517.88 546 L 510.88 549.5 L 512.63 546 L 510.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: 400px;"><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="400" y="549" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">JDBC</text></switch></g><rect x="302.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: 304px;"><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="368" y="444" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Data Service</text></switch></g><path d="M 609 344.03 L 684 344.03 L 684 286.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 684 281.12 L 687.5 288.12 L 684 286.37 L 680.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: 685px;"><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="685" y="326" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">HTTP</text></switch></g><path d="M 609 344 L 684 344.03 L 684 401.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 684 406.88 L 680.5 399.88 L 684 401.63 L 687.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: 683px;"><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="683" y="377" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="9px" text-anchor="middle">JDBC</text></switch></g><rect x="479" 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: 480px;"><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="544" y="348" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Mirror Service</text></switch></g><rect x="641.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: 640px;"><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="684" y="303" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">search-db</text></switch></g><path d="M 68 248 L 122.63 248" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 127.88 248 L 120.88 251.5 L 122.63 248 L 120.88 244.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="54" cy="248" rx="14" ry="14" fill="#e1d5e7" stroke="#000000" pointer-events="all"/><rect x="0" 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: -2px;"><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="54" y="276" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">broker-service-data</text></switch></g><rect x="549" y="483" width="60" height="10" 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: 58px; height: 1px; padding-top: 488px; margin-left: 550px;"><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;"><font color="#b3b3b3">deprecated</font></div></div></div></foreignObject><text x="579" y="492" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">deprecated</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/images/architecture.drawio b/.docs/images/architecture.drawio new file mode 100644 index 0000000000000000000000000000000000000000..79fd38bdc8fd994279c3e6b0f240f6dd6a0f5986 --- /dev/null +++ b/.docs/images/architecture.drawio @@ -0,0 +1,2667 @@ +<mxfile host="Electron" modified="2023-10-31T09:54:19.412Z" 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="-iYg4L0G093xrXXeyfdB" version="21.1.2" type="device" pages="8"> + <diagram id="mvBsv1rP8O80Qe3yGnn_" name="docker-compose"> + <mxGraphModel dx="1185" dy="675" 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;" parent="V1Wl26Vbpgnno5Lb-wtg-43" vertex="1" connectable="0"> + <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;" parent="V1Wl26Vbpgnno5Lb-wtg-45" vertex="1" connectable="0"> + <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;fillColor=#f5f5f5;strokeColor=#B3B3B3;" 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;" parent="V1Wl26Vbpgnno5Lb-wtg-48" vertex="1" connectable="0"> + <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;" parent="1" source="AQz-Vj6r_5Wor37pQVs6-1" target="YJRAzF6yD4Hh-bAvO1PB-1" edge="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;" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-1" target="V1Wl26Vbpgnno5Lb-wtg-34" edge="1"> + <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;" parent="1" vertex="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;" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-26" edge="1"> + <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;" parent="YJRAzF6yD4Hh-bAvO1PB-13" vertex="1" connectable="0"> + <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;" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-32" edge="1"> + <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;" parent="1" vertex="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> + <mxCell id="OiuNRKl362wFz-YGv0-T-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="OiuNRKl362wFz-YGv0-T-7"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="210" y="394" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="OiuNRKl362wFz-YGv0-T-7" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#e1d5e7;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="121" y="380" width="28" height="28" as="geometry" /> + </mxCell> + <mxCell id="OiuNRKl362wFz-YGv0-T-8" value="broker-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" vertex="1" parent="1"> + <mxGeometry x="81" y="408" width="108" height="20" as="geometry" /> + </mxCell> + <mxCell id="OiuNRKl362wFz-YGv0-T-10" value="<font color="#b3b3b3">deprecated</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="630" y="629" width="60" height="10" 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> + <diagram id="Uhf8Gh-EQdBRKzm7U-8d" name="auth-service"> + <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="Gou0UibUgwIY_gQY8MW6-1" 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;" parent="1" source="Gou0UibUgwIY_gQY8MW6-3" target="Gou0UibUgwIY_gQY8MW6-4" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-2" value="include" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="Gou0UibUgwIY_gQY8MW6-1" vertex="1" connectable="0"> + <mxGeometry x="-0.2248" y="1" relative="1" as="geometry"> + <mxPoint x="-9" y="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-3" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="223.5" y="156" width="141" height="424" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-4" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="2" y="156" width="141" height="424" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-5" 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="Gou0UibUgwIY_gQY8MW6-6" target="Gou0UibUgwIY_gQY8MW6-12" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-6" value="Researchers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="12" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Gou0UibUgwIY_gQY8MW6-8" target="Gou0UibUgwIY_gQY8MW6-14" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-8" value="Developers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="234" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="Gou0UibUgwIY_gQY8MW6-10" target="Gou0UibUgwIY_gQY8MW6-16" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-10" value="Data Steward" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="452" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-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="Gou0UibUgwIY_gQY8MW6-12" target="Gou0UibUgwIY_gQY8MW6-4" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-12" value="default-researcher-roles" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-13" 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="Gou0UibUgwIY_gQY8MW6-14" target="Gou0UibUgwIY_gQY8MW6-3" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="294.17499999999995" y="155.27999999999997" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-14" value="default-developer-roles" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="234" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-15" 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="Gou0UibUgwIY_gQY8MW6-16" target="Gou0UibUgwIY_gQY8MW6-27" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-16" value="default-data-steward-roles" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="452" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-17" value="default-user-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12.5" y="466" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-18" value="default-identifier-handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12.5" y="406" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-19" value="default-database-handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12.5" y="226" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-20" value="default-container-handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12.5" y="166" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-21" value="default-table-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12.5" y="286" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-22" value="default-query-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12.5" y="346" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-23" value="escalated-container-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="234" y="226" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-24" value="escalated-database-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="234" y="286" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-25" value="escalated-query-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="234" y="406" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-26" value="escalated-table-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="234" y="346" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-27" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="441.5" y="156" width="141" height="424" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-28" value="escalated-identifier-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="452" y="286" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-29" value="default-semantics-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="12" y="530" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-30" value="default-maintenance-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="234" y="166" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-31" value="default-user-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="452" y="166" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-32" value="default-semantics-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="452" y="226" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="Gou0UibUgwIY_gQY8MW6-33" value="escalated-semantics-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="452" y="346" width="120" height="40" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="e2fuorb2m_XjboQ7R7_y" name="Data Ingest"> + <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="0VJCIkSjTVNNat6pGbHc-1" value="5672/tcp" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#000000;startArrow=none;startFill=0;dashed=1;" parent="1" target="0VJCIkSjTVNNat6pGbHc-3" edge="1"> + <mxGeometry x="-0.028" relative="1" as="geometry"> + <mxPoint x="448" y="220" as="sourcePoint" /> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-2" value="<b>AMQP</b>" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="432.5" y="137" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-30" value="5672/tcp" 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="0VJCIkSjTVNNat6pGbHc-3" target="0VJCIkSjTVNNat6pGbHc-29" edge="1"> + <mxGeometry x="-0.1905" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=27.5;entryPerimeter=0;" parent="1" source="0VJCIkSjTVNNat6pGbHc-3" target="0VJCIkSjTVNNat6pGbHc-13" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="480" y="340" /> + <mxPoint x="530" y="340" /> + <mxPoint x="530" y="428" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-36" value="3306/tcp" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="0VJCIkSjTVNNat6pGbHc-35" vertex="1" connectable="0"> + <mxGeometry x="0.2112" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-41" 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;" parent="1" source="0VJCIkSjTVNNat6pGbHc-3" target="0VJCIkSjTVNNat6pGbHc-33" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="395" y="318" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="415" y="340" /> + <mxPoint x="364" y="340" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-42" value="80/tcp" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="0VJCIkSjTVNNat6pGbHc-41" vertex="1" connectable="0"> + <mxGeometry x="0.1277" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-3" 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="0VJCIkSjTVNNat6pGbHc-7" value="<b>JDBC</b>" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="584" y="170" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-8" value="3306/tcp" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;startArrow=classic;startFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry x="-0.314" relative="1" as="geometry"> + <mxPoint x="513" y="300" as="sourcePoint" /> + <mxPoint as="offset" /> + <mxPoint x="600" y="250" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="SPLHNWc1rHttcZ-O3PPf-2" value="<font color="#b3b3b3">(not used in<br>the default<br>config)</font>" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=cross;endFill=0;dashed=1;strokeColor=#B3B3B3;" parent="1" source="0VJCIkSjTVNNat6pGbHc-9" target="JkB3rZmVi6YrdEwAjtGV-5" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="217" y="200" /> + <mxPoint x="217" y="414" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-9" value="<b>API</b>" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="280" y="170" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-10" value="80/tcp" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;startArrow=classic;startFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry x="0.2319" relative="1" as="geometry"> + <mxPoint x="295" y="250" as="sourcePoint" /> + <mxPoint as="offset" /> + <mxPoint x="383" y="300" as="targetPoint" /> + <Array as="points"> + <mxPoint x="295" y="300" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-13" value="data-db" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#fff2cc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="575" y="400" width="60" height="80" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-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;entryPerimeter=0;" parent="1" source="0VJCIkSjTVNNat6pGbHc-26" target="0VJCIkSjTVNNat6pGbHc-13" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-38" value="3306/tcp" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="0VJCIkSjTVNNat6pGbHc-37" vertex="1" connectable="0"> + <mxGeometry x="-0.1716" y="1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-26" value="Data Service<br>(Spring AMQP)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="399.5" y="420" width="96" height="40" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-31" 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="0VJCIkSjTVNNat6pGbHc-29" target="0VJCIkSjTVNNat6pGbHc-26" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-29" value="Broker Service<br>(RabbitMQ)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="399.5" y="360" width="96" height="40" as="geometry" /> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=52.5;entryPerimeter=0;" parent="1" source="0VJCIkSjTVNNat6pGbHc-33" target="0VJCIkSjTVNNat6pGbHc-13" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="530" y="500" /> + <mxPoint x="530" y="453" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-40" value="3306/tcp" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="0VJCIkSjTVNNat6pGbHc-39" vertex="1" connectable="0"> + <mxGeometry x="-0.0808" y="-1" relative="1" as="geometry"> + <mxPoint x="-29" y="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="0VJCIkSjTVNNat6pGbHc-33" value="Metadata Service<br>(Spring AMQP)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="316" y="480" width="96" height="40" as="geometry" /> + </mxCell> + <mxCell id="JkB3rZmVi6YrdEwAjtGV-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.107;entryY=0.991;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="JkB3rZmVi6YrdEwAjtGV-5" target="0VJCIkSjTVNNat6pGbHc-3" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="285" y="330" /> + <mxPoint x="396" y="330" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="JkB3rZmVi6YrdEwAjtGV-7" value="80/tcp" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="JkB3rZmVi6YrdEwAjtGV-6" vertex="1" connectable="0"> + <mxGeometry x="-0.5492" y="-2" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="SPLHNWc1rHttcZ-O3PPf-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="JkB3rZmVi6YrdEwAjtGV-5" target="0VJCIkSjTVNNat6pGbHc-33" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="JkB3rZmVi6YrdEwAjtGV-5" value="Upload Service<br>(TUS)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="237" y="394" width="96" height="40" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="0gRvLy_AUZ0Xau8SBKI8" name="Gitlab Runner"> + <mxGraphModel dx="735" dy="422" 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="r9iJ3a_E54lvpWGN0BaG-1" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=2;" parent="1" vertex="1"> + <mxGeometry x="280" y="40" width="730" height="260" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-3" value="minikube" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" parent="1" vertex="1"> + <mxGeometry x="322" y="50" width="110" height="10" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-4" value="<font style="font-weight: normal; font-size: 10px;">128.130.202.116</font>" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" parent="1" vertex="1"> + <mxGeometry x="322" y="65" width="110" height="10" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="r9iJ3a_E54lvpWGN0BaG-5" target="r9iJ3a_E54lvpWGN0BaG-6" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="r9iJ3a_E54lvpWGN0BaG-5" target="r9iJ3a_E54lvpWGN0BaG-7" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="r9iJ3a_E54lvpWGN0BaG-5" target="r9iJ3a_E54lvpWGN0BaG-8" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="625" y="124" /> + <mxPoint x="625" y="124" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="r9iJ3a_E54lvpWGN0BaG-5" target="r9iJ3a_E54lvpWGN0BaG-22" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="r9iJ3a_E54lvpWGN0BaG-5" target="r9iJ3a_E54lvpWGN0BaG-29" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-5" value="<b>agentpool</b><br>6 CPU, 24GB RAM" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="567.5" y="75" width="115" height="40" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-6" value="<b>gitlab-runner</b><br>kubernetes" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="300" y="140" width="100" height="40" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-7" value="<b>gitlab-runner</b><br>kubernetes" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="420" y="140" width="100" height="40" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-20" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="540" y="140" width="170" height="140" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-8" value="<b>runner-xyz-001</b>" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;arcSize=5;" parent="r9iJ3a_E54lvpWGN0BaG-20" vertex="1"> + <mxGeometry width="170" height="140" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="r9iJ3a_E54lvpWGN0BaG-20" target="r9iJ3a_E54lvpWGN0BaG-14" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="45" y="70" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="3q8h414pSOnjdSIywmwI-4" value="<div style="text-align: left; font-size: 10px;"><font style="font-size: 10px;">/var/run/dind/docker.sock</font></div><div style="text-align: left; font-size: 10px;"><font style="font-size: 10px;">/tmp</font></div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=none;" parent="r9iJ3a_E54lvpWGN0BaG-18" vertex="1" connectable="0"> + <mxGeometry x="-0.1361" relative="1" as="geometry"> + <mxPoint x="58" y="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-13" value="<b>svc-0</b><br>docker:24-dind-rootless" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;" parent="r9iJ3a_E54lvpWGN0BaG-20" vertex="1"> + <mxGeometry x="10" y="30" width="150" height="40" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-14" value="<b>build<br></b>" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;" parent="r9iJ3a_E54lvpWGN0BaG-20" vertex="1"> + <mxGeometry x="10" y="110" width="70" height="20" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-16" value="<b>helper<br></b>" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;" parent="r9iJ3a_E54lvpWGN0BaG-20" vertex="1"> + <mxGeometry x="90" y="110" width="70" height="20" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-37" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Docker_%28container_engine%29_logo.svg/2560px-Docker_%28container_engine%29_logo.svg.png;clipPath=inset(0% 58% 0% 0.33%);" parent="r9iJ3a_E54lvpWGN0BaG-20" vertex="1"> + <mxGeometry x="33.25" y="37" width="23.5" height="13.35" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-21" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="820" y="140" width="170" height="140" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-22" value="<b>runner-xyz-010</b>" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;arcSize=5;" parent="r9iJ3a_E54lvpWGN0BaG-21" vertex="1"> + <mxGeometry width="170" height="140" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="r9iJ3a_E54lvpWGN0BaG-21" target="r9iJ3a_E54lvpWGN0BaG-26" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="45" y="70" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-24" value="/var/run/dind/docker.sock<br style="font-size: 10px;">/tmp" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=none;" parent="r9iJ3a_E54lvpWGN0BaG-23" vertex="1" connectable="0"> + <mxGeometry x="0.049" relative="1" as="geometry"> + <mxPoint x="1" y="-5" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-25" value="<b>svc-0</b><br>docker:24-dind-rootless" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;" parent="r9iJ3a_E54lvpWGN0BaG-21" vertex="1"> + <mxGeometry x="10" y="30" width="150" height="40" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-39" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Docker_%28container_engine%29_logo.svg/2560px-Docker_%28container_engine%29_logo.svg.png;clipPath=inset(0% 58% 0% 0.33%);" parent="r9iJ3a_E54lvpWGN0BaG-25" vertex="1"> + <mxGeometry x="23.25" y="7" width="23.5" height="13.35" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-26" value="<b>build<br></b>" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;" parent="r9iJ3a_E54lvpWGN0BaG-21" vertex="1"> + <mxGeometry x="10" y="110" width="70" height="20" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-27" value="<b>helper<br></b>" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;" parent="r9iJ3a_E54lvpWGN0BaG-21" vertex="1"> + <mxGeometry x="90" y="110" width="70" height="20" as="geometry" /> + </mxCell> + <mxCell id="r9iJ3a_E54lvpWGN0BaG-29" value="•&nbsp;&nbsp;•&nbsp;&nbsp;•&nbsp; •&nbsp;&nbsp;•" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="734" y="193" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="vhbaQO3R_VC2zLA3inCI-4" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=https://miro.medium.com/v2/resize:fit:400/0*KzqL3xqmXzV5PPjX.png;" vertex="1" parent="1"> + <mxGeometry x="290" y="50" width="25.78" height="25" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/.docs/images/screenshots/dashboard_airquality_1.png b/.docs/images/screenshots/dashboard_airquality_1.png new file mode 100644 index 0000000000000000000000000000000000000000..35e86f4925320ca3be4cb1ca1e73b51f73b31e82 Binary files /dev/null and b/.docs/images/screenshots/dashboard_airquality_1.png differ diff --git a/.docs/images/screenshots/dashboard_airquality_2.png b/.docs/images/screenshots/dashboard_airquality_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c8135c6bb3aa0f9f0070254ff936133289d71506 Binary files /dev/null and b/.docs/images/screenshots/dashboard_airquality_2.png differ diff --git a/.docs/images/screenshots/dashboard_airquality_3.png b/.docs/images/screenshots/dashboard_airquality_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3619eafb1ee562bf68e1d063c1c597ef47661d Binary files /dev/null and b/.docs/images/screenshots/dashboard_airquality_3.png differ diff --git a/.docs/images/screenshots/dashboard_airquality_4.png b/.docs/images/screenshots/dashboard_airquality_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e5692e2dfeade0c89f80263c42588ac597ac7ce6 Binary files /dev/null and b/.docs/images/screenshots/dashboard_airquality_4.png differ diff --git a/.docs/images/screenshots/database-create-import-done.png b/.docs/images/screenshots/database-create-import-done.png new file mode 100644 index 0000000000000000000000000000000000000000..0b76bc3647a0d7484cfc7d0bae1972028480027a Binary files /dev/null and b/.docs/images/screenshots/database-create-import-done.png differ diff --git a/.docs/images/screenshots/database-create-import-select.png b/.docs/images/screenshots/database-create-import-select.png new file mode 100644 index 0000000000000000000000000000000000000000..81aff685d0caa964f242a261c849b95e850859bb Binary files /dev/null and b/.docs/images/screenshots/database-create-import-select.png differ diff --git a/.docs/images/screenshots/database-create-import.png b/.docs/images/screenshots/database-create-import.png new file mode 100644 index 0000000000000000000000000000000000000000..90b8027925a52d6e7a5fb9456ceabf29f0a9d353 Binary files /dev/null and b/.docs/images/screenshots/database-create-import.png differ diff --git a/.docs/images/screenshots/database-info.PNG b/.docs/images/screenshots/database-info.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0ddbdf706ea7d537208e0d003b8e37450a0055a4 Binary files /dev/null and b/.docs/images/screenshots/database-info.PNG differ diff --git a/.docs/images/screenshots/database-versioning-active.png b/.docs/images/screenshots/database-versioning-active.png new file mode 100644 index 0000000000000000000000000000000000000000..a256e42e59d760ef877403eb449054037f17bf68 Binary files /dev/null and b/.docs/images/screenshots/database-versioning-active.png differ diff --git a/.docs/images/screenshots/database-versioning.png b/.docs/images/screenshots/database-versioning.png new file mode 100644 index 0000000000000000000000000000000000000000..273269d3051e0ed5710586f72f78e2f72583c6f1 Binary files /dev/null and b/.docs/images/screenshots/database-versioning.png differ diff --git a/.docs/images/screenshots/database.png b/.docs/images/screenshots/database.png new file mode 100644 index 0000000000000000000000000000000000000000..acdfeedd52853024979a0b639be58aa5f3ea14f6 Binary files /dev/null and b/.docs/images/screenshots/database.png differ diff --git a/.docs/images/screenshots/grafana1.png b/.docs/images/screenshots/grafana1.png new file mode 100644 index 0000000000000000000000000000000000000000..1f88a6084f697c68e79fc9080d0d307b29fd2f7d Binary files /dev/null and b/.docs/images/screenshots/grafana1.png differ diff --git a/.docs/images/screenshots/grafana2.png b/.docs/images/screenshots/grafana2.png new file mode 100644 index 0000000000000000000000000000000000000000..e1bf160fb22c31c0f8829b7ac1ac02e07bfbf8f7 Binary files /dev/null and b/.docs/images/screenshots/grafana2.png differ diff --git a/.docs/images/screenshots/jupyterhub1.png b/.docs/images/screenshots/jupyterhub1.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac45d3b6377ebc2f1c4e0d2d1e93641090a5de7 Binary files /dev/null and b/.docs/images/screenshots/jupyterhub1.png differ diff --git a/.docs/images/screenshots/jupyterhub2.png b/.docs/images/screenshots/jupyterhub2.png new file mode 100644 index 0000000000000000000000000000000000000000..6c46403bdd5719c1e557de9b79c8c33ae830610d Binary files /dev/null and b/.docs/images/screenshots/jupyterhub2.png differ diff --git a/.docs/images/screenshots/jupyterhub3.png b/.docs/images/screenshots/jupyterhub3.png new file mode 100644 index 0000000000000000000000000000000000000000..e2c72df8620099a53cb83a5ba25d247b207e3edb Binary files /dev/null and b/.docs/images/screenshots/jupyterhub3.png differ diff --git a/.docs/images/screenshots/jupyterhub4.png b/.docs/images/screenshots/jupyterhub4.png new file mode 100644 index 0000000000000000000000000000000000000000..0d865e3e5bbf7c77a6a674720abbd6c52e311fa5 Binary files /dev/null and b/.docs/images/screenshots/jupyterhub4.png differ diff --git a/.docs/images/screenshots/queries-overview.png b/.docs/images/screenshots/queries-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..0622ca2ca0913c8afe4966b59f2cf1882a5d8a6d Binary files /dev/null and b/.docs/images/screenshots/queries-overview.png differ diff --git a/.docs/images/screenshots/query-builder.png b/.docs/images/screenshots/query-builder.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa3628640d8e924b06032bf6b4e31f0a00f5d0b Binary files /dev/null and b/.docs/images/screenshots/query-builder.png differ diff --git a/.docs/images/screenshots/query-execute.png b/.docs/images/screenshots/query-execute.png new file mode 100644 index 0000000000000000000000000000000000000000..af58ea1bba837397384bbc2c93c4d708e920102c Binary files /dev/null and b/.docs/images/screenshots/query-execute.png differ diff --git a/.docs/images/screenshots/query-filter.png b/.docs/images/screenshots/query-filter.png new file mode 100644 index 0000000000000000000000000000000000000000..f3bf0dafc6e5de9c03570e18dad6654205b7ee54 Binary files /dev/null and b/.docs/images/screenshots/query-filter.png differ diff --git a/.docs/images/screenshots/query-list.png b/.docs/images/screenshots/query-list.png new file mode 100644 index 0000000000000000000000000000000000000000..bcc4718947172aaf23636c4f4bbb9d81a72b2320 Binary files /dev/null and b/.docs/images/screenshots/query-list.png differ diff --git a/.docs/images/screenshots/query-persist-dialog.png b/.docs/images/screenshots/query-persist-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..a35190d853cfd7d3bded7c33ccb8de362194fc1d Binary files /dev/null and b/.docs/images/screenshots/query-persist-dialog.png differ diff --git a/.docs/images/screenshots/query-persisted.png b/.docs/images/screenshots/query-persisted.png new file mode 100644 index 0000000000000000000000000000000000000000..c49901197138fb6f6258d27974e90153a610cadc Binary files /dev/null and b/.docs/images/screenshots/query-persisted.png differ diff --git a/.docs/images/screenshots/query-store.png b/.docs/images/screenshots/query-store.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6bda7feb26d249a7990c4fac35066fd4985576 Binary files /dev/null and b/.docs/images/screenshots/query-store.png differ diff --git a/.docs/images/screenshots/query_history.png b/.docs/images/screenshots/query_history.png new file mode 100644 index 0000000000000000000000000000000000000000..ea7aa314ec5fe52725b900b8fed378efa63eeba3 Binary files /dev/null and b/.docs/images/screenshots/query_history.png differ diff --git a/.docs/images/screenshots/start.png b/.docs/images/screenshots/start.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb6df72ea44045ca280df58e8e520402c213970 Binary files /dev/null and b/.docs/images/screenshots/start.png differ diff --git a/.docs/images/screenshots/table-overview.png b/.docs/images/screenshots/table-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..11ca55b9ecb82205eedce79119cc9f3ff56a301e Binary files /dev/null and b/.docs/images/screenshots/table-overview.png differ diff --git a/.docs/images/screenshots/table-update-tuple.png b/.docs/images/screenshots/table-update-tuple.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7c19a0717831a0eaf874d3c33d2b8d9ca34c37 Binary files /dev/null and b/.docs/images/screenshots/table-update-tuple.png differ diff --git a/.docs/images/screenshots/table-update-tuple2.png b/.docs/images/screenshots/table-update-tuple2.png new file mode 100644 index 0000000000000000000000000000000000000000..422b797e5f74be8eb032da0411a82cfb638b4902 Binary files /dev/null and b/.docs/images/screenshots/table-update-tuple2.png differ diff --git a/.docs/overrides/.icons/wikimedia/open-access.svg b/.docs/overrides/.icons/wikimedia/open-access.svg new file mode 100644 index 0000000000000000000000000000000000000000..458ff707e7a60d40e10b37f6c5bf390c482c9c53 --- /dev/null +++ b/.docs/overrides/.icons/wikimedia/open-access.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12px" height="18px" + viewBox="0 0 12 18" version="1.1"> + <g id="surface1"> + <path style="fill:none;stroke-width:104.764;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(96.470588%,50.980392%,7.058824%);stroke-opacity:1;stroke-miterlimit:4;" + d="M 111.458333 308.159722 L 111.458333 272.352431 C 111.458333 156.901042 205 63.151042 320.625 63.151042 C 436.041667 63.151042 529.791667 156.901042 529.791667 272.352431 L 529.791667 530.815972 " + transform="matrix(0.01875,0,0,0.018,0,0)"/> + <path style="fill:none;stroke-width:104.764;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(96.470588%,50.980392%,7.058824%);stroke-opacity:1;stroke-miterlimit:4;" + d="M 576.041667 680.772569 C 576.041667 822.265625 461.458333 936.848958 320 936.848958 C 178.541667 936.848958 63.958333 822.265625 63.958333 680.772569 C 63.958333 539.279514 178.541667 424.696181 320 424.696181 C 461.458333 424.696181 576.041667 539.279514 576.041667 680.772569 Z M 576.041667 680.772569 " + transform="matrix(0.01875,0,0,0.018,0,0)"/> + <path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,50.980392%,7.058824%);fill-opacity:1;" + d="M 7.640625 12.269531 C 7.640625 13.128906 6.914062 13.824219 6.019531 13.824219 C 5.125 13.824219 4.398438 13.128906 4.398438 12.269531 C 4.398438 11.410156 5.125 10.714844 6.019531 10.714844 C 6.914062 10.714844 7.640625 11.410156 7.640625 12.269531 Z M 7.640625 12.269531 "/> + </g> +</svg> diff --git a/.docs/presentations/.gitkeep b/.docs/presentations/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/.docs/presentations/220304_FAIRData_Folgeworkshop_Pr\303\244sentation_DE_GitLab.pptx" "b/.docs/presentations/220304_FAIRData_Folgeworkshop_Pr\303\244sentation_DE_GitLab.pptx" new file mode 100644 index 0000000000000000000000000000000000000000..79746101907c1412de47e421eb33d548c6725fb4 Binary files /dev/null and "b/.docs/presentations/220304_FAIRData_Folgeworkshop_Pr\303\244sentation_DE_GitLab.pptx" differ diff --git a/.docs/presentations/220330_FAIRData_Slidedeck_DE.pptx b/.docs/presentations/220330_FAIRData_Slidedeck_DE.pptx new file mode 100644 index 0000000000000000000000000000000000000000..9f3446619a3fea7afb1c598cc90f4f7006905fe9 Binary files /dev/null and b/.docs/presentations/220330_FAIRData_Slidedeck_DE.pptx differ diff --git a/.docs/presentations/220414_FAIRData_Slidedeck_DE.pptx b/.docs/presentations/220414_FAIRData_Slidedeck_DE.pptx new file mode 100644 index 0000000000000000000000000000000000000000..5007ce3c9569d6573c25db7aff4ec2d0cb089c9d Binary files /dev/null and b/.docs/presentations/220414_FAIRData_Slidedeck_DE.pptx differ diff --git a/.docs/presentations/220414_FAIRData_Slidedeck_EN.pptx b/.docs/presentations/220414_FAIRData_Slidedeck_EN.pptx new file mode 100644 index 0000000000000000000000000000000000000000..84e9e476f41a9ccac4c1b9ff285c1b5724d9a545 Binary files /dev/null and b/.docs/presentations/220414_FAIRData_Slidedeck_EN.pptx differ diff --git a/.docs/presentations/220613_FAIRData_DUH_MakerSpace_DE_GitLab.pptx b/.docs/presentations/220613_FAIRData_DUH_MakerSpace_DE_GitLab.pptx new file mode 100644 index 0000000000000000000000000000000000000000..05bf69707b3f8e9477d99944e3b009054a98406a Binary files /dev/null and b/.docs/presentations/220613_FAIRData_DUH_MakerSpace_DE_GitLab.pptx differ diff --git a/.docs/publications.md b/.docs/publications.md index 8a3b3934e661b315e2b85e33e39d549c7cdca930..9129d12e9762a9fc0d75666715566c83a5368766 100644 --- a/.docs/publications.md +++ b/.docs/publications.md @@ -10,49 +10,55 @@ hide: ##### 2023 +* Weise, M., Miksa, T., Grantner, T., Taha, J., Moser, M., Tsepelakis, S., Sanchez-Solis, B. & Rauber, A. (2023). + Repository Infrastructure Supporting Virtual Research Environments. [Poster]. *International Data Week*, + October 23-26th (Salzburg, Austria). + DOI: [10.34726/5143](https://doi.org/10.34726/5143) :wikimedia-open-access:<br /> + \[[PDF](/~weise/pdf/weise2023_scidatacon_abstract.pdf)\] \[[Poster](https://repositum.tuwien.at/bitstream/20.500.12708/189319/2/Weise-2023-Repository%20Infrastructure%20Supporting%20Virtual%20Research%20Environm...-vor.pdf)\] + * Weise, M., Miksa, T., Grantner, T., Taha, J., Moser, M., Tsepelakis, S., Sanchez-Solis, B. & Rauber, A. (2023). Research Data Infrastructure Landscape at TU Wien. [Poster]. *Austrian-Slowenian High Performance Computing - Meeting*. <br /> + Meeting*. :wikimedia-open-access:<br /> \[[PDF](https://ec.tuwien.ac.at/~weise/pdf/weise2023landscape_paper.pdf)\] \[[Poster](https://ec.tuwien.ac.at/~weise/pdf/weise2023landscape_poster.pdf)\] * Weise, M., Grantner, T., Taha, J., Staudinger, M., Gergely, E., Stytsenko, K., Ganguly, R. & Rauber, A. (2023). DBRepo: A Repository for Databases supporting Data Versioning, Schema Semantics and FAIR Principles, at *Open Repositories Conference*, June 12-15th. (Stellenbosch, South Africa). June 12-15th, 2023. - DOI: [10.5281/zenodo.8075496](https://doi.org/10.5281/zenodo.8075496)<br /> + DOI: [10.5281/zenodo.8075496](https://doi.org/10.5281/zenodo.8075496) :wikimedia-open-access:<br /> [[PDF](https://zenodo.org/record/8075496/files/3_Martin_Weise_DBRepo.pdf?download=1)] * Weise, M., Knees, P., Hofmann, A., Ahmedaja, A., Beitane, A. & Rauber, A. (2023). Connecting Ethnomusicology Data Collections Using Distributed Repositories and Linked Data Technology. *Proceedings of the 3rd Conference of the ICTM National Committee for Portugal*, (Aveiro, Portugal). - DOI: [10.34726/4323](https://doi.org/10.34726/4323) + DOI: [10.34726/4323](https://doi.org/10.34726/4323) :wikimedia-open-access:<br /> ##### 2022 * Ekaputra, F. E., Weise, M., Flicker, K., Salleh, M. R., Rahman, N. A., Miksa, T., & Rauber, A. (2022). Towards A Data Repository for Educational Factories. *Proceedings of the 8th International Conference on Data and Software - Engineering*, pp. 149-154. DOI: [10.1109/ICoDSE56892.2022.9971958](https://doi.org/10.1109/ICoDSE56892.2022.9971958). + Engineering*, pp. 149-154. DOI: [10.1109/ICoDSE56892.2022.9971958](https://doi.org/10.1109/ICoDSE56892.2022.9971958) :wikimedia-open-access:<br /> * Weise, M., Staudinger, M., Michlits, C., Gergely, E., Stytsenko, K., Ganguly, R., & Rauber, A. (2022). DBRepo: a Semantic Digital Repository for Relational Databases. *International Journal of Digital Curation*, - 17(1), 11. DOI: [10.2218/ijdc.v17i1.825](https://doi.org/10.2218/ijdc.v17i1.825) + 17(1), 11. DOI: [10.2218/ijdc.v17i1.825](https://doi.org/10.2218/ijdc.v17i1.825) :wikimedia-open-access:<br /> ##### 2021 * Weise, M., Michlits, C., Staudinger, M., Gergely, E., Stytsenko, K., Ganguly, R. and Rauber A., 2021. FDA-DBRepo: A Data Preservation Repository Supporting FAIR Principles, Data Versioning and Reproducible Queries. *Proceedings of the 17th International Conference on Digital Preservation*, Beijing, China, p.34. - DOI: [10.17605/OSF.IO/B7NX5](http://doi.org/10.17605/OSF.IO/B7NX5) + DOI: [10.17605/OSF.IO/B7NX5](http://doi.org/10.17605/OSF.IO/B7NX5) :wikimedia-open-access:<br /> ## Other * Weise, M. (2023). A Repository and Compute Environment for Sensitive Data. FAIRness for Closed Data, at *EMBL Bioimaging and the European Open Science Cloud*, (Heidelberg, Germany). April, 19-20th, 2023. - DOI: [10.34726/3946](https://doi.org/10.34726/3946) + DOI: [10.34726/3946](https://doi.org/10.34726/3946) :wikimedia-open-access:<br /> * Staudinger, M. (2022). DBRepo: A Repository to Save Research Databases. [Online]. URL: [https://www.tuwien.at/en/tu-wien/news/news-articles/news/dbrepo](https://www.tuwien.at/en/tu-wien/news/news-articles/news/dbrepo) - accessed 2022-04-12 + accessed 2022-04-12. :wikimedia-open-access:<br /> * Gergely, E. (2021). Better Support for Research: Current Cooperation Projects. [Online]. URL: [https://zid.univie.ac.at/it-news/artikel/news/cluster-forschungsdaten/](https://zid.univie.ac.at/it-news/artikel/news/cluster-forschungsdaten/) - accessed 2022-04-12 + accessed 2022-04-12. :wikimedia-open-access:<br /> diff --git a/.gitignore b/.gitignore index 0eff7e299e91038a56e59b0ef23f0177e7d169d7..5f426b034b09cad2935ca3500f50dfb066259c7e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,9 @@ ready .docs/.swagger/site/ site/ +# temporary files +.$* + # Notebooks .jupyter/ .pytest_cache/ diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 67cfeccfb671ae0729fa39d130a8e297b2ac7d8d..d351ce6a4a74a4c4fcc4c46ec62df6b943330c07 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -8,6 +8,7 @@ volumes: metadata-db-data: data-db-data: auth-db-data: + broker-service-data: upload-service-data: search-db-data: @@ -216,6 +217,7 @@ services: - ./dist/cert.pem:/app/cert.pem - ./dist/pubkey.pem:/app/pubkey.pem - ./dist/definitions.json:/app/definitions.json + - broker-service-data:/bitnami/rabbitmq/mnesia healthcheck: test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running' interval: 10s @@ -386,4 +388,4 @@ services: dbrepo-data-db: condition: service_healthy logging: - driver: json-file \ No newline at end of file + driver: json-file diff --git a/docker-compose.yml b/docker-compose.yml index 53e20874dac104ed84661123359abbc92301fe2f..5ba7de554336f11a80f8cd0d63e3c45bd4a7414e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,7 @@ volumes: metadata-db-data: data-db-data: auth-db-data: + broker-service-data: upload-service-data: search-db-data: @@ -220,6 +221,7 @@ services: - ./dbrepo-broker-service/cert.pem:/app/cert.pem - ./dbrepo-broker-service/pubkey.pem:/app/pubkey.pem - ./dbrepo-broker-service/definitions.json:/app/definitions.json + - broker-service-data:/bitnami/rabbitmq/mnesia healthcheck: test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running' interval: 10s @@ -409,4 +411,4 @@ services: dbrepo-data-db: condition: service_healthy logging: - driver: json-file \ No newline at end of file + driver: json-file diff --git a/mkdocs.yml b/mkdocs.yml index b7728719131a9a81299b961045cfb88dcfd97fb6..fe275809f94544448c69ad6392918675bb63d53f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -92,7 +92,7 @@ markdown_extensions: emoji_generator: !!python/name:materialx.emoji.to_svg options: custom_icons: - - overrides/.icons + - .docs/overrides/.icons extra: homepage: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/ social: