From ac5e307df8e6211f8dbf1a0add9d743b522f8f9a Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Sun, 7 May 2023 22:50:54 +0200
Subject: [PATCH] Improved images

- Analyse service severely less CVEs
- Semantics service too
- Removed discovery service
- Removed gateway service
- Use nginx as gateway servic- Removed discovery service
- Removed gateway service
- Use nginx as gateway servicee
---
 .env.unix.example                             |   2 +-
 dbrepo-analyse-service/Dockerfile             |   3 +-
 dbrepo-analyse-service/app.py                 |   7 -
 .../requirements.docker.txt                   |   8 -
 dbrepo-analyse-service/requirements.txt       |  54 ++-
 dbrepo-authentication-service/Dockerfile      |   4 +-
 .../docker-entrypoint.sh                      |   6 -
 .../service-register.sh                       |  86 -----
 dbrepo-broker-service/Dockerfile              |   3 -
 dbrepo-broker-service/docker-entrypoint.sh    |   4 -
 dbrepo-broker-service/service-register.sh     |  86 -----
 .../src/main/resources/application-local.yml  |   7 +-
 .../src/main/resources/application.yml        |   7 +-
 dbrepo-database-service/Dockerfile            |   2 +-
 .../src/main/resources/application-local.yml  |   7 +-
 .../src/main/resources/application.yml        |   5 -
 dbrepo-discovery-service/.gitignore           |  36 --
 .../.mvn/wrapper/MavenWrapperDownloader.java  | 118 -------
 .../.mvn/wrapper/maven-wrapper.jar            | Bin 50710 -> 0 bytes
 .../.mvn/wrapper/maven-wrapper.properties     |   2 -
 dbrepo-discovery-service/Dockerfile           |  38 ---
 dbrepo-discovery-service/mvnw                 | 310 ------------------
 dbrepo-discovery-service/mvnw.cmd             | 182 ----------
 dbrepo-discovery-service/pom.xml              | 131 --------
 dbrepo-discovery-service/report/pom.xml       |  52 ---
 dbrepo-discovery-service/rest-service/pom.xml |  44 ---
 .../DbrepoDiscoveryServiceApplication.java    |  15 -
 .../java/at/tuwien/config/GatewayConfig.java  |  32 --
 .../java/at/tuwien/config/JacksonConfig.java  |  31 --
 .../java/at/tuwien/config/ReadyConfig.java    |  23 --
 .../src/main/resources/application-local.yml  |  54 ---
 .../src/main/resources/application.yml        |  48 ---
 .../src/main/resources/config.properties      |   0
 .../src/test/java/at/tuwien/BaseUnitTest.java |   9 -
 .../at/tuwien/MockServiceIntegrationTest.java |  37 ---
 .../src/test/resources/application.properties |  11 -
 .../src/test/resources/schema.sql             |  25 --
 dbrepo-discovery-service/service_ready        |   6 -
 dbrepo-discovery-service/services/pom.xml     |  16 -
 .../java/at/tuwien/service/MockService.java   |  12 -
 dbrepo-gateway-service/.gitignore             |  33 --
 .../.mvn/wrapper/MavenWrapperDownloader.java  | 118 -------
 .../.mvn/wrapper/maven-wrapper.jar            | Bin 50710 -> 0 bytes
 .../.mvn/wrapper/maven-wrapper.properties     |   2 -
 dbrepo-gateway-service/Dockerfile             |  47 +--
 dbrepo-gateway-service/README.md              |  18 -
 dbrepo-gateway-service/dbrepo.conf            | 271 +++++++++++++++
 dbrepo-gateway-service/mvnw                   | 310 ------------------
 dbrepo-gateway-service/mvnw.cmd               | 182 ----------
 dbrepo-gateway-service/pom.xml                | 149 ---------
 dbrepo-gateway-service/report/pom.xml         |  51 ---
 dbrepo-gateway-service/rest-service/pom.xml   |  38 ---
 dbrepo-gateway-service/rest-service/ready     |   0
 .../DbrepoGatewayServiceApplication.java      |  13 -
 .../java/at/tuwien/config/GatewayConfig.java  |  83 -----
 .../java/at/tuwien/config/JacksonConfig.java  |  31 --
 .../java/at/tuwien/config/ReadyConfig.java    |  25 --
 .../main/java/at/tuwien/config/WebConfig.java |  26 --
 .../src/main/resources/application-local.yml  |  42 ---
 .../src/main/resources/application.yml        |  40 ---
 .../src/main/resources/config.properties      |   0
 .../src/test/resources/application.properties |  11 -
 dbrepo-gateway-service/root.crt               |  20 --
 dbrepo-gateway-service/server.keystore        | Bin 45487 -> 0 bytes
 dbrepo-gateway-service/service_ready          |   6 -
 dbrepo-identifier-service/Dockerfile          |   2 +-
 .../src/main/resources/application-local.yml  |   7 +-
 .../src/main/resources/application.yml        |   5 -
 dbrepo-metadata-db/pom.xml                    |  19 +-
 dbrepo-metadata-service/Dockerfile            |   2 +-
 .../src/main/resources/application-local.yml  |   9 +-
 .../src/main/resources/application.yml        |   5 -
 dbrepo-proxy/Dockerfile                       |   4 -
 dbrepo-proxy/dbrepo.conf                      |  44 ---
 dbrepo-query-service/Dockerfile               |   2 +-
 .../src/main/resources/application-docker.yml |   0
 .../src/main/resources/application-local.yml  |   7 +-
 .../src/main/resources/application.yml        |   5 -
 dbrepo-semantics-service/Dockerfile           |  15 +-
 dbrepo-semantics-service/app.py               |   6 -
 dbrepo-semantics-service/requirements.txt     |  63 ++--
 .../src/main/resources/application-local.yml  |   7 +-
 .../src/main/resources/application.yml        |   7 +-
 dbrepo-ui/README.md                           |   2 +-
 dbrepo-user-service/Dockerfile                |   2 +-
 .../src/main/resources/application-local.yml  |   7 +-
 .../src/main/resources/application.yml        |   5 -
 docker-compose.dbrepo1.yml                    |   2 +-
 docker-compose.prod.yml                       |   2 +-
 docker-compose.yml                            |  78 ++---
 90 files changed, 420 insertions(+), 2926 deletions(-)
 delete mode 100644 dbrepo-analyse-service/requirements.docker.txt
 delete mode 100644 dbrepo-authentication-service/docker-entrypoint.sh
 delete mode 100755 dbrepo-authentication-service/service-register.sh
 delete mode 100755 dbrepo-broker-service/service-register.sh
 delete mode 100644 dbrepo-discovery-service/.gitignore
 delete mode 100644 dbrepo-discovery-service/.mvn/wrapper/MavenWrapperDownloader.java
 delete mode 100644 dbrepo-discovery-service/.mvn/wrapper/maven-wrapper.jar
 delete mode 100644 dbrepo-discovery-service/.mvn/wrapper/maven-wrapper.properties
 delete mode 100644 dbrepo-discovery-service/Dockerfile
 delete mode 100755 dbrepo-discovery-service/mvnw
 delete mode 100644 dbrepo-discovery-service/mvnw.cmd
 delete mode 100644 dbrepo-discovery-service/pom.xml
 delete mode 100644 dbrepo-discovery-service/report/pom.xml
 delete mode 100644 dbrepo-discovery-service/rest-service/pom.xml
 delete mode 100644 dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/DbrepoDiscoveryServiceApplication.java
 delete mode 100644 dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java
 delete mode 100644 dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java
 delete mode 100644 dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java
 delete mode 100644 dbrepo-discovery-service/rest-service/src/main/resources/application-local.yml
 delete mode 100644 dbrepo-discovery-service/rest-service/src/main/resources/application.yml
 delete mode 100644 dbrepo-discovery-service/rest-service/src/main/resources/config.properties
 delete mode 100644 dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
 delete mode 100644 dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/MockServiceIntegrationTest.java
 delete mode 100644 dbrepo-discovery-service/rest-service/src/test/resources/application.properties
 delete mode 100644 dbrepo-discovery-service/rest-service/src/test/resources/schema.sql
 delete mode 100644 dbrepo-discovery-service/service_ready
 delete mode 100644 dbrepo-discovery-service/services/pom.xml
 delete mode 100644 dbrepo-discovery-service/services/src/main/java/at/tuwien/service/MockService.java
 delete mode 100644 dbrepo-gateway-service/.gitignore
 delete mode 100644 dbrepo-gateway-service/.mvn/wrapper/MavenWrapperDownloader.java
 delete mode 100644 dbrepo-gateway-service/.mvn/wrapper/maven-wrapper.jar
 delete mode 100644 dbrepo-gateway-service/.mvn/wrapper/maven-wrapper.properties
 delete mode 100644 dbrepo-gateway-service/README.md
 create mode 100644 dbrepo-gateway-service/dbrepo.conf
 delete mode 100755 dbrepo-gateway-service/mvnw
 delete mode 100644 dbrepo-gateway-service/mvnw.cmd
 delete mode 100644 dbrepo-gateway-service/pom.xml
 delete mode 100644 dbrepo-gateway-service/report/pom.xml
 delete mode 100644 dbrepo-gateway-service/rest-service/pom.xml
 delete mode 100644 dbrepo-gateway-service/rest-service/ready
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/DbrepoGatewayServiceApplication.java
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/WebConfig.java
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/resources/application-local.yml
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/resources/application.yml
 delete mode 100644 dbrepo-gateway-service/rest-service/src/main/resources/config.properties
 delete mode 100644 dbrepo-gateway-service/rest-service/src/test/resources/application.properties
 delete mode 100644 dbrepo-gateway-service/root.crt
 delete mode 100644 dbrepo-gateway-service/server.keystore
 delete mode 100644 dbrepo-gateway-service/service_ready
 delete mode 100644 dbrepo-proxy/Dockerfile
 delete mode 100644 dbrepo-proxy/dbrepo.conf
 delete mode 100644 dbrepo-query-service/rest-service/src/main/resources/application-docker.yml

diff --git a/.env.unix.example b/.env.unix.example
index eec8b3c7bd..0c0ec3bc05 100644
--- a/.env.unix.example
+++ b/.env.unix.example
@@ -15,7 +15,7 @@ KEYCLOAK_ADMIN=fda
 KEYCLOAK_ADMIN_PASSWORD=fda
 BROKER_CONSUMERS=2
 WEBSITE=http://localhost
-GATEWAY_ENDPOINT=http://gateway-service:9095
+GATEWAY_ENDPOINT=http://gateway-service
 TOKEN_MAX=5
 LOG_LEVEL=trace # error, warning, info, debug, trace
 DOI_URL="https://doi.org"
diff --git a/dbrepo-analyse-service/Dockerfile b/dbrepo-analyse-service/Dockerfile
index 8f78283686..d442cb5f68 100644
--- a/dbrepo-analyse-service/Dockerfile
+++ b/dbrepo-analyse-service/Dockerfile
@@ -4,7 +4,7 @@ MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 RUN apk update && apk --no-cache add build-base gcc python3-dev libpq-dev libffi-dev py3-pandas \
     py3-sqlalchemy py3-requests py3-gevent py3-psycopg2
 
-COPY ./requirements.docker.txt ./requirements.txt
+COPY ./requirements.txt ./requirements.txt
 RUN pip install -r ./requirements.txt
 
 WORKDIR /app
@@ -14,7 +14,6 @@ ENV FLASK_RUN_HOST=0.0.0.0
 ENV PORT_APP=5000
 ENV FLASK_ENV=production
 ENV HOSTNAME=analyse-service
-ENV EUREKA_SERVER=http://discovery-service:9090/eureka/
 
 HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD ./service_ready
 
diff --git a/dbrepo-analyse-service/app.py b/dbrepo-analyse-service/app.py
index 38ea705005..2f4601669a 100644
--- a/dbrepo-analyse-service/app.py
+++ b/dbrepo-analyse-service/app.py
@@ -1,11 +1,9 @@
-import os
 from _csv import Error
 
 from flask import Flask, request, Response
 from determine_dt import determine_datatypes
 from determine_pk import determine_pk
 import logging
-import py_eureka_client.eureka_client as eureka_client
 from flasgger import Swagger
 from flasgger.utils import swag_from
 from flasgger import LazyJSONEncoder
@@ -148,11 +146,6 @@ def determinepk():
 
 
 rest_server_port = 5000
-eureka_client.init(eureka_server=os.getenv('EUREKA_SERVER', 'http://localhost:9090/eureka/'),
-                   app_name=os.getenv('HOSTNAME', 'analyse-service'),
-                   instance_ip=os.getenv('HOSTNAME', 'analyse-service'),
-                   instance_host=os.getenv('HOSTNAME', 'analyse-service'),
-                   instance_port=rest_server_port)
 
 if __name__ == '__main__':
     http_server = WSGIServer(('', 5000), app)
diff --git a/dbrepo-analyse-service/requirements.docker.txt b/dbrepo-analyse-service/requirements.docker.txt
deleted file mode 100644
index bf69c5bd68..0000000000
--- a/dbrepo-analyse-service/requirements.docker.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-messytables==0.15.2
-flask==2.3.2
-flasgger==0.9.5
-py-eureka-client==0.9.1
-docker==5.0.0
-prometheus_flask_exporter==0.21.0
-pytest==7.2.1
-coverage==7.1.0
\ No newline at end of file
diff --git a/dbrepo-analyse-service/requirements.txt b/dbrepo-analyse-service/requirements.txt
index 61e4283c6d..81e3eb1233 100644
--- a/dbrepo-analyse-service/requirements.txt
+++ b/dbrepo-analyse-service/requirements.txt
@@ -1,13 +1,49 @@
+attrs==23.1.0
+certifi==2023.5.7
+chardet==5.1.0
+charset-normalizer==2.0.12
+click==8.1.3
+coverage==7.1.0
+docker==5.0.0
+exceptiongroup==1.1.1
+flasgger==0.9.5
+Flask==2.2.2
+gevent==21.8.0
+greenlet==1.1.3.post0
+html5lib==1.1
+idna==3.4
+importlib-metadata==6.6.0
+iniconfig==2.0.0
+itsdangerous==2.1.2
+Jinja2==3.1.2
+json-table-schema==0.2.1
+jsonschema==4.17.3
+lxml==4.9.2
+MarkupSafe==2.1.2
 messytables==0.15.2
