Commit Graph

55 Commits

Author SHA1 Message Date
c3d288cd66 chore: refactor Gradle config, standardize Kotlin MPP plugin usage, and update dependencies
- Unified plugin application across modules using `alias(libs.plugins.*)` instead of hardcoded IDs.
- Removed redundant JVM/JS source map tasks, improving Gradle and Docker build consistency.
- Updated dependencies, including `logback` and Webpack `copy-webpack-plugin`, and added contextual documentation.
- Added frontend architecture diagram in PlantUML (`docs/01_Architecture/Reference`), standardizing feature-core-shell dependencies.
2026-02-05 02:07:53 +01:00
1aaaf8a203 build: optimize Docker setup for Caddy SPA and improve runtime stability
Updated Dockerfile to streamline the hybrid build process and optimize artifact integration. Modified Caddyfile for better routing logic, enhanced security headers, Prometheus metrics, and improved API proxy handling. Adjusted `dc-gui.yaml` for container stability and simplified runtime configuration for `apiBaseUrl`. Expanded documentation with troubleshooting and session logs.
2026-02-04 16:31:26 +01:00
e8dd8cf48f build: switch to hybrid build for Kotlin/JS web-app and optimize Docker setup
Replaced multi-stage Docker builds with a hybrid approach that pre-builds frontend artifacts locally and copies them into the container. Removed Kotlin Multiplatform configurations from the root project to resolve NodeJsRootPlugin conflicts. Adjusted `.dockerignore` to allow pre-built artifacts and increased Gradle/Kotlin daemon memory for faster builds. Updated Caddyfile for runtime stability and added documentation for new build processes.
2026-02-04 15:34:40 +01:00
5be88b306c chore(infra+frontend): upgrade Gradle to 9.3.1 and fix KMP plugin conflicts in Docker builds
- Updated Gradle version in `.env`, Dockerfiles, and wrapper to 9.3.1.
- Replaced alias-based application of `kotlinMultiplatform` plugin with direct `id` usage in subprojects to resolve "Plugin loaded multiple times" error.
- Applied centralized plugin management and Gradle daemon optimizations to improve Docker build stability and address KMP classloading issues.
2026-02-02 23:01:23 +01:00
11c597f147 feat: add runtime configuration for Caddy-based SPA containerization
Introduced `config.json` runtime configuration fetch mechanism to support the "Build Once, Deploy Everywhere" pattern. Replaced NGINX with Caddy for SPA deployment, enabling SPA routing, security headers, and static asset management. Updated Gradle and Kotlin/JS build configurations to align with the new runtime environment. Enhanced Dockerfile and health checks for optimized CI/CD workflows and improved SPA delivery.
2026-02-02 16:19:20 +01:00
d4f20df654 chore(frontend+infra): optimize build process and exclude SQLite workers from minification
- Updated Webpack config to exclude SQLite workers from parsing and Terser minification, fixing related errors and improving build speed.
- Adjusted Dockerfile to disable source maps for production builds, reducing build time and memory usage.
- Modified Gradle build configuration to respect the `noSourceMaps` flag during Docker builds.
2026-02-02 00:00:54 +01:00
994a3397c2 chore(infra): simplify Docker builds and remove unused WEB_BUILD_PROFILE
- Adjusted Dockerfile’s build process for production-only artifacts.
- Removed unused `WEB_BUILD_PROFILE` from `dc-gui.yaml`.
- Optimized Gradle settings for better caching and performance.
- Updated `.dockerignore` to include source packages previously excluded by mistake.
2026-02-01 21:17:22 +01:00
b7147bca84 chore(docs, build): add E2E smoke test reports, favicon, and build robustness improvements
- Documented E2E smoke test results for Ktor 3.4.0 and Exposed 1.0.0 migration in new reports and session logs.
- Introduced a fallback mechanism for desktop and web-app builds, ensuring robustness in distribution creation and static asset handling.
- Added a default SVG favicon to prevent 404 errors in the web-app.
- Updated Nginx configuration and Dockerfiles to include improved artifact paths, fallback handling, and script corrections.
2026-01-31 21:03:53 +01:00
8155707ba1 chore(ci, quality): introduce PR Guard workflow to detect hardcoded dependency versions
- Added `check-no-hardcoded-versions.sh` script to enforce centralized dependency version management.
- Configured GitHub Actions workflow (`pr-guard.yml`) to run the script on pull requests.
2026-01-31 18:45:24 +01:00
3d940ae4b1 build: update Dockerfile to include 'contracts' and refine build context
Added `contracts/` directory to the Docker build context and adjusted Gradle setup to handle required dependencies. Simplified Dockerfile by removing redundant comments and streamlined artifact copying for NGINX configuration. Updated `.dockerignore` to exclude `docs/` directory from the build context.
2026-01-31 12:32:38 +01:00
637d610a5b refactor: enhance platform configuration, database schema handling, and Keycloak setup
Improved `PlatformConfig` API base URL resolution with enhanced logging and fallback logic. Revised database initialization with version checks, schema migration, and error handling. Updated Keycloak configuration to enable `Direct Access Grants` and refine CORS/redirect settings. Adjusted Webpack proxy settings for correct API routing.
2026-01-27 15:12:58 +01:00
bddeba81be chore(frontend): integrate SQLite Web Worker and improve debug initialization
- Added `sqlite.worker.js` for custom SQLite Web Worker setup compatible with SQLDelight.
- Enhanced Webpack configuration in `sqlite-config.js` for SQLite-related assets and dynamic path resolution.
- Updated Koin `apiClient` setup to dynamically inject Authorization headers using the `HttpSend` plugin.
- Fixed Keycloak realm configuration to include new local URLs (`http://localhost:8080`).
- Removed redundant Web Worker copy tasks from Gradle and adjusted Kotlin code for streamlined worker creation.
2026-01-26 22:02:13 +01:00
48ee074dbd refactor: update Dockerfile paths, network module auth flow, and Keycloak config
Updated Dockerfiles to fix frontend path references after refactoring. Refactored `networkModule` to replace the `Auth` plugin with manual auth header injection for enhanced logout support. Adjusted Keycloak realm configuration to set default credentials as non-temporary. Improved error handling in `AuthApiClient` with detailed response messages.
2026-01-23 15:42:07 +01:00
c692a2395c docs: add infrastructure guide for JWT in Docker and refactor Keycloak config
Added a detailed guide (`jwt-in-docker.md`) to address JWT validation challenges in Docker environments (Split Horizon issue). Refactored Keycloak realm configuration (`meldestelle-realm.json`) with updated roles, clients, and improved infrastructure clarity. Updated `.env` variables for streamlined token validation. Adjusted Docker Compose services (`dc-backend.yaml`) to use revised Keycloak environment variables.
2026-01-22 17:23:24 +01:00
46361185d0 docs: enhance local dev docs, update Docker Compose, and archive old journals
Added Mailpit setup and updated Keycloak configuration in local development runbooks. Improved Docker Compose stability with updated service dependencies and configurations. Archived outdated journal entries and documents for better organization.
2026-01-20 14:00:09 +01:00
7da3fc26d3 docs: expand ping-service documentation and add backend startup troubleshooting journal
Enhanced `ping-service` documentation with architectural, implementation, and API details. Added a new journal entry outlining the troubleshooting steps for backend startup issues, including fixes for Dockerfile paths, Gradle build conflicts, and Keycloak pre-build configuration.
2026-01-13 17:41:19 +01:00
0335de7654 docs: add runbook for local development setup and update docker-related configurations
Added a comprehensive runbook detailing the local Docker-based development setup. Updated Dockerfile paths for Nginx and Keycloak to simplify configuration and improve clarity.
2026-01-13 16:30:00 +01:00
e38b693847 Versuche 2025-12-31 00:20:29 +01:00
f402fbaf19 refactor(infra): Restrukturierung Config-Ordner & Einführung von Docker-Profilen
Umfangreiches Refactoring der Projektkonfiguration zur klaren Trennung von Build-, Runtime- und Applikations-Logik.

