diff --git a/alfa-client/apps/admin/src/app/app.module.ts b/alfa-client/apps/admin/src/app/app.module.ts
index 5036e2f54cfd969333b209f909b99becb1f99971..089a1851424f1c2eca17a73b15d0b0ad3f132588 100644
--- a/alfa-client/apps/admin/src/app/app.module.ts
+++ b/alfa-client/apps/admin/src/app/app.module.ts
@@ -1,8 +1,11 @@
+import { AdminSettingsModule } from '@admin-client/admin-settings';
 import { ApiRootModule } from '@alfa-client/api-root-shared';
 import { EnvironmentModule } from '@alfa-client/environment-shared';
+import { TechSharedModule } from '@alfa-client/tech-shared';
 import { CommonModule } from '@angular/common';
 import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
 import { NgModule } from '@angular/core';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { BrowserModule } from '@angular/platform-browser';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterModule } from '@angular/router';
@@ -10,19 +13,16 @@ import { EffectsModule } from '@ngrx/effects';
 import { StoreRouterConnectingModule } from '@ngrx/router-store';
 import { StoreModule } from '@ngrx/store';
 import { StoreDevtoolsModule } from '@ngrx/store-devtools';
-import { TestbtnComponent } from 'design-system';
-import { environment } from '../environments/environment';
-import { AppComponent } from './app.component';
-import { appRoutes } from './app.routes';
-import { PostfachPageComponent } from '../pages/postfach/postfach-page/postfach-page.component';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
-import { UserProfileButtonContainerComponent } from '../common/user-profile-button-container/user-profile.button-container.component';
-import { AdminSettingsModule } from '@admin-client/admin-settings';
+import { TestbtnComponent } from '@ods/system';
 import { OAuthModule } from 'angular-oauth2-oidc';
 import { HttpUnauthorizedInterceptor } from 'libs/authentication/src/lib/http-unauthorized.interceptor';
+import { UserProfileButtonContainerComponent } from '../common/user-profile-button-container/user-profile.button-container.component';
+import { environment } from '../environments/environment';
 import { OrganisationseinheitPageComponent } from '../pages/organisationseinheit/organisationseinheit-page/organisationseinheit-page.component';
+import { PostfachPageComponent } from '../pages/postfach/postfach-page/postfach-page.component';
 import { UnavailablePageComponent } from '../pages/unavailable/unavailable-page/unavailable-page.component';
