Jira: CVM-16 Abhängigkeit: 00 Ziel: Arbeitsfähige Angular-Anwendung mit Login, Layout, Routing und Dashboard-Gerüst.
Angular 18 Standalone Components, Keycloak-Integration wie in PortalCore.
Design angelehnt an adesso health solutions CI (Farben, Typografie aus
cvm-frontend/src/assets/design-tokens.json – zunächst Platzhalter, später
Feintuning).
keycloak-angular-Integration, Runtime-Konfiguration viaassets/config.json(Keycloak-URL, Realm, Client-ID, API-Base-URL).- Auth-Guard, Token-Injection via HTTP-Interceptor.
- Rollen-basierte Menüsichtbarkeit:
CVE_VIEWER,CVE_ASSESSOR,CVE_APPROVER,CVE_ADMIN,PRODUCT_OWNER,AI_AUDITOR. - Haupt-Layout:
- Header mit Produkt-/Umgebungswähler (noch ohne Datenanbindung), User-Menü, Logout.
- Sidebar mit Menüpunkten: Dashboard, Bewertungs-Queue, CVEs, Komponenten, Profile, Regeln, Berichte, KI-Audit (Admin).
- Content-Area (Router-Outlet).
- Dashboard-Gerüst (leere Cards mit Platzhaltern):
- Offene CVEs gesamt
- CVEs nach Severity (ECharts-Tortendiagramm)
- Älteste offene kritische CVE
- Ampel-Status „Weiterbetrieb möglich?"
- HTTP-Client-Service
ApiClientmit Basis-URL aus Config, Fehlerbehandlung (Snackbar bei 4xx/5xx). - i18n-Grundgerüst (Deutsch als Default, Platzhalter für Englisch).
- Playwright-E2E-Smoke-Test: Login-Flow gegen Keycloak-Dev-Realm.
- Queue-UI (Iteration 08).
- Profil-Editor (Iteration 18).
- Regel-Editor (später).
- Copilot-UI (Iteration 14).
- Angular-Modul-Struktur:
src/app/ core/ (auth, api-client, config) shared/ (ui-komponenten, pipes) features/ dashboard/ queue/ (leerer Platzhalter, gefuellt in Iteration 08) cves/ components/ profiles/ rules/ reports/ ai-audit/ - Tailwind-Config mit adesso-Farben als CSS-Variablen.
- Basis-Design:
<ahs-button>,<ahs-card>,<ahs-empty-state>,<ahs-severity-badge>(mit Farbcode je Severity). - Config-Loader vor Bootstrap (
APP_INITIALIZER). - Jasmine-Unit-Tests für Interceptor, Guard, Config-Loader.
AuthInterceptorTest: Token wird injiziert, 401 führt zu Logout.RoleMenuServiceTest: Menüeinträge sichtbar je Rolle.- Playwright: Login → Dashboard sichtbar → Logout.
- Visual Regression (nice-to-have, nicht Pflicht): Screenshot der Shell.
-
npm startzeigt Login-Redirect zu Keycloak-Dev. - Nach Login ist Dashboard erreichbar.
- Menüeinträge je nach Rolle sichtbar/ausgegraut.
- Config via
config.jsonaustauschbar ohne Rebuild. - Coverage Frontend (
cvm-frontend) ≥ 70 %. - Fortschrittsbericht.
- Commit:
feat(frontend): Angular-Shell mit Keycloak und Dashboard-Geruest\n\nCVM-16
Frontend-TDD: Tests für Services und kritische Logik (Interceptor, Guard). Layout kann pragmatischer entwickelt werden, aber mit Playwright-Smoke abgesichert.
Standard, plus Screenshot der Shell unter docs/YYYYMMDD/iteration-07-shell.png.