Änderungen im Detail:
- Struktur: Neuorganisation des `config/` Verzeichnisses in logische Bereiche:
  - `config/docker`: Reine Infrastruktur-Configs (Postgres, Redis, Nginx, Monitoring).
  - `config/quality`: Statische Code-Analyse (Detekt, Lint).
  - `config/app`: Gemeinsame Spring-Boot-Konfigurationen.
- Docker Compose:
  - Einführung von Profilen (`infra`, `backend`, `ops`, `gui`, `tools`) für gezieltes Starten von Teilbereichen.
  - Anpassung aller Volume-Pfade auf die neue Struktur.
- Spring Boot Config:
  - Zentralisierung gemeinsamer Einstellungen (Datasource, Redis, JPA) in `config/app/base-application.yml`.
  - Parametrisierung der Hosts für nahtlosen Wechsel zwischen Docker und Localhost.
  - Bereinigung der service-spezifischen `application.yaml` Dateien (z.B. Ping-Service).
- Cleanup: Entfernen redundanter "Ghost-Files" (`versions.toml`, `central.toml`, `config/.env`), um eine echte Single Source of Truth (SSoT) zu gewährleisten.
2025-12-10 15:25:10 +01:00
df2562ea23 chore(MP-28): add arch guards, bundle budgets & detekt consolidation
Summary
- Detekt Config zentralisiert (`config/detekt/detekt.yml`), alte Config gelöscht.
- Gradle Task `archGuardNoFeatureToFeatureDeps`: Verbietet Abhängigkeiten zwischen Feature-Modulen.
- Gradle Task `checkBundleBudget`: Prüft JS-Bundle-Größen gegen `config/bundles/budgets.json`.
- CI Integration: Budgets werden nach dem Build geprüft.

Verification
- `./gradlew archGuards` -> SUCCESS
- `./gradlew checkBundleBudget` -> SUCCESS
- CI Pipeline -> SUCCESS