+mistune==2.0.5
+numpy==1.24.3
+packaging==23.1
 pandas==1.2.3
-flask==2.3.2
-flasgger==0.9.5
+pluggy==1.0.0
+prometheus-client==0.16.0
+prometheus-flask-exporter==0.21.0
 psycopg2-binary==2.8.6
-py-eureka-client==0.9.1
-docker==5.0.0
-sqlalchemy==1.4.15
-requests==2.26.0
-gevent==21.8.0
-prometheus_flask_exporter==0.21.0
+pyrsistent==0.19.3
 pytest==7.2.1
-coverage==7.1.0
\ No newline at end of file
+python-dateutil==2.8.2
+python-magic==0.4.27
+pytz==2023.3
+PyYAML==6.0
+requests==2.26.0
+six==1.16.0
+SQLAlchemy==1.4.15
+tomli==2.0.1
+urllib3==1.26.15
+webencodings==0.5.1
+websocket-client==1.5.1
+Werkzeug==2.3.3
+xlrd==2.0.1
+zipp==3.15.0
+zope.event==4.6
+zope.interface==6.0
diff --git a/dbrepo-authentication-service/Dockerfile b/dbrepo-authentication-service/Dockerfile
index 3344255912..579d599274 100644
--- a/dbrepo-authentication-service/Dockerfile
+++ b/dbrepo-authentication-service/Dockerfile
@@ -35,8 +35,6 @@ COPY ./dbrepo-realm.json /opt/keycloak/data/import/dbrepo-realm.json
 
 WORKDIR /app
 
-COPY ./service-register.sh ./service-register.sh
-COPY ./docker-entrypoint.sh ./docker-entrypoint.sh
 COPY ./healthcheck.sh ./healthcheck.sh
 
 ENV METADATA_USERNAME=root
@@ -54,4 +52,4 @@ ENV KEYCLOAK_ADMIN_PASSWORD=fda
 
 HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD ["bash", "/app/healthcheck.sh"]
 
-ENTRYPOINT ["bash", "/app/docker-entrypoint.sh"]
+ENTRYPOINT ["/opt/keycloak/bin/kc.sh", "start-dev", "--import-realm"]
diff --git a/dbrepo-authentication-service/docker-entrypoint.sh b/dbrepo-authentication-service/docker-entrypoint.sh
deleted file mode 100644
index d8e0fdcd85..0000000000
--- a/dbrepo-authentication-service/docker-entrypoint.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-/app/service-register.sh authentication-service 8443 8080
-(while sleep 60; do bash /app/service-register.sh authentication-service 8443 8080; done) &
-
-/opt/keycloak/bin/kc.sh start-dev --import-realm
diff --git a/dbrepo-authentication-service/service-register.sh b/dbrepo-authentication-service/service-register.sh
deleted file mode 100755
index 2d7f64be97..0000000000
--- a/dbrepo-authentication-service/service-register.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-
-# $1 is used as the host name.
-
-EUREKA_HOST="discovery-service"
-EUREKA_PORT="9090"
-EUREKA_URI="http://$EUREKA_HOST:$EUREKA_PORT"
-
-SERVICE_NAME="$1"
-SERVICE_PROTOCOL="http"
-SERVICE_HOST="$1"
-SECURE_PORT="${2:-9000}"
-SERVICE_PORT="${3:-9000}"
-
-SERVICE_URI="$SERVICE_PROTOCOL://$SERVICE_HOST:$SERVICE_PORT"
-HOME_URI="$SERVICE_URI/realms/dbrepo"
-HEALTH_URI="$SERVICE_URI/health"
-
-# This is the URL shown in the "status" field in the
-# instances section of the eureka dashboard.
-#
-# It's up to you to decide what the URL points to. Some
-# information or status endpoint might be good.
-STATUS_URI="$SERVICE_URI/health"
-
-# This is the name displayed to the right of the status
-# on the eureka dashbard. If the app (FAKE_SERVICE) is
-# registered with more than one hostname, they will be
-# displayed as a comma-separated list. This hostname
-# is part of the heartbeat message.
-#
-# If you'll have more than one host per service,
-# make sure they have different host names.
-HOST_NAME="${1:-fake01}"
-
-# Everyone of these parameters seem to be required. I don't know
-# anything about secureVipAddress and vipAddress.
-#
-# dataCenterInfo must have a name of "MyOwn" or "Amazon".
-#
-# status can be UP, DOWN, STARTING, OUT_OF_SERVICE, UNKNOWN.
-#   if the registration status is STARTING, then the service
-#   will never be evicted. Also, simply sending a Heartbeat
-#   does not change the status.
-#
-# The metadata fields can be any information you want associated
-# with a service. I recommend keeping it short.
-#
-
-cat <<EOF > /tmp/json.json
-{
-  "instance": {
-    "instanceId": "$SERVICE_NAME:$SERVICE_NAME:$SERVICE_PORT",
-    "hostName": "$HOST_NAME",
-    "app": "$SERVICE_NAME",
-    "ipAddr": "$SERVICE_HOST",
-    "status": "UP",
-    "dataCenterInfo": {
-      "@class": "com.netflix.appinfo.MyDataCenterInfo",
-      "name": "MyOwn"
-    },
-    "healthCheckUrl": "$HEALTH_URI",
-    "homePageUrl": "$HOME_URI",
-    "leaseInfo": {
-      "evictionDurationInSecs": 90
-    },
-    "metadata": {
-      "zone": "default",
-      "management.port": "8443"
-    },
-    "port": {
-      "\$": "$SERVICE_PORT",
-      "@enabled": "true"
-    },
-    "securePort": {
-      "\$": "$SECURE_PORT",
-      "@enabled": "true"
-    },
-    "vipAddress": "$SERVICE_HOST",
-    "secureVipAddress": "$SERVICE_HOST",
-    "statusPageUrl": "$STATUS_URI"
-  }
-}
-EOF
-
-curl --header "content-type: application/json" --data-binary @/tmp/json.json --silent $EUREKA_URI/eureka/apps/$SERVICE_NAME
diff --git a/dbrepo-broker-service/Dockerfile b/dbrepo-broker-service/Dockerfile
index 1b46c7899b..c6824832c3 100644
--- a/dbrepo-broker-service/Dockerfile
+++ b/dbrepo-broker-service/Dockerfile
@@ -16,12 +16,9 @@ COPY ./rabbitmq.conf /etc/rabbitmq/rabbitmq.conf
 WORKDIR /app
 
 COPY ./init.sh ./init.sh
-COPY ./service-register.sh ./service-register.sh
 COPY ./service_ready /usr/bin/service_ready
 COPY ./docker-entrypoint.sh ./docker-entrypoint.sh
 
-RUN chmod +x ./service-register.sh
-
 HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready
 
 ENTRYPOINT [ "bash", "/app/docker-entrypoint.sh" ]
\ No newline at end of file
diff --git a/dbrepo-broker-service/docker-entrypoint.sh b/dbrepo-broker-service/docker-entrypoint.sh
index 788bd0723f..b062814baf 100755
--- a/dbrepo-broker-service/docker-entrypoint.sh
+++ b/dbrepo-broker-service/docker-entrypoint.sh
@@ -6,8 +6,4 @@ bash ./init.sh
 # enable prometheus plugin
 (sleep 10; rabbitmq-plugins enable rabbitmq_prometheus rabbitmq_mqtt rabbitmq_auth_backend_oauth2 rabbitmq_auth_mechanism_ssl; touch /ready) &
 
-# register with discovery service
-/app/service-register.sh broker-service 15672 15672
-(while sleep 60; do /app/service-register.sh broker-service 15672 15672; done) &
-
 rabbitmq-server
\ No newline at end of file
diff --git a/dbrepo-broker-service/service-register.sh b/dbrepo-broker-service/service-register.sh
deleted file mode 100755
index 6cda6f4300..0000000000
--- a/dbrepo-broker-service/service-register.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-
-# $1 is used as the host name.
-
-EUREKA_HOST="discovery-service"
-EUREKA_PORT="9090"
-EUREKA_URI="http://$EUREKA_HOST:$EUREKA_PORT"
-
-SERVICE_NAME="$1"
-SERVICE_PROTOCOL="http"
-SERVICE_HOST="$1"
-SECURE_PORT="${2:-9000}"
-SERVICE_PORT="${3:-9000}"
-
-SERVICE_URI="$SERVICE_PROTOCOL://$SERVICE_HOST:$SERVICE_PORT"
-HOME_URI="$SERVICE_URI/realms/dbrepo"
-HEALTH_URI="$SERVICE_URI/health"
-
-# This is the URL shown in the "status" field in the
-# instances section of the eureka dashboard.
-#
-# It's up to you to decide what the URL points to. Some
-# information or status endpoint might be good.
-STATUS_URI="$SERVICE_URI/health"
-
-# This is the name displayed to the right of the status
-# on the eureka dashbard. If the app (FAKE_SERVICE) is
-# registered with more than one hostname, they will be
-# displayed as a comma-separated list. This hostname
-# is part of the heartbeat message.
-#
-# If you'll have more than one host per service,
-# make sure they have different host names.
-HOST_NAME="${1:-fake01}"
-
-# Everyone of these parameters seem to be required. I don't know
-# anything about secureVipAddress and vipAddress.
-#
-# dataCenterInfo must have a name of "MyOwn" or "Amazon".
-#
-# status can be UP, DOWN, STARTING, OUT_OF_SERVICE, UNKNOWN.
-#   if the registration status is STARTING, then the service
-#   will never be evicted. Also, simply sending a Heartbeat
-#   does not change the status.
-#
-# The metadata fields can be any information you want associated
-# with a service. I recommend keeping it short.
-#
-
-cat <<EOF > /tmp/json.json
-{
-  "instance": {
-    "instanceId": "$SERVICE_NAME:$SERVICE_NAME:$SERVICE_PORT",
-    "hostName": "$HOST_NAME",
-    "app": "$SERVICE_NAME",
-    "ipAddr": "$SERVICE_HOST",
-    "status": "UP",
-    "dataCenterInfo": {
-      "@class": "com.netflix.appinfo.MyDataCenterInfo",
-      "name": "MyOwn"
-    },
-    "healthCheckUrl": "$HEALTH_URI",
-    "homePageUrl": "$HOME_URI",
-    "leaseInfo": {
-      "evictionDurationInSecs": 90
-    },
-    "metadata": {
-      "zone": "default",
-      "management.port": "15672"
-    },
-    "port": {
-      "\$": "$SERVICE_PORT",
-      "@enabled": "true"
-    },
-    "securePort": {
-      "\$": "$SECURE_PORT",
-      "@enabled": "false"
-    },
-    "vipAddress": "$SERVICE_HOST",
-    "secureVipAddress": "$SERVICE_HOST",
-    "statusPageUrl": "$STATUS_URI"
-  }
-}
-EOF
-
-curl --header "content-type: application/json" --data-binary @/tmp/json.json --silent $EUREKA_URI/eureka/apps/$SERVICE_NAME
diff --git a/dbrepo-container-service/rest-service/src/main/resources/application-local.yml b/dbrepo-container-service/rest-service/src/main/resources/application-local.yml
index ca57158d4d..5ffa215283 100644
--- a/dbrepo-container-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-container-service/rest-service/src/main/resources/application-local.yml
@@ -36,11 +36,6 @@ logging:
     root: warn
     at.tuwien.: trace
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: container-service
-    non-secure-port: 9091
-  client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   network: userdb
   mount.path: /tmp
@@ -50,4 +45,4 @@ fda:
     public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB
   client_secret: client-secret
   client_id: dbrepo-client
-  gateway.endpoint: http://localhost:9095
\ No newline at end of file
+  gateway.endpoint: http://localhost
\ No newline at end of file
diff --git a/dbrepo-container-service/rest-service/src/main/resources/application.yml b/dbrepo-container-service/rest-service/src/main/resources/application.yml
index 4d1061d164..d0b2927e65 100644
--- a/dbrepo-container-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-container-service/rest-service/src/main/resources/application.yml
@@ -36,11 +36,6 @@ logging:
     root: warn
     at.tuwien.: "${LOG_LEVEL}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: container-service
-    non-secure-port: 9091
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
   network: "${USER_NETWORK}"
   mount.path: "${SHARED_FILESYSTEM}"
@@ -50,4 +45,4 @@ fda:
     public_key: "${JWT_PUBKEY}"
   client_secret: "${DBREPO_CLIENT_SECRET}"
   client_id: "${CLIENT_ID}"
-  gateway.endpoint: http://gateway-service:9095
\ No newline at end of file
+  gateway.endpoint: http://gateway-service
\ No newline at end of file
diff --git a/dbrepo-database-service/Dockerfile b/dbrepo-database-service/Dockerfile
index b181da3570..a2d4257a25 100644
--- a/dbrepo-database-service/Dockerfile
+++ b/dbrepo-database-service/Dockerfile
@@ -29,7 +29,7 @@ ENV BROKER_PASSWORD=fda
 ENV SEARCH_ENDPOINT=search-service
 ENV SEARCH_USERNAME=elastic
 ENV SEARCH_PASSWORD=elastic
-ENV GATEWAY_ENDPOINT=http://gateway-service:9095
+ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV LOG_LEVEL=debug
 ENV DBREPO_CLIENT_SECRET=client-secret
 ENV CLIENT_ID=dbrepo-client
diff --git a/dbrepo-database-service/rest-service/src/main/resources/application-local.yml b/dbrepo-database-service/rest-service/src/main/resources/application-local.yml
index c6bb7a1caa..0fdd60eace 100644
--- a/dbrepo-database-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-database-service/rest-service/src/main/resources/application-local.yml
@@ -35,11 +35,6 @@ logging:
     root: warn
     at.tuwien.: info
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: database-service
-    non-secure-port: 9092
-  client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   elastic:
     endpoint: localhost:9200
@@ -51,4 +46,4 @@ fda:
     public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB
   client_secret: client-secret
   client_id: dbrepo-client
