diff --git a/.docker/.env b/.docker/.env
index 821b16a5c08b6577f7aa1728baded9960c24b311..01d1ace194e18a98d30e02062a69d8165c4abccf 100644
--- a/.docker/.env
+++ b/.docker/.env
@@ -1,4 +1,4 @@
-APP_VERSION=1.8
+APP_VERSION=1.9.0
 FLUENTBIT_VERSION=4.0.0
 GRAFANA_VERSION=11.4.0
 MARIADB_VERSION=11.3.2
diff --git a/.docs/.openapi/api-analyse-service.yaml b/.docs/.openapi/api-analyse-service.yaml
index f96c7bf830ffd2eeeed56cbbc9684ab8f5275d51..287da431362cba6b19ff3783011daa183ae2b889 100644
--- a/.docs/.openapi/api-analyse-service.yaml
+++ b/.docs/.openapi/api-analyse-service.yaml
@@ -111,7 +111,7 @@
   },
   "externalDocs": {
     "description": "Sourcecode Documentation",
-    "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/"
+    "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/"
   },
   "info": {
     "contact": {
diff --git a/.docs/.openapi/api-dashboard-service.yaml b/.docs/.openapi/api-dashboard-service.yaml
index a5f61af6c080dcde0d8908da20ac9e53e3e4b0dd..10a0140d0965d69e1c3b147588b58935973031f3 100644
--- a/.docs/.openapi/api-dashboard-service.yaml
+++ b/.docs/.openapi/api-dashboard-service.yaml
@@ -48,7 +48,7 @@
       "url": "https://www.apache.org/licenses/LICENSE-2.0"
     },
     "title": "Database Repository Dashboard Service API",
-    "version": "1.8.1"
+    "version": "1.9.0"
   },
   "openapi": "3.0.0",
   "paths": {
diff --git a/.docs/.openapi/api-metadata-service.yaml b/.docs/.openapi/api-metadata-service.yaml
index d992719468620d1725f28879194f311f33c8eaad..231e1d3c2e3516dd3be5c7bccb40dd6602dfb337 100644
--- a/.docs/.openapi/api-metadata-service.yaml
+++ b/.docs/.openapi/api-metadata-service.yaml
@@ -8955,6 +8955,9 @@
           "resumptionToken": {
             "type": "string"
           },
+          "parametersString": {
+            "type": "string"
+          },
           "fromDate": {
             "type": "string",
             "format": "date-time"
@@ -8962,9 +8965,6 @@
           "untilDate": {
             "type": "string",
             "format": "date-time"
-          },
-          "parametersString": {
-            "type": "string"
           }
         }
       },
diff --git a/.docs/.openapi/api.yaml b/.docs/.openapi/api.yaml
index ef825194a68f894db0727e1c6976631c4564d230..3ed4b4aea0880a0f2f874f2e042930eb411752c0 100644
--- a/.docs/.openapi/api.yaml
+++ b/.docs/.openapi/api.yaml
@@ -24,7 +24,7 @@ servers:
     url: 'http://localhost'
 externalDocs:
   description: Project Website
-  url: 'https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/'
+  url: 'https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/'
 paths:
   /api/analyse/datatypes:
     get:
@@ -8531,14 +8531,14 @@ components:
           type: string
         resumptionToken:
           type: string
+        parametersString:
+          type: string
         fromDate:
           type: string
           format: date-time
         untilDate:
           type: string
           format: date-time
-        parametersString:
-          type: string
     BannerMessageDto:
       type: object
       properties:
