diff --git a/docker-compose.yml b/docker-compose.yml
index 13e076dbb3fc09ac23ab60998f36b863c52ad7e0..02ba641461872785da658c9161496eb23d6579ee 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -86,6 +86,8 @@ services:
       fda-userdb:
       fda-public:
     environment:
+      GATEWAY_ENDPOINT: http://fda-gateway-service:9095
+      SEARCH_ENDPOINT: fda-search-service:9200
       SPRING_PROFILES_ACTIVE: docker
       TZ: Europe/Vienna
     ports:
@@ -111,6 +113,7 @@ services:
     networks:
       fda-public:
     environment:
+      GATEWAY_ENDPOINT: http://fda-gateway-service:9095
       SPRING_PROFILES_ACTIVE: docker
       TZ: Europe/Vienna
     ports:
@@ -132,8 +135,6 @@ services:
     networks:
       fda-public:
     environment:
-      TOKEN: ${INVENIO_TOKEN}
-      REFERER: https://dbrepo.ossdip.at
       DOCUMENT_ENDPOINT: https://test.researchdata.tuwien.ac.at
       GATEWAY_ENDPOINT: http://fda-gateway-service:9095
       SPRING_PROFILES_ACTIVE: docker
@@ -207,8 +208,9 @@ services:
       fda-public:
       fda-userdb:
     environment:
+      GATEWAY_ENDPOINT: http://fda-gateway-service:9095
+      SEARCH_ENDPOINT: fda-search-service:9200
       SPRING_PROFILES_ACTIVE: docker
-      SYSTEM_PASSWORD: ${ADMIN_PASSWORD:-admin}
       multipart.location: /tmp
       TZ: Europe/Vienna
     ports:
@@ -235,6 +237,7 @@ services:
     networks:
       fda-public:
     environment:
+      GATEWAY_ENDPOINT: http://fda-gateway-service:9095
       SPRING_PROFILES_ACTIVE: docker
       TZ: Europe/Vienna
     ports:
diff --git a/fda-container-service/rest-service/src/main/resources/application-docker.yml b/fda-container-service/rest-service/src/main/resources/application-docker.yml
index 9351dd0b182779d9e1f64f0a24936df408d33e28..00055336d04fec7e1cd750353c76c985d24c33d8 100644
--- a/fda-container-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-container-service/rest-service/src/main/resources/application-docker.yml
@@ -29,4 +29,4 @@ eureka:
 fda:
   mount.path: /tmp
   ready.path: /ready
-  gateway.endpoint: http://fda-gateway-service:9095
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-container-service/rest-service/src/main/resources/application.yml b/fda-container-service/rest-service/src/main/resources/application.yml
index 2a275b9f9146c414267a73d10e6b52debcaaaadd..7a9206456ae4bef396fac1ca83553e95ce23938d 100644
--- a/fda-container-service/rest-service/src/main/resources/application.yml
+++ b/fda-container-service/rest-service/src/main/resources/application.yml
@@ -30,4 +30,4 @@ eureka:
 fda:
   mount.path: /tmp
   ready.path: ./ready
-  gateway.endpoint: http://localhost:9095
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-database-service/rest-service/src/main/resources/application-docker.yml b/fda-database-service/rest-service/src/main/resources/application-docker.yml
index 0de2dfa1c50737f4bb1154cc993a6afa890fe20a..38bc2bd1a3f3f4b6bfacf1f366cc43055a224bb7 100644
--- a/fda-database-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-database-service/rest-service/src/main/resources/application-docker.yml
@@ -32,6 +32,6 @@ eureka:
   instance.hostname: fda-database-service
   client.serviceUrl.defaultZone: http://fda-discovery-service:9090/eureka/
 fda:
-  elastic.endpoint: fda-search-service:9200
+  elastic.endpoint: "${SEARCH_ENDPOINT}"
   ready.path: /ready
-  gateway.endpoint: http://fda-gateway-service:9095
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-database-service/rest-service/src/main/resources/application.yml b/fda-database-service/rest-service/src/main/resources/application.yml
index 54c186c0e6d9afcbd86832b26e47eab1cdfb4432..acbebc6a0f467988138f16892d22fdfd7961b97b 100644
--- a/fda-database-service/rest-service/src/main/resources/application.yml
+++ b/fda-database-service/rest-service/src/main/resources/application.yml
@@ -31,6 +31,6 @@ eureka:
   instance.hostname: fda-database-service
   client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
-  elastic.endpoint: localhost:9200
+  elastic.endpoint: "${SEARCH_ENDPOINT}"
   ready.path: ./ready
