diff --git a/pom.xml b/pom.xml
index edad14432134d1414d427a883bcece7ec614118c..30345bd5e601c9bb9b313a0556555a60d6d6c297 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,7 @@
 
 		<zufi-manager.version>1.6.0</zufi-manager.version>
 		<shedlock.version>5.16.0</shedlock.version>
+		<spring-vault-core.version>3.1.2</spring-vault-core.version>
 	</properties>
 
 	<dependencies>
@@ -149,6 +150,11 @@
 			<artifactId>mapstruct-processor</artifactId>
 			<version>${mapstruct.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.vault</groupId>
+			<artifactId>spring-vault-core</artifactId>
+			<version>${spring-vault-core.version}</version>
+		</dependency>
 
 		<!-- commons -->
 		<dependency>
diff --git a/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingRepository.java b/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingRepository.java
index 249aa175f5c7a313ba1e69dd178926fd29c8f2a0..f762a367dfafb7023fbf89e87670d35470c91058 100644
--- a/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingRepository.java
+++ b/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingRepository.java
@@ -30,10 +30,13 @@ import org.springframework.data.mongodb.repository.Query;
 import org.springframework.data.rest.core.annotation.RepositoryRestResource;
 import org.springframework.security.access.annotation.Secured;
 
-@Secured("ROLE_DATENBEAUFTRAGUNG")
 @RepositoryRestResource
 interface AggregationMappingRepository extends MongoRepository<AggregationMapping, String> {
+
 	@Override
-	@Query("{'_class': 'AggregationMapping'}")
+	@Secured("ROLE_DATENBEAUFTRAGUNG")
 	List<AggregationMapping> findAll();
+
+	@Query("{}")
+	List<AggregationMapping> findAllBypassAuth();
 }
diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java
index afaaaed64b05413fff0613a1c63a6cd83be5e2e0..a1fcc5f3225611a64ddc9020eee9334e1eee2115 100644
--- a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java
+++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java
@@ -40,7 +40,7 @@ class ReportingAggregationManagerSettingDtoService implements SettingDtoService
 
 	@Override
 	public ReportingAggregationManagerSettingDto getDataTransferObject() {
-		return mapToDto(repository.findAll());
+		return mapToDto(repository.findAllBypassAuth());
 	}
 
 	ReportingAggregationManagerSettingDto mapToDto(List<AggregationMapping> aggregationMappings) {
diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java b/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java
index a6e74eac7d909eeefc363eebb43cb5cf078e49e5..82193473a132420319d5ba5f997b71ba7e74b29b 100644
--- a/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java
+++ b/src/main/java/de/ozgcloud/admin/setting/SettingEnvironmentRepository.java
@@ -33,6 +33,7 @@ import org.springframework.cloud.config.environment.Environment;
 import org.springframework.cloud.config.environment.PropertySource;
 import org.springframework.cloud.config.server.environment.EnvironmentRepository;
 import org.springframework.stereotype.Component;
+import org.springframework.vault.support.JsonMapFlattener;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -74,8 +75,9 @@ public class SettingEnvironmentRepository implements EnvironmentRepository {
 	}
 
 	PropertySource transformToPropertySource(ApplicationSettingDTO settingDTO) {
-		return new PropertySource(StringUtils.EMPTY, objectMapper.convertValue(settingDTO, new TypeReference<Map<String, Object>>() {
-		}));
+		return new PropertySource(StringUtils.EMPTY,
+				JsonMapFlattener.flatten(objectMapper.convertValue(settingDTO, new TypeReference<Map<String, Object>>() {
+				})));
 	}
 
 }
diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java
index 6425ab46f63a9444d8a18261d29c32b5155bd10d..8f7ff06904aa7944a209d49a4dc649ee1a885429 100644
--- a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java
+++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java
@@ -33,18 +33,15 @@ import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
 import org.springframework.data.mongodb.core.MongoOperations;
-import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.ResultActions;
 
-import de.ozgcloud.admin.common.user.UserRole;
-import de.ozgcloud.admin.setting.YamlTestFactory;
+import de.ozgcloud.admin.setting.PropertiesTestFactory;
 import de.ozgcloud.common.test.DataITCase;
 import lombok.SneakyThrows;
 
 @DataITCase
 @AutoConfigureMockMvc
-@WithMockUser(roles = UserRole.DATENBEAUFTRAGUNG)
 public class AggregationMappingEnvironmentSettingITCase {
 
 	@Autowired
@@ -66,36 +63,36 @@ public class AggregationMappingEnvironmentSettingITCase {
 			var result = getAggregationSettings();
 
 			assertThat(result.andReturn().getResponse().getContentAsString())
-					.isEqualTo(YamlTestFactory.createAggregationYaml());
+					.isEqualToIgnoringWhitespace(PropertiesTestFactory.createAggregationProperties());
 		}
 
 		private ResultActions getAggregationSettings() throws Exception {
-			return mockMvc.perform(get("/configserver/OzgCloud_AggregationManager-any.yaml"))
+			return mockMvc.perform(get("/configserver/OzgCloud_AggregationManager/default"))
 					.andExpect(status().isOk());
 		}
 
 		private void fillDbWithAggregationMappings() {
 			var aggregationMapping1 = AggregationMapping.builder()
 					.formIdentifier(AggregationMapping.FormIdentifier.builder()
-							.formEngineName(YamlTestFactory.FORM_ENGINE_NAME_1)
-							.formId(YamlTestFactory.FORM_ID_1)
+							.formEngineName(PropertiesTestFactory.FORM_ENGINE_NAME_1)
+							.formId(PropertiesTestFactory.FORM_ID_1)
 							.build())
-					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_1)
-							.targetPath(YamlTestFactory.TARGET_PATH_1_1).build())
-					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_2)
-							.targetPath(YamlTestFactory.TARGET_PATH_1_2).build())
-					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_3)
-							.targetPath(YamlTestFactory.TARGET_PATH_1_3).build())
+					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_1_1)
+							.targetPath(PropertiesTestFactory.TARGET_PATH_1_1).build())
+					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_1_2)
+							.targetPath(PropertiesTestFactory.TARGET_PATH_1_2).build())
+					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_1_3)
+							.targetPath(PropertiesTestFactory.TARGET_PATH_1_3).build())
 					.build();
 			var aggregationMapping2 = AggregationMapping.builder()
 					.formIdentifier(AggregationMapping.FormIdentifier.builder()
-							.formEngineName(YamlTestFactory.FORM_ENGINE_NAME_2)
-							.formId(YamlTestFactory.FORM_ID_2)
+							.formEngineName(PropertiesTestFactory.FORM_ENGINE_NAME_2)
+							.formId(PropertiesTestFactory.FORM_ID_2)
 							.build())