-import { TechSharedModule } from '@alfa-client/tech-shared';
+import { AppComponent } from './app.component';
+import { appRoutes } from './app.routes';
 
 @NgModule({
   declarations: [
diff --git a/alfa-client/apps/demo/src/app/app.component.ts b/alfa-client/apps/demo/src/app/app.component.ts
index 592b72d0e4cf98c82c8ee23a793773a96d582901..08334251fefb523ab0868d6f23cd1a9eefd6c5d3 100644
--- a/alfa-client/apps/demo/src/app/app.component.ts
+++ b/alfa-client/apps/demo/src/app/app.component.ts
@@ -11,7 +11,7 @@ import {
   RadioButtonCardComponent,
   SpinnerIconComponent,
   TestbtnComponent,
-} from 'design-system';
+} from '@ods/system';
 
 import { BescheidDialogExampleComponent } from './components/bescheid-dialog/bescheid-dialog.component';
 import { BescheidPaperComponent } from './components/bescheid-paper/bescheid-paper.component';
diff --git a/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts b/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts
index 107fda7ed02b667e06e7cab3fec4cda3243db1fd..e7c05f02630bff453741036073ad8c5ed600a4fd 100644
--- a/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts
+++ b/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts
@@ -1,8 +1,7 @@
-import { Component } from '@angular/core';
 import { CdkStepper, CdkStepperModule } from '@angular/cdk/stepper';
 import { NgTemplateOutlet } from '@angular/common';
-import { TestbtnComponent } from 'design-system';
-
+import { Component } from '@angular/core';
+import { TestbtnComponent } from '@ods/system';
 
 @Component({
   standalone: true,
diff --git a/alfa-client/libs/binary-file/src/lib/binary-file.module.ts b/alfa-client/libs/binary-file/src/lib/binary-file.module.ts
index 267a83df8e1b1d3361e5a286d382e4c7c058cbeb..be19caa8ba5b144191d80ae8db1667e0313cc59c 100644
--- a/alfa-client/libs/binary-file/src/lib/binary-file.module.ts
+++ b/alfa-client/libs/binary-file/src/lib/binary-file.module.ts
@@ -25,7 +25,7 @@ import { TechSharedModule } from '@alfa-client/tech-shared';
 import { UiModule } from '@alfa-client/ui';
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
-import { AttachmentComponent, IconComponent, SpinnerIconComponent } from 'design-system';
+import { AttachmentComponent, IconComponent, SpinnerIconComponent } from '@ods/system';
 import { BinaryFileAttachmentContainerComponent } from './binary-file-attachment-container/binary-file-attachment-container.component';
 import { BinaryFileContainerComponent } from './binary-file-container/binary-file-container.component';
 import { BinaryFileComponent } from './binary-file-container/binary-file/binary-file.component';
diff --git a/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts b/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts
index b14918613ee424b344810b53ecc47b6fdf80861c..7c00e9810420d0832b6bd7dff962ea512db3ca03 100644
--- a/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts
+++ b/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts
@@ -3,7 +3,7 @@ import { BinaryFileLinkRel, BinaryFileResource } from '@alfa-client/binary-file-
 import { SpinnerComponent } from '@alfa-client/ui';
 import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing';
 import { faker } from '@faker-js/faker';
-import { AttachmentComponent, IconComponent } from 'design-system';
+import { AttachmentComponent, IconComponent } from '@ods/system';
 import { createBinaryFileResource } from 'libs/binary-file-shared/test/binary-file';
 import { FileSizePlainPipe } from 'libs/tech-shared/src/lib/pipe/file-size-plain.pipe';
 import { MockComponent, MockPipe } from 'ng-mocks';
diff --git a/alfa-client/libs/design-component/.eslintrc.json b/alfa-client/libs/design-component/.eslintrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..d7eea6e63619bb4f93196655793dddbc519ad3bd
--- /dev/null
+++ b/alfa-client/libs/design-component/.eslintrc.json
@@ -0,0 +1,33 @@
+{
+  "extends": ["../../.eslintrc.json"],
+  "ignorePatterns": ["!**/*"],
+  "overrides": [
+    {
+      "files": ["*.ts"],
+      "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"],
+      "rules": {
+        "@angular-eslint/directive-selector": [
+          "error",
+          {
+            "type": "attribute",
+            "prefix": "ods",
+            "style": "camelCase"
+          }
+        ],
+        "@angular-eslint/component-selector": [
+          "error",
+          {
+            "type": "element",
+            "prefix": "ods",
+            "style": "kebab-case"
+          }
+        ]
+      }
+    },
+    {
+      "files": ["*.html"],
+      "extends": ["plugin:@nx/angular-template"],
+      "rules": {}
+    }
+  ]
+}
diff --git a/alfa-client/libs/design-component/README.md b/alfa-client/libs/design-component/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..592f9f94c13847de3b9f618f3b18e7d2e3ad0ef2
--- /dev/null
+++ b/alfa-client/libs/design-component/README.md
@@ -0,0 +1,7 @@
+# design-component
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test design-component` to execute the unit tests.
diff --git a/alfa-client/libs/design-component/jest.config.ts b/alfa-client/libs/design-component/jest.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2f4cb398aaefead27ce001eeed1d3075221d6e11
--- /dev/null
+++ b/alfa-client/libs/design-component/jest.config.ts
@@ -0,0 +1,22 @@
+/* eslint-disable */
+export default {
+  displayName: 'design-component',
+  preset: '../../jest.preset.js',
+  setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
+  coverageDirectory: '../../coverage/libs/design-component',
+  transform: {
+    '^.+\\.(ts|mjs|js|html)$': [
+      'jest-preset-angular',
+      {
+        tsconfig: '<rootDir>/tsconfig.spec.json',
+        stringifyContentPathRegex: '\\.(html|svg)$',
+      },
+    ],
+  },
+  transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
+  snapshotSerializers: [
+    'jest-preset-angular/build/serializers/no-ng-attributes',
+    'jest-preset-angular/build/serializers/ng-snapshot',
+    'jest-preset-angular/build/serializers/html-comment',
+  ],
+};
diff --git a/alfa-client/libs/design-component/project.json b/alfa-client/libs/design-component/project.json
new file mode 100644
index 0000000000000000000000000000000000000000..debe8b48a5967c37420ac2eb8f8bc35c6d36c932
--- /dev/null
+++ b/alfa-client/libs/design-component/project.json
@@ -0,0 +1,38 @@
+{
+  "name": "design-component",
+  "$schema": "../../node_modules/nx/schemas/project-schema.json",
+  "sourceRoot": "libs/design-component/src",
+  "prefix": "ods",
+  "tags": [],
+  "projectType": "library",
+  "targets": {
+    "test": {
+      "executor": "@nx/jest:jest",
+      "outputs": [
+        "{workspaceRoot}/coverage/{projectRoot}"
+      ],
+      "options": {
+        "jestConfig": "libs/design-component/jest.config.ts",
+        "passWithNoTests": true
+      },
+      "configurations": {
+        "ci": {
+          "ci": true,
+          "codeCoverage": true
+        }
+      }
+    },
+    "lint": {
+      "executor": "@nx/eslint:lint",
+      "outputs": [
+        "{options.outputFile}"
+      ],
+      "options": {
+        "lintFilePatterns": [
+          "libs/design-component/**/*.ts",
+          "libs/design-component/**/*.html"
+        ]
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/alfa-client/libs/design-component/src/index.ts b/alfa-client/libs/design-component/src/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..72d1c0c5131339ff9a97af910b9e30cb2142f643
--- /dev/null
+++ b/alfa-client/libs/design-component/src/index.ts
@@ -0,0 +1 @@
+export * from './lib/form/file-upload-editor/file-upload-editor.component';
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.html b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html
similarity index 100%
rename from alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.html
rename to alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.spec.ts b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts
similarity index 84%
rename from alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.spec.ts
rename to alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts
index bc564d8a8dbb121396404ee5924e20bfe640a475..84fcd005f96d6c1d9dbe246fa14dbd4ceaf11546 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.spec.ts
+++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts
@@ -21,7 +21,7 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { ConvertForDataTestPipe, createEmptyStateResource } from '@alfa-client/tech-shared';
+import { createEmptyStateResource } from '@alfa-client/tech-shared';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import {
   AbstractControl,
@@ -35,14 +35,14 @@ import { MatFormFieldModule } from '@angular/material/form-field';
 import { MatIconModule } from '@angular/material/icon';
 import { MatInputModule } from '@angular/material/input';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from 'design-system';
+import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system';
+import { ValidationErrorComponent } from 'libs/ui/src/lib/ui/validation-error/validation-error.component';
 import { MockComponent } from 'ng-mocks';
-import { ValidationErrorComponent } from '../../validation-error/validation-error.component';
-import { FileUploadFieldComponent } from './file-upload-field.component';
+import { FileUploadEditorComponent } from './file-upload-editor.component';
 
-describe('FileUploadFieldComponent', () => {
-  let component: FileUploadFieldComponent;
-  let fixture: ComponentFixture<FileUploadFieldComponent>;
+describe('FileUploadEditorComponent', () => {
+  let component: FileUploadEditorComponent;
+  let fixture: ComponentFixture<FileUploadEditorComponent>;
   const fb = new UntypedFormBuilder();
   const formGroupDirective = new FormGroupDirective([], []);
   formGroupDirective.form = fb.group({
@@ -52,8 +52,7 @@ describe('FileUploadFieldComponent', () => {
   beforeEach(async () => {
     await TestBed.configureTestingModule({
       declarations: [
-        FileUploadFieldComponent,
-        ConvertForDataTestPipe,
+        FileUploadEditorComponent,
         MockComponent(ValidationErrorComponent),
         MockComponent(SpinnerIconComponent),
         MockComponent(IconComponent),
@@ -80,7 +79,7 @@ describe('FileUploadFieldComponent', () => {
   });
 
   beforeEach(() => {
-    fixture = TestBed.createComponent(FileUploadFieldComponent);
+    fixture = TestBed.createComponent(FileUploadEditorComponent);
     component = fixture.componentInstance;
     component.parentFormArrayName = 'attachments';
     component.uploadInProgress = createEmptyStateResource();
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.ts b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts
similarity index 67%
rename from alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.ts
rename to alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts
index ba04fdf9cc38d4e19635cd41aed29012fcc97f7c..f46fb01b23bf9cb35e80895168969e2f8f8433cf 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.ts
+++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts
@@ -1,28 +1,33 @@
-import {
-  Component,
-  EventEmitter,
-  HostListener,
-  Input,
-  OnInit,
-  Output,
-} from '@angular/core';
+import { StateResource, TechSharedModule } from '@alfa-client/tech-shared';
+import { FormControlEditorAbstractComponent } from '@alfa-client/ui';
+import { NgForOf } from '@angular/common';
+import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';
 import {
   ControlContainer,
+  FormGroupDirective,
+  ReactiveFormsModule,
   UntypedFormArray,
   UntypedFormControl,
-  FormGroupDirective,
 } from '@angular/forms';
-import { StateResource } from '@alfa-client/tech-shared';
-import { uniqueId } from 'lodash-es';
 import { Resource } from '@ngxp/rest';
-import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component';
+import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system';
+import { uniqueId } from 'lodash-es';
 
 @Component({
-  selector: 'ozgcloud-file-upload-field',
-  templateUrl: './file-upload-field.component.html',
+  selector: 'ods-file-upload-editor',
+  templateUrl: './file-upload-editor.component.html',
   viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }],
+  standalone: true,
+  imports: [
+    FileUploadButtonComponent,
+    IconComponent,
+    SpinnerIconComponent,
+    ReactiveFormsModule,
+    NgForOf,
+    TechSharedModule,
+  ],
 })
-export class FileUploadFieldComponent
+export class FileUploadEditorComponent
   extends FormControlEditorAbstractComponent
   implements OnInit
 {
diff --git a/alfa-client/libs/design-component/src/test-setup.ts b/alfa-client/libs/design-component/src/test-setup.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ef358fbdf02a6bfc0ca9a7c2f5c73766b01ef584
--- /dev/null
+++ b/alfa-client/libs/design-component/src/test-setup.ts
@@ -0,0 +1,7 @@
+globalThis.ngJest = {
+  testEnvironmentOptions: {
+    errorOnUnknownElements: true,
+    errorOnUnknownProperties: true,
+  },
+};
+import 'jest-preset-angular/setup-jest';
diff --git a/alfa-client/libs/design-component/tsconfig.json b/alfa-client/libs/design-component/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..2b706589dab1a61d0c9a4f928e271f5e996c3466
--- /dev/null
+++ b/alfa-client/libs/design-component/tsconfig.json
@@ -0,0 +1,16 @@
+{
+  "compilerOptions": {
+    "target": "es2022"
+  },
+  "files": [],
+  "include": [],
+  "references": [
+    {
+      "path": "./tsconfig.lib.json"
+    },
+    {
+      "path": "./tsconfig.spec.json"
+    }
+  ],
+  "extends": "../../tsconfig.base.json"
+}
diff --git a/alfa-client/libs/design-component/tsconfig.lib.json b/alfa-client/libs/design-component/tsconfig.lib.json
new file mode 100644
index 0000000000000000000000000000000000000000..92987370e0ee1a0ee9444862c6101947f3274f5f
--- /dev/null
+++ b/alfa-client/libs/design-component/tsconfig.lib.json
@@ -0,0 +1,17 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../dist/out-tsc",
+    "declaration": true,
+    "declarationMap": true,
+    "inlineSources": true,
+    "types": []
+  },
+  "angularCompilerOptions": {
+    "skipTemplateCodegen": true,
+    "strictMetadataEmit": true,
+    "enableResourceInlining": true
+  },
+  "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"],
+  "include": ["src/**/*.ts"]
+}
diff --git a/alfa-client/libs/design-component/tsconfig.spec.json b/alfa-client/libs/design-component/tsconfig.spec.json
new file mode 100644
index 0000000000000000000000000000000000000000..7870b7c011681fb77d6114001f44d3eeca69975b
--- /dev/null
+++ b/alfa-client/libs/design-component/tsconfig.spec.json
@@ -0,0 +1,11 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../dist/out-tsc",
+    "module": "commonjs",
+    "target": "es2016",
+    "types": ["jest", "node"]
+  },
+  "files": ["src/test-setup.ts"],
+  "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
+}
diff --git a/alfa-client/libs/design-system/ng-package.json b/alfa-client/libs/design-system/ng-package.json
deleted file mode 100644
index 3af87707a4d057cac46dede1721f1d3a1df7b3a1..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/ng-package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-	"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
-	"dest": "../../dist/libs/design-system",
-	"lib": {
-		"entryFile": "src/index.ts"
-	}
-}
diff --git a/alfa-client/libs/design-system/package.json b/alfa-client/libs/design-system/package.json
deleted file mode 100644
index 1e3e01a978365ed85846ba7e70bf0c20e0cc325b..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-	"name": "design-system",
-	"version": "0.0.1",
-	"peerDependencies": {
-		"@angular/common": "^16.2.0",
-		"@angular/core": "^16.2.0"
-	},
-	"dependencies": {
-		"tslib": "^2.3.0"
-	},
-	"sideEffects": false
-}
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts b/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts
index 43994bb263c60f7228841aae4f26126b0c3f31cb..2eba01b53838b248b42c2dad8a202c6abb443911 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts
+++ b/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts
@@ -7,7 +7,7 @@ import { MatFormFieldModule } from '@angular/material/form-field';
 import { MatIconModule } from '@angular/material/icon';
 import { MatInputModule } from '@angular/material/input';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { FileUploadButtonComponent, SpinnerIconComponent } from 'design-system';
+import { FileUploadButtonComponent, SpinnerIconComponent } from '@ods/system';
 import { MockComponent } from 'ng-mocks';
 import { ValidationErrorComponent } from '../../validation-error/validation-error.component';
 import { SingleFileUploadEditorComponent } from './single-file-upload-editor.component';
diff --git a/alfa-client/libs/ui/src/lib/ui/ui.module.ts b/alfa-client/libs/ui/src/lib/ui/ui.module.ts
index ceccb6e1ab7de556509984addf63815369dbbb81..bd2345d9fafc9886fa820c41ef3ffba9202a5d11 100644
--- a/alfa-client/libs/ui/src/lib/ui/ui.module.ts
+++ b/alfa-client/libs/ui/src/lib/ui/ui.module.ts
@@ -47,8 +47,8 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { MatTabsModule } from '@angular/material/tabs';
 import { RouterModule } from '@angular/router';
+import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system';
 import { de } from 'date-fns/locale';
-import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from 'design-system';
 import { AppIconComponent } from '../icon/app-icon/app-icon.component';
 import { PostfachIconComponent } from '../icon/postfach-icon/postfach-icon.component';
 import { HttpConnectionTimeoutInterceptor } from '../interceptor/http-connection-timeout.interceptor';
@@ -100,7 +100,6 @@ import { SpinnerTransparencyComponent } from './spinner-transparency/spinner-tra
 import { SpinnerComponent } from './spinner/spinner.component';
 import { SubnavigationComponent } from './subnavigation/subnavigation.component';
 import { ValidationErrorComponent } from './validation-error/validation-error.component';
-import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload-field.component';
 
 @NgModule({
   declarations: [
@@ -125,7 +124,6 @@ import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload
     InternalServerErrorDialogComponent,
     FileUploadEditorComponent,
     SingleFileUploadEditorComponent,
-    FileUploadFieldComponent,
     MatTooltipDirective,
     MatTooltipDisabledDirective,
     MatTooltipClassDirective,
@@ -182,7 +180,7 @@ import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload
     MatButtonToggleModule,
     FileUploadButtonComponent,
     SpinnerIconComponent,
-    IconComponent
+    IconComponent,
   ],
   exports: [
     MatButtonModule,
@@ -232,7 +230,6 @@ import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload
     InternalServerErrorDialogComponent,
     FileUploadEditorComponent,
     SingleFileUploadEditorComponent,
-    FileUploadFieldComponent,
     MatTooltipDirective,
     MatTooltipDisabledDirective,
     MatTooltipClassDirective,
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts
index 6197c656567eec2e1f910fe75a7f192363a2a660..1064a19c8793c209e0237532d4ef98dcdd9c2947 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts
@@ -4,7 +4,7 @@ import { DateEditorComponent } from '@alfa-client/ui';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
 import { MatIcon } from '@angular/material/icon';
-import { RadioButtonCardComponent } from 'design-system';
+import { RadioButtonCardComponent } from '@ods/system';
 import { MockComponent } from 'ng-mocks';
 import { BescheidenFormService } from '../../../bescheiden.formservice';
 import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-bescheiden-antrag-bescheiden.component';
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts
index 52c3db50aad87d18f1714e12014ccfd43f3892b3..1705d6459f4061830c276782e7d388d665575311 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts
@@ -3,7 +3,7 @@ import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
 import { MatIcon } from '@angular/material/icon';
-import { RadioButtonCardComponent } from 'design-system';
+import { RadioButtonCardComponent } from '@ods/system';
 import { MockComponent } from 'ng-mocks';
 import { BescheidenFormService } from '../../../bescheiden.formservice';
 import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-bescheiden-bescheid-versenden.component';
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html
index 69daff33144814855e96932e5e7a07e87ba010d1..58333a2dc251f41b4b20766e3c7882ce5c088416 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html
@@ -1,5 +1,5 @@
 <div [formGroup]="formService.form" class="mt-4">
-  <ozgcloud-file-upload-field
+  <ods-file-upload-editor
     [attr.data-test-id]="'vorgang-bescheiden-upload-editor' + formServiceClass.FIELD_ATTACHMENTS"
     [parentFormArrayName]="formServiceClass.FIELD_ATTACHMENTS"
     [uploadInProgress]="uploadInProgress$ | async"
@@ -7,5 +7,5 @@
     [fileLinkList]="getFileLinkList()"
     label="Attachment hochladen"
   >
-  </ozgcloud-file-upload-field>
+  </ods-file-upload-editor>
 </div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts
index b516cda11f0853911d07cd6f12c8e8bd6f0dc802..e463406befda8957cd2a565d20f07a1ebeaf5aeb 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts
@@ -9,8 +9,8 @@ import {
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
+import { FileUploadEditorComponent } from '@ods/component';
 import { cold } from 'jest-marbles';
-import { FileUploadFieldComponent } from 'libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component';
 import { MockComponent, MockPipe } from 'ng-mocks';
 import { EMPTY, Observable, Subscription, of } from 'rxjs';
 import { createBescheidResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid';
@@ -39,7 +39,7 @@ describe('VorgangDetailBescheidenDokumentHochladenComponent', () => {
       declarations: [
         VorgangDetailBescheidenAttachmentHochladenComponent,
         MockComponent(BinaryFileAttachmentContainerComponent),
-        MockComponent(FileUploadFieldComponent),
+        MockComponent(FileUploadEditorComponent),
         MockPipe(HasLinkPipe),
       ],
       imports: [ReactiveFormsModule],
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
index 79731c5661bc0d85b66cb78fd6eaabdfa2c6f839..d0d6bb3254e4c5129d251bd0033eaca8980ea505 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
@@ -14,7 +14,7 @@ import {
   ButtonComponent,
   IconComponent,
   SpinnerIconComponent,
-} from 'design-system';
+} from '@ods/system';
 import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent } from 'ng-mocks';
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts
index f5f153d70de00ceca824e53e1f3c3b3f5b14df02..98455e1671b95601e6f3020c4732e770cd1292a0 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts
@@ -7,7 +7,7 @@ import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
 import { MatIcon } from '@angular/material/icon';
 import faker from '@faker-js/faker';
 import { ResourceUri } from '@ngxp/rest';
-import { SpinnerIconComponent } from 'design-system';
+import { SpinnerIconComponent } from '@ods/system';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
 import { createBescheidStateResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid';
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
index 837545e68b34902a10953df5d1b9961e71ce504d..cc4c4cd8027dd41689d7937837fa7992023ab248 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
@@ -40,6 +40,7 @@ import { WiedervorlageModule } from '@alfa-client/wiedervorlage';
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
 import { RouterModule, Routes } from '@angular/router';
+import { FileUploadEditorComponent } from '@ods/component';
 import {
   AttachmentComponent,
   BescheidGenerateIconComponent,
@@ -48,7 +49,7 @@ import {
   IconComponent,
   RadioButtonCardComponent,
   SpinnerIconComponent,
-} from 'design-system';
+} from '@ods/system';
 import { AktenzeichenEditDialogComponent } from './aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component';
 import { AktenzeichenEditableComponent } from './aktenzeichen-editable/aktenzeichen-editable.component';
 import { AbschliessenButtonComponent } from './buttons/abschliessen-button/abschliessen-button.component';
@@ -136,6 +137,7 @@ const routes: Routes = [
     BescheidUploadIconComponent,
     BescheidGenerateIconComponent,
     AttachmentComponent,
+    FileUploadEditorComponent,
   ],
   declarations: [
     VorgangDetailPageComponent,
diff --git a/alfa-client/nx.json b/alfa-client/nx.json
index 848237a025ee7fb9252b85e090a073afd6929346..972e0ca235126465a95f3927eef852f1eee0e3f6 100644
--- a/alfa-client/nx.json
+++ b/alfa-client/nx.json
@@ -14,7 +14,8 @@
     },
     "@nx/angular:library": {
       "linter": "eslint",
-      "unitTestRunner": "jest"
+      "unitTestRunner": "jest",
+      "styleext": "scss"
     },
     "@nrwl/schematics:component": {
       "styleext": "scss"
diff --git a/alfa-client/tsconfig.base.json b/alfa-client/tsconfig.base.json
index 1f7364bba7606a74a3d102427b82bb77ac3049cb..485fa33d9e73493edfbf2a27dcdea991191ad1f8 100644
--- a/alfa-client/tsconfig.base.json
+++ b/alfa-client/tsconfig.base.json
@@ -54,7 +54,8 @@
       "@alfa-client/wiedervorlage": ["libs/wiedervorlage/src/index.ts"],
       "@alfa-client/wiedervorlage-shared": ["libs/wiedervorlage-shared/src/index.ts"],
       "authentication": ["libs/authentication/src/index.ts"],
-      "design-system": ["libs/design-system/src/index.ts"]
+      "@ods/component": ["libs/design-component/src/index.ts"],
+      "@ods/system": ["libs/design-system/src/index.ts"]
     }
   },
   "exclude": ["node_modules", "tmp"]
diff --git a/alfa-server/src/main/resources/application-local.yml b/alfa-server/src/main/resources/application-local.yml
index 6e08f1833de6c4fa25055aaa545745fb6a1a46bb..961e14d6fa3f44e0a1382e4b26c924e1fe0fd2d2 100644
--- a/alfa-server/src/main/resources/application-local.yml
+++ b/alfa-server/src/main/resources/application-local.yml
@@ -26,6 +26,10 @@ ozgcloud:
     url: http://localhost:9092
     profile-template: /api/userProfiles/%s
     search-template: /api/userProfiles/?searchBy={searchBy}
+  xdomea:
+    behoerdenschluessel: "behoerdenschluesselWirdÜberHelmGesetzt"
+    behoerdenschluesselUri: "behoerdenschluesselUriWirdÜberHelmGesetzt"
+    behoerdenschluesselVersion: "behoerdenschluesselVersionWirdÜberHelmGesetzt"
 
 keycloak:
   auth-server-url: http://localhost:8088
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java
index 6e6924f1e9c77d72a6dc8e18aed2bdea3d604a07..3937b36d4eb85deb773eac2dcd0d1cad63a098c7 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java
@@ -13,7 +13,7 @@ import de.xoev.xdomea.VersionType;
 public class VersionTypeBuilder {
 	public static final String VERSION_NUMMER = "1";
 	public static final String DATEI_FORMAT_LIST_URI = "urn:xoev-de:xdomea:codeliste:dateiformat";
-	public static final String LIST_VERSION_ID = "vCBzR";
+	public static final String LIST_VERSION_ID = "2.0";
 	private OzgFile ozgFile;
 	private ZonedDateTime createdAt;
 	private String ersteller;
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java
index 63ace13435d4cdd1a6fbbc0abbbbb77d398668a0..ae734f35808d7cff6c55d85f30070b136539630f 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java
@@ -72,18 +72,7 @@ class XdomeaNachrichtBuilder {
 	public AbgabeAbgabe0401 build() {
 		addVorgangDokumente();
 		addVorgangChangeHistory();
-
-		var abgabeType = new AbgabeAbgabe0401();
-		abgabeType.setKopf(kopf);
-		abgabeType.getSchriftgutobjekt().add(createSchriftgutobjekt());
-		return abgabeType;
-	}
-
-	private Schriftgutobjekt createSchriftgutobjekt() {
-		var schriftgutobjekt = new Schriftgutobjekt();
-		schriftgutobjekt.setVorgang(vorgang);
-		schriftgutobjekt.setAkte(aktenzeichen);
-		return schriftgutobjekt;
+		return createAbgabeType();
 	}
 
 	void addVorgangDokumente() {
@@ -96,4 +85,24 @@ class XdomeaNachrichtBuilder {
 	void addVorgangChangeHistory() {
 		historie.forEach(vorgang.getHistorienProtokollInformation()::add);
 	}
+
+	AbgabeAbgabe0401 createAbgabeType() {
+		var abgabeType = new AbgabeAbgabe0401();
+		abgabeType.setKopf(kopf);
+		abgabeType.getSchriftgutobjekt().add(createSchriftgutobjektVorgang());
+		abgabeType.getSchriftgutobjekt().add(createSchriftgutobjektAkte());
+		return abgabeType;
+	}
+
+	private Schriftgutobjekt createSchriftgutobjektVorgang() {
+		var schriftgutobjekt = new Schriftgutobjekt();
+		schriftgutobjekt.setVorgang(vorgang);
+		return schriftgutobjekt;
+	}
+
+	private Schriftgutobjekt createSchriftgutobjektAkte() {
+		var schriftgutobjekt = new Schriftgutobjekt();
+		schriftgutobjekt.setAkte(aktenzeichen);
+		return schriftgutobjekt;
+	}
 }
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java
index c2f59b1d50bca5d9902a5bc6defec49015edc1a3..b6b91bf3b14188ba000c8e797374e7753b0d5740 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java
@@ -1,5 +1,7 @@
 package de.ozgcloud.alfa.export;
 
+import jakarta.validation.constraints.NotNull;
+
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 
@@ -15,5 +17,10 @@ public class XdomeaProperties {
 	/**
 	 * xdomea Behoerdenschluessel.
 	 */
+	@NotNull
 	private String behoerdenschluessel;
+	@NotNull
+	private String behoerdenschluesselUri;
+	@NotNull
+	private String behoerdenschluesselVersion;
 }
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java
index 2e36dd77eb1da1e8f721b66d5e2d74c86484ee2a..26ca34e45be143fbd7aa2d46c5cd21f223416835 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java
@@ -1,26 +1,17 @@
 package de.ozgcloud.alfa.kommentar;
 
-import de.ozgcloud.alfa.common.DateConverter;
-import de.ozgcloud.alfa.common.PrimaerdokumentTypeBuilder;
-import de.ozgcloud.alfa.common.UUIDConverter;
 import java.util.Collections;
 import java.util.List;
 
 import de.ozgcloud.alfa.common.AnlageDokumentTypeBuilder;
+import de.ozgcloud.alfa.common.DateConverter;
 import de.ozgcloud.alfa.common.IdentifikationObjektTypeBuilder;
 import de.ozgcloud.alfa.common.file.OzgFile;
 import de.xoev.xdomea.AnlageDokumentType;
 import de.xoev.xdomea.DokumentType;
-import de.xoev.xdomea.FormatType;
 import de.xoev.xdomea.HistorienProtokollInformationType;
-import de.xoev.xdomea.IdentifikationObjektType;
-import de.xoev.xdomea.VersionType;
-import java.util.Collections;
-import java.util.List;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang3.StringUtils;
 
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class DokumentTypeBuilder {
@@ -85,5 +76,4 @@ class DokumentTypeBuilder {
 		return this.authorFullName + "; " + this.organisationseinheitenID;
 	}
 
-
 }
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java
index a31903a23072ed69eac7f8537ea16171d052e36a..e5c2cddfa66a67517f7cc0f24d7c384be37dac22 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java
@@ -20,9 +20,6 @@ import lombok.RequiredArgsConstructor;
 @Component
 class KopfCreator {
 
-	static final String BEHOERDENSCHLUSSEL_LIST_URI = "urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:rs";
-	static final String BEHOERDENSCHLUSSEL_LIST_VERSION_ID = "2023-11-30";
-
 	static final String NACHRICHTENTYP_CODE_TYPE_LIST_URI = "urn:xoev-de:xdomea:codeliste:nachrichtentyp";
 	static final String NACHRICHTENTYP_CODE_TYPE_LIST_VERSION_ID = "2.0";
 	static final String NACHRICHTENTYP_ABGABE_ABGABE_TYPE_CODE = "0401";
@@ -78,8 +75,8 @@ class KopfCreator {
 	Code createBehoerdenschlussen() {
 		var behoerdenschlussel = new Code();
 		behoerdenschlussel.setCode(xDomeaProperties.getBehoerdenschluessel());
-		behoerdenschlussel.setListURI(BEHOERDENSCHLUSSEL_LIST_URI);
-		behoerdenschlussel.setListVersionID(BEHOERDENSCHLUSSEL_LIST_VERSION_ID);
+		behoerdenschlussel.setListURI(xDomeaProperties.getBehoerdenschluesselUri());
+		behoerdenschlussel.setListVersionID(xDomeaProperties.getBehoerdenschluesselVersion());
 		return behoerdenschlussel;
 	}
 
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java
index cfa67b0f0f45dff3c9881a3a64a7b05876d69a37..219cca4fdeb0a561cf52a66fd6af6414fcc2fd3f 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java
@@ -173,6 +173,13 @@ class VersionTypeBuilderTest {
 			assertThat(dateiformatCode.getListURI()).isEqualTo(VersionTypeBuilder.DATEI_FORMAT_LIST_URI);
 		}
 
+		@Test
+		void shouldHaveListVersionID() {
+			var dateiformatCode = builder.createDateiformatCodeType();
+
+			assertThat(dateiformatCode.getListVersionID()).isEqualTo(VersionTypeBuilder.LIST_VERSION_ID);
+		}
+
 		@Test
 		void shouldGetXdomeaCode() {
 			builder.createDateiformatCodeType();
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java
index f7fda37ca90273d24630868b4b1a940ec32b9e31..5e7b4ea241d987d8713cab382e833fde766882cb 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java
@@ -1,13 +1,19 @@
 package de.ozgcloud.alfa.export;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
 
 import java.util.List;
 
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mockito.Spy;
 
 import de.ozgcloud.alfa.common.HistorienProtokollInformationTypeTestFactory;
 import de.ozgcloud.alfa.vorgang.VorgangTypeTestFactory;
+import de.xoev.xdomea.AbgabeAbgabe0401;
+import de.xoev.xdomea.AkteType;
 import de.xoev.xdomea.DokumentType;
 import de.xoev.xdomea.HistorienProtokollInformationType;
 import de.xoev.xdomea.NkAbgabeType;
@@ -15,76 +21,139 @@ import de.xoev.xdomea.VorgangType;
 
 class XdomeaNachrichtBuilderTest {
 
-	private final NkAbgabeType kopfType = NkAbgabeTypeTestFactory.create();
 	private final VorgangType vorgangType = VorgangTypeTestFactory.create();
-	private final List<DokumentType> representations = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
-	private final List<DokumentType> attachments = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
-	private final List<HistorienProtokollInformationType> historie = List.of(HistorienProtokollInformationTypeTestFactory.create(),
-			HistorienProtokollInformationTypeTestFactory.create());
-	private final List<DokumentType> kommentare = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
-	private final List<DokumentType> postfachMails = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
+	@Spy
 	private final XdomeaNachrichtBuilder builder = XdomeaNachrichtBuilder.builder().withVorgang(vorgangType);
 
-	@Test
-	void shoulAddOneSchriftgutobjekt() {
-		var abgabeType = builder.build();
+	@Nested
+	class TestBuild {
+		private final AbgabeAbgabe0401 expectedAbgabe = AbgabeAbgabe0401TestFactory.create();
 
-		assertThat(abgabeType.getSchriftgutobjekt()).size().isEqualTo(1);
-	}
+		@BeforeEach
+		void setUpMock() {
+			doReturn(expectedAbgabe).when(builder).createAbgabeType();
+		}
 
-	@Test
-	void shouldSetVorgang() {
-		var abgabeType = builder.build();
+		@Test
+		void shouldCallAddVorgangDokumente() {
+			builder.build();
 
-		assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang()).isEqualTo(vorgangType);
-	}
+			verify(builder).addVorgangDokumente();
+		}
 
-	@Test
-	void shouldSetKopf() {
-		var abgabeType = builder.withKopf(kopfType).build();
+		@Test
+		void shouldCallAddVorgangChangeHistory() {
+			builder.build();
 
-		assertThat(abgabeType.getKopf()).isEqualTo(kopfType);
-	}
+			verify(builder).addVorgangChangeHistory();
+		}
 
-	@Test
-	void shouldAddRepresentations() {
-		var abgabeType = builder.withRepresentations(representations).build();
+		@Test
+		void shouldCallCreateAbgabeType() {
+			builder.build();
 
-		assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(representations);
-	}
+			verify(builder).createAbgabeType();
+		}
 
-	@Test
-	void shouldAddAttachments() {
-		var abgabeType = builder.withAttachments(attachments).build();
+		@Test
+		void shouldReturnAbgabeType() {
+			var abgabeType = builder.build();
 
-		assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(attachments);
+			assertThat(abgabeType).isEqualTo(expectedAbgabe);
+		}
 	}
 
-	@Test
-	void shouldAddHistorie() {
-		var abgabeType = builder.withHistorie(historie).build();
+	@Nested
+	class TestCreateAbgabeType {
+		private final NkAbgabeType kopfType = NkAbgabeTypeTestFactory.create();
+		private final AkteType akte = AkteTypeTestFactory.create();
 
-		assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getHistorienProtokollInformation()).isEqualTo(historie);
-	}
+		@Test
+		void shouldHaveKopf() {
+			var abgabeType = builder.withKopf(kopfType).createAbgabeType();
+
+			assertThat(abgabeType.getKopf()).isEqualTo(kopfType);
+		}
 
-	@Test
-	void shouldNotAddHistorie() {
-		var abgabeType = builder.build();
+		@Test
+		void shoulAddTwoSchriftgutobjekt() {
+			var abgabeType = builder.withAktenzeichen(akte).createAbgabeType();
+
+			assertThat(abgabeType.getSchriftgutobjekt()).size().isEqualTo(2);
+		}
+
+		@Test
+		void shouldHaveVorgangSchriftgutObjekt() {
+			var abgabeType = builder.createAbgabeType();
+
+			assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang()).isEqualTo(vorgangType);
+		}
+
+		@Test
+		void shouldHaveAkteSchriftgutObjekt() {
+			var abgabeType = builder.withAktenzeichen(akte).createAbgabeType();
+
+			assertThat(abgabeType.getSchriftgutobjekt().get(1).getAkte()).isEqualTo(akte);
+		}
 
-		assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getHistorienProtokollInformation()).isEmpty();
 	}
 
-	@Test
-	void shouldAddKommentare() {
-		var abgabeType = builder.withKommentare(kommentare).build();
+	@Nested
+	class TestAddVorgangDokumente {
+		private final List<DokumentType> representations = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
+		private final List<DokumentType> attachments = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
+		private final List<DokumentType> kommentare = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
+		private final List<DokumentType> postfachMails = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create());
+
+		@Test
+		void shouldAddRepresentations() {
+			builder.withRepresentations(representations).addVorgangDokumente();
+
+			assertThat(vorgangType.getDokument()).isEqualTo(representations);
+		}
+
+		@Test
+		void shouldAddAttachments() {
+			builder.withAttachments(attachments).addVorgangDokumente();
+
+			assertThat(vorgangType.getDokument()).isEqualTo(attachments);
+		}
+
+		@Test
+		void shouldAddKommentare() {
+			builder.withKommentare(kommentare).addVorgangDokumente();
+
+			assertThat(vorgangType.getDokument()).isEqualTo(kommentare);
+		}
+
+		@Test
+		void shouldAddPostfachMails() {
+			builder.withPostfachMails(postfachMails).addVorgangDokumente();
+
+			assertThat(vorgangType.getDokument()).isEqualTo(postfachMails);
+		}
 
-		assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(kommentare);
 	}
 
-	@Test
-	void shouldAddPostfachMails() {
-		var abgabeType = builder.withPostfachMails(postfachMails).build();
+	@Nested
+	class TestAddVorgangChangeHistory {
+
+		private final List<HistorienProtokollInformationType> historie = List.of(HistorienProtokollInformationTypeTestFactory.create(),
+				HistorienProtokollInformationTypeTestFactory.create());
+
+		@Test
+		void shouldAddHistorie() {
+			builder.withHistorie(historie).addVorgangChangeHistory();
 
-		assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(postfachMails);
+			assertThat(vorgangType.getHistorienProtokollInformation()).isEqualTo(historie);
+		}
+
+		@Test
+		void shouldNotAddHistorie() {
+			builder.addVorgangChangeHistory();
+
+			assertThat(vorgangType.getHistorienProtokollInformation()).isEmpty();
+		}
 	}
+
 }
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java
index 1bce187cf0a5b5374f18273a56d90000bff3a931..b602ccaf432568741a7f089b2ebccbb8fb1f1791 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java
@@ -1,6 +1,7 @@
 package de.ozgcloud.alfa.vorgang;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.time.ZoneOffset;
@@ -14,6 +15,8 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
+import com.thedeanda.lorem.LoremIpsum;
+
 import de.ozgcloud.alfa.common.DateConverter;
 import de.ozgcloud.alfa.export.XdomeaProperties;
 import de.xoev.xdomea.BehoerdenkennungType;
@@ -214,7 +217,7 @@ class KopfCreatorTest {
 
 		@Test
 		void shouldSetCode() {
-			var expectedBehoerdenschluessel = "123456789";
+			var expectedBehoerdenschluessel = LoremIpsum.getInstance().getWords(1);
 			when(xDomeaProperties.getBehoerdenschluessel()).thenReturn(expectedBehoerdenschluessel);
 
 			var behoerdenschlussel = creator.createBehoerdenschlussen();
@@ -224,16 +227,22 @@ class KopfCreatorTest {
 
 		@Test
 		void shouldSetListURI() {
+			var expectedBehoerdenschluesselUri = LoremIpsum.getInstance().getUrl();
+			when(xDomeaProperties.getBehoerdenschluesselUri()).thenReturn(expectedBehoerdenschluesselUri);
+
 			var behoerdenschlussel = creator.createBehoerdenschlussen();
 
-			assertThat(behoerdenschlussel.getListURI()).isEqualTo(KopfCreator.BEHOERDENSCHLUSSEL_LIST_URI);
+			assertThat(behoerdenschlussel.getListURI()).isEqualTo(expectedBehoerdenschluesselUri);
 		}
 
 		@Test
 		void shouldSetListVersionID() {
+			var expectedBehoerdenschluesselVersion = LoremIpsum.getInstance().getWords(1);
+			when(xDomeaProperties.getBehoerdenschluesselVersion()).thenReturn(expectedBehoerdenschluesselVersion);
+
 			var behoerdenschlussel = creator.createBehoerdenschlussen();
 
-			assertThat(behoerdenschlussel.getListVersionID()).isEqualTo(KopfCreator.BEHOERDENSCHLUSSEL_LIST_VERSION_ID);
+			assertThat(behoerdenschlussel.getListVersionID()).isEqualTo(expectedBehoerdenschluesselVersion);
 		}
 	}
 
diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml
index b101df46569ff6e1c9432472921bfc8bf7fc1423..1aabf05903d1c0b2e15f6b686e9945f5c943f757 100644
--- a/src/main/helm/templates/deployment.yaml
+++ b/src/main/helm/templates/deployment.yaml
@@ -101,6 +101,12 @@ spec:
           value: {{ $bescheid.formEngineName }}
         {{- end }}
         {{- end}}
+        - name: ozgcloud_xdomea_behoerdenschluessel
+          value: {{ required "ozgcloud.xdomea.behoerdenschluessel muss angegeben sein" ((.Values.ozgcloud).xdomea).behoerdenschluessel | quote }}
+        - name: ozgcloud_xdomea_behoerdenschluesselUri
+          value: {{ required "ozgcloud.xdomea.behoerdenschluesselUri muss angegeben sein" ((.Values.ozgcloud).xdomea).behoerdenschluesselUri}}
+        - name: ozgcloud_xdomea_behoerdenschluesselVersion
+          value: {{ required "ozgcloud.xdomea.behoerdenschluesselVersion muss angegeben sein" ((.Values.ozgcloud).xdomea).behoerdenschluesselVersion | quote }}
 
         image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}"
         imagePullPolicy: Always
diff --git a/src/test/helm-linter-values.yaml b/src/test/helm-linter-values.yaml
index 73536126680ed22d458c77db4f0e36a4ad07f262..7eb04a7cbd54b8dbc684a2801d67bf86f48beab6 100644
--- a/src/test/helm-linter-values.yaml
+++ b/src/test/helm-linter-values.yaml
@@ -28,6 +28,10 @@ ozgcloud:
   bundesland: sh
   bezeichner: helm
   environment: test
+  xdomea:
+    behoerdenschluessel: "123456"
+    behoerdenschluesselUri: uri.uri:uri
+    behoerdenschluesselVersion: "Version 1"
 
 networkPolicy:
   ssoPublicIp: 51.89.117.53/32
@@ -36,4 +40,4 @@ networkPolicy:
 sso:
   serverUrl: https://sso.company.local
 
-imagePullSecret: image-pull-secret
\ No newline at end of file
+imagePullSecret: image-pull-secret
diff --git a/src/test/helm/deployment_63_char_test.yaml b/src/test/helm/deployment_63_char_test.yaml
index 829ab69eac2a57630c55691468e1a4e31d2619a7..56f935559c21ba44f1d895bdccc6f614649be9c5 100644
--- a/src/test/helm/deployment_63_char_test.yaml
+++ b/src/test/helm/deployment_63_char_test.yaml
@@ -26,7 +26,7 @@ suite: test deyploment less than 63 chars
 release:
   name: alfa
   namespace: sh-helm-test
-  
+
 chart:
   name: alfa
 
@@ -37,6 +37,10 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   baseUrl: test.company.local
@@ -60,4 +64,4 @@ tests:
           errorMessage: .Chart.Name-.Chart.Version alfa-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
   - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters
     asserts:
-      - notFailedTemplate: {}
\ No newline at end of file
+      - notFailedTemplate: {}
diff --git a/src/test/helm/deployment_bindings_test.yaml b/src/test/helm/deployment_bindings_test.yaml
index fc77e8acfcca27bbbe6b9f482b81f1e5cb0e84a3..a42e08b93f1e55ace76e0f928514ac4744d5a32a 100644
--- a/src/test/helm/deployment_bindings_test.yaml
+++ b/src/test/helm/deployment_bindings_test.yaml
@@ -33,14 +33,18 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   baseUrl: test.company.local
   imagePullSecret: image-pull-secret
 tests:
   - it: should have volumes
-    set: 
-       usermanagerName: user-manager
+    set:
+      usermanagerName: user-manager
     asserts:
       - contains:
           path: spec.template.spec.containers[0].volumeMounts
@@ -69,21 +73,21 @@ tests:
             subPath: ca.crt
             readOnly: true
   - it: should have volume mounts
-    set: 
-       usermanagerName: user-manager
+    set:
+      usermanagerName: user-manager
     asserts:
       - contains:
-           path: spec.template.spec.volumes
-           content:
-              name: bindings
-              configMap:
-                 name: alfa-bindings-type
+          path: spec.template.spec.volumes
+          content:
+            name: bindings
+            configMap:
+              name: alfa-bindings-type
       - contains:
-           path: spec.template.spec.volumes
-           content:
-              name: user-manager-tls-certificate
-              secret:
-                 secretName: user-manager-tls-cert
+          path: spec.template.spec.volumes
+          content:
+            name: user-manager-tls-certificate
+            secret:
+              secretName: user-manager-tls-cert
       - contains:
           path: spec.template.spec.volumes
           content:
@@ -94,9 +98,9 @@ tests:
           content:
             name: sso-tls-certificate
   - it: should have sso tls cert mount
-    set: 
-       usermanagerName: user-manager
-       sso:
+    set:
+      usermanagerName: user-manager
+      sso:
         tlsCertName: sso-tls-cert
         serverUrl: https://sso.company.local
     asserts:
@@ -130,4 +134,4 @@ tests:
           path: spec.template.spec.volumes
           content:
             name: user-manager-tls-certificate
-          any: true
\ No newline at end of file
+          any: true
diff --git a/src/test/helm/deployment_customList_env_test.yaml b/src/test/helm/deployment_customList_env_test.yaml
index 7ed06f83209a96790e36ab6cd35d31608a44fff1..688ff738fed603778050d6875fbac57b72d0a039 100644
--- a/src/test/helm/deployment_customList_env_test.yaml
+++ b/src/test/helm/deployment_customList_env_test.yaml
@@ -22,15 +22,19 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test environments customList 
+suite: test environments customList
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
diff --git a/src/test/helm/deployment_defaults_affinity_test.yaml b/src/test/helm/deployment_defaults_affinity_test.yaml
index 10518783e34f874d4b9f40270b9795d6ce7f8ce0..30d186a2b5f90146d41b4d9268db11399a6e82b3 100644
--- a/src/test/helm/deployment_defaults_affinity_test.yaml
+++ b/src/test/helm/deployment_defaults_affinity_test.yaml
@@ -33,6 +33,10 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   baseUrl: test.company.local
diff --git a/src/test/helm/deployment_defaults_env_test.yaml b/src/test/helm/deployment_defaults_env_test.yaml
index 46fa731257e72bf9a8769bcb8376624c801a8a53..2e5e68b5275e27c9c755cc71cc6a80366834ed51 100644
--- a/src/test/helm/deployment_defaults_env_test.yaml
+++ b/src/test/helm/deployment_defaults_env_test.yaml
@@ -34,13 +34,17 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
 tests:
   - it: check default values
-    set: 
-       usermanagerName: user-manager
+    set:
+      usermanagerName: user-manager
     asserts:
       - isKind:
           of: Deployment
@@ -55,14 +59,13 @@ tests:
             name: grpc_client_user-manager_address
             value: user-manager.sh-helm-test:9000
 
-
   - it: should have service binding root
-    set: 
-       usermanagerName: user-manager
+    set:
+      usermanagerName: user-manager
     asserts:
       - contains:
-         path: spec.template.spec.containers[0].env
-         content:
+          path: spec.template.spec.containers[0].env
+          content:
             name: SERVICE_BINDING_ROOT
             value: "/bindings"
 
@@ -132,4 +135,4 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: grpc_client_user-manager_negotiationType
-            value: TLS
\ No newline at end of file
+            value: TLS
diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index 1bbcef91e098fabe4cc2467529972884294eb0b3..93e3dc85202ef0dd11f8465f13de5a9ac322833a 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -28,13 +28,17 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
- 
+
 set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -43,11 +47,11 @@ tests:
     asserts:
       - equal:
           path: metadata.labels
-          value: 
+          value:
             app.kubernetes.io/instance: alfa
             app.kubernetes.io/managed-by: Helm
             app.kubernetes.io/name: alfa
             app.kubernetes.io/namespace: sh-helm-test
             app.kubernetes.io/part-of: ozgcloud
             app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
-            helm.sh/chart: alfa-0.0.0-MANAGED-BY-JENKINS
\ No newline at end of file
+            helm.sh/chart: alfa-0.0.0-MANAGED-BY-JENKINS
diff --git a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
index 5748514857cb81f4e4d03befc9a1a122ea5d9945..a216743645f6f9b105815166fd2fff59b9837db7 100644
--- a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
@@ -24,65 +24,68 @@
 
 suite: test deployment health check
 release:
-  name: alfa
-  namespace: sh-helm-test
+    name: alfa
+    namespace: sh-helm-test
 templates:
-  - templates/deployment.yaml
+    - templates/deployment.yaml
 set:
-  baseUrl: test.company.local
-  ozgcloud:
-    environment: test
-    bundesland: sh
-    bezeichner: helm
-  sso:
-    serverUrl: https://sso.company.local
-  imagePullSecret: image-pull-secret
+    baseUrl: test.company.local
+    ozgcloud:
+        environment: test
+        bundesland: sh
+        bezeichner: helm
+        xdomea:
+            behoerdenschluessel: "123456"
+            behoerdenschluesselUri: uri.uri:uri
+            behoerdenschluesselVersion: "Version 1"
+    sso:
+        serverUrl: https://sso.company.local
+    imagePullSecret: image-pull-secret
 tests:
-  - it: should have correct valaues for health check
-    asserts:
-      - equal:
-          path: spec.template.spec.containers[0].readinessProbe.failureThreshold
-          value: 3
-      - equal:
-          path: spec.template.spec.containers[0].readinessProbe.httpGet.path
-          value: /actuator/health/readiness
-      - equal:
-          path: spec.template.spec.containers[0].readinessProbe.httpGet.port
-          value: 8081
-      - equal:
-          path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme
-          value: HTTP
-      - equal:
-          path: spec.template.spec.containers[0].readinessProbe.periodSeconds
-          value: 10
-      - equal:
-          path: spec.template.spec.containers[0].readinessProbe.successThreshold
-          value: 1
-      - equal:
-          path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds
-          value: 3  
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.failureThreshold
-          value: 10
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.httpGet.path
-          value: /actuator/health/readiness
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.httpGet.port
-          value: 8081
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.httpGet.scheme
-          value: HTTP
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds
-          value: 30
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.periodSeconds
-          value: 5
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.successThreshold
-          value: 1
-      - equal:
-          path: spec.template.spec.containers[0].startupProbe.timeoutSeconds
-          value: 5
-      
\ No newline at end of file
+    - it: should have correct valaues for health check
+      asserts:
+          - equal:
+                path: spec.template.spec.containers[0].readinessProbe.failureThreshold
+                value: 3
+          - equal:
+                path: spec.template.spec.containers[0].readinessProbe.httpGet.path
+                value: /actuator/health/readiness
+          - equal:
+                path: spec.template.spec.containers[0].readinessProbe.httpGet.port
+                value: 8081
+          - equal:
+                path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme
+                value: HTTP
+          - equal:
+                path: spec.template.spec.containers[0].readinessProbe.periodSeconds
+                value: 10
+          - equal:
+                path: spec.template.spec.containers[0].readinessProbe.successThreshold
+                value: 1
+          - equal:
+                path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds
+                value: 3
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.failureThreshold
+                value: 10
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.httpGet.path
+                value: /actuator/health/readiness
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.httpGet.port
+                value: 8081
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.httpGet.scheme
+                value: HTTP
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds
+                value: 30
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.periodSeconds
+                value: 5
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.successThreshold
+                value: 1
+          - equal:
+                path: spec.template.spec.containers[0].startupProbe.timeoutSeconds
+                value: 5
diff --git a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
index be7c9a27dd4b584c17247abe363db669a3e349fc..db495d1e81c7f9b105260ba621c1241b23365437 100644
--- a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
@@ -34,6 +34,10 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -92,4 +96,4 @@ tests:
           path: spec.template.spec.containers[0].securityContext.capabilities
           value:
             drop:
-              - ALL
\ No newline at end of file
+              - ALL
diff --git a/src/test/helm/deployment_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml
index cf97d4e2ea8b3526b6e0f57616fdb6d02822e215..d6fa262f48d0e455f791bdd3c559c512813379f6 100644
--- a/src/test/helm/deployment_defaults_spec_containers_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -78,4 +82,4 @@ tests:
           value: metrics
       - equal:
           path: spec.template.spec.containers[0].ports[1].protocol
-          value: TCP
\ No newline at end of file
+          value: TCP
diff --git a/src/test/helm/deployment_defaults_sso_env_test.yaml b/src/test/helm/deployment_defaults_sso_env_test.yaml
index d3bb35a1793e67a0a45089df6b2bc4e3d3bc50dd..0b8017066f12fb6fa88c5a5bf930df8979df054b 100644
--- a/src/test/helm/deployment_defaults_sso_env_test.yaml
+++ b/src/test/helm/deployment_defaults_sso_env_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -83,4 +87,4 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: keycloak_resource
-            value: different-client
\ No newline at end of file
+            value: different-client
diff --git a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
index 7bb4be03499b6a5a87c307773eacdd2e9833c64b..a319bba88c827ee006de7735576d16dd74152e78 100644
--- a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
+++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -51,4 +55,4 @@ tests:
           value: ScheduleAnyway
       - equal:
           path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"]
-          value: alfa
\ No newline at end of file
+          value: alfa
diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml
index 6e631160b32aa36bd2e3edc30bd8106f91b004ff..579000d7c63681b7bd4f4d772183693e5e54062c 100644
--- a/src/test/helm/deployment_host_aliases_test.yaml
+++ b/src/test/helm/deployment_host_aliases_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -47,13 +51,13 @@ tests:
       hostAliases:
         - ip: "127.0.0.1"
           hostname:
-          - "eins"
-          - "zwei"
+            - "eins"
+            - "zwei"
     asserts:
       - contains:
           path: spec.template.spec.hostAliases
           content:
             ip: "127.0.0.1"
             hostname:
-            - "eins"
-            - "zwei"
+              - "eins"
+              - "zwei"
diff --git a/src/test/helm/deployment_imageTag_test.yaml b/src/test/helm/deployment_imageTag_test.yaml
index 6183e22152abbf377cc00fba756eddacdc3f1c92..e3973e264491fed4a3b0e6970a0585a27ef56907 100644
--- a/src/test/helm/deployment_imageTag_test.yaml
+++ b/src/test/helm/deployment_imageTag_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -44,4 +48,4 @@ tests:
     asserts:
       - equal:
           path: spec.template.spec.containers[0].image
-          value: docker.ozg-sh.de/alfa:latest
\ No newline at end of file
+          value: docker.ozg-sh.de/alfa:latest
diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
index f7bd1f34172e0b0fb27bb65c65e449c4022dc2aa..e0fbf9fe891c1402f864c965e4cf4d6e2eb87da1 100644
--- a/src/test/helm/deployment_imagepull_secret_test.yaml
+++ b/src/test/helm/deployment_imagepull_secret_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
 tests:
@@ -47,4 +51,4 @@ tests:
   - it: should fail template if imagepullsecret not set
     asserts:
       - failedTemplate:
-          errormessage: imagePullSecret must be set
\ No newline at end of file
+          errormessage: imagePullSecret must be set
diff --git a/src/test/helm/deployment_liveness_probe_test.yaml b/src/test/helm/deployment_liveness_probe_test.yaml
index 0c0fde464c0a336863ea1fbca809e96ff2f045f9..688d7362586c481e7fd64b16ebd7a28cc729580a 100644
--- a/src/test/helm/deployment_liveness_probe_test.yaml
+++ b/src/test/helm/deployment_liveness_probe_test.yaml
@@ -34,6 +34,10 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -62,4 +66,4 @@ tests:
   - it: not enable livenessProbe by default
     asserts:
       - isNull:
-          path: spec.template.spec.containers[0].livenessProbe
\ No newline at end of file
+          path: spec.template.spec.containers[0].livenessProbe
diff --git a/src/test/helm/deployment_pod_default_spec_values_test.yaml b/src/test/helm/deployment_pod_default_spec_values_test.yaml
index aab286ae8900126630d6c293cf79b5e82005d6bd..fe479d789bf85d6d7196fde97b17b77371adf3b3 100644
--- a/src/test/helm/deployment_pod_default_spec_values_test.yaml
+++ b/src/test/helm/deployment_pod_default_spec_values_test.yaml
@@ -1,4 +1,4 @@
- #
+#
 # Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
 # Ministerpräsidenten des Landes Schleswig-Holstein
 # Staatskanzlei
@@ -34,12 +34,16 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
 tests:
- - it: should have correct pod template values
-   asserts:
+  - it: should have correct pod template values
+    asserts:
       - isEmpty:
           path: spec.template.spec.dnsConfig
       - equal:
@@ -53,4 +57,4 @@ tests:
           value: "default-scheduler"
       - equal:
           path: spec.template.spec.terminationGracePeriodSeconds
-          value: 30
\ No newline at end of file
+          value: 30
diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml
index ee5785c522f4c35288c78ef4dc10eb6b959bb057..ae938d402582e9a87963775eeab6a0077d1b277a 100644
--- a/src/test/helm/deployment_resources_test.yaml
+++ b/src/test/helm/deployment_resources_test.yaml
@@ -27,12 +27,16 @@ release:
   name: alfa
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -62,4 +66,4 @@ tests:
   - it: test empty resources
     asserts:
       - isEmpty:
-          path: spec.template.spec.containers[0].resources
\ No newline at end of file
+          path: spec.template.spec.containers[0].resources
diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml
index 7e5a49ca0e13dffb4588f6855fe9cd25e88db9fa..a57bc628ff6b7c1cd4f290efb45740b24a22bb18 100644
--- a/src/test/helm/deployment_service_account_test.yaml
+++ b/src/test/helm/deployment_service_account_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -58,4 +62,4 @@ tests:
   - it: should use default service account
     asserts:
       - isNull:
-          path: spec.template.spec.serviceAccountName
\ No newline at end of file
+          path: spec.template.spec.serviceAccountName
diff --git a/src/test/helm/deployment_springProfile_env_test.yaml b/src/test/helm/deployment_springProfile_env_test.yaml
index 73a7188c0ec0dbba5c1ae45480c4fffc1471d197..c9507240396ac72e74db4dd34147d3d4df8b9825 100644
--- a/src/test/helm/deployment_springProfile_env_test.yaml
+++ b/src/test/helm/deployment_springProfile_env_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -53,4 +57,4 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: spring_profiles_active
-            value: oc, test
\ No newline at end of file
+            value: oc, test
diff --git a/src/test/helm/deployment_usermanager_address_env_test.yaml b/src/test/helm/deployment_usermanager_address_env_test.yaml
index 028e532557a65b3874420f6447a806f67dd4508a..58c7cb58e5b4c4c4223c0451fc64728724abcc20 100644
--- a/src/test/helm/deployment_usermanager_address_env_test.yaml
+++ b/src/test/helm/deployment_usermanager_address_env_test.yaml
@@ -34,6 +34,10 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
diff --git a/src/test/helm/deployment_vorgang_manager_address_env_test.yaml b/src/test/helm/deployment_vorgang_manager_address_env_test.yaml
index 6c71f04812469eb3d0d06e2abaaedc1ff79d83b4..5ad441a04a40b50098c7567829e2010d3853e38f 100644
--- a/src/test/helm/deployment_vorgang_manager_address_env_test.yaml
+++ b/src/test/helm/deployment_vorgang_manager_address_env_test.yaml
@@ -28,12 +28,16 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
diff --git a/src/test/helm/deployment_xdomea_env_test.yaml b/src/test/helm/deployment_xdomea_env_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7656d2d0ea2d8a7295222ed701c908f6cfdc1760
--- /dev/null
+++ b/src/test/helm/deployment_xdomea_env_test.yaml
@@ -0,0 +1,82 @@
+suite: deployment xdomea env
+release:
+  name: alfa
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should fail on missing behoerdenschlüssel
+    set:
+      ozgcloud:
+        xdomea:
+          behoerdenschluesselUri: "uri.uri:uri"
+          behoerdenschluesselVersion: "version 1"
+    asserts:
+      - failedTemplate:
+          errorMessage: "ozgcloud.xdomea.behoerdenschluessel muss angegeben sein"
+  - it: should set behoerdenschlüssel
+    set:
+      ozgcloud:
+        xdomea:
+          behoerdenschluessel: "123456"
+          behoerdenschluesselUri: "uri.uri:uri"
+          behoerdenschluesselVersion: "version 1"
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_xdomea_behoerdenschluessel
+            value: "123456"
+  - it: should fail on missing behoerdenschlüsselUri
+    set:
+      ozgcloud:
+        xdomea:
+          behoerdenschluessel: "123456"
+          behoerdenschluesselVersion: "version 1"
+    asserts:
+      - failedTemplate:
+          errorMessage: "ozgcloud.xdomea.behoerdenschluesselUri muss angegeben sein"
+  - it: should set behoerdenschlüsselUri
+    set:
+      ozgcloud:
+        xdomea:
+          behoerdenschluessel: "123456"
+          behoerdenschluesselUri: "uri.uri:uri"
+          behoerdenschluesselVersion: "version 1"
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_xdomea_behoerdenschluesselUri
+            value: "uri.uri:uri"
+  - it: should fail on missing behoerdenschlüsselVersion
+    set:
+      ozgcloud:
+        xdomea:
+          behoerdenschluessel: "123456"
+          behoerdenschluesselUri: "uri.uri:uri"
+    asserts:
+      - failedTemplate:
+          errorMessage: "ozgcloud.xdomea.behoerdenschluesselVersion muss angegeben sein"
+  - it: should set behoerdenschlüsselVersion
+    set:
+      ozgcloud:
+        xdomea:
+          behoerdenschluessel: "123456"
+          behoerdenschluesselUri: "uri.uri:uri"
+          behoerdenschluesselVersion: "version 1"
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_xdomea_behoerdenschluesselVersion
+            value: "version 1"
diff --git a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
index edbcc4123f4322e758e45653c99d92b4a078519c..37001633477f2064777c9ceede85bbe9af9dfff5 100644
--- a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
+++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
@@ -34,6 +34,10 @@ set:
     environment: test
     bundesland: sh
     bezeichner: helm
+    xdomea:
+      behoerdenschluessel: "123456"
+      behoerdenschluesselUri: uri.uri:uri
+      behoerdenschluesselVersion: "Version 1"
   sso:
     serverUrl: https://sso.company.local
   imagePullSecret: image-pull-secret
@@ -44,18 +48,17 @@ tests:
       - isKind:
           of: Deployment
       - isAPIVersion:
-           of: "apps/v1"
-      
-  - it: should have correct deployment metadata 
-    asserts: 
+          of: "apps/v1"
+
+  - it: should have correct deployment metadata
+    asserts:
       - equal:
           path: metadata.name
           value: alfa
-      - equal: 
+      - equal:
           path: metadata.namespace
           value: sh-helm-test
 
-
   - it: should have correct deyployment general spec values
     asserts:
       - equal:
@@ -69,12 +72,10 @@ tests:
           value: 10
   - it: should have correct deployment spec strategy values
     asserts:
-      - equal: 
+      - equal:
           path: spec.strategy
-          value: 
+          value:
             rollingUpdate:
               maxSurge: 1
               maxUnavailable: 0
             type: RollingUpdate
-          
-