From dc05767451e633a5ece85c41e431829b32e01c13 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Tue, 10 Oct 2023 10:14:55 +0200
Subject: [PATCH] Added auth

---
 docs/system-databases-auth.md     |  24 ++++++
 docs/system-databases-data.md     |  20 +++--
 docs/system-databases-metadata.md |  19 +++--
 docs/system-databases-search.md   |  14 +++-
 docs/system-services-broker.md    |   2 +-
 docs/system-services-data.md      |  29 +++++++
 docs/system-services-mirror.md    |  38 +++++++++
 misc/.$architecture.drawio.dtmp   | 135 +++++++++++++++++++++++++++---
 misc/architecture.drawio          | 135 +++++++++++++++++++++++++++---
 misc/diagrams.drawio              | 113 -------------------------
 misc/diagrams2.drawio             |   1 -
 misc/env.json                     |   9 --
 mkdocs.yml                        |   3 +
 13 files changed, 380 insertions(+), 162 deletions(-)
 create mode 100644 docs/system-databases-auth.md
 create mode 100644 docs/system-services-data.md
 create mode 100644 docs/system-services-mirror.md
 delete mode 100644 misc/diagrams.drawio
 delete mode 100644 misc/diagrams2.drawio
 delete mode 100644 misc/env.json

diff --git a/docs/system-databases-auth.md b/docs/system-databases-auth.md
new file mode 100644
index 0000000..e8de96c
--- /dev/null
+++ b/docs/system-databases-auth.md
@@ -0,0 +1,24 @@
+---
+author: Martin Weise
+---
+
+# Auth Database
+
+## tl;dr
+
+!!! debug "Debug Information"
+
+    * Ports: 3306/tcp, 9100/tcp
+    * Prometheus: `http://:9100/metrics`
+
+## Overview
+
+tbd
+
+## Limitations
+
+(none)
+
+## Security
+
+(none)
diff --git a/docs/system-databases-data.md b/docs/system-databases-data.md
index 6c407ba..c3c0987 100644
--- a/docs/system-databases-data.md
+++ b/docs/system-databases-data.md
@@ -4,17 +4,21 @@ author: Martin Weise
 
 # Data Database
 
+## tl;dr
+
 !!! debug "Debug Information"
 
     * Ports: 3306/tcp, 9100/tcp
     * Prometheus: `http://:9100/metrics`
 
-It is the core component of the project. It is a relational database that contains metadata about all researcher
-databases
-created in the database repository like column names, check expressions, value enumerations or key/value constraints and
-relevant data for citing data sets. Additionally, the concept, e.g. URI of units of measurements of numerical columns is
-stored in the Metadata Database in order to provide semantic knowledge context. We use MariaDB for its rich capabilities
-in the reference implementation.
+## Overview
+
+It is the core component of the project.
+
+## Limitations
+
+(none)
+
+## Security
 
-The default credentials are `root:dbrepo` for the database `fda`. Connect to the database via the JDBC connector on
-port `3306`.
+(none)
diff --git a/docs/system-databases-metadata.md b/docs/system-databases-metadata.md
index b88d264..36c66b3 100644
--- a/docs/system-databases-metadata.md
+++ b/docs/system-databases-metadata.md
@@ -4,17 +4,26 @@ author: Martin Weise
 
 # Metadata Database
 
+## tl;dr
+
 !!! debug "Debug Information"
 
     * Ports: 3306/tcp, 9100/tcp
     * Prometheus: `http://:9100/metrics`
 
 It is the core component of the project. It is a relational database that contains metadata about all researcher
-databases
-created in the database repository like column names, check expressions, value enumerations or key/value constraints and
-relevant data for citing data sets. Additionally, the concept, e.g. URI of units of measurements of numerical columns is
-stored in the Metadata Database in order to provide semantic knowledge context. We use MariaDB for its rich capabilities
-in the reference implementation.
+database created in the database repository like column names, check expressions, value enumerations or key/value
+constraints and relevant data for citing data sets. Additionally, the concept, e.g. URI of units of measurements of
+numerical columns is stored in the Metadata Database in order to provide semantic knowledge context. We use MariaDB for
+its rich capabilities in the reference implementation.
 
 The default credentials are `root:dbrepo` for the database `fda`. Connect to the database via the JDBC connector on
 port `3306`.