-					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_2_1)
-							.targetPath(YamlTestFactory.TARGET_PATH_2_1).build())
-					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_2_2)
-							.targetPath(YamlTestFactory.TARGET_PATH_2_2).build())
+					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_2_1)
+							.targetPath(PropertiesTestFactory.TARGET_PATH_2_1).build())
+					.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_2_2)
+							.targetPath(PropertiesTestFactory.TARGET_PATH_2_2).build())
 					.build();
 
 			mongoOperations.dropCollection(AggregationMapping.COLLECTION_NAME);
diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java
index 8012939ce12cd2313b32e28bc7a116f6d267ebe5..1935627949511059d414374bc63efa4a9b85e605 100644
--- a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java
+++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java
@@ -26,6 +26,7 @@ package de.ozgcloud.admin.reporting;
 import static org.assertj.core.api.Assertions.*;
 
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoOperations;
@@ -50,23 +51,37 @@ class AggregationMappingRepositoryITCase {
 		operations.dropCollection(AggregationMapping.COLLECTION_NAME);
 	}
 
-	@Test
-	@WithMockUser(roles = UserRole.DATENBEAUFTRAGUNG)
-	void shouldLoadOnlyFieldMapping() {
-		operations.save(AggregationMappingTestFactory.create());
-		operations.save(SettingTestFactory.create());
+	@Nested
+	class TestFindAll {
+		@Test
+		@WithMockUser(roles = UserRole.DATENBEAUFTRAGUNG)
+		void shouldLoadOnlyFieldMapping() {
+			operations.save(AggregationMappingTestFactory.create());
+			operations.save(SettingTestFactory.create());
 
-		var result = repository.findAll();
+			var result = repository.findAll();
 
-		assertThat(result).hasSize(1);
-	}
+			assertThat(result).hasSize(1);
+		}
 
-	@Test
-	@WithMockUser
-	void shouldThrowExceptionOnMissingRole() {
-		operations.save(AggregationMappingTestFactory.create());
+		@Test
+		@WithMockUser
+		void shouldThrowExceptionOnMissingRole() {
+			operations.save(AggregationMappingTestFactory.create());
 
-		assertThatThrownBy(() -> repository.findAll()).isInstanceOf(AuthorizationDeniedException.class);
+			assertThatThrownBy(() -> repository.findAll()).isInstanceOf(AuthorizationDeniedException.class);
+		}
 	}
 
+	@Nested
+	class TestFindAllBypassAuth {
+		@Test
+		void shouldLoadWithoutRole() {
+			operations.save(AggregationMappingTestFactory.create());
+
+			var result = repository.findAllBypassAuth();
+
+			assertThat(result).hasSize(1);
+		}
+	}
 }
diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java
index 412869536adf67ea9f470d6840d2c1d0a1ff1630..aae1ec4b72eb4a4304a26a7d4ab0b318001379d9 100644
--- a/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java
+++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java
@@ -88,13 +88,13 @@ class ReportingAggregationManagerSettingDtoServiceTest {
 		void shouldCallRepository() {
 			service.getDataTransferObject();
 
-			verify(repository).findAll();
+			verify(repository).findAllBypassAuth();
 		}
 
 		@Test
 		void shouldCallMapToDto() {
 			AggregationMapping mapping = AggregationMappingTestFactory.create();
-			when(repository.findAll()).thenReturn(List.of(mapping));
+			when(repository.findAllBypassAuth()).thenReturn(List.of(mapping));
 
 			service.getDataTransferObject();
 
diff --git a/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/PropertiesTestFactory.java
similarity index 95%
rename from src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java
rename to src/test/java/de/ozgcloud/admin/setting/PropertiesTestFactory.java
index 40ac3f169a6f6d28409515e1a89d38b39bfc918a..62df9cc7d05c095068b1bd12a0585d5ba08b8ccd 100644
--- a/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java
+++ b/src/test/java/de/ozgcloud/admin/setting/PropertiesTestFactory.java
@@ -31,7 +31,7 @@ import de.ozgcloud.admin.setting.postfach.PostfachSettingBody;
 import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory;
 import de.ozgcloud.common.test.TestUtils;
 
-public class YamlTestFactory {
+public class PropertiesTestFactory {
 
 	public static final PostfachSettingBody POSTFACH = PostfachSettingBodyTestFactory.create();
 	public static final String FORM_ENGINE_NAME_1 = LoremIpsum.getInstance().getWords(1);
@@ -72,8 +72,8 @@ public class YamlTestFactory {
 		return TestUtils.loadTextFile("yamlTemplates/settings/initial.yaml.tmpl");
 	}
 
-	public static String createAggregationYaml() {
-		return TestUtils.loadTextFile("yamlTemplates/settings/aggregation.yaml.tmpl",
+	public static String createAggregationProperties() {
+		return TestUtils.loadTextFile("jsonTemplates/settings/aggregation.json.tmpl",
 				FORM_ENGINE_NAME_1,
 				FORM_ID_1,
 				SOURCE_PATH_1_1,
diff --git a/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java b/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java
index 4fe44a5e5de623e8c08dfd39cb6073058c497ed5..455c4825d89d40417b9b459983f7272b6ad21dd5 100644
--- a/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java
+++ b/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java
@@ -80,7 +80,8 @@ class SettingEnvironmentITCase {
 			void shouldHandleEmptySetting() {
 				var result = getAlfaSettings();
 
-				assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(YamlTestFactory.createInitialYaml());
+				assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString()))
+						.isEqualTo(PropertiesTestFactory.createInitialYaml());
 			}
 		}
 
@@ -97,7 +98,7 @@ class SettingEnvironmentITCase {
 			void shouldReturnValuesForAlfa() {
 				var result = getAlfaSettings();
 
-				assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(YamlTestFactory.createAlfaYaml());
+				assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(PropertiesTestFactory.createAlfaYaml());
 			}
 		}
 
@@ -122,7 +123,8 @@ class SettingEnvironmentITCase {
 			void shouldHandleEmptySetting() {
 				var result = getVorgangManagerSettings();
 
-				assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(YamlTestFactory.createInitialYaml());
+				assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString()))
+						.isEqualTo(PropertiesTestFactory.createInitialYaml());
 			}
 		}
 
@@ -140,7 +142,7 @@ class SettingEnvironmentITCase {
 				var result = getVorgangManagerSettings();
 
 				assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString()))
-						.isEqualTo(YamlTestFactory.createVorgangManagerYaml());
+						.isEqualTo(PropertiesTestFactory.createVorgangManagerYaml());
 			}
 		}
 
diff --git a/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentRepositoryTest.java b/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentRepositoryTest.java
index b59b5edc50936b0254c90b3f8c27d53c688c7cf6..25e1a2ac159611db2ecc333a31a3ab3b42614cfa 100644
--- a/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentRepositoryTest.java
+++ b/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentRepositoryTest.java
@@ -199,7 +199,10 @@ class SettingEnvironmentRepositoryTest {
             @Getter
             private ApplicationSettingDTO attribute = new ApplicationSettingDTO() {
                 @Getter
-                private String nestedAttribute = "innerValue";
+                private ApplicationSettingDTO nestedAttribute = new ApplicationSettingDTO() {
+                    @Getter
+                    private String nestedAttribute = "innerValue";
+                };
             };
         };
 
@@ -213,8 +216,8 @@ class SettingEnvironmentRepositoryTest {
         }
 
         @Test
-        void shouldReturnPropertySourceOfNestedObject() {
-            var expectedPropertySource = new PropertySource(StringUtils.EMPTY, Map.of("attribute.nestedAttribute", "innerValue"));
+        void shouldReturnPropertySourceOfFlattenedNestedObject() {
+            var expectedPropertySource = new PropertySource(StringUtils.EMPTY, Map.of("attribute.nestedAttribute.nestedAttribute", "innerValue"));
 
             var resultPropertySource = repository.transformToPropertySource(nestedSettingDTO);
 
diff --git a/src/test/resources/jsonTemplates/settings/aggregation.json.tmpl b/src/test/resources/jsonTemplates/settings/aggregation.json.tmpl
new file mode 100644
index 0000000000000000000000000000000000000000..ce56cc5aebc81c35d9678f6d152118217a5241a3
--- /dev/null
+++ b/src/test/resources/jsonTemplates/settings/aggregation.json.tmpl
@@ -0,0 +1,30 @@
+{
+    "name": "OzgCloud_AggregationManager",
+    "profiles": [
+        "default"
+    ],
+    "label": null,
+    "version": null,
+    "state": null,
+    "propertySources": [
+        {
+            "name": "",
+            "source": {
+                "ozgcloud.aggregation.aggregationMappings[0].formIdentifier.formEngineName": "%s",
+                "ozgcloud.aggregation.aggregationMappings[0].formIdentifier.formId": "%s",
+                "ozgcloud.aggregation.aggregationMappings[0].fieldMappings[0].sourcePath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[0].fieldMappings[0].targetPath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[0].fieldMappings[1].sourcePath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[0].fieldMappings[1].targetPath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[0].fieldMappings[2].sourcePath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[0].fieldMappings[2].targetPath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[1].formIdentifier.formEngineName": "%s",
+                "ozgcloud.aggregation.aggregationMappings[1].formIdentifier.formId": "%s",
+                "ozgcloud.aggregation.aggregationMappings[1].fieldMappings[0].sourcePath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[1].fieldMappings[0].targetPath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[1].fieldMappings[1].sourcePath": "%s",
+                "ozgcloud.aggregation.aggregationMappings[1].fieldMappings[1].targetPath": "%s"
+            }
+        }
+    ]
+}
\ No newline at end of file
diff --git a/src/test/resources/yamlTemplates/settings/aggregation.yaml.tmpl b/src/test/resources/yamlTemplates/settings/aggregation.yaml.tmpl
deleted file mode 100644
index 0b8a9c513f6ed3a08f3b91f081bfcf583dbfd62a..0000000000000000000000000000000000000000
--- a/src/test/resources/yamlTemplates/settings/aggregation.yaml.tmpl
+++ /dev/null
@@ -1,21 +0,0 @@
-ozgcloud:
-  aggregation:
-    aggregationMappings:
-    - formIdentifier:
-        formEngineName: %s
-        formId: %s
-      fieldMappings:
-      - sourcePath: %s
-        targetPath: %s
-      - sourcePath: %s
-        targetPath: %s
-      - sourcePath: %s
-        targetPath: %s
-    - formIdentifier:
-        formEngineName: %s
-        formId: %s
-      fieldMappings:
-      - sourcePath: %s
-        targetPath: %s
-      - sourcePath: %s
-        targetPath: %s
diff --git a/src/test/resources/yamlTemplates/settings/initial.yaml.tmpl b/src/test/resources/yamlTemplates/settings/initial.yaml.tmpl
index 1a6ddf888e1a28b35e2782c93e2b21116d844e86..7d41cbfd1431930457ff12e10e88a08b80971675 100644
--- a/src/test/resources/yamlTemplates/settings/initial.yaml.tmpl
+++ b/src/test/resources/yamlTemplates/settings/initial.yaml.tmpl
@@ -1,4 +1,3 @@
 ozgcloud:
   postfach:
     signatur: null
-    organisationsEinheitSettings: {}