-  gateway.endpoint: http://localhost:9095
\ No newline at end of file
+  gateway.endpoint: http://localhost
\ No newline at end of file
diff --git a/dbrepo-database-service/rest-service/src/main/resources/application.yml b/dbrepo-database-service/rest-service/src/main/resources/application.yml
index 434d09b0be..88ffaa9d7f 100644
--- a/dbrepo-database-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-database-service/rest-service/src/main/resources/application.yml
@@ -35,11 +35,6 @@ logging:
     root: warn
     at.tuwien.: "${LOG_LEVEL}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: database-service
-    non-secure-port: 9092
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
   elastic:
     endpoint: search-service:9200
diff --git a/dbrepo-discovery-service/.gitignore b/dbrepo-discovery-service/.gitignore
deleted file mode 100644
index b60573d098..0000000000
--- a/dbrepo-discovery-service/.gitignore
+++ /dev/null
@@ -1,36 +0,0 @@
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-## Generated
-rest-service/ready
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/
diff --git a/dbrepo-discovery-service/.mvn/wrapper/MavenWrapperDownloader.java b/dbrepo-discovery-service/.mvn/wrapper/MavenWrapperDownloader.java
deleted file mode 100644
index a45eb6ba26..0000000000
--- a/dbrepo-discovery-service/.mvn/wrapper/MavenWrapperDownloader.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2007-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.net.*;
-import java.io.*;
-import java.nio.channels.*;
-import java.util.Properties;
-
-public class MavenWrapperDownloader {
-
-    private static final String WRAPPER_VERSION = "0.5.6";
-    /**
-     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
-     */
-    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
-            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
-
-    /**
-     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
-     * use instead of the default one.
-     */
-    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
-            ".mvn/wrapper/maven-wrapper.properties";
-
-    /**
-     * Path where the maven-wrapper.jar will be saved to.
-     */
-    private static final String MAVEN_WRAPPER_JAR_PATH =
-            ".mvn/wrapper/maven-wrapper.jar";
-
-    /**
-     * Name of the property which should be used to override the default download url for the wrapper.
-     */
-    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
-
-    public static void main(String args[]) {
-        System.out.println("- Downloader started");
-        File baseDirectory = new File(args[0]);
-        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
-
-        // If the maven-wrapper.properties exists, read it and check if it contains a custom
-        // wrapperUrl parameter.
-        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
-        String url = DEFAULT_DOWNLOAD_URL;
-        if (mavenWrapperPropertyFile.exists()) {
-            FileInputStream mavenWrapperPropertyFileInputStream = null;
-            try {
-                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
-                Properties mavenWrapperProperties = new Properties();
-                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
-                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
-            } catch (IOException e) {
-                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
-            } finally {
-                try {
-                    if (mavenWrapperPropertyFileInputStream != null) {
-                        mavenWrapperPropertyFileInputStream.close();
-                    }
-                } catch (IOException e) {
-                    // Ignore ...
-                }
-            }
-        }
-        System.out.println("- Downloading from: " + url);
-
-        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
-        if (!outputFile.getParentFile().exists()) {
-            if (!outputFile.getParentFile().mkdirs()) {
-                System.out.println(
-                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
-            }
-        }
-        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
-        try {
-            downloadFileFromURL(url, outputFile);
-            System.out.println("Done");
-            System.exit(0);
-        } catch (Throwable e) {
-            System.out.println("- Error downloading");
-            e.printStackTrace();
-            System.exit(1);
-        }
-    }
-
-    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
-        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
-            String username = System.getenv("MVNW_USERNAME");
-            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
-            Authenticator.setDefault(new Authenticator() {
-                @Override
-                protected PasswordAuthentication getPasswordAuthentication() {
-                    return new PasswordAuthentication(username, password);
-                }
-            });
-        }
-        URL website = new URL(urlString);
-        ReadableByteChannel rbc;
-        rbc = Channels.newChannel(website.openStream());
-        FileOutputStream fos = new FileOutputStream(destination);
-        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
-        fos.close();
-        rbc.close();
-    }
-
-}
diff --git a/dbrepo-discovery-service/.mvn/wrapper/maven-wrapper.jar b/dbrepo-discovery-service/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100644
index 2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 50710
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

