Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
# Iteration 02 — Technischer Deep Dive: Ergebnisse
|
||||
|
||||
> Stand: 2026-04-22 | Basis: 23 pom.xml + 1 package.json der Kern-Services
|
||||
|
||||
---
|
||||
|
||||
## 1. Versionen und Abhaengigkeiten
|
||||
|
||||
### Zentrale Versionen (aus bestellsystem-parent-pom)
|
||||
|
||||
| Komponente | Version | Status | Risiko |
|
||||
|-----------|---------|--------|--------|
|
||||
| **Java** | 17 (Parent) / 21 (Services) | Migration laeuft | MITTEL — Parent noch auf 17, Services auf 21 |
|
||||
| **Spring Boot** | 3.5.13 | EOL Juni 2026! | KRITISCH — Upgrade auf 4.x dringend |
|
||||
| **Camunda 8** | 8.8.22 | Aktuell | OK — Upgrade auf 8.9 geplant |
|
||||
| **PostgreSQL Driver** | 42.7.10 | Aktuell | OK |
|
||||
| **Flyway** | 11.20.3 | Aktuell | OK |
|
||||
| **Log4j2** | 2.25.4 | Aktuell | OK |
|
||||
| **Jackson** | 2.21.2 | Aktuell | OK |
|
||||
| **OpenAPI Generator** | 7.21.0 | Aktuell | OK |
|
||||
| **Cucumber** | 7.34.3 (Parent) / 7.23.0 (SV) | Divergenz! | NIEDRIG — aber Inkonsistenz |
|
||||
| **JUnit** | 5.14.3 | Aktuell | OK |
|
||||
| **WireMock** | 3.13.2 | Aktuell | OK |
|
||||
| **MapStruct** | 1.6.3 | Aktuell | OK |
|
||||
| **OpenTelemetry** | 2.27.0 (Parent) / 2.26.1 (SV) | Divergenz | NIEDRIG |
|
||||
| **AWS SDK** | 2.42.34 (SV) | Aktuell | OK |
|
||||
| **Angular** | 21.2.4 | Aktuell | OK |
|
||||
| **TypeScript** | ~5.9.2 | Aktuell | OK |
|
||||
| **RxJS** | 7.8.2 | Aktuell | OK |
|
||||
|
||||
### Aktive CVE-Patches (aus pom.xml Kommentaren)
|
||||
|
||||
| CVE | Bibliothek | Fix-Version |
|
||||
|-----|-----------|-------------|
|
||||
| CVE-2025-48924 | commons-lang3 | 3.20.0 |
|
||||
| CVE-2025-53864 | nimbus-jose-jwt | 10.9 |
|
||||
| CVE-2025-66566 | lz4-java | 1.11.0 |
|
||||
| CVE-2026-1002 | vertx-core | 4.5.26 |
|
||||
| CVE-2025-12183 | lz4-java (Kafka) | at.yawk fork |
|
||||
| CVE-2026-40477/78 | thymeleaf (Togglz) | Excluded |
|
||||
| GHSA-* (diverse) | tomcat-embed-core | 10.1.54 |
|
||||
| GHSA-3pxv-* | log4j-core | 2.25.4 |
|
||||
|
||||
## 2. Architektur-Bewertung
|
||||
|
||||
### Parent-POM Struktur
|
||||
- **bestellsystem-parent-pom** (v0.12.50-SNAPSHOT): Zentrale Versionsverwaltung fuer alle Services
|
||||
- GroupId: `com.dbnetz.bestellsystem`
|
||||
- Definiert Spring Boot, Logging, Monitoring, OpenAPI, Test-Dependencies zentral
|
||||
- **Problem**: Parent-POM hat `java.version=17`, aber die meisten Services ueberschreiben auf `21`
|
||||
- **Problem**: Einige Services (SV) haben eigene Parent-POMs statt den gemeinsamen zu nutzen
|
||||
|
||||
### Steuerung-Vertrieb (Komplexester Service)
|
||||
- **18 Maven-Module!** (testutils, model-process, model, tdm-utils, kafka-utils, i18n, api-adapter, persistence, monitoring-utils, process-configuration, camunda-interface, camunda8, application, camunda8-jobworker, assemblies, kit, kafka, feature-toggle)
|
||||
- Eigener Parent-POM (nicht bestellsystem-parent-pom)
|
||||
- Camunda 8.8.22 integriert
|
||||
- Lombok + MapStruct
|
||||
- Feature Toggles via Togglz
|
||||
- AWS SDK fuer MSK/Kafka
|
||||
- 10+ interne API-Dependencies (trassenanmeldung, versandauftrag, versandergebnis, etc.)
|
||||
|
||||
### Auftrags-Verwaltung-Trasse
|
||||
- Nutzt bestellsystem-parent-pom (v1.8.0) als Parent
|
||||
- Kafka-Integration (Spring Kafka 3.3.14)
|
||||
- OAuth2 Resource Server (Spring Security)
|
||||
- Feature Toggles via Togglz
|
||||
- Signature-Database + Signature-Message (Nachrichtensignierung)
|
||||
- OpenAPI Code-Generierung aus data-model
|
||||
|
||||
### Portal UI
|
||||
- Angular 21.2.4 (sehr aktuell)
|
||||
- Eigene UI-Library: `@kuk/kuk-ui-library`
|
||||
- Portal-API: `@bestellsystem/portal-api` v4.0.0
|
||||
- OIDC Auth: `angular-auth-oidc-client`
|
||||
- PDF-Generierung: jspdf + jspdf-autotable
|
||||
- Cypress fuer E2E-Tests
|
||||
- Karma + Jasmine fuer Unit-Tests
|
||||
|
||||
## 3. Dependency-Graph (vereinfacht)
|
||||
|
||||
```
|
||||
bestellsystem-parent-pom (v0.12.50)
|
||||
|
|
||||
+-- auftrags-verwaltung-trasse (v1.7.1)
|
||||
| +-- auftragsverwaltung-api (v6.0.0)
|
||||
| +-- auftraege-api (v6.0.0)
|
||||
| +-- event-model-api (v3.3.0)
|
||||
| +-- data-model (v10.0.0)
|
||||
| +-- signature-database (v1.5.0)
|
||||
| +-- signature-message (v1.7.0)
|
||||
| +-- logging-util (v1.3.0)
|
||||
|
|
||||
+-- stammdaten-bereitstellung
|
||||
+-- kundendaten-bereitstellung
|
||||
+-- rabattnummern-bereitstellung
|
||||
+-- archivierungsservice
|
||||
+-- common-interface
|
||||
+-- taftap-tdm-konverter
|
||||
+-- tbv-absicherung-konverter
|
||||
+-- vertragsdaten-verteiler
|
||||
|
||||
steuerung-vertrieb (EIGENER Parent, v1.6.1)
|
||||
|
|
||||
+-- trassenanmeldung-api (v8.11.0)
|
||||
+-- versandauftrag-api (v3.11.0)
|
||||
+-- versandergebnis-api (v2.14.0)
|
||||
+-- vertriebsauftraege-api (v8.3.0)
|
||||
+-- produktionsauftrag-api (v3.5.0)
|
||||
+-- eventmodel-api (v3.2.0)
|
||||
+-- kundendaten-api (v2.9.0)
|
||||
+-- objectinfomessage-api (v2.11.0)
|
||||
+-- data-model (v10.0.0)
|
||||
+-- camunda-events (v2.2.0)
|
||||
+-- signature-message (v1.7.0)
|
||||
+-- core-components-common (v1.6.1)
|
||||
+-- core-components-kafka (v1.2.1)
|
||||
|
||||
portal-ui (Angular 21, v1.9.1)
|
||||
+-- @bestellsystem/portal-api (v4.0.0)
|
||||
+-- @kuk/kuk-ui-library (v0.45.0)
|
||||
```
|
||||
|
||||
## 4. Technische Gesundheits-Scorecard
|
||||
|
||||
| Kategorie | Bewertung | Details |
|
||||
|-----------|-----------|---------|
|
||||
| **Java-Version** | 🟡 | 21 in Services, aber Parent noch auf 17. Inkonsistenz. |
|
||||
| **Spring Boot** | 🔴 | 3.5.13 — EOL Juni 2026. Upgrade auf 4.x ist KRITISCH. |
|
||||
| **Camunda** | 🟢 | 8.8.22 — aktuell, Upgrade auf 8.9 geplant |
|
||||
| **Angular** | 🟢 | 21.2.4 — sehr aktuell |
|
||||
| **Dependencies** | 🟢 | Renovate aktiv, CVEs werden gepatcht |
|
||||
| **Versionskonsistenz** | 🟡 | SV hat eigenen Parent-POM, Cucumber/OTel Versionen divergieren |
|
||||
| **Modularitaet** | 🟡 | SV mit 18 Modulen sehr komplex, andere Services einfacher |
|
||||
| **API-Versionierung** | 🟢 | Saubere OpenAPI-basierte Versionierung (data-model v10.0.0) |
|
||||
| **Security** | 🟢 | Aktive CVE-Patches, Signature-Libs, OAuth2, Mutual SSL |
|
||||
| **Feature Toggles** | 🟢 | Togglz integriert in SV und AV |
|
||||
| **Monitoring** | 🟢 | OpenTelemetry, Micrometer, Prometheus integriert |
|
||||
| **Testing** | 🟡 | Cucumber + JUnit + WireMock, aber Testkonzept in Ueberarbeitung (ADR-70) |
|
||||
|
||||
## 5. Handlungsempfehlungen (priorisiert)
|
||||
|
||||
### KRITISCH
|
||||
1. **Spring Boot 4 Upgrade** — EOL 3.5 ist Juni 2026. Muss sofort beginnen. Betrifft ALLE Services.
|
||||
2. **Parent-POM Konsolidierung** — SV sollte den gemeinsamen Parent nutzen oder die Divergenz bewusst dokumentieren.
|
||||
|
||||
### HOCH
|
||||
3. **Java-Version im Parent auf 21 anheben** — Alle Services nutzen bereits 21, Parent hinkt hinterher.
|
||||
4. **Cucumber-Version vereinheitlichen** — 7.34.3 vs 7.23.0 zwischen Parent und SV.
|
||||
5. **SV-Modularitaet pruefen** — 18 Module ist sehr viel. Gibt es Konsolidierungspotenzial?
|
||||
|
||||
### MITTEL
|
||||
6. **OpenTelemetry-Version synchronisieren** — 2.27.0 vs 2.26.1
|
||||
7. **Testkonzept-Modernisierung** — ADR-70 ist in Arbeit, Umstieg von Cucumber auf Plain JUnit in Teilen geplant
|
||||
8. **data-model v10.0.0** — Zentrale Abhaengigkeit, Aenderungen haben Breitenwirkung
|
||||
Reference in New Issue
Block a user