diff --git a/.github/workflows/data.yml b/.github/workflows/data.yml
new file mode 100644
index 000000000..cdf3568a9
--- /dev/null
+++ b/.github/workflows/data.yml
@@ -0,0 +1,51 @@
+name: data CD
+
+on:
+ push:
+ workflow_dispatch:
+
+jobs:
+ # JOB to run change detection
+ changes:
+ runs-on: ubuntu-latest
+ # Set job outputs to values from filter step
+ outputs:
+ data: ${{ steps.filter.outputs.data }}
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dorny/paths-filter@v2
+ id: filter
+ with:
+ # the server is required in data, since apparently it is impossibly to schedule a job after another in GitHub
+ filters: |
+ data:
+ - '.github/**'
+ - 'data/**'
+ data-build:
+ needs:
+ - changes
+ if: ${{ needs.changes.outputs.data == 'true' }}
+ uses: ./.github/workflows/docker-build.yml
+ with:
+ image_suffix: data
+ context: ./data
+ dockerfile: Dockerfile
+ permissions:
+ contents: read
+ packages: write
+ data-deployment:
+ if: github.ref == 'refs/heads/main'
+ runs-on: ubuntu-latest
+ needs:
+ - data-build
+ steps:
+ - run: curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && chmod +x /usr/local/bin/argocd
+ - run: argocd app actions run navigatum-prod restart --kind Deployment --resource-name data --auth-token ${{ secrets.ARGOCD_TOKEN }} --server ${{ secrets.ARGOCD_SERVER }}
+ data-staging-deployment:
+ if: github.ref != 'refs/heads/main'
+ runs-on: ubuntu-latest
+ needs:
+ - data-build
+ steps:
+ - run: curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && chmod +x /usr/local/bin/argocd
+ - run: argocd app actions run pr-${{github.event.number}} restart --kind Deployment --resource-name data --auth-token ${{ secrets.ARGOCD_TOKEN }} --server ${{ secrets.ARGOCD_SERVER }}
\ No newline at end of file
diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml
index ac12b5a32..6298ac9db 100644
--- a/.github/workflows/server.yml
+++ b/.github/workflows/server.yml
@@ -10,7 +10,6 @@ jobs:
runs-on: ubuntu-latest
# Set job outputs to values from filter step
outputs:
- data: ${{ steps.filter.outputs.data_server }}
server: ${{ steps.filter.outputs.data_server }}
steps:
- uses: actions/checkout@v3
@@ -23,46 +22,27 @@ jobs:
- '.github/**'
- 'data/**'
- 'server/**'
- data-build:
+ server-build:
+ uses: ./.github/workflows/docker-build.yml
needs:
- changes
- if: ${{ needs.changes.outputs.data == 'true' }}
- uses: ./.github/workflows/docker-build.yml
+ if: ${{ needs.changes.outputs.server == 'true' }}
with:
- image_suffix: data
- context: ./data
- dockerfile: Dockerfile
+ image_suffix: server
+ context: ./server
+ dockerfile: Dockerfile.server
permissions:
contents: read
packages: write
- data-deployment:
- if: github.ref == 'refs/heads/main'
- runs-on: ubuntu-latest
- needs:
- - data-build
- steps:
- - run: curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && chmod +x /usr/local/bin/argocd
- - run: argocd app actions run navigatum-prod restart --kind Deployment --resource-name data --auth-token ${{ secrets.ARGOCD_TOKEN }} --server ${{ secrets.ARGOCD_SERVER }}
- - run: sleep 5
- data-staging-deployment:
- if: github.ref != 'refs/heads/main'
- runs-on: ubuntu-latest
- needs:
- - data-build
- steps:
- - run: curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && chmod +x /usr/local/bin/argocd
- - run: argocd app actions run pr-${{github.event.number}} restart --kind Deployment --resource-name data --auth-token ${{ secrets.ARGOCD_TOKEN }} --server ${{ secrets.ARGOCD_SERVER }}
- - run: sleep 5
- server-build:
+ server-init-build:
uses: ./.github/workflows/docker-build.yml
needs:
- - data-deployment
- changes
if: ${{ needs.changes.outputs.server == 'true' }}
with:
- image_suffix: server
+ image_suffix: server-init
context: ./server
- dockerfile: Dockerfile.server
+ dockerfile: Dockerfile.dbinit
permissions:
contents: read
packages: write
@@ -111,6 +91,7 @@ jobs:
runs-on: ubuntu-latest
needs:
- server-build
+ - server-init-build
- mieli-search-build
steps:
- run: curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && chmod +x /usr/local/bin/argocd
@@ -120,6 +101,7 @@ jobs:
runs-on: ubuntu-latest
needs:
- server-build
+ - server-init-build
- mieli-search-build
steps:
- run: curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && chmod +x /usr/local/bin/argocd
diff --git a/deployment/README.md b/deployment/README.md
index 8785384e4..aeddc86e3 100644
--- a/deployment/README.md
+++ b/deployment/README.md
@@ -13,10 +13,10 @@ The documentation for the specific sub-services can be found in the respective d
## General description
The general request-Flowchart is the following:
-![Flowchart, on how the requests are routed](../resources/deployment/Flowchart.svg)
+![Flowchart, on how the requests are routed](../resources/deployment/Flowchart.png)
The project is layed out in this sense:
-![deployment diagram, of how the different components interact](../resources/deployment/Deployment_Overview.svg)
+![deployment diagram, of how the different components interact](../resources/deployment/Deployment_Overview.png)
Genreral information:
diff --git a/deployment/k3s/templates/deployments/server-deployment.yaml b/deployment/k3s/templates/deployments/server-deployment.yaml
index b826a785b..198788264 100644
--- a/deployment/k3s/templates/deployments/server-deployment.yaml
+++ b/deployment/k3s/templates/deployments/server-deployment.yaml
@@ -27,6 +27,9 @@ spec:
volumes:
- name: tmp-server
emptyDir: {}
+ initContainers:
+ - name: server-init-db
+ image: "ghcr.io/tum-dev/navigatum-server-init:{{ .Values.branch }}"
containers:
- name: server
image: "ghcr.io/tum-dev/navigatum-server:{{ .Values.branch }}"
@@ -36,6 +39,9 @@ spec:
- secretRef:
name: server-api-keys # MEILI_MASTER_KEY
{{ end }}
+ env:
+ - name: DB_LOCATION
+ value: /tmp/server.db
ports:
- containerPort: 8080
name: api
diff --git a/resources/deployment/Deployment_Overview.json b/resources/deployment/Deployment_Overview.json
index 9606e2f19..7cf195bf9 100644
--- a/resources/deployment/Deployment_Overview.json
+++ b/resources/deployment/Deployment_Overview.json
@@ -1,112 +1,311 @@
{
- "id": "85c9fbb3-07c0-4de1-aa00-a63f1a00add9",
+ "id": "fff57ff4-0cb4-4a36-8e81-bea4abd15f97",
"title": "Deployment Overview",
+ "lastUpdate": "2022-01-25T20:57:46.530Z",
+ "diagramType": "DeploymentDiagram",
"model": {
"version": "2.0.0",
"type": "DeploymentDiagram",
- "size": { "width": 1920, "height": 900 },
- "interactive": { "elements": [], "relationships": [] },
+ "size": {
+ "width": 1960,
+ "height": 1080
+ },
+ "interactive": {
+ "elements": [],
+ "relationships": []
+ },
"elements": [
{
"id": "c0793074-7fc3-43b1-9516-40491662a611",
"name": "NavigaTUM",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 520, "y": 30, "width": 730, "height": 600 },
+ "bounds": {
+ "x": 540,
+ "y": 0,
+ "width": 860,
+ "height": 770
+ },
"stereotype": "server"
},
{
"id": "df334929-e6b4-4769-88bc-19700962febd",
- "name": "navigatum-data",
+ "name": "data",
"type": "DeploymentComponent",
"owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 1000, "y": 310, "width": 210, "height": 100 }
+ "bounds": {
+ "x": 550,
+ "y": 470,
+ "width": 750,
+ "height": 160
+ },
+ "fillColor": "#d1d8e0"
},
{
- "id": "add565fd-86c3-4235-8693-db83cecf9f52",
- "name": "Manual Fixes",
- "type": "DeploymentArtifact",
+ "id": "aa8d7a5f-ade7-4edc-a512-ed985720699d",
+ "name": "compilation",
+ "type": "DeploymentComponent",
"owner": "df334929-e6b4-4769-88bc-19700962febd",
- "bounds": { "x": 1020, "y": 360, "width": 160, "height": 40 }
+ "bounds": {
+ "x": 760,
+ "y": 500,
+ "width": 170,
+ "height": 40
+ }
},
{
- "id": "edb2bab5-7951-4f24-a627-bd29fe163468",
- "name": "navigatum-webclient",
+ "id": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35",
+ "name": "scraping",
"type": "DeploymentComponent",
- "owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 560, "y": 560, "width": 240, "height": 40 }
+ "owner": "df334929-e6b4-4769-88bc-19700962febd",
+ "bounds": {
+ "x": 1110,
+ "y": 580,
+ "width": 170,
+ "height": 40
+ }
},
{
- "id": "6ceb0838-3430-4101-bb9f-aa9b17db8586",
- "name": "search_data.json",
- "type": "DeploymentInterface",
- "owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 890, "y": 160, "width": 20, "height": 20 }
+ "id": "2e00ad7d-bec9-49d1-a6b7-c2f3a3de8d21",
+ "name": "scraped data",
+ "type": "DeploymentArtifact",
+ "owner": "df334929-e6b4-4769-88bc-19700962febd",
+ "bounds": {
+ "x": 900,
+ "y": 580,
+ "width": 170,
+ "height": 40
+ }
},
{
- "id": "9339d43b-3f54-4968-8c73-67570bdcc9ca",
- "name": "server",
- "type": "DeploymentComponent",
- "owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 560, "y": 250, "width": 240, "height": 40 }
+ "id": "31c465a1-97c5-4362-9327-234a6622b854",
+ "name": "manual data patches",
+ "type": "DeploymentArtifact",
+ "owner": "df334929-e6b4-4769-88bc-19700962febd",
+ "bounds": {
+ "x": 570,
+ "y": 580,
+ "width": 220,
+ "height": 40
+ }
},
{
- "id": "8d265620-1519-419d-99ac-0dcbd1c4cca3",
- "name": "MeiliSearch Instance",
- "type": "DeploymentComponent",
+ "id": "6ceb0838-3430-4101-bb9f-aa9b17db8586",
+ "name": "search_data.json",
+ "type": "DeploymentInterface",
"owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 560, "y": 150, "width": 240, "height": 40 }
+ "bounds": {
+ "x": 1140,
+ "y": 140,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "b622e87e-fa8f-42c5-b86a-5eb5a7a012f9",
"name": "api_data.json",
"type": "DeploymentInterface",
"owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 890, "y": 260, "width": 20, "height": 20 }
- },
- {
- "id": "580f24f1-068c-43f0-9c0e-2bf5b48b07ee",
- "name": "rendertron",
- "type": "DeploymentComponent",
- "owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 970, "y": 550, "width": 170, "height": 60 }
+ "bounds": {
+ "x": 1140,
+ "y": 240,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "cbb4c7ec-e3f6-4e33-aa77-e3a369555c85",
"name": "search_synonyms.json",
"type": "DeploymentInterface",
"owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 890, "y": 190, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 1140,
+ "y": 180,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "9803c740-2a29-480a-b782-26b084e880e7",
- "name": "Static Maps",
+ "name": "maps",
"type": "DeploymentComponent",
"owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 560, "y": 450, "width": 240, "height": 40 },
+ "bounds": {
+ "x": 550,
+ "y": 310,
+ "width": 540,
+ "height": 150
+ },
+ "fillColor": "#d1d8e0",
"strokeColor": "black",
"textColor": "black"
},
{
- "id": "b75b552e-dd63-4453-a22f-79294fc74773",
- "name": "Sitemaps",
- "type": "DeploymentInterface",
- "owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 890, "y": 500, "width": 20, "height": 20 }
+ "id": "729b6691-e7c2-43dd-8a58-c4cd2d6b38f0",
+ "name": "tileserver",
+ "type": "DeploymentComponent",
+ "owner": "9803c740-2a29-480a-b782-26b084e880e7",
+ "bounds": {
+ "x": 570,
+ "y": 350,
+ "width": 240,
+ "height": 40
+ }
+ },
+ {
+ "id": "76fda618-a6dc-4f12-8b31-440df3ceea55",
+ "name": "tile-refresher",
+ "type": "DeploymentComponent",
+ "owner": "9803c740-2a29-480a-b782-26b084e880e7",
+ "bounds": {
+ "x": 840,
+ "y": 350,
+ "width": 210,
+ "height": 40
+ },
+ "strokeColor": "#fd9644",
+ "textColor": "#fd9644"
+ },
+ {
+ "id": "6b6c386c-ab97-4c91-a6ab-ec53ac9a1d37",
+ "name": "indoor-maps",
+ "type": "DeploymentComponent",
+ "owner": "9803c740-2a29-480a-b782-26b084e880e7",
+ "bounds": {
+ "x": 840,
+ "y": 410,
+ "width": 210,
+ "height": 40
+ },
+ "strokeColor": "#fd9644",
+ "textColor": "#fd9644"
+ },
+ {
+ "id": "2c04ee1a-bf0f-480f-b2d6-da8d3a5d54d5",
+ "name": "indoor-navigation",
+ "type": "DeploymentComponent",
+ "owner": "9803c740-2a29-480a-b782-26b084e880e7",
+ "bounds": {
+ "x": 570,
+ "y": 410,
+ "width": 240,
+ "height": 40
+ },
+ "strokeColor": "#fd9644",
+ "textColor": "#fd9644"
},
{
"id": "6ea7a59a-7b26-428a-a82c-2dee126fe09c",
"name": "feedback",
"type": "DeploymentComponent",
"owner": "c0793074-7fc3-43b1-9516-40491662a611",
- "bounds": { "x": 560, "y": 90, "width": 240, "height": 40 }
+ "bounds": {
+ "x": 550,
+ "y": 60,
+ "width": 540,
+ "height": 40
+ },
+ "fillColor": "#d1d8e0"
+ },
+ {
+ "id": "3add4e36-f570-4ba6-a4f4-c426e2f24893",
+ "name": "server",
+ "type": "DeploymentComponent",
+ "owner": "c0793074-7fc3-43b1-9516-40491662a611",
+ "bounds": {
+ "x": 550,
+ "y": 110,
+ "width": 540,
+ "height": 190
+ },
+ "fillColor": "#d1d8e0"
+ },
+ {
+ "id": "9339d43b-3f54-4968-8c73-67570bdcc9ca",
+ "name": "core-api",
+ "type": "DeploymentComponent",
+ "owner": "3add4e36-f570-4ba6-a4f4-c426e2f24893",
+ "bounds": {
+ "x": 570,
+ "y": 230,
+ "width": 240,
+ "height": 40
+ }
+ },
+ {
+ "id": "8d265620-1519-419d-99ac-0dcbd1c4cca3",
+ "name": "MeiliSearch Instance",
+ "type": "DeploymentComponent",
+ "owner": "3add4e36-f570-4ba6-a4f4-c426e2f24893",
+ "bounds": {
+ "x": 570,
+ "y": 150,
+ "width": 240,
+ "height": 40
+ }
+ },
+ {
+ "id": "03ef4999-2155-4ce6-b4e5-a71016fdf7b4",
+ "name": "db-init-container",
+ "type": "DeploymentComponent",
+ "owner": "3add4e36-f570-4ba6-a4f4-c426e2f24893",
+ "bounds": {
+ "x": 840,
+ "y": 230,
+ "width": 210,
+ "height": 40
+ },
+ "strokeColor": "black",
+ "textColor": "black"
+ },
+ {
+ "id": "1c99f364-5777-4414-bc28-13eec43236a0",
+ "name": "webclient",
+ "type": "DeploymentComponent",
+ "owner": "c0793074-7fc3-43b1-9516-40491662a611",
+ "bounds": {
+ "x": 550,
+ "y": 640,
+ "width": 540,
+ "height": 120
+ },
+ "fillColor": "#d1d8e0"
+ },
+ {
+ "id": "edb2bab5-7951-4f24-a627-bd29fe163468",
+ "name": "webclient",
+ "type": "DeploymentComponent",
+ "owner": "1c99f364-5777-4414-bc28-13eec43236a0",
+ "bounds": {
+ "x": 570,
+ "y": 690,
+ "width": 240,
+ "height": 40
+ }
+ },
+ {
+ "id": "4f2725bb-a5e9-42fa-8de6-2d88bb9f01a1",
+ "name": "rendertron",
+ "type": "DeploymentComponent",
+ "owner": "1c99f364-5777-4414-bc28-13eec43236a0",
+ "bounds": {
+ "x": 850,
+ "y": 690,
+ "width": 200,
+ "height": 40
+ }
},
{
"id": "a9507920-1216-49a3-91b2-1bb878ef345b",
"name": "mytum/\"Rakete\" Roomfinder",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 1600, "y": 100, "width": 260, "height": 80 },
+ "bounds": {
+ "x": 1620,
+ "y": 150,
+ "width": 260,
+ "height": 80
+ },
"stereotype": "public API"
},
{
@@ -114,7 +313,12 @@
"name": "TUMonline",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 1640, "y": 260, "width": 200, "height": 100 },
+ "bounds": {
+ "x": 1660,
+ "y": 310,
+ "width": 200,
+ "height": 100
+ },
"stereotype": "public Website"
},
{
@@ -122,58 +326,98 @@
"name": "existing Rooms",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 130, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 1440,
+ "y": 180,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "07009480-5dd5-491b-b2a3-fee484254ac4",
"name": "Room-Details Website",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 300, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 1440,
+ "y": 350,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "59046dc5-7ebf-457b-a097-70746672e21c",
"name": "Building-maps",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 50, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 1440,
+ "y": 100,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "bbc2357f-4bc9-404e-85c3-a2c87614417f",
"name": "existing Buildings",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 210, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 1440,
+ "y": 260,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "1a5e8e49-99ef-4237-8112-2ef408f8e9ea",
"name": "API (/api/)",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 280, "y": 260, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 230,
+ "y": 240,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "5f17a5f8-8391-4015-b349-ca9b9879a334",
"name": "Maps/Images/Data (/cdn/)",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 300, "y": 350, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 250,
+ "y": 460,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "6bcd0da5-0a0e-42f5-9a0c-46391e4e4477",
"name": "Website (/)",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 280, "y": 640, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 310,
+ "y": 800,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "ee546041-0181-45cc-844b-1f9c6e961fdb",
"name": "Physics Department Roomfinder",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 1610, "y": 440, "width": 270, "height": 100 },
- "strokeColor": "#fd9644",
- "textColor": "#fd9644",
+ "bounds": {
+ "x": 1630,
+ "y": 490,
+ "width": 270,
+ "height": 100
+ },
+ "strokeColor": "black",
+ "textColor": "black",
"stereotype": "public API"
},
{
@@ -181,34 +425,54 @@
"name": "extra Rooms",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 390, "width": 20, "height": 20 },
- "strokeColor": "#fd9644",
- "textColor": "#fd9644"
+ "bounds": {
+ "x": 1440,
+ "y": 440,
+ "width": 20,
+ "height": 20
+ },
+ "strokeColor": "black",
+ "textColor": "black"
},
{
"id": "132614f0-c316-4d1c-9f34-f916fd8e8046",
"name": "extra Buildings",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 480, "width": 20, "height": 20 },
- "strokeColor": "#fd9644",
- "textColor": "#fd9644"
+ "bounds": {
+ "x": 1440,
+ "y": 530,
+ "width": 20,
+ "height": 20
+ },
+ "strokeColor": "black",
+ "textColor": "black"
},
{
"id": "53f6547e-394c-41a2-8675-fdeb7875459c",
"name": "extra Information",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 570, "width": 20, "height": 20 },
- "strokeColor": "#fd9644",
- "textColor": "#fd9644"
+ "bounds": {
+ "x": 1440,
+ "y": 620,
+ "width": 20,
+ "height": 20
+ },
+ "strokeColor": "black",
+ "textColor": "black"
},
{
"id": "50571be1-6b8d-4ccc-b443-ffab9c871245",
"name": "CampusApps",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 0, "y": 370, "width": 200, "height": 100 },
+ "bounds": {
+ "x": 0,
+ "y": 420,
+ "width": 200,
+ "height": 100
+ },
"strokeColor": "#26de81",
"stereotype": "clients"
},
@@ -217,7 +481,12 @@
"name": "Users",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 0, "y": 600, "width": 200, "height": 100 },
+ "bounds": {
+ "x": 0,
+ "y": 760,
+ "width": 200,
+ "height": 100
+ },
"strokeColor": "#26de81",
"stereotype": "humans"
},
@@ -226,14 +495,24 @@
"name": "JS Execution engine (/rendertron/)",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 280, "y": 760, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 300,
+ "y": 920,
+ "width": 20,
+ "height": 20
+ }
},
{
"id": "98998381-e751-4cd8-9385-613f7cb15fdb",
"name": "Twitterbot, ...",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 0, "y": 720, "width": 200, "height": 100 },
+ "bounds": {
+ "x": 0,
+ "y": 880,
+ "width": 200,
+ "height": 100
+ },
"strokeColor": "#26de81",
"stereotype": "bots"
},
@@ -242,7 +521,12 @@
"name": "LMU Roomfinder",
"type": "DeploymentNode",
"owner": null,
- "bounds": { "x": 1610, "y": 690, "width": 270, "height": 100 },
+ "bounds": {
+ "x": 1630,
+ "y": 740,
+ "width": 270,
+ "height": 100
+ },
"strokeColor": "#fd9644",
"textColor": "#fd9644",
"stereotype": "public Data"
@@ -252,7 +536,12 @@
"name": "extra Rooms",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 640, "width": 20, "height": 20 },
+ "bounds": {
+ "x": 1440,
+ "y": 690,
+ "width": 20,
+ "height": 20
+ },
"strokeColor": "#fd9644",
"textColor": "#fd9644"
},
@@ -261,7 +550,12 @@
"name": "extra Buildings",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 1420, "y": 730, "width": 20, "height": 20 },
+ "bounds": {
+ "x": 1440,
+ "y": 780,
+ "width": 20,
+ "height": 20
+ },
"strokeColor": "#fd9644",
"textColor": "#fd9644"
},
@@ -270,7 +564,12 @@
"name": "External",
"type": "ColorLegend",
"owner": null,
- "bounds": { "x": 20, "y": 0, "width": 200, "height": 50 },
+ "bounds": {
+ "x": 40,
+ "y": 10,
+ "width": 200,
+ "height": 50
+ },
"fillColor": "#26de81",
"strokeColor": "black"
},
@@ -279,7 +578,12 @@
"name": "Planned",
"type": "ColorLegend",
"owner": null,
- "bounds": { "x": 240, "y": 0, "width": 200, "height": 50 },
+ "bounds": {
+ "x": 260,
+ "y": 10,
+ "width": 200,
+ "height": 50
+ },
"fillColor": "#fd9644",
"strokeColor": "black"
},
@@ -288,7 +592,12 @@
"name": "Static maps (/maps/)",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 320, "y": 460, "width": 20, "height": 20 },
+ "bounds": {
+ "x": 250,
+ "y": 360,
+ "width": 20,
+ "height": 20
+ },
"strokeColor": "black",
"textColor": "black"
},
@@ -297,29 +606,76 @@
"name": "feedback-API (/api/feedback)",
"type": "DeploymentInterface",
"owner": null,
- "bounds": { "x": 260, "y": 100, "width": 20, "height": 20 }
+ "bounds": {
+ "x": 210,
+ "y": 150,
+ "width": 20,
+ "height": 20
+ }
+ },
+ {
+ "id": "241881e7-07d6-4343-b980-25dc9aaa9fe8",
+ "name": "Sitemaps",
+ "type": "DeploymentInterface",
+ "owner": null,
+ "bounds": {
+ "x": 270,
+ "y": 590,
+ "width": 20,
+ "height": 20
+ }
+ },
+ {
+ "id": "7fa69eff-6a36-4339-86db-d518d8dd6257",
+ "name": "module",
+ "type": "ColorLegend",
+ "owner": null,
+ "bounds": {
+ "x": 260,
+ "y": 70,
+ "width": 200,
+ "height": 50
+ },
+ "fillColor": "#d1d8e0"
}
],
"relationships": [
{
"id": "a7e2eae3-9e8a-4295-b84b-3a276af5854f",
"name": "",
- "type": "DeploymentInterfaceProvided",
+ "type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 1210, "y": 60, "width": 210, "height": 300 },
+ "bounds": {
+ "x": 1280,
+ "y": 97,
+ "width": 174,
+ "height": 503
+ },
"path": [
- { "x": 210, "y": 0 },
- { "x": 105, "y": 0 },
- { "x": 105, "y": 300 },
- { "x": 0, "y": 300 }
+ {
+ "x": 0,
+ "y": 503
+ },
+ {
+ "x": 80,
+ "y": 503
+ },
+ {
+ "x": 80,
+ "y": 13
+ },
+ {
+ "x": 160,
+ "y": 13
+ }
],
"source": {
- "direction": "Left",
- "element": "59046dc5-7ebf-457b-a097-70746672e21c"
+ "direction": "Right",
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
},
"target": {
- "direction": "Right",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
+ "direction": "Left",
+ "element": "59046dc5-7ebf-457b-a097-70746672e21c"
},
"isManuallyLayouted": false
},
@@ -328,11 +684,25 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 60, "width": 290, "height": 40 },
+ "bounds": {
+ "x": 1460,
+ "y": 110,
+ "width": 290,
+ "height": 40
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 290, "y": 0 },
- { "x": 290, "y": 40 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 290,
+ "y": 0
+ },
+ {
+ "x": 290,
+ "y": 40
+ }
],
"source": {
"direction": "Right",
@@ -344,37 +714,26 @@
},
"isManuallyLayouted": false
},
- {
- "id": "7b324ece-f74c-476b-a666-8fb260463507",
- "name": "",
- "type": "DeploymentInterfaceProvided",
- "owner": null,
- "bounds": { "x": 1210, "y": 140, "width": 210, "height": 220 },
- "path": [
- { "x": 210, "y": 0 },
- { "x": 105, "y": 0 },
- { "x": 105, "y": 220 },
- { "x": 0, "y": 220 }
- ],
- "source": {
- "direction": "Left",
- "element": "d5d8690f-364e-48fa-b9cb-685fa4b1d399"
- },
- "target": {
- "direction": "Right",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
- },
- "isManuallyLayouted": false
- },
{
"id": "0071f1ce-9d24-45ee-8135-e82aa975b3b4",
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 140, "width": 160, "height": 1 },
+ "bounds": {
+ "x": 1460,
+ "y": 190,
+ "width": 160,
+ "height": 1
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 160, "y": 0 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 160,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
@@ -386,37 +745,26 @@
},
"isManuallyLayouted": false
},
- {
- "id": "08df7f5a-4d01-4014-8ed2-e93274910e4b",
- "name": "",
- "type": "DeploymentInterfaceProvided",
- "owner": null,
- "bounds": { "x": 1210, "y": 310, "width": 210, "height": 50 },
- "path": [
- { "x": 210, "y": 0 },
- { "x": 105, "y": 0 },
- { "x": 105, "y": 50 },
- { "x": 0, "y": 50 }
- ],
- "source": {
- "direction": "Left",
- "element": "07009480-5dd5-491b-b2a3-fee484254ac4"
- },
- "target": {
- "direction": "Right",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
- },
- "isManuallyLayouted": false
- },
{
"id": "7691ef22-8478-499e-99ab-5f21ad3e6630",
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 310, "width": 200, "height": 1 },
+ "bounds": {
+ "x": 1460,
+ "y": 360,
+ "width": 200,
+ "height": 1
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 200, "y": 0 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 200,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
@@ -428,38 +776,30 @@
},
"isManuallyLayouted": false
},
- {
- "id": "0bb6f074-d549-4252-9e2c-32219259d73a",
- "name": "",
- "type": "DeploymentAssociation",
- "owner": null,
- "bounds": { "x": 1210, "y": 220, "width": 210, "height": 140 },
- "path": [
- { "x": 210, "y": 0 },
- { "x": 105, "y": 0 },
- { "x": 105, "y": 140 },
- { "x": 0, "y": 140 }
- ],
- "source": {
- "direction": "Left",
- "element": "bbc2357f-4bc9-404e-85c3-a2c87614417f"
- },
- "target": {
- "direction": "Right",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
- },
- "isManuallyLayouted": false
- },
{
"id": "4d892206-4ab9-4ca9-b02f-6e7e63583a60",
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 180, "width": 290, "height": 40 },
+ "bounds": {
+ "x": 1460,
+ "y": 230,
+ "width": 290,
+ "height": 40
+ },
"path": [
- { "x": 0, "y": 40 },
- { "x": 290, "y": 40 },
- { "x": 290, "y": 0 }
+ {
+ "x": 0,
+ "y": 40
+ },
+ {
+ "x": 290,
+ "y": 40
+ },
+ {
+ "x": 290,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
@@ -476,15 +816,33 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 910, "y": 170, "width": 195, "height": 140 },
+ "bounds": {
+ "x": 930,
+ "y": 150,
+ "width": 270,
+ "height": 370
+ },
"path": [
- { "x": 195, "y": 140 },
- { "x": 195, "y": 0 },
- { "x": 0, "y": 0 }
+ {
+ "x": 0,
+ "y": 370
+ },
+ {
+ "x": 270,
+ "y": 370
+ },
+ {
+ "x": 270,
+ "y": 0
+ },
+ {
+ "x": 230,
+ "y": 0
+ }
],
"source": {
- "direction": "Up",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
+ "direction": "Right",
+ "element": "aa8d7a5f-ade7-4edc-a512-ed985720699d"
},
"target": {
"direction": "Right",
@@ -497,10 +855,29 @@
"name": "",
"type": "DeploymentDependency",
"owner": null,
- "bounds": { "x": 800, "y": 170, "width": 90, "height": 1 },
+ "bounds": {
+ "x": 810,
+ "y": 150,
+ "width": 330,
+ "height": 20
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 90, "y": 0 }
+ {
+ "x": 0,
+ "y": 20
+ },
+ {
+ "x": 165,
+ "y": 20
+ },
+ {
+ "x": 165,
+ "y": 0
+ },
+ {
+ "x": 330,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
@@ -517,14 +894,25 @@
"name": "",
"type": "DeploymentDependency",
"owner": null,
- "bounds": { "x": 800, "y": 270, "width": 90, "height": 1 },
+ "bounds": {
+ "x": 1050,
+ "y": 250,
+ "width": 90,
+ "height": 1
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 90, "y": 0 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 90,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
- "element": "9339d43b-3f54-4968-8c73-67570bdcc9ca"
+ "element": "03ef4999-2155-4ce6-b4e5-a71016fdf7b4"
},
"target": {
"direction": "Left",
@@ -532,37 +920,26 @@
},
"isManuallyLayouted": false
},
- {
- "id": "2bd21e8b-56d8-49be-bb13-b1e4dd63a01b",
- "name": "",
- "type": "DeploymentInterfaceRequired",
- "owner": null,
- "bounds": { "x": 297, "y": 357, "width": 263, "height": 223 },
- "strokeColor": "black",
- "path": [
- { "x": 263, "y": 223 },
- { "x": 13, "y": 223 },
- { "x": 13, "y": 13 }
- ],
- "source": {
- "direction": "Left",
- "element": "edb2bab5-7951-4f24-a627-bd29fe163468"
- },
- "target": {
- "direction": "Down",
- "element": "5f17a5f8-8391-4015-b349-ca9b9879a334"
- },
- "isManuallyLayouted": false
- },
{
"id": "e47f3677-feb3-48d5-b92c-9ef5fef9302b",
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 300, "y": 270, "width": 260, "height": 1 },
+ "bounds": {
+ "x": 250,
+ "y": 250,
+ "width": 320,
+ "height": 1
+ },
"path": [
- { "x": 260, "y": 0 },
- { "x": 0, "y": 0 }
+ {
+ "x": 320,
+ "y": 0
+ },
+ {
+ "x": 0,
+ "y": 0
+ }
],
"source": {
"direction": "Left",
@@ -579,19 +956,37 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 910, "y": 270, "width": 195, "height": 40 },
+ "bounds": {
+ "x": 930,
+ "y": 250,
+ "width": 270,
+ "height": 270
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 195, "y": 0 },
- { "x": 195, "y": 40 }
+ {
+ "x": 230,
+ "y": 0
+ },
+ {
+ "x": 270,
+ "y": 0
+ },
+ {
+ "x": 270,
+ "y": 270
+ },
+ {
+ "x": 0,
+ "y": 270
+ }
],
"source": {
"direction": "Right",
"element": "b622e87e-fa8f-42c5-b86a-5eb5a7a012f9"
},
"target": {
- "direction": "Up",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
+ "direction": "Right",
+ "element": "aa8d7a5f-ade7-4edc-a512-ed985720699d"
},
"isManuallyLayouted": false
},
@@ -600,12 +995,26 @@
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 277, "y": 267, "width": 283, "height": 313 },
+ "bounds": {
+ "x": 227,
+ "y": 247,
+ "width": 343,
+ "height": 463
+ },
"strokeColor": "black",
"path": [
- { "x": 283, "y": 313 },
- { "x": 13, "y": 313 },
- { "x": 13, "y": 13 }
+ {
+ "x": 343,
+ "y": 463
+ },
+ {
+ "x": 13,
+ "y": 463
+ },
+ {
+ "x": 13,
+ "y": 13
+ }
],
"source": {
"direction": "Left",
@@ -622,10 +1031,29 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 320, "y": 360, "width": 680, "height": 1 },
+ "bounds": {
+ "x": 270,
+ "y": 470,
+ "width": 490,
+ "height": 50
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 680, "y": 0 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 245,
+ "y": 0
+ },
+ {
+ "x": 245,
+ "y": 50
+ },
+ {
+ "x": 490,
+ "y": 50
+ }
],
"source": {
"direction": "Right",
@@ -633,7 +1061,7 @@
},
"target": {
"direction": "Left",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
+ "element": "aa8d7a5f-ade7-4edc-a512-ed985720699d"
},
"isManuallyLayouted": false
},
@@ -642,11 +1070,25 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 300, "y": 600, "width": 380, "height": 50 },
+ "bounds": {
+ "x": 330,
+ "y": 730,
+ "width": 360,
+ "height": 80
+ },
"path": [
- { "x": 0, "y": 50 },
- { "x": 380, "y": 50 },
- { "x": 380, "y": 0 }
+ {
+ "x": 0,
+ "y": 80
+ },
+ {
+ "x": 360,
+ "y": 80
+ },
+ {
+ "x": 360,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
@@ -663,12 +1105,26 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 400, "width": 305, "height": 40 },
- "strokeColor": "#fd9644",
+ "bounds": {
+ "x": 1460,
+ "y": 450,
+ "width": 305,
+ "height": 40
+ },
+ "strokeColor": "black",
"path": [
- { "x": 305, "y": 40 },
- { "x": 305, "y": 0 },
- { "x": 0, "y": 0 }
+ {
+ "x": 305,
+ "y": 40
+ },
+ {
+ "x": 305,
+ "y": 0
+ },
+ {
+ "x": 0,
+ "y": 0
+ }
],
"source": {
"direction": "Up",
@@ -685,11 +1141,22 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 490, "width": 170, "height": 1 },
- "strokeColor": "#fd9644",
+ "bounds": {
+ "x": 1460,
+ "y": 540,
+ "width": 170,
+ "height": 1
+ },
+ "strokeColor": "black",
"path": [
- { "x": 170, "y": 0 },
- { "x": 0, "y": 0 }
+ {
+ "x": 170,
+ "y": 0
+ },
+ {
+ "x": 0,
+ "y": 0
+ }
],
"source": {
"direction": "Left",
@@ -706,12 +1173,26 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 540, "width": 305, "height": 40 },
- "strokeColor": "#fd9644",
+ "bounds": {
+ "x": 1460,
+ "y": 590,
+ "width": 305,
+ "height": 40
+ },
+ "strokeColor": "black",
"path": [
- { "x": 305, "y": 0 },
- { "x": 305, "y": 40 },
- { "x": 0, "y": 40 }
+ {
+ "x": 305,
+ "y": 0
+ },
+ {
+ "x": 305,
+ "y": 40
+ },
+ {
+ "x": 0,
+ "y": 40
+ }
],
"source": {
"direction": "Down",
@@ -728,20 +1209,33 @@
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 100, "y": 220, "width": 204, "height": 150 },
+ "bounds": {
+ "x": 100,
+ "y": 237,
+ "width": 144,
+ "height": 183
+ },
"strokeColor": "#26de81",
"path": [
- { "x": 0, "y": 150 },
- { "x": 0, "y": 0 },
- { "x": 190, "y": 0 },
- { "x": 190, "y": 40 }
+ {
+ "x": 0,
+ "y": 183
+ },
+ {
+ "x": 0,
+ "y": 13
+ },
+ {
+ "x": 130,
+ "y": 13
+ }
],
"source": {
"direction": "Up",
"element": "50571be1-6b8d-4ccc-b443-ffab9c871245"
},
"target": {
- "direction": "Up",
+ "direction": "Left",
"element": "1a5e8e49-99ef-4237-8112-2ef408f8e9ea"
},
"isManuallyLayouted": false
@@ -751,20 +1245,37 @@
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 100, "y": 310, "width": 224, "height": 60 },
+ "bounds": {
+ "x": 200,
+ "y": 457,
+ "width": 64,
+ "height": 27
+ },
"strokeColor": "#26de81",
"path": [
- { "x": 0, "y": 60 },
- { "x": 0, "y": 0 },
- { "x": 210, "y": 0 },
- { "x": 210, "y": 40 }
+ {
+ "x": 0,
+ "y": 13
+ },
+ {
+ "x": 40,
+ "y": 13
+ },
+ {
+ "x": 10,
+ "y": 13
+ },
+ {
+ "x": 50,
+ "y": 13
+ }
],
"source": {
- "direction": "Up",
+ "direction": "Right",
"element": "50571be1-6b8d-4ccc-b443-ffab9c871245"
},
"target": {
- "direction": "Up",
+ "direction": "Left",
"element": "5f17a5f8-8391-4015-b349-ca9b9879a334"
},
"isManuallyLayouted": false
@@ -774,11 +1285,22 @@
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 200, "y": 637, "width": 94, "height": 27 },
+ "bounds": {
+ "x": 200,
+ "y": 797,
+ "width": 124,
+ "height": 27
+ },
"strokeColor": "#26de81",
"path": [
- { "x": 0, "y": 13 },
- { "x": 80, "y": 13 }
+ {
+ "x": 0,
+ "y": 13
+ },
+ {
+ "x": 110,
+ "y": 13
+ }
],
"source": {
"direction": "Right",
@@ -790,37 +1312,27 @@
},
"isManuallyLayouted": false
},
- {
- "id": "bb3937a9-2a0f-4044-a5b0-3d2c20b6cd9c",
- "name": "",
- "type": "DeploymentInterfaceProvided",
- "owner": null,
- "bounds": { "x": 300, "y": 610, "width": 755, "height": 160 },
- "path": [
- { "x": 755, "y": 0 },
- { "x": 755, "y": 160 },
- { "x": 0, "y": 160 }
- ],
- "source": {
- "direction": "Down",
- "element": "580f24f1-068c-43f0-9c0e-2bf5b48b07ee"
- },
- "target": {
- "direction": "Right",
- "element": "58be4097-4f30-400d-9aa1-131df8c563c9"
- },
- "isManuallyLayouted": false
- },
{
"id": "9f69d649-e1d5-4a58-9aef-e99073deb7aa",
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 200, "y": 757, "width": 94, "height": 27 },
+ "bounds": {
+ "x": 200,
+ "y": 917,
+ "width": 114,
+ "height": 27
+ },
"strokeColor": "#26de81",
"path": [
- { "x": 0, "y": 13 },
- { "x": 80, "y": 13 }
+ {
+ "x": 0,
+ "y": 13
+ },
+ {
+ "x": 100,
+ "y": 13
+ }
],
"source": {
"direction": "Right",
@@ -837,19 +1349,37 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 910, "y": 200, "width": 195, "height": 110 },
+ "bounds": {
+ "x": 930,
+ "y": 190,
+ "width": 270,
+ "height": 330
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 195, "y": 0 },
- { "x": 195, "y": 110 }
+ {
+ "x": 230,
+ "y": 0
+ },
+ {
+ "x": 270,
+ "y": 0
+ },
+ {
+ "x": 270,
+ "y": 330
+ },
+ {
+ "x": 0,
+ "y": 330
+ }
],
"source": {
"direction": "Right",
"element": "cbb4c7ec-e3f6-4e33-aa77-e3a369555c85"
},
"target": {
- "direction": "Up",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
+ "direction": "Right",
+ "element": "aa8d7a5f-ade7-4edc-a512-ed985720699d"
},
"isManuallyLayouted": false
},
@@ -858,12 +1388,29 @@
"name": "",
"type": "DeploymentDependency",
"owner": null,
- "bounds": { "x": 800, "y": 170, "width": 90, "height": 30 },
+ "bounds": {
+ "x": 810,
+ "y": 170,
+ "width": 330,
+ "height": 20
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 45, "y": 0 },
- { "x": 45, "y": 30 },
- { "x": 90, "y": 30 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 165,
+ "y": 0
+ },
+ {
+ "x": 165,
+ "y": 20
+ },
+ {
+ "x": 330,
+ "y": 20
+ }
],
"source": {
"direction": "Right",
@@ -880,11 +1427,22 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 740, "width": 170, "height": 1 },
+ "bounds": {
+ "x": 1460,
+ "y": 790,
+ "width": 170,
+ "height": 1
+ },
"strokeColor": "#fd9644",
"path": [
- { "x": 0, "y": 0 },
- { "x": 170, "y": 0 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 170,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
@@ -901,12 +1459,26 @@
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 1440, "y": 650, "width": 305, "height": 40 },
+ "bounds": {
+ "x": 1460,
+ "y": 700,
+ "width": 305,
+ "height": 40
+ },
"strokeColor": "#fd9644",
"path": [
- { "x": 0, "y": 0 },
- { "x": 305, "y": 0 },
- { "x": 305, "y": 40 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 305,
+ "y": 0
+ },
+ {
+ "x": 305,
+ "y": 40
+ }
],
"source": {
"direction": "Right",
@@ -919,57 +1491,128 @@
"isManuallyLayouted": false
},
{
- "id": "7ea4aaee-348e-4acd-a4fa-94fcf17c7fe1",
+ "id": "07384d54-6669-4a87-8965-035d6109e834",
"name": "",
- "type": "DeploymentDependency",
+ "type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 800, "y": 580, "width": 170, "height": 1 },
+ "bounds": {
+ "x": 270,
+ "y": 370,
+ "width": 300,
+ "height": 1
+ },
+ "strokeColor": "black",
"path": [
- { "x": 170, "y": 0 },
- { "x": 0, "y": 0 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 300,
+ "y": 0
+ }
],
"source": {
- "direction": "Left",
- "element": "580f24f1-068c-43f0-9c0e-2bf5b48b07ee"
+ "direction": "Right",
+ "element": "aecaa77c-a2b6-48d7-9918-cdd6c021e5e3"
},
"target": {
- "direction": "Right",
- "element": "edb2bab5-7951-4f24-a627-bd29fe163468"
+ "direction": "Left",
+ "element": "729b6691-e7c2-43dd-8a58-c4cd2d6b38f0"
},
"isManuallyLayouted": false
},
{
- "id": "07384d54-6669-4a87-8965-035d6109e834",
+ "id": "cae9c682-a124-4a62-8522-b19c3634cf5a",
"name": "",
- "type": "DeploymentInterfaceProvided",
+ "type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 340, "y": 470, "width": 220, "height": 1 },
- "strokeColor": "black",
+ "bounds": {
+ "x": 100,
+ "y": 357,
+ "width": 164,
+ "height": 63
+ },
+ "strokeColor": "#26de81",
"path": [
- { "x": 0, "y": 0 },
- { "x": 220, "y": 0 }
+ {
+ "x": 0,
+ "y": 63
+ },
+ {
+ "x": 0,
+ "y": 13
+ },
+ {
+ "x": 150,
+ "y": 13
+ }
],
"source": {
- "direction": "Right",
- "element": "aecaa77c-a2b6-48d7-9918-cdd6c021e5e3"
+ "direction": "Up",
+ "element": "50571be1-6b8d-4ccc-b443-ffab9c871245"
},
"target": {
"direction": "Left",
- "element": "9803c740-2a29-480a-b782-26b084e880e7"
+ "element": "aecaa77c-a2b6-48d7-9918-cdd6c021e5e3"
},
"isManuallyLayouted": false
},
{
- "id": "fd941e0d-2c02-4fc2-94f8-599b0af36a37",
+ "id": "872cfc99-8c9b-4b1d-861b-cbf4b47eb4bb",
+ "name": "",
+ "type": "DeploymentDependency",
+ "owner": null,
+ "bounds": {
+ "x": 690,
+ "y": 190,
+ "width": 1,
+ "height": 40
+ },
+ "path": [
+ {
+ "x": 0,
+ "y": 40
+ },
+ {
+ "x": 0,
+ "y": 0
+ }
+ ],
+ "source": {
+ "direction": "Up",
+ "element": "9339d43b-3f54-4968-8c73-67570bdcc9ca"
+ },
+ "target": {
+ "direction": "Down",
+ "element": "8d265620-1519-419d-99ac-0dcbd1c4cca3"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "c419e4e4-154c-4b1c-bc8a-4464501e0d8f",
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 317, "y": 467, "width": 243, "height": 113 },
- "strokeColor": "#fd9644",
+ "bounds": {
+ "x": 207,
+ "y": 157,
+ "width": 363,
+ "height": 553
+ },
"path": [
- { "x": 243, "y": 113 },
- { "x": 13, "y": 113 },
- { "x": 13, "y": 13 }
+ {
+ "x": 363,
+ "y": 553
+ },
+ {
+ "x": 13,
+ "y": 553
+ },
+ {
+ "x": 13,
+ "y": 13
+ }
],
"source": {
"direction": "Left",
@@ -977,184 +1620,729 @@
},
"target": {
"direction": "Down",
- "element": "aecaa77c-a2b6-48d7-9918-cdd6c021e5e3"
+ "element": "7f38a685-f44a-441f-b457-3742447c525d"
},
"isManuallyLayouted": false
},
{
- "id": "cae9c682-a124-4a62-8522-b19c3634cf5a",
+ "id": "501bdd20-071c-4540-9774-ee9cbe04ca02",
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 200, "y": 420, "width": 134, "height": 64 },
+ "bounds": {
+ "x": 100,
+ "y": 147,
+ "width": 124,
+ "height": 273
+ },
"strokeColor": "#26de81",
"path": [
- { "x": 0, "y": 0 },
- { "x": 60, "y": 0 },
- { "x": 60, "y": 50 },
- { "x": 120, "y": 50 }
+ {
+ "x": 0,
+ "y": 273
+ },
+ {
+ "x": 0,
+ "y": 13
+ },
+ {
+ "x": 110,
+ "y": 13
+ }
],
"source": {
- "direction": "Right",
+ "direction": "Up",
"element": "50571be1-6b8d-4ccc-b443-ffab9c871245"
},
"target": {
"direction": "Left",
+ "element": "7f38a685-f44a-441f-b457-3742447c525d"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "9d92347c-0f95-4792-9dd0-6bb93c21c676",
+ "name": "",
+ "type": "DeploymentInterfaceProvided",
+ "owner": null,
+ "bounds": {
+ "x": 230,
+ "y": 80,
+ "width": 320,
+ "height": 80
+ },
+ "path": [
+ {
+ "x": 0,
+ "y": 80
+ },
+ {
+ "x": 265.5555419921875,
+ "y": 80
+ },
+ {
+ "x": 265.5555419921875,
+ "y": 0
+ },
+ {
+ "x": 320,
+ "y": 0
+ }
+ ],
+ "source": {
+ "direction": "Right",
+ "element": "7f38a685-f44a-441f-b457-3742447c525d"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "6ea7a59a-7b26-428a-a82c-2dee126fe09c"
+ },
+ "isManuallyLayouted": true
+ },
+ {
+ "id": "6c3d840d-66e9-4e5c-8c36-da9ad19c9218",
+ "name": "",
+ "type": "DeploymentInterfaceRequired",
+ "owner": null,
+ "bounds": {
+ "x": 247,
+ "y": 270,
+ "width": 460,
+ "height": 100
+ },
+ "path": [
+ {
+ "x": 443,
+ "y": 0
+ },
+ {
+ "x": 443,
+ "y": 18.33331298828125
+ },
+ {
+ "x": 13,
+ "y": 18.33331298828125
+ },
+ {
+ "x": 13,
+ "y": 90
+ }
+ ],
+ "source": {
+ "direction": "Down",
+ "element": "9339d43b-3f54-4968-8c73-67570bdcc9ca"
+ },
+ "target": {
+ "direction": "Up",
"element": "aecaa77c-a2b6-48d7-9918-cdd6c021e5e3"
},
+ "isManuallyLayouted": true
+ },
+ {
+ "id": "c458a207-1c8d-4cd4-bee3-2f80706e17b4",
+ "name": "",
+ "type": "DeploymentDependency",
+ "owner": null,
+ "bounds": {
+ "x": 810,
+ "y": 250,
+ "width": 30,
+ "height": 1
+ },
+ "path": [
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 30,
+ "y": 0
+ }
+ ],
+ "source": {
+ "direction": "Right",
+ "element": "9339d43b-3f54-4968-8c73-67570bdcc9ca"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "03ef4999-2155-4ce6-b4e5-a71016fdf7b4"
+ },
"isManuallyLayouted": false
},
{
- "id": "cb65fde3-e2a4-41f4-baa6-c2ac538ca0a4",
+ "id": "e129ef84-0bb8-4ac0-bab9-e65a6f5928c0",
+ "name": "",
+ "type": "DeploymentDependency",
+ "owner": null,
+ "bounds": {
+ "x": 810,
+ "y": 710,
+ "width": 40,
+ "height": 1
+ },
+ "path": [
+ {
+ "x": 40,
+ "y": 0
+ },
+ {
+ "x": 0,
+ "y": 0
+ }
+ ],
+ "source": {
+ "direction": "Left",
+ "element": "4f2725bb-a5e9-42fa-8de6-2d88bb9f01a1"
+ },
+ "target": {
+ "direction": "Right",
+ "element": "edb2bab5-7951-4f24-a627-bd29fe163468"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "87e43f7f-b12c-4840-90d3-f227f4eb5ce1",
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 910, "y": 410, "width": 195, "height": 100 },
+ "bounds": {
+ "x": 320,
+ "y": 730,
+ "width": 630,
+ "height": 200
+ },
"path": [
- { "x": 0, "y": 100 },
- { "x": 195, "y": 100 },
- { "x": 195, "y": 0 }
+ {
+ "x": 0,
+ "y": 200
+ },
+ {
+ "x": 630,
+ "y": 200
+ },
+ {
+ "x": 630,
+ "y": 0
+ }
],
"source": {
"direction": "Right",
- "element": "b75b552e-dd63-4453-a22f-79294fc74773"
+ "element": "58be4097-4f30-400d-9aa1-131df8c563c9"
},
"target": {
"direction": "Down",
- "element": "df334929-e6b4-4769-88bc-19700962febd"
+ "element": "4f2725bb-a5e9-42fa-8de6-2d88bb9f01a1"
},
"isManuallyLayouted": false
},
{
- "id": "f84dd657-aafb-4ee6-b355-aea9a69c752c",
+ "id": "edd00375-6319-4c50-88b7-ed85f9f6f354",
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 680, "y": 497, "width": 224, "height": 63 },
+ "bounds": {
+ "x": 1280,
+ "y": 437,
+ "width": 174,
+ "height": 163
+ },
+ "strokeColor": "#fd9644",
"path": [
- { "x": 0, "y": 63 },
- { "x": 0, "y": 13 },
- { "x": 210, "y": 13 }
+ {
+ "x": 0,
+ "y": 163
+ },
+ {
+ "x": 80,
+ "y": 163
+ },
+ {
+ "x": 80,
+ "y": 13
+ },
+ {
+ "x": 160,
+ "y": 13
+ }
],
"source": {
- "direction": "Up",
+ "direction": "Right",
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "d01d4398-8da0-4977-8566-f78cfa1af782"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "f7f7299a-e60c-4d51-b78c-e89c916575ab",
+ "name": "",
+ "type": "DeploymentInterfaceRequired",
+ "owner": null,
+ "bounds": {
+ "x": 1280,
+ "y": 527,
+ "width": 174,
+ "height": 73
+ },
+ "strokeColor": "#fd9644",
+ "path": [
+ {
+ "x": 0,
+ "y": 73
+ },
+ {
+ "x": 80,
+ "y": 73
+ },
+ {
+ "x": 80,
+ "y": 13
+ },
+ {
+ "x": 160,
+ "y": 13
+ }
+ ],
+ "source": {
+ "direction": "Right",
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "132614f0-c316-4d1c-9f34-f916fd8e8046"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "ad6b780a-3582-48e1-a4f6-5b523955be39",
+ "name": "",
+ "type": "DeploymentInterfaceRequired",
+ "owner": null,
+ "bounds": {
+ "x": 1280,
+ "y": 600,
+ "width": 174,
+ "height": 44
+ },
+ "strokeColor": "#fd9644",
+ "path": [
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 80,
+ "y": 0
+ },
+ {
+ "x": 80,
+ "y": 30
+ },
+ {
+ "x": 160,
+ "y": 30
+ }
+ ],
+ "source": {
+ "direction": "Right",
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "53f6547e-394c-41a2-8675-fdeb7875459c"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "fe9a1d30-ea43-4672-9945-b34fca8a80f0",
+ "name": "",
+ "type": "DeploymentInterfaceRequired",
+ "owner": null,
+ "bounds": {
+ "x": 247,
+ "y": 467,
+ "width": 323,
+ "height": 243
+ },
+ "path": [
+ {
+ "x": 323,
+ "y": 243
+ },
+ {
+ "x": 13,
+ "y": 243
+ },
+ {
+ "x": 13,
+ "y": 13
+ }
+ ],
+ "source": {
+ "direction": "Left",
"element": "edb2bab5-7951-4f24-a627-bd29fe163468"
},
+ "target": {
+ "direction": "Down",
+ "element": "5f17a5f8-8391-4015-b349-ca9b9879a334"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "0f7fe689-245e-47f4-b072-d1d44f1284d2",
+ "name": "",
+ "type": "DeploymentDependency",
+ "owner": null,
+ "bounds": {
+ "x": 810,
+ "y": 370,
+ "width": 30,
+ "height": 1
+ },
+ "strokeColor": "#fd9644",
+ "path": [
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 30,
+ "y": 0
+ }
+ ],
+ "source": {
+ "direction": "Right",
+ "element": "729b6691-e7c2-43dd-8a58-c4cd2d6b38f0"
+ },
"target": {
"direction": "Left",
- "element": "b75b552e-dd63-4453-a22f-79294fc74773"
+ "element": "76fda618-a6dc-4f12-8b31-440df3ceea55"
},
"isManuallyLayouted": false
},
{
- "id": "872cfc99-8c9b-4b1d-861b-cbf4b47eb4bb",
+ "id": "5a8aab02-4b5d-46c7-8150-62e131259ab4",
"name": "",
"type": "DeploymentDependency",
"owner": null,
- "bounds": { "x": 680, "y": 190, "width": 1, "height": 60 },
+ "bounds": {
+ "x": 810,
+ "y": 430,
+ "width": 30,
+ "height": 1
+ },
+ "strokeColor": "#fd9644",
"path": [
- { "x": 0, "y": 60 },
- { "x": 0, "y": 0 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 30,
+ "y": 0
+ }
],
"source": {
- "direction": "Up",
- "element": "9339d43b-3f54-4968-8c73-67570bdcc9ca"
+ "direction": "Right",
+ "element": "2c04ee1a-bf0f-480f-b2d6-da8d3a5d54d5"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "6b6c386c-ab97-4c91-a6ab-ec53ac9a1d37"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "bfd08e61-803d-4963-8c99-ba35f6c59ccb",
+ "name": "",
+ "type": "DeploymentInterfaceRequired",
+ "owner": null,
+ "bounds": {
+ "x": 267,
+ "y": 597,
+ "width": 303,
+ "height": 113
+ },
+ "path": [
+ {
+ "x": 303,
+ "y": 113
+ },
+ {
+ "x": 13,
+ "y": 113
+ },
+ {
+ "x": 13,
+ "y": 13
+ }
+ ],
+ "source": {
+ "direction": "Left",
+ "element": "edb2bab5-7951-4f24-a627-bd29fe163468"
},
"target": {
"direction": "Down",
- "element": "8d265620-1519-419d-99ac-0dcbd1c4cca3"
+ "element": "241881e7-07d6-4343-b980-25dc9aaa9fe8"
},
"isManuallyLayouted": false
},
{
- "id": "c419e4e4-154c-4b1c-bc8a-4464501e0d8f",
+ "id": "8a06d676-29ef-4bf5-b156-deefe6331760",
"name": "",
"type": "DeploymentInterfaceProvided",
"owner": null,
- "bounds": { "x": 270, "y": 120, "width": 290, "height": 460 },
+ "bounds": {
+ "x": 280,
+ "y": 520,
+ "width": 480,
+ "height": 70
+ },
+ "path": [
+ {
+ "x": 480,
+ "y": 0
+ },
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 0,
+ "y": 70
+ }
+ ],
+ "source": {
+ "direction": "Left",
+ "element": "aa8d7a5f-ade7-4edc-a512-ed985720699d"
+ },
+ "target": {
+ "direction": "Up",
+ "element": "241881e7-07d6-4343-b980-25dc9aaa9fe8"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "415c14ea-0bbd-4873-8b00-5bfe190bd405",
+ "name": "",
+ "type": "DeploymentAssociation",
+ "owner": null,
+ "bounds": {
+ "x": 1070,
+ "y": 600,
+ "width": 40,
+ "height": 1
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 0, "y": 460 },
- { "x": 290, "y": 460 }
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 40,
+ "y": 0
+ }
+ ],
+ "source": {
+ "direction": "Right",
+ "element": "2e00ad7d-bec9-49d1-a6b7-c2f3a3de8d21"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "745a21eb-82de-466c-8b5f-328f2c962dd0",
+ "name": "",
+ "type": "DeploymentDependency",
+ "owner": null,
+ "bounds": {
+ "x": 845,
+ "y": 540,
+ "width": 55,
+ "height": 60
+ },
+ "path": [
+ {
+ "x": 0,
+ "y": 0
+ },
+ {
+ "x": 0,
+ "y": 60
+ },
+ {
+ "x": 55,
+ "y": 60
+ }
],
"source": {
"direction": "Down",
- "element": "7f38a685-f44a-441f-b457-3742447c525d"
+ "element": "aa8d7a5f-ade7-4edc-a512-ed985720699d"
},
"target": {
"direction": "Left",
- "element": "edb2bab5-7951-4f24-a627-bd29fe163468"
+ "element": "2e00ad7d-bec9-49d1-a6b7-c2f3a3de8d21"
},
"isManuallyLayouted": false
},
{
- "id": "501bdd20-071c-4540-9774-ee9cbe04ca02",
+ "id": "c10f704a-7bc5-4582-a6ab-30dc50d4f158",
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 100, "y": 60, "width": 184, "height": 310 },
- "strokeColor": "#26de81",
+ "bounds": {
+ "x": 1280,
+ "y": 177,
+ "width": 174,
+ "height": 423
+ },
"path": [
- { "x": 0, "y": 310 },
- { "x": 0, "y": 0 },
- { "x": 170, "y": 0 },
- { "x": 170, "y": 40 }
+ {
+ "x": 0,
+ "y": 423
+ },
+ {
+ "x": 80,
+ "y": 423
+ },
+ {
+ "x": 80,
+ "y": 13
+ },
+ {
+ "x": 160,
+ "y": 13
+ }
],
"source": {
- "direction": "Up",
- "element": "50571be1-6b8d-4ccc-b443-ffab9c871245"
+ "direction": "Right",
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
},
"target": {
- "direction": "Up",
- "element": "7f38a685-f44a-441f-b457-3742447c525d"
+ "direction": "Left",
+ "element": "d5d8690f-364e-48fa-b9cb-685fa4b1d399"
},
"isManuallyLayouted": false
},
{
- "id": "9d92347c-0f95-4792-9dd0-6bb93c21c676",
+ "id": "0deb841a-3965-4439-8723-b1c9d1d4b10c",
"name": "",
- "type": "DeploymentInterfaceProvided",
+ "type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 280, "y": 110, "width": 280, "height": 1 },
+ "bounds": {
+ "x": 1280,
+ "y": 257,
+ "width": 174,
+ "height": 343
+ },
"path": [
- { "x": 0, "y": 0 },
- { "x": 280, "y": 0 }
+ {
+ "x": 0,
+ "y": 343
+ },
+ {
+ "x": 80,
+ "y": 343
+ },
+ {
+ "x": 80,
+ "y": 13
+ },
+ {
+ "x": 160,
+ "y": 13
+ }
],
"source": {
"direction": "Right",
- "element": "7f38a685-f44a-441f-b457-3742447c525d"
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
},
"target": {
"direction": "Left",
- "element": "6ea7a59a-7b26-428a-a82c-2dee126fe09c"
+ "element": "bbc2357f-4bc9-404e-85c3-a2c87614417f"
},
"isManuallyLayouted": false
},
{
- "id": "6c3d840d-66e9-4e5c-8c36-da9ad19c9218",
+ "id": "616dc47c-2b8f-4e62-942a-dcb4369d9774",
"name": "",
"type": "DeploymentInterfaceRequired",
"owner": null,
- "bounds": { "x": 317, "y": 290, "width": 380, "height": 180 },
+ "bounds": {
+ "x": 1280,
+ "y": 347,
+ "width": 174,
+ "height": 253
+ },
+ "path": [
+ {
+ "x": 0,
+ "y": 253
+ },
+ {
+ "x": 80,
+ "y": 253
+ },
+ {
+ "x": 80,
+ "y": 13
+ },
+ {
+ "x": 160,
+ "y": 13
+ }
+ ],
+ "source": {
+ "direction": "Right",
+ "element": "72c91d34-6f33-4299-ac4d-b5b83f6b5d35"
+ },
+ "target": {
+ "direction": "Left",
+ "element": "07009480-5dd5-491b-b2a3-fee484254ac4"
+ },
+ "isManuallyLayouted": false
+ },
+ {
+ "id": "6db4ba4e-ca05-4a50-9e84-b5715009c0f3",
+ "name": "",
+ "type": "DeploymentDependency",
+ "owner": null,
+ "bounds": {
+ "x": 790,
+ "y": 540,
+ "width": 55,
+ "height": 60
+ },
"path": [
- { "x": 363, "y": 0 },
- { "x": 363, "y": 113.80010986328125 },
- { "x": 13, "y": 113.80010986328125 },
- { "x": 13, "y": 170 }
+ {
+ "x": 55,
+ "y": 0
+ },
+ {
+ "x": 55,
+ "y": 60
+ },
+ {
+ "x": 0,
+ "y": 60
+ }
],
"source": {
"direction": "Down",
- "element": "9339d43b-3f54-4968-8c73-67570bdcc9ca"
+ "element": "aa8d7a5f-ade7-4edc-a512-ed985720699d"
},
"target": {
- "direction": "Up",
- "element": "aecaa77c-a2b6-48d7-9918-cdd6c021e5e3"
+ "direction": "Right",
+ "element": "31c465a1-97c5-4362-9327-234a6622b854"
},
- "isManuallyLayouted": true
+ "isManuallyLayouted": false
}
],
"assessments": []
- },
- "lastUpdate": "2022-01-25T20:57:46.530Z",
- "diagramType": "DeploymentDiagram"
-}
+ }
+}
\ No newline at end of file
diff --git a/resources/deployment/Deployment_Overview.png b/resources/deployment/Deployment_Overview.png
index 00a181b75..f95f3285e 100644
Binary files a/resources/deployment/Deployment_Overview.png and b/resources/deployment/Deployment_Overview.png differ
diff --git a/resources/deployment/Deployment_Overview.svg b/resources/deployment/Deployment_Overview.svg
deleted file mode 100644
index 79a7ff3d4..000000000
--- a/resources/deployment/Deployment_Overview.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/resources/deployment/Flowchart.svg b/resources/deployment/Flowchart.svg
deleted file mode 100644
index fb630685c..000000000
--- a/resources/deployment/Flowchart.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-STARTendpoint?https?js-execution capability?serverwebclienttileserverrendertron rendering-proxyfeedbackcdn/api//cdn/elseyesyes/rendertron/redirect to httpsno/maps//api/feedback/
diff --git a/server/Dockerfile.dbinit b/server/Dockerfile.dbinit
new file mode 100644
index 000000000..6b3e0b98d
--- /dev/null
+++ b/server/Dockerfile.dbinit
@@ -0,0 +1,14 @@
+# Build the details database
+FROM python:3.11-bullseye as build-stage
+COPY load_api_data_to_db.py load_api_data_to_db.py
+
+# For local testing if navigatum is not available:
+# - follow the data-docs to get api_data.json
+# - copy it to the directory server/data
+# - comment out the wget statement
+# - and enable the next line
+# COPY data/api_data.json data/api_data.json
+
+CMD wget https://nav.tum.de/cdn/api_data.json --directory-prefix data \
+ && python3 load_api_data_to_db.py \
+ && mv /data/api_data.db /tmp/server.db
\ No newline at end of file
diff --git a/server/Dockerfile.server b/server/Dockerfile.server
index b54d936a5..961f1e530 100644
--- a/server/Dockerfile.server
+++ b/server/Dockerfile.server
@@ -9,17 +9,6 @@ COPY ./src ./src
RUN RUSTFLAGS="-C target-feature=-crt-static" cargo build --release
-# Build the details database
-FROM python:3.11-bullseye as build-stage
-COPY load_api_data_to_db.py load_api_data_to_db.py
-
-# get api_data.json
-ADD https://nav.tum.de/cdn/api_data.json data/api_data.json
-# For local testing if navigatum is not available:
-# follow the data-docs to get api_data.json, copy it to the directory server/data and enable
-# COPY data/api_data.json data/api_data.json
-RUN python3 load_api_data_to_db.py
-
# RUN
FROM alpine:3.17
@@ -27,9 +16,7 @@ RUN apk update --quiet \
&& apk add -q --no-cache libgcc sqlite-libs tini \
&& mkdir -p ./src/maps/font
-
COPY ./src/maps ./src/maps
-COPY --from=build-stage /data/api_data.db ./data/api_data.db
# add `navigatum-server` to the `/bin` so we can run it from anywhere and it's easy to find.
COPY --from=compiler /nav/target/release/navigatum-server /bin/navigatum-server
diff --git a/server/src/utils/mod.rs b/server/src/utils/mod.rs
index 5d85c5143..76785b8b3 100644
--- a/server/src/utils/mod.rs
+++ b/server/src/utils/mod.rs
@@ -15,5 +15,6 @@ impl LangQueryArgs {
}
pub fn establish_connection() -> SqliteConnection {
- SqliteConnection::establish("data/api_data.db").expect("Cannot open database")
+ let database_loc = std::env::var("DB_LOCATION").unwrap_or("data/api_data.db".to_string());
+ SqliteConnection::establish(&database_loc).expect("Cannot open database")
}