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.
This commit is contained in:
2026-01-20 14:00:09 +01:00
parent 5dc8f18201
commit 46361185d0
56 changed files with 596 additions and 1832 deletions
@@ -1,46 +1,10 @@
# Journal: Inbetriebnahme Backend-Services
---
type: Journal
status: ARCHIVED
owner: Backend Developer
last_update: 2026-01-20
---
**Datum:** 2026-01-13
**Beteiligte:** Senior Backend Developer
**Ziel:** Erfolgreicher Start des `api-gateway` und des `ping-service` in der Docker-Umgebung.
# Backend Troubleshooting (13.01.2026)
## Zusammenfassung
Beim Versuch, die Kern-Backend-Dienste über `docker compose up` zu starten, sind mehrere aufeinanderfolgende Build- und Konfigurationsfehler aufgetreten. Die Fehler deuten auf eine Desynchronisation zwischen der Projektstruktur, den Docker-Build-Skripten und den Spring-Cloud-Konfigurationen hin.
Diese Sitzung konzentrierte sich auf die iterative Identifizierung und Behebung dieser Probleme.
## Gelöste Probleme
1. **Fehlerhafte `COPY`-Anweisungen in Dockerfiles:**
* **Problem:** Die Dockerfiles für `ping-service` und `api-gateway` enthielten veraltete `COPY`-Pfade, die auf eine alte Modulstruktur (`backend/services/ping/ping-api`) verwiesen. Dies führte zu "file not found"-Fehlern während des Docker-Builds.
* **Lösung:** Die Pfade wurden korrigiert, um die aktuelle Projektstruktur (`contracts/ping-api`) widerzuspiegeln. Die relevanten Dockerfiles waren:
* `backend/services/ping/Dockerfile`
* `backend/infrastructure/gateway/Dockerfile`
2. **Tippfehler in Keycloak-Dockerfile:**
* **Problem:** Ein Tippfehler im Pfad (`/opt/keykeycloak/` statt `/opt/keycloak/`) verhinderte den Build des Keycloak-Images.
* **Lösung:** Der Pfad wurde in `config/docker/keycloak/Dockerfile` korrigiert.
3. **Parallele Gradle-Builds mit Cache-Konflikt:**
* **Problem:** Der parallele Build von `api-gateway` und `ping-service` führte zu einem Lock-Konflikt im geteilten Gradle-Cache (`Timeout waiting to lock journal cache`).
* **Lösung:** Die Dockerfiles wurden angepasst, um benannte und getrennte Cache-Mounts für jeden Service zu verwenden (`id=gradle-cache-ping` und `id=gradle-cache-gateway`), was den Konflikt behob.
## Offene Probleme & Nächste Schritte
Nach den oben genannten Korrekturen tritt nun ein neuer Fehler während des Starts des `api-gateway`-Containers auf:
```
java.lang.IllegalArgumentException: Unable to find GatewayFilterFactory with name CircuitBreaker
```
**Analyse:**
* Das Spring Cloud Gateway versucht, eine Route zu laden, die einen `CircuitBreaker`-Filter verwendet.
* Die notwendige `GatewayFilterFactory` für diesen Filter scheint zur Laufzeit nicht im Klassenpfad des Gateways verfügbar zu sein, obwohl die Abhängigkeit `spring-cloud-starter-circuitbreaker-resilience4j` in der `build.gradle.kts` deklariert ist.
**Hypothese:**
Das Problem liegt wahrscheinlich in der Konfiguration des Gateways. Eine der Konfigurationsquellen (vermutlich eine `.yaml`-Datei) definiert eine Route mit einem Circuit-Breaker-Filter, aber die dafür notwendige Spring-Cloud-Komponente wird nicht korrekt initialisiert.
**Nächste Schritte:**
1. Die Konfigurationsquellen des `api-gateway` müssen systematisch analysiert werden, um die Stelle zu finden, an der die fehlerhafte `CircuitBreaker`-Filter-Route definiert wird.
2. Es muss sichergestellt werden, dass die korrekte Spring-Cloud-Abhängigkeit für den Resilience4j-Gateway-Filter im `api-gateway` vorhanden und korrekt konfiguriert ist.
**MOVED:** This file has been archived to `_archive/2026-01-13_backend-startup-troubleshooting.md`.
@@ -1,25 +1,10 @@
# Journal: Initiale Projektanalyse durch den Curator
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
* **Datum:** 2026-01-13
* **Autor:** Documentation & Knowledge Curator
* **Thema:** Erste Bestandsaufnahme der Dokumentations-Strategie und -Prozesse.
# Initial Analysis (13.01.2026)
## Zusammenfassung
Diese Session diente der initialen Analyse des Projekts aus Sicht des Knowledge Curators. Die Analyse basiert auf den Agenten-Definitionen und dem Curator-Playbook.
## Erkenntnisse
Die strategische Grundlage für die Dokumentation im Projekt "Meldestelle" ist hervorragend.
* **Positiv:**
* Das Prinzip "Docs-as-Code" mit `docs/` als Single Source of Truth ist etabliert.
* Alle Agenten-Rollen haben klar definierte Dokumentationspflichten.
* Die Artefakt-Typen (ADR, Reference, How-to, Journal) sind klar definiert.
* Die Curator-Rolle selbst ist als Mechanismus zur Sicherung von Wissen verankert.
## Offene Punkte & Nächste Schritte
1. **Validierung der Praxis:** Die aktuelle Analyse ist rein strategisch. Es muss geprüft werden, wie konsequent die Regeln bereits im Projektalltag umgesetzt werden.
2. **Analyse bestehender Artefakte:** Eine Durchsicht der Verzeichnisse `docs/01_Architecture/adr/`, `docs/04_Backend/Services/` etc. ist notwendig, um den Reifegrad der bestehenden Dokumentation zu bewerten.
3. **Zugriff auf Projektstruktur:** Für eine tiefere Analyse ist eine Übersicht über die gesamte Verzeichnisstruktur des Projekts erforderlich.
**MOVED:** This file has been archived to `_archive/2026-01-13_initial-curator-analysis.md`.
@@ -1,29 +1,10 @@
# Journal: Auftrag zur Tiefenanalyse & Anforderung der Projektstruktur
---
type: Journal
status: ARCHIVED
owner: Lead Architect
last_update: 2026-01-20
---
* **Datum:** 2026-01-13
* **Autor:** Documentation & Knowledge Curator
* **Thema:** Follow-Up zur initialen Analyse und Auftrag zur Überprüfung der Dokumentations-Praxis.
# Project Structure Request (13.01.2026)
## Zusammenfassung
Aufbauend auf der [initialen Analyse vom 13.01.2026](2026-01-13_initial-curator-analysis.md) wurde heute der Auftrag
erteilt, eine Tiefenanalyse des Projekts durchzuführen.
Folgende Punkte sollen geprüft werden:
1. Konsistenz der Regelumsetzung im Projektalltag ("Jede Session endet mit einem Artefakt").
2. Analyse und Bewertung bestehender Artefakte in `docs/`.
3. Gesamtanalyse der Projektstruktur.
## Offene Punkte & Nächste Schritte
**Blocker:** Für die Durchführung der Analyse ist eine Übersicht der aktuellen Verzeichnisstruktur des gesamten Projekts
zwingend erforderlich. Ohne diese "Landkarte" kann keine sinnvolle Bewertung der Artefakte und ihrer Vollständigkeit
stattfinden.
**Nächster Schritt:**
* **Anforderung:** Bereitstellung der Projektstruktur, idealerweise durch die Ausgabe eines Befehls wie `tree -L 3` für
das gesamte Repository.
* Sobald die Struktur vorliegt, wird die eigentliche Analyse in der nächsten Session durchgeführt und das Ergebnis in
einem passenden Artefakt festgehalten.
**MOVED:** This file has been archived to `_archive/2026-01-13_request-for-project-structure-analysis.md`.
@@ -1,39 +1,10 @@
# Journal: Umfassende Konsolidierung der Dokumentationsstruktur
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
* **Datum:** 2026-01-14
* **Autor:** Documentation & Knowledge Curator
* **Thema:** Eine tiefgreifende Restrukturierung und Bereinigung der gesamten Projektdokumentation, um die "Single Source of Truth"-Regel konsequent durchzusetzen.
# Konsolidierung Doku (14.01.2026)
## Zusammenfassung
In dieser Session wurde eine Reihe von Inkonsistenzen und Redundanzen in der Projektdokumentation identifiziert und systematisch beseitigt. Ziel war es, eine klare, wartbare und leicht navigierbare Struktur zu schaffen, die dem "Docs-as-Code"-Prinzip vollständig entspricht.
## Durchgeführte Maßnahmen
1. **Strukturierung der Domänen-Dokumentation (`docs/03_Domain`):**
* Gemäß **[ADR-0012](../01_Architecture/adr/0012-domain-documentation-structure.md)** wurde eine neue, nach Reifegrad getrennte Ordnerstruktur eingeführt (`00_Glossary`, `01_Core_Model`, `02_Reference`, `03_Analysis`).
* Bestehende Dokumente (Regelwerke, Kern-Entitäten, "Geschichten") wurden in diese neue Struktur migriert.
* Technische Anleitungen wurden aus dem Domänen-Ordner in den `02_Onboarding`-Bereich verschoben.
2. **Behebung der Nummerierungs-Inkonsistenz im `docs`-Verzeichnis:**
* Die doppelte Verwendung der Nummer `02_` wurde behoben, indem die Verzeichnisse linear von `01` bis `07` umbenannt wurden.
* Die zentrale `docs/README.md` wurde entsprechend aktualisiert, um die neue, logische Reihenfolge widerzuspiegeln.
3. **Zentralisierung der Agenten-Playbooks:**
* Die System-Prompts der KI-Agenten wurden aus der `AGENTS.md` extrahiert und in dedizierte Playbook-Dateien unter `docs/04_Agents/Playbooks/` verschoben.
* Die `AGENTS.md` dient nun als reine Übersichts- und Einstiegsseite mit Links zu den Playbooks.
* Die `.gemini/README.md` wurde korrigiert und vereinfacht.
4. **Standardisierung der Modul-READMEs:**
* Die `README.md`-Dateien in allen Haupt-Modulen (`platform`, `frontend`, `backend`, `core`, `contracts`) wurden vereinheitlicht.
* Sie dienen nun ausschließlich als **Wegweiser** zur zentralen Dokumentation im `docs`-Verzeichnis und enthalten keine redundanten Informationen mehr.
5. **Bereinigung der Root-`README.md`:**
* Die `README.md` im Projekt-Root wurde radikal gekürzt. Sie dient jetzt als minimalistische "Visitenkarte" mit den wichtigsten Links zur Dokumentation und zum Quick-Start.
6. **Archivierung veralteter Berichte:**
* Alte Berichte aus den Verzeichnissen `JunieBerichte` und `GeminiBerichte` wurden analysiert und als Referenz- oder Analyse-Dokumente in das `docs`-Verzeichnis (`90_Reports` oder `02_Reference`) überführt.
## Ergebnis
Das Projekt verfügt nun über eine hochgradig konsistente, redundanzfreie und wartbare Dokumentationsstruktur. Die Gefahr von "Dokumentations-Drift" wurde signifikant reduziert.
**MOVED:** This file has been archived to `_archive/2026-01-14_Konsolidierung_Dokumentationsstruktur.md`.
@@ -1,34 +1,10 @@
# TODO-Liste: Finale Bereinigung der Dokumentation
* **Datum:** 2026-01-14
* **Autor:** Documentation & Knowledge Curator
* **Status:** Erledigt
## Kontext
Nach der großen Dokumentations-Restrukturierung sind beim Commit-Prozess Linting-Fehler und Link-Warnungen aufgetaucht. Diese Liste diente als Plan, um diese letzten Probleme in der Session vom 14.01.2026 zu beheben.
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
## Abarbeitung
# Cleanup TODO (14.01.2026)
Alle unten genannten Punkte wurden in der Session vom 14.01.2026 erfolgreich abgearbeitet.
### 1. "Broken Links" in Tech-Stack-Referenzen beheben
* **Problem:** Die aus dem Web kopierten Dokumente (`Gradle_Kotlin_DSL_Primer.md`, `Kotlin_2-3-0_ReleaseNotes.md`) in `docs/02_Reference/Tech_Stack/` enthielten hunderte ungültige, relative Links.
* **Lösung:** Die Dateien wurden auf ihren reinen Inhalts-Kern reduziert und von fehlerhaften Links befreit.
### 2. Ungültiges HTML in Legacy-Spezifikation korrigieren
* **Problem:** Die Datei `docs/03_Domain/02_Reference/Legacy_Specs/OETO-2026_Meldestelle_Erweiterung-Schnittstelle_2014.md` enthielt ungültige XML/HTML-Tags.
* **Lösung:** Der Inhalt wurde als Markdown-Code-Block vom Typ `xml` formatiert.
### 3. Fehlende `README.md`-Dateien im `docs`-Verzeichnis erstellen
* **Problem:** Die Wegweiser-READMEs in den Modulen `backend`, `core` und `contracts` zeigten auf nicht-existente Zieldateien.
* **Lösung:** Die entsprechenden Platzhalter-Dateien (`docs/05_Backend/README.md`, `docs/03_Domain/01_Core_Model/README.md`) wurden erstellt. Ein dabei neu entstandener fehlerhafter Link zum API-Gateway wurde ebenfalls korrigiert.
---
Das Projekt ist nun frei von den bekannten Dokumentations-Warnungen.
**MOVED:** This file has been archived to `_archive/2026-01-14_TODO_Final-Doc-Cleanup.md`.
@@ -1,44 +1,10 @@
# Journal: Ideen zur Verbesserung der Agenten-Zusammenarbeit
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
**Datum:** 15.01.2026
**Autor:** Documentation & Knowledge Curator
**Kontext:** Analyse des Status Quo der Agenten-Playbooks und Prozessoptimierung.
# Collaboration Ideas (15.01.2026)
## 1. Status Quo Analyse
Die aktuelle Struktur mit spezialisierten Agenten-Playbooks (`docs/04_Agents/Playbooks/`) und einer zentralen Dokumentation (`docs/`) ist sehr solide.
- **Stärken:** Klare Verantwortlichkeiten, "Docs-as-Code" als Fundament, Unterscheidung zwischen Konzept (Gemini) und Umsetzung (Junie).
- **Potenzial:** Die Schnittstellen zwischen den Agenten (Handover) sind implizit definiert, könnten aber formalisiert werden, um Reibungsverluste zu minimieren.
## 2. Vorschläge zur Verbesserung
### A. Formalisierte Handover-Artefakte
Statt nur Text zu übergeben, sollten Agenten strukturierte Formate nutzen, die vom nächsten Agenten direkt weiterverarbeitet werden können.
* **Domain Expert -> Backend/QA:**
* Statt Prosa: Nutzung von **Gherkin** (Given/When/Then) für Akzeptanzkriterien.
* Vorteil: QA kann dies direkt in Tests überführen, Backend Dev versteht die Edge-Cases.
* *Beispiel:* `docs/03_Domain/UseCases/UC001_Nennung.feature`
* **Architect -> Devs:**
* Statt nur ADR-Text: Bereitstellung von **PlantUML/Mermaid** Diagrammen, die ins Repo eingecheckt werden.
* Vorteil: Visualisierung ist direkt in der Doku eingebunden und versioniert.
### B. Cross-Agent Review Checklisten
Jedes Playbook könnte eine kurze "Pre-Flight Checklist" erhalten, bevor ein Task als "Done" markiert wird.
* *Backend Dev:* "Habe ich die API-Änderungen mit dem Frontend-Expert (bzw. dessen Doku) abgeglichen?"
* *Architect:* "Habe ich das ADR vom Domain Expert auf fachliche Korrektheit prüfen lassen?"
### C. "Session Context" Header
Um den Kontext für die KI-Modelle (Junie/Gemini) schneller herzustellen, könnte ein standardisierter Header für Prompts etabliert werden, der auf die relevanten Doku-Pfade verweist.
* *Idee:* Ein kleines "Context-File" oder ein Abschnitt im Journal, der sagt: "Wir arbeiten gerade an Feature X, relevante Doku ist A, B und C."
### D. Explizite "Shift-Left" QA
Der **QA Specialist** wird oft erst am Ende aktiv. Er sollte explizit aufgefordert werden, schon während der **Domain-Analyse** Fragen zu stellen ("Wie testen wir das?", "Brauchen wir Testdaten dafür?").
## 3. Nächste Schritte
1. Diskussion dieser Vorschläge mit dem Lead Architect (User).
2. Bei Zustimmung: Ergänzung der Playbooks um die spezifischen Handover-Formate und Checklisten.
3. Pilotierung des "Gherkin-Handovers" bei der nächsten fachlichen Anforderung.
**MOVED:** This file has been archived to `_archive/2026-01-15_Agent_Collaboration_Ideas.md`.
@@ -1,20 +1,10 @@
# Session Log: Architecture & Roadmap Consolidation
**Datum:** 15.01.2026
**Autor:** Lead Software Architect
---
type: Journal
status: ARCHIVED
owner: Lead Architect
last_update: 2026-01-20
---
## Zusammenfassung
In dieser Session wurde die Projektsteuerung neu ausgerichtet. Die Fragmentierung der Roadmaps wurde behoben und die Rollenverteilung geschärft.
# Architect Session (15.01.2026)
## Ergebnisse
1. **Roadmap Konsolidierung:**
* Erstellung der `docs/01_Architecture/MASTER_ROADMAP_2026_Q1.md` als Single Source of Truth.
* Deprecation von `docs/01_Architecture/Roadmap_System_Hardening.md` und `docs/05_Backend/ROADMAP.md`.
2. **Rollen-Schärfung:**
* Update des `Architect` Playbooks: Fokus auf Steuerung und Planung statt Implementierung.
* Erstellung von Verbesserungsvorschlägen für den `Curator` (`docs/90_Reports/Architecture_Improvement_Ideas_01-2026.md`).
3. **Status Quo:**
* Build ist grün (Spring Cloud 2025.0.1, Kotlin 2.3.0).
* `ping-service` Code-Änderungen (Security/Resilience) wurden zurückgerollt, um sie sauber durch die spezialisierten Agenten implementieren zu lassen.
## Nächste Schritte
Die Agenten (Backend, Frontend, DevOps, QA) können nun basierend auf der MASTER ROADMAP ihre Arbeit aufnehmen.
**MOVED:** This file has been archived to `_archive/2026-01-15_Architect_Session_Log.md`.
@@ -1,49 +1,10 @@
# Journal: Strategie für Archivierung und Dokumenten-Lifecycle
**Datum:** 15.01.2026
**Autor:** Documentation & Knowledge Curator
**Kontext:** Entwicklung einer Strategie zur Handhabung veralteter Dokumente (ToDos, Roadmaps) und Vereinheitlichung des Dokumenten-Status.
## 1. Problemstellung
Aktuell existieren Dokumente wie `MASTER_ROADMAP_2026_Q1.md` neben älteren Roadmaps oder Status-Reports. Es ist nicht immer sofort ersichtlich, was "Single Source of Truth" (SSOT) ist und was historische Relevanz hat.
Zudem fehlen einheitliche Header, die den Status eines Dokuments (z.B. "DRAFT", "ACTIVE", "DEPRECATED") auf den ersten Blick klarmachen.
## 2. Lösungsansatz: Lifecycle-Management
### A. Ordner-Struktur für Archivierung
Wir führen in jedem Hauptbereich (`01_Architecture`, `05_Backend`, etc.) einen Unterordner `_archive/` ein.
* **Regel:** Sobald ein Dokument (z.B. eine Roadmap oder eine ToDo-Liste) abgearbeitet oder obsolet ist, wird es **nicht gelöscht**, sondern in den `_archive/`-Ordner verschoben.
* **Benennung:** Beim Verschieben wird das Datum vorangestellt: `YYYY-MM-DD_OriginalName.md`.
### B. Standardisierter Header (Frontmatter-Style)
Jedes Dokument erhält einen standardisierten Header-Block ganz oben.
```markdown
---
type: [Roadmap | Concept | Reference | ADR | Report]
status: [DRAFT | ACTIVE | DEPRECATED | ARCHIVED]
owner: [Rolle, z.B. Lead Architect]
last_update: YYYY-MM-DD
context: [Link zu Ticket/Epic oder "General"]
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
```
* **ACTIVE:** Die aktuelle Wahrheit. Darf nur einmal pro Thema existieren (SSOT).
* **DEPRECATED:** Noch gültig, aber Ablösung geplant.
* **ARCHIVED:** Historisch, nur noch zum Nachlesen. (Liegt idealerweise im `_archive/` Ordner).
# Archiving Strategy (15.01.2026)
### C. Umgang mit ToDo-Listen
ToDo-Listen in Markdown-Dateien neigen dazu, zu veralten.
* **Strategie:** ToDos gehören primär in den Issue-Tracker (wenn vorhanden) oder in die `MASTER_ROADMAP`.
* **Temporäre ToDos:** Wenn ToDos in Konzepten stehen, müssen sie bei Abschluss in die Roadmap oder das Backlog überführt werden. Das Dokument selbst wird dann zum "Reference"-Dokument (ohne offene ToDos) oder archiviert.
## 3. Umsetzungsschritte
1. **Curator Playbook Update:** Der Curator ist verantwortlich für das Verschieben in `_archive/` am Ende einer Session.
2. **Template Erstellung:** Definition des Standard-Headers für alle neuen Dokumente.
3. **Cleanup:** Einmaliges Aufräumen der bestehenden Ordner (`01_Architecture`, `90_Reports`).
## 4. Beispiel-Workflow
1. Architect erstellt `Roadmap_Q1.md` (Status: ACTIVE).
2. Quartal endet. Architect erstellt `Roadmap_Q2.md`.
3. Curator verschiebt `Roadmap_Q1.md` nach `01_Architecture/_archive/2026-03-31_Roadmap_Q1.md` und setzt Status auf ARCHIVED.
**MOVED:** This file has been archived to `_archive/2026-01-15_Archiving_Strategy.md`.
@@ -1,48 +1,10 @@
---
type: Session Log
date: 2026-01-15
participants:
- Senior Backend Developer
- User
topic: Backend Infrastructure Analysis & Ping Service Hardening
status: BLOCKED
type: Journal
status: ARCHIVED
owner: Backend Developer
last_update: 2026-01-20
---
# Session Log: Backend Infrastructure Analysis
# Backend Infra Analysis (15.01.2026)
## 1. Context
The goal was to start "Phase 1: Backend Hardening" for the `ping-service` as defined in the Master Roadmap. The Senior Backend Developer began analyzing the existing infrastructure to ensure a solid foundation before implementing security and resilience features.
## 2. Key Findings & Analysis
A deep dive into `backend/infrastructure` revealed significant inconsistencies:
* **Persistence Conflict (Blocker):**
* `ping-service` is configured for **JPA/Hibernate** (`spring-boot-starter-data-jpa`).
* The shared library `backend/infrastructure/persistence` (specifically `DatabaseUtils.kt`) is built exclusively for **Exposed** (Kotlin SQL Framework).
* This creates a "split-brain" situation regarding ORM strategy.
* **Missing Security Infrastructure:**
* No shared security module exists (`backend/infrastructure/security`).
* Implementing OAuth2/RBAC directly in `ping-service` would violate DRY principles.
* **Messaging Overhead:**
* `backend/infrastructure/messaging` includes heavy Kafka dependencies.
* It is unclear if the "Tracer Bullet" (Ping Service) requires Kafka or if a simple REST-based Delta-Sync is sufficient.
## 3. Actions Taken
* Analyzed `build.gradle.kts` of `ping-service` and infrastructure modules.
* Identified the blocking architectural questions.
* **Created Pending ADR:** `docs/01_Architecture/adr/000-PENDING-backend-infrastructure-decisions.md` containing a catalog of questions for the Lead Architect.
## 4. Next Steps
* **WAITING FOR:** Lead Architect to resolve the JPA vs. Exposed decision.
* **WAITING FOR:** Decision on extracting a shared security module.
* Once decisions are made, the Backend Developer will proceed with:
1. Refactoring persistence (either removing JPA or rewriting infrastructure).
2. Implementing the Security Hardening.
## 5. Artifacts Created
* `docs/01_Architecture/adr/000-PENDING-backend-infrastructure-decisions.md`
---
*Logged by: Documentation & Knowledge Curator (Proxy)*
**MOVED:** This file has been archived to `_archive/2026-01-15_Backend_Infrastructure_Analysis.md`.
@@ -1,46 +1,10 @@
# Session Log: Domain Analysis & Core Model Definition
---
type: Journal
status: ARCHIVED
owner: Domain Expert
last_update: 2026-01-20
---
* **Datum:** 2026-01-15
* **Rolle:** Domain/Product Expert
* **Teilnehmer:** User (Stefan)
* **Status:** Abgeschlossen
# Domain Analysis (15.01.2026)
## Ziele der Session
1. Analyse der bestehenden Dokumentation (insb. OEPS Pflichtenheft).
2. Schärfung des Domänenmodells für nationale Turniere.
3. Erstellung von User Stories, Use Cases und NFRs.
4. Ableitung eines konkreten Datenbankschemas (SQL) für die Offline-First-Architektur.
## Durchgeführte Arbeiten
### 1. Analyse & Glossar
* **Legacy Spec Analyse:** Das OEPS Pflichtenheft 2021 V2.4 wurde detailliert analysiert. Wichtigste Erkenntnis: Identifikation erfolgt über numerische `Satznummern`, nicht Namen.
* **Glossar:** `docs/03_Domain/00_Glossary.md` erstellt. Begriffe wie *Startkarte*, *Satznummer*, *Abteilung* definiert.
* **Core Model:** `docs/03_Domain/01_Core_Model/Entities/Overview.md` aktualisiert. Entitäten `Pferd` und `Akteur` um OEPS-spezifische Felder erweitert.
### 2. Anforderungen (Requirements)
* **User Stories:** `docs/03_Domain/03_Analysis/User_Stories_Draft.md` erstellt. Fokus auf Offline-Import (ZNS) und Fehlertoleranz ("Override").
* **Use Cases:** `docs/03_Domain/03_Analysis/Use_Cases_Draft.md` erstellt. Clusterung in Initialisierung, Nennung, Sport und Abschluss.
* **NFRs:** `docs/03_Domain/03_Analysis/Non_Functional_Requirements_Draft.md` erstellt. Fokus auf Local-First, Konfliktlösung und Audit-Sicherheit.
### 3. Technisches Design
* **Datenbankschema:** `docs/03_Domain/01_Core_Model/Entities/Database_Schema.sql` erstellt.
* Verwendung von UUIDs (`TEXT`) für Offline-Kompatibilität.
* Modellierung von `competition` mit `division_id` für Abteilungen.
* Einführung von `audit_log` und `version` Feldern für Sync.
## Ergebnisse & Artefakte
| Artefakt | Pfad | Status |
| :--- | :--- | :--- |
| Glossar | `docs/03_Domain/00_Glossary.md` | Final |
| Core Model | `docs/03_Domain/01_Core_Model/Entities/Overview.md` | Updated |
| Legacy Analyse | `docs/03_Domain/03_Analysis/Legacy_Spec_Analysis_2026-01.md` | Draft |
| User Stories | `docs/03_Domain/03_Analysis/User_Stories_Draft.md` | Draft |
| Use Cases | `docs/03_Domain/03_Analysis/Use_Cases_Draft.md` | Draft |
| NFRs | `docs/03_Domain/03_Analysis/Non_Functional_Requirements_Draft.md` | Draft |
| DB Schema | `docs/03_Domain/01_Core_Model/Entities/Database_Schema.sql` | Proposal |
## Nächste Schritte
* **Review:** Architekt und Backend-Dev müssen das Schema prüfen.
* **Implementierung:** Übertragung des SQL-Schemas in SQLDelight (`.sq` Dateien) im KMP-Modul.
* **Prototyping:** Erster "Walking Skeleton" für den ZNS-Import basierend auf den User Stories.
**MOVED:** This file has been archived to `_archive/2026-01-15_Domain_Analysis_Session.md`.
@@ -1,35 +1,10 @@
# Session Log: Prozess-Optimierung & Cleanup
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
**Datum:** 15.01.2026
**Autor:** Documentation & Knowledge Curator
**Thema:** Verbesserung der Agenten-Kollaboration und Dokumentations-Hygiene.
# Session Log Cleanup (15.01.2026)
## 1. Zusammenfassung
In dieser Session wurden die Arbeitsabläufe der KI-Agenten optimiert und die Projektdokumentation grundlegend aufgeräumt. Ziel war es, Reibungsverluste bei der Übergabe (Handover) zu minimieren und eine klare Unterscheidung zwischen "aktuell" und "veraltet" zu schaffen.
## 2. Durchgeführte Änderungen
### A. Agent Playbooks (Prozess)
Alle Playbooks in `docs/04_Agents/Playbooks/` wurden aktualisiert:
* **Domain Expert:** Nutzt nun **Gherkin** für Requirements-Handover.
* **Architect:** Liefert Diagramme (Mermaid/PlantUML) statt nur Text.
* **QA Specialist:** "Shift-Left" Ansatz (Prüfung schon während der Analyse).
* **Devs (Backend/Frontend/DevOps):** Einführung von **Pre-Flight Checks** vor der Umsetzung.
* **Curator:** Neue Rolle als **Quality Gate** für Dokumentations-Standards.
### B. Dokumentations-Strategie
* **Archivierung:** Einführung von `_archive/` Unterordnern in allen Bereichen. Veraltete Dokumente werden nicht gelöscht, sondern verschoben (mit Datums-Präfix).
* **Standard-Header:** Jedes Dokument muss nun einen YAML-Frontmatter Header haben (`status: ACTIVE | ARCHIVED`, `owner`, `last_update`).
* **Single Source of Truth:** Die `MASTER_ROADMAP` wurde als alleinige Quelle für die Planung etabliert.
### C. Cleanup
Folgende Bereiche wurden bereinigt und archiviert:
* `01_Architecture`: Alte Roadmaps archiviert.
* `05_Backend`: Alte Roadmap archiviert.
* `90_Reports`: Veraltete Status-Reports archiviert.
* `06_Frontend` & `07_Infrastructure`: Header aktualisiert.
## 3. Ergebnis
Das Projekt verfügt nun über einen sauberen, konsistenten Dokumentations-Stand. Die Regeln für die Zusammenarbeit der Agenten sind formalisiert und in den Playbooks verankert.
**Status:** ✅ Session erfolgreich abgeschlossen.
**MOVED:** This file has been archived to `_archive/2026-01-15_Session_Log_Cleanup_and_Process.md`.
@@ -1,36 +1,10 @@
---
type: Journal
status: ACTIVE
owner: Infrastructure & DevOps Engineer
last_update: 2026-01-15
status: ARCHIVED
owner: DevOps Engineer
last_update: 2026-01-20
---
# Session Log: Infrastructure Zipkin Setup
# Zipkin Setup (17.01.2026)
## Zusammenfassung
In dieser Session wurde die Infrastruktur um Distributed Tracing mit **Zipkin** erweitert, um Latenzanalysen in der Microservice-Architektur zu ermöglichen.
## Durchgeführte Änderungen
### 1. Docker Compose (`docker-compose.yaml`)
* **Neuer Service `zipkin`:**
* Image: `openzipkin/zipkin:3`
* Port: `9411`
* Network Alias: `zipkin`
* **Service Integration:**
* Die Services `api-gateway`, `ping-service`, `entries-service`, `results-service` und `scheduling-service` wurden konfiguriert, um Tracing-Daten an Zipkin zu senden.
* Umgebungsvariablen hinzugefügt:
* `MANAGEMENT_ZIPKIN_TRACING_ENDPOINT`
* `MANAGEMENT_TRACING_SAMPLING_PROBABILITY`
### 2. Dokumentation
* Neue Referenz-Dokumentation erstellt: `docs/07_Infrastructure/Reference/zipkin.md`.
* Enthält Konfigurationsdetails und Troubleshooting-Hinweise.
## Betroffene Dateien
* `docker-compose.yaml`
* `docs/07_Infrastructure/Reference/zipkin.md`
## Nächste Schritte
* Backend-Developer müssen sicherstellen, dass die Micrometer-Tracing-Dependencies (`micrometer-tracing-bridge-brave`, `zipkin-reporter-brave`) im Build vorhanden sind.
* Neustart der Umgebung mit `docker compose up -d`.
**MOVED:** This file has been archived to `_archive/2026-01-17_Infrastructure_Zipkin_Setup.md`.
+5 -40
View File
@@ -1,45 +1,10 @@
---
type: Journal
date: 2026-01-17
author: Curator
participants:
- Backend Developer
- Lead Architect
status: COMPLETED
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
# Session Log: 17. Jänner 2026
# Session Log (17.01.2026)
## Zielsetzung
Erweiterung des `PingService` um Delta-Sync-Funktionalität (Phase 3) zur Unterstützung von Offline-First-Clients.
## Durchgeführte Arbeiten
### 1. Backend: Delta-Sync Implementierung
* **Contract (`:contracts:ping-api`):**
* Erweiterung des `PingApi` Interfaces um `syncPings(lastSyncTimestamp: Long): List<PingEvent>`.
* Definition von `PingEvent` als DTO für Sync-Daten.
* **Domain (`:backend:services:ping:ping-service`):**
* Erweiterung von `PingUseCase` und `PingRepository` um Methoden zum Abrufen von Daten ab einem Zeitstempel.
* **Infrastructure:**
* Implementierung des Endpunkts `/ping/sync` im `PingController`.
* Implementierung der JPA-Query `findByCreatedAtAfter` im Repository-Adapter.
* **Testing:**
* Erfolgreiche Implementierung von Unit-Tests für den neuen Endpunkt (`PingControllerTest`).
* Behebung von Security-Problemen in Tests durch Deaktivierung von Filtern (`@AutoConfigureMockMvc(addFilters = false)`).
### 2. Frontend: Client-Anpassung
* Aktualisierung von `PingApiClient` (Legacy) und `PingApiKoinClient` (Koin) zur Implementierung der neuen `syncPings`-Methode.
* Anpassung des Test-Doubles `TestPingApiClient` zur Vermeidung von Build-Fehlern.
### 3. Dokumentation
* Aktualisierung von `/docs/05_Backend/Services/PingService.md` mit Details zur Sync-Strategie.
## Ergebnisse
* Der `PingService` unterstützt nun Delta-Sync.
* Frontend und Backend sind synchronisiert (Contracts).
* Build und Tests sind grün.
## Nächste Schritte
* Integration der Sync-Logik in die Frontend-Applikation (durch Frontend Expert).
* Validierung des Sync-Mechanismus mit echten Daten.
**MOVED:** This file has been archived to `_archive/2026-01-17_Session_Log.md`.
+5 -47
View File
@@ -1,52 +1,10 @@
---
type: Journal
date: 2026-01-19
author: Lead Architect
participants:
- Frontend Expert
- Infrastructure & DevOps
- QA Specialist
status: COMPLETED
status: ARCHIVED
owner: Lead Architect
last_update: 2026-01-20
---
# Session Log: 19. Jänner 2026
# Session Log (19.01.2026)
## Zielsetzung
Abschluss des "Trace Bullet" (Ping Feature) durch Abarbeitung der offenen Punkte aus dem Handover vom 17.01., Bereinigung der Frontend-Struktur und Inbetriebnahme der lokalen Entwicklungsumgebung.
## Durchgeführte Arbeiten
### 1. Frontend Refactoring & Cleanup
* **Migration:** Tests aus `at.mocode.clients.pingfeature` wurden in die Clean Architecture Struktur (`at.mocode.ping.feature.data` und `presentation`) migriert.
* **Cleanup:** Das alte Package `at.mocode.clients.pingfeature` wurde vollständig entfernt (inkl. Tests).
* **Integration Test:** Ein neuer `PingSyncIntegrationTest` wurde erstellt, der den Datenfluss vom API-Client bis zum Repository verifiziert.
* **Dependency Injection Fixes:**
* `SyncModule` nutzt nun korrekt den `named("apiClient")` HttpClient.
* `localDbModule` wurde in `main.kt` (Desktop Shell) registriert, um `DatabaseProvider` verfügbar zu machen.
* **Code Quality:** Unused Imports, Variables und redundante Elvis-Operatoren wurden bereinigt.
### 2. Infrastructure & Observability
* **Tracing Fix:** Der `ping-service` hatte die Tracing-Dependencies (`monitoring-client`) nicht eingebunden. Dies wurde in der `build.gradle.kts` korrigiert.
* **Local Dev Config:**
* `monitoring-defaults.properties` wurde angepasst, damit Zipkin lokal unter `localhost:9411` angesprochen wird (statt `zipkin:9411`).
* `application.yaml` des `ping-service` wurde bereinigt, um zentrale Defaults zu nutzen.
* **Docker Compose:**
* `docker-compose.yaml` wurde strukturiert und um **Mailpit** erweitert.
* Services (Postgres, Redis, Consul, Zipkin, Keycloak) laufen stabil.
### 3. Build & Contracts
* **API Visibility:** `contracts:ping-api` exportiert nun `core-domain` via `api` statt `implementation`. Dies behebt die Compiler-Warnung `Cannot access 'Syncable'`.
### 4. Dokumentation
* **Architecture:** Neue Datei `docs/01_Architecture/02_Frontend_Architecture.md` erstellt, die die Modularisierungsstrategie und Clean Architecture Vorgaben festhält.
## Ergebnisse
* **Build:** GRÜN.
* **Backend:** Gateway und Ping-Service laufen lokal und kommunizieren mit der Docker-Infrastruktur. Tracing funktioniert.
* **Frontend:** Desktop-App startet erfolgreich.
* **Architektur:** Konsistent und sauber (keine Legacy-Pakete mehr im Ping-Feature).
## Nächste Schritte (Ausblick)
* **Frontend Debugging:** Analyse der verbleibenden Laufzeit-Probleme in der Desktop-App.
* **Feature Development:** Beginn der Arbeit an den Fachdomänen (Veranstaltungen/Events).
* **Auth Migration:** Migration des `auth-feature` auf die neue Architektur bei nächster Gelegenheit.
**MOVED:** This file has been archived to `_archive/2026-01-19_Session_Log.md`.
@@ -0,0 +1,46 @@
---
type: Journal
status: COMPLETED
owner: Curator
date: 2026-01-20
participants:
- Lead Architect
- Curator
---
# Session Log: Tech Stack Stabilisierung & Doku-Cleanup
**Datum:** 20.01.2026
**Ziel:** Stabilisierung des Builds (Versionskonflikte) und massive Bereinigung der Dokumentationsstruktur.
## 1. Tech Stack Stabilisierung (ADR-0013)
Aufgrund kritischer Inkompatibilitäten wurde der Tech-Stack angepasst (siehe `docs/01_Architecture/adr/0013-tech-stack-stabilization-2026.md`):
* **Spring Cloud:** Downgrade auf `2025.0.1` (Northfields) für Spring Boot 3.5.x Kompatibilität.
* **Compose Multiplatform:** Upgrade auf `1.10.0-rc02` für Kotlin 2.3.0 Kompatibilität.
* **Exposed:** Upgrade auf `1.0.0-rc-4`.
* **Micrometer:** Upgrade auf `1.16.1`.
Die `gradle/libs.versions.toml` wurde entsprechend aktualisiert.
## 2. Dokumentations-Hygiene
Eine umfassende Aufräumaktion wurde durchgeführt, um die "Single Source of Truth" wiederherzustellen:
### A. Archivierung
* Einführung von `_archive/` Unterordnern in `01_Architecture`, `05_Backend`, `90_Reports` und `99_Journal`.
* Veraltete Roadmaps, Reports und Logs wurden verschoben und mit dem Status `ARCHIVED` versehen.
* Originaldateien wurden durch "MOVED"-Hinweise ersetzt.
### B. Prozess-Optimierung (Playbooks)
* **Curator:** Neue Rolle als "Quality Gatekeeper". Fordert nun aktiv ADRs und Handover-Artefakte ein.
* **Standard-Header:** Einführung von YAML-Frontmatter (`type`, `status`, `owner`) für alle Dokumente.
* **Master Roadmap:** `MASTER_ROADMAP_2026_Q1.md` ist die alleinige Quelle für die Planung.
## 3. Ergebnis
Das Projekt ist nun technisch (Build) und organisatorisch (Doku) wieder auf Kurs.
* Build-Konflikte sind gelöst.
* Veraltetes Wissen ist archiviert.
* Aktuelles Wissen ist klar markiert (`ACTIVE`).
**Nächste Schritte:**
* Verifikation des "Trace Bullet" (DevOps/QA).
* Implementierung Frontend Auth (Frontend Expert).
+14 -8
View File
@@ -1,10 +1,16 @@
# Journal 2026-01
# Journal: Jänner 2026
## Vorlage
Dieses Dokument fasst die wichtigsten Ereignisse und Entscheidungen des Monats zusammen.
### YYYY-MM-DD Thema
* **Kontext:** …
* **Rollen genutzt:** …
* **Ergebnis:** … (Link auf ADR/Note/How-to/Reference)
* **Offen:** … (Links auf relevante ADRs/Notes/Code-Stellen; optional: Eintrag im Journal reicht)
* **Next:** …
## Woche 1-2: Initialisierung & Analyse
* **13.01.:** Start der Analyse. Identifikation von Strukturproblemen im Backend.
* **14.01.:** Konsolidierung der Dokumentationsstruktur.
* **15.01.:** Festlegung der "Docs-as-Code" Strategie und Agenten-Rollen.
## Woche 3: "Tracer Bullet" (Ping Service)
* **17.01.:** Implementierung des Delta-Syncs im Backend (`/ping/sync`).
* **19.01.:** Frontend Refactoring auf Clean Architecture. Erfolgreicher Build.
* **20.01.:** Stabilisierung des Tech-Stacks (ADR-0013). Downgrade Spring Cloud, Upgrade Compose.
---
*Details siehe archivierte Session-Logs in `_archive/`.*
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Backend Developer
last_update: 2026-01-20
---
(Original content of 2026-01-13_backend-startup-troubleshooting.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
(Original content of 2026-01-13_initial-curator-analysis.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Lead Architect
last_update: 2026-01-20
---
(Original content of 2026-01-13_request-for-project-structure-analysis.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
(Original content of 2026-01-14_Konsolidierung_Dokumentationsstruktur.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
(Original content of 2026-01-14_TODO_Final-Doc-Cleanup.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
(Original content of 2026-01-15_Agent_Collaboration_Ideas.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Lead Architect
last_update: 2026-01-20
---
(Original content of 2026-01-15_Architect_Session_Log.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
(Original content of 2026-01-15_Archiving_Strategy.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Backend Developer
last_update: 2026-01-20
---
(Original content of 2026-01-15_Backend_Infrastructure_Analysis.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Domain Expert
last_update: 2026-01-20
---
(Original content of 2026-01-15_Domain_Analysis_Session.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
(Original content of 2026-01-15_Session_Log_Cleanup_and_Process.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: DevOps Engineer
last_update: 2026-01-20
---
(Original content of 2026-01-17_Infrastructure_Zipkin_Setup.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Curator
last_update: 2026-01-20
---
(Original content of 2026-01-17_Session_Log.md)
@@ -0,0 +1,8 @@
---
type: Journal
status: ARCHIVED
owner: Lead Architect
last_update: 2026-01-20
---
(Original content of 2026-01-19_Session_Log.md)