diff --git a/dbrepo-discovery-service/.mvn/wrapper/maven-wrapper.properties b/dbrepo-discovery-service/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 642d572ce9..0000000000
--- a/dbrepo-discovery-service/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/dbrepo-discovery-service/Dockerfile b/dbrepo-discovery-service/Dockerfile
deleted file mode 100644
index b216c09e09..0000000000
--- a/dbrepo-discovery-service/Dockerfile
+++ /dev/null
@@ -1,38 +0,0 @@
-###### FIRST STAGE ######
-FROM dbrepo-metadata-db:latest as dependency
-MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
-
-###### SECOND STAGE ######
-FROM maven:slim as build
-
-COPY ./pom.xml ./
-
-RUN mvn -fn -B dependency:go-offline > /dev/null
-
-COPY --from=dependency /root/.m2/repository/at/tuwien /root/.m2/repository/at/tuwien
-
-COPY ./rest-service ./rest-service
-COPY ./services ./services
-COPY ./report ./report
-
-# Make sure it compiles
-RUN mvn -q clean package -DskipTests
-
-###### THIRD STAGE ######
-FROM openjdk:11-jre-slim as runtime
-
-ENV METADATA_DB=fda
-ENV METADATA_USERNAME=postgres
-ENV METADATA_PASSWORD=postgres
-ENV LOG_LEVEL=debug
-
-COPY ./service_ready /usr/bin
-RUN chmod +x /usr/bin/service_ready
-
-HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready
-
-COPY --from=build ./rest-service/target/rest-service-*.jar ./rest-service.jar
-
-EXPOSE 9090
-
-ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./rest-service.jar"]
diff --git a/dbrepo-discovery-service/mvnw b/dbrepo-discovery-service/mvnw
deleted file mode 100755
index dea2123dcc..0000000000
--- a/dbrepo-discovery-service/mvnw
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#    https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Maven Start Up Batch script
-#
-# Required ENV vars:
-# ------------------
-#   JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-#   M2_HOME - location of maven2's installed home dir
-#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
-#     e.g. to debug Maven itself, use
-#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
-  if [ -f /etc/mavenrc ] ; then
-    . /etc/mavenrc
-  fi
-
-  if [ -f "$HOME/.mavenrc" ] ; then
-    . "$HOME/.mavenrc"
-  fi
-
-fi
-
-# OS specific support.  $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "`uname`" in
-  CYGWIN*) cygwin=true ;;
-  MINGW*) mingw=true;;
-  Darwin*) darwin=true
-    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
-    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
-    if [ -z "$JAVA_HOME" ]; then
-      if [ -x "/usr/libexec/java_home" ]; then
-        export JAVA_HOME="`/usr/libexec/java_home`"
-      else
-        export JAVA_HOME="/Library/Java/Home"
-      fi
-    fi
-    ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
-  if [ -r /etc/gentoo-release ] ; then
-    JAVA_HOME=`java-at.tuwien.gateway.config --jre-home`
-  fi
-fi
-
-if [ -z "$M2_HOME" ] ; then
-  ## resolve links - $0 may be a link to maven's home
-  PRG="$0"
-
-  # need this for relative symlinks
-  while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-      PRG="$link"
-    else
-      PRG="`dirname "$PRG"`/$link"
-    fi
-  done
-
-  saveddir=`pwd`
-
-  M2_HOME=`dirname "$PRG"`/..
-
-  # make it fully qualified
-  M2_HOME=`cd "$M2_HOME" && pwd`
-
-  cd "$saveddir"
-  # echo Using m2 at $M2_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --unix "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# For Mingw, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME="`(cd "$M2_HOME"; pwd)`"
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
-fi
-
-if [ -z "$JAVA_HOME" ]; then
-  javaExecutable="`which javac`"
-  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
-    # readlink(1) is not available as standard on Solaris 10.
-    readLink=`which readlink`
-    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
-      if $darwin ; then
-        javaHome="`dirname \"$javaExecutable\"`"
-        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
-      else
-        javaExecutable="`readlink -f \"$javaExecutable\"`"
-      fi
-      javaHome="`dirname \"$javaExecutable\"`"
-      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
-      JAVA_HOME="$javaHome"
-      export JAVA_HOME
-    fi
-  fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
-  if [ -n "$JAVA_HOME"  ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-      # IBM's JDK on AIX uses strange locations for the executables
-      JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-      JAVACMD="$JAVA_HOME/bin/java"
-    fi
-  else
-    JAVACMD="`which java`"
-  fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
-  echo "Error: JAVA_HOME is not defined correctly." >&2
-  echo "  We cannot execute $JAVACMD" >&2
-  exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
-  echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
-
-  if [ -z "$1" ]
-  then
-    echo "Path not specified to find_maven_basedir"
-    return 1
-  fi
-
-  basedir="$1"
-  wdir="$1"
-  while [ "$wdir" != '/' ] ; do
-    if [ -d "$wdir"/.mvn ] ; then
-      basedir=$wdir
-      break
-    fi
-    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
-    if [ -d "${wdir}" ]; then
-      wdir=`cd "$wdir/.."; pwd`
-    fi
-    # end of workaround
-  done
-  echo "${basedir}"
-}
-
-# concatenates all lines of a file
-concat_lines() {
-  if [ -f "$1" ]; then
-    echo "$(tr -s '\n' ' ' < "$1")"
-  fi
-}
-
-BASE_DIR=`find_maven_basedir "$(pwd)"`
-if [ -z "$BASE_DIR" ]; then
-  exit 1;
-fi
-
-##########################################################################################
-# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-# This allows using the maven wrapper in projects that prohibit checking in binary data.
-##########################################################################################
-if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
-    if [ "$MVNW_VERBOSE" = true ]; then
-      echo "Found .mvn/wrapper/maven-wrapper.jar"
-    fi
-else
-    if [ "$MVNW_VERBOSE" = true ]; then
-      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
-    fi
-    if [ -n "$MVNW_REPOURL" ]; then
-      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-    else
-      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-    fi
-    while IFS="=" read key value; do
-      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
-      esac
-    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
-    if [ "$MVNW_VERBOSE" = true ]; then
-      echo "Downloading from: $jarUrl"
-    fi
-    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
-    if $cygwin; then
-      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
-    fi
-
-    if command -v wget > /dev/null; then
-        if [ "$MVNW_VERBOSE" = true ]; then
-          echo "Found wget ... using wget"
-        fi
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            wget "$jarUrl" -O "$wrapperJarPath"
-        else
-            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
-        fi
-    elif command -v curl > /dev/null; then
-        if [ "$MVNW_VERBOSE" = true ]; then
-          echo "Found curl ... using curl"
-        fi
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            curl -o "$wrapperJarPath" "$jarUrl" -f
-        else
-            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
-        fi
-
-    else
-        if [ "$MVNW_VERBOSE" = true ]; then
-          echo "Falling back to using Java to download"
-        fi
-        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
-        # For Cygwin, switch paths to Windows format before running javac
-        if $cygwin; then
-          javaClass=`cygpath --path --windows "$javaClass"`
-        fi
-        if [ -e "$javaClass" ]; then
-            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
-                if [ "$MVNW_VERBOSE" = true ]; then
-                  echo " - Compiling MavenWrapperDownloader.java ..."
-                fi
-                # Compiling the Java class
-                ("$JAVA_HOME/bin/javac" "$javaClass")
-            fi
-            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
-                # Running the downloader
-                if [ "$MVNW_VERBOSE" = true ]; then
-                  echo " - Running MavenWrapperDownloader.java ..."
-                fi
-                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
-            fi
-        fi
-    fi
-fi
-##########################################################################################
-# End of extension
-##########################################################################################
-
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
-if [ "$MVNW_VERBOSE" = true ]; then
-  echo $MAVEN_PROJECTBASEDIR
-fi
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --path --windows "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
-    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
-fi
-
-# Provide a "standardized" way to retrieve the CLI args that will
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-exec "$JAVACMD" \
-  $MAVEN_OPTS \
-  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
-  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
-  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/dbrepo-discovery-service/mvnw.cmd b/dbrepo-discovery-service/mvnw.cmd
deleted file mode 100644
index 4a6729c8ab..0000000000
--- a/dbrepo-discovery-service/mvnw.cmd
+++ /dev/null
@@ -1,182 +0,0 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements.  See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership.  The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License.  You may obtain a copy of the License at
-@REM
-@REM    https://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied.  See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM     e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM set title of command window
-title %0
-@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
-if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.at.tuwien.gateway.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.at.tuwien.gateway.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-
-FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
-    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
-)
-
-@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
-if exist %WRAPPER_JAR% (
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Found %WRAPPER_JAR%
-    )
-) else (
-    if not "%MVNW_REPOURL%" == "" (
-        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-    )
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Couldn't find %WRAPPER_JAR%, downloading it ...
-        echo Downloading from: %DOWNLOAD_URL%
-    )
-
-    powershell -Command "&{"^
-		"$webclient = new-object System.Net.WebClient;"^
-		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
-		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
-		"}"^
-		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
-		"}"
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Finished downloading %WRAPPER_JAR%
-    )
-)
-@REM End of extension
-
-@REM Provide a "standardized" way to retrieve the CLI args that will
-@REM work with both Windows and non-Windows executions.
-set MAVEN_CMD_LINE_ARGS=%*
-
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
-if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%" == "on" pause
-
-if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
-
-exit /B %ERROR_CODE%
diff --git a/dbrepo-discovery-service/pom.xml b/dbrepo-discovery-service/pom.xml
deleted file mode 100644
index c7b10ef2f4..0000000000
--- a/dbrepo-discovery-service/pom.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.3.10.RELEASE</version>
-    </parent>
-
-    <groupId>at.tuwien</groupId>
-    <artifactId>dbrepo-discovery-service</artifactId>
-    <version>1.2.0</version>
-    <name>dbrepo-discovery-service</name>
-    <description>Demo project for Spring Boot</description>
-
-    <packaging>pom</packaging>
-    <modules>
-        <module>report</module>
-        <module>rest-service</module>
-        <module>services</module>
-    </modules>
-
-    <properties>
-        <java.version>11</java.version>
-        <spring-cloud.version>3.0.1</spring-cloud.version>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-            <version>${spring-cloud.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
-            <version>${spring-cloud.version}</version>
-        </dependency>
-        <!-- Data Source -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mariadb.jdbc</groupId>
-            <artifactId>mariadb-java-client</artifactId>
-            <version>${mariadb.version}</version>
-        </dependency>
-        <!-- Monitoring -->
-        <dependency>
-            <groupId>io.micrometer</groupId>
-            <artifactId>micrometer-registry-prometheus</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <!-- IDE -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
-        <!-- Testing -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.junit.jupiter</groupId>
-                    <artifactId>junit-vintage-engine</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jacoco</groupId>
-            <artifactId>jacoco-maven-plugin</artifactId>
-            <version>${jacoco.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-db-test</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco.version}</version>
-                <configuration>
-                    <excludes>
-                        <exclude>at/tuwien/utils/**/*</exclude>
-                        <exclude>at/tuwien/seeder/**/*</exclude>
-                        <exclude>at/tuwien/mapper/**/*</exclude>
-                        <exclude>at/tuwien/exception/**/*</exclude>
-                        <exclude>at/tuwien/config/**/*</exclude>
-                        <exclude>**/DbrepoDiscoveryServiceApplication.class</exclude>
-                    </excludes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>default-prepare-agent</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>report</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/dbrepo-discovery-service/report/pom.xml b/dbrepo-discovery-service/report/pom.xml
deleted file mode 100644
index e5f5fcaad7..0000000000
--- a/dbrepo-discovery-service/report/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>at.tuwien</groupId>
-        <artifactId>dbrepo-discovery-service</artifactId>
-        <version>1.2.0</version>
-    </parent>
-
-    <artifactId>report</artifactId>
-    <version>1.2.0</version>
-    <name>dbrepo-discovery-service-report</name>
-
-    <properties>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>rest-service</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>services</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco.version}</version>
-                <executions>
-                    <execution>
-                        <id>report-aggregate</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>report-aggregate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/dbrepo-discovery-service/rest-service/pom.xml b/dbrepo-discovery-service/rest-service/pom.xml
deleted file mode 100644
index 453330597b..0000000000
--- a/dbrepo-discovery-service/rest-service/pom.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>at.tuwien</groupId>
-        <artifactId>dbrepo-discovery-service</artifactId>
-        <version>1.2.0</version>
-    </parent>
-
-    <artifactId>rest-service</artifactId>
-    <version>1.2.0</version>
-    <name>dbrepo-discovery-service-discovery</name>
-
-    <properties>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal><!-- to make it exuteable with $ java -jar ./app.jar -->
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>services</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/DbrepoDiscoveryServiceApplication.java b/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/DbrepoDiscoveryServiceApplication.java
deleted file mode 100644
index 6561edd18f..0000000000
--- a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/DbrepoDiscoveryServiceApplication.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package at.tuwien;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
-
-@SpringBootApplication
-@EnableEurekaServer
-public class DbrepoDiscoveryServiceApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(DbrepoDiscoveryServiceApplication.class, args);
-    }
-
-}
diff --git a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java b/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java
deleted file mode 100644
index cb0c9ffc9e..0000000000
--- a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package at.tuwien.config;
-
-import lombok.Getter;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.client.support.BasicAuthenticationInterceptor;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.util.DefaultUriBuilderFactory;
-
-@Getter
-@Configuration
-public class GatewayConfig {
-
-    @Value("${fda.gateway.endpoint}")
-    private String gatewayEndpoint;
-
-    @Value("${spring.rabbitmq.username}")
-    private String brokerUsername;
-
-    @Value("${spring.rabbitmq.password}")
-    private String brokerPassword;
-
-    @Bean("brokerRestTemplate")
-    public RestTemplate brokerRestTemplate() {
-        final RestTemplate restTemplate = new RestTemplate();
-        restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory(gatewayEndpoint));
-        restTemplate.getInterceptors()
-                .add(new BasicAuthenticationInterceptor(brokerUsername, brokerPassword));
-        return restTemplate;
-    }
-}
diff --git a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java
deleted file mode 100644
index fba7f99cf2..0000000000
--- a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package at.tuwien.config;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.Date;
-import java.util.TimeZone;
-
-@Slf4j
-@Configuration
-public class JacksonConfig {
-
-    @Bean
-    public ObjectMapper objectMapper() throws JsonProcessingException {
-        final ObjectMapper objectMapper = new ObjectMapper();
-        objectMapper.findAndRegisterModules();
-        objectMapper.registerModule(new Jdk8Module());
-        objectMapper.registerModule(new JavaTimeModule());
-        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
-        objectMapper.setTimeZone(TimeZone.getTimeZone("UTC"));
-        log.debug("current time is {}", objectMapper.writeValueAsString(new Date()));
-        return objectMapper;
-    }
-
-}
diff --git a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java b/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java
deleted file mode 100644
index 0bee3b961e..0000000000
--- a/dbrepo-discovery-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package at.tuwien.config;
-
-import com.google.common.io.Files;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.event.ApplicationReadyEvent;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.event.EventListener;
-
-import java.io.File;
-import java.io.IOException;
-
-@Configuration
-public class ReadyConfig {
-
-    @Value("${fda.ready.path}")
-    private String readyPath;
-
-    @EventListener(ApplicationReadyEvent.class)
-    public void init() throws IOException {
-        Files.touch(new File(readyPath));
-    }
-
-}
diff --git a/dbrepo-discovery-service/rest-service/src/main/resources/application-local.yml b/dbrepo-discovery-service/rest-service/src/main/resources/application-local.yml
deleted file mode 100644
index 1ab259ae3f..0000000000
--- a/dbrepo-discovery-service/rest-service/src/main/resources/application-local.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-app.version: '@project.version@'
-spring:
-  main.banner-mode: off
-  datasource:
-    url: jdbc:mariadb://localhost:3306/fda
-    driver-class-name: org.mariadb.jdbc.Driver
-    username: root
-    password: dbrepo
-  jpa:
-    show-sql: false
-    database-platform: org.hibernate.dialect.MariaDBDialect
-    hibernate:
-      ddl-auto: validate
-      use-new-id-generator-mappings: false
-    open-in-view: false
-    properties:
-      hibernate:
-        default_schema: fda
-        jdbc:
-          time_zone: UTC
-  application:
-    name: discovery-service
-  rabbitmq:
-    host: localhost
-    username: fda
-    password: fda
-  cloud:
-    loadbalancer.ribbon.enabled: false
-    gateway:
-      httpclient:
-        ssl:
-          useInsecureTrustManager: true
-management.endpoints.web.exposure.include: health,info,prometheus
-server:
-  port: 9090
-logging:
-  pattern.console: "%d %highlight(%-5level) %msg%n"
-  level:
-    root: warn
-    at.tuwien.: info
-    org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  client:
-    register-with-eureka: false
-    fetch-registry: false
-    serviceUrl.defaultZone: http://localhost:9090/eureka/
-  instance:
-    hostname: discovery-service
-    non-secure-port-enabled: false
-    secure-port-enabled: true
-    secure-port: 9090
-fda:
-  ready.path: ./ready
-  gateway.endpoint: http://localhost:9095
\ No newline at end of file
diff --git a/dbrepo-discovery-service/rest-service/src/main/resources/application.yml b/dbrepo-discovery-service/rest-service/src/main/resources/application.yml
deleted file mode 100644
index 3d691f1015..0000000000
--- a/dbrepo-discovery-service/rest-service/src/main/resources/application.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-app.version: '@project.version@'
-spring:
-  main.banner-mode: off
-  datasource:
-    url: jdbc:mariadb://metadata-db:3306/fda
-    driver-class-name: org.mariadb.jdbc.Driver
-    username: "${METADATA_USERNAME}"
-    password: "${METADATA_PASSWORD}"
-  jpa:
-    show-sql: false
-    database-platform: org.hibernate.dialect.MariaDBDialect
-    hibernate:
-      ddl-auto: validate
-    open-in-view: false
-    properties:
-      hibernate:
-        jdbc:
-          time_zone: UTC
-  application:
-    name: discovery-service
-  rabbitmq:
-    host: broker-service
-    username: "${BROKER_USERNAME}"
-    password: "${BROKER_PASSWORD}"
-  cloud:
-    loadbalancer.ribbon.enabled: false
-management.endpoints.web.exposure.include: health,info,prometheus
-server:
-  port: 9090
-logging:
-  pattern.console: "%d %highlight(%-5level) %msg%n"
-  level:
-    root: warn
-    at.tuwien.: "${LOG_LEVEL}"
-    org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  client:
-    register-with-eureka: false
-    fetch-registry: false
-    serviceUrl.defaultZone: http://discovery-service:9090/eureka/
-  instance:
-    hostname: discovery-service
-    non-secure-port-enabled: false
-    secure-port-enabled: true
-    secure-port: 9090
-fda:
-  ready.path: /ready
-  gateway.endpoint: "${GATEWAY_ENDPOINT}"
\ No newline at end of file
diff --git a/dbrepo-discovery-service/rest-service/src/main/resources/config.properties b/dbrepo-discovery-service/rest-service/src/main/resources/config.properties
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
deleted file mode 100644
index c5adb93d3d..0000000000
--- a/dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package at.tuwien;
-
-import at.tuwien.test.BaseTest;
-import org.springframework.test.context.TestPropertySource;
-
-@TestPropertySource(locations = "classpath:application.properties")
-public abstract class BaseUnitTest extends BaseTest {
-
-}
\ No newline at end of file
diff --git a/dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/MockServiceIntegrationTest.java b/dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/MockServiceIntegrationTest.java
deleted file mode 100644
index 329ae7be23..0000000000
--- a/dbrepo-discovery-service/rest-service/src/test/java/at/tuwien/MockServiceIntegrationTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package at.tuwien;
-
-import at.tuwien.config.H2Utils;
-import at.tuwien.service.MockService;
-import lombok.extern.log4j.Log4j2;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-
-@Log4j2
-@SpringBootTest
-public class MockServiceIntegrationTest extends BaseUnitTest {
-
-    @Autowired
-    private H2Utils h2Utils;
-
-    @Autowired
-    private MockService mockService;
-
-    @BeforeEach
-    public void beforeEach() {
-        h2Utils.runScript("schema.sql");
-    }
-
-    @Test
-    public void mock_succeeds() {
-
-        /* test */
-        final Boolean response = mockService.mock();
-        assertTrue(response);
-    }
-
-}
diff --git a/dbrepo-discovery-service/rest-service/src/test/resources/application.properties b/dbrepo-discovery-service/rest-service/src/test/resources/application.properties
deleted file mode 100644
index 1caa687436..0000000000
--- a/dbrepo-discovery-service/rest-service/src/test/resources/application.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-# enable local spring profile
-spring.profiles.active=local
-
-# disable datasource
-spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS FDA
-spring.datasource.driverClassName=org.h2.Driver
-spring.datasource.username=sa
-spring.datasource.password=password
-spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
-spring.jpa.hibernate.ddl-auto=create-drop
-spring.jpa.show-sql=false
\ No newline at end of file
diff --git a/dbrepo-discovery-service/rest-service/src/test/resources/schema.sql b/dbrepo-discovery-service/rest-service/src/test/resources/schema.sql
deleted file mode 100644
index 906d8df808..0000000000
--- a/dbrepo-discovery-service/rest-service/src/test/resources/schema.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-CREATE SCHEMA IF NOT EXISTS `fda`;
-SET SCHEMA `fda`;
-DROP TABLE IF EXISTS fda.mdb_concepts;
-CREATE TABLE IF NOT EXISTS fda.mdb_concepts
-(
-    uri        VARCHAR(500) not null,
-    name       VARCHAR(255),
-    created    timestamp    NOT NULL DEFAULT NOW(),
-    created_by bigint,
-    PRIMARY KEY (uri)
-);
-DROP TABLE IF EXISTS fda.mdb_units;
-CREATE TABLE IF NOT EXISTS fda.mdb_units
-(
-    uri        VARCHAR(500) not null,
-    name       VARCHAR(255),
-    created    timestamp    NOT NULL DEFAULT NOW(),
-    created_by bigint,
-    PRIMARY KEY (uri)
-);
--- Modified for H2
--- Assume id=1 is invalid
--- Assume id=2 is still valid token
--- CREATE VIEW IF NOT EXISTS fda.mdb_invalid_tokens AS
--- (SELECT `id`, `token_hash`, `creator`, `created`, `expires`, `last_used` FROM fda.`mdb_tokens` WHERE `id` = 1);
\ No newline at end of file
diff --git a/dbrepo-discovery-service/service_ready b/dbrepo-discovery-service/service_ready
deleted file mode 100644
index b2e4f9df68..0000000000
--- a/dbrepo-discovery-service/service_ready
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-if [ -f /ready ]; then
-  echo "service is ready and accepting connections"
-  exit 0
-fi
-exit 1
\ No newline at end of file
diff --git a/dbrepo-discovery-service/services/pom.xml b/dbrepo-discovery-service/services/pom.xml
deleted file mode 100644
index 8ac4f5a15d..0000000000
--- a/dbrepo-discovery-service/services/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>dbrepo-discovery-service</artifactId>
-        <groupId>at.tuwien</groupId>
-        <version>1.2.0</version>
-    </parent>
-
-    <artifactId>services</artifactId>
-    <version>1.2.0</version>
-    <name>dbrepo-discovery-service-services</name>
-
-</project>
\ No newline at end of file
diff --git a/dbrepo-discovery-service/services/src/main/java/at/tuwien/service/MockService.java b/dbrepo-discovery-service/services/src/main/java/at/tuwien/service/MockService.java
deleted file mode 100644
index 521e25785d..0000000000
--- a/dbrepo-discovery-service/services/src/main/java/at/tuwien/service/MockService.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package at.tuwien.service;
-
-import org.springframework.stereotype.Service;
-
-@Service
-public class MockService {
-
-    public Boolean mock() {
-        return true;
-    }
-
-}
diff --git a/dbrepo-gateway-service/.gitignore b/dbrepo-gateway-service/.gitignore
deleted file mode 100644
index 549e00a2a9..0000000000
--- a/dbrepo-gateway-service/.gitignore
+++ /dev/null
@@ -1,33 +0,0 @@
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/
diff --git a/dbrepo-gateway-service/.mvn/wrapper/MavenWrapperDownloader.java b/dbrepo-gateway-service/.mvn/wrapper/MavenWrapperDownloader.java
deleted file mode 100644
index a45eb6ba26..0000000000
--- a/dbrepo-gateway-service/.mvn/wrapper/MavenWrapperDownloader.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2007-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.net.*;
-import java.io.*;
-import java.nio.channels.*;
-import java.util.Properties;
-
-public class MavenWrapperDownloader {
-
-    private static final String WRAPPER_VERSION = "0.5.6";
-    /**
-     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
-     */
-    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
-            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
-
-    /**
-     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
-     * use instead of the default one.
-     */
-    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
-            ".mvn/wrapper/maven-wrapper.properties";
-
-    /**
-     * Path where the maven-wrapper.jar will be saved to.
-     */
-    private static final String MAVEN_WRAPPER_JAR_PATH =
-            ".mvn/wrapper/maven-wrapper.jar";
-
-    /**
-     * Name of the property which should be used to override the default download url for the wrapper.
-     */
-    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
-
-    public static void main(String args[]) {
-        System.out.println("- Downloader started");
-        File baseDirectory = new File(args[0]);
-        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
-
-        // If the maven-wrapper.properties exists, read it and check if it contains a custom
-        // wrapperUrl parameter.
-        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
-        String url = DEFAULT_DOWNLOAD_URL;
-        if (mavenWrapperPropertyFile.exists()) {
-            FileInputStream mavenWrapperPropertyFileInputStream = null;
-            try {
-                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
-                Properties mavenWrapperProperties = new Properties();
-                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
-                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
-            } catch (IOException e) {
-                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
-            } finally {
-                try {
-                    if (mavenWrapperPropertyFileInputStream != null) {
-                        mavenWrapperPropertyFileInputStream.close();
-                    }
-                } catch (IOException e) {
-                    // Ignore ...
-                }
-            }
-        }
-        System.out.println("- Downloading from: " + url);
-
-        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
-        if (!outputFile.getParentFile().exists()) {
-            if (!outputFile.getParentFile().mkdirs()) {
-                System.out.println(
-                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
-            }
-        }
-        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
-        try {
-            downloadFileFromURL(url, outputFile);
-            System.out.println("Done");
-            System.exit(0);
-        } catch (Throwable e) {
-            System.out.println("- Error downloading");
-            e.printStackTrace();
-            System.exit(1);
-        }
-    }
-
-    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
-        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
-            String username = System.getenv("MVNW_USERNAME");
-            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
-            Authenticator.setDefault(new Authenticator() {
-                @Override
-                protected PasswordAuthentication getPasswordAuthentication() {
-                    return new PasswordAuthentication(username, password);
-                }
-            });
-        }
-        URL website = new URL(urlString);
-        ReadableByteChannel rbc;
-        rbc = Channels.newChannel(website.openStream());
-        FileOutputStream fos = new FileOutputStream(destination);
-        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
-        fos.close();
-        rbc.close();
-    }
-
-}
diff --git a/dbrepo-gateway-service/.mvn/wrapper/maven-wrapper.jar b/dbrepo-gateway-service/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100644
index 2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 50710
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