-  gateway.endpoint: http://fda-gateway-service:9095
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-document-service/.gitignore b/fda-document-service/.gitignore
index d03463b4ce8652d30329b593571f78ce2a862261..20f73b09b5b205efe02659eb26ee4eeb41bdda93 100644
--- a/fda-document-service/.gitignore
+++ b/fda-document-service/.gitignore
@@ -7,7 +7,6 @@ target/
 
 ### Generated ###
 ready
-service_ready
 
 ### STS ###
 .apt_generated
diff --git a/fda-document-service/rest-service/src/main/resources/application-docker.yml b/fda-document-service/rest-service/src/main/resources/application-docker.yml
index 48e3ce2534cde313de64d6e77fa8088c282f6866..456ae32a0f17ff6b598cefa9d19eb590bf449f7b 100644
--- a/fda-document-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-document-service/rest-service/src/main/resources/application-docker.yml
@@ -35,4 +35,4 @@ fda:
   mount.path: /tmp
   ready.path: /ready
   gateway.endpoint: "${GATEWAY_ENDPOINT}"
-  document.endpoint: https://test.researchdata.tuwien.ac.at
\ No newline at end of file
+  document.endpoint: "${DOCUMENT_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-document-service/rest-service/src/main/resources/application.yml b/fda-document-service/rest-service/src/main/resources/application.yml
index 90721b36c2fcd9ea73489f4fc6ac81172d0c25e6..923c1bd57b4e093648b39d20283f3b088665d028 100644
--- a/fda-document-service/rest-service/src/main/resources/application.yml
+++ b/fda-document-service/rest-service/src/main/resources/application.yml
@@ -35,4 +35,4 @@ fda:
   mount.path: /tmp
   ready.path: ./ready
   gateway.endpoint: "${GATEWAY_ENDPOINT}"
-  document.endpoint: https://test.researchdata.tuwien.ac.at
\ No newline at end of file
+  document.endpoint: "${DOCUMENT_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-identifier-service/rest-service/src/main/resources/application-docker.yml b/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
index 260aec339d1fb06bc4ccd1a0fa8c3d1c9ef85c7a..cb557b34cb978e73ccf8d27d60fc165144642a3e 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
@@ -29,4 +29,4 @@ eureka:
   client.serviceUrl.defaultZone: http://fda-discovery-service:9090/eureka/
 fda:
   ready.path: /ready
-  gateway.endpoint: http://fda-gateway-service:9095
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-identifier-service/rest-service/src/main/resources/application.yml b/fda-identifier-service/rest-service/src/main/resources/application.yml
index e71ce69b3fe660d786ba6dab44a19407bd1b2b22..0eb698b9f3b97aaa8b58f37d045b3af696619216 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application.yml
@@ -29,4 +29,4 @@ eureka:
   client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   ready.path: ~/