Ref: MP-28
2025-12-08 12:19:41 +01:00
b3927ed97c chore(infra): Finalize local docker stack (Monitoring, Frontends, Fixes) 2025-12-06 21:00:12 +01:00
edfa74365f fix Monitoring - docker-compose.* + .env* 2025-12-06 14:06:31 +01:00
ecac459568 fix docker-compose.* + .env*
- desktop-app Versuch VNC
2025-12-06 13:47:02 +01:00
4426c1ea57 fix docker-compose.* + .env*
- desktop-app Versuch VNC
2025-12-06 13:46:21 +01:00
7a9795146c fix docker-compose.* + .env*
- desktop-app
2025-12-05 14:07:39 +01:00
5273efbe14 fix docker-compose.* + .env*
- web-app
2025-12-05 13:05:40 +01:00
d980c94b26 fix docker-compose.* + .env*
- postgres
- redis
- keycloak
- pgadmin
- consul
- api-gateway
- ping-service
2025-12-04 18:13:54 +01:00
6e4245d6a9 fix docker-compose.* + .env* Dateien auf den root übersiedelt 2025-12-04 11:30:01 +01:00
80ac574116 fix: 2025-12-04 03:34:11 +01:00
StefanMo
95fe3e0573
chore(ci): Align GH Workflows with Docker SSoT, new paths; minimal SSoT guard; staticAnalysis (#23)
* chore(MP-21): snapshot pre-refactor state (Epic 1)

* chore(MP-22): scaffold new repo structure, relocate Docker Compose, move frontend/backend modules, update Makefile; add docs mapping and env template

* MP-22 Epic 2: Erfolgreich umgesetzt und verifiziert

* MP-23 Epic 3: Gradle/Build Governance zentralisieren

* MP-23 Epic 3: Gradle/Build Governance zentralisieren

* chore(devops)!: Docker-SSoT (.env) konsolidiert, Compose-Mounts ergänzt, Makefile entfernt

- ENV Single Source of Truth
  - docker/.env.example neu (inkl. REDIS_PASSWORD, Ports, Build-Overrides)
  - config/.env(.example) als DEPRECATED markiert (Verweis auf docker/.env[.example])

- Docker Compose vereinheitlicht (docker/docker-compose.yaml)
  - Postgres: zentralen postgresql.conf mounten (../config/postgres/postgresql.conf)
    und Start mit -c config_file=/etc/postgresql/postgresql.conf
  - Redis: zentralen redis.conf mounten (../config/redis/redis.conf)
    und Start via "redis-server … ${REDIS_PASSWORD:+--requirepass $REDIS_PASSWORD}"
  - Web-Nginx: ../config/nginx/nginx.prod.conf → /etc/nginx/nginx.conf (ro)
  - Monitoring: Prometheus/Grafana nutzen ../config/monitoring/* als SSoT

- Frontend/DI/Network (MP-23 Grundlage)
  - :frontend:core:network Modul mit Koin `apiClient` (Ktor + JSON/Retry/Timeout/Logging)
  - Plattform-Basis-URL-Auflösung (JVM: ENV API_BASE_URL; JS: globalThis.API_BASE_URL / Same-Origin)
  - Web index.html setzt API_BASE_URL (Query `?apiBaseUrl=…` > Same-Origin > Fallback)

- Build/Gradle & Module-Refs
  - settings.gradle.kts: neue Frontend-/Backend-Pfade bereits inkludiert
  - Features/Shell: Abhängigkeiten auf :frontend:shared / :frontend:core:* angepasst
  - Ping-API-Refs auf :backend:services:ping:ping-api vereinheitlicht

- Dockerfiles angepasst
  - backend/infrastructure/gateway/Dockerfile → Tasks/Pfade auf :backend:gateway
  - backend/services/ping/Dockerfile → Tasks/Pfade auf :backend:services:ping:ping-service

- Static Analysis / Guards
  - config/detekt/detekt.yml hinzugefügt
  - Leichter Arch-Guard (Frontend) gegen manuelle Authorization-Header vorbereitet

- Doku
  - docs/ARCHITECTURE.md (Struktur, Mapping, Next Steps) ergänzt
  - docs/adr/README.md angelegt

BREAKING CHANGES:
- Makefile komplett entfernt (bitte direkt `docker compose` verwenden)
- ENV-Quelle ist jetzt docker/.env (statt config/.env oder Root)
- Compose-Datei unter docker/docker-compose.yaml (nicht mehr compose.yaml im Repo-Root)

Verifikation (lokal):
- ENV anlegen: `cp docker/.env.example docker/.env` (Werte anpassen)
- Compose prüfen: `docker compose --env-file docker/.env -f docker/docker-compose.yaml config`
- Infrastruktur: `docker compose --env-file docker/.env -f docker/docker-compose.yaml -p meldestelle up -d postgres redis keycloak web-app`
- Services bauen: `docker compose --env-file docker/.env -f docker/docker-compose.yaml -p meldestelle build api-gateway ping-service --no-cache --progress=plain`

Refs: MP-22 (Epic 2), MP-23 (Epic 3)

* chore(devops)!: Docker-SSoT (.env) konsolidiert, Compose-Mounts ergänzt, Makefile entfernt

- ENV Single Source of Truth
  - docker/.env.example neu (inkl. REDIS_PASSWORD, Ports, Build-Overrides)
  - config/.env(.example) als DEPRECATED markiert (Verweis auf docker/.env[.example])

- Docker Compose vereinheitlicht (docker/docker-compose.yaml)
  - Postgres: zentralen postgresql.conf mounten (../config/postgres/postgresql.conf)
    und Start mit -c config_file=/etc/postgresql/postgresql.conf
  - Redis: zentralen redis.conf mounten (../config/redis/redis.conf)
    und Start via "redis-server … ${REDIS_PASSWORD:+--requirepass $REDIS_PASSWORD}"
  - Web-Nginx: ../config/nginx/nginx.prod.conf → /etc/nginx/nginx.conf (ro)
  - Monitoring: Prometheus/Grafana nutzen ../config/monitoring/* als SSoT

- Frontend/DI/Network (MP-23 Grundlage)
  - :frontend:core:network Modul mit Koin `apiClient` (Ktor + JSON/Retry/Timeout/Logging)
  - Plattform-Basis-URL-Auflösung (JVM: ENV API_BASE_URL; JS: globalThis.API_BASE_URL / Same-Origin)
  - Web index.html setzt API_BASE_URL (Query `?apiBaseUrl=…` > Same-Origin > Fallback)

- Build/Gradle & Module-Refs
  - settings.gradle.kts: neue Frontend-/Backend-Pfade bereits inkludiert
  - Features/Shell: Abhängigkeiten auf :frontend:shared / :frontend:core:* angepasst
  - Ping-API-Refs auf :backend:services:ping:ping-api vereinheitlicht

- Dockerfiles angepasst
  - backend/infrastructure/gateway/Dockerfile → Tasks/Pfade auf :backend:gateway
  - backend/services/ping/Dockerfile → Tasks/Pfade auf :backend:services:ping:ping-service

- Static Analysis / Guards
  - config/detekt/detekt.yml hinzugefügt
  - Leichter Arch-Guard (Frontend) gegen manuelle Authorization-Header vorbereitet

- Doku
  - docs/ARCHITECTURE.md (Struktur, Mapping, Next Steps) ergänzt
  - docs/adr/README.md angelegt

BREAKING CHANGES:
- Makefile komplett entfernt (bitte direkt `docker compose` verwenden)
- ENV-Quelle ist jetzt docker/.env (statt config/.env oder Root)
- Compose-Datei unter docker/docker-compose.yaml (nicht mehr compose.yaml im Repo-Root)

Verifikation (lokal):
- ENV anlegen: `cp docker/.env.example docker/.env` (Werte anpassen)
- Compose prüfen: `docker compose --env-file docker/.env -f docker/docker-compose.yaml config`
- Infrastruktur: `docker compose --env-file docker/.env -f docker/docker-compose.yaml -p meldestelle up -d postgres redis keycloak web-app`
- Services bauen: `docker compose --env-file docker/.env -f docker/docker-compose.yaml -p meldestelle build api-gateway ping-service --no-cache --progress=plain`

Refs: MP-22 (Epic 2), MP-23 (Epic 3)

* chore(devops)!: Docker-SSoT (.env) konsolidiert, Compose-Mounts ergänzt, Makefile entfernt

- ENV Single Source of Truth
  - docker/.env.example neu (inkl. REDIS_PASSWORD, Ports, Build-Overrides)
  - config/.env(.example) als DEPRECATED markiert (Verweis auf docker/.env[.example])

- Docker Compose vereinheitlicht (docker/docker-compose.yaml)
  - Postgres: zentralen postgresql.conf mounten (../config/postgres/postgresql.conf)
    und Start mit -c config_file=/etc/postgresql/postgresql.conf
  - Redis: zentralen redis.conf mounten (../config/redis/redis.conf)
    und Start via "redis-server … ${REDIS_PASSWORD:+--requirepass $REDIS_PASSWORD}"
  - Web-Nginx: ../config/nginx/nginx.prod.conf → /etc/nginx/nginx.conf (ro)
  - Monitoring: Prometheus/Grafana nutzen ../config/monitoring/* als SSoT

- Frontend/DI/Network (MP-23 Grundlage)
  - :frontend:core:network Modul mit Koin `apiClient` (Ktor + JSON/Retry/Timeout/Logging)
  - Plattform-Basis-URL-Auflösung (JVM: ENV API_BASE_URL; JS: globalThis.API_BASE_URL / Same-Origin)
  - Web index.html setzt API_BASE_URL (Query `?apiBaseUrl=…` > Same-Origin > Fallback)

- Build/Gradle & Module-Refs
  - settings.gradle.kts: neue Frontend-/Backend-Pfade bereits inkludiert
  - Features/Shell: Abhängigkeiten auf :frontend:shared / :frontend:core:* angepasst
  - Ping-API-Refs auf :backend:services:ping:ping-api vereinheitlicht

- Dockerfiles angepasst
  - backend/infrastructure/gateway/Dockerfile → Tasks/Pfade auf :backend:gateway
  - backend/services/ping/Dockerfile → Tasks/Pfade auf :backend:services:ping:ping-service

- Static Analysis / Guards
  - config/detekt/detekt.yml hinzugefügt
  - Leichter Arch-Guard (Frontend) gegen manuelle Authorization-Header vorbereitet

- Doku
  - docs/ARCHITECTURE.md (Struktur, Mapping, Next Steps) ergänzt
  - docs/adr/README.md angelegt

BREAKING CHANGES:
- Makefile komplett entfernt (bitte direkt `docker compose` verwenden)
- ENV-Quelle ist jetzt docker/.env (statt config/.env oder Root)
- Compose-Datei unter docker/docker-compose.yaml (nicht mehr compose.yaml im Repo-Root)

Verifikation (lokal):
- ENV anlegen: `cp docker/.env.example docker/.env` (Werte anpassen)
- Compose prüfen: `docker compose --env-file docker/.env -f docker/docker-compose.yaml config`
- Infrastruktur: `docker compose --env-file docker/.env -f docker/docker-compose.yaml -p meldestelle up -d postgres redis keycloak web-app`
- Services bauen: `docker compose --env-file docker/.env -f docker/docker-compose.yaml -p meldestelle build api-gateway ping-service --no-cache --progress=plain`

Refs: MP-22 (Epic 2), MP-23 (Epic 3)

* chore(ci): Workflows an Docker-SSoT & neue Struktur angepasst, minimaler SSoT-Guard

- ssot-guard.yml: Option B (minimal) → `docker compose -f docker/docker-compose.yaml config` als Lint
- integration-tests.yml: `./gradlew staticAnalysis` vor Integrationstests
- docs-kdoc-sync.yml: Dokka-Task Fallback (dokkaGfmAll || dokkaGfm), YouTrack-Sync nur wenn Script vorhanden
- deploy-proxmox.yml: Compose-Pfade auf docker/docker-compose.yaml + `--env-file docker/.env`; Build/Test Schritte vereinheitlicht
- ci-main.yml: SSoT-Skripte per `if: hashFiles(...)` guarded, Compose-Lint Fallback; OpenAPI‑Pfad → backend/gateway; ADR‑Pfade → docs/adr/**; `staticAnalysis` in Build integriert
- youtrack-sync.yml: unverändert (funktional)

Refs: MP-22, MP-23

* chore(ci): Workflows an Docker-SSoT & neue Struktur angepasst, minimaler SSoT-Guard

- ssot-guard.yml: Option B (minimal) → `docker compose -f docker/docker-compose.yaml config` als Lint
- integration-tests.yml: `./gradlew staticAnalysis` vor Integrationstests
- docs-kdoc-sync.yml: Dokka-Task Fallback (dokkaGfmAll || dokkaGfm), YouTrack-Sync nur wenn Script vorhanden
- deploy-proxmox.yml: Compose-Pfade auf docker/docker-compose.yaml + `--env-file docker/.env`; Build/Test Schritte vereinheitlicht
- ci-main.yml: SSoT-Skripte per `if: hashFiles(...)` guarded, Compose-Lint Fallback; OpenAPI‑Pfad → backend/gateway; ADR‑Pfade → docs/adr/**; `staticAnalysis` in Build integriert
- youtrack-sync.yml: unverändert (funktional)

Refs: MP-22, MP-23

* fix(ci): create .env from example before validating compose config

* fix(ci): update ssot-guard filename (.yaml) and sync workflow state

* fixing

* fix(webpack): correct sql.js fallback configuration for webpack 5
2025-12-03 12:03:40 +01:00
StefanMo
9ea2b74a81
Merge pull request #18
* MP-19 Refactoring: Einführung der "Registry" & "Masterdata" Trennung …

* MP-19 Refactoring: Frontend Tabula Rasa

* MP-19 Refactoring: Frontend Tabula Rasa

* refactoring:

* MP-20 fix(docker/clients): include `:domains` module in web/desktop b…

* MP-20 fix(web-app build): resolve JS compile error and add dev/prod b…

* MP-20 fix(web-app): remove vendor.js reference and harden JS bootstra…

* MP-20 fixing: clients

* MP-20 fixing: clients
2025-11-30 14:13:12 +01:00
69032cb6e7 refactoring: Env-Dateien und Docker-Dateien 2025-11-20 22:03:37 +01:00
42dcdbba32 core Struktur umbau 2025-11-19 23:37:30 +01:00
StefanMo
3f9326a533
Refactor(config): Implement central environment config (MP-18)) (#17)
* fix(infra): Makefile .env generiert

* MP-18 Env-Konfiguration Refactoring: Schritte 2–4 umgesetzt\n\n2) Single Source of Truth für Versionen\n- docker/versions.toml als alleinige Quelle bestätigt\n- docker/build-args/global.env bereinigt und konsistent auf *_IMAGE_TAG umgestellt (PROMETHEUS_IMAGE_TAG, GRAFANA_IMAGE_TAG, KEYCLOAK_IMAGE_TAG, POSTGRES_IMAGE_TAG, REDIS_IMAGE_TAG, CONSUL_IMAGE_TAG, KAFKA_IMAGE_TAG, ZOOKEEPER_IMAGE_TAG)\n- Keine Ports/Profiles/Secrets in global.env\n\n3) Build vs. Laufzeit getrennt (Variablenbereinigung)\n- .env.template von allen Build-/Image-Versionen befreit (DOCKER_*_VERSION, (DOCKER_)APP_VERSION, BUILD_DATE)\n- App-Versionsvariable vereinheitlicht: Nutzung von VERSION (APP_VERSION in Build-Args entfernt)\n\n4) Laufzeit-Env konsolidiert (globales .env)\n- Zentrales config/env/.env erstellt (Ports, Hosts, Flags, Pfade, SPRING_PROFILES_ACTIVE, NODE_ENV etc.)\n- config/env/.env.local angelegt (gitignored) und .gitignore ergänzt\n- Laufzeitwerte aus Build-Args-Dateien (clients/infrastructure/services) entfernt bzw. kommentiert mit Verweis auf config/env/.env\n\nAkzeptanzkriterien erfüllt\n- global.env enthält ausschließlich Build-Versionen/-Tags und Build-Tool-Versionen\n- .env.template enthält keine Build-/Image-Versionen mehr\n- Zentrales config/env/.env ist die einzige Quelle für Laufzeitwerte\n\nYouTrack: https://meldestelle-pro.youtrack.cloud/issue/MP-18

* MP-18 Env-Konfiguration Refactoring: Schritte 5–7 umgesetzt

5) Build-Args-Dateien entschlackt/umstrukturiert
- clients.env: Laufzeitwerte entfernt, NODE_VERSION/NGINX_VERSION → NODE_IMAGE_TAG/NGINX_IMAGE_TAG; nur Build-relevante Pfade/Namen belassen
- infrastructure.env/services.env: bereits zuvor Runtime-Variablen entfernt, Kommentare mit Verweis auf config/env/.env beibehalten

6) Dockerfiles überprüft/angepasst
- clients/web-app: Build-ARGs eingeführt (GRADLE_VERSION, JAVA_VERSION, NGINX_IMAGE_TAG), Basis-Image aus Tag abgeleitet; keine Runtime-ARGs
- services/ping-service: SPRING_PROFILES_ACTIVE als ARG entfernt; Build ruft ohne -P profile; Labels/ENV vereinheitlicht (OCI: version/created)
- infrastructure/gateway: SPRING_PROFILES_ACTIVE als ARG entfernt; Build ohne -P; Labels vereinheitlicht
- templates/spring-boot-service.Dockerfile: Runtime-ARGs (SPRING_PROFILES_ACTIVE, SERVICE_PORT) entfernt; Healthcheck/Expose auf ENV basierend; ENV getrennt gesetzt
- infrastructure/monitoring-server: SPRING_PROFILES_ACTIVE-ARG entfernt; Build ohne -P; ENV/Labels bereinigt

7) docker-compose* bereinigt
- docker-compose.yml: env_file: config/env/.env hinzugefügt; Image-Tags von DOCKER_* auf feste Versionen (aus global.env/versions.toml) umgestellt; keine Laufzeitwerte via build.args
- docker-compose.services.yml: env_file hinzugefügt; DOCKER_* Build-Args entfernt; nur Build-Zeit-ARGs (GRADLE_VERSION, JAVA_VERSION, BUILD_DATE, VERSION); Ports/ENV aus config/env/.env
- docker-compose.clients.yml: env_file hinzugefügt; DOCKER_* entfernt; NGINX_IMAGE_TAG als Build-Arg; APP_VERSION nutzt VERSION

Akzeptanzkriterien
- Keine Laufzeitvariablen in build-args-Dateien
- Dockerfiles verwenden ausschließlich Build-ARGs; keine Ports/Secrets/Profile als ARG
- Compose lädt nur eine Runtime-Env-Quelle (config/env/.env) und schleust keine Runtimewerte via build.args ein

YouTrack: https://meldestelle-pro.youtrack.cloud/issue/MP-18

* MP-18 Env-Konfiguration Refactoring: Schritte 8–11 umgesetzt

8) Secrets-Strategie (Dev vereinfacht)
- config/env/.env.local bereits vorhanden und gitignored; Nutzung für lokale Secrets verdeutlicht
- docker/secrets/README.md hinzugefügt; echte Geheimnisse entfernt/Platzhalter gesetzt (postgres_password.txt)
- Optimierte Compose-Dateien erzwingen Secrets nur im Profil 'prod' (profiles: [prod]) und verwenden env_file: config/env/.env

9) Namenskonventionen vereinheitlicht
- DOCKER_* in optimierten Compose-Dateien entfernt; Build-Args auf GRADLE_VERSION/JAVA_VERSION/VERSION und *_IMAGE_TAG konsolidiert
- SPRING_PROFILES_ACTIVE nur noch zur Laufzeit (Compose/env); aus Dockerfiles (auth, gateway, horses, events, members, masterdata) als Build-ARG entfernt

10) CI: ssot-guard.yml erweitert
- Guard-Checks hinzugefügt: Fail bei Runtime-Variablen in Build-Args-Dateien und bei Build-/Versions-Variablen in Runtime-Envs
- Konsistenz-Check zwischen docker/versions.toml und docker/build-args/global.env (zentraler Versionsabgleich)

11) Skripte & Automatisierung
- Neues Skript scripts/generate-build-env.sh zum Generieren von docker/build-args/global.env aus docker/versions.toml (minimal)

Akzeptanzkriterien
- Lokale Entwicklung erfordert keine Docker-Secrets (Compose default), keine Geheimnisse im Repo
- Keine DOCKER_* Präfixe in Laufzeitdateien, eindeutige Namenskonventionen
- CI bricht bei Build-vs-Runtime-Verletzungen und Versions-Drift

YouTrack: https://meldestelle-pro.youtrack.cloud/issue/MP-18

* MP-18 Env-Konfiguration Refactoring: Schritte 12–17 umgesetzt

12) DDD-Slice-Overrides eingeführt
- Optionale Runtime-Env-Dateien hinzugefügt: config/env/services/{ping,members,horses,events,masterdata}.env, config/env/infrastructure/api-gateway.env, config/env/clients/web-app.env
- Compose-Dateien laden diese Overrides zusätzlich zu config/env/.env (nur wenn vorhanden)

13) Deduplizierung bestätigt
- Build-Args-Dateien enthalten keine Laufzeitwerte; .env/.env.template ohne Build-/Versions-Keys

14) Compose an Envs gekoppelt
- docker-compose*.yml referenzieren ausschließlich config/env/.env + optionale Slice-Overrides; keine docker/build-args/*.env als Runtime-Quelle

15) Doku aktualisiert
- README: neue Konfig-Struktur, Quickstart mit .env/.env.local, optionale Overrides, Deprecations (DOCKER_*_VERSION → *_IMAGE_TAG), Smoke-Tests

16) Cleanup & Deprecations
- Deprecation-Hinweise in README dokumentiert; keine obsoleten Root-.env-Dateien verbleiben

17) Validierung & Hinweise
- Start-/Healthcheck-Hinweise für lokalen Smoke-Test ergänzt; CI-Guards bleiben gültig

* MP-18 DoD-Finalisierung: Build/Runtime-Trennung verhärtet, Doku-Hinweise korrigiert

- Entfernt: Runtime-Build-ARG SERVICE_PORT aus Service-Dockerfiles (members, horses, events, masterdata)
  * Feste Default-Ports gesetzt (8083–8086), Healthchecks und SERVER_PORT-ENV angepasst
  * Erfüllt DoD: Build-Args enthalten keine Runtime-Werte mehr
- .env.template Usage korrigiert: verweist nun explizit auf config/env/.env und compose-Aufrufe

DoD-Checkliste:
✓ Zentrale Runtime-Datei config/env/.env + .env.local (Compose nutzt env_file)
✓ Build-Args nur Versionen/Pfade/Namen (keine Runtime-Keys)
✓ versions.toml als einzige Quelle für Image-/Tool-Versionen (CI-Guard prüft Drift)
✓ CI-Workflow blockiert Build/Runtime-Mixing & Versions-Drift (ssot-guard)
✓ README dokumentiert den Flow (Quickstart, Struktur, Deprecations)
✓ Clean Builds/Local-Starts durch compose-Files unterstützt

YouTrack: https://meldestelle-pro.youtrack.cloud/issue/MP-18

* MP-18: GitHub-Workflows aktualisiert und README Markdownlint-Fehler behoben

Workflows
- CI: minimale Permissions + Concurrency hinzugefügt; build-test hängt jetzt auch von validate-docs ab; actions/setup-node → v4
- SSoT Guard: minimale Permissions + Concurrency
- Deploy Proxmox: Concurrency; Deploy-Job läuft korrekt bei workflow_dispatch (zuvor durch falsche IF-Bedingung blockiert)
- Docs KDoc Sync: minimale Permissions + Concurrency
- Integration Tests: minimale Permissions + Concurrency
- YouTrack Sync: minimale Permissions + Concurrency; Guard, wenn Secrets fehlen

Docs
- README.md: MD032 (Leerzeilen um Listen) korrigiert
- README.md: MD037 (Spaces in Emphasis / Wildcards) durch Backticks behoben
- README.md: MD034 (Bare URLs) via <> eingefasst

Ziel
- Optimierte, aktuelle CI-Workflows und grüne markdownlint-Prüfungen.

YouTrack: https://meldestelle-pro.youtrack.cloud/issue/MP-18

* MP-18: Fix Docker SSoT validator errors

Remove default values from centralized ARGs in web-app Dockerfile (GRADLE_VERSION, JAVA_VERSION, NGINX_IMAGE_TAG).

Align build.args in compose files to centralized DOCKER_* vars from versions.toml mapping (clients/services/optimized), and update api-gateway in optimized compose.

Replace hardcoded infra image tags in docker-compose.yml with DOCKER_* fallbacks for postgres/redis/prometheus/grafana/keycloak.

Validated via scripts/validate-docker-consistency.sh all → Errors=0 (Warnings remain by design).

YouTrack: https://meldestelle-pro.youtrack.cloud/issue/MP-18

* MP-18: Finalize Env/SSoT refactor – align generator, validator, build-args and compose

- Switch docker/build-args/global.env to *_IMAGE_TAG keys (PROMETHEUS/GRAFANA/KEYCLOAK/POSTGRES/REDIS/CONSUL/KAFKA/ZOOKEEPER)
- Clean docker/build-args/{clients,services,infrastructure}.env to build-time only; remove runtime/profile/ports
- Update scripts/docker-versions-update.sh to emit *_IMAGE_TAG and strip runtime keys from build-args files
- Update scripts/validate-docker-consistency.sh to check *_IMAGE_TAG and stop enforcing runtime keys in build-args
- Rename Keycloak Dockerfile ARG to KEYCLOAK_IMAGE_TAG and update FROM/labels
- Add build arg fallbacks in compose files where needed (GRADLE/JAVA/VERSION) for dev convenience

Result:
- scripts/validate-docker-consistency.sh all → 0 errors (warnings remain informational)

YouTrack: https://meldestelle-pro.youtrack.cloud/issue/MP-18

* fix: Bash-Syntax-Fehler in ssot-guard.yml behoben

- Fehlerhafte '2>/dev/null || true' Konstrukte in for-Schleifen entfernt
- Stattdessen 'shopt -s nullglob' für saubere Behandlung nicht-existierender Dateimuster verwendet
- Beide betroffene for-Schleifen (Runtime-Variablen und Build-Variablen Guards) korrigiert

MP-18

* chore: Regenerate Docker Compose files to fix SSoT drift

- Removed default values from build arguments (now using centralized DOCKER_* variables)
- Removed env_file directives for cleaner configuration
- Updated variable names for consistency (GATEWAY_PORT → API_GATEWAY_PORT)
- Standardized comments and structure across all compose files

Resolves SSoT drift detected by ssot-guard workflow.

MP-18

* MP-18 fix: Bash-Syntax-Fehler in ssot-guard.yml behoben

- Fehlerhafte '2>/dev/null || true' Konstrukte in for-Schleifen entfernt
- Stattdessen 'shopt -s nullglob' für saubere Behandlung nicht-existierender Dateimuster verwendet
- Beide betroffene for-Schleifen (Runtime-Variablen und Build-Variablen Guards) korrigiert

* MP-18 chore: Regenerate Docker Compose files to fix SSoT drift

- Removed default values from build arguments (now using centralized DOCKER_* variables)
- Removed env_file directives for cleaner configuration
- Updated variable names for consistency (GATEWAY_PORT → API_GATEWAY_PORT)
- Standardized comments and structure across all compose files

Resolves SSoT drift detected by ssot-guard workflow.

* MP-18 fix: qodana_code_quality.yml qodana.yaml

* fix: GitHub Actions Workflow-Fehler behoben

- youtrack-sync.yml: Korrektur der secrets if-Bedingung (Line 18)
  * Entfernung ungültiger != '' Vergleiche
  * Verwendung korrekter GitHub Actions Syntax: secrets.YT_URL && secrets.YT_TOKEN

- ssot-guard.yml: Korrektur der get_toml_ver() Funktion
  * Behebung des Versions-Drift Problems
  * Parsing nur aus [versions] Sektion mit State-Machine-Pattern
  * Korrekte Extraktion aller 11 Versionswerte aus versions.toml
  * Trimming von Spaces vor Key-Vergleich

Fixes: MP-18

* MP-18 Entfernung von Qodana

* MP-18 fix(ssot-guard): align build-args comments with generator output to remove SSoT drift

- clients.env/services.env/infrastructure.env: update runtime note text to match scripts/docker-versions-update.sh
- Avoids false-positive drift in workflow (content changes beyond ignored timestamps)

* MP-18 fix: workflows/youtrack-sync.yml

* MP-18 fix: workflows/youtrack-sync.yml

* MP-18 fix: workflows/youtrack-sync.yml

* MP-18 fix: workflows/youtrack-sync.yml

* MP-18 fix: workflows/youtrack-sync.yml
2025-11-19 00:59:41 +01:00
8e932758a7 Fix(infra):
Datei: .junie/guidelines/technology-guides/docker/docker-development.md

Vorher:
- 194 Zeilen
- last_updated: 2025-09-15
- ~10 dokumentierte Befehle
- Falsche Befehlsnamen (service-build statt build-service)
- Falscher Port (8080 statt 8081)

Nachher:
- 756 Zeilen
- last_updated: 2025-11-11
- ~50+ dokumentierte Befehle
- Korrekte Befehlsnamen
- Korrekte Ports

Neue Sektionen:
24
Haupt-Sektionen gefunden

Korrigierte Dateien (API Gateway Port 8080 -> 8081):

1. infrastructure/gateway/README-INFRA-GATEWAY.md
   - 6 Stellen korrigiert (Docker-Befehle, Kubernetes, curl)

2. infrastructure/gateway/src/main/resources/openapi/documentation.yaml
   - 1 Server-URL korrigiert

3. infrastructure/README-INFRASTRUCTURE.md
   - 4 Stellen korrigiert (Prometheus, Kubernetes, curl)

4. services/masterdata/README-MASTERDATA.md
   - 3 curl Befehle korrigiert

5. .junie/guidelines/technology-guides/docker/docker-production.md
   - 1 Nginx upstream korrigiert

6. .junie/guidelines/technology-guides/docker/docker-monitoring.md
   - 1 Prometheus target korrigiert

NICHT korrigiert (korrekt auf Port 8080):
- Keycloak Health-Check (intern 8080, extern 8180)
- Test-Konfigurationen mit Keycloak issuer-uri
- Generische SERVICE_PORT Beispiele

Gesamt: 16 Korrekturen in 6 Dateien
2025-11-11 22:52:48 +01:00
StefanMo
b35c4087a2
Fix: Test-Commit für VCS-Integration (MP-8) (#15)
* MP-8 OTHER Implementiere JWT-Authentifizierungs-Filter im Gateway

* Fix(ci): Update upload-artifact action to v4

* Fix(ci): Add start command for Keycloak and failure logs

* Fix(ci): Remove invalid 'command' property from Keycloak service

* Fix(ci): Use KC_DEV_MODE env var to start Keycloak

* Fix(ci): Keycloak service was removed from GitHub Actions services and replaced with a manual docker run step that starts Keycloak with the start-dev command.

* dev(ci): vereinheitliche Keycloak auf 26.4.2; aktiviere Health im CI (MP-8)

* Fix(ci): Stabilize Keycloak startup in integration tests via matrix

- Add `dev-file` Keycloak variant to matrix for stability fallback.
- Improve wait logic and health checks for Keycloak and Postgres.
- Unify Keycloak version to 26.4.2 across codebase.
- Add log dumps on failure.

* Fix(ci): Die betroffene Datei docs/Visionen-Ideen/Infrastruktur-Strategie_DSGVO-Konformität.md endet aktuell mit genau einer leeren Zeile (Zeile 87). Das entspricht der Regel MD047 („Files should end with a single newline character“). Damit ist deine Korrektur korrekt.

* Fix(ci): Repository-wide auto-fix for Markdown files was implemented with a GitHub Actions workflow and a local helper script. EditorConfig and markdownlint ignore files were added to ensure consistent formatting. Instructions for using the auto-fix both via GitHub Actions and locally were provided.

* fix(gradle): build.gradle.kts jsBrowser testTask disabled

* fix(gradle): build.gradle.kts jsBrowser testTask disabled

* Fix(ci): Stabilize integration tests with Keycloak matrix build (MP-8)

Introduces a matrix strategy (`keycloak_db: [postgres, dev-file]`)
in the integration-tests workflow to mitigate flaky Keycloak starts
when using the Postgres service container.

- Adds a `dev-file` Keycloak variant for stability fallback.
- Improves wait logic and health checks for Keycloak/Postgres.
- Unifies Keycloak version to 26.4.2 across codebase (Dockerfile, Compose,
  ADR, README, tests).
- Adds log dumps on failure in CI.
- Ensures `KC_HEALTH_ENABLED=true` is set.
- Updates related documentation (README, Schlachtplan).
- Includes broader Docker SSoT cleanup (versions.toml as source,
  script updates, env file cleanup, validator hardening).

This resolves recurring CI failures related to Keycloak startup and
ensures required checks for PRs (#15) are reliable, while also
improving overall Docker build consistency.

* feat(docs, ci): Implement YouTrack SSoT strategy with Dokka sync (MP-8)

- Add Dokka multi-module Gradle configuration and KDoc style guide.
- Add GitHub Actions workflow (docs-kdoc-sync.yml) and Python script
  (youtrack-sync-kb.py) to sync Dokka GFM output to YouTrack KB.
- Extend front-matter schema (bc, doc_type) and update relevant pages/stubs.
- Adapt CI scripts (validate-frontmatter, check-docs-drift, ci-docs link ignore).
- Update README.md to reference YouTrack KB.

* feat(docs, ci): Implement YouTrack SSoT strategy with Dokka sync (MP-8)

- Add Dokka multi-module Gradle configuration and KDoc style guide.
- Add GitHub Actions workflow (docs-kdoc-sync.yml) and Python script
  (youtrack-sync-kb.py) to sync Dokka GFM output to YouTrack KB.
- Extend front-matter schema (bc, doc_type) and update relevant pages/stubs.
- Adapt CI scripts (validate-frontmatter, check-docs-drift, ci-docs link ignore).
- Update README.md to reference YouTrack KB.

* Fix(ci): Replace OpenAPI validator with Spectral

Replaces the deprecated 'char0n/swagger-editor-validate' action,
which failed due to sandbox issues in GitHub Actions, with the
modern '@stoplight/spectral-cli'.

This ensures robust OpenAPI specification validation without
requiring a headless browser environment. The 'generate-api-docs'
job now depends on the successful completion of the Spectral validation.

Part of resolving CI failures for PR #15 (MP-8).

* Fix(ci): Specify spectral:oas ruleset for OpenAPI validation (MP-8)

* Fix(ci): Remove explicit ruleset argument for Spectral validation (MP-8)

* Fix(ci): Added a .spectral.yaml file to fix Spectral linting errors. Corrected markdown lint issues in two documentation files. Updated README.md with a new guidelines section to fix link validation errors.

* Fix(ci): Markdownlint errors were fixed by adding required blank lines. The Guidelines Validation error was resolved by updating the README.md link. The API Documentation Generator workflow was stabilized by updating paths, tasks, and validation steps.

* Fix(ci): Alle vier fehlerhaften GitHub-Action-Prüfungen wurden behoben. Fehler in der OpenAPI-Spezifikation, Probleme mit der Markdown-Linting-Analyse und Validierungsfehler bei Querverweisen wurden korrigiert. Die README.md enthält nun alle erforderlichen Links zu den Richtlinien.

* Fix(ci): Markdown linting errors in docs/api/README.md were fixed by specifying languages in fenced code blocks. OpenAPI specification errors in documentation.yaml were resolved by correcting example property types to strings. Cross-reference validation errors in README.md were fixed by adding the missing link to project-standards/coding-standards.md.

* Fix(ci): Duplicate heading errors in docs/api/members-api.md were fixed. Cross-reference validation errors for docker-architecture.md were resolved. All originally reported issues passed validation successfully.

* Fix(ci): The markdown heading levels in docs/api/members-api.md were corrected from h5 to h4 to fix linting errors. The missing cross-reference link from technology-guides/docker/docker-development.md to docker-overview.md was added. These fixes resolved the original validation and linting errors causing the process to fail.

* Fix(ci): Duplicate heading warnings in docs/api/members-api.md were resolved. Cross-reference validation for docker-development.md to docker-architecture.md was fixed. A new unrelated warning about docker-production.md was identified but not addressed.

* refactor(ci,docs): Simplify CI pipeline and migrate docs to YouTrack SSoT

BREAKING CHANGE: Documentation structure radically simplified

- Consolidate 9 GitHub Actions workflows into 1 main pipeline (ci-main.yml)
- Remove redundant workflows: ci-docs, markdownlint-autofix, guidelines-validation, api-docs
- Delete documentation migrated to YouTrack: api/, BCs/, Visionen-Ideen/, reference/, now/, overview/
- Keep only ADRs, C4 diagrams, and essential dev guides in repo
- Update README.md with YouTrack KB links
- Create new docs/README.md as documentation gateway
- Relax markdown-lint config for pragmatic developer experience

Kept workflows:
- ssot-guard.yml (Docker SSoT validation)
- docs-kdoc-sync.yml (KDoc → YouTrack sync)
- integration-tests.yml (Integration tests)
- deploy-proxmox.yml (Deployment)
- youtrack-sync.yml (YouTrack integration)

Related: MP-DOCS-001

* refactor(ci,docs): Simplify CI pipeline and migrate docs to YouTrack SSoT

BREAKING CHANGE: Documentation structure radically simplified

- Consolidate 9 GitHub Actions workflows into 1 main pipeline (ci-main.yml)
- Remove redundant workflows: ci-docs, markdownlint-autofix, guidelines-validation, api-docs
- Delete documentation migrated to YouTrack: api/, BCs/, Visionen-Ideen/, reference/, now/, overview/
- Keep only ADRs, C4 diagrams, and essential dev guides in repo
- Update README.md with YouTrack KB links
- Create new docs/README.md as documentation gateway
- Relax markdown-lint config for pragmatic developer experience

Kept workflows:
- ssot-guard.yml (Docker SSoT validation)
- docs-kdoc-sync.yml (KDoc → YouTrack sync)
- integration-tests.yml (Integration tests)
- deploy-proxmox.yml (Deployment)
- youtrack-sync.yml (YouTrack integration)

Related: MP-DOCS-001

* refactor(ci,docs): README.md und einige andere Dokumentationen überarbeitet.
ports-and-urls.md hinzugefügt.
Related: MP-DOCS-001

* refactor(ci,docs): Die Markdownlint-Fehler in README.md und docs/README.md wurden behoben, indem die Überschriftenebenen angepasst, überflüssige Satzzeichen am Ende entfernt und die notwendigen Leerzeilen um Überschriften, Listen, Tabellen und Codeblöcke eingefügt wurden. Das problematische Leerzeichen am Ende in docs/README.md wurde ebenfalls entfernt. Die Dateien entsprechen nun den vorgegebenen Markdownlint-Regeln und sollten die CI-Validierung bestehen.
Related: MP-DOCS-001

* refactor(ci,docs): Docker guideline cross-references were fixed and normalized to lowercase labels. Validation scripts confirmed zero cross-reference warnings and consistent metadata. Documentation was updated with a changelog and enhanced README navigation.
Related: MP-DOCS-001

* refactor(ci,docs): Docker guideline cross-references were fixed and normalized to lowercase labels. Validation scripts confirmed zero cross-reference warnings and consistent metadata. Documentation was updated with a changelog and enhanced README navigation.
Related: MP-DOCS-001

* refactor(ci,docs): Dead links in docs/architecture/adr were fixed by updating URLs to stable sources and adding an ignore pattern for a placeholder link. Specific ADR files had their broken links replaced with valid ones. The markdown-link-check GitHub Action is expected to pass with zero dead links now.
Related: MP-DOCS-001

* refactor(ci,docs): Links in ADR checked
Related: MP-DOCS-001

* refactor(ci,docs): Links in ADR checked
Related: MP-DOCS-001

* refactor(ci,docs): Markdown Regeln ausgebessert
Related: MP-DOCS-001

* refactor(ci,docs): Markdown Regeln ausgebessert
Related: MP-DOCS-001

* refactor(ci,docs): Markdown Regeln ausgebessert
Related: MP-DOCS-001

* Chore: Rerun CI checks with updated branch protection rules
2025-11-07 12:26:33 +01:00
a8de8671ce updating libs.versions.toml 2025-10-14 11:47:10 +02:00
245584ee82 fixing Frontend und libs.versions.toml 2025-10-07 15:26:12 +02:00
82b1a2679d feature Keycloak Auth 2025-10-06 00:17:18 +02:00
stefan
c35cb1010b fixing docker-compose and cleanup 2025-09-15 11:08:55 +02:00
01831f7c2b refactoring Single Source of Truth 2025-09-13 23:55:34 +02:00
stefan
caaa4114ee fixing docker-compose and cleanup 2025-09-13 15:38:57 +02:00
c9c5d601f9 Ping Frontend Desktop und WasmJs funktionieren 2025-09-11 00:38:21 +02:00
stefan
3e4ef8e73e ein wenig aufgeräumt 2025-09-08 15:39:50 +02:00
stefan
2dc6a06990 ein wenig aufgeräumt 2025-09-06 13:35:32 +02:00
stefan
4af276e67a fix tests 2025-09-05 13:52:45 +02:00
stefan
54feec19d4 upgrade(docker) 2025-08-16 15:56:16 +02:00
stefan
9c21154199 upgrade(docker) 2025-08-16 15:47:57 +02:00
689e3bf8e7 refactoring(infra-monitoring) 2025-08-15 23:00:21 +02:00
ea75bbdb24 fixing gradle build 2025-07-30 00:01:22 +02:00