diff --git a/.docs/kubernetes.md b/.docs/kubernetes.md
index 379a719054bd7a6203d6acc60f960e09cb92291a..0712b72ec8a45fa4b44a369c39753bda2bc00b3b 100644
--- a/.docs/kubernetes.md
+++ b/.docs/kubernetes.md
@@ -6,7 +6,7 @@ author: Martin Weise
 
 To install DBRepo in your existing cluster, download the
 sample [
-`values.yaml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/release-1.8/helm/dbrepo/values.yaml)
+`values.yaml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/release-1.9/helm/dbrepo/values.yaml)
 for your deployment and update the variables, especially `hostname`.
 
 ```shell
diff --git a/.env b/.env
index 821b16a5c08b6577f7aa1728baded9960c24b311..01d1ace194e18a98d30e02062a69d8165c4abccf 100644
--- a/.env
+++ b/.env
@@ -1,4 +1,4 @@
-APP_VERSION=1.8
+APP_VERSION=1.9.0
 FLUENTBIT_VERSION=4.0.0
 GRAFANA_VERSION=11.4.0
 MARIADB_VERSION=11.3.2
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4b67e9bc34c6d524bc2ea718c28551e8b14ecc7c..f2fa34f5eac19a330e253277fe5a6d46ca1167de 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,7 +14,7 @@ variables:
   DOC_VERSION: "1.9"
   APP_VERSION: "1.9.0"
   CHART_VERSION: "1.9.0"
-  SUPPORTED_VERSIONS: "1.8.0, 1.8.1, 1.9.0"
+  SUPPORTED_VERSIONS: "1.8.0, 1.8.1, 1.8.2, 1.9.0"
   SUPPORTED_ARCH: "linux/amd64"
   MAINTAINED_SERVICES: "analyse-service, auth-service-init, dashboard-service, dashboard-service-init, data-service, metadata-service, search-db, search-service, search-service-init, storage-service-init, ui"
   CACHE_FALLBACK_KEY: "${CI_DEFAULT_BRANCH}"
@@ -180,7 +180,7 @@ build-analyse-service:
     PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
   script:
     - "pip install pipenv"
-    - "pipenv install gunicorn && pipenv install --dev --system --deploy"
+    - "pipenv install --dev --system --deploy"
 
 build-python-lib:
   image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
@@ -192,7 +192,7 @@ build-python-lib:
     PIPENV_PIPFILE: "./lib/python/Pipfile"
   script:
     - "pip install pipenv"
-    - "pipenv install gunicorn && pipenv install --dev --system --deploy"
+    - "pipenv install --dev --system --deploy"
 
 build-java-lib:
   image: maven:3-openjdk-${JAVA_VERSION}
@@ -355,7 +355,7 @@ test-analyse-service:
     - build-analyse-service
   before_script:
     - "pip install pipenv"
-    - "pipenv install gunicorn && pipenv install --dev --system --deploy"
+    - "pipenv install --dev --system --deploy"
     - "mkdir -p /var/log/app/service/analyse"
   script:
     - cd ./dbrepo-analyse-service/ && coverage run --rcfile=.coveragerc -m pytest tests/test_determine_dt.py tests/test_determine_pk.py && coverage html && coverage xml && coverage report > ./coverage.txt
@@ -382,7 +382,7 @@ test-auth-service-init:
   before_script:
     - "apk add --no-cache alpine-sdk gcc python3-dev mariadb-connector-c-dev"
     - "pip install pipenv"
-    - "pipenv install gunicorn && pipenv install --dev --system --deploy"
+    - "pipenv install --dev --system --deploy"
   script:
     - cd ./dbrepo-auth-service/init/ && coverage run --rcfile=.coveragerc -m pytest tests/test_unit_app.py && coverage html && coverage xml && coverage report > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
@@ -410,7 +410,7 @@ test-search-service:
     - build-search-service
   before_script:
     - "pip install pipenv"
-    - "pipenv install gunicorn && pipenv install --dev --system --deploy"
+    - "pipenv install --dev --system --deploy"
     - "mkdir -p /var/log/app/service/search"
   script:
     - cd ./dbrepo-search-service/ && coverage run --rcfile=.coveragerc -m pytest tests/test_app.py && coverage html && coverage xml && coverage report > ./coverage.txt
@@ -440,7 +440,7 @@ test-dashboard-service:
     - build-dashboard-service
   before_script:
     - "pip install pipenv"
-    - "pipenv install gunicorn && pipenv install --dev --system --deploy"
+    - "pipenv install --dev --system --deploy"
     - "mkdir -p /var/log/app/service/dashboard"
   script:
     - cd ./dbrepo-dashboard-service/ && coverage run --rcfile=.coveragerc -m pytest tests/test_integration_app.py && coverage html && coverage xml && coverage report > ./coverage.txt
@@ -470,7 +470,7 @@ test-python-lib:
     - build-python-lib
   script:
     - "pip install pipenv"
-    - "pipenv install gunicorn && pipenv install --dev --system --deploy"
+    - "pipenv install --dev --system --deploy"
     - cd ./lib/python/ && coverage run --rcfile=.coveragerc -m pytest tests/test_unit_container.py tests/test_unit_messages.py tests/test_unit_image.py tests/test_unit_concept.py tests/test_unit_database.py tests/test_unit_identifier.py tests/test_unit_license.py tests/test_unit_query.py tests/test_unit_rest_client.py tests/test_unit_table.py tests/test_unit_user.py tests/test_unit_view.py tests/test_unit_unit.py && coverage html && coverage xml && coverage report > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
   artifacts:
@@ -677,14 +677,25 @@ scan-sonarqube:
   only:
     - master
   needs:
-    - build-data-service
     - build-java-lib
-  dependencies:
+    - test-analyse-service
+    - test-dashboard-service
     - build-data-service
+    - test-data-service
+    - build-metadata-service
+    - test-metadata-service
+    - test-search-service
+  dependencies:
     - build-java-lib
+    - test-analyse-service
+    - test-dashboard-service
+    - build-data-service
+    - test-data-service
+    - build-metadata-service
+    - test-metadata-service
+    - test-search-service
   script:
     - 'sonar-scanner -Dsonar.token="${CI_SONAR_TOKEN}"'
-  allow_failure: true
   cache:
     policy: pull
     key: "${CI_COMMIT_SHORT_SHA}"
diff --git a/.s3cfg b/.s3cfg
new file mode 100644
index 0000000000000000000000000000000000000000..5d33284185529b63eca11f14dad396e3b3485cfb
--- /dev/null
+++ b/.s3cfg
@@ -0,0 +1,8 @@
+access_key = seaweedfsadmin
+secret_key = seaweedfsadmin
+# Setup endpoint
+host_base = http://localhost:9000
+host_bucket = dbrepo
+use_https = False
+# Enable S3 v4 signature APIs
+signature_v2 = False
\ No newline at end of file
diff --git a/dbrepo-analyse-service/app.py b/dbrepo-analyse-service/app.py
index 7fc24462e6d3b9458eb4c7d633ec007133b3122a..8cedd64ec8d5109ec58c92e75f9b7f077a84f54e 100644
--- a/dbrepo-analyse-service/app.py
+++ b/dbrepo-analyse-service/app.py
@@ -212,7 +212,7 @@ template = {
     },
     "externalDocs": {
         "description": "Sourcecode Documentation",
-        "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/"
+        "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/"
     },
     "servers": [
         {
diff --git a/dbrepo-auth-service/listeners/create-event-listener.jar b/dbrepo-auth-service/listeners/create-event-listener.jar
index 4c4a9343327c857af1077c62042cb0fbf47036ff..4021de47581fb5d9a8275b9170308bd9a16362c7 100644
Binary files a/dbrepo-auth-service/listeners/create-event-listener.jar and b/dbrepo-auth-service/listeners/create-event-listener.jar differ
diff --git a/dbrepo-dashboard-service/app.py b/dbrepo-dashboard-service/app.py
index f3346da29455690ef34336894d84602dc41a0e1e..20f4c8aaf2f589e2d554619f738f63f1d2457024 100644
--- a/dbrepo-dashboard-service/app.py
+++ b/dbrepo-dashboard-service/app.py
@@ -91,7 +91,7 @@ template = {
     "info": {
         "title": "Database Repository Dashboard Service API",
         "description": "Service that manages the dashboards",
-        "version": "1.8.1",
+        "version": "1.9.0",
         "contact": {
             "name": "Prof. Andreas Rauber",
             "email": "andreas.rauber@tuwien.ac.at"
diff --git a/dbrepo-dashboard-ui/dashboards/System/dbrepo.json b/dbrepo-dashboard-ui/dashboards/System/dbrepo.json
index dc3d570df03df3c485aa9ed64caadaf2b1e75c03..f014c05f38cbe9b71200a2f30c318ee4f6c19450 100644
--- a/dbrepo-dashboard-ui/dashboards/System/dbrepo.json
+++ b/dbrepo-dashboard-ui/dashboards/System/dbrepo.json
@@ -30,7 +30,7 @@
       "title": "Docs",
       "tooltip": "",
       "type": "link",
-      "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/"
+      "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/"
     }
   ],
   "panels": [
diff --git a/dbrepo-data-service/pom.xml b/dbrepo-data-service/pom.xml
index 1c34793f7b1b756935966353a83bbf7a50e1c87d..566fe3728d38f051599719470f37d7ad531edeaf 100644
--- a/dbrepo-data-service/pom.xml
+++ b/dbrepo-data-service/pom.xml
@@ -28,7 +28,7 @@
         <module>report</module>
     </modules>
 
-    <url>https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/</url>
+    <url>https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/</url>
     <developers>
         <developer>
             <name>Martin Weise</name>
diff --git a/dbrepo-data-service/report/pom.xml b/dbrepo-data-service/report/pom.xml
index 71715bf5b54eee58a9af6a05fe8f5f29237ad366..409ffcc5622e175daedb1b12d816659fe87344f0 100644
--- a/dbrepo-data-service/report/pom.xml
+++ b/dbrepo-data-service/report/pom.xml
@@ -13,11 +13,6 @@
     <artifactId>report</artifactId>
     <version>1.9.0</version>
 
-    <description>
-        This module is only intended for the pipeline coverage report. See the detailed report in the
-        respective modules
-    </description>
-
     <dependencies>
         <dependency>
             <groupId>at.ac.tuwien.ifs.dbrepo</groupId>
diff --git a/dbrepo-data-service/rest-service/pom.xml b/dbrepo-data-service/rest-service/pom.xml
index e596ecdff7181f2e220b15e408148076ac6e6c99..8965b3d36dbbe9c3a4c5c5aa2f3696192515d8bf 100644
--- a/dbrepo-data-service/rest-service/pom.xml
+++ b/dbrepo-data-service/rest-service/pom.xml
@@ -21,10 +21,6 @@
         </dependency>
     </dependencies>
 
-    <properties>
-        <jacoco.version>0.8.7</jacoco.version>
-    </properties>
-
     <build>
         <plugins>
             <plugin>
@@ -38,14 +34,6 @@
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>9</source>
-                    <target>9</target>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
 
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariadbConfigTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariadbConfigTest.java
index cf01a12760703a1be609e9f697873d969c0402e9..a1b37c632fff2ac7684cfdcd96bacb0df3b152c3 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariadbConfigTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/MariadbConfigTest.java
@@ -1,13 +1,11 @@
 package at.ac.tuwien.ifs.dbrepo.config;
 
-import at.ac.tuwien.ifs.dbrepo.service.DatabaseService;
 import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.testcontainers.containers.MariaDBContainer;
@@ -18,6 +16,7 @@ import java.sql.SQLException;
 import java.sql.SQLTimeoutException;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @Slf4j
 @SpringBootTest
@@ -25,18 +24,17 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 @Testcontainers
 public class MariadbConfigTest extends BaseTest {
 
-    @Autowired
-    private DatabaseService databaseService;
-
     @Container
     private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer();
 
     @BeforeAll
+    @SuppressWarnings("java:S2925")
     public static void beforeAll() throws InterruptedException {
         Thread.sleep(1000) /* wait for test container some more */;
     }
 
     @BeforeEach
+    @SuppressWarnings("java:S2925")
     public void beforeEach() throws SQLException, InterruptedException {
         /* metadata database */
         MariaDbConfig.dropDatabase(CONTAINER_1_PRIVILEGED_DTO, DATABASE_1_INTERNAL_NAME);
@@ -49,6 +47,7 @@ public class MariadbConfigTest extends BaseTest {
 
         /* test */
         MariaDbConfig.execute(DATABASE_1_PRIVILEGED_DTO, "SELECT SLEEP(8);"); // -2
+        assertTrue(true);
     }
 
     @Test
diff --git a/dbrepo-data-service/services/pom.xml b/dbrepo-data-service/services/pom.xml
index 932d7bef7d80cea5ef4e34e03a9ffe210743ecd0..3388d031acae457da0a0d434112f4baf6afb8da3 100644
--- a/dbrepo-data-service/services/pom.xml
+++ b/dbrepo-data-service/services/pom.xml
@@ -47,4 +47,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataConnector.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataConnector.java
index 6f0873ada024631804b3d6fe18427800d2e72112..c1f97158f48a5a3ce408b86834fe4f6fbfb2f1db 100644
--- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataConnector.java
+++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataConnector.java
@@ -26,8 +26,6 @@ public abstract class DataConnector {
         dataSource.setAcquireIncrement(5);
         dataSource.setMaxPoolSize(20);
         dataSource.setMaxStatements(100);
-        log.trace("mapped datasource, jdbcUrl={}, user={}, password={}", getJdbcUrl(container, databaseName),
-                container.getUsername(), container.getPassword());
         return dataSource;
     }
 
diff --git a/dbrepo-metadata-service/pom.xml b/dbrepo-metadata-service/pom.xml
index 1ef2423315395bd177fb363b95dbfe943624dcaa..d7adb9dfae03884e59ead564f6f78dd82bfdd145 100644
--- a/dbrepo-metadata-service/pom.xml
+++ b/dbrepo-metadata-service/pom.xml
@@ -29,7 +29,7 @@
         <module>report</module>
     </modules>
 
-    <url>https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/</url>
+    <url>https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/</url>
     <developers>
         <developer>
             <name>Martin Weise</name>
diff --git a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
index e5bf8efa9bd8ad202bf3f82d9a087106ca35dd73..0ce9c93a5407241bb5523fb4ac5b5661b87f0158 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
@@ -48,6 +48,8 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
     private final IdentifierService identifierService;
     private final IdentifierRepository identifierRepository;
 
+    private static final String LOG_MINT_FAILED = "Failed to mint doi";
+
     private final ParameterizedTypeReference<DataCiteBody<DataCiteDoi>> dataCiteBodyParameterizedTypeReference = new ParameterizedTypeReference<>() {
     };
 
@@ -152,8 +154,8 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
             final ResponseEntity<DataCiteBody<DataCiteDoi>> response = restTemplate.exchange(url, HttpMethod.POST,
                     request, dataCiteBodyParameterizedTypeReference);
             if (response.getStatusCode() != HttpStatus.CREATED || response.getBody() == null) {
-                log.error("Failed to mint doi: {}", response);
-                throw new ExternalServiceException("Failed to mint doi: " + response.getBody());
+                log.error(LOG_MINT_FAILED + ": {}", response);
+                throw new ExternalServiceException(LOG_MINT_FAILED + ": " + response.getBody());
             }
             final String doi = response.getBody()
                     .getData()
@@ -166,16 +168,16 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
             return doi;
         } catch (HttpClientErrorException e) {
             log.atError()
-                    .setMessage("Failed to mint doi")
+                    .setMessage(LOG_MINT_FAILED)
                     .setCause(e)
                     .log();
-            throw new MalformedException("Failed to mint doi: " + e.getMessage(), e);
+            throw new MalformedException(LOG_MINT_FAILED + ": " + e.getMessage(), e);
         } catch (RestClientException e) {
             log.atError()
-                    .setMessage("Failed to mint doi")
+                    .setMessage(LOG_MINT_FAILED)
                     .setCause(e)
                     .log();
-            throw new DataServiceConnectionException("Failed to mint doi: " + e.getMessage(), e);
+            throw new DataServiceConnectionException(LOG_MINT_FAILED + ": " + e.getMessage(), e);
         }
     }
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
index 947a6a25c26ce84527da8debbeba6cacc29a4383..4e275ea07f7b9892829fba8eee7b229f3f2d8a55 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/IdentifierServiceImpl.java
@@ -354,8 +354,7 @@ public class IdentifierServiceImpl implements IdentifierService {
         /* map */
         final String body = templateEngine.process("record_oai_datacite.xml", context)
                 .replaceAll("\\s+", " ");
-        final InputStreamResource resource = new InputStreamResource(IOUtils.toInputStream(body, Charset.defaultCharset()));
-        return resource;
+        return new InputStreamResource(IOUtils.toInputStream(body, Charset.defaultCharset()));
     }
 
     @Override
diff --git a/helm/dbrepo/Chart.yaml b/helm/dbrepo/Chart.yaml
index ecfed0cff332924f8cc7bf642796d23dd676a9d2..da537a39bb6ebd4ad8698ec44cd1d9a4c85f418f 100644
--- a/helm/dbrepo/Chart.yaml
+++ b/helm/dbrepo/Chart.yaml
@@ -14,7 +14,7 @@ keywords:
 maintainers:
   - name: Martin Weise
     email: martin.weise@tuwien.ac.at
-home: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/
+home: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/
 icon: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/dbrepo-ui/public/favicon.png
 dependencies:
   - name: opensearch
diff --git a/helm/dbrepo/charts/seaweedfs-4.8.7.tgz b/helm/dbrepo/charts/seaweedfs-4.8.7.tgz
index f19355d1950558de18df986e4e15ba0cf2f0fd7b..d66de2af15ba6ad18f5545f7565f1b8cc7e5bf77 100644
Binary files a/helm/dbrepo/charts/seaweedfs-4.8.7.tgz and b/helm/dbrepo/charts/seaweedfs-4.8.7.tgz differ
diff --git a/helm/dbrepo/files/create-event-listener.jar b/helm/dbrepo/files/create-event-listener.jar
index b12b31aced8b896c987b3997654a2f5144917c00..4021de47581fb5d9a8275b9170308bd9a16362c7 100644
Binary files a/helm/dbrepo/files/create-event-listener.jar and b/helm/dbrepo/files/create-event-listener.jar differ
diff --git a/helm/dbrepo/files/dbrepo.json b/helm/dbrepo/files/dbrepo.json
index dc3d570df03df3c485aa9ed64caadaf2b1e75c03..f014c05f38cbe9b71200a2f30c318ee4f6c19450 100644
--- a/helm/dbrepo/files/dbrepo.json
+++ b/helm/dbrepo/files/dbrepo.json
@@ -30,7 +30,7 @@
       "title": "Docs",
       "tooltip": "",
       "type": "link",
-      "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/"
+      "url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/"
     }
   ],
   "panels": [
diff --git a/install.sh b/install.sh
index 0e1bfba0469afcc1b3ab8c13cce78cd60f484b91..555723506cd0b06efa6ceffbe85277b3ff8673c3 100644
--- a/install.sh
+++ b/install.sh
@@ -45,8 +45,8 @@ else
 fi
 
 # environment
-echo "[🚀] Gathering environment for version ${VERSION} ..."
-curl -ksSL -o ./dist.tar.gz "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/${VERSION}/dist.tar.gz"
+echo "[🚀] Gathering environment for version ${APP_VERSION} ..."
+curl -ksSL -o ./dist.tar.gz "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/${APP_VERSION}/dist.tar.gz"
 tar xzfv ./dist.tar.gz
 
 if [[ $DOWNLOAD_ONLY -eq 1 ]]; then
@@ -54,7 +54,7 @@ if [[ $DOWNLOAD_ONLY -eq 1 ]]; then
   exit 0
 fi
 
-echo "[📦] Pulling images for version ${VERSION} ..."
+echo "[📦] Pulling images for version ${APP_VERSION} ..."
 docker compose pull
 
 echo "[🎉] Success!"
@@ -68,4 +68,4 @@ echo "Then start the local deployment with:"
 echo ""
 echo "  docker compose up -d"
 echo ""
-echo "Read about next steps online: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/${VERSION}/installation/#next-steps"
+echo "Read about next steps online: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/${APP_VERSION}/installation/#next-steps"
diff --git a/lib/java/dbrepo-core/pom.xml b/lib/java/dbrepo-core/pom.xml
index 487d9c9215c5a409ffa9c75bae7191e53140ee4c..d193c09e1265da2dab05e3350903021dd31963c4 100644
--- a/lib/java/dbrepo-core/pom.xml
+++ b/lib/java/dbrepo-core/pom.xml
@@ -22,7 +22,7 @@
 
     <description>Core library for DBRepo</description>
 
-    <url>https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/</url>
+    <url>https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/</url>
     <developers>
         <developer>
             <name>Martin Weise</name>
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
index 78269ab3086009ca047d71a841ecbad57b5b8969..e5437b5cd9af0f025b3d8e192160f567cf78f633 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/test/BaseTest.java
@@ -262,6 +262,7 @@ public class BaseTest {
             .type(AccessTypeDto.WRITE_ALL)
             .build();
 
+    @SuppressWarnings("java:S6418")
     public final static String TOKEN_ACCESS_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ0Mk9DZUNoZUo5dXdvQmJOUWpHX25ONldLaUxjY2VUSUFabWlUYkdPREZNIn0.eyJleHAiOjE3NDQxMTI1MzksImlhdCI6MTc0NDExMTYzOSwiYXV0aF90aW1lIjoxNzQ0MDkzNTMwLCJqdGkiOiI2MWNlODZjNi1kOTYzLTQxOTUtODE2NS00MTdiNDBkZjNhMmUiLCJpc3MiOiJodHRwczovL2RicmVwbzEuZWMudHV3aWVuLmFjLmF0L3JlYWxtcy9kYnJlcG8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiN2JkMWE2MDEtZjYyOS00MjA3LWEyMDEtNTY3MDRiYzI5ZTVlIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZGJyZXBvLWNsaWVudCIsInNpZCI6ImQ5Y2FjN2NiLTc2OTctNGM3OS1iODRhLWViN2ViYzgzNDFhZCIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWxldGUtZGF0YWJhc2UtdmlldyIsImV4cG9ydC1xdWVyeS1kYXRhIiwiZXhlY3V0ZS1xdWVyeSIsImRlZmF1bHQtdXNlci1oYW5kbGluZyIsImRlbGV0ZS10YWJsZS1kYXRhIiwiZmluZC1xdWVyeSIsImxpc3QtZGF0YWJhc2Utdmlld3MiLCJwZXJzaXN0LXF1ZXJ5IiwiZGVsZXRlLWRhdGFiYXNlLWFjY2VzcyIsInZpZXctdGFibGUtaGlzdG9yeSIsIm1vZGlmeS11c2VyLXRoZW1lIiwibW9kaWZ5LXZpZXctdmlzaWJpbGl0eSIsImNyZWF0ZS1zZW1hbnRpYy1jb25jZXB0IiwiZGVmYXVsdC1jb250YWluZXItaGFuZGxpbmciLCJjcmVhdGUtdGFibGUiLCJkZWZhdWx0LWJyb2tlci1oYW5kbGluZyIsImV4ZWN1dGUtc2VtYW50aWMtcXVlcnkiLCJ0YWJsZS1zZW1hbnRpYy1hbmFseXNlIiwiY2hlY2stZGF0YWJhc2UtYWNjZXNzIiwiZGVmYXVsdC12aWV3LWhhbmRsaW5nIiwiZGVsZXRlLWlkZW50aWZpZXIiLCJtb2RpZnktZGF0YWJhc2Utb3duZXIiLCJsaXN0LXRhYmxlcyIsImV4cG9ydC10YWJsZS1kYXRhIiwiY3JlYXRlLWRhdGFiYXNlLWFjY2VzcyIsInJlLWV4ZWN1dGUtcXVlcnkiLCJjcmVhdGUtc2VtYW50aWMtdW5pdCIsInVwZGF0ZS10YWJsZS1zdGF0aXN0aWMiLCJkZWZhdWx0LWRhdGFiYXNlLWhhbmRsaW5nIiwiZmluZC1kYXRhYmFzZSIsImZpbmQtZGF0YWJhc2UtdmlldyIsImltcG9ydC1kYXRhYmFzZS1kYXRhIiwicHVibGlzaC1pZGVudGlmaWVyIiwidXBkYXRlLWRhdGFiYXNlLXZpZXciLCJkZWZhdWx0LXJvbGVzLWRicmVwbyIsImNyZWF0ZS1kYXRhYmFzZSIsImRlZmF1bHQtcmVzZWFyY2hlci1yb2xlcyIsImRlZmF1bHQtaWRlbnRpZmllci1oYW5kbGluZyIsIm1vZGlmeS11c2VyLWluZm9ybWF0aW9uIiwiY3JlYXRlLWRhdGFiYXNlLXZpZXciLCJmaW5kLWNvbnRhaW5lciIsImluc2VydC10YWJsZS1kYXRhIiwidXBkYXRlLXRhYmxlIiwibW9kaWZ5LWRhdGFiYXNlLWltYWdlIiwibW9kaWZ5LXRhYmxlLWNvbHVtbi1zZW1hbnRpY3MiLCJkZWZhdWx0LXNlbWFudGljcy1oYW5kbGluZyIsInVwZGF0ZS1kYXRhYmFzZS1hY2Nlc3MiLCJkZWZhdWx0LXF1ZXJ5LWhhbmRsaW5nIiwiZmluZC10YWJsZSIsImxpc3QtcXVlcmllcyIsImNyZWF0ZS1pZGVudGlmaWVyIiwiZmluZC1pZGVudGlmaWVyIiwidmlldy10YWJsZS1kYXRhIiwiZGVmYXVsdC1zdG9yYWdlLXJvbGVzIiwiZGVmYXVsdC10YWJsZS1oYW5kbGluZyIsImxpc3QtaWRlbnRpZmllcnMiLCJsaXN0LWRhdGFiYXNlcyIsIm1vZGlmeS1kYXRhYmFzZS12aXNpYmlsaXR5IiwidXBsb2FkLWZpbGUiLCJkZWxldGUtdGFibGUiXX0sInNjb3BlIjoib3BlbmlkIiwidWlkIjoiNmY1YTc0MzQtYTQwOS0xMDNmLTk2NmItMTFiNjU4OGRkOTEzIiwiaWRlbnRpdHlfcHJvdmlkZXIiOiJzYW1sIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjg3NzIyIiwiZ2l2ZW5fbmFtZSI6Ik1hcnRpbiIsImZhbWlseV9uYW1lIjoiV2Vpc2UifQ.Nfp0MIKuqjrEZqQXjPNRU2MuYyIJXhQVjdg7XY5_oqkYIngCoQ0y3ioBhMGT2XHd8kufk7FEP6Kme9Ihvm1Qx6rAejcSLaA6xnhQDrX6SGGQ9Kfm_9Ewv6IHoX--Yt3aKLu_YQ4eiDdxxEP4jbl-H6hM4_vwaJYe7vcfSE1lkewno_yYrhW6btPRfrbLy4_57vBK6MLN1h8A-ePx1037KnIXIRDOu0hZwidz4mVZjQ6x3arBYT9iFQmIkgucLMriuRPF_PoEHkUajJ06Y9xQuSa9MNtr_ALkUEbGnzBCAeNwIChavxdz7Be_x1qRTeOsdVD0mHJf_ePeXjmDUtV45w";
     public final static String TOKEN_ACCESS_SCOPE = "openid";
 
diff --git a/lib/python/docs/index.rst b/lib/python/docs/index.rst
index b7b6bf88e0d7401360df5b7c8b15409e8c3c1fb1..5f4e4c633ac60016fa72dbe7f6fcbf7007d3f203 100644
--- a/lib/python/docs/index.rst
+++ b/lib/python/docs/index.rst
@@ -6,7 +6,7 @@ Pandas `DataFrame <https://pandas.pydata.org/docs/reference/api/pandas.DataFrame
 provides an object-oriented API as well as low-level access to DBRepo services.
 
 .. note::