+
+## Limitations
+
+(none)
+
+## Security
+
+(none)
diff --git a/docs/system-databases-search.md b/docs/system-databases-search.md
index 388fb94..74eae82 100644
--- a/docs/system-databases-search.md
+++ b/docs/system-databases-search.md
@@ -4,11 +4,15 @@ author: Martin Weise
 
 # Search Database
 
+## tl;dr
+
 !!! debug "Debug Information"
 
     * Ports: 9200/tcp
     * Indexes: `http://:9200/_all`
-    * Health: `http://:9200/_cluster/health/`
+    * Health: `http://:9200/_cluster/health`
+
+## Overview
 
 It processes search requests from the Gateway Service for full-text lookups in the metadata database. We use
 [Elasticsearch](https://www.elastic.co/) in the reference implementation. The search database implements Elastic Search
@@ -16,3 +20,11 @@ and creates a retrievable index on all databases that is getting updated with ea
 metadata database.
 
 All requests need to be authenticated, by default the credentials `elastic:elastic` are used.
+
+## Limitations
+
+(none)
+
+## Security
+
+(none)
diff --git a/docs/system-services-broker.md b/docs/system-services-broker.md
index 30cfcf1..d166a8b 100644
--- a/docs/system-services-broker.md
+++ b/docs/system-services-broker.md
@@ -34,7 +34,7 @@ the [usage](/infrastructures/dbrepo/latest/usage-broker) page.
 
 ## Limitations
 
-* No support for MQTT messaging as the protocol does not support virtual hosts other than `/`.
+* No support for MQTT.
 
 ## Security
 
diff --git a/docs/system-services-data.md b/docs/system-services-data.md
new file mode 100644
index 0000000..ae39218
--- /dev/null
+++ b/docs/system-services-data.md
@@ -0,0 +1,29 @@
+---
+author: Martin Weise
+---
+
+# Data Service
+
+## tl;dr
+
+!!! debug "Debug Information"
+
+    * Ports: 9093/tcp
+    * Info: `http://:9093/actuator/info`
+    * Health: `http://:9093/actuator/health`
+    * Prometheus: `http://:9093/actuator/prometheus`
+    * Swagger UI: `http://:9093/swagger-ui/index.html` <a href="/infrastructures/dbrepo/latest/swagger/data" target="_blank">:fontawesome-solid-square-up-right: view online</a>
+
+## Overview
+
+The Data Service is responsible for inserting AMQP tuples from the Broker Service into the Data DB 
+via [Spring AMQP](https://docs.spring.io/spring-amqp/reference/html/). To increase the number of consumers, scale the
+Data Service up.
+
+## Limitations
+
+(none)
+
+## Security
+
+(none)
diff --git a/docs/system-services-mirror.md b/docs/system-services-mirror.md
new file mode 100644
index 0000000..962e387
--- /dev/null
+++ b/docs/system-services-mirror.md
@@ -0,0 +1,38 @@
+---
+author: Martin Weise
+---
+
+# Mirror Service
+
+## tl;dr
+
+!!! debug "Debug Information"
+
+    * Ports: 9050/tcp
+    * Info: `http://:9050/actuator/info`
+    * Health: `http://:9050/actuator/health`
+    * Prometheus: `http://:9050/actuator/prometheus`
+    * Swagger UI: `http://:9050/swagger-ui/index.html` <a href="/infrastructures/dbrepo/latest/swagger/mirror" target="_blank">:fontawesome-solid-square-up-right: view online</a>
+
+## Overview
+
+This service mirrors relevant table from the Metadata DB into the Search DB:
+
+| Metadata DB         | &#8614; | Search DB     |
+|---------------------|:-------:|---------------|
+| `mdb_users`         |         | `/user`       |
+| `mdb_view`          |         | `/view`       |
+| `mdb_databases`     |         | `/database`   |
+| `mdb_identifiers`   |         | `/identifier` |
+| `mdb_concepts`      |         | `/concept`    |
+| `mdb_columns`       |         | `/column`     |
+| `mdb_tables`        |         | `/table`      |
+| `mdb_units`         |         | `/unit`       |
+
+## Limitations
+
+(none)
+
+## Security
+
+(none)
diff --git a/misc/.$architecture.drawio.dtmp b/misc/.$architecture.drawio.dtmp
index d809737..c49c960 100644
--- a/misc/.$architecture.drawio.dtmp
+++ b/misc/.$architecture.drawio.dtmp
@@ -1,6 +1,6 @@
-<mxfile host="Electron" modified="2023-10-09T07:59:29.614Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="Td1kgXHoYxqYNfTozfBp" version="21.1.2" type="device" pages="5">
+<mxfile host="Electron" modified="2023-10-09T13:32:35.850Z" 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="X9gFSGQvzpDT4o0pkceQ" version="21.1.2" type="device" pages="6">
   <diagram id="mvBsv1rP8O80Qe3yGnn_" name="docker-compose">
-    <mxGraphModel dx="1509" dy="865" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
+    <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" />
@@ -37,7 +37,7 @@
             </Array>
           </mxGeometry>
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-19" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-43">
+        <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>
@@ -57,7 +57,7 @@
             </Array>
           </mxGeometry>
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-18" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-45">
+        <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>
@@ -82,7 +82,7 @@
             <mxPoint x="689.9999999999998" y="586" as="sourcePoint" />
           </mxGeometry>
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-16" value="JDBC" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-48">
+        <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>
@@ -90,7 +90,7 @@
         <mxCell id="hBEam5F8n4ZBPeoiEcWH-1" value="Metadata Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
           <mxGeometry x="560" y="566" width="130" height="40" as="geometry" />
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-15" value="Spring AMQP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=arc;dashed=1;strokeWidth=1;dashPattern=1 1;fontSize=9;" edge="1" parent="1" source="AQz-Vj6r_5Wor37pQVs6-1" target="YJRAzF6yD4Hh-bAvO1PB-1">
+        <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" />
@@ -183,34 +183,34 @@
         <mxCell id="A18w2Y2_AVEIFkgUy5Lv-39" value="upload-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1">
           <mxGeometry x="711" y="312" width="108" height="20" as="geometry" />
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-2" value="JDBC" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=9;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-1" target="V1Wl26Vbpgnno5Lb-wtg-34">
+        <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;" vertex="1" parent="1">
+        <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;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-26">
+        <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;" vertex="1" connectable="0" parent="YJRAzF6yD4Hh-bAvO1PB-13">
+        <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;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-32">
+        <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;" vertex="1" parent="1">
+        <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">
@@ -2292,4 +2292,115 @@
       </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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-3" target="Gou0UibUgwIY_gQY8MW6-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-2" value="include" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="Gou0UibUgwIY_gQY8MW6-1">
+          <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;" vertex="1" parent="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;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-6" target="Gou0UibUgwIY_gQY8MW6-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-6" value="Researchers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-8" target="Gou0UibUgwIY_gQY8MW6-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-8" value="Developers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-10" target="Gou0UibUgwIY_gQY8MW6-16">
+          <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;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-12" target="Gou0UibUgwIY_gQY8MW6-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-12" value="default-researcher-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-14" target="Gou0UibUgwIY_gQY8MW6-3">
+          <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;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-16" target="Gou0UibUgwIY_gQY8MW6-27">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-16" value="default-data-steward-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="74" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-17" value="default-user-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="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;" vertex="1" parent="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;" vertex="1" parent="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;" vertex="1" parent="1">
+          <mxGeometry x="12.5" y="166" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-21" value="default-table-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="12.5" y="286" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-22" value="default-query-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="12.5" y="346" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-23" value="escalated-container-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="226" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-24" value="escalated-database-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="286" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-25" value="escalated-query-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="406" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-26" value="escalated-table-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="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;" vertex="1" parent="1">
+          <mxGeometry x="441.5" y="156" width="141" height="424" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-28" value="escalated-identifier-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="286" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-29" value="default-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="12" y="530" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-30" value="default-maintenance-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="166" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-31" value="default-user-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="166" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-32" value="default-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="226" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-33" value="escalated-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="346" width="120" height="40" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
 </mxfile>
diff --git a/misc/architecture.drawio b/misc/architecture.drawio
index f53478c..42d8ff8 100644
--- a/misc/architecture.drawio
+++ b/misc/architecture.drawio
@@ -1,6 +1,6 @@
-<mxfile host="Electron" modified="2023-10-09T07:59:25.474Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="6dOe4E5f3TKTd8nRObHK" version="21.1.2" type="device" pages="5">
+<mxfile host="Electron" modified="2023-10-09T13:32:32.067Z" 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="vP05TgT4KgZ8CKf7K28_" version="21.1.2" type="device" pages="6">
   <diagram id="mvBsv1rP8O80Qe3yGnn_" name="docker-compose">
-    <mxGraphModel dx="1509" dy="865" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
+    <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" />
@@ -37,7 +37,7 @@
             </Array>
           </mxGeometry>
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-19" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-43">
+        <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>
@@ -57,7 +57,7 @@
             </Array>
           </mxGeometry>
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-18" value="HTTP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-45">
+        <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>
@@ -82,7 +82,7 @@
             <mxPoint x="689.9999999999998" y="586" as="sourcePoint" />
           </mxGeometry>
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-16" value="JDBC" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=9;" vertex="1" connectable="0" parent="V1Wl26Vbpgnno5Lb-wtg-48">
+        <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>
@@ -90,7 +90,7 @@
         <mxCell id="hBEam5F8n4ZBPeoiEcWH-1" value="Metadata Service" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
           <mxGeometry x="560" y="566" width="130" height="40" as="geometry" />
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-15" value="Spring AMQP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=arc;dashed=1;strokeWidth=1;dashPattern=1 1;fontSize=9;" edge="1" parent="1" source="AQz-Vj6r_5Wor37pQVs6-1" target="YJRAzF6yD4Hh-bAvO1PB-1">
+        <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" />
@@ -183,34 +183,34 @@
         <mxCell id="A18w2Y2_AVEIFkgUy5Lv-39" value="upload-service-data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacing=-1;" parent="1" vertex="1">
           <mxGeometry x="711" y="312" width="108" height="20" as="geometry" />
         </mxCell>
-        <mxCell id="YJRAzF6yD4Hh-bAvO1PB-2" value="JDBC" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=9;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-1" target="V1Wl26Vbpgnno5Lb-wtg-34">
+        <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;" vertex="1" parent="1">
+        <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;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-26">
+        <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;" vertex="1" connectable="0" parent="YJRAzF6yD4Hh-bAvO1PB-13">
+        <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;" edge="1" parent="1" source="YJRAzF6yD4Hh-bAvO1PB-12" target="V1Wl26Vbpgnno5Lb-wtg-32">
+        <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;" vertex="1" parent="1">
+        <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">
@@ -2292,4 +2292,115 @@
       </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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-3" target="Gou0UibUgwIY_gQY8MW6-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-2" value="include" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="Gou0UibUgwIY_gQY8MW6-1">
+          <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;" vertex="1" parent="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;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-6" target="Gou0UibUgwIY_gQY8MW6-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-6" value="Researchers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-8" target="Gou0UibUgwIY_gQY8MW6-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-8" value="Developers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-10" target="Gou0UibUgwIY_gQY8MW6-16">
+          <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;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-12" target="Gou0UibUgwIY_gQY8MW6-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-12" value="default-researcher-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-14" target="Gou0UibUgwIY_gQY8MW6-3">
+          <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;" vertex="1" parent="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;" edge="1" parent="1" source="Gou0UibUgwIY_gQY8MW6-16" target="Gou0UibUgwIY_gQY8MW6-27">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-16" value="default-data-steward-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="74" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-17" value="default-user-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="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;" vertex="1" parent="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;" vertex="1" parent="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;" vertex="1" parent="1">
+          <mxGeometry x="12.5" y="166" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-21" value="default-table-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="12.5" y="286" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-22" value="default-query-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="12.5" y="346" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-23" value="escalated-container-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="226" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-24" value="escalated-database-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="286" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-25" value="escalated-query-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="406" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-26" value="escalated-table-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="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;" vertex="1" parent="1">
+          <mxGeometry x="441.5" y="156" width="141" height="424" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-28" value="escalated-identifier-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="286" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-29" value="default-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="12" y="530" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-30" value="default-maintenance-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="234" y="166" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-31" value="default-user-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="166" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-32" value="default-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="226" width="120" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Gou0UibUgwIY_gQY8MW6-33" value="escalated-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="452" y="346" width="120" height="40" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
 </mxfile>
diff --git a/misc/diagrams.drawio b/misc/diagrams.drawio
deleted file mode 100644
index fbd74ff..0000000
--- a/misc/diagrams.drawio
+++ /dev/null
@@ -1,113 +0,0 @@
-<mxfile host="Electron" modified="2023-06-01T05:20:18.779Z" 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="dIGRWifoC4RPeXPQbuQo" version="21.1.2" type="device">
-  <diagram id="knNdf-EWXshwNRS6GdW0" name="groups-roles">
-    <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="585" pageHeight="581" math="0" shadow="0">
-      <root>
-        <mxCell id="0" />
-        <mxCell id="1" parent="0" />
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-27" 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="p7gkXpudOZQYVS-MGniQ-26" target="p7gkXpudOZQYVS-MGniQ-22" edge="1">
-          <mxGeometry relative="1" as="geometry" />
-        </mxCell>
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-28" value="include" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="p7gkXpudOZQYVS-MGniQ-27" 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="p7gkXpudOZQYVS-MGniQ-26" 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="p7gkXpudOZQYVS-MGniQ-22" 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="p7gkXpudOZQYVS-MGniQ-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="p7gkXpudOZQYVS-MGniQ-1" target="p7gkXpudOZQYVS-MGniQ-4" edge="1">
-          <mxGeometry relative="1" as="geometry" />
-        </mxCell>
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-1" 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="p7gkXpudOZQYVS-MGniQ-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="p7gkXpudOZQYVS-MGniQ-2" target="p7gkXpudOZQYVS-MGniQ-5" edge="1">
-          <mxGeometry relative="1" as="geometry" />
-        </mxCell>
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-2" 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="p7gkXpudOZQYVS-MGniQ-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="p7gkXpudOZQYVS-MGniQ-3" target="p7gkXpudOZQYVS-MGniQ-6" edge="1">
-          <mxGeometry relative="1" as="geometry" />
-        </mxCell>
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-3" 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="p7gkXpudOZQYVS-MGniQ-23" 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="p7gkXpudOZQYVS-MGniQ-4" target="p7gkXpudOZQYVS-MGniQ-22" edge="1">
-          <mxGeometry relative="1" as="geometry" />
-        </mxCell>
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-4" 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="p7gkXpudOZQYVS-MGniQ-25" 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="p7gkXpudOZQYVS-MGniQ-5" target="p7gkXpudOZQYVS-MGniQ-26" edge="1">
-          <mxGeometry relative="1" as="geometry">
-            <mxPoint x="294.17499999999995" y="155.27999999999997" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-5" 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="p7gkXpudOZQYVS-MGniQ-32" 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="p7gkXpudOZQYVS-MGniQ-6" target="p7gkXpudOZQYVS-MGniQ-30" edge="1">
-          <mxGeometry relative="1" as="geometry" />
-        </mxCell>
-        <mxCell id="p7gkXpudOZQYVS-MGniQ-6" 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="p7gkXpudOZQYVS-MGniQ-11" value="default-user-&lt;br&gt;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="p7gkXpudOZQYVS-MGniQ-12" 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="p7gkXpudOZQYVS-MGniQ-13" 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="p7gkXpudOZQYVS-MGniQ-14" 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="p7gkXpudOZQYVS-MGniQ-15" value="default-table-&lt;br&gt;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="p7gkXpudOZQYVS-MGniQ-17" value="default-query-&lt;br&gt;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="p7gkXpudOZQYVS-MGniQ-18" value="escalated-container-&lt;br&gt;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="p7gkXpudOZQYVS-MGniQ-19" value="escalated-database-&lt;br&gt;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="p7gkXpudOZQYVS-MGniQ-20" value="escalated-query-&lt;br&gt;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="p7gkXpudOZQYVS-MGniQ-21" value="escalated-table-&lt;br&gt;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="p7gkXpudOZQYVS-MGniQ-30" 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="p7gkXpudOZQYVS-MGniQ-31" value="escalated-identifier-&lt;br&gt;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="eG7ZnV9Yg5ZkV4eK6rEn-1" value="default-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="12" y="530" width="120" height="40" as="geometry" />
-        </mxCell>
-        <mxCell id="eG7ZnV9Yg5ZkV4eK6rEn-3" value="default-maintenance-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="234" y="166" width="120" height="40" as="geometry" />
-        </mxCell>
-        <mxCell id="eG7ZnV9Yg5ZkV4eK6rEn-5" value="default-user-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="452" y="166" width="120" height="40" as="geometry" />
-        </mxCell>
-        <mxCell id="eG7ZnV9Yg5ZkV4eK6rEn-6" value="default-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="452" y="226" width="120" height="40" as="geometry" />
-        </mxCell>
-        <mxCell id="eG7ZnV9Yg5ZkV4eK6rEn-7" value="escalated-semantics-&lt;br&gt;handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="452" y="346" width="120" height="40" as="geometry" />
-        </mxCell>
-      </root>
-    </mxGraphModel>
-  </diagram>
-</mxfile>
diff --git a/misc/diagrams2.drawio b/misc/diagrams2.drawio
deleted file mode 100644
index e1ca9dd..0000000
--- a/misc/diagrams2.drawio
+++ /dev/null
@@ -1 +0,0 @@
-<mxfile host="Electron" modified="2022-05-31T08:03:35.711Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/18.1.3 Chrome/100.0.4896.143 Electron/18.2.3 Safari/537.36" etag="Wg83Ifo4t0UHcwDkX3rl" version="18.1.3" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Show Query">7Vxbm6I4EP01PvZ83AR9HPs2vdM7X/faM7Ozb1GiZhuJC7HV/fUbNOGWIKBc1kvPw5AQC6g6qTpVCXT02/n60QOL2e/Yhk5HU+x1R7/raJqm6Cr9L+jZ7HpUTTN2PVMP2awv6hiifyHrVFjvEtnQTwwkGDsELZKdY+y6cEwSfcDz8Co5bIKd5FUXYAqFjuEYOGLvT2STGX8MRYlOfIFoOuOXNvmZOeCjWYc/AzZexbr0+45+62FMdkfz9S10AvVxxfx82vx0nt/Nx99e/X/A98HXt28/bnbCHsr8JHwGD7qkWtHaTvQHcJZMYexZyYZr0MNL14aBEKWjD2Zk7tBDlR7+DQnZMIuDJcG0C3tkhqfYBc4zxgs2boJdwoapQRu69ufAsrQ9doDvo/Gu8wE5XDRtsV/0aMsnHn4PzRecD00R3JIDRtAZgPH7dHurt9jBHj3lYhcGomyKB/Y00e3dR72DgtplVvDx0hvDPeN0hnLgTeE+eeZuXHB/Magy2z1CPIfE29ABHnQAQR9JPAM2LabhuMjy9IAZvwQQdAEIPxBc0Z7XJdzeBnI7AepNhz7TYOTRo2lw9PD56Q964oWqFjh7sBNYbTVDBA4XYKu+FXU4STzFcUIVMZgG4GA2zoHAhEKH272j6ZNu8I+JjPUr279QnOxMOTB8QI/A9V7zrRJeZ/ezWczhGEpNFjUEi/6ijvjiZje1o7f5MxD2qcubv5jsbeNunWhtWKtiryCf7Uk3sULe03j8qi+e39c3j69/DcafRzeKHFYMdDfBU20FsQB9wzFW2G0w2S8Y0QeNhuDJxKc3logofAy7uKkkLh3GfC5i92zsRyk0h49yOMC7AsC/YQHf+QA58RlQD05zo5dVMHpx3lgbKqtCkymg6Q4QMAI+DH7pBzpejpzAlg+iE53h+Wjp54e4ZNCiuHkAc+QEOvoCnQ9I0BhIAiFw0NQN0ERNDD05YOglkTulLTNqvW0hSgNBDWFtnbQrM3OfNeNBT5EEvV5dQc8SrPiMgU17nmz65GiCqP7aIim12SDlh1VVYoW6qEd2zLoUK6SjX2taVwWtXyDbWyMSI3u09YvfBj2OqF7QOIzp5RI2LYPpxUNvGaZ3aMjMIGndFPx2t1UFSdunjRgov7y9vYh55B/QX2A3CLbX2CqPrTqvxTURXKW2FAn3RWaU5eydy5D/h5mcoaaukuEkcuV0U3KqywilABU5POMdrIh1ZpQjVG97lEPkHIZiCIq+JuHlKIQq5xAtZNfCDFfTUckq5iqqmuJcNWc/xzOSO739OS8uFVw5wLET3ig44atNBox+w5NXXJO4ZgOHZQNdo+1sQBXTgXBV/eoKzikdMNNXOTAdMM1m0wFVzAd0RRUQemWn5RDaPuns9g4EZJpNCYJqRqR2fG4kxZcEhzGUhkvgYWO7AB6th2csgRdAaTlo5ZZA1X5BwqTptRAm+rhgExuwCIDgZ/OpcG8Yw5PFPFwEm53Eat1aX2RRyIZRCqRQ+rR0yJ5QfB65UNdsOxfiF4uZYjjDqzM2RTqUt6d6sRBw5Z51cc8GY31qjltKNdzTMhqO9GKV5A75C2cbXuLL4MqTO8HenKoVu2fnJixZltqsmxCz1GvJoWC81Y1U7bH1FUhNzOiuNYfzqDno/VRt8tA1SEFQw4uQmrgH7Vp1OMWqg5F2fwWXukRB/RxBNSNSF5lxI1WHpqsHWq8glo5cRVEzsv48e5atLnS7LVQXuBIvrrogzNLWV1r146PGWVcLtROrFqaZSTPzWawWnnmJimtbz+CBTcznb4u1NyRfIcFv3cGN8jZ07BnfP9nwdGY7ovlxbDJn7oiO3pmryQUIm6MP2Ukh1bFZS8QPM1rOQvUURqrbOJH9VJdQxBCmd1FoFC5iNPmKktSWYnp4wSWMAx3BaZQwVKuYl8gVVOObtVKIiinABe/qrQyi7Vcwioat3AqGIKhmQIoc9p7yla0Xp4bVlHsKCq81Bpv19Ynsr0xkfZeiriAo2K/JlxWlFpXsHoyviqWJzQ/koxFyENmc8vvX9bMb6VuojdIbVeQ3w/tn0WbX6HHse6a9PCbUU3nU5uhoL/QUfe80N/QIgmoOPZLdVi/fB89Pt3vCzUnitcyndEqWBfhL2SVKEEfOnnjtcG/8yZ9m/bxpZlk9s9JpxkWnlhnC9hEpSZj+HpuS6AUZYOkaqSqf7pn3lRpvWNXWVKXgkWzuyfEGebwkwRQTAaQGzqD0U0mybpq8J8EbRNrQ/1TBB+jkOtXydXq+5VLug6uslebvttZEHyi3TT3rqOmq6sEL7MJGpfoW2OX6EQsmJ+UPdIk/0Ar5g3Rhqjp3INIuQaUBjVlkaoV9URaM+HClIm2ldWWImupyhSZ0ZXzS+7E/y6pLdwW+BETFoIUP86FYCHV7TJhZB2sbYOK7qG3N2VLa43tDCgZsCjrjeA3KtyeIqxZNbk+ofm3Sp2GCpCJyuZCbn010pUG98tCapsXVfaaBNqNPXu+GR58O1+//Aw==</diagram></mxfile>
\ No newline at end of file
diff --git a/misc/env.json b/misc/env.json
deleted file mode 100644
index 4184042..0000000
--- a/misc/env.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "language_tabs": [
-    {
-      "python": "Python"
-    },{
-      "java": "Java"
-    }
-  ]
-}
diff --git a/mkdocs.yml b/mkdocs.yml
index 0b64037..02a6690 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -18,9 +18,12 @@ nav:
       - Authentication Service: system-services-authentication.md
       - Broker Service: system-services-broker.md
       - Gateway Service: system-services-gateway.md
+      - Data Service: system-services-data.md
       - Metadata Service: system-services-metadata.md
+      - Mirror Service: system-services-mirror.md
       - Upload Service: system-services-upload.md
     - Databases:
+      - Auth Database: system-databases-auth.md
       - Data Database: system-databases-data.md
       - Metadata Database: system-databases-metadata.md
       - Search Database: system-databases-search.md
-- 
GitLab