diff --git a/dbrepo-gateway-service/.mvn/wrapper/maven-wrapper.properties b/dbrepo-gateway-service/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 642d572ce9..0000000000
--- a/dbrepo-gateway-service/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/dbrepo-gateway-service/Dockerfile b/dbrepo-gateway-service/Dockerfile
index 7fd33750f7..6086e614d1 100644
--- a/dbrepo-gateway-service/Dockerfile
+++ b/dbrepo-gateway-service/Dockerfile
@@ -1,45 +1,4 @@
-###### FIRST STAGE ######
-FROM dbrepo-metadata-db:latest as dependency
-MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
+FROM nginx:alpine AS runtime
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at
 
-###### FIRST STAGE ######
-FROM maven:slim as build
-
-COPY ./pom.xml ./
-
-RUN mvn -fn -B dependency:go-offline > /dev/null
-
-COPY --from=dependency /root/.m2/repository/at/tuwien /root/.m2/repository/at/tuwien
-
-COPY ./report ./report
-COPY ./rest-service ./rest-service
-
-# Make sure it compiles
-RUN mvn -q clean package -DskipTests
-
-###### SECOND STAGE ######
-FROM openjdk:11-jre-slim as runtime
-
-ENV METADATA_DB=fda
-ENV METADATA_USERNAME=postgres
-ENV METADATA_PASSWORD=postgres
-ENV GATEWAY_ENDPOINT=http://gateway-service:9095
-ENV LOG_LEVEL=debug
-
-WORKDIR /app
-
-COPY ./server.keystore ./server.keystore
-COPY ./root.crt /etc/ssl/certs/DBRepo_Root_CA.crt
-
-RUN cat /etc/ssl/certs/DBRepo_Root_CA.crt >> /etc/ssl/certs/ca-certificates.crt
-
-COPY ./service_ready /usr/bin
-RUN chmod +x /usr/bin/service_ready
-
-HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready
-
-COPY --from=build ./rest-service/target/rest-service-*.jar ./rest-service.jar
-
-EXPOSE 9095
-
-ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-Djavax.net.ssl.trustStore=/app/server.keystore", "-Djavax.net.ssl.trustStorePassword=password", "-jar", "./rest-service.jar"]
\ No newline at end of file
+COPY ./dbrepo.conf /etc/nginx/conf.d/default.conf
diff --git a/dbrepo-gateway-service/README.md b/dbrepo-gateway-service/README.md
deleted file mode 100644
index 75fed4cae4..0000000000
--- a/dbrepo-gateway-service/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Gateway Service
-
-## Actuator
-
-* Overview: [https://localhost:9095/actuator/](https://localhost:9095/actuator/)
-* Info: [https://localhost:9095/actuator/info](https://localhost:9095/actuator/info)
-
-## Prometheus
-
-* Overview: [https://localhost:9095/actuator/prometheus](https://localhost:9095/actuator/prometheus)
-
-## Health
-
-* Overview: [https://localhost:9095/actuator/health/](https://localhost:9095/actuator/health/)
-
-# Routes
-
-* Overview: [https://localhost:9095/actuator/gateway/routes](https://localhost:9095/actuator/gateway/routes)
\ No newline at end of file
diff --git a/dbrepo-gateway-service/dbrepo.conf b/dbrepo-gateway-service/dbrepo.conf
new file mode 100644
index 0000000000..08a12c1747
--- /dev/null
+++ b/dbrepo-gateway-service/dbrepo.conf
@@ -0,0 +1,271 @@
+client_max_body_size 2G;
+
+resolver 127.0.0.11 valid=30s; # docker dns
+
+upstream authentication {
+    server authentication-service:8444;
+}
+
+upstream user {
+    server user-service:9098;
+}
+
+upstream broker {
+    server broker-service:15672;
+}
+
+upstream analyse {
+    server analyse-service:5000;
+}
+
+upstream metadata {
+    server metadata-service:9099;
+}
+
+upstream identifier {
+    server identifier-service:9096;
+}
+
+upstream query {
+    server query-service:9093;
+}
+
+upstream table {
+    server table-service:9094;
+}
+
+upstream database {
+    server database-service:9094;
+}
+
+upstream container {
+    server container-service:9092;
+}
+
+upstream semantics {
+    server semantics-service:5010;
+}
+
+upstream search {
+    server search-service:9200;
+}
+
+upstream ui {
+    server ui:3000;
+}
+
+server {
+    listen 80 default_server;
+    server_name _;
+
+    location /api/auth {
+        rewrite /api/auth/(.*) /api/$1 break;
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://authentication;
+        proxy_read_timeout      90;
+    }
+
+    location /api/user {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://user;
+        proxy_read_timeout      90;
+    }
+
+    location /api/broker {
+        rewrite /api/broker/(.*) /api/$1 break;
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://broker;
+        proxy_read_timeout      90;
+    }
+
+    location /api/analyse {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://analyse;
+        proxy_read_timeout      90;
+    }
+
+    location /api/oai {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://metadata;
+        proxy_read_timeout      90;
+    }
+
+    location /api/identifier {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://identifier;
+        proxy_read_timeout      90;
+    }
+
+    location /pid {
+        rewrite /pid/(.*) /api/pid/$1 break;
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://identifier;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/query {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/view {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/table/[0-9]+/history {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/table/[0-9]+/data {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/table/[0-9]+/query {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/table/[0-9]+/export {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/table/[0-9]+/consumer {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/version {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://query;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/table {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://table;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://database;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container/[0-9]+/database/[0-9]+/access {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://database;
+        proxy_read_timeout      90;
+    }
+
+    location /api/container {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://container;
+        proxy_read_timeout      90;
+    }
+
+    location /api/image {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://container;
+        proxy_read_timeout      90;
+    }
+
+    location /api/semantics {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://semantics;
+        proxy_read_timeout      90;
+    }
+
+    location /retrieve {
+        rewrite /retrieve/(.*) /$1 break;
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://search;
+        proxy_read_timeout      90;
+    }
+
+    location / {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://ui;
+        proxy_read_timeout      90;
+    }
+}
diff --git a/dbrepo-gateway-service/mvnw b/dbrepo-gateway-service/mvnw
deleted file mode 100755
index a16b5431b4..0000000000
--- a/dbrepo-gateway-service/mvnw
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#    https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Maven Start Up Batch script
-#
-# Required ENV vars:
-# ------------------
-#   JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-#   M2_HOME - location of maven2's installed home dir
-#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
-#     e.g. to debug Maven itself, use
-#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
-  if [ -f /etc/mavenrc ] ; then
-    . /etc/mavenrc
-  fi
-
-  if [ -f "$HOME/.mavenrc" ] ; then
-    . "$HOME/.mavenrc"
-  fi
-
-fi
-
-# OS specific support.  $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "`uname`" in
-  CYGWIN*) cygwin=true ;;
-  MINGW*) mingw=true;;
-  Darwin*) darwin=true
-    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
-    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
-    if [ -z "$JAVA_HOME" ]; then
-      if [ -x "/usr/libexec/java_home" ]; then
-        export JAVA_HOME="`/usr/libexec/java_home`"
-      else
-        export JAVA_HOME="/Library/Java/Home"
-      fi
-    fi
-    ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
-  if [ -r /etc/gentoo-release ] ; then
-    JAVA_HOME=`java-config --jre-home`
-  fi
-fi
-
-if [ -z "$M2_HOME" ] ; then
-  ## resolve links - $0 may be a link to maven's home
-  PRG="$0"
-
-  # need this for relative symlinks
-  while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-      PRG="$link"
-    else
-      PRG="`dirname "$PRG"`/$link"
-    fi
-  done
-
-  saveddir=`pwd`
-
-  M2_HOME=`dirname "$PRG"`/..
-
-  # make it fully qualified
-  M2_HOME=`cd "$M2_HOME" && pwd`
-
-  cd "$saveddir"
-  # echo Using m2 at $M2_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --unix "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# For Mingw, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME="`(cd "$M2_HOME"; pwd)`"
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
-fi
-
-if [ -z "$JAVA_HOME" ]; then
-  javaExecutable="`which javac`"
-  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
-    # readlink(1) is not available as standard on Solaris 10.
-    readLink=`which readlink`
-    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
-      if $darwin ; then
-        javaHome="`dirname \"$javaExecutable\"`"
-        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
-      else
-        javaExecutable="`readlink -f \"$javaExecutable\"`"
-      fi
-      javaHome="`dirname \"$javaExecutable\"`"
-      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
-      JAVA_HOME="$javaHome"
-      export JAVA_HOME
-    fi
-  fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
-  if [ -n "$JAVA_HOME"  ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-      # IBM's JDK on AIX uses strange locations for the executables
-      JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-      JAVACMD="$JAVA_HOME/bin/java"
-    fi
-  else
-    JAVACMD="`which java`"
-  fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
-  echo "Error: JAVA_HOME is not defined correctly." >&2
-  echo "  We cannot execute $JAVACMD" >&2
-  exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
-  echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
-
-  if [ -z "$1" ]
-  then
-    echo "Path not specified to find_maven_basedir"
-    return 1
-  fi
-
-  basedir="$1"
-  wdir="$1"
-  while [ "$wdir" != '/' ] ; do
-    if [ -d "$wdir"/.mvn ] ; then
-      basedir=$wdir
-      break
-    fi
-    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
-    if [ -d "${wdir}" ]; then
-      wdir=`cd "$wdir/.."; pwd`
-    fi
-    # end of workaround
-  done
-  echo "${basedir}"
-}
-
-# concatenates all lines of a file
-concat_lines() {
-  if [ -f "$1" ]; then
-    echo "$(tr -s '\n' ' ' < "$1")"
-  fi
-}
-
-BASE_DIR=`find_maven_basedir "$(pwd)"`
-if [ -z "$BASE_DIR" ]; then
-  exit 1;
-fi
-
-##########################################################################################
-# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-# This allows using the maven wrapper in projects that prohibit checking in binary data.
-##########################################################################################
-if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
-    if [ "$MVNW_VERBOSE" = true ]; then
-      echo "Found .mvn/wrapper/maven-wrapper.jar"
-    fi
-else
-    if [ "$MVNW_VERBOSE" = true ]; then
-      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
-    fi
-    if [ -n "$MVNW_REPOURL" ]; then
-      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-    else
-      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-    fi
-    while IFS="=" read key value; do
-      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
-      esac
-    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
-    if [ "$MVNW_VERBOSE" = true ]; then
-      echo "Downloading from: $jarUrl"
-    fi
-    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
-    if $cygwin; then
-      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
-    fi
-
-    if command -v wget > /dev/null; then
-        if [ "$MVNW_VERBOSE" = true ]; then
-          echo "Found wget ... using wget"
-        fi
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            wget "$jarUrl" -O "$wrapperJarPath"
-        else
-            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
-        fi
-    elif command -v curl > /dev/null; then
-        if [ "$MVNW_VERBOSE" = true ]; then
-          echo "Found curl ... using curl"
-        fi
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            curl -o "$wrapperJarPath" "$jarUrl" -f
-        else
-            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
-        fi
-
-    else
-        if [ "$MVNW_VERBOSE" = true ]; then
-          echo "Falling back to using Java to download"
-        fi
-        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
-        # For Cygwin, switch paths to Windows format before running javac
-        if $cygwin; then
-          javaClass=`cygpath --path --windows "$javaClass"`
-        fi
-        if [ -e "$javaClass" ]; then
-            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
-                if [ "$MVNW_VERBOSE" = true ]; then
-                  echo " - Compiling MavenWrapperDownloader.java ..."
-                fi
-                # Compiling the Java class
-                ("$JAVA_HOME/bin/javac" "$javaClass")
-            fi
-            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
-                # Running the downloader
-                if [ "$MVNW_VERBOSE" = true ]; then
-                  echo " - Running MavenWrapperDownloader.java ..."
-                fi
-                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
-            fi
-        fi
-    fi
-fi
-##########################################################################################
-# End of extension
-##########################################################################################
-
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
-if [ "$MVNW_VERBOSE" = true ]; then
-  echo $MAVEN_PROJECTBASEDIR
-fi
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --path --windows "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
-    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
-fi
-
-# Provide a "standardized" way to retrieve the CLI args that will
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-exec "$JAVACMD" \
-  $MAVEN_OPTS \
-  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
-  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
-  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/dbrepo-gateway-service/mvnw.cmd b/dbrepo-gateway-service/mvnw.cmd
deleted file mode 100644
index c8d43372c9..0000000000
--- a/dbrepo-gateway-service/mvnw.cmd
+++ /dev/null
@@ -1,182 +0,0 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements.  See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership.  The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License.  You may obtain a copy of the License at
-@REM
-@REM    https://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied.  See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM     e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM set title of command window
-title %0
-@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
-if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-
-FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
-    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
-)
-
-@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
-if exist %WRAPPER_JAR% (
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Found %WRAPPER_JAR%
-    )
-) else (
-    if not "%MVNW_REPOURL%" == "" (
-        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
-    )
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Couldn't find %WRAPPER_JAR%, downloading it ...
-        echo Downloading from: %DOWNLOAD_URL%
-    )
-
-    powershell -Command "&{"^
-		"$webclient = new-object System.Net.WebClient;"^
-		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
-		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
-		"}"^
-		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
-		"}"
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Finished downloading %WRAPPER_JAR%
-    )
-)
-@REM End of extension
-
-@REM Provide a "standardized" way to retrieve the CLI args that will
-@REM work with both Windows and non-Windows executions.
-set MAVEN_CMD_LINE_ARGS=%*
-
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
-if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%" == "on" pause
-
-if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
-
-exit /B %ERROR_CODE%
diff --git a/dbrepo-gateway-service/pom.xml b/dbrepo-gateway-service/pom.xml
deleted file mode 100644
index addee3cef6..0000000000
--- a/dbrepo-gateway-service/pom.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.3.4.RELEASE</version>
-    </parent>
-    <groupId>at.tuwien</groupId>
-    <artifactId>dbrepo-gateway-service</artifactId>
-    <version>1.2.0</version>
-    <name>dbrepo-gateway-service</name>
-    <description>Service that proxies the API to the microservices</description>
-    <url>https://dbrepo-docs.ossdip.at</url>
-    <developers>
-        <developer>
-            <name>Martin Weise</name>
-            <email>martin.weise@tuwien.ac.at</email>
-            <organization>TU Wien</organization>
-        </developer>
-    </developers>
-
-    <packaging>pom</packaging>
-    <modules>
-        <module>rest-service</module>
-        <module>report</module>
-    </modules>
-
-    <properties>
-        <java.version>11</java.version>
-        <spring-cloud.version>Hoxton.SR10</spring-cloud.version><!-- SR11 not working yet -->
-        <swagger.version>2.1.7</swagger.version>
-        <springfox.version>3.0.0</springfox.version>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
-    <dependencies>
-        <!-- Gate -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-webflux</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-gateway</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
-        </dependency>
-        <!-- Embedded DataSource -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <!-- Monitoring -->
-        <dependency>
-            <groupId>io.micrometer</groupId>
-            <artifactId>micrometer-registry-prometheus</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <!-- IDE -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
-        <!-- Testing -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.junit.jupiter</groupId>
-                    <artifactId>junit-vintage-engine</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.jacoco</groupId>
-            <artifactId>jacoco-maven-plugin</artifactId>
-            <version>${jacoco.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>dbrepo-metadata-db-test</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.cloud</groupId>
-                <artifactId>spring-cloud-dependencies</artifactId>
-                <version>${spring-cloud.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco.version}</version>
-                <configuration>
-                    <excludes>
-                        <exclude>at/tuwien/utils/**/*</exclude>
-                        <exclude>at/tuwien/seeder/**/*</exclude>
-                        <exclude>at/tuwien/mapper/**/*</exclude>
-                        <exclude>at/tuwien/exception/**/*</exclude>
-                        <exclude>at/tuwien/config/**/*</exclude>
-                        <exclude>**/DbrepoGatewayServiceApplication.class</exclude>
-                    </excludes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>default-prepare-agent</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>report</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/dbrepo-gateway-service/report/pom.xml b/dbrepo-gateway-service/report/pom.xml
deleted file mode 100644
index 7c2e3a729c..0000000000
--- a/dbrepo-gateway-service/report/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>at.tuwien</groupId>
-        <artifactId>dbrepo-gateway-service</artifactId>
-        <version>1.2.0</version>
-    </parent>
-
-    <artifactId>report</artifactId>
-    <version>1.2.0</version>
-    <name>dbrepo-gateway-service-report</name>
-    <description>
-        This module is only intended for the pipeline coverage report. See the detailed report in the
-        respective modules
-    </description>
-
-    <properties>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>at.tuwien</groupId>
-            <artifactId>rest-service</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco.version}</version>
-                <executions>
-                    <execution>
-                        <id>report-aggregate</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>report-aggregate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/dbrepo-gateway-service/rest-service/pom.xml b/dbrepo-gateway-service/rest-service/pom.xml
deleted file mode 100644
index 6a543cd5ed..0000000000
--- a/dbrepo-gateway-service/rest-service/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>at.tuwien</groupId>
-        <artifactId>dbrepo-gateway-service</artifactId>
-        <version>1.2.0</version>
-    </parent>
-
-    <artifactId>rest-service</artifactId>
-    <version>1.2.0</version>
-    <name>dbrepo-gateway-service-rest-service</name>
-
-    <properties>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal><!-- to make it exuteable with $ java -jar ./app.jar -->
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies />
-
-</project>
\ No newline at end of file
diff --git a/dbrepo-gateway-service/rest-service/ready b/dbrepo-gateway-service/rest-service/ready
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/DbrepoGatewayServiceApplication.java b/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/DbrepoGatewayServiceApplication.java
deleted file mode 100644
index 821368936f..0000000000
--- a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/DbrepoGatewayServiceApplication.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package at.tuwien;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class DbrepoGatewayServiceApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(DbrepoGatewayServiceApplication.class, args);
-    }
-
-}
diff --git a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java b/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java
deleted file mode 100644
index bb1450fde7..0000000000
--- a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/GatewayConfig.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package at.tuwien.config;
-
-import org.springframework.cloud.gateway.route.RouteLocator;
-import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class GatewayConfig {
-
-    @Bean
-    public RouteLocator routes(RouteLocatorBuilder builder) {
-        return builder.routes()
-                .route("authentication-service", r -> r.path("/api/auth/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .filters(f -> f.rewritePath("/api/auth/(?<segment>.*)", "/${segment}"))
-                        .uri("lb://authentication-service"))
-                .route("user-service", r -> r.path("/api/user/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://user-service"))
-                .route("broker-service", r -> r.path("/api/broker/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .filters(f -> f.rewritePath("/api/broker/(?<segment>.*)", "/api/${segment}"))
-                        .uri("lb://broker-service"))
-                .route("analyse-service", r -> r.path("/api/analyse/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://analyse-service"))
-                .route("metadata-service", r -> r.path("/api/oai/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://metadata-service"))
-                .route("identifier-service", r -> r.path("/api/pid/**",
-                                "/api/identifier/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://identifier-service"))
-                .route("query-service", r -> r.path("/api/container/**/database/**/query/**",
-                                "/api/container/**/database/**/view/**",
-                                "/api/container/**/database/**/table/**/history/**",
-                                "/api/container/**/database/**/table/**/data/**",
-                                "/api/container/**/database/**/table/**/query/**",
-                                "/api/container/**/database/**/table/**/export/**",
-                                "/api/container/**/database/**/table/**/consumer",
-                                "/api/container/**/database/**/version/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://query-service"))
-                .route("table-service", r -> r.path("/api/container/**/database/**/table/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://table-service"))
-                .route("database-service", r -> r.path("/api/container/**/database/**",
-                                "/api/container/**/database/**/access/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://database-service"))
-                .route("container-service", r -> r.path("/api/container/**",
-                                "/api/image/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://container-service"))
-                .route("semantics-service", r -> r.path("/api/semantics/**")
-                        .and()
-                        .method("POST", "GET", "PUT", "DELETE")
-                        .and()
-                        .uri("lb://semantics-service"))
-                .build();
-
-    }
-
-}
diff --git a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java
deleted file mode 100644
index fba7f99cf2..0000000000
--- a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/JacksonConfig.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package at.tuwien.config;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.Date;
-import java.util.TimeZone;
-
-@Slf4j
-@Configuration
-public class JacksonConfig {
-
-    @Bean
-    public ObjectMapper objectMapper() throws JsonProcessingException {
-        final ObjectMapper objectMapper = new ObjectMapper();
-        objectMapper.findAndRegisterModules();
-        objectMapper.registerModule(new Jdk8Module());
-        objectMapper.registerModule(new JavaTimeModule());
-        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
-        objectMapper.setTimeZone(TimeZone.getTimeZone("UTC"));
-        log.debug("current time is {}", objectMapper.writeValueAsString(new Date()));
-        return objectMapper;
-    }
-
-}
diff --git a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java b/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java
deleted file mode 100644
index 2250fa5088..0000000000
--- a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/ReadyConfig.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package at.tuwien.config;
-
-import com.google.common.io.Files;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.event.ApplicationReadyEvent;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.event.EventListener;
-
-import java.io.File;
-import java.io.IOException;
-
-@Log4j2
-@Configuration
-public class ReadyConfig {
-
-    @Value("${fda.ready.path}")
-    private String readyPath;
-
-    @EventListener(ApplicationReadyEvent.class)
-    public void init() throws IOException {
-        Files.touch(new File(readyPath));
-    }
-
-}
diff --git a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/WebConfig.java b/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/WebConfig.java
deleted file mode 100644
index e5aece5a24..0000000000
--- a/dbrepo-gateway-service/rest-service/src/main/java/at/tuwien/config/WebConfig.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.config;
-
-import org.springframework.cloud.client.loadbalancer.LoadBalanced;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.reactive.config.CorsRegistry;
-import org.springframework.web.reactive.config.WebFluxConfigurer;
-import org.springframework.web.reactive.function.client.WebClient;
-
-@Configuration
-public class WebConfig implements WebFluxConfigurer {
-
-    @Override
-    public void addCorsMappings(CorsRegistry registry) {
-        registry.addMapping("/**")
-                .allowedMethods("POST", "GET", "PUT", "DELETE")
-                .allowedOrigins("*");
-    }
-
-    @Bean
-    @LoadBalanced
-    public WebClient.Builder loadBalancedWebClientBuilder() {
-        return WebClient.builder();
-    }
-
-}
diff --git a/dbrepo-gateway-service/rest-service/src/main/resources/application-local.yml b/dbrepo-gateway-service/rest-service/src/main/resources/application-local.yml
deleted file mode 100644
index 320e14ae2f..0000000000
--- a/dbrepo-gateway-service/rest-service/src/main/resources/application-local.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-app.version: '@project.version@'
-spring:
-  main.banner-mode: off
-  datasource:
-    url: jdbc:h2:mem:mydb
-    username: sa
-    password: password
-    driverClassName: org.h2.Driver
-  jpa:
-    show-sql: false
-    database-platform: org.hibernate.dialect.H2Dialect
-    hibernate:
-      ddl-auto: validate
-      use-new-id-generator-mappings: false
-    open-in-view: false
-    properties:
-      hibernate:
-        default_schema: fda
-        jdbc:
-          time_zone: UTC
-  application:
-    name: gateway-service
-  cloud:
-    loadbalancer.ribbon.enabled: false
-management.endpoints.web.exposure.include: health,info,prometheus,gateway
-server:
-  port: 9095
-logging:
-  pattern.console: "%d %highlight(%-5level) %msg%n"
-  level:
-    root: warn
-    at.tuwien.: info
-    org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: gateway-service
-    non-secure-port-enabled: false
-    secure-port-enabled: true
-    secure-port: 9095
-  client.serviceUrl.defaultZone: http://localhost:9090/eureka/
-fda:
-  ready.path: ./ready
\ No newline at end of file
diff --git a/dbrepo-gateway-service/rest-service/src/main/resources/application.yml b/dbrepo-gateway-service/rest-service/src/main/resources/application.yml
deleted file mode 100644
index 3c021d74d6..0000000000
--- a/dbrepo-gateway-service/rest-service/src/main/resources/application.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-app.version: '@project.version@'
-spring:
-  main.banner-mode: off
-  datasource:
-    url: jdbc:h2:mem:mydb
-    username: sa
-    password: password
-    driverClassName: org.h2.Driver
-  jpa:
-    show-sql: false
-    database-platform: org.hibernate.dialect.H2Dialect
-    hibernate:
-      ddl-auto: validate
-    open-in-view: false
-    properties:
-      hibernate:
-        jdbc:
-          time_zone: UTC
-  application:
-    name: gateway-service
-  cloud:
-    loadbalancer.ribbon.enabled: false
-management.endpoints.web.exposure.include: health,info,prometheus,gateway
-server:
-  port: 9095
-logging:
-  pattern.console: "%d %highlight(%-5level) %msg%n"
-  level:
-    root: warn
-    at.tuwien.: "${LOG_LEVEL}"
-    org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: gateway-service
-    non-secure-port-enabled: false
-    secure-port-enabled: true
-    secure-port: 9095
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
-fda:
-  ready.path: /ready
\ No newline at end of file
diff --git a/dbrepo-gateway-service/rest-service/src/main/resources/config.properties b/dbrepo-gateway-service/rest-service/src/main/resources/config.properties
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dbrepo-gateway-service/rest-service/src/test/resources/application.properties b/dbrepo-gateway-service/rest-service/src/test/resources/application.properties
deleted file mode 100644
index 1caa687436..0000000000
--- a/dbrepo-gateway-service/rest-service/src/test/resources/application.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-# enable local spring profile
-spring.profiles.active=local
-
-# disable datasource
-spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS FDA
-spring.datasource.driverClassName=org.h2.Driver
-spring.datasource.username=sa
-spring.datasource.password=password
-spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
-spring.jpa.hibernate.ddl-auto=create-drop
-spring.jpa.show-sql=false
\ No newline at end of file
diff --git a/dbrepo-gateway-service/root.crt b/dbrepo-gateway-service/root.crt
deleted file mode 100644
index 798a1f6734..0000000000
--- a/dbrepo-gateway-service/root.crt
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDPzCCAiegAwIBAgIEHaMDRDANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJB
-VDEQMA4GA1UEChMHVFUgV2llbjEPMA0GA1UECxMGRFMtSUZTMQ8wDQYDVQQDEwZS
-b290Q0EwHhcNMjMwNDAzMTczOTU5WhcNMzMwMjA5MTczOTU5WjBBMQswCQYDVQQG
-EwJBVDEQMA4GA1UEChMHVFUgV2llbjEPMA0GA1UECxMGRFMtSUZTMQ8wDQYDVQQD
-EwZSb290Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCK8FuP0bGt
-QAvhZEjRWTQuCdE6vXpDWjvSoevZaSclgJ9SncDHtRzkH0x0ArVfIRZFtjSUEcHb
-2r8mnOvqQ+9vs2azjTlacdPvezbhfgFFGIdrnHSm3RTB7smeOFceFkIvwiXT49+y
-ZGkB/p0QCDoVYhgRxFNtZKBTYa0uJLQ7cM8LK2g66/yugJsB4zOlre1zPiWGY/5k
-sWu780XVKpl9j6CR/xp3012bKlT/t7j7fKRamJYVYtW2guRQnl5J5AKRzlRGh84G
-onNI5qiwS0gAZUajpL00lb2XxSkv11DY0743EOSsqOvUDr+5h4v7pXEt+O5aFvFN
-ewRTHON1624fAgMBAAGjPzA9MB0GA1UdDgQWBBSdLp+I30uB4jAMP1PnZLolxbF/
-AzALBgNVHQ8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
-AQEAIqrbs8mXC07a8VURnu3EFxO3dliDgxY1yQfB0VqMFL1yxGKXrVAJFLP/1MVr
-HVx53vZd/KBNGUjhLfnj3vF+TpqnOoJ/QEDSJPuEnpfFPtx0tE3e3lQQlebIA8aM
-m1iP2SJuKAYQUYOg1N9XXa+UPs9tWWrllY5dcYdHOK168eUwo1h6v0OOnaP7RvSn
-457jewK6fJ3tUhox2Hu1JEowupYE5QhMiLwG30MGkf2pWkTNfz005LTzmgvfMSz7
-k1rfO9oKdVbxNYxZPdzKZRsnCfOka/MmYcXstjp5KKXLo4Z3LLs8N0GDWlKRvX9p
-z2CJQ6CG+Aws4+J3mFOm2G9rIw==
------END CERTIFICATE-----
diff --git a/dbrepo-gateway-service/server.keystore b/dbrepo-gateway-service/server.keystore
deleted file mode 100644
index 1acf1f68ca7c367468fe2a81179d5fc9f295cfc9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 45487
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

diff --git a/dbrepo-gateway-service/service_ready b/dbrepo-gateway-service/service_ready
deleted file mode 100644
index b2e4f9df68..0000000000
--- a/dbrepo-gateway-service/service_ready
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-if [ -f /ready ]; then
-  echo "service is ready and accepting connections"
-  exit 0
-fi
-exit 1
\ No newline at end of file
diff --git a/dbrepo-identifier-service/Dockerfile b/dbrepo-identifier-service/Dockerfile
index b8343cc968..a8f39e3d7f 100644
--- a/dbrepo-identifier-service/Dockerfile
+++ b/dbrepo-identifier-service/Dockerfile
@@ -25,7 +25,7 @@ FROM openjdk:11-jre-slim as runtime
 ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
-ENV GATEWAY_ENDPOINT=http://gateway-service:9095
+ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV WEBSITE=http://localhost
 ENV LOG_LEVEL=debug
 ENV DBREPO_CLIENT_SECRET=client-secret
diff --git a/dbrepo-identifier-service/rest-service/src/main/resources/application-local.yml b/dbrepo-identifier-service/rest-service/src/main/resources/application-local.yml
index bb5c0681e3..20b898bb03 100644
--- a/dbrepo-identifier-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-identifier-service/rest-service/src/main/resources/application-local.yml
@@ -36,11 +36,6 @@ logging:
     at.tuwien.: trace
     at.tuwien.auth.UserPermissionEvaluator: trace
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: identifier-service
-    non-secure-port: 9096
-  client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   ready.path: ./ready
   jwt:
@@ -48,7 +43,7 @@ fda:
     public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB
   client_secret: client-secret
   client_id: dbrepo-client
-  gateway.endpoint: http://localhost:9095
+  gateway.endpoint: http://localhost
   website: http://localhost:3000
   elastic:
     endpoint: localhost:9200
diff --git a/dbrepo-identifier-service/rest-service/src/main/resources/application.yml b/dbrepo-identifier-service/rest-service/src/main/resources/application.yml
index 9d2031bd7e..f2531d6420 100644
--- a/dbrepo-identifier-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-identifier-service/rest-service/src/main/resources/application.yml
@@ -36,11 +36,6 @@ logging:
     at.tuwien.: "${LOG_LEVEL}"
     at.tuwien.auth.UserPermissionEvaluator: trace
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: identifier-service
-    non-secure-port: 9096
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
   ready.path: /ready
   jwt:
diff --git a/dbrepo-metadata-db/pom.xml b/dbrepo-metadata-db/pom.xml
index 5a0d2c25ae..c7f3b2990d 100644
--- a/dbrepo-metadata-db/pom.xml
+++ b/dbrepo-metadata-db/pom.xml
@@ -29,7 +29,7 @@
         <maven.compiler.target>${java.version}</maven.compiler.target>
         <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
         <mapstruct.version>1.4.2.Final</mapstruct.version>
-        <docker.version>3.2.7</docker.version>
+        <docker.version>3.3.0</docker.version>
         <testcontainers.version>1.15.2</testcontainers.version>
         <swagger.version>2.1.7</swagger.version>
         <springfox.version>3.0.0</springfox.version>
@@ -47,17 +47,6 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
-            <version>3.0.1</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>javax.ws.rs</groupId>
-                    <artifactId>jsr311-api</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
@@ -83,6 +72,12 @@
             <artifactId>commons-io</artifactId>
             <version>${commons.version}</version>
         </dependency>
+        <!-- Utils -->
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>31.1-jre</version>
+        </dependency>
         <!-- SQL Parser -->
         <dependency>
             <groupId>com.github.jsqlparser</groupId>
diff --git a/dbrepo-metadata-service/Dockerfile b/dbrepo-metadata-service/Dockerfile
index af0e2b6da4..ed2428b33a 100644
--- a/dbrepo-metadata-service/Dockerfile
+++ b/dbrepo-metadata-service/Dockerfile
@@ -24,7 +24,7 @@ FROM openjdk:11-jre-slim as runtime
 ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
-ENV GATEWAY_ENDPOINT=http://gateway-service:9095
+ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV PID_BASE="http://example.com/pid/"
 ENV REPOSITORY_NAME="Example Repository"
 ENV BASE_URL="http://example.com"
diff --git a/dbrepo-metadata-service/rest-service/src/main/resources/application-local.yml b/dbrepo-metadata-service/rest-service/src/main/resources/application-local.yml
index b5529e2975..eef6f76815 100644
--- a/dbrepo-metadata-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-metadata-service/rest-service/src/main/resources/application-local.yml
@@ -35,17 +35,10 @@ logging:
     root: warn
     at.tuwien.: trace
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: metadata-service
-    non-secure-port-enabled: false
-    secure-port-enabled: true
-    secure-port: 9099
-  client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   ready.path: ./ready
   pid.base: http://example.com/pid/
-  gateway.endpoint: http://localhost:9095
+  gateway.endpoint: http://localhost
 dbrepo:
   repository-name: TU Wien Database Repository
   base-url: http://dbrepo.ossdip.at/api/oai
diff --git a/dbrepo-metadata-service/rest-service/src/main/resources/application.yml b/dbrepo-metadata-service/rest-service/src/main/resources/application.yml
index 1a81f97ef8..74ee706193 100644
--- a/dbrepo-metadata-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-metadata-service/rest-service/src/main/resources/application.yml
@@ -35,11 +35,6 @@ logging:
     root: warn
     at.tuwien.: "${LOG_LEVEL}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: metadata-service
-    non-secure-port: 9099
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
   ready.path: ./ready
   pid.base: "${PID_BASE}"
diff --git a/dbrepo-proxy/Dockerfile b/dbrepo-proxy/Dockerfile
deleted file mode 100644
index 6086e614d1..0000000000
--- a/dbrepo-proxy/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM nginx:alpine AS runtime
-MAINTAINER Martin Weise <martin.weise@tuwien.ac.at
-
-COPY ./dbrepo.conf /etc/nginx/conf.d/default.conf
diff --git a/dbrepo-proxy/dbrepo.conf b/dbrepo-proxy/dbrepo.conf
deleted file mode 100644
index ac95500234..0000000000
--- a/dbrepo-proxy/dbrepo.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-client_max_body_size 2G;
-
-server {
-    listen 80 default_server;
-    server_name _;
-
-    location /api {
-        proxy_set_header        Host $host;
-        proxy_set_header        X-Real-IP $remote_addr;
-        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header        X-Forwarded-Proto $scheme;
-        proxy_pass              http://gateway-service:9095;
-        proxy_read_timeout      90;
-    }
-
-    location /pid {
-        rewrite /pid/(.*) /api/pid/$1 break;
-        proxy_set_header        Host $host;
-        proxy_set_header        X-Real-IP $remote_addr;
-        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header        X-Forwarded-Proto $scheme;
-        proxy_pass              http://gateway-service:9095;
-        proxy_read_timeout      90;
-    }
-
-    location /retrieve {
-        rewrite /retrieve/(.*) /$1 break;
-        proxy_set_header        Host $host;
-        proxy_set_header        X-Real-IP $remote_addr;
-        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header        X-Forwarded-Proto $scheme;
-        proxy_pass              http://search-service:9200;
-        proxy_read_timeout      90;
-    }
-
-    location / {
-        proxy_set_header        Host $host;
-        proxy_set_header        X-Real-IP $remote_addr;
-        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_set_header        X-Forwarded-Proto $scheme;
-        proxy_pass              http://ui:3000/;
-        proxy_read_timeout      90;
-    }
-}
diff --git a/dbrepo-query-service/Dockerfile b/dbrepo-query-service/Dockerfile
index a8114f56c6..7b32d8c70b 100644
--- a/dbrepo-query-service/Dockerfile
+++ b/dbrepo-query-service/Dockerfile
@@ -27,7 +27,7 @@ ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
 ENV BROKER_USERNAME=fda
 ENV BROKER_PASSWORD=fda
-ENV GATEWAY_ENDPOINT=http://gateway-service:9095
+ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV SHARED_FILESYSTEM=/tmp
 ENV BROKER_CONSUMERS=2
 ENV LOG_LEVEL=debug
diff --git a/dbrepo-query-service/rest-service/src/main/resources/application-docker.yml b/dbrepo-query-service/rest-service/src/main/resources/application-docker.yml
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dbrepo-query-service/rest-service/src/main/resources/application-local.yml b/dbrepo-query-service/rest-service/src/main/resources/application-local.yml
index ac9c7fb360..59ec68cf1a 100644
--- a/dbrepo-query-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-query-service/rest-service/src/main/resources/application-local.yml
@@ -39,13 +39,8 @@ logging:
     root: warn
     at.tuwien.: trace
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: query-service
-    non-secure-port: 9093
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
-  gateway.endpoint: http://localhost:9095
+  gateway.endpoint: http://localhost
   ready.path: ./ready
   jwt:
     issuer: https://localhost:8443/realms/dbrepo
diff --git a/dbrepo-query-service/rest-service/src/main/resources/application.yml b/dbrepo-query-service/rest-service/src/main/resources/application.yml
index df6ca210fb..c7860e13a4 100644
--- a/dbrepo-query-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-query-service/rest-service/src/main/resources/application.yml
@@ -35,11 +35,6 @@ logging:
     root: warn
     at.tuwien.: "${LOG_LEVEL}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: query-service
-    non-secure-port: 9093
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
   gateway.endpoint: "${GATEWAY_ENDPOINT}"
   ready.path: /ready
diff --git a/dbrepo-semantics-service/Dockerfile b/dbrepo-semantics-service/Dockerfile
index bb9426c7b0..07f4c1abb1 100644
--- a/dbrepo-semantics-service/Dockerfile
+++ b/dbrepo-semantics-service/Dockerfile
@@ -1,14 +1,19 @@
-FROM python:3.9-slim
-MAINTAINER Cornelia Michlits <cornelia.michlits@tuwien.ac.at>
+FROM python:3.9-alpine
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
-RUN apt-get update && apt-get install -y python3-dev libmariadb3 libmariadb-dev gcc
+RUN apk update && apk --no-cache add build-base gcc python3-dev libpq-dev libffi-dev mariadb-dev mariadb-connector-c \
+    mariadb-connector-c-dev py3-pandas py3-sqlalchemy py3-requests py3-gevent py3-psycopg2
+
+COPY ./requirements.txt ./requirements.txt
+RUN pip install -r ./requirements.txt
+
+WORKDIR /app
 
 ENV FLASK_APP=app.py
 ENV FLASK_RUN_HOST=0.0.0.0
 ENV PORT_APP=5010
 ENV FLASK_DEBUG=0
 ENV HOSTNAME=semantics-service
-ENV EUREKA_SERVER=http://discovery-service:9090/eureka/
 ENV READY_FILE=/ready
 ENV LOG_LEVEL=debug
 ENV METADATA_DB=fda
@@ -17,8 +22,6 @@ ENV METADATA_PASSWORD=dbrepo
 ENV JWT_ISSUER=http://localhost:8080/realms/dbrepo
 ENV JWT_PUBKEY=public-key
 
-WORKDIR /app
-
 COPY requirements.txt requirements.txt
 
 RUN pip install -r requirements.txt > /dev/null
diff --git a/dbrepo-semantics-service/app.py b/dbrepo-semantics-service/app.py
index 4e9c167c75..a2a2604caa 100644
--- a/dbrepo-semantics-service/app.py
+++ b/dbrepo-semantics-service/app.py
@@ -3,7 +3,6 @@ import logging
 import re
 from flask import Flask, request, jsonify
 from logging.config import dictConfig
-import py_eureka_client.eureka_client as eureka_client
 from flasgger import Swagger
 from flasgger.utils import swag_from
 from flasgger import LazyJSONEncoder
@@ -263,11 +262,6 @@ def get_ontologies(name):
 
 rest_server_port = int(os.getenv('PORT_APP', 5010))
 rest_server_host = os.getenv('FLASK_RUN_HOST', '0.0.0.0')
-eureka_client.init(eureka_server=os.getenv('EUREKA_SERVER', 'http://localhost:9090/eureka/'),
-                   app_name=os.getenv('HOSTNAME', 'fda-units-service'),
-                   instance_ip=os.getenv('HOSTNAME', 'fda-units-service'),
-                   instance_host=os.getenv('HOSTNAME', 'fda-units-service'),
-                   instance_port=rest_server_port)
 
 if __name__ == '__main__':
     http_server = WSGIServer((rest_server_host, rest_server_port), app)
diff --git a/dbrepo-semantics-service/requirements.txt b/dbrepo-semantics-service/requirements.txt
index bf2f5a864c..b3a686a9cd 100644
--- a/dbrepo-semantics-service/requirements.txt
+++ b/dbrepo-semantics-service/requirements.txt
@@ -1,40 +1,55 @@
-attrs==22.2.0
-certifi==2022.12.7
-charset-normalizer==2.1.1
+attrs==23.1.0
+certifi==2023.5.7
+chardet==5.1.0
+charset-normalizer==2.0.12
 click==8.1.3
-dnspython==2.2.1
-docker==6.0.1
+coverage==7.1.0
+docker==5.0.0
+exceptiongroup==1.1.1
 flasgger==0.9.5
 Flask==2.2.2
-gevent==22.10.2
-greenlet==2.0.1
+Flask-JWT-Extended==4.4.4
+gevent==21.8.0
+greenlet==1.1.3.post0
+html5lib==1.1
 idna==3.4
-ifaddr==0.2.0
-importlib-metadata==5.2.0
+importlib-metadata==6.6.0
+iniconfig==2.0.0
 isodate==0.6.1
 itsdangerous==2.1.2
 Jinja2==3.1.2
+json-table-schema==0.2.1
 jsonschema==4.17.3
+lxml==4.9.2
 mariadb==1.0.10
-MarkupSafe==2.1.1
-mistune==2.0.4
-packaging==22.0
-prometheus-client==0.15.0
+MarkupSafe==2.1.2
+messytables==0.15.2
+mistune==2.0.5
+numpy==1.24.3
+packaging==23.1
+pandas==1.2.3
+pluggy==1.0.0
+prometheus-client==0.16.0
 prometheus-flask-exporter==0.21.0
-py-eureka-client==0.11.7
+psycopg2-binary==2.8.6
+PyJWT==2.6.0
 pyparsing==3.0.9
 pyrsistent==0.19.3
+pytest==7.2.1
+python-dateutil==2.8.2
+python-magic==0.4.27
+pytz==2023.3
 PyYAML==6.0
 rdflib==6.2.0
-requests==2.28.1
+requests==2.26.0
 six==1.16.0
-urllib3==1.26.13
-websocket-client==1.4.2
-Werkzeug==2.2.2
-zipp==3.11.0
+SQLAlchemy==1.4.15
+tomli==2.0.1
+urllib3==1.26.15
+webencodings==0.5.1
+websocket-client==1.5.1
+Werkzeug==2.3.3
+xlrd==2.0.1
+zipp==3.15.0
 zope.event==4.6
-zope.interface==5.5.2
-html5lib==1.1
-pytest==7.2.1
-coverage==7.1.0
-Flask-JWT-Extended==4.4.4
\ No newline at end of file
+zope.interface==6.0
diff --git a/dbrepo-table-service/rest-service/src/main/resources/application-local.yml b/dbrepo-table-service/rest-service/src/main/resources/application-local.yml
index ea99819af3..325e6444db 100644
--- a/dbrepo-table-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-table-service/rest-service/src/main/resources/application-local.yml
@@ -35,11 +35,6 @@ logging:
     root: warn
     at.tuwien.: trace
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: table-service
-    non-secure-port: 9094
-  client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   ready.path: ./ready
   jwt:
@@ -47,7 +42,7 @@ fda:
     public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB
   client_secret: client-secret
   client_id: dbrepo-client
-  gateway.endpoint: http://localhost:9095
+  gateway.endpoint: http://localhost
   elastic:
     endpoint: localhost:9200
     username: elastic
diff --git a/dbrepo-table-service/rest-service/src/main/resources/application.yml b/dbrepo-table-service/rest-service/src/main/resources/application.yml
index 24e4a65348..fbe68f3242 100644
--- a/dbrepo-table-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-table-service/rest-service/src/main/resources/application.yml
@@ -35,11 +35,6 @@ logging:
     root: warn
     at.tuwien.: "${LOG_LEVEL}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: table-service
-    non-secure-port: 9094
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
   ready.path: /ready
   jwt:
@@ -47,7 +42,7 @@ fda:
     public_key: "${JWT_PUBKEY}"
   client_secret: "${DBREPO_CLIENT_SECRET}"
   client_id: "${CLIENT_ID}"
-  gateway.endpoint: http://gateway-service:9095
+  gateway.endpoint: http://gateway-service
   elastic:
     endpoint: search-service:9200
     username: elastic
diff --git a/dbrepo-ui/README.md b/dbrepo-ui/README.md
index 50b0454fef..c4f407ba90 100644
--- a/dbrepo-ui/README.md
+++ b/dbrepo-ui/README.md
@@ -44,7 +44,7 @@ See https://nuxtjs.org/
 Configure the `.env` file for the IP and port running or run through terminal:
 
 ```bash
-API=http://fda-gateway-service:9095 npm --prefix ./fda-ui run dev
+API=http://fda-gateway-service npm --prefix ./fda-ui run dev
 ```
 
 Of course you need to add `fda-gateway-service` to your `/etc/hosts` file for Docker "DNS" to your containers:
diff --git a/dbrepo-user-service/Dockerfile b/dbrepo-user-service/Dockerfile
index 58faa272f6..8473a7fc59 100644
--- a/dbrepo-user-service/Dockerfile
+++ b/dbrepo-user-service/Dockerfile
@@ -24,7 +24,7 @@ FROM openjdk:11-jre-slim as runtime
 ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
-ENV GATEWAY_ENDPOINT=http://gateway-service:9095
+ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV JWT_ISSUER=http://localhost:8080/realms/dbrepo
 ENV JWT_PUBKEY=public-key
 ENV LOG_LEVEL=debug
diff --git a/dbrepo-user-service/rest-service/src/main/resources/application-local.yml b/dbrepo-user-service/rest-service/src/main/resources/application-local.yml
index 6a5a1c57f8..c93c21664f 100644
--- a/dbrepo-user-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-user-service/rest-service/src/main/resources/application-local.yml
@@ -35,18 +35,13 @@ logging:
     root: warn
     at.tuwien.: trace
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: user-service
-    non-secure-port: 9098
-  client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   elastic:
     endpoint: localhost:9200
     username: elastic
     password: elastic
   ready.path: ./ready
-  gateway.endpoint: http://localhost:9095
+  gateway.endpoint: http://localhost
   default_role: default-researcher-roles
   jwt:
     issuer: https://localhost:8443/realms/dbrepo
diff --git a/dbrepo-user-service/rest-service/src/main/resources/application.yml b/dbrepo-user-service/rest-service/src/main/resources/application.yml
index f0606a3bf7..8c87174566 100644
--- a/dbrepo-user-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-user-service/rest-service/src/main/resources/application.yml
@@ -35,11 +35,6 @@ logging:
     root: warn
     at.tuwien.: "${LOG_LEVEL}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
-eureka:
-  instance:
-    hostname: user-service
-    non-secure-port: 9098
-  client.serviceUrl.defaultZone: http://discovery-service:9090/eureka/
 fda:
   elastic:
     endpoint: search-service:9200
diff --git a/docker-compose.dbrepo1.yml b/docker-compose.dbrepo1.yml
index b85af3cd4f..626ed083c1 100644
--- a/docker-compose.dbrepo1.yml
+++ b/docker-compose.dbrepo1.yml
@@ -68,7 +68,7 @@ services:
     networks:
       core:
     ports:
-      - "9095:9095"
+      - "80:80"
     env_file:
       - .env
     depends_on:
diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml
index 8984baecab..32ec047479 100644
--- a/docker-compose.prod.yml
+++ b/docker-compose.prod.yml
@@ -68,7 +68,7 @@ services:
     networks:
       core:
     ports:
-      - "9095:9095"
+      - "80:80"
     env_file:
       - .env
     depends_on:
diff --git a/docker-compose.yml b/docker-compose.yml
index 5a3cd4022d..00b55f085c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -49,40 +49,6 @@ services:
     logging:
       driver: json-file
 
-  dbrepo-discovery-service:
-    restart: "no"
-    container_name: dbrepo-discovery-service
-    hostname: discovery-service
-    build: ./dbrepo-discovery-service
-    image: dbrepo-discovery-service
-    networks:
-      core:
-    ports:
-      - "9090:9090"
-    env_file:
-      - .env
-    logging:
-      driver: json-file
-
-  dbrepo-gateway-service:
-    restart: "no"
-    container_name: dbrepo-gateway-service
-    hostname: gateway-service
-    build: ./dbrepo-gateway-service
-    image: dbrepo-gateway-service
-    networks:
-      core:
-      public:
-    ports:
-      - "9095:9095"
-    env_file:
-      - .env
-    depends_on:
-      dbrepo-discovery-service:
-        condition: service_healthy
-    logging:
-      driver: json-file
-
   dbrepo-database-service:
     restart: "no"
     container_name: dbrepo-database-service
@@ -144,8 +110,6 @@ services:
     volumes:
       - authentication-service-data:/opt/keycloak/data/
     depends_on:
-      dbrepo-discovery-service:
-        condition: service_healthy
       dbrepo-metadata-db:
         condition: service_healthy
     logging:
@@ -260,9 +224,6 @@ services:
     volumes:
       - "/tmp:/tmp"
       - /var/run/docker.sock:/var/run/docker.sock
-    depends_on:
-      dbrepo-discovery-service:
-        condition: service_healthy
     logging:
       driver: json-file
 
@@ -302,8 +263,6 @@ services:
       - "/tmp:/tmp"
       - /var/run/docker.sock:/var/run/docker.sock
     depends_on:
-      dbrepo-discovery-service:
-        condition: service_healthy
       dbrepo-metadata-db:
         condition: service_healthy
       dbrepo-authentication-service:
@@ -325,8 +284,6 @@ services:
     env_file:
       - .env
     depends_on:
-      dbrepo-discovery-service:
-        condition: service_healthy
       dbrepo-authentication-service:
         condition: service_healthy
     volumes:
@@ -342,9 +299,6 @@ services:
     image: dbrepo-search-service
     networks:
       core:
-    depends_on:
-      dbrepo-discovery-service:
-        condition: service_healthy
     ports:
       - 9200:9200
       - 9600:9600
@@ -376,12 +330,12 @@ services:
     logging:
       driver: json-file
 
-  dbrepo-proxy:
+  dbrepo-gateway-service:
     restart: "no"
-    container_name: dbrepo-proxy
-    hostname: proxy
-    build: ./dbrepo-proxy
-    image: dbrepo-proxy
+    container_name: dbrepo-gateway-service
+    hostname: gateway-service
+    build: ./dbrepo-gateway-service
+    image: dbrepo-gateway-service
     networks:
       core:
       public:
@@ -393,11 +347,31 @@ services:
     env_file:
       - .env
     depends_on:
+      dbrepo-analyse-service:
+        condition: service_healthy
+      dbrepo-authentication-service:
+        condition: service_healthy
+      dbrepo-broker-service:
+        condition: service_healthy
+      dbrepo-container-service:
+        condition: service_healthy
+      dbrepo-database-service:
+        condition: service_healthy
+      dbrepo-identifier-service:
+        condition: service_healthy
+      dbrepo-metadata-service:
+        condition: service_healthy
+      dbrepo-query-service:
+        condition: service_healthy
       dbrepo-search-service:
         condition: service_started
-      dbrepo-gateway-service:
+      dbrepo-semantics-service:
+        condition: service_healthy
+      dbrepo-table-service:
         condition: service_healthy
       dbrepo-ui:
         condition: service_started
+      dbrepo-user-service:
+        condition: service_healthy
     logging:
       driver: json-file
-- 
GitLab