-   The SDK has been implemented and documented for DBRepo version 1.8.0, earlier versions may be supported but are not tested for compatibility.
+   The SDK has been implemented and documented for DBRepo version 1.9.0, earlier versions may be supported but are not tested for compatibility.
 
 Quickstart
 ----------
diff --git a/lib/python/pyproject.toml b/lib/python/pyproject.toml
index 1041fb405740e3a76d0b6c6b3efba7deb433a637..50ee92410fbf74ed73f9a298c30c649023aca3e1 100644
--- a/lib/python/pyproject.toml
+++ b/lib/python/pyproject.toml
@@ -33,7 +33,7 @@ requires = [
 build-backend = "setuptools.build_meta"
 
 [project.urls]
-Homepage = "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/"
-Documentation = "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/python/"
+Homepage = "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/"
+Documentation = "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/python/"
 Issues = "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/issues"
 Source = "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/"
\ No newline at end of file
diff --git a/lib/python/setup.py b/lib/python/setup.py
index 693cc81bc070b80820ad76ebb89d7707454eb1a5..1c6a1013ba228b0b9dce10bb12eb7dbbf4c7dc9f 100644
--- a/lib/python/setup.py
+++ b/lib/python/setup.py
@@ -4,7 +4,7 @@ from distutils.core import setup
 setup(name="dbrepo",
       version="1.9.0",
       description="A library for communicating with DBRepo",
-      url="https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/",
+      url="https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/",
       author="Martin Weise",
       license="Apache-2.0",
       author_email="martin.weise@tuwien.ac.at",
diff --git a/mkdocs.yml b/mkdocs.yml
index 5051d9a3280ca8508dc30a1da884dcbe0cf09be6..204f83473447bee20e8563d9896f5491dde5e5e7 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -120,9 +120,9 @@ markdown_extensions:
         custom_icons:
           - .docs/overrides/.icons
 extra:
-  homepage: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/
+  homepage: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/
   version:
-    default: 1.8
+    default: 1.9
     provider: mike
   social:
     - icon: simple/artifacthub
diff --git a/sonar-project.properties b/sonar-project.properties
index 4d37d8f9e19b0eb23771a609288788c280596cb0..627e560efa132c24d49bebfd850daf6772a86a4e 100644
--- a/sonar-project.properties
+++ b/sonar-project.properties
@@ -1,15 +1,17 @@
 # sonarqube
 sonar.projectKey=fair-data-austria-db-repository_fda-services_a57fa043-ab99-4cdd-a721-162d9a916d77
-sonar.host.url=https://s39.datalab.tuwien.ac.at
+sonar.host.url=https://s39.datalab.tuwien.ac.at/sonarqube/
 # project
 sonar.projectVersion=1.9.0
 # general
 sonar.qualitygate.wait=true
 sonar.projectCreation.mainBranchName=master
 # java services
-sonar.sources=./lib/java/dbrepo-core/src/main,./dbrepo-metadata-service/services/src/main,./dbrepo-metadata-service/repositories/src/main,./dbrepo-metadata-service/rest-service/src/main,./dbrepo-metadata-service/api/src/main,./dbrepo-metadata-service/oai/src/main,./dbrepo-data-service/services/src/main,./dbrepo-data-service/rest-service/src/main,./dbrepo-data-service/querystore/src/main
-sonar.java.binaries=./lib/java/dbrepo-core/target/classes,./dbrepo-metadata-service/services/target/classes,./dbrepo-metadata-service/repositories/target/classes,./dbrepo-metadata-service/rest-service/target/classes,./dbrepo-metadata-service/api/target/classes,./dbrepo-metadata-service/oai/target/classes,./dbrepo-data-service/services/target/classes,./dbrepo-data-service/rest-service/target/classes,./dbrepo-data-service/querystore/target/classes
+sonar.coverage.jacoco.xmlReportPaths=./dbrepo-data-service/report/target/site/jacoco-aggregate/jacoco.xml,./dbrepo-metadata-service/report/target/site/jacoco-aggregate/jacoco.xml
+sonar.tests=./dbrepo-metadata-service/rest-service/src/test,./dbrepo-data-service/rest-service/src/test
+sonar.sources=./lib/java/dbrepo-core/src/main,./dbrepo-metadata-service/services/src/main,./dbrepo-metadata-service/repositories/src/main,./dbrepo-metadata-service/rest-service/src/main,./dbrepo-metadata-service/oai/src/main,./dbrepo-data-service/services/src/main,./dbrepo-data-service/rest-service/src/main,./dbrepo-data-service/querystore/src/main
+sonar.java.binaries=./lib/java/dbrepo-core/target/classes,./dbrepo-metadata-service/services/target/classes,./dbrepo-metadata-service/repositories/target/classes,./dbrepo-metadata-service/rest-service/target/classes,./dbrepo-metadata-service/oai/target/classes,./dbrepo-data-service/services/target/classes,./dbrepo-data-service/rest-service/target/classes,./dbrepo-data-service/querystore/target/classes
 sonar.junit.reportPaths=./dbrepo-metadata-service/rest-service/target/surefire-reports,./dbrepo-data-service/rest-service/target/surefire-reports
-sonar.coverage.jacoco.xmlReportPaths=./dbrepo-metadata-service/report/target/site/jacoco-aggregate/jacoco.xml,./dbrepo-data-service/report/target/site/jacoco-aggregate/jacoco.xml
 # python services
-sonar.python.version=3.11
+sonar.python.coverage.reportPaths=./dbrepo-analyse-service/coverage.xml,./dbrepo-dashboard-service/coverage.xml,./dbrepo-search-service/coverage.xml
+sonar.python.version=3.11
\ No newline at end of file
diff --git a/versions.json b/versions.json
index f2244538ba971ec76911ffacec64c9bf23e5207b..7a8c81bf0a5f84b6b4ac694af51797254a91907e 100644
--- a/versions.json
+++ b/versions.json
@@ -1,8 +1,13 @@
 [
+  {
+    "version": "1.9",
+    "title": "1.9",
+    "aliases": ["latest"]
+  },
   {
     "version": "1.8",
     "title": "1.8",
-    "aliases": ["latest"]
+    "aliases": []
   },
   {
     "version": "1.7",