# CFG-06 – Prüfprotokoll: Benachrichtigungs-Einstellungen-Dienst starten (CFG-04 als laufender Dienst) Voraussetzung CFG-04, IAM-16 – beide bereits Fertig, hier UNVERÄNDERT. ## Reines Wiring, keine neue Logik `git diff --stat internal/notifyprefs/` liefert KEINEN Diff. `cmd/notifyprefs-api/main.go` setzt ausschließlich bestehende Konstruktoren zusammen, jeder Endpunkt hinter `auth.RequireAuth` mit demselben JWT-Secret wie IAM-16 (account-api) — dritter Baustein der Core-GUI mit bewiesener Cross-Service-Session-Gültigkeit nach RBAC-07. ## Umsetzung - `cmd/notifyprefs-api/main.go` – `GET/POST /notifications/preferences`, `GET /notifications/preferences/tenant`, alle hinter `auth.RequireAuth`. - `deploy/systemd/nexarch-notifyprefs-api.service.tmpl`. ## Prüfungen | # | Prüfung | Ergebnis | |---|---|---| | 1 | Dienst startet und bleibt stabil (systemctl status aktiv) | **bestanden** – real auf 131: `nexarch-notifyprefs-api.service` aktiv | | 2 | Realer Aufruf mit gültigem IAM-16-Session-Cookie setzt/liest eine echte Präferenz, ohne Cookie 401 | **bestanden** – real per `curl`: ohne Cookie → 401; mit dem bei `account-api` ausgestellten Cookie: `POST /notifications/preferences` (Kanal `email` für `invoice_ready` deaktiviert) → 200, anschließendes `GET` liefert exakt diese Zeile zurück, korrekt dem einloggten Nutzer und Tenant (`acme`) zugeordnet | | 3 | Code-Review: keine Änderung an internal/notifyprefs/ selbst, nur main.go+systemd neu | **bestanden** – `git diff --stat internal/notifyprefs/` liefert leeren Diff | ## Echte Verdrahtung auf 192.168.1.131 - `notifyprefs-api` gebaut nach `/opt/nexarch-core/bin/`, `/etc/nexarch/notifyprefs-api.env` (0600, `NEXARCH_NOTIFYPREFS_JWT_SECRET` identisch zu `NEXARCH_ACCOUNT_JWT_SECRET`), Dienst installiert/aktiviert. - Nutzt dieselbe `nexarch_registry`-DB/Tabellen (`notification_preferences`) wie CFG-05 — Grants dort bereits aus CFG-05 vorhanden, keine neue Grant-Lücke gefunden. - End-zu-Ende-Beweis: Testnutzer angelegt, Login gegen `account-api`, dasselbe Cookie gegen `notifyprefs-api` verwendet → echtes Setzen und Lesen einer Präferenz. Testdaten anschließend entfernt. ## Build/Test-Ergebnis (192.168.1.131) ``` go build ./... -> clean go vet ./... -> clean golangci-lint run ./cmd/notifyprefs-api/... -> 0 issues ``` ## Gesamtergebnis **Bestanden.** CFG-04 ist jetzt ein real laufender, über systemd verwalteter Dienst, cross-service authentifiziert über dieselbe IAM-16-Session wie RBAC-07 — dritter erfolgreich real geprüfter Auth-geschützter Baustein der Core-GUI.