-  gateway.endpoint: http://fda-gateway-service:9095
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
index 1b39da61cc95964eeb35335dfb8807f4d9abc622..a90e6ea31bf73be121ac6da665afb3269d8f1ed1 100644
--- a/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
+++ b/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
@@ -25,10 +25,14 @@ public abstract class BaseUnitTest {
 
     public final static String USER_1_USERNAME = "junit";
     public final static String USER_1_PASSWORD = "junit";
+    public final static String USER_1_EMAIL = "junit@example.com";
+    public final static Boolean USER_1_EMAIL_VERIFIED = true;
 
     public final static User USER_1 = User.builder()
             .username(USER_1_USERNAME)
             .password(USER_1_PASSWORD)
+            .email(USER_1_EMAIL)
+            .emailVerified(USER_1_EMAIL_VERIFIED)
             .build();
 
     public final static Long DATABASE_1_ID = 1L;
@@ -56,20 +60,13 @@ public abstract class BaseUnitTest {
     public final static Instant CREATOR_1_CREATED = Instant.ofEpochSecond(1641588352);
     public final static Instant CREATOR_1_MODIFIED = Instant.ofEpochSecond(1541588352);
 
-    public final static Creator CREATOR_1 = Creator.builder()
-            .id(CREATOR_1_ID)
-            .orcid(CREATOR_1_ORCID)
-            .name(CREATOR_1_NAME)
-            .created(CREATOR_1_CREATED)
-            .lastModified(CREATOR_1_MODIFIED)
-            .build();
-
-    public final static Creator CREATOR_1_REQUEST = Creator.builder()
-            .orcid(CREATOR_1_ORCID)
-            .name(CREATOR_1_NAME)
-            .created(CREATOR_1_CREATED)
-            .lastModified(CREATOR_1_MODIFIED)
-            .build();
+    public final static Long CREATOR_3_ID = 3L;
+    public final static Long CREATOR_3_QUERY_ID = 1L;
+    public final static String CREATOR_3_ORCID = "00000-00000-00000";
+    public final static String CREATOR_3_AFFIL = "TU Graz";
+    public final static String CREATOR_3_NAME = "Mustermann, Max";
+    public final static Instant CREATOR_3_CREATED = Instant.ofEpochSecond(1641588352);
+    public final static Instant CREATOR_3_MODIFIED = Instant.ofEpochSecond(1541588352);
 
     public final static Long CREATOR_2_ID = 2L;
     public final static Long CREATOR_2_QUERY_ID = 1L;
@@ -79,46 +76,13 @@ public abstract class BaseUnitTest {
     public final static Instant CREATOR_2_CREATED = Instant.ofEpochSecond(1641588352);
     public final static Instant CREATOR_2_MODIFIED = Instant.ofEpochSecond(1541588352);
 
-    public final static Creator CREATOR_2 = Creator.builder()
-            .id(CREATOR_2_ID)
-            .orcid(CREATOR_2_ORCID)
-            .name(CREATOR_2_NAME)
-            .created(CREATOR_2_CREATED)
-            .lastModified(CREATOR_2_MODIFIED)
-            .build();
-
-    public final static Creator CREATOR_2_REQUEST = Creator.builder()
-            .orcid(CREATOR_2_ORCID)
-            .name(CREATOR_2_NAME)
-            .created(CREATOR_2_CREATED)
-            .lastModified(CREATOR_2_MODIFIED)
-            .build();
-
-    public final static CreatorDto CREATOR_1_DTO = CreatorDto.builder()
-            .id(CREATOR_1_ID)
-            .affiliation(CREATOR_1_AFFIL)
-            .orcid(CREATOR_1_ORCID)
-            .name(CREATOR_1_NAME)
-            .build();
-
-    public final static CreatorCreateDto CREATOR_1_CREATE_DTO = CreatorCreateDto.builder()
-            .affiliation(CREATOR_1_AFFIL)
-            .orcid(CREATOR_1_ORCID)
-            .name(CREATOR_1_NAME)
-            .build();
-
-    public final static CreatorDto CREATOR_2_DTO = CreatorDto.builder()
-            .id(CREATOR_2_ID)
-            .affiliation(CREATOR_2_AFFIL)
-            .orcid(CREATOR_2_ORCID)
-            .name(CREATOR_2_NAME)
-            .build();
-
-    public final static CreatorCreateDto CREATOR_2_CREATE_DTO = CreatorCreateDto.builder()
-            .affiliation(CREATOR_2_AFFIL)
-            .orcid(CREATOR_2_ORCID)
-            .name(CREATOR_2_NAME)
-            .build();
+    public final static Long CREATOR_4_ID = 4L;
+    public final static Long CREATOR_4_QUERY_ID = 1L;
+    public final static String CREATOR_4_ORCID = "00000-00000-00000";
+    public final static String CREATOR_4_AFFIL = "TU Wien";
+    public final static String CREATOR_4_NAME = "Mustermann, Martina";
+    public final static Instant CREATOR_4_CREATED = Instant.ofEpochSecond(1641588352);
+    public final static Instant CREATOR_4_MODIFIED = Instant.ofEpochSecond(1541588352);
 
     public final static Long IMAGE_1_ID = 1L;
     public final static String IMAGE_1_REPOSITORY = "postgres";
@@ -225,9 +189,11 @@ public abstract class BaseUnitTest {
     public final static Long QUERY_1_CONTAINER_ID = CONTAINER_1_ID;
     public final static Long QUERY_1_DATABASE_ID = DATABASE_1_ID;
     public final static String QUERY_1_STATEMENT = "SELECT * FROM `weather`;";
+    public final static String QUERY_1_HASH = "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d";
     public final static String QUERY_1_RESULT_HASH = "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d";
     public final static Long QUERY_1_RESULT_NUMBER = 9L;
     public final static Instant QUERY_1_CREATED = Instant.ofEpochSecond(1641588352);
+    public final static Instant QUERY_1_EXECUTED = Instant.ofEpochSecond(1641588352);
     public final static Instant QUERY_1_LAST_MODIFIED = Instant.ofEpochSecond(1541588352);
 
     public final static QueryDto QUERY_1_DTO = QueryDto.builder()
@@ -240,15 +206,19 @@ public abstract class BaseUnitTest {
             .resultHash(QUERY_1_RESULT_HASH)
             .lastModified(QUERY_1_LAST_MODIFIED)
             .created(QUERY_1_CREATED)
+            .queryHash(QUERY_1_HASH)
+            .execution(QUERY_1_EXECUTED)
             .build();
 
     public final static Long QUERY_2_ID = 2L;
     public final static Long QUERY_2_CONTAINER_ID = CONTAINER_2_ID;
     public final static Long QUERY_2_DATABASE_ID = DATABASE_2_ID;
     public final static String QUERY_2_STATEMENT = "SELECT * FROM `weather`;";
+    public final static String QUERY_2_HASH = "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d";
     public final static String QUERY_2_RESULT_HASH = "ff3f7cbe1b96d296957f6e39e55b8b1b577fa3d205d4795af99594cfd20cb80d";
     public final static Long QUERY_2_RESULT_NUMBER = 5L;
     public final static Instant QUERY_2_CREATED = Instant.ofEpochSecond(1641588352);
+    public final static Instant QUERY_2_EXECUTED = Instant.ofEpochSecond(1641588352);
     public final static Instant QUERY_2_LAST_MODIFIED = Instant.ofEpochSecond(1541588352);
 
     public final static QueryDto QUERY_2_DTO = QueryDto.builder()
@@ -261,6 +231,8 @@ public abstract class BaseUnitTest {
             .resultHash(QUERY_2_RESULT_HASH)
             .lastModified(QUERY_2_LAST_MODIFIED)
             .created(QUERY_2_CREATED)
+            .queryHash(QUERY_2_HASH)
+            .execution(QUERY_2_EXECUTED)
             .build();
 
     public final static Long IDENTIFIER_1_ID = 1L;
@@ -269,10 +241,17 @@ public abstract class BaseUnitTest {
     public final static String IDENTIFIER_1_DESCRIPTION = "Selecting all from the weather Australia table";
     public final static String IDENTIFIER_1_TITLE = "Australia weather data";
     public final static String IDENTIFIER_1_DOI = "10.1000/182";
-    public final static VisibilityType IDENTIFIER_1_VISIBILITY = VisibilityType.SELF;
-    public final static VisibilityTypeDto IDENTIFIER_1_VISIBILITY_DTO = VisibilityTypeDto.SELF;
+    public final static VisibilityType IDENTIFIER_1_VISIBILITY = VisibilityType.EVERYONE;
+    public final static VisibilityTypeDto IDENTIFIER_1_VISIBILITY_DTO = VisibilityTypeDto.EVERYONE;
     public final static Instant IDENTIFIER_1_CREATED = Instant.ofEpochSecond(1641588352);
     public final static Instant IDENTIFIER_1_MODIFIED = Instant.ofEpochSecond(1541588352);
+    public final static Instant IDENTIFIER_1_EXECUTION = Instant.ofEpochSecond(1541588352);
+    public final static Short IDENTIFIER_1_PUBLICATION_YEAR = 2022;
+    public final static String IDENTIFIER_1_QUERY_HASH = "abc";
+    public final static String IDENTIFIER_1_RESULT_HASH = "def";
+    public final static String IDENTIFIER_1_QUERY = "SELECT `id` FROM `foobar`";
+    public final static String IDENTIFIER_1_NORMALIZED = "SELECT `id` FROM `foobar`";
+    public final static Long IDENTIFIER_1_RESULT_NUMBER = 2L;
 
     public final static Long IDENTIFIER_2_ID = 2L;
     public final static Long IDENTIFIER_2_QUERY_ID = QUERY_2_ID;
@@ -280,13 +259,22 @@ public abstract class BaseUnitTest {
     public final static String IDENTIFIER_2_DESCRIPTION = "Selecting all from the weather Austria table";
     public final static String IDENTIFIER_2_TITLE = "Austria weather data";
     public final static String IDENTIFIER_2_DOI = "10.1000/183";
-    public final static VisibilityType IDENTIFIER_2_VISIBILITY = VisibilityType.SELF;
-    public final static VisibilityTypeDto IDENTIFIER_2_VISIBILITY_DTO = VisibilityTypeDto.SELF;
+    public final static VisibilityType IDENTIFIER_2_VISIBILITY = VisibilityType.EVERYONE;
+    public final static VisibilityTypeDto IDENTIFIER_2_VISIBILITY_DTO = VisibilityTypeDto.EVERYONE;
     public final static Instant IDENTIFIER_2_CREATED = Instant.ofEpochSecond(1641588352);
     public final static Instant IDENTIFIER_2_MODIFIED = Instant.ofEpochSecond(1541588352);
+    public final static Instant IDENTIFIER_2_EXECUTION = Instant.ofEpochSecond(1541588352);
+    public final static Short IDENTIFIER_2_PUBLICATION_YEAR = 2022;
+    public final static String IDENTIFIER_2_QUERY_HASH = "abc";
+    public final static String IDENTIFIER_2_RESULT_HASH = "def";
+    public final static String IDENTIFIER_2_QUERY = "SELECT `id` FROM `foobar`";
+    public final static String IDENTIFIER_2_NORMALIZED = "SELECT `id` FROM `foobar`";
+    public final static Long IDENTIFIER_2_RESULT_NUMBER = 2L;
 
     public final static Identifier IDENTIFIER_1 = Identifier.builder()
             .id(IDENTIFIER_1_ID)
+            .cid(CONTAINER_1_ID)
+            .dbid(DATABASE_1_ID)
             .qid(IDENTIFIER_1_QUERY_ID)
             .dbid(IDENTIFIER_1_DATABASE_ID)
             .description(IDENTIFIER_1_DESCRIPTION)
@@ -295,10 +283,19 @@ public abstract class BaseUnitTest {
             .visibility(IDENTIFIER_1_VISIBILITY)
             .created(IDENTIFIER_1_CREATED)
             .lastModified(IDENTIFIER_1_MODIFIED)
+            .execution(IDENTIFIER_1_EXECUTION)
+            .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
+            .queryHash(IDENTIFIER_1_QUERY_HASH)
+            .resultHash(IDENTIFIER_1_RESULT_HASH)
+            .query(IDENTIFIER_1_QUERY)
+            .queryNormalized(IDENTIFIER_1_NORMALIZED)
+            .resultNumber(IDENTIFIER_1_RESULT_NUMBER)
             .build();
 
     public final static Identifier IDENTIFIER_2 = Identifier.builder()
             .id(IDENTIFIER_2_ID)
+            .cid(CONTAINER_2_ID)
+            .dbid(DATABASE_2_ID)
             .qid(IDENTIFIER_2_QUERY_ID)
             .dbid(IDENTIFIER_2_DATABASE_ID)
             .description(IDENTIFIER_2_DESCRIPTION)
@@ -307,6 +304,73 @@ public abstract class BaseUnitTest {
             .visibility(IDENTIFIER_2_VISIBILITY)
             .created(IDENTIFIER_2_CREATED)
             .lastModified(IDENTIFIER_2_MODIFIED)
+            .execution(IDENTIFIER_2_EXECUTION)
+            .publicationYear(IDENTIFIER_2_PUBLICATION_YEAR)
+            .queryHash(IDENTIFIER_2_QUERY_HASH)
+            .resultHash(IDENTIFIER_2_RESULT_HASH)
+            .query(IDENTIFIER_2_QUERY)
+            .queryNormalized(IDENTIFIER_2_NORMALIZED)
+            .resultNumber(IDENTIFIER_2_RESULT_NUMBER)
+            .build();
+
+    public final static Creator CREATOR_1 = Creator.builder()
+            .id(CREATOR_1_ID)
+            .pid(IDENTIFIER_1_ID)
+            .orcid(CREATOR_1_ORCID)
+            .name(CREATOR_1_NAME)
+            .created(CREATOR_1_CREATED)
+            .lastModified(CREATOR_1_MODIFIED)
+            .build();
+
+    public final static Creator CREATOR_1_REQUEST = Creator.builder()
+            .pid(IDENTIFIER_1_ID)
+            .orcid(CREATOR_1_ORCID)
+            .name(CREATOR_1_NAME)
+            .created(CREATOR_1_CREATED)
+            .lastModified(CREATOR_1_MODIFIED)
+            .build();
+
+    public final static Creator CREATOR_2 = Creator.builder()
+            .id(CREATOR_2_ID)
+            .pid(IDENTIFIER_1_ID)
+            .orcid(CREATOR_2_ORCID)
+            .name(CREATOR_2_NAME)
+            .created(CREATOR_2_CREATED)
+            .lastModified(CREATOR_2_MODIFIED)
+            .build();
+
+    public final static Creator CREATOR_2_REQUEST = Creator.builder()
+            .pid(IDENTIFIER_1_ID)
+            .orcid(CREATOR_2_ORCID)
+            .name(CREATOR_2_NAME)
+            .created(CREATOR_2_CREATED)
+            .lastModified(CREATOR_2_MODIFIED)
+            .build();
+
+    public final static CreatorDto CREATOR_1_DTO = CreatorDto.builder()
+            .id(CREATOR_1_ID)
+            .affiliation(CREATOR_1_AFFIL)
+            .orcid(CREATOR_1_ORCID)
+            .name(CREATOR_1_NAME)
+            .build();
+
+    public final static CreatorCreateDto CREATOR_1_CREATE_DTO = CreatorCreateDto.builder()
+            .affiliation(CREATOR_1_AFFIL)
+            .orcid(CREATOR_1_ORCID)
+            .name(CREATOR_1_NAME)
+            .build();
+
+    public final static CreatorDto CREATOR_2_DTO = CreatorDto.builder()
+            .id(CREATOR_2_ID)
+            .affiliation(CREATOR_2_AFFIL)
+            .orcid(CREATOR_2_ORCID)
+            .name(CREATOR_2_NAME)
+            .build();
+
+    public final static CreatorCreateDto CREATOR_2_CREATE_DTO = CreatorCreateDto.builder()
+            .affiliation(CREATOR_2_AFFIL)
+            .orcid(CREATOR_2_ORCID)
+            .name(CREATOR_2_NAME)
             .build();
 
     public final static Identifier IDENTIFIER_1_REQUEST = Identifier.builder()
@@ -340,15 +404,28 @@ public abstract class BaseUnitTest {
             .title(IDENTIFIER_1_TITLE)
             .doi(IDENTIFIER_1_DOI)
             .visibility(IDENTIFIER_1_VISIBILITY_DTO)
+            .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
             .creators(List.of(CREATOR_1_CREATE_DTO, CREATOR_2_CREATE_DTO))
             .build();
 
+    public final static String RELATED_IDENTIFIER_1_VALUE = "10.5281/zenodo.6637333";
+    public final static RelatedTypeDto RELATED_IDENTIFIER_1_TYPE = RelatedTypeDto.DOI;
+    public final static RelationTypeDto RELATED_IDENTIFIER_1_RELATION = RelationTypeDto.CITES;
+
+    public final static RelatedIdentifierCreateDto RELATED_IDENTIFIER_1_CREATE_DTO = RelatedIdentifierCreateDto.builder()
+            .value(RELATED_IDENTIFIER_1_VALUE)
+            .type(RELATED_IDENTIFIER_1_TYPE)
+            .relation(RELATED_IDENTIFIER_1_RELATION)
+            .build();
+
     public final static IdentifierCreateDto IDENTIFIER_2_DTO_REQUEST = IdentifierCreateDto.builder()
             .qid(IDENTIFIER_2_QUERY_ID)
             .description(IDENTIFIER_2_DESCRIPTION)
             .title(IDENTIFIER_2_TITLE)
             .doi(IDENTIFIER_2_DOI)
             .visibility(IDENTIFIER_2_VISIBILITY_DTO)
+            .relatedIdentifiers(List.of(RELATED_IDENTIFIER_1_CREATE_DTO))
+            .publicationYear(IDENTIFIER_2_PUBLICATION_YEAR)
             .creators(List.of(CREATOR_1_CREATE_DTO, CREATOR_2_CREATE_DTO))
             .build();
 
diff --git a/fda-identifier-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java b/fda-identifier-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java
index b7eaa968c4d8376c3df877a362742bad8b0b6cfa..62032b642074fa85bbb52f95462e6c9e24f7ee71 100644
--- a/fda-identifier-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java
+++ b/fda-identifier-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java
@@ -6,10 +6,7 @@ import at.tuwien.api.identifier.VisibilityTypeDto;
 import at.tuwien.entities.identifier.Identifier;
 import at.tuwien.exception.*;
 import at.tuwien.gateway.QueryServiceGateway;
-import at.tuwien.repository.jpa.ContainerRepository;
-import at.tuwien.repository.jpa.CreatorRepository;
-import at.tuwien.repository.jpa.DatabaseRepository;
-import at.tuwien.repository.jpa.IdentifierRepository;
+import at.tuwien.repository.jpa.*;
 import at.tuwien.service.impl.IdentifierServiceImpl;
 import lombok.extern.log4j.Log4j2;
 import org.apache.http.auth.BasicUserPrincipal;
@@ -57,9 +54,13 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest {
     @MockBean
     private QueryServiceGateway queryServiceGateway;
 
+    @Autowired
+    private UserRepository userRepository;
+
     @BeforeEach
     @Transactional
     public void beforeEach() {
+        userRepository.save(USER_1);
         containerRepository.save(CONTAINER_1);
         databaseRepository.save(DATABASE_1);
         identifierRepository.save(IDENTIFIER_1);
@@ -122,6 +123,8 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest {
         assertEquals(IDENTIFIER_2_TITLE, response.getTitle());
         assertEquals(IDENTIFIER_2_DESCRIPTION, response.getDescription());
         assertEquals(2, response.getCreators().size());
+        assertEquals(1, response.getRelatedIdentifiers().size());
+        assertEquals(IDENTIFIER_2_ID, response.getRelatedIdentifiers().get(0).getIdentifier().getId());
     }
 
     @Test
diff --git a/fda-identifier-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java b/fda-identifier-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
index eeccddbfb4192d0f6d3bdea68ee5d2f1083600ae..6577195e2b7393a1ccdbe30afe9c37980f5c3d96 100644
--- a/fda-identifier-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
+++ b/fda-identifier-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
@@ -118,7 +118,7 @@ public class IdentifierServiceImpl implements IdentifierService {
                     .stream()
                     .map(r -> {
                         final RelatedIdentifier id = identifierMapper.relatedIdentifierCreateDtoToRelatedIdentifier(r);
-                        id.setIid(entity.getId());
+                        id.setIdentifier(entity);
                         id.setCreator(creator);
                         return id;
                     })
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
index 6624a95b03607051ed6c773bd4f3aa7db4ac81ef..54cd3db2f7951757838422e8aa308cc9f4ec0579 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
@@ -84,10 +84,7 @@ public class Identifier {
     })
     private Database database;
 
-    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
-    @JoinColumns({
-            @JoinColumn(name = "iid", referencedColumnName = "id")
-    })
+    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "identifier")
     private List<RelatedIdentifier> relatedIdentifiers;
 
     @Column(nullable = false, columnDefinition = "enum('EVERYONE', 'TRUSTED', 'SELF')")
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
index 873b88fbaa7a1618ef82fe2476fe95b167bdeb30..90e22a1d1d922ae0dc6c8a415bed4eaf25b17a7a 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
@@ -35,9 +35,6 @@ public class RelatedIdentifier {
     )
     private Long id;
 
-    @Column(nullable = false)
-    private Long iid;
-
     @Column(nullable = false)
     private String value;
 
@@ -55,6 +52,13 @@ public class RelatedIdentifier {
     })
     private User creator;
 
+    @ToString.Exclude
+    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+    @JoinColumns({
+            @JoinColumn(name = "identifier_id", referencedColumnName = "id")
+    })
+    private Identifier identifier;
+
     @Column(nullable = false, updatable = false)
     @CreatedDate
     private Instant created;
diff --git a/fda-metadata-db/setup-schema.sql b/fda-metadata-db/setup-schema.sql
index c671067c78f490a973c169d7388404d45e5bd190..8bd8a1da2f7c1e4205deae396fa636ac17bdc5de 100644
--- a/fda-metadata-db/setup-schema.sql
+++ b/fda-metadata-db/setup-schema.sql
@@ -478,7 +478,7 @@ CREATE TABLE IF NOT EXISTS mdb_identifiers
 CREATE TABLE IF NOT EXISTS mdb_related_identifiers
 (
     id            bigint                               DEFAULT nextval('mdb_related_identifiers_seq'),
-    iid           bigint                      NOT NULL,
+    identifier_id bigint                      NOT NULL,
     value         text                        NOT NULL,
     type          varchar(255),
     relation      varchar(255),
@@ -487,7 +487,7 @@ CREATE TABLE IF NOT EXISTS mdb_related_identifiers
     last_modified timestamp without time zone,
     deleted       timestamp without time zone,
     PRIMARY KEY (id), /* must be a single id from persistent identifier concept */
-    FOREIGN KEY (iid) REFERENCES mdb_identifiers (id),
+    FOREIGN KEY (identifier_id) REFERENCES mdb_identifiers (id),
     FOREIGN KEY (created_by) REFERENCES mdb_users (UserID)
 );
 
diff --git a/fda-table-service/rest-service/src/main/resources/application-docker.yml b/fda-table-service/rest-service/src/main/resources/application-docker.yml
index 16150a4e382955ca0b9dd20cbbad3d7aed0fddf8..9660afad5d5126411399d90c4a293a7d495a4b75 100644
--- a/fda-table-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-table-service/rest-service/src/main/resources/application-docker.yml
@@ -35,8 +35,5 @@ eureka:
   client.serviceUrl.defaultZone: http://fda-discovery-service:9090/eureka/
 fda:
   ready.path: /ready
-  system:
-    username: system
-    passwd: "${SYSTEM_PASSWORD}"
-  gateway.endpoint: http://fda-gateway-service:9095
-  elastic.endpoint: fda-search-service:9200
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
+  elastic.endpoint: "${SEARCH_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-table-service/rest-service/src/main/resources/application.yml b/fda-table-service/rest-service/src/main/resources/application.yml
index ca33c5e80c9d63407b4d467e5fd15ac733377529..3cf6f3ee05981d30c04b20134f6d0abf98c3bb70 100644
--- a/fda-table-service/rest-service/src/main/resources/application.yml
+++ b/fda-table-service/rest-service/src/main/resources/application.yml
@@ -35,8 +35,5 @@ eureka:
   client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   ready.path: ./ready
-  system:
-    username: system
-    passwd: "${SYSTEM_PASSWORD}"
-  gateway.endpoint: http://localhost:9095
-  elastic.endpoint: fda-search-service:9200
\ No newline at end of file
+  gateway.endpoint: "${GATEWAY_ENDPOINT}"
+  elastic.endpoint: "${SEARCH_ENDPOINT}"
\ No newline at end of file
diff --git a/fda-table-service/services/src/main/java/at/tuwien/config/SecurityConfig.java b/fda-table-service/services/src/main/java/at/tuwien/config/SecurityConfig.java
deleted file mode 100644
index 4d52763b1097fe804b7e3556a4dea722ec2ddde0..0000000000000000000000000000000000000000
--- a/fda-table-service/services/src/main/java/at/tuwien/config/SecurityConfig.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package at.tuwien.config;
-
-import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-
-@Slf4j
-@Getter
-@Configuration
-public class SecurityConfig {
-
-    @Value("${fda.system.username}")
-    private String systemUsername;
-
-    @Value("${fda.system.passwd}")
-    private String systemPassword;
-
-}
diff --git a/fda-ui/components/dialogs/CreateDB.vue b/fda-ui/components/dialogs/CreateDB.vue
index 10c6a41210cddd39a67d223ab8b038fc1f3d4a2f..256257255a44a5bea540c7d4d9fe494f6369e185 100644
--- a/fda-ui/components/dialogs/CreateDB.vue
+++ b/fda-ui/components/dialogs/CreateDB.vue
@@ -47,11 +47,13 @@
         <v-card-actions>
           <v-spacer />
           <v-btn
+            class="mb-2"
             @click="cancel">
             Cancel
           </v-btn>
           <v-btn
             id="createDB"
+            class="mb-2 mr-2 ml-4"
             :disabled="!valid || loading"
             color="primary"
             type="submit"
diff --git a/fda-ui/components/dialogs/PersistQuery.vue b/fda-ui/components/dialogs/PersistQuery.vue
index c3b4e318db04d477e8dcef3cd6111ba1f6fe291a..2153cb68f7531e43bb38e8ea1bcecc376d2932c1 100644
--- a/fda-ui/components/dialogs/PersistQuery.vue
+++ b/fda-ui/components/dialogs/PersistQuery.vue
@@ -56,8 +56,8 @@
                 required />
             </v-col>
           </v-row>
-          <v-row v-for="(creator,i) in identifier.creators" :key="i" dense>
-            <v-col cols="3">
+          <v-row v-for="(creator,i) in identifier.creators" :key="`c-${i}`" dense>
+            <v-col cols="4">
               <v-text-field
                 v-model="creator.name"
                 name="name"
@@ -65,7 +65,7 @@
                 :rules="[v => !!v || $t('Required')]"
                 required />
             </v-col>
-            <v-col cols="3">
+            <v-col cols="4">
               <v-text-field
                 v-model="creator.affiliation"
                 name="affiliation"
@@ -92,8 +92,8 @@
               </v-btn>
             </v-col>
           </v-row>
-          <v-row v-for="(related,j) in identifier.related_identifiers" :key="j" dense>
-            <v-col cols="3">
+          <v-row v-for="(related,i) in identifier.related_identifiers" :key="`r-${i}`" dense>
+            <v-col cols="4">
               <v-text-field
                 v-model="related.value"
                 name="related"
@@ -101,24 +101,24 @@
                 :rules="[v => !!v || $t('Required')]"
                 required />
             </v-col>
-            <v-col cols="2">
+            <v-col cols="3">
               <v-select
-                v-model="related.identifier_type"
+                v-model="related.type"
                 :items="relatedTypes"
                 item-value="value"
                 item-text="value"
                 label="Type" />
             </v-col>
-            <v-col cols="2">
+            <v-col cols="3">
               <v-select
-                v-model="related.relation_type"
+                v-model="related.relation"
                 :items="relationTypes"
                 item-value="value"
                 item-text="value"
                 label="Relation" />
             </v-col>
             <v-col cols="1" class="mt-5">
-              <v-btn color="error" icon x-small @click="deleteRelatedIdentifier(j)">
+              <v-btn color="error" icon x-small @click="deleteRelatedIdentifier(i)">
                 <v-icon>mdi-delete</v-icon>
               </v-btn>
             </v-col>
@@ -275,8 +275,8 @@ export default {
     addRelatedIdentifier () {
       this.identifier.related_identifiers.push({
         value: null,
-        relation_type: 'Cites',
-        identifier_type: 'DOI'
+        relation: 'Cites',
+        type: 'DOI'
       })
     },
     async loadDatabase () {
diff --git a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue
index 726b0d19bfba808197fe4c03d91c0da6dc00293f..b1544e766c45184118eab448ca9307f48c30efa6 100644
--- a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue
+++ b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue
@@ -3,7 +3,7 @@
     <v-progress-linear v-if="loading" :color="loadingColor" :indeterminate="!error" />
     <v-toolbar flat>
       <v-toolbar-title>
-        <v-btn id="back-btn" flat class="mr-2" :to="`/container/${$route.params.container_id}/database/${$route.params.database_id}/table`">
+        <v-btn id="back-btn" class="mr-2" :to="`/container/${$route.params.container_id}/database/${$route.params.database_id}/table`">
           <v-icon left>mdi-arrow-left</v-icon>
         </v-btn>
       </v-toolbar-title>