# Enterprise Platform Lab

Dieses Java-21-Lab verbindet einen Order-Service, einen eventgetriebenen
Billing-Service, PostgreSQL, RabbitMQ, Observability und eine
OpenShift/Kustomize-Zielstruktur.

## Struktur

- `runtime-lab/` – kanonischer, ausführbarer Maven-Multi-Modul-Stand
- `html/enterprise-platform-lab.html` – ausführliches Offline-Lernbuch
- `index.html` und `lernweg.html` – Einstieg und Lernpfad

Die früher parallel abgelegten sieben Vollkopien der Maven-Phasen wurden durch
sieben aufeinander aufbauende Git-Commits ersetzt. Der aktuelle `main`-Stand
entspricht der früheren Phase 7; ältere Lernschritte bleiben über die
Git-Historie nachvollziehbar.

## Testen

```powershell
mvn -B -f runtime-lab/pom.xml clean test
python scripts/validate_repository.py
```

Die beiden Spring-Kontexttests verwenden eine isolierte H2-Testdatenbank. Für
den manuellen Ende-zu-Ende-Lauf können PostgreSQL und RabbitMQ über
`runtime-lab/docker-compose.yml` mit Docker Compose oder Podman Compose
gestartet werden.

Der vollständige Test baut beide ausführbaren Spring-Boot-JARs und Images,
startet die Anwendungen samt Infrastruktur in Rootless Podman und prüft den
Eventfluss von einer Bestellung bis zur erzeugten Rechnung. Danach werden die
Testcontainer und -Volumes automatisch entfernt:

```powershell
powershell -NoProfile -File runtime-lab/scripts/full-test.ps1
```

RabbitMQ läuft dabei explizit mit seiner Container-UID `999`, damit das
persistente Test-Volume auch unter Rootless Podman korrekt funktioniert.

## KI-Unterstützung und Status

Zentrale Konventionen, Skills und wiederverwendbare Prompts kommen aus
`nursude/ai-governance`. Projektlokal bleiben nur der Overlay in `AGENTS.md`,
verwaltete Dateien unter `.agents/` und `ai/` sowie der maschinenlesbare
Projektstatus in `project.yaml`.
