From 8f5b31c0cbbbd2bba446261c9d51d7548b22c7fe Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Mon, 12 Oct 2026 16:54:43 +0200 Subject: [PATCH 1/2] feat(benachrichtigung): E-Mail und Webhook bei Drift und Ablauf (#028) Drift, ablaufende und abgelaufene Schluessel, unerreichbare Hosts und geaenderte Host-Keys sollen auffallen, ohne dass jemand taeglich in die Oberflaeche schaut. Versand per SMTP (Microsoft 365, STARTTLS) und per Webhook mit HMAC-Signatur, eingestellt unter /einstellungen. Die Anlaesse liest der Worker aus der Datenbank, statt sie im Abgleich auszuloesen: der Abgleich-Ablauf bleibt unberuehrt, und ein verpasster Lauf holt sich der naechste. Ein Versandprotokoll (Zustellung) mit Anlass-Fingerabdruck verhindert Doppelmeldungen und haelt Fehlschlaege fuer begrenzte Wiederholungen fest. Taeglich eine Zusammenfassung, geaenderte Host-Keys im Fuenf-Minuten-Takt sofort. Versand und Testnachricht laufen im Worker, damit der Webprozess keinen Weg zu Mailserver oder Webhook-Ziel braucht. Passwort und Geheimnis liegen nur verschluesselt in der Datenbank; die Seite zeigt "gesetzt". Co-Authored-By: Claude Opus 5.5 --- .env.example | 9 + docker-compose.yml | 9 +- package.json | 2 + pnpm-lock.yaml | 19 + .../migration.sql | 36 ++ prisma/schema.prisma | 37 ++ src/app/(app)/einstellungen/page.tsx | 198 +++++++++- .../BenachrichtigungFormular.tsx | 366 ++++++++++++++++++ src/lib/benachrichtigung/einstellungen.ts | 141 +++++++ src/lib/benachrichtigung/nachrichten.ts | 346 +++++++++++++++++ src/lib/benachrichtigung/posten.ts | 69 ++++ src/lib/benachrichtigung/regeln.ts | 163 ++++++++ src/server/actions/einstellungen.ts | 66 ++++ src/server/queries/einstellungen.ts | 102 +++++ src/server/services/benachrichtigung.ts | 127 ++++++ src/server/vorgaenge/warteschlange.ts | 3 + src/worker/ablaeufe/benachrichtigung.ts | 21 + src/worker/benachrichtigung/anlaesse.ts | 182 +++++++++ src/worker/benachrichtigung/kanaele.ts | 122 ++++++ src/worker/benachrichtigung/versand.ts | 260 +++++++++++++ src/worker/handler.ts | 2 + src/worker/index.ts | 30 +- tests/benachrichtigung-nachrichten.test.ts | 197 ++++++++++ tests/benachrichtigung-regeln.test.ts | 194 ++++++++++ tests/benachrichtigung.test.ts | 354 +++++++++++++++++ tests/integration/benachrichtigung.test.ts | 200 ++++++++++ 26 files changed, 3243 insertions(+), 12 deletions(-) create mode 100644 prisma/migrations/20261012161000_benachrichtigungen/migration.sql create mode 100644 src/components/einstellungen/BenachrichtigungFormular.tsx create mode 100644 src/lib/benachrichtigung/einstellungen.ts create mode 100644 src/lib/benachrichtigung/nachrichten.ts create mode 100644 src/lib/benachrichtigung/posten.ts create mode 100644 src/lib/benachrichtigung/regeln.ts create mode 100644 src/server/actions/einstellungen.ts create mode 100644 src/server/queries/einstellungen.ts create mode 100644 src/server/services/benachrichtigung.ts create mode 100644 src/worker/ablaeufe/benachrichtigung.ts create mode 100644 src/worker/benachrichtigung/anlaesse.ts create mode 100644 src/worker/benachrichtigung/kanaele.ts create mode 100644 src/worker/benachrichtigung/versand.ts create mode 100644 tests/benachrichtigung-nachrichten.test.ts create mode 100644 tests/benachrichtigung-regeln.test.ts create mode 100644 tests/benachrichtigung.test.ts create mode 100644 tests/integration/benachrichtigung.test.ts diff --git a/.env.example b/.env.example index c820c32..d2abdb7 100644 --- a/.env.example +++ b/.env.example @@ -59,6 +59,10 @@ SSHKV_BREAKGLASS_PASSWORD= # --- Worker -------------------------------------------------------------------- # Zeitplan fuer den Abgleich aller Hosts (cron) SSHKV_SYNC_CRON=30 2 * * * +# Taegliche Zusammenfassung der Benachrichtigungen (cron, Europe/Berlin, #028). Geaenderte +# Host-Keys meldet der Worker unabhaengig davon alle fuenf Minuten. Kanaele und Anlaesse +# stellt ein Admin unter /einstellungen ein. +SSHKV_MELDUNG_CRON=0 7 * * * # --- Integrationstests (#011) --------------------------------------------------- # SSH-Testziele aus docker-compose.test.yml. Die Compose-Datei liest dieselben Variablen @@ -70,3 +74,8 @@ SSHKV_TEST_ROOT_PASSWORT=sshkv-test SSHKV_TEST_TEST_PASSWORT=sshkv-test # Mock-OIDC (Port-Bindung) SSHKV_TEST_OIDC=127.0.0.1:8090 +# Mailpit fuer tests/integration/benachrichtigung.test.ts (#028), getrennt zu starten: +# docker run -d --name sshkv-mailpit -e MP_SMTP_DISABLE_RDNS=true \ +# -p 127.0.0.1:1026:1025 -p 127.0.0.1:8026:8025 axllent/mailpit +SSHKV_TEST_SMTP=127.0.0.1:1026 +SSHKV_TEST_MAILPIT_API=http://127.0.0.1:8026 diff --git a/docker-compose.yml b/docker-compose.yml index dbb905e..4deeb8b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -64,6 +64,9 @@ services: SSHKV_OIDC_GROUP_ADMIN: ${SSHKV_OIDC_GROUP_ADMIN:-sshkv-admins} SSHKV_OIDC_GROUP_OPERATOR: ${SSHKV_OIDC_GROUP_OPERATOR:-sshkv-operators} SSHKV_OIDC_GROUP_READER: ${SSHKV_OIDC_GROUP_READER:-sshkv-readers} + # Nur zur Anzeige unter /einstellungen; ausgefuehrt werden die Zeitplaene im Worker. + SSHKV_SYNC_CRON: ${SSHKV_SYNC_CRON:-30 2 * * *} + SSHKV_MELDUNG_CRON: ${SSHKV_MELDUNG_CRON:-0 7 * * *} # Absichtlich KEIN Master-Key: eine Luecke im Webprozess allein entschluesselt keine # Private Keys. Nach aussen braucht er nur den OIDC-Anbieter. ports: @@ -94,9 +97,13 @@ services: SSHKV_APP_SECRET: ${SSHKV_APP_SECRET} SSHKV_MASTER_KEY_FILE: /run/secrets/master_key SSHKV_SYNC_CRON: ${SSHKV_SYNC_CRON:-30 2 * * *} + # Benachrichtigungen (#028): taegliche Zusammenfassung; Links in den Nachrichten zeigen + # auf SSHKV_APP_URL. Den Weg zu Mailserver und Webhook-Ziel hat der Worker ueber "aussen". + SSHKV_MELDUNG_CRON: ${SSHKV_MELDUNG_CRON:-0 7 * * *} + SSHKV_APP_URL: ${SSHKV_APP_URL} secrets: - master_key - # Der Worker braucht die Datenbank und den Weg zu den Hosts. + # Der Worker braucht die Datenbank und den Weg zu den Hosts (und zu Mailserver/Webhook). networks: [datenbank, aussen] healthcheck: test: ["CMD-SHELL", "pgrep -f dist/worker.mjs > /dev/null"] diff --git a/package.json b/package.json index 91cba34..9935630 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "jose": "^6.2.12", "lucide-react": "1.47.0", "next": "16.3.6", + "nodemailer": "10.0.10", "openid-client": "^6.8.8", "pg": "^8.23.1", "pg-boss": "^12.37.1", @@ -71,6 +72,7 @@ "@playwright/test": "1.63.0", "@tailwindcss/postcss": "^4.3.3", "@types/node": "^24.19.2", + "@types/nodemailer": "8.0.2", "@types/pg": "^8.23.1", "@types/qrcode": "^1.5.6", "@types/react": "^19.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0b4493..cb9691b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -199,6 +199,9 @@ importers: next: specifier: 16.3.6 version: 16.3.6(@babel/core@7.29.7(supports-color@7.2.0))(@opentelemetry/api@1.9.1)(@playwright/test@1.63.0)(@types/node@24.19.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + nodemailer: + specifier: 10.0.10 + version: 10.0.10 openid-client: specifier: ^6.8.8 version: 6.8.8 @@ -239,6 +242,9 @@ importers: '@types/node': specifier: ^24.19.2 version: 24.19.2 + '@types/nodemailer': + specifier: 8.0.2 + version: 8.0.2 '@types/pg': specifier: ^8.23.1 version: 8.23.1 @@ -1481,6 +1487,9 @@ packages: '@types/node@26.6.5': resolution: {integrity: sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==} + '@types/nodemailer@8.0.2': + resolution: {integrity: sha512-c7M5ox8p0nEOfbJ2E9Qcmt8/QCu/VzsiAhzBiZbvky2PhKZDHpKB3sQHBM5MEZNkCfBOaS6S9//AGPRTNB7IaA==} + '@types/pg@8.23.1': resolution: {integrity: sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A==} @@ -3067,6 +3076,10 @@ packages: resolution: {integrity: sha512-BdiKAgbfRlvfMq/XzO/AF9NPmaA8a+YpLAyAFTVFBj3gARrAIfWvNq7Q7NE4se3KgFu0KkrvQMxTS0XVnsGzHg==} engines: {node: '>=18'} + nodemailer@10.0.10: + resolution: {integrity: sha512-He9XskOFms62SyAKkLu8CcGcYHAo+BSHSsORI8s4PJH8qZgZY4L4lDfvyN0twvmbpyG+eGrxpyBlskj9d9rJ8A==} + engines: {node: '>=20.0.0'} + non-error@0.1.0: resolution: {integrity: sha512-TMB1uHiGsHRGv1uYclfhivcnf0/PdFp2pNqRxXjncaAsjYMoisaQJI+SSZCqRq+VliwRTC8tsMQfmrWjDMhkPQ==} engines: {node: '>=20'} @@ -4910,6 +4923,10 @@ snapshots: dependencies: undici-types: 8.9.0 + '@types/nodemailer@8.0.2': + dependencies: + '@types/node': 24.19.2 + '@types/pg@8.23.1': dependencies: '@types/node': 26.6.5 @@ -6625,6 +6642,8 @@ snapshots: node-releases@2.0.58: {} + nodemailer@10.0.10: {} + non-error@0.1.0: {} oauth4webapi@3.8.8: {} diff --git a/prisma/migrations/20261012161000_benachrichtigungen/migration.sql b/prisma/migrations/20261012161000_benachrichtigungen/migration.sql new file mode 100644 index 0000000..fb8f186 --- /dev/null +++ b/prisma/migrations/20261012161000_benachrichtigungen/migration.sql @@ -0,0 +1,36 @@ +-- #028: Benachrichtigungen. Versandprotokoll gegen Doppelmeldungen und eine Vorgangsart fuer +-- die Testnachricht (Versand laeuft im Worker). + +-- CreateEnum +CREATE TYPE "MeldungsKanal" AS ENUM ('EMAIL', 'WEBHOOK'); + +-- CreateEnum +CREATE TYPE "ZustellErgebnis" AS ENUM ('GESENDET', 'FEHLGESCHLAGEN'); + +-- AlterEnum +ALTER TYPE "VorgangsArt" ADD VALUE 'BENACHRICHTIGUNG_TEST'; + +-- CreateTable +CREATE TABLE "Zustellung" ( + "id" TEXT NOT NULL, + "anlass" TEXT NOT NULL, + "kanal" "MeldungsKanal" NOT NULL, + "ergebnis" "ZustellErgebnis" NOT NULL, + "fehler" TEXT, + "versuche" INTEGER NOT NULL DEFAULT 1, + "naechsterVersuchAm" TIMESTAMP(3), + "sendung" TEXT NOT NULL, + "betreff" TEXT NOT NULL, + "zeitpunkt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Zustellung_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "Zustellung_zeitpunkt_idx" ON "Zustellung"("zeitpunkt"); + +-- CreateIndex +CREATE INDEX "Zustellung_sendung_idx" ON "Zustellung"("sendung"); + +-- CreateIndex +CREATE UNIQUE INDEX "Zustellung_anlass_kanal_key" ON "Zustellung"("anlass", "kanal"); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 0e1e57b..07af2e3 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -114,6 +114,8 @@ enum VorgangsArt { ZIELKONTO_ANLEGEN /// sudoers und – falls von sshkv angelegt – den Benutzer entfernen (#018, #024). ZIELKONTO_ENTFERNEN + /// Testnachricht ueber einen Benachrichtigungskanal (#028). + BENACHRICHTIGUNG_TEST } enum VorgangsStatus { @@ -125,6 +127,17 @@ enum VorgangsStatus { ABGEBROCHEN } +/// Versandweg einer Benachrichtigung (#028). +enum MeldungsKanal { + EMAIL + WEBHOOK +} + +enum ZustellErgebnis { + GESENDET + FEHLGESCHLAGEN +} + enum ProtokollErgebnis { ERFOLG FEHLER @@ -496,6 +509,30 @@ model Einstellung { geaendertAm DateTime @updatedAt } +/// Versandprotokoll der Benachrichtigungen (#028): je Anlass und Kanal hoechstens eine Zeile. +/// Vor jedem Versand wird hiergegen geprueft – so meldet sshkv dieselbe Abweichung oder dieselbe +/// Ablaufstufe nie zweimal, auch wenn ein Zeitplan doppelt feuert oder der Worker neu startet. +model Zustellung { + id String @id @default(cuid()) + /// Fingerabdruck des Anlasses, z. B. drift:, ablauf::7:. + anlass String + kanal MeldungsKanal + ergebnis ZustellErgebnis + /// Kurzer Fehlertext ohne Zugangsdaten. + fehler String? + versuche Int @default(1) + /// Wann ein Fehlschlag fruehestens erneut versucht wird; leer = nicht mehr. + naechsterVersuchAm DateTime? + /// Gemeinsame Kennung aller Anlaesse einer Nachricht – die Oberflaeche zeigt je Nachricht eine Zeile. + sendung String + betreff String + zeitpunkt DateTime @default(now()) + + @@unique([anlass, kanal]) + @@index([zeitpunkt]) + @@index([sendung]) +} + /// Einfaches Rate-Limit fuer Anmeldung und Re-Auth (feste Fenster). model Ratenbegrenzung { schluessel String @id diff --git a/src/app/(app)/einstellungen/page.tsx b/src/app/(app)/einstellungen/page.tsx index ba45b29..75d92cd 100644 --- a/src/app/(app)/einstellungen/page.tsx +++ b/src/app/(app)/einstellungen/page.tsx @@ -1,18 +1,196 @@ +import { Inbox } from "lucide-react"; import type { Metadata } from "next"; -import { Platzhalterseite } from "@/components/huelle/Platzhalterseite"; +import type { ReactNode } from "react"; +import { BenachrichtigungFormular } from "@/components/einstellungen/BenachrichtigungFormular"; +import { Badge } from "@/components/ui/Badge"; +import { Karte } from "@/components/ui/Karte"; +import { Leerzustand } from "@/components/ui/Leerzustand"; +import { MonoKopieren } from "@/components/ui/MonoKopieren"; +import { Seitenkopf } from "@/components/ui/Seitenkopf"; +import { Tabelle, TabellenZeile, TabellenZelle } from "@/components/ui/Tabelle"; +import { datumZeit } from "@/lib/format"; +import { darf } from "@/server/auth/rechte"; import { sitzungErforderlich } from "@/server/auth/sitzungspflicht"; +import { einstellungenSeite, type Zeitplan, type ZustellungZeile } from "@/server/queries/einstellungen"; export const metadata: Metadata = { title: "Einstellungen" }; -export default async function Einstellungen() { - // Jede Seite prueft selbst; die Huelle ist nur das zweite Netz (CLAUDE.md). - await sitzungErforderlich(); +function Info({ titel, children }: { titel: string; children: ReactNode }) { return ( - +
+
{titel}
+
{children}
+
+ ); +} + +function Abschnitt({ titel, id, children }: { titel: string; id: string; children: ReactNode }) { + return ( +
+

+ {titel} +

+ {children} +
+ ); +} + +function ZeitplanAnzeige({ plan }: { plan: Zeitplan }) { + return ( + + {plan.beschreibung && {plan.beschreibung}} + {plan.ausdruck} + + ); +} + +const KANAL_TEXT = { EMAIL: "E-Mail", WEBHOOK: "Webhook" } as const; + +function Zustellungen({ zeilen }: { zeilen: readonly ZustellungZeile[] }) { + if (zeilen.length === 0) { + return ( + } + titel="Noch nichts versendet" + text="Hier erscheinen die letzten Zustellungen samt Ergebnis – auch Testnachrichten." + /> + ); + } + return ( + + {zeilen.map((z) => ( + + + + + {KANAL_TEXT[z.kanal]} + + {z.betreff} + + {z.anlaesse === 1 ? "1 Anlass" : `${z.anlaesse} Anlässe`} + {z.versuche > 1 && ` · ${z.versuche}. Versuch`} + + + + {z.ergebnis === "GESENDET" ? ( + gesendet + ) : ( + + fehlgeschlagen + {z.fehler && {z.fehler}} + + {z.naechsterVersuchAm + ? `neuer Versuch ab ${datumZeit(z.naechsterVersuchAm)}` + : "kein weiterer Versuch"} + + + )} + + + ))} + + ); +} + +/** Einstellungen (#028): lesen duerfen alle, aendern nur `einstellungenVerwalten` (Admin). */ +export default async function Einstellungen() { + // Jede Seite prueft selbst; die Huelle ist nur das zweite Netz (CLAUDE.md). + const { benutzer } = await sitzungErforderlich("lesen", "/einstellungen"); + const darfAendern = darf(benutzer.rolle, "einstellungenVerwalten"); + const seite = await einstellungenSeite(); + // Eine Webhook-Adresse traegt oft ein Token im Pfad – Leser sehen nur Schema und Host. + const ansicht = darfAendern + ? seite.benachrichtigung + : { + ...seite.benachrichtigung, + webhook: { ...seite.benachrichtigung.webhook, url: seite.webhookZiel ?? "" }, + }; + const { instanz } = seite; + + return ( +
+ + +
+ + + + + + + +
+ + +
+ + + + + + + alle 5 Minuten geprüft +
+

+ Zeitzone Europe/Berlin. Gesetzt über SSHKV_SYNC_CRON und{" "} + SSHKV_MELDUNG_CRON in der Umgebung des Workers. +

+
+
+ + {/* Platz fuer den Abschnitt „Syslog“ – folgt in einem eigenen Issue. */} + + + +
+ + {instanz.version} + + + {instanz.deploymentKey ? ( + + ) : ( + noch nicht erzeugt – läuft der Worker? + )} + + + {instanz.oidc.konfiguriert ? ( + instanz.oidc.name + ) : ( + nicht eingerichtet + )} + + + {!instanz.notfall.vorhanden ? ( + nicht angelegt + ) : instanz.notfall.totpEingerichtet ? ( + TOTP eingerichtet + ) : ( + TOTP noch nicht eingerichtet + )} + +
+
+
+
+
+
); } diff --git a/src/components/einstellungen/BenachrichtigungFormular.tsx b/src/components/einstellungen/BenachrichtigungFormular.tsx new file mode 100644 index 0000000..96f8a1e --- /dev/null +++ b/src/components/einstellungen/BenachrichtigungFormular.tsx @@ -0,0 +1,366 @@ +"use client"; + +import { Mail, Send, Webhook } from "lucide-react"; +import { startTransition, useActionState, useState, type FormEvent, type ReactNode } from "react"; +import { + Ankreuzfeld, + Badge, + Button, + Feld, + Feldgruppe, + Formularfehler, + Karte, + Textbereich, +} from "@/components/ui"; +import { VorgangsKnopf } from "@/components/vorgang/VorgangsKnopf"; +import type { BenachrichtigungAnsicht } from "@/lib/benachrichtigung/einstellungen"; +import { ANLAESSE, ANLASS_TEXT } from "@/lib/benachrichtigung/regeln"; +import { benachrichtigungSpeichernAktion, testSendenAktion } from "@/server/actions/einstellungen"; +import type { FormularZustand } from "@/server/actions/formular"; + +type Zustand = FormularZustand & { gespeichert?: boolean }; + +/** Fester Anfangszustand: ein neues `{}` je Render liesse den Vergleich unten nie zur Ruhe kommen. */ +const ANFANG: Zustand = {}; + +/** + * Benachrichtigungskanaele und Anlaesse (#028). Geheimnisse kommen nie zurueck in den Browser: + * die Felder starten leer, „gesetzt“ zeigt, dass ein Wert hinterlegt ist, und leer speichern + * laesst ihn unveraendert. + */ +export function BenachrichtigungFormular({ + ansicht, + darfAendern, +}: { + ansicht: BenachrichtigungAnsicht; + darfAendern: boolean; +}) { + const [zustand, ausfuehren, laeuft] = useActionState( + benachrichtigungSpeichernAktion, + ANFANG, + ); + // Nach dem Speichern neu aufbauen: Passwortfelder leeren sich, die Vorgaben kommen frisch + // vom Server (revalidatePath). Ueber `key` statt Formular-Reset, damit Fehlerfaelle die + // Eingaben behalten (Muster aus useFormularAktion, #008). + const [fassung, setFassung] = useState(0); + const [gemerkt, setGemerkt] = useState(zustand); + if (zustand !== gemerkt) { + setGemerkt(zustand); + if (zustand.gespeichert) setFassung((f) => f + 1); + } + + function absenden(ereignis: FormEvent) { + ereignis.preventDefault(); + const daten = new FormData(ereignis.currentTarget); + startTransition(() => ausfuehren(daten)); + } + + return ( +
+ + {zustand.gespeichert && !laeuft && ( +

+ Einstellungen gespeichert. +

+ )} + + {darfAendern && ( +
+ +
+ )} + + ); +} + +function Inhalt({ + ansicht, + darfAendern, + f, +}: { + ansicht: BenachrichtigungAnsicht; + darfAendern: boolean; + f: Record; +}) { + const [sicherheit, setSicherheit] = useState(ansicht.email.sicherheit); + const [httpErlaubt, setHttpErlaubt] = useState(ansicht.webhook.httpErlaubt); + const { email, webhook } = ansicht; + + return ( + // Leser sehen dieselben Felder, aber gesperrt und ohne Knoepfe. +
+ + E-Mail (SMTP) + + } + untertitel="Vorbelegt für Microsoft 365: smtp.office365.com, Port 587, STARTTLS." + aktionen={} + > +
+ +
+ + +
+ +
+ {( + [ + ["STARTTLS", "STARTTLS", "Port 587 – Microsoft 365"], + ["TLS", "TLS (SMTPS)", "Port 465"], + ["KEINE", "Unverschlüsselt", "nur internes Relay"], + ] as const + ).map(([wert, titel, erklaerung]) => ( + setSicherheit(wert)} + beschriftung={titel} + erklaerung={erklaerung} + /> + ))} +
+ {sicherheit === "KEINE" && ( + + Ohne Verschlüsselung gehen Zugangsdaten und Inhalt im Klartext über das Netz. Nur für ein + Relay im selben, vertrauenswürdigen Netz verwenden. + + )} +
+
+ + +
+ + + {darfAendern && } +
+
+ + + Webhook + + } + untertitel="JSON per POST, optional signiert mit X-Sshkv-Signatur: sha256=." + aktionen={} + > +
+ + +
+ setHttpErlaubt(e.currentTarget.checked)} + beschriftung="http:// für ein internes Ziel erlauben" + erklaerung="Sonst nimmt sshkv nur https://-Adressen an." + /> + {httpErlaubt && ( + + Über http:// sind Nutzlast und Signatur unterwegs lesbar und veränderbar. Nur für Ziele im + selben, vertrauenswürdigen Netz. + + )} +
+ + {darfAendern && } +
+
+ + + +
+ {ANLAESSE.map((anlass) => ( + + ))} +
+
+
+
+ ); +} + +function KanalStatus({ aktiv }: { aktiv: boolean }) { + return aktiv ? aktiv : aus; +} + +function Warnung({ children }: { children: ReactNode }) { + return ( +

+ ▲ {children} +

+ ); +} + +/** + * Passwort bzw. Geheimnis: nie vorbelegt. Ist ein Wert gesetzt, zeigt das Feld nur „gesetzt“; + * leer lassen behaelt ihn, das Ankreuzfeld entfernt ihn. + */ +function GeheimFeld({ + beschriftung, + name, + gesetzt, + darfAendern, + fehler, +}: { + beschriftung: string; + name: string; + gesetzt: boolean; + darfAendern: boolean; + fehler?: string | undefined; +}) { + if (!darfAendern) { + return ( +
+ {beschriftung} + {gesetzt ? gesetzt : nicht gesetzt} +
+ ); + } + return ( +
+ + gesetzt Wird verschlüsselt gespeichert und nie wieder angezeigt. + + ) : ( + "Wird verschlüsselt gespeichert und nie wieder angezeigt." + ) + } + fehler={fehler} + /> + {gesetzt && ( + + )} +
+ ); +} + +function TestKnopf({ kanal }: { kanal: "EMAIL" | "WEBHOOK" }) { + return ( +
+

+ Die Testnachricht nutzt den gespeicherten Stand – + erst speichern, dann testen. Der Versand läuft im Worker. +

+ testSendenAktion(kanal)} + beschriftung="Testnachricht senden" + icon={} + /> +
+ ); +} diff --git a/src/lib/benachrichtigung/einstellungen.ts b/src/lib/benachrichtigung/einstellungen.ts new file mode 100644 index 0000000..bc25c0f --- /dev/null +++ b/src/lib/benachrichtigung/einstellungen.ts @@ -0,0 +1,141 @@ +import { z } from "@/lib/validierung"; +import { ANLAESSE, webhookUrlPruefen, type AnlassArt } from "./regeln"; + +/** + * Form der Benachrichtigungs-Einstellungen (#028). Gespeichert als JSON in `Einstellung` + * unter EINSTELLUNG_BENACHRICHTIGUNG; Passwort und Webhook-Geheimnis liegen dort nur + * verschluesselt (`verschluesseln()` mit SSHKV_APP_SECRET). + */ +export const EINSTELLUNG_BENACHRICHTIGUNG = "benachrichtigungen"; + +/** STARTTLS ist der Weg von Microsoft 365 (Port 587); KEINE nur fuer interne Relays. */ +export const SMTP_SICHERHEIT = ["STARTTLS", "TLS", "KEINE"] as const; +export type SmtpSicherheit = (typeof SMTP_SICHERHEIT)[number]; + +export type GespeicherteBenachrichtigung = { + email: { + aktiv: boolean; + server: string; + port: number; + sicherheit: SmtpSicherheit; + absender: string; + benutzer: string; + /** Chiffrat aus `verschluesseln()` oder null. */ + passwort: string | null; + empfaenger: string[]; + }; + webhook: { + aktiv: boolean; + url: string; + httpErlaubt: boolean; + /** Chiffrat aus `verschluesseln()` oder null. */ + geheimnis: string | null; + }; + anlaesse: Record; +}; + +/** Vorbelegung fuer Microsoft 365 – alles aus, bis ein Admin es einschaltet. */ +export const STANDARD_BENACHRICHTIGUNG: GespeicherteBenachrichtigung = { + email: { + aktiv: false, + server: "smtp.office365.com", + port: 587, + sicherheit: "STARTTLS", + absender: "", + benutzer: "", + passwort: null, + empfaenger: [], + }, + webhook: { aktiv: false, url: "", httpErlaubt: false, geheimnis: null }, + anlaesse: { drift: true, ablauf: true, abgelaufen: true, unerreichbar: true, hostkey: true }, +}; + +/** + * Was die Oberflaeche sehen darf: statt der Geheimnisse nur, ob sie gesetzt sind. Auch das + * Chiffrat geht nicht in Client-Props – es waere mit SSHKV_APP_SECRET lesbar. + */ +export type BenachrichtigungAnsicht = { + email: Omit & { passwortGesetzt: boolean }; + webhook: Omit & { geheimnisGesetzt: boolean }; + anlaesse: Record; +}; + +export function alsAnsicht(gespeichert: GespeicherteBenachrichtigung): BenachrichtigungAnsicht { + const { passwort, ...email } = gespeichert.email; + const { geheimnis, ...webhook } = gespeichert.webhook; + return { + email: { ...email, passwortGesetzt: passwort !== null }, + webhook: { ...webhook, geheimnisGesetzt: geheimnis !== null }, + anlaesse: { ...gespeichert.anlaesse }, + }; +} + +/** Liest gespeichertes JSON tolerant: fehlende Felder bekommen die Vorbelegung. */ +export function gespeichertLesen(wert: unknown): GespeicherteBenachrichtigung { + const roh = ( + typeof wert === "object" && wert !== null ? wert : {} + ) as Partial; + const s = STANDARD_BENACHRICHTIGUNG; + return { + email: { ...s.email, ...(roh.email ?? {}) }, + webhook: { ...s.webhook, ...(roh.webhook ?? {}) }, + anlaesse: { ...s.anlaesse, ...(roh.anlaesse ?? {}) }, + }; +} + +// ---------------------------------------------------------------- Formular + +/** Empfaengerliste: Komma, Semikolon, Leerzeichen oder Zeilenumbruch trennen. */ +export function empfaengerAus(text: string): string[] { + return [ + ...new Set( + text + .split(/[\s,;]+/) + .map((e) => e.trim()) + .filter(Boolean), + ), + ]; +} + +const email = z.email({ error: "Keine gültige E-Mail-Adresse." }); + +export const benachrichtigungSchema = z + .object({ + emailAktiv: z.boolean(), + emailServer: z.string().trim().max(253), + emailPort: z.coerce.number().int().min(1, "Port 1–65535.").max(65535, "Port 1–65535."), + emailSicherheit: z.enum(SMTP_SICHERHEIT), + emailAbsender: z.string().trim().max(254), + emailBenutzer: z.string().trim().max(254), + /** Leer = unveraendert lassen. */ + emailPasswort: z.string().max(1024).optional(), + emailPasswortEntfernen: z.boolean(), + emailEmpfaenger: z.array(z.string()).max(50, "Höchstens 50 Empfänger."), + webhookAktiv: z.boolean(), + webhookUrl: z.string().trim().max(2048), + webhookHttpErlaubt: z.boolean(), + webhookGeheimnis: z.string().max(1024).optional(), + webhookGeheimnisEntfernen: z.boolean(), + anlaesse: z.array(z.enum(ANLAESSE)), + }) + .superRefine((e, ctx) => { + const fehler = (pfad: string, message: string) => ctx.addIssue({ code: "custom", path: [pfad], message }); + if (e.emailAktiv && !e.emailServer) fehler("emailServer", "Server angeben."); + if (e.emailServer && !/^[A-Za-z0-9.-]+$/.test(e.emailServer)) + fehler("emailServer", "Nur Hostname oder IP."); + if (e.emailAktiv && !e.emailAbsender) fehler("emailAbsender", "Absender angeben."); + if (e.emailAbsender && !email.safeParse(e.emailAbsender).success) + fehler("emailAbsender", "Keine gültige E-Mail-Adresse."); + if (e.emailAktiv && e.emailEmpfaenger.length === 0) + fehler("emailEmpfaenger", "Mindestens ein Empfänger."); + const falsch = e.emailEmpfaenger.find((a) => !email.safeParse(a).success); + if (falsch) fehler("emailEmpfaenger", `„${falsch.slice(0, 80)}“ ist keine gültige E-Mail-Adresse.`); + if (e.webhookAktiv && !e.webhookUrl) fehler("webhookUrl", "Adresse angeben."); + if (e.webhookUrl) { + const meldung = webhookUrlPruefen(e.webhookUrl, e.webhookHttpErlaubt); + if (meldung) fehler("webhookUrl", meldung); + } + }); + +export type BenachrichtigungEingabe = z.input; +export type BenachrichtigungDaten = z.output; diff --git a/src/lib/benachrichtigung/nachrichten.ts b/src/lib/benachrichtigung/nachrichten.ts new file mode 100644 index 0000000..79c15b2 --- /dev/null +++ b/src/lib/benachrichtigung/nachrichten.ts @@ -0,0 +1,346 @@ +import { createHmac } from "node:crypto"; +import { datum, datumZeit } from "@/lib/format"; +import { PRODUKTNAME } from "@/lib/version"; + +/** + * Nachrichtenaufbau der Benachrichtigungen (#028): Betreff, Text- und HTML-Mail auf Deutsch + * und die JSON-Nutzlast des Webhooks – aus denselben Daten, damit beide Wege dasselbe sagen. + * + * Alles, was in HTML landet, stammt teils von den Hosts (Kommentare in authorized_keys, + * Benutzernamen) und wird deshalb maskiert. Schlichtes HTML mit Inline-Stilen, weil + * E-Mail-Programme Stylesheets ignorieren (Muster aus ProxLedger). + */ + +export const ART_TEXT: Readonly> = { + UNBEKANNTER_SCHLUESSEL: "Unbekannter Schlüssel", + FEHLENDER_SCHLUESSEL: "Schlüssel fehlt", + ZUSAETZLICH_IM_BLOCK: "Block von Hand geändert", + DATEI_GEAENDERT: "Block beschädigt", + RECHTE: "Rechte", + HOSTKEY_GEAENDERT: "Host-Key geändert", + PRIVATE_KEY_FEHLT: "Private Key fehlt/verändert", +}; + +export type Befund = { + readonly art: string; + readonly zielbenutzer: string | null; + readonly fingerprint: string | null; + readonly text: string | null; +}; + +export type HostDrift = { + readonly hostId: string; + readonly name: string; + readonly adresse: string; + readonly befunde: readonly Befund[]; +}; + +export type HostUnerreichbar = { + readonly hostId: string; + readonly name: string; + readonly adresse: string; + readonly zuletztGeprueftAm: Date | null; + readonly letzterAbgleichAm: Date | null; +}; + +export type SchluesselAblauf = { + readonly schluesselId: string; + readonly name: string; + readonly fingerprint: string; + readonly ablaufAm: Date; + readonly tage: number; + readonly stufe: number; +}; + +export type SchluesselAbgelaufen = { + readonly schluesselId: string; + readonly name: string; + readonly fingerprint: string; + readonly ablaufAm: Date; + readonly hosts: readonly string[]; +}; + +export type Zusammenfassung = { + readonly drift: readonly HostDrift[]; + readonly unerreichbar: readonly HostUnerreichbar[]; + readonly ablauf: readonly SchluesselAblauf[]; + readonly abgelaufen: readonly SchluesselAbgelaufen[]; +}; + +export type HostKeyAenderung = { + readonly hostId: string; + readonly name: string; + readonly adresse: string; + readonly befunde: readonly { algorithmus: string; erwartet: string | null; gesehen: string }[]; +}; + +export type WebhookNutzlast = { + readonly ereignis: "zusammenfassung" | "hostkey.geaendert" | "test"; + readonly zeitstempel: string; + readonly instanz: string; + readonly [weiteres: string]: unknown; +}; + +export type Nachricht = { + readonly betreff: string; + readonly text: string; + readonly html: string; + readonly nutzlast: WebhookNutzlast; +}; + +export type Rahmen = { readonly appUrl: string; readonly jetzt: Date }; + +// ---------------------------------------------------------------- Hilfen + +export function html(text: string): string { + return text + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); +} + +function basis(appUrl: string): string { + return appUrl.replace(/\/+$/, ""); +} + +function mehrzahl(anzahl: number, eins: string, viele: string): string { + return `${anzahl} ${anzahl === 1 ? eins : viele}`; +} + +function htmlRahmen(inhalt: string, appUrl: string, linkText: string, pfad: string): string { + return ` +
+
+ ${PRODUKTNAME} + · Benachrichtigung +
+ ${inhalt} +

+ ${html(linkText)} +

+
`; +} + +function befundZeile(b: Befund): string { + const teile = [ART_TEXT[b.art] ?? b.art]; + if (b.zielbenutzer) teile.push(`Benutzer ${b.zielbenutzer}`); + if (b.fingerprint) teile.push(b.fingerprint); + if (b.text) teile.push(b.text); + return teile.join(" – "); +} + +function befundJson(b: Befund) { + return { + art: b.art, + artText: ART_TEXT[b.art] ?? b.art, + zielbenutzer: b.zielbenutzer, + fingerprint: b.fingerprint, + text: b.text, + }; +} + +const H3 = 'style="font-size:16px;margin:20px 0 6px"'; +const UL = 'style="margin:4px 0 12px;padding-left:20px"'; +const MONO = "font-family:'JetBrains Mono',Consolas,monospace;font-size:13px"; + +// ---------------------------------------------------------------- Zusammenfassung + +export function zusammenfassungLeer(z: Zusammenfassung): boolean { + return z.drift.length + z.unerreichbar.length + z.ablauf.length + z.abgelaufen.length === 0; +} + +/** Tägliche Zusammenfassung der Anlaesse (a)–(d). */ +export function zusammenfassungNachricht(z: Zusammenfassung, rahmen: Rahmen): Nachricht { + const befundAnzahl = z.drift.reduce((summe, h) => summe + h.befunde.length, 0); + const kopf: string[] = []; + if (befundAnzahl > 0) kopf.push(mehrzahl(befundAnzahl, "neue Abweichung", "neue Abweichungen")); + if (z.unerreichbar.length > 0) + kopf.push(mehrzahl(z.unerreichbar.length, "Host nicht erreichbar", "Hosts nicht erreichbar")); + if (z.ablauf.length > 0) kopf.push(mehrzahl(z.ablauf.length, "Schlüssel läuft ab", "Schlüssel laufen ab")); + if (z.abgelaufen.length > 0) + kopf.push( + mehrzahl(z.abgelaufen.length, "abgelaufener Schlüssel ausgerollt", "abgelaufene Schlüssel ausgerollt"), + ); + const betreff = `[sshkv] Zusammenfassung: ${kopf.join(", ") || "keine neuen Meldungen"}`; + const url = basis(rahmen.appUrl); + + const text: string[] = [`${PRODUKTNAME} – Zusammenfassung vom ${datumZeit(rahmen.jetzt)}`, ""]; + const teile: string[] = [ + `

Zusammenfassung vom ${html(datumZeit(rahmen.jetzt))}

`, + ]; + + if (z.drift.length > 0) { + text.push("Neue Abweichungen (Drift):"); + teile.push(`

Neue Abweichungen (Drift)

`); + for (const host of z.drift) { + text.push(` ${host.name} (${host.adresse}):`); + for (const b of host.befunde) text.push(` · ${befundZeile(b)}`); + text.push(` ${url}/hosts/${host.hostId}`); + teile.push( + `

${html(host.name)} ${html(host.adresse)}

`, + `
    ${host.befunde.map((b) => `
  • ${html(befundZeile(b))}
  • `).join("")}
`, + ); + } + text.push(""); + } + + if (z.unerreichbar.length > 0) { + text.push("Hosts nicht erreichbar:"); + teile.push(`

Hosts nicht erreichbar

    `); + for (const host of z.unerreichbar) { + const zuletzt = host.letzterAbgleichAm + ? `letzter erfolgreicher Abgleich ${datumZeit(host.letzterAbgleichAm)}` + : "noch nie erfolgreich abgeglichen"; + text.push(` · ${host.name} (${host.adresse}) – ${zuletzt}`); + teile.push( + `
  • ${html(host.name)} (${html(host.adresse)}) – ${html(zuletzt)}
  • `, + ); + } + teile.push("
"); + text.push(""); + } + + if (z.ablauf.length > 0) { + text.push("Bald ablaufende Schlüssel:"); + teile.push(`

Bald ablaufende Schlüssel

    `); + for (const s of z.ablauf) { + const wann = `läuft am ${datum(s.ablaufAm)} ab (${s.tage === 1 ? "in 1 Tag" : `in ${s.tage} Tagen`})`; + text.push(` · ${s.name} – ${wann}`, ` ${s.fingerprint}`); + teile.push( + `
  • ${html(s.name)} – ${html(wann)}
    ${html(s.fingerprint)}
  • `, + ); + } + teile.push("
"); + text.push(""); + } + + if (z.abgelaufen.length > 0) { + text.push("Abgelaufen, aber noch ausgerollt:"); + teile.push(`

Abgelaufen, aber noch ausgerollt

    `); + for (const s of z.abgelaufen) { + const wo = s.hosts.length > 0 ? `noch auf ${s.hosts.join(", ")}` : "noch ausgerollt"; + text.push(` · ${s.name} – abgelaufen am ${datum(s.ablaufAm)}, ${wo}`, ` ${s.fingerprint}`); + teile.push( + `
  • ${html(s.name)} – abgelaufen am ${html(datum(s.ablaufAm))}, ${html(wo)}
    ${html(s.fingerprint)}
  • `, + ); + } + teile.push("
"); + text.push(""); + } + + text.push(`Übersicht: ${url}/`); + + return { + betreff, + text: text.join("\n"), + html: htmlRahmen(teile.join("\n"), rahmen.appUrl, "Übersicht öffnen", "/"), + nutzlast: { + ereignis: "zusammenfassung", + zeitstempel: rahmen.jetzt.toISOString(), + instanz: url, + drift: z.drift.map((h) => ({ + host: { id: h.hostId, name: h.name, adresse: h.adresse }, + befunde: h.befunde.map(befundJson), + })), + unerreichbar: z.unerreichbar.map((h) => ({ + host: { id: h.hostId, name: h.name, adresse: h.adresse }, + zuletztGeprueftAm: h.zuletztGeprueftAm?.toISOString() ?? null, + letzterAbgleichAm: h.letzterAbgleichAm?.toISOString() ?? null, + })), + ablauf: z.ablauf.map((s) => ({ + schluessel: { id: s.schluesselId, name: s.name, fingerprint: s.fingerprint }, + ablaufAm: s.ablaufAm.toISOString(), + tage: s.tage, + stufe: s.stufe, + })), + abgelaufen: z.abgelaufen.map((s) => ({ + schluessel: { id: s.schluesselId, name: s.name, fingerprint: s.fingerprint }, + ablaufAm: s.ablaufAm.toISOString(), + hosts: [...s.hosts], + })), + }, + }; +} + +// ---------------------------------------------------------------- Host-Key (sofort) + +/** Dringende Einzelmeldung (e) je Host. */ +export function hostKeyNachricht(h: HostKeyAenderung, rahmen: Rahmen): Nachricht { + const url = `${basis(rahmen.appUrl)}/hosts/${h.hostId}`; + const betreff = `[sshkv] DRINGEND: Host-Key von ${h.name} hat sich geändert`; + const zeilen = h.befunde.map( + (b) => `${b.algorithmus}: erwartet ${b.erwartet ?? "(unbekannt)"}, gesehen ${b.gesehen}`, + ); + const text = [ + `Der Host-Key von ${h.name} (${h.adresse}) hat sich geändert.`, + "", + ...zeilen.map((z) => ` · ${z}`), + "", + "sshkv verbindet sich mit diesem Host nicht mehr, bis jemand den neuen Key geprüft und", + "bestätigt hat. Ist die Änderung nicht erklärbar (Neuinstallation, Austausch), kann ein", + "Angreifer zwischen sshkv und dem Host sitzen.", + "", + url, + ].join("\n"); + const inhalt = `

Dringend

+

Host-Key von ${html(h.name)} geändert

+

${html(h.adresse)}

+
    ${zeilen.map((z) => `
  • ${html(z)}
  • `).join("")}
+

sshkv verbindet sich mit diesem Host nicht mehr, bis jemand den neuen Key geprüft und bestätigt hat. Ist die Änderung nicht erklärbar (Neuinstallation, Austausch), kann ein Angreifer zwischen sshkv und dem Host sitzen.

`; + return { + betreff, + text, + html: htmlRahmen(inhalt, rahmen.appUrl, "Host öffnen und Key prüfen", `/hosts/${h.hostId}`), + nutzlast: { + ereignis: "hostkey.geaendert", + dringend: true, + zeitstempel: rahmen.jetzt.toISOString(), + instanz: basis(rahmen.appUrl), + host: { id: h.hostId, name: h.name, adresse: h.adresse }, + befunde: h.befunde.map((b) => ({ + art: "HOSTKEY_GEAENDERT", + artText: ART_TEXT["HOSTKEY_GEAENDERT"], + algorithmus: b.algorithmus, + erwartet: b.erwartet, + fingerprint: b.gesehen, + })), + }, + }; +} + +// ---------------------------------------------------------------- Test + +export function testNachricht(kanal: "EMAIL" | "WEBHOOK", rahmen: Rahmen): Nachricht { + const weg = kanal === "EMAIL" ? "E-Mail" : "Webhook"; + const satz = `Diese Testnachricht bestätigt, dass der Versand per ${weg} funktioniert.`; + return { + betreff: "[sshkv] Testnachricht", + text: `${satz}\nGesendet am ${datumZeit(rahmen.jetzt)}.\n\n${basis(rahmen.appUrl)}/einstellungen`, + html: htmlRahmen( + `

Testnachricht

${html(satz)}

Gesendet am ${html(datumZeit(rahmen.jetzt))}.

`, + rahmen.appUrl, + "Einstellungen öffnen", + "/einstellungen", + ), + nutzlast: { + ereignis: "test", + zeitstempel: rahmen.jetzt.toISOString(), + instanz: basis(rahmen.appUrl), + text: satz, + }, + }; +} + +// ---------------------------------------------------------------- Webhook + +/** Der Body wird genau einmal serialisiert – signiert wird, was auch gesendet wird. */ +export function webhookKoerper(nachricht: Nachricht): string { + return JSON.stringify({ betreff: nachricht.betreff, ...nachricht.nutzlast }); +} + +/** `X-Sshkv-Signatur: sha256=` – HMAC-SHA256 ueber den rohen Body. */ +export function signatur(koerper: string, geheimnis: string): string { + return `sha256=${createHmac("sha256", geheimnis).update(koerper, "utf8").digest("hex")}`; +} diff --git a/src/lib/benachrichtigung/posten.ts b/src/lib/benachrichtigung/posten.ts new file mode 100644 index 0000000..8d1262c --- /dev/null +++ b/src/lib/benachrichtigung/posten.ts @@ -0,0 +1,69 @@ +import type { + Befund, + HostKeyAenderung, + HostUnerreichbar, + SchluesselAbgelaufen, + SchluesselAblauf, + Zusammenfassung, +} from "./nachrichten"; + +/** + * Ein einzelner meldbarer Anlass mit seinem Fingerabdruck (#028). Der Worker sammelt Posten + * aus der Datenbank, filtert sie je Kanal gegen das Versandprotokoll und baut aus dem Rest + * eine Nachricht – so kann ein Kanal nachholen, was nur bei ihm fehlgeschlagen ist. + */ +type HostKurz = { readonly hostId: string; readonly name: string; readonly adresse: string }; + +export type Posten = + | { readonly art: "drift"; readonly anlass: string; readonly host: HostKurz; readonly befund: Befund } + | { readonly art: "unerreichbar"; readonly anlass: string; readonly host: HostUnerreichbar } + | { readonly art: "ablauf"; readonly anlass: string; readonly schluessel: SchluesselAblauf } + | { readonly art: "abgelaufen"; readonly anlass: string; readonly schluessel: SchluesselAbgelaufen } + | { + readonly art: "hostkey"; + readonly anlass: string; + readonly host: HostKurz; + readonly befund: HostKeyAenderung["befunde"][number]; + }; + +/** Fasst die Posten (a)–(d) zusammen; Drift je Host gruppiert, Reihenfolge nach Hostname. */ +export function zusammenfassungAus(posten: readonly Posten[]): Zusammenfassung { + const drift = new Map(); + const unerreichbar: HostUnerreichbar[] = []; + const ablauf: SchluesselAblauf[] = []; + const abgelaufen: SchluesselAbgelaufen[] = []; + for (const p of posten) { + if (p.art === "drift") { + const eintrag = drift.get(p.host.hostId) ?? { host: p.host, befunde: [] }; + eintrag.befunde.push(p.befund); + drift.set(p.host.hostId, eintrag); + } else if (p.art === "unerreichbar") unerreichbar.push(p.host); + else if (p.art === "ablauf") ablauf.push(p.schluessel); + else if (p.art === "abgelaufen") abgelaufen.push(p.schluessel); + } + const nachName = (a: { name: string }, b: { name: string }) => a.name.localeCompare(b.name, "de"); + return { + drift: [...drift.values()].map((d) => ({ ...d.host, befunde: d.befunde })).sort(nachName), + unerreichbar: unerreichbar.sort(nachName), + ablauf: ablauf.sort((a, b) => a.ablaufAm.getTime() - b.ablaufAm.getTime()), + abgelaufen: abgelaufen.sort(nachName), + }; +} + +/** Host-Key-Posten (e) je Host – jeder Host bekommt seine eigene dringende Nachricht. */ +export function hostKeyGruppen( + posten: readonly Posten[], +): { aenderung: HostKeyAenderung; anlaesse: string[] }[] { + const gruppen = new Map< + string, + { aenderung: HostKeyAenderung & { befunde: HostKeyAenderung["befunde"][number][] }; anlaesse: string[] } + >(); + for (const p of posten) { + if (p.art !== "hostkey") continue; + const gruppe = gruppen.get(p.host.hostId) ?? { aenderung: { ...p.host, befunde: [] }, anlaesse: [] }; + gruppe.aenderung.befunde.push(p.befund); + gruppe.anlaesse.push(p.anlass); + gruppen.set(p.host.hostId, gruppe); + } + return [...gruppen.values()]; +} diff --git a/src/lib/benachrichtigung/regeln.ts b/src/lib/benachrichtigung/regeln.ts new file mode 100644 index 0000000..5f39176 --- /dev/null +++ b/src/lib/benachrichtigung/regeln.ts @@ -0,0 +1,163 @@ +import { tageBis } from "@/lib/format"; + +/** + * Regeln der Benachrichtigungen (#028), rein und ohne Datenbank – damit Stufen, + * Fingerabdruecke und Wiederholungen als Unit-Test festgehalten werden koennen. + */ + +/** Die fuenf Anlaesse; je Anlass in den Einstellungen ein- und ausschaltbar. */ +export const ANLAESSE = ["drift", "ablauf", "abgelaufen", "unerreichbar", "hostkey"] as const; +export type AnlassArt = (typeof ANLAESSE)[number]; + +export const ANLASS_TEXT: Readonly> = { + drift: { + titel: "Neue Abweichungen (Drift)", + erklaerung: "Nach dem Abgleich neu gefundene Befunde, je Host zusammengefasst.", + }, + ablauf: { + titel: "Ablaufende Schlüssel", + erklaerung: "30, 14 und 7 Tage vor dem Ablauf – je Stufe genau eine Meldung.", + }, + abgelaufen: { + titel: "Abgelaufene, noch ausgerollte Schlüssel", + erklaerung: "Abgelaufen, aber noch auf mindestens einem Host hinterlegt.", + }, + unerreichbar: { + titel: "Host nicht erreichbar", + erklaerung: "Einmal je Ausfall, bis wieder ein Abgleich gelingt.", + }, + hostkey: { + titel: "Geänderter Host-Key", + erklaerung: "Dringend: wird sofort gemeldet, nicht erst in der Zusammenfassung.", + }, +}; + +/** Ablaufstufen in Tagen, absteigend. */ +export const ABLAUF_STUFEN = [30, 14, 7] as const; +export type AblaufStufe = (typeof ABLAUF_STUFEN)[number]; + +/** + * Die Stufe, in der ein Schluessel gerade steht: die kleinste Stufe, deren Frist schon + * erreicht ist. Wer erst mit 10 Tagen Restlaufzeit angelegt wird, bekommt also die + * 14-Tage-Meldung und spaeter die 7-Tage-Meldung, aber nie nachtraeglich die 30-Tage-Meldung. + * Gezaehlt wird in Kalendertagen (Europe/Berlin) wie ueberall in der Oberflaeche. + */ +export function ablaufStufe(ablaufAm: Date, jetzt: Date = new Date()): AblaufStufe | null { + if (ablaufAm.getTime() <= jetzt.getTime()) return null; + const tage = tageBis(ablaufAm, jetzt); + for (const stufe of [...ABLAUF_STUFEN].reverse()) { + if (tage <= stufe) return stufe; + } + return null; +} + +function tag(wert: Date): string { + return wert.toISOString().slice(0, 10); +} + +/** + * Fingerabdruecke der Anlaesse – Schluessel des Versandprotokolls. Was hier gleich ist, wird + * nur einmal gemeldet. Beim Ablauf steht das Ablaufdatum mit drin: wird ein Schluessel + * verlaengert, beginnen die Stufen fuer das neue Datum von vorn. + */ +export const fingerabdruck = { + drift: (abweichungId: string) => `drift:${abweichungId}`, + hostkey: (abweichungId: string) => `hostkey:${abweichungId}`, + ablauf: (schluesselId: string, stufe: AblaufStufe, ablaufAm: Date) => + `ablauf:${schluesselId}:${stufe}:${tag(ablaufAm)}`, + abgelaufen: (schluesselId: string, ablaufAm: Date) => `abgelaufen:${schluesselId}:${tag(ablaufAm)}`, + // `letzterAbgleichAm` aendert sich nur bei einem gelungenen Abgleich – so entsteht genau eine + // Meldung je Ausfall, und nach der Erholung kann der naechste Ausfall wieder gemeldet werden. + unerreichbar: (hostId: string, letzterAbgleichAm: Date | null) => + `unerreichbar:${hostId}:${letzterAbgleichAm ? letzterAbgleichAm.toISOString() : "nie"}`, + test: (sendung: string) => `test:${sendung}`, +} as const; + +// ---------------------------------------------------------------- Wiederholungen + +/** Nach so vielen Fehlversuchen gibt sshkv eine Zustellung auf. */ +export const MAX_VERSUCHE = 5; + +/** 5, 10, 20, 40 Minuten – kurz genug fuer einen kurzen Ausfall des Mailservers. */ +export function naechsterVersuch(versuche: number, jetzt: Date = new Date()): Date | null { + if (versuche >= MAX_VERSUCHE) return null; + return new Date(jetzt.getTime() + 5 * 60_000 * 2 ** (versuche - 1)); +} + +export type ProtokollStand = { + readonly ergebnis: "GESENDET" | "FEHLGESCHLAGEN"; + readonly versuche: number; + readonly naechsterVersuchAm: Date | null; +}; + +/** + * Darf ein Anlass ueber einen Kanal (erneut) gemeldet werden? + * - noch nie versucht: ja, ausser es laeuft nur eine Wiederholungsrunde; + * - einmal erfolgreich: nie wieder; + * - fehlgeschlagen: wenn die Wartezeit um ist und noch Versuche uebrig sind. + */ +export function anlassFaellig( + stand: ProtokollStand | undefined, + jetzt: Date = new Date(), + nurWiederholungen = false, +): boolean { + if (!stand) return !nurWiederholungen; + if (stand.ergebnis === "GESENDET") return false; + if (stand.versuche >= MAX_VERSUCHE || !stand.naechsterVersuchAm) return false; + return stand.naechsterVersuchAm.getTime() <= jetzt.getTime(); +} + +// ---------------------------------------------------------------- Webhook-Ziel + +/** + * Nur https, ausser `http` ist ausdruecklich erlaubt (internes Ziel). Liefert eine Meldung + * fuer das Formular oder null. + */ +export function webhookUrlPruefen(url: string, httpErlaubt: boolean): string | null { + let ziel: URL; + try { + ziel = new URL(url); + } catch { + return "Keine gültige Adresse."; + } + if (ziel.username || ziel.password) { + return "Zugangsdaten gehören nicht in die Adresse – bitte das Geheimnis-Feld nutzen."; + } + if (ziel.protocol === "https:") return null; + if (ziel.protocol === "http:") { + return httpErlaubt ? null : "Nur https:// – http:// nur mit dem Häkchen für interne Ziele."; + } + return "Nur https:// (oder ausdrücklich erlaubtes http://)."; +} + +/** Fuer Protokoll und Versandliste: nur Schema und Host, nie Pfad oder Query (Tokens). */ +export function webhookZielKurz(url: string): string { + try { + const ziel = new URL(url); + return `${ziel.protocol}//${ziel.host}`; + } catch { + return "(ungültige Adresse)"; + } +} + +// ---------------------------------------------------------------- Zeitplaene + +/** + * Lesbare Fassung der gaengigen cron-Formen fuer die Einstellungsseite; bei allem anderen + * null – dann zeigt die Seite nur den Ausdruck. + */ +export function cronBeschreiben(ausdruck: string): string | null { + const teile = ausdruck.trim().split(/\s+/); + if (teile.length !== 5) return null; + const [minute, stunde, tagImMonat, monat, wochentag] = teile as [string, string, string, string, string]; + const zahl = (wert: string, max: number) => /^\d{1,2}$/.test(wert) && Number(wert) <= max; + const intervall = /^\*\/(\d{1,2})$/.exec(minute); + if (intervall && stunde === "*" && tagImMonat === "*" && monat === "*" && wochentag === "*") { + return `alle ${Number(intervall[1])} Minuten`; + } + if (!zahl(minute, 59) || !zahl(stunde, 23) || tagImMonat !== "*" || monat !== "*") return null; + const uhr = `${stunde.padStart(2, "0")}:${minute.padStart(2, "0")} Uhr`; + if (wochentag === "*") return `täglich um ${uhr}`; + if (wochentag === "1-5") return `werktags um ${uhr}`; + return null; +} diff --git a/src/server/actions/einstellungen.ts b/src/server/actions/einstellungen.ts new file mode 100644 index 0000000..15423c6 --- /dev/null +++ b/src/server/actions/einstellungen.ts @@ -0,0 +1,66 @@ +"use server"; + +import { revalidatePath } from "next/cache"; +import { empfaengerAus, type BenachrichtigungEingabe } from "@/lib/benachrichtigung/einstellungen"; +import { ANLAESSE, type AnlassArt } from "@/lib/benachrichtigung/regeln"; +import { + akteurVon, + fehlerZustand, + listenfeld, + textfeld, + type FormularZustand, +} from "@/server/actions/formular"; +import { RechteFehler, rechtErforderlich } from "@/server/auth/sitzungspflicht"; +import { benachrichtigungSpeichern, testAnfordern } from "@/server/services/benachrichtigung"; +import { FachFehler } from "@/server/services/fachfehler"; + +/** Einstellungen speichern und Testnachrichten anstossen (#028). Nur `einstellungenVerwalten`. */ + +function felder(formular: FormData): BenachrichtigungEingabe { + const ja = (name: string) => formular.get(name) === "ja"; + return { + emailAktiv: ja("emailAktiv"), + emailServer: textfeld(formular, "emailServer") ?? "", + emailPort: textfeld(formular, "emailPort") ?? "", + emailSicherheit: (textfeld(formular, "emailSicherheit") ?? + "STARTTLS") as BenachrichtigungEingabe["emailSicherheit"], + emailAbsender: textfeld(formular, "emailAbsender") ?? "", + emailBenutzer: textfeld(formular, "emailBenutzer") ?? "", + emailPasswort: textfeld(formular, "emailPasswort"), + emailPasswortEntfernen: ja("emailPasswortEntfernen"), + emailEmpfaenger: empfaengerAus(textfeld(formular, "emailEmpfaenger") ?? ""), + webhookAktiv: ja("webhookAktiv"), + webhookUrl: textfeld(formular, "webhookUrl") ?? "", + webhookHttpErlaubt: ja("webhookHttpErlaubt"), + webhookGeheimnis: textfeld(formular, "webhookGeheimnis"), + webhookGeheimnisEntfernen: ja("webhookGeheimnisEntfernen"), + anlaesse: listenfeld(formular, "anlaesse").filter((a): a is AnlassArt => + (ANLAESSE as readonly string[]).includes(a), + ), + }; +} + +export async function benachrichtigungSpeichernAktion( + _vorher: FormularZustand, + formular: FormData, +): Promise { + try { + const { benutzer } = await rechtErforderlich("einstellungenVerwalten"); + await benachrichtigungSpeichern(felder(formular), akteurVon(benutzer)); + } catch (fehler) { + return fehlerZustand(fehler); + } + revalidatePath("/einstellungen"); + return { gespeichert: true }; +} + +export async function testSendenAktion(kanal: string): Promise<{ vorgangId?: string; fehler?: string }> { + try { + const { benutzer } = await rechtErforderlich("einstellungenVerwalten"); + if (kanal !== "EMAIL" && kanal !== "WEBHOOK") return { fehler: "Unbekannter Kanal." }; + return { vorgangId: await testAnfordern(kanal, benutzer.id) }; + } catch (fehler) { + if (fehler instanceof RechteFehler || fehler instanceof FachFehler) return { fehler: fehler.message }; + throw fehler; + } +} diff --git a/src/server/queries/einstellungen.ts b/src/server/queries/einstellungen.ts new file mode 100644 index 0000000..1cc0577 --- /dev/null +++ b/src/server/queries/einstellungen.ts @@ -0,0 +1,102 @@ +import { alsAnsicht, type BenachrichtigungAnsicht } from "@/lib/benachrichtigung/einstellungen"; +import { cronBeschreiben, webhookZielKurz } from "@/lib/benachrichtigung/regeln"; +import { prisma } from "@/lib/db"; +import { VERSION } from "@/lib/version"; +import { oidcAktiv, oidcName } from "@/server/auth/oidc"; +import { benachrichtigungLesen } from "@/server/services/benachrichtigung"; + +/** + * Lesemodell der Einstellungsseite (#028). Lesen duerfen alle Rollen; Geheimnisse verlassen + * diese Datei nur als „gesetzt ja/nein“ (`alsAnsicht`). + */ + +export type ZustellungZeile = { + readonly sendung: string; + readonly zeitpunkt: Date; + readonly kanal: "EMAIL" | "WEBHOOK"; + readonly betreff: string; + readonly anlaesse: number; + readonly ergebnis: "GESENDET" | "FEHLGESCHLAGEN"; + readonly versuche: number; + readonly fehler: string | null; + readonly naechsterVersuchAm: Date | null; +}; + +export type Zeitplan = { readonly ausdruck: string; readonly beschreibung: string | null }; + +export type EinstellungenSeite = { + readonly benachrichtigung: BenachrichtigungAnsicht; + readonly webhookZiel: string | null; + readonly zustellungen: readonly ZustellungZeile[]; + readonly abgleich: Zeitplan; + readonly meldung: Zeitplan; + readonly instanz: { + readonly version: string; + readonly deploymentKey: { readonly name: string; readonly fingerprint: string } | null; + readonly oidc: { readonly name: string; readonly konfiguriert: boolean }; + readonly notfall: { readonly vorhanden: boolean; readonly totpEingerichtet: boolean }; + }; +}; + +function zeitplan(variable: string, standard: string): Zeitplan { + const ausdruck = process.env[variable]?.trim() || standard; + return { ausdruck, beschreibung: cronBeschreiben(ausdruck) }; +} + +/** Je Nachricht eine Zeile: alle Anlaesse einer Sendung teilen Kennung, Betreff und Ergebnis. */ +export async function letzteZustellungen(anzahl = 12): Promise { + const zeilen = await prisma.zustellung.findMany({ + orderBy: { zeitpunkt: "desc" }, + take: 500, + select: { + sendung: true, + zeitpunkt: true, + kanal: true, + betreff: true, + ergebnis: true, + versuche: true, + fehler: true, + naechsterVersuchAm: true, + }, + }); + const gruppen = new Map(); + for (const z of zeilen) { + const vorhanden = gruppen.get(z.sendung); + if (vorhanden) { + gruppen.set(z.sendung, { + ...vorhanden, + anlaesse: vorhanden.anlaesse + 1, + versuche: Math.max(vorhanden.versuche, z.versuche), + }); + } else { + if (gruppen.size >= anzahl) continue; + gruppen.set(z.sendung, { ...z, anlaesse: 1 }); + } + } + return [...gruppen.values()]; +} + +export async function einstellungenSeite(): Promise { + const [gespeichert, zustellungen, deploymentKey, notfall] = await Promise.all([ + benachrichtigungLesen(), + letzteZustellungen(), + prisma.schluessel.findFirst({ + where: { instanzStandard: true }, + select: { name: true, fingerprint: true }, + }), + prisma.benutzer.findFirst({ where: { istNotfall: true }, select: { totpEingerichtetAm: true } }), + ]); + return { + benachrichtigung: alsAnsicht(gespeichert), + webhookZiel: gespeichert.webhook.url ? webhookZielKurz(gespeichert.webhook.url) : null, + zustellungen, + abgleich: zeitplan("SSHKV_SYNC_CRON", "30 2 * * *"), + meldung: zeitplan("SSHKV_MELDUNG_CRON", "0 7 * * *"), + instanz: { + version: VERSION, + deploymentKey, + oidc: { name: oidcName(), konfiguriert: oidcAktiv() }, + notfall: { vorhanden: notfall !== null, totpEingerichtet: Boolean(notfall?.totpEingerichtetAm) }, + }, + }; +} diff --git a/src/server/services/benachrichtigung.ts b/src/server/services/benachrichtigung.ts new file mode 100644 index 0000000..81b2516 --- /dev/null +++ b/src/server/services/benachrichtigung.ts @@ -0,0 +1,127 @@ +import type { Prisma } from "@/generated/prisma/client"; +import { + benachrichtigungSchema, + EINSTELLUNG_BENACHRICHTIGUNG, + gespeichertLesen, + type BenachrichtigungEingabe, + type GespeicherteBenachrichtigung, +} from "@/lib/benachrichtigung/einstellungen"; +import { ANLAESSE, type AnlassArt } from "@/lib/benachrichtigung/regeln"; +import { prisma } from "@/lib/db"; +import { verschluesseln } from "@/lib/geheimnisse"; +import { feldfehlerAus } from "@/lib/hosts"; +import { FachFehler } from "@/server/services/fachfehler"; +import type { Akteur } from "@/server/services/hosts"; +import { protokollieren } from "@/server/services/protokoll"; +import { vorgangEinreihen } from "@/server/vorgaenge/vorgaenge"; + +/** + * Benachrichtigungs-Einstellungen lesen und speichern (#028). Geheimnisse werden hier + * verschluesselt und verlassen diese Datei nie im Klartext – entschluesselt wird nur beim + * Versand im Worker. + */ + +/** Gespeicherter Stand inkl. Chiffraten – nur fuer Service und Worker, nie fuer die Oberflaeche. */ +export async function benachrichtigungLesen(): Promise { + const eintrag = await prisma.einstellung.findUnique({ + where: { schluessel: EINSTELLUNG_BENACHRICHTIGUNG }, + }); + return gespeichertLesen(eintrag?.wert); +} + +export async function benachrichtigungSpeichern( + eingabe: BenachrichtigungEingabe, + akteur: Akteur, +): Promise { + const geprueft = benachrichtigungSchema.safeParse(eingabe); + if (!geprueft.success) { + throw new FachFehler("Bitte die markierten Felder prüfen.", feldfehlerAus(geprueft.error)); + } + const e = geprueft.data; + const vorher = await benachrichtigungLesen(); + + // Leeres Feld heisst „unveraendert“ – die Oberflaeche kennt das alte Geheimnis ja nicht. + const passwortNeu = e.emailPasswort ? e.emailPasswort : undefined; + const geheimnisNeu = e.webhookGeheimnis ? e.webhookGeheimnis : undefined; + const passwort = e.emailPasswortEntfernen + ? null + : passwortNeu !== undefined + ? verschluesseln(passwortNeu) + : vorher.email.passwort; + const geheimnis = e.webhookGeheimnisEntfernen + ? null + : geheimnisNeu !== undefined + ? verschluesseln(geheimnisNeu) + : vorher.webhook.geheimnis; + + const anlaesse = Object.fromEntries(ANLAESSE.map((a) => [a, e.anlaesse.includes(a)])) as Record< + AnlassArt, + boolean + >; + const neu: GespeicherteBenachrichtigung = { + email: { + aktiv: e.emailAktiv, + server: e.emailServer, + port: e.emailPort, + sicherheit: e.emailSicherheit, + absender: e.emailAbsender, + benutzer: e.emailBenutzer, + passwort, + empfaenger: e.emailEmpfaenger, + }, + webhook: { aktiv: e.webhookAktiv, url: e.webhookUrl, httpErlaubt: e.webhookHttpErlaubt, geheimnis }, + anlaesse, + }; + + await prisma.$transaction(async (tx) => { + await tx.einstellung.upsert({ + where: { schluessel: EINSTELLUNG_BENACHRICHTIGUNG }, + create: { schluessel: EINSTELLUNG_BENACHRICHTIGUNG, wert: neu as unknown as Prisma.InputJsonValue }, + update: { wert: neu as unknown as Prisma.InputJsonValue }, + }); + await protokollieren( + { + akteur, + aktion: "einstellungen.benachrichtigungen.geaendert", + ergebnis: "ERFOLG", + // Nur, ob sich ein Geheimnis geaendert hat – nie der Wert, auch nicht verschluesselt. Die + // Namen meiden „passwort“/„geheimnis“, sonst schwaerzt schwaerzen() schon den Wahrheitswert. + details: { + emailAktiv: neu.email.aktiv, + smtpServer: neu.email.server, + empfaenger: neu.email.empfaenger.length, + webhookAktiv: neu.webhook.aktiv, + webhookHttp: neu.webhook.httpErlaubt, + smtpZugangGeaendert: passwort !== vorher.email.passwort, + signaturSchluesselGeaendert: geheimnis !== vorher.webhook.geheimnis, + anlaesse: ANLAESSE.filter((a) => anlaesse[a]), + }, + }, + tx, + ); + }); +} + +/** Ist ein Kanal so weit eingetragen, dass ein Versand ueberhaupt Sinn hat? */ +export function kanalVollstaendig(e: GespeicherteBenachrichtigung, kanal: "EMAIL" | "WEBHOOK"): boolean { + if (kanal === "EMAIL") return Boolean(e.email.server && e.email.absender && e.email.empfaenger.length > 0); + return Boolean(e.webhook.url); +} + +/** + * Testnachricht als Vorgang im Worker (#028): dort liegt auch der regulaere Versand, und der + * Webprozess braucht so keinen Weg zu Mailserver oder Webhook-Ziel. Getestet wird der + * gespeicherte Stand – auch wenn der Kanal noch ausgeschaltet ist, damit man vor dem + * Einschalten pruefen kann. + */ +export async function testAnfordern(kanal: "EMAIL" | "WEBHOOK", benutzerId: string): Promise { + const einstellungen = await benachrichtigungLesen(); + if (!kanalVollstaendig(einstellungen, kanal)) { + throw new FachFehler( + kanal === "EMAIL" + ? "Erst Server, Absender und Empfänger speichern." + : "Erst eine Webhook-Adresse speichern.", + ); + } + return vorgangEinreihen({ art: "BENACHRICHTIGUNG_TEST", angefordertVonId: benutzerId, eingabe: { kanal } }); +} diff --git a/src/server/vorgaenge/warteschlange.ts b/src/server/vorgaenge/warteschlange.ts index 1600fa6..ee31f32 100644 --- a/src/server/vorgaenge/warteschlange.ts +++ b/src/server/vorgaenge/warteschlange.ts @@ -10,6 +10,9 @@ import { PgBoss } from "pg-boss"; /** Eine Queue je Vorgangsart haelt Wiederholungen und Gleichzeitigkeit getrennt einstellbar. */ export const WARTESCHLANGE = "sshkv-vorgang"; export const ZEITPLAN_ABGLEICH = "sshkv-abgleich-zeitplan"; +/** Taegliche Zusammenfassung und Fuenf-Minuten-Takt der Benachrichtigungen (#028). */ +export const ZEITPLAN_MELDUNG = "sshkv-meldung-zeitplan"; +export const ZEITPLAN_MELDUNG_TAKT = "sshkv-meldung-takt"; /** Was im Job steht. Absichtlich nur die ID: alles Weitere liegt im `Vorgang`. */ export type VorgangsJob = { diff --git a/src/worker/ablaeufe/benachrichtigung.ts b/src/worker/ablaeufe/benachrichtigung.ts new file mode 100644 index 0000000..3e7b65e --- /dev/null +++ b/src/worker/ablaeufe/benachrichtigung.ts @@ -0,0 +1,21 @@ +import { prisma } from "@/lib/db"; +import { VorgangsFehler, type Handler } from "@/worker/ausfuehren"; +import { testVersenden } from "@/worker/benachrichtigung/versand"; + +/** + * Vorgang BENACHRICHTIGUNG_TEST (#028): Testnachricht ueber einen Kanal. Ein Fehlschlag laesst + * den Vorgang scheitern – die Oberflaeche zeigt dann den bereinigten Fehlertext. + */ +export const benachrichtigungTestHandler: Handler = async ({ vorgang }) => { + const kanal = (vorgang.eingabe as { kanal?: unknown } | null)?.kanal; + if (kanal !== "EMAIL" && kanal !== "WEBHOOK") throw new VorgangsFehler("Unbekannter Kanal."); + const benutzer = vorgang.angefordertVonId + ? await prisma.benutzer.findUnique({ + where: { id: vorgang.angefordertVonId }, + select: { id: true, name: true }, + }) + : null; + const fehler = await testVersenden(kanal, benutzer ?? undefined); + if (fehler) throw new VorgangsFehler(fehler); + return { ergebnis: { kanal, gesendet: true } }; +}; diff --git a/src/worker/benachrichtigung/anlaesse.ts b/src/worker/benachrichtigung/anlaesse.ts new file mode 100644 index 0000000..9749eb7 --- /dev/null +++ b/src/worker/benachrichtigung/anlaesse.ts @@ -0,0 +1,182 @@ +import type { Posten } from "@/lib/benachrichtigung/posten"; +import { ablaufStufe, fingerabdruck, type AnlassArt } from "@/lib/benachrichtigung/regeln"; +import { prisma } from "@/lib/db"; +import { tageBis } from "@/lib/format"; + +/** + * Sammelt die meldbaren Anlaesse aus der Datenbank (#028). Der Abgleich selbst meldet nichts: + * er schreibt Abweichungen und Erreichbarkeit, und diese Datei liest sie. So bleibt der + * Abgleich-Ablauf unberuehrt, und ein verpasster Versand holt sich der naechste Lauf. + */ + +const AUSGEROLLT = ["AUSGEROLLT", "ABWEICHUNG"] as const; + +async function drift(): Promise { + const offen = await prisma.abweichung.findMany({ + where: { behobenAm: null, art: { not: "HOSTKEY_GEAENDERT" }, host: { archiviertAm: null } }, + select: { + id: true, + art: true, + zielbenutzer: true, + fingerprint: true, + details: true, + host: { select: { id: true, name: true, adresse: true } }, + }, + orderBy: { eroeffnetAm: "asc" }, + }); + return offen.map((a) => ({ + art: "drift", + anlass: fingerabdruck.drift(a.id), + host: { hostId: a.host.id, name: a.host.name, adresse: a.host.adresse }, + befund: { + art: a.art, + zielbenutzer: a.zielbenutzer, + fingerprint: a.fingerprint, + text: ((a.details ?? {}) as { text?: unknown }).text?.toString() ?? null, + }, + })); +} + +async function hostKey(): Promise { + const offen = await prisma.abweichung.findMany({ + where: { behobenAm: null, art: "HOSTKEY_GEAENDERT", host: { archiviertAm: null } }, + select: { + id: true, + fingerprint: true, + details: true, + host: { select: { id: true, name: true, adresse: true } }, + }, + orderBy: { eroeffnetAm: "asc" }, + }); + return offen.map((a) => { + const details = (a.details ?? {}) as { erwartet?: unknown; algorithmus?: unknown }; + return { + art: "hostkey", + anlass: fingerabdruck.hostkey(a.id), + host: { hostId: a.host.id, name: a.host.name, adresse: a.host.adresse }, + befund: { + algorithmus: typeof details.algorithmus === "string" ? details.algorithmus : "unbekannt", + erwartet: typeof details.erwartet === "string" ? details.erwartet : null, + gesehen: a.fingerprint ?? "unbekannt", + }, + }; + }); +} + +async function unerreichbar(): Promise { + const hosts = await prisma.host.findMany({ + where: { + archiviertAm: null, + bootstrapAm: { not: null }, + erreichbar: false, + // Ein geaenderter Host-Key laesst den Abgleich ebenfalls scheitern; dafuer gibt es die + // dringende Meldung (e) – hier waere sie nur ein irrefuehrendes Echo. + abweichungen: { none: { art: "HOSTKEY_GEAENDERT", behobenAm: null } }, + }, + select: { id: true, name: true, adresse: true, zuletztGeprueftAm: true, letzterAbgleichAm: true }, + }); + return hosts.map((h) => ({ + art: "unerreichbar", + anlass: fingerabdruck.unerreichbar(h.id, h.letzterAbgleichAm), + host: { + hostId: h.id, + name: h.name, + adresse: h.adresse, + zuletztGeprueftAm: h.zuletztGeprueftAm, + letzterAbgleichAm: h.letzterAbgleichAm, + }, + })); +} + +async function ablauf(jetzt: Date): Promise { + const bis = new Date(jetzt.getTime() + 31 * 86_400_000); + // Feste select-Liste: Private-Key-Felder kommen hier nie vorbei (CLAUDE.md). + const schluessel = await prisma.schluessel.findMany({ + where: { status: "AKTIV", widerrufEingeleitetAm: null, ablaufAm: { gt: jetzt, lte: bis } }, + select: { id: true, name: true, fingerprint: true, ablaufAm: true }, + }); + const posten: Posten[] = []; + for (const s of schluessel) { + if (!s.ablaufAm) continue; + const stufe = ablaufStufe(s.ablaufAm, jetzt); + if (stufe === null) continue; + posten.push({ + art: "ablauf", + anlass: fingerabdruck.ablauf(s.id, stufe, s.ablaufAm), + schluessel: { + schluesselId: s.id, + name: s.name, + fingerprint: s.fingerprint, + ablaufAm: s.ablaufAm, + tage: tageBis(s.ablaufAm, jetzt), + stufe, + }, + }); + } + return posten; +} + +async function abgelaufen(jetzt: Date): Promise { + const schluessel = await prisma.schluessel.findMany({ + where: { + status: { in: ["AKTIV", "ABGELAUFEN"] }, + ablaufAm: { lte: jetzt }, + OR: [ + { publicVerwendungen: { some: { zustand: { in: [...AUSGEROLLT] } } } }, + { privateVerwendungen: { some: { zustand: { in: [...AUSGEROLLT] } } } }, + ], + }, + select: { + id: true, + name: true, + fingerprint: true, + ablaufAm: true, + publicVerwendungen: { + where: { zustand: { in: [...AUSGEROLLT] } }, + select: { host: { select: { name: true } }, hostgruppe: { select: { name: true } } }, + }, + privateVerwendungen: { + where: { zustand: { in: [...AUSGEROLLT] } }, + select: { host: { select: { name: true } } }, + }, + }, + }); + return schluessel.flatMap((s): Posten[] => { + if (!s.ablaufAm) return []; + const hosts = new Set(); + for (const v of s.publicVerwendungen) { + if (v.host) hosts.add(v.host.name); + else if (v.hostgruppe) hosts.add(`Gruppe ${v.hostgruppe.name}`); + } + for (const v of s.privateVerwendungen) hosts.add(v.host.name); + return [ + { + art: "abgelaufen", + anlass: fingerabdruck.abgelaufen(s.id, s.ablaufAm), + schluessel: { + schluesselId: s.id, + name: s.name, + fingerprint: s.fingerprint, + ablaufAm: s.ablaufAm, + hosts: [...hosts].sort((a, b) => a.localeCompare(b, "de")), + }, + }, + ]; + }); +} + +/** Alle Posten der eingeschalteten Anlaesse. */ +export async function postenSammeln( + arten: readonly AnlassArt[], + jetzt: Date = new Date(), +): Promise { + const sammler: Record Promise> = { + drift, + hostkey: hostKey, + unerreichbar, + ablauf: () => ablauf(jetzt), + abgelaufen: () => abgelaufen(jetzt), + }; + const teile = await Promise.all(arten.map((art) => sammler[art]())); + return teile.flat(); +} diff --git a/src/worker/benachrichtigung/kanaele.ts b/src/worker/benachrichtigung/kanaele.ts new file mode 100644 index 0000000..3545754 --- /dev/null +++ b/src/worker/benachrichtigung/kanaele.ts @@ -0,0 +1,122 @@ +import nodemailer from "nodemailer"; +import type { GespeicherteBenachrichtigung, SmtpSicherheit } from "@/lib/benachrichtigung/einstellungen"; +import { signatur, webhookKoerper, type Nachricht } from "@/lib/benachrichtigung/nachrichten"; +import { webhookUrlPruefen } from "@/lib/benachrichtigung/regeln"; +import { entschluesseln } from "@/lib/geheimnisse"; +import { VERSION } from "@/lib/version"; + +/** + * Versandwege (#028): SMTP (Microsoft 365 mit STARTTLS auf 587) und Webhook mit HMAC-Signatur. + * Uebernommen aus ProxLedger, ergaenzt um Zeitlimits, die Wahl „unverschluesselt“ fuer interne + * Relays und Fehlermeldungen ohne Zugangsdaten. + */ +export class ZustellFehler extends Error { + constructor(nachricht: string) { + super(nachricht); + this.name = "ZustellFehler"; + } +} + +export type EmailZugang = { + readonly server: string; + readonly port: number; + readonly sicherheit: SmtpSicherheit; + readonly absender: string; + readonly benutzer: string; + readonly passwort: string | null; + readonly empfaenger: readonly string[]; +}; + +export type WebhookZugang = { + readonly url: string; + readonly httpErlaubt: boolean; + readonly geheimnis: string | null; +}; + +/** Entschluesselt erst hier, unmittelbar vor dem Versand. */ +export function zugaengeLesen(e: GespeicherteBenachrichtigung): { + email: EmailZugang; + webhook: WebhookZugang; +} { + return { + email: { ...e.email, passwort: e.email.passwort ? entschluesseln(e.email.passwort) : null }, + webhook: { + url: e.webhook.url, + httpErlaubt: e.webhook.httpErlaubt, + geheimnis: e.webhook.geheimnis ? entschluesseln(e.webhook.geheimnis) : null, + }, + }; +} + +/** + * Fehlertexte kommen vom Mailserver oder aus dem Netz. Sie landen im Versandprotokoll und in der + * Oberflaeche – deshalb gekuerzt und ohne die Zugangsdaten, falls ein Server sie zurueckspiegelt. + */ +export function fehlerBereinigen(fehler: unknown, geheim: readonly (string | null)[]): string { + let text = fehler instanceof Error ? fehler.message : String(fehler); + for (const wert of geheim) if (wert) text = text.replaceAll(wert, "***"); + text = text.replace(/\s+/g, " ").trim(); + return text.length > 300 ? `${text.slice(0, 297)}…` : text || "Unbekannter Fehler."; +} + +export async function perEmailSenden(zugang: EmailZugang, nachricht: Nachricht): Promise { + if (zugang.empfaenger.length === 0) throw new ZustellFehler("Kein Empfänger hinterlegt."); + const transport = nodemailer.createTransport({ + host: zugang.server, + port: zugang.port, + secure: zugang.sicherheit === "TLS", + // Microsoft 365 verlangt STARTTLS; requireTLS verhindert, dass ein Server ohne STARTTLS + // die Zugangsdaten im Klartext bekommt. + requireTLS: zugang.sicherheit === "STARTTLS", + ignoreTLS: zugang.sicherheit === "KEINE", + auth: zugang.benutzer ? { user: zugang.benutzer, pass: zugang.passwort ?? "" } : undefined, + connectionTimeout: 15_000, + greetingTimeout: 15_000, + socketTimeout: 30_000, + }); + try { + await transport.sendMail({ + from: zugang.absender, + to: zugang.empfaenger.join(", "), + subject: nachricht.betreff, + text: nachricht.text, + html: nachricht.html, + headers: { "X-Sshkv-Ereignis": nachricht.nutzlast.ereignis }, + }); + } catch (fehler) { + throw new ZustellFehler(`SMTP: ${fehlerBereinigen(fehler, [zugang.passwort])}`); + } finally { + transport.close(); + } +} + +export async function perWebhookSenden(zugang: WebhookZugang, nachricht: Nachricht): Promise { + // Noch einmal hier: die Einstellung koennte an der Oberflaeche vorbei geschrieben worden sein. + const ungueltig = webhookUrlPruefen(zugang.url, zugang.httpErlaubt); + if (ungueltig) throw new ZustellFehler(`Webhook: ${ungueltig}`); + + const koerper = webhookKoerper(nachricht); + const kopf: Record = { + "Content-Type": "application/json; charset=utf-8", + "User-Agent": `sshkv/${VERSION}`, + "X-Sshkv-Ereignis": nachricht.nutzlast.ereignis, + }; + if (zugang.geheimnis) kopf["X-Sshkv-Signatur"] = signatur(koerper, zugang.geheimnis); + + let antwort: Response; + try { + antwort = await fetch(zugang.url, { + method: "POST", + headers: kopf, + body: koerper, + // Keine Weiterleitungen: sonst koennte ein https-Ziel auf http umleiten. + redirect: "error", + signal: AbortSignal.timeout(15_000), + }); + } catch (fehler) { + throw new ZustellFehler(`Webhook nicht erreichbar: ${fehlerBereinigen(fehler, [zugang.geheimnis])}`); + } + // Die Antwort wird nicht gelesen – sie interessiert nicht und koennte gross sein. + await antwort.body?.cancel().catch(() => undefined); + if (!antwort.ok) throw new ZustellFehler(`Webhook antwortet mit HTTP ${antwort.status}.`); +} diff --git a/src/worker/benachrichtigung/versand.ts b/src/worker/benachrichtigung/versand.ts new file mode 100644 index 0000000..f1988a8 --- /dev/null +++ b/src/worker/benachrichtigung/versand.ts @@ -0,0 +1,260 @@ +import { randomUUID } from "node:crypto"; +import type { MeldungsKanal } from "@/generated/prisma/enums"; +import type { GespeicherteBenachrichtigung } from "@/lib/benachrichtigung/einstellungen"; +import { + hostKeyNachricht, + testNachricht, + zusammenfassungLeer, + zusammenfassungNachricht, + type Nachricht, +} from "@/lib/benachrichtigung/nachrichten"; +import { hostKeyGruppen, zusammenfassungAus, type Posten } from "@/lib/benachrichtigung/posten"; +import { + anlassFaellig, + fingerabdruck, + naechsterVersuch, + webhookZielKurz, + type AnlassArt, + type ProtokollStand, +} from "@/lib/benachrichtigung/regeln"; +import { prisma } from "@/lib/db"; +import { benachrichtigungLesen } from "@/server/services/benachrichtigung"; +import type { Akteur } from "@/server/services/hosts"; +import { protokollieren } from "@/server/services/protokoll"; +import { postenSammeln } from "./anlaesse"; +import { perEmailSenden, perWebhookSenden, zugaengeLesen, ZustellFehler } from "./kanaele"; + +/** + * Wer bekommt wann was (#028). Grundregel: kein Anlass wird ueber denselben Kanal zweimal + * gemeldet. Das sichert die Pruefung gegen das Versandprotokoll (`Zustellung`) vor jedem + * Versand – auch wenn ein Zeitplan doppelt feuert oder zwei Laeufe sich ueberschneiden. + */ + +export type VersandBilanz = { gesendet: number; fehlgeschlagen: number }; + +const ZUSAMMENFASSUNG: readonly AnlassArt[] = ["drift", "ablauf", "abgelaufen", "unerreichbar"]; + +function appUrl(): string { + return process.env["SSHKV_APP_URL"]?.trim() || "http://localhost:3400"; +} + +function aktiveKanaele(e: GespeicherteBenachrichtigung): MeldungsKanal[] { + const kanaele: MeldungsKanal[] = []; + if (e.email.aktiv) kanaele.push("EMAIL"); + if (e.webhook.aktiv) kanaele.push("WEBHOOK"); + return kanaele; +} + +/** Die Posten, die ueber diesen Kanal (noch einmal) gemeldet werden duerfen. */ +async function faelligFuer( + posten: readonly Posten[], + kanal: MeldungsKanal, + jetzt: Date, + nurWiederholungen: boolean, +): Promise<{ posten: Posten[]; stand: Map }> { + if (posten.length === 0) return { posten: [], stand: new Map() }; + const zeilen = await prisma.zustellung.findMany({ + where: { kanal, anlass: { in: posten.map((p) => p.anlass) } }, + select: { anlass: true, ergebnis: true, versuche: true, naechsterVersuchAm: true }, + }); + const stand = new Map(zeilen.map((z) => [z.anlass, z])); + return { + posten: posten.filter((p) => anlassFaellig(stand.get(p.anlass), jetzt, nurWiederholungen)), + stand, + }; +} + +type Versandauftrag = { + readonly kanal: MeldungsKanal; + readonly einstellungen: GespeicherteBenachrichtigung; + readonly nachricht: Nachricht; + readonly anlaesse: readonly string[]; + readonly stand: ReadonlyMap; + readonly jetzt: Date; + readonly akteur?: Akteur; + /** Testnachrichten werden nie wiederholt – das Ergebnis sieht der Mensch sofort. */ + readonly wiederholen?: boolean; +}; + +/** + * Sendet eine Nachricht ueber einen Kanal und schreibt das Ergebnis je Anlass ins + * Versandprotokoll und einmal ins revisionssichere Protokoll. Liefert den Fehlertext oder null. + */ +async function sendenUndFesthalten(auftrag: Versandauftrag): Promise { + const { kanal, einstellungen, nachricht, jetzt } = auftrag; + let fehler: string | null = null; + try { + const zugang = zugaengeLesen(einstellungen); + if (kanal === "EMAIL") await perEmailSenden(zugang.email, nachricht); + else await perWebhookSenden(zugang.webhook, nachricht); + } catch (ursache) { + // Fremde Fehler (z. B. ein nicht mehr entschluesselbares Passwort) mit fester Meldung – + // ihre Texte koennen Interna tragen. + fehler = + ursache instanceof ZustellFehler + ? ursache.message + : ursache instanceof Error && ursache.name === "GeheimnisFehler" + ? "Zugangsdaten nicht lesbar – bitte Passwort bzw. Geheimnis neu eingeben." + : "Interner Fehler beim Versand. Details stehen im Worker-Log."; + if (!(ursache instanceof ZustellFehler)) { + console.error( + `Benachrichtigung über ${kanal} fehlgeschlagen:`, + ursache instanceof Error ? `${ursache.name}: ${ursache.message}` : String(ursache), + ); + } + } + + const sendung = randomUUID(); + const wiederholen = auftrag.wiederholen ?? true; + for (const anlass of auftrag.anlaesse) { + const versuche = (auftrag.stand.get(anlass)?.versuche ?? 0) + 1; + const daten = { + ergebnis: fehler ? ("FEHLGESCHLAGEN" as const) : ("GESENDET" as const), + fehler, + versuche, + naechsterVersuchAm: fehler && wiederholen ? naechsterVersuch(versuche, jetzt) : null, + sendung, + betreff: nachricht.betreff, + zeitpunkt: jetzt, + }; + await prisma.zustellung.upsert({ + where: { anlass_kanal: { anlass, kanal } }, + create: { anlass, kanal, ...daten }, + update: daten, + }); + } + + await protokollieren({ + akteur: auftrag.akteur ?? "System", + aktion: fehler ? "benachrichtigung.fehlgeschlagen" : "benachrichtigung.gesendet", + ergebnis: fehler ? "FEHLER" : "ERFOLG", + details: { + kanal, + ereignis: nachricht.nutzlast.ereignis, + betreff: nachricht.betreff, + anlaesse: auftrag.anlaesse.length, + // Empfaenger nur gezaehlt, beim Webhook nur Schema und Host – der Pfad traegt oft ein Token. + ziel: + kanal === "EMAIL" + ? `${einstellungen.email.empfaenger.length} Empfänger` + : webhookZielKurz(einstellungen.webhook.url), + sendung, + ...(fehler ? { fehler } : {}), + }, + }); + return fehler; +} + +/** + * Laeufe nacheinander: ueberschnitten sich Zusammenfassung und Takt, saehen beide denselben + * Anlass als „noch nicht gemeldet“. pg-boss feuert jeden Zeitplan nur einmal, die + * Ueberschneidung zweier Zeitplaene im selben Worker verhindert erst diese Kette. + */ +let kette: Promise = Promise.resolve(); +function nacheinander(lauf: () => Promise): Promise { + const ergebnis = kette.then(lauf, lauf); + kette = ergebnis.catch(() => undefined); + return ergebnis; +} + +function zaehlen(bilanz: VersandBilanz, fehler: string | null): void { + if (fehler) bilanz.fehlgeschlagen += 1; + else bilanz.gesendet += 1; +} + +/** + * Taegliche Zusammenfassung der Anlaesse (a)–(d). Mit `nurWiederholungen` (Fuenf-Minuten-Takt) + * nur das, was zuvor fehlschlug und wieder an der Reihe ist – Neues wartet auf den Termin. + */ +export function zusammenfassungVersenden(jetzt: Date = new Date(), nurWiederholungen = false) { + return nacheinander(() => zusammenfassungIntern(jetzt, nurWiederholungen)); +} + +async function zusammenfassungIntern(jetzt: Date, nurWiederholungen: boolean): Promise { + const bilanz: VersandBilanz = { gesendet: 0, fehlgeschlagen: 0 }; + const einstellungen = await benachrichtigungLesen(); + const kanaele = aktiveKanaele(einstellungen); + const arten = ZUSAMMENFASSUNG.filter((a) => einstellungen.anlaesse[a]); + if (kanaele.length === 0 || arten.length === 0) return bilanz; + + const alle = await postenSammeln(arten, jetzt); + for (const kanal of kanaele) { + const { posten, stand } = await faelligFuer(alle, kanal, jetzt, nurWiederholungen); + const zusammenfassung = zusammenfassungAus(posten); + if (zusammenfassungLeer(zusammenfassung)) continue; + const nachricht = zusammenfassungNachricht(zusammenfassung, { appUrl: appUrl(), jetzt }); + zaehlen( + bilanz, + await sendenUndFesthalten({ + kanal, + einstellungen, + nachricht, + anlaesse: posten.map((p) => p.anlass), + stand, + jetzt, + }), + ); + } + return bilanz; +} + +/** Dringende Meldungen (e): geaenderte Host-Keys, je Host eine Nachricht. */ +export function hostKeyMeldungenVersenden(jetzt: Date = new Date()) { + return nacheinander(() => hostKeyIntern(jetzt)); +} + +async function hostKeyIntern(jetzt: Date): Promise { + const bilanz: VersandBilanz = { gesendet: 0, fehlgeschlagen: 0 }; + const einstellungen = await benachrichtigungLesen(); + const kanaele = aktiveKanaele(einstellungen); + if (kanaele.length === 0 || !einstellungen.anlaesse.hostkey) return bilanz; + + const alle = await postenSammeln(["hostkey"], jetzt); + for (const kanal of kanaele) { + const { posten, stand } = await faelligFuer(alle, kanal, jetzt, false); + for (const gruppe of hostKeyGruppen(posten)) { + const nachricht = hostKeyNachricht(gruppe.aenderung, { appUrl: appUrl(), jetzt }); + zaehlen( + bilanz, + await sendenUndFesthalten({ + kanal, + einstellungen, + nachricht, + anlaesse: gruppe.anlaesse, + stand, + jetzt, + }), + ); + } + } + return bilanz; +} + +/** Der Fuenf-Minuten-Takt: dringende Meldungen und faellige Wiederholungen. */ +export function taktVersenden(jetzt: Date = new Date()): Promise { + return nacheinander(async () => { + const dringend = await hostKeyIntern(jetzt); + const nachgeholt = await zusammenfassungIntern(jetzt, true); + return { + gesendet: dringend.gesendet + nachgeholt.gesendet, + fehlgeschlagen: dringend.fehlgeschlagen + nachgeholt.fehlgeschlagen, + }; + }); +} + +/** „Testnachricht senden“ – ueber den gespeicherten Stand, auch bei ausgeschaltetem Kanal. */ +export async function testVersenden(kanal: MeldungsKanal, akteur?: Akteur): Promise { + const jetzt = new Date(); + const einstellungen = await benachrichtigungLesen(); + const nachricht = testNachricht(kanal, { appUrl: appUrl(), jetzt }); + return sendenUndFesthalten({ + kanal, + einstellungen, + nachricht, + anlaesse: [fingerabdruck.test(randomUUID())], + stand: new Map(), + jetzt, + ...(akteur ? { akteur } : {}), + wiederholen: false, + }); +} diff --git a/src/worker/handler.ts b/src/worker/handler.ts index 6c00277..45bac31 100644 --- a/src/worker/handler.ts +++ b/src/worker/handler.ts @@ -1,5 +1,6 @@ import type { HandlerTabelle } from "@/worker/ausfuehren"; import { abgleichHandler } from "@/worker/ablaeufe/abgleich"; +import { benachrichtigungTestHandler } from "@/worker/ablaeufe/benachrichtigung"; import { ausrollenHandler, trockenlaufHandler } from "@/worker/ablaeufe/ausrollen"; import { bootstrapHandler } from "@/worker/ablaeufe/bootstrap"; import { erreichbarkeitHandler, hostKeyAbrufenHandler } from "@/worker/ablaeufe/hostkey"; @@ -25,4 +26,5 @@ export const HANDLER: HandlerTabelle = { ABGLEICH: abgleichHandler, ZIELKONTO_ANLEGEN: zielkontoAnlegenHandler, ZIELKONTO_ENTFERNEN: zielkontoEntfernenHandler, + BENACHRICHTIGUNG_TEST: benachrichtigungTestHandler, }; diff --git a/src/worker/index.ts b/src/worker/index.ts index 3cf7d37..acb7ef0 100644 --- a/src/worker/index.ts +++ b/src/worker/index.ts @@ -5,11 +5,14 @@ import { alleHostsAbgleichen } from "@/server/services/abgleich"; import { WARTESCHLANGE, ZEITPLAN_ABGLEICH, + ZEITPLAN_MELDUNG, + ZEITPLAN_MELDUNG_TAKT, warteschlangeHolen, type VorgangsJob, } from "@/server/vorgaenge/warteschlange"; import { vorgangAusfuehren } from "@/worker/ausfuehren"; import { abholungenAufraeumen } from "@/worker/ablaeufe/privatekey"; +import { taktVersenden, zusammenfassungVersenden } from "@/worker/benachrichtigung/versand"; import { deploymentKeySicherstellen } from "@/worker/geheimnisse"; import { HANDLER } from "@/worker/handler"; @@ -61,7 +64,32 @@ async function starten(): Promise { console.log(`Zeitplan: ${anzahl} Abgleich(e) eingereiht.`); }); - console.log(`sshkv-worker ${VERSION} bereit (Abgleich: ${zeitplan}).`); + // Benachrichtigungen (#028): taeglich die Zusammenfassung, alle fuenf Minuten geaenderte + // Host-Keys (dringend) und faellige Wiederholungen. Fehler nur ins Log – das + // Versandprotokoll haelt fest, was nachzuholen ist. + const meldung = process.env["SSHKV_MELDUNG_CRON"]?.trim() || "0 7 * * *"; + const melden = (lauf: () => Promise<{ gesendet: number; fehlgeschlagen: number }>) => async () => { + const bilanz = await lauf().catch((fehler: unknown) => { + console.error("Benachrichtigung:", fehler instanceof Error ? fehler.message : fehler); + return null; + }); + if (bilanz && bilanz.gesendet + bilanz.fehlgeschlagen > 0) + console.log(`Benachrichtigung: ${bilanz.gesendet} gesendet, ${bilanz.fehlgeschlagen} fehlgeschlagen.`); + }; + await boss.createQueue(ZEITPLAN_MELDUNG); + await boss.schedule(ZEITPLAN_MELDUNG, meldung, null, { tz: "Europe/Berlin" }); + await boss.work( + ZEITPLAN_MELDUNG, + melden(() => zusammenfassungVersenden()), + ); + await boss.createQueue(ZEITPLAN_MELDUNG_TAKT); + await boss.schedule(ZEITPLAN_MELDUNG_TAKT, "*/5 * * * *", null, { tz: "Europe/Berlin" }); + await boss.work( + ZEITPLAN_MELDUNG_TAKT, + melden(() => taktVersenden()), + ); + + console.log(`sshkv-worker ${VERSION} bereit (Abgleich: ${zeitplan}, Meldungen: ${meldung}).`); const beenden = async (signal: string) => { console.log(`${signal} empfangen, beende laufende Vorgänge …`); diff --git a/tests/benachrichtigung-nachrichten.test.ts b/tests/benachrichtigung-nachrichten.test.ts new file mode 100644 index 0000000..0415862 --- /dev/null +++ b/tests/benachrichtigung-nachrichten.test.ts @@ -0,0 +1,197 @@ +import { createHmac } from "node:crypto"; +import { describe, expect, it } from "vitest"; +import { + hostKeyNachricht, + signatur, + testNachricht, + webhookKoerper, + zusammenfassungLeer, + zusammenfassungNachricht, +} from "@/lib/benachrichtigung/nachrichten"; +import { hostKeyGruppen, zusammenfassungAus, type Posten } from "@/lib/benachrichtigung/posten"; + +/** Nachrichtenaufbau (#028): Text- und HTML-Mail auf Deutsch, Webhook-JSON, Signatur. */ + +const RAHMEN = { appUrl: "https://sshkv.example.de/", jetzt: new Date("2026-10-12T05:00:00Z") }; + +const POSTEN: Posten[] = [ + { + art: "drift", + anlass: "drift:a1", + host: { hostId: "h2", name: "srv-zeta", adresse: "10.0.0.2" }, + befund: { art: "RECHTE", zielbenutzer: "root", fingerprint: null, text: "authorized_keys ist 0666" }, + }, + { + art: "drift", + anlass: "drift:a2", + host: { hostId: "h1", name: "srv-alpha", adresse: "10.0.0.1" }, + befund: { + art: "UNBEKANNTER_SCHLUESSEL", + zielbenutzer: "deploy", + fingerprint: "SHA256:abc", + text: "Kommentar ", + }, + }, + { + art: "drift", + anlass: "drift:a3", + host: { hostId: "h1", name: "srv-alpha", adresse: "10.0.0.1" }, + befund: { art: "FEHLENDER_SCHLUESSEL", zielbenutzer: "deploy", fingerprint: "SHA256:def", text: null }, + }, + { + art: "unerreichbar", + anlass: "unerreichbar:h3:nie", + host: { + hostId: "h3", + name: "srv-weg", + adresse: "10.0.0.3", + zuletztGeprueftAm: null, + letzterAbgleichAm: null, + }, + }, + { + art: "ablauf", + anlass: "ablauf:k1:7:2026-10-17", + schluessel: { + schluesselId: "k1", + name: "Backup-Zugang", + fingerprint: "SHA256:k1", + ablaufAm: new Date("2026-10-17T10:00:00Z"), + tage: 5, + stufe: 7, + }, + }, + { + art: "abgelaufen", + anlass: "abgelaufen:k2:2026-10-01", + schluessel: { + schluesselId: "k2", + name: "Alter Zugang", + fingerprint: "SHA256:k2", + ablaufAm: new Date("2026-10-01T10:00:00Z"), + hosts: ["srv-alpha", "Gruppe pve"], + }, + }, +]; + +describe("Zusammenfassung", () => { + const z = zusammenfassungAus(POSTEN); + const n = zusammenfassungNachricht(z, RAHMEN); + + it("fasst Drift je Host zusammen und sortiert nach Namen", () => { + expect(z.drift.map((h) => [h.name, h.befunde.length])).toEqual([ + ["srv-alpha", 2], + ["srv-zeta", 1], + ]); + expect(zusammenfassungLeer(z)).toBe(false); + expect(zusammenfassungLeer(zusammenfassungAus([]))).toBe(true); + }); + + it("Betreff zählt die Anlässe auf Deutsch", () => { + expect(n.betreff).toBe( + "[sshkv] Zusammenfassung: 3 neue Abweichungen, 1 Host nicht erreichbar, 1 Schlüssel läuft ab, 1 abgelaufener Schlüssel ausgerollt", + ); + }); + + it("Textfassung mit Umlauten, Links und allen Abschnitten", () => { + expect(n.text).toContain("Zusammenfassung vom 12.10.2026, 07:00"); + expect(n.text).toContain("Neue Abweichungen (Drift):"); + expect(n.text).toContain(" srv-alpha (10.0.0.1):"); + expect(n.text).toContain("Unbekannter Schlüssel – Benutzer deploy – SHA256:abc"); + expect(n.text).toContain("https://sshkv.example.de/hosts/h1"); + expect(n.text).toContain("srv-weg (10.0.0.3) – noch nie erfolgreich abgeglichen"); + expect(n.text).toContain("Backup-Zugang – läuft am 17.10.2026 ab (in 5 Tagen)"); + expect(n.text).toContain("Alter Zugang – abgelaufen am 01.10.2026, noch auf srv-alpha, Gruppe pve"); + }); + + it("HTML maskiert Inhalte von den Hosts", () => { + expect(n.html).toContain(''); + expect(n.html).not.toContain("", + }, + { + art: "FEHLENDER_SCHLUESSEL", + artText: "Schlüssel fehlt", + zielbenutzer: "deploy", + fingerprint: "SHA256:def", + text: null, + }, + ], + }); + expect(json["ablauf"]).toEqual([ + { + schluessel: { id: "k1", name: "Backup-Zugang", fingerprint: "SHA256:k1" }, + ablaufAm: "2026-10-17T10:00:00.000Z", + tage: 5, + stufe: 7, + }, + ]); + }); +}); + +describe("Host-Key geändert (dringend)", () => { + const gruppen = hostKeyGruppen([ + { + art: "hostkey", + anlass: "hostkey:x1", + host: { hostId: "h1", name: "srv-alpha", adresse: "10.0.0.1" }, + befund: { algorithmus: "ssh-ed25519", erwartet: "SHA256:alt", gesehen: "SHA256:neu" }, + }, + ...POSTEN, + ]); + + it("je Host eine Nachricht, nur aus Host-Key-Posten", () => { + expect(gruppen).toHaveLength(1); + expect(gruppen[0]?.anlaesse).toEqual(["hostkey:x1"]); + }); + + it("Betreff, Text und Nutzlast", () => { + const n = hostKeyNachricht(gruppen[0]!.aenderung, RAHMEN); + expect(n.betreff).toBe("[sshkv] DRINGEND: Host-Key von srv-alpha hat sich geändert"); + expect(n.text).toContain("ssh-ed25519: erwartet SHA256:alt, gesehen SHA256:neu"); + expect(n.text).toContain("bestätigt"); + expect(n.html).toContain("Dringend"); + expect(n.nutzlast).toMatchObject({ + ereignis: "hostkey.geaendert", + dringend: true, + host: { id: "h1", name: "srv-alpha" }, + befunde: [{ art: "HOSTKEY_GEAENDERT", erwartet: "SHA256:alt", fingerprint: "SHA256:neu" }], + }); + }); +}); + +describe("Testnachricht und Signatur", () => { + it("Testnachricht nennt den Kanal", () => { + const n = testNachricht("EMAIL", RAHMEN); + expect(n.betreff).toBe("[sshkv] Testnachricht"); + expect(n.text).toContain("per E-Mail funktioniert"); + expect(n.nutzlast.ereignis).toBe("test"); + }); + + it("HMAC-SHA256 über den rohen Body", () => { + const koerper = webhookKoerper(testNachricht("WEBHOOK", RAHMEN)); + const erwartet = createHmac("sha256", "geheim").update(koerper).digest("hex"); + expect(signatur(koerper, "geheim")).toBe(`sha256=${erwartet}`); + expect(signatur(`${koerper} `, "geheim")).not.toBe(`sha256=${erwartet}`); + }); +}); diff --git a/tests/benachrichtigung-regeln.test.ts b/tests/benachrichtigung-regeln.test.ts new file mode 100644 index 0000000..18f21ab --- /dev/null +++ b/tests/benachrichtigung-regeln.test.ts @@ -0,0 +1,194 @@ +import { describe, expect, it } from "vitest"; +import { + benachrichtigungSchema, + empfaengerAus, + gespeichertLesen, + alsAnsicht, + STANDARD_BENACHRICHTIGUNG, +} from "@/lib/benachrichtigung/einstellungen"; +import { + ablaufStufe, + anlassFaellig, + cronBeschreiben, + fingerabdruck, + MAX_VERSUCHE, + naechsterVersuch, + webhookUrlPruefen, + webhookZielKurz, +} from "@/lib/benachrichtigung/regeln"; + +/** Regeln der Benachrichtigungen (#028): Stufen, Fingerabdruecke, Wiederholungen, Pruefungen. */ + +// 10:00 Uhr Berliner Zeit – weit weg von Mitternacht, damit Kalendertage eindeutig sind. +const JETZT = new Date("2026-10-12T08:00:00Z"); +const inTagen = (tage: number) => new Date(JETZT.getTime() + tage * 86_400_000); + +describe("Ablaufstufen 30/14/7", () => { + it.each([ + [45, null], + [31, null], + [30, 30], + [20, 30], + [15, 30], + [14, 14], + [8, 14], + [7, 7], + [1, 7], + ])("in %i Tagen → Stufe %s", (tage, stufe) => { + expect(ablaufStufe(inTagen(tage), JETZT)).toBe(stufe); + }); + + it("abgelaufene Schlüssel haben keine Stufe mehr", () => { + expect(ablaufStufe(JETZT, JETZT)).toBeNull(); + expect(ablaufStufe(inTagen(-3), JETZT)).toBeNull(); + }); + + it("je Stufe ein eigener Fingerabdruck, ein verlängerter Schlüssel beginnt von vorn", () => { + const ablauf = inTagen(10); + const a30 = fingerabdruck.ablauf("k1", 30, ablauf); + const a14 = fingerabdruck.ablauf("k1", 14, ablauf); + expect(a30).toBe("ablauf:k1:30:2026-10-22"); + expect(a14).not.toBe(a30); + expect(fingerabdruck.ablauf("k1", 14, inTagen(40))).not.toBe(a14); + }); + + it("Unerreichbarkeit: ein Fingerabdruck je Ausfall", () => { + const vorher = new Date("2026-10-10T00:30:00Z"); + expect(fingerabdruck.unerreichbar("h1", vorher)).toBe(fingerabdruck.unerreichbar("h1", vorher)); + expect(fingerabdruck.unerreichbar("h1", null)).toBe("unerreichbar:h1:nie"); + expect(fingerabdruck.unerreichbar("h1", JETZT)).not.toBe(fingerabdruck.unerreichbar("h1", vorher)); + }); +}); + +describe("Deduplizierung und Wiederholung", () => { + it("noch nie gemeldet: fällig, außer in einer reinen Wiederholungsrunde", () => { + expect(anlassFaellig(undefined, JETZT)).toBe(true); + expect(anlassFaellig(undefined, JETZT, true)).toBe(false); + }); + + it("erfolgreich gemeldet: nie wieder", () => { + const stand = { ergebnis: "GESENDET" as const, versuche: 1, naechsterVersuchAm: null }; + expect(anlassFaellig(stand, JETZT)).toBe(false); + expect(anlassFaellig(stand, JETZT, true)).toBe(false); + }); + + it("fehlgeschlagen: erst nach der Wartezeit und begrenzt", () => { + const spaeter = { ergebnis: "FEHLGESCHLAGEN" as const, versuche: 1, naechsterVersuchAm: inTagen(1) }; + expect(anlassFaellig(spaeter, JETZT)).toBe(false); + const faellig = { ...spaeter, naechsterVersuchAm: inTagen(-1) }; + expect(anlassFaellig(faellig, JETZT, true)).toBe(true); + expect(anlassFaellig({ ...faellig, versuche: MAX_VERSUCHE }, JETZT)).toBe(false); + expect(anlassFaellig({ ...faellig, naechsterVersuchAm: null }, JETZT)).toBe(false); + }); + + it("Wartezeit verdoppelt sich, nach dem letzten Versuch ist Schluss", () => { + const minuten = (v: number) => ((naechsterVersuch(v, JETZT)?.getTime() ?? 0) - JETZT.getTime()) / 60_000; + expect([1, 2, 3, 4].map(minuten)).toEqual([5, 10, 20, 40]); + expect(naechsterVersuch(MAX_VERSUCHE, JETZT)).toBeNull(); + }); +}); + +describe("Webhook-Ziel", () => { + it("nur https, http nur ausdrücklich", () => { + expect(webhookUrlPruefen("https://hooks.example.de/x", false)).toBeNull(); + expect(webhookUrlPruefen("http://10.0.0.5/hook", false)).toMatch(/Nur https/); + expect(webhookUrlPruefen("http://10.0.0.5/hook", true)).toBeNull(); + expect(webhookUrlPruefen("ftp://example.de", true)).toMatch(/Nur https/); + expect(webhookUrlPruefen("kein url", false)).toMatch(/gültige/); + expect(webhookUrlPruefen("https://a:b@example.de", false)).toMatch(/Zugangsdaten/); + }); + + it("Kurzform ohne Pfad und Query", () => { + expect(webhookZielKurz("https://hooks.example.de:8443/geheim/token?x=1")).toBe( + "https://hooks.example.de:8443", + ); + }); +}); + +describe("Zeitpläne lesbar", () => { + it.each([ + ["30 2 * * *", "täglich um 02:30 Uhr"], + ["0 7 * * *", "täglich um 07:00 Uhr"], + ["0 7 * * 1-5", "werktags um 07:00 Uhr"], + ["*/5 * * * *", "alle 5 Minuten"], + ["0 7 1 * *", null], + ["quatsch", null], + ])("%s → %s", (ausdruck, text) => { + expect(cronBeschreiben(ausdruck)).toBe(text); + }); +}); + +describe("Einstellungen", () => { + const gueltig = { + emailAktiv: true, + emailServer: "smtp.office365.com", + emailPort: "587", + emailSicherheit: "STARTTLS" as const, + emailAbsender: "sshkv@example.de", + emailBenutzer: "sshkv@example.de", + emailPasswortEntfernen: false, + emailEmpfaenger: ["a@example.de"], + webhookAktiv: false, + webhookUrl: "", + webhookHttpErlaubt: false, + webhookGeheimnisEntfernen: false, + anlaesse: ["drift" as const], + }; + + it("Vorbelegung für Microsoft 365", () => { + expect(STANDARD_BENACHRICHTIGUNG.email).toMatchObject({ + server: "smtp.office365.com", + port: 587, + sicherheit: "STARTTLS", + }); + }); + + it("Empfängerliste aus Zeilen und Kommas, ohne Dubletten", () => { + expect(empfaengerAus("a@x.de, b@x.de\n\nb@x.de;c@x.de")).toEqual(["a@x.de", "b@x.de", "c@x.de"]); + }); + + it("prüft Pflichtfelder nur für eingeschaltete Kanäle", () => { + expect(benachrichtigungSchema.safeParse(gueltig).success).toBe(true); + const ohne = benachrichtigungSchema.safeParse({ ...gueltig, emailEmpfaenger: [] }); + expect(ohne.success).toBe(false); + expect( + benachrichtigungSchema.safeParse({ + ...gueltig, + emailAktiv: false, + emailEmpfaenger: [], + emailAbsender: "", + }).success, + ).toBe(true); + }); + + it("lehnt http-Webhooks ohne Häkchen und falsche Adressen ab", () => { + const http = benachrichtigungSchema.safeParse({ + ...gueltig, + webhookAktiv: true, + webhookUrl: "http://10.0.0.1/", + }); + expect(http.success).toBe(false); + expect(http.error?.issues[0]?.path).toEqual(["webhookUrl"]); + expect( + benachrichtigungSchema.safeParse({ + ...gueltig, + webhookAktiv: true, + webhookUrl: "http://10.0.0.1/", + webhookHttpErlaubt: true, + }).success, + ).toBe(true); + const falsch = benachrichtigungSchema.safeParse({ ...gueltig, emailEmpfaenger: ["kein-adresse"] }); + expect(falsch.error?.issues[0]?.message).toMatch(/keine gültige E-Mail-Adresse/); + }); + + it("die Ansicht kennt nur „gesetzt“, nie den Wert", () => { + const gespeichert = gespeichertLesen({ + email: { passwort: "v1.chiffrat" }, + webhook: { geheimnis: "v1.anderes" }, + }); + const ansicht = alsAnsicht(gespeichert); + expect(ansicht.email.passwortGesetzt).toBe(true); + expect(ansicht.webhook.geheimnisGesetzt).toBe(true); + expect(JSON.stringify(ansicht)).not.toMatch(/chiffrat|anderes/); + }); +}); diff --git a/tests/benachrichtigung.test.ts b/tests/benachrichtigung.test.ts new file mode 100644 index 0000000..e19d0a2 --- /dev/null +++ b/tests/benachrichtigung.test.ts @@ -0,0 +1,354 @@ +import { afterAll, beforeEach, describe, expect, it, vi } from "vitest"; +import type { Nachricht } from "@/lib/benachrichtigung/nachrichten"; +import { EINSTELLUNG_BENACHRICHTIGUNG } from "@/lib/benachrichtigung/einstellungen"; +import { prisma } from "@/lib/db"; +import { entschluesseln } from "@/lib/geheimnisse"; +import { einstellungenSeite } from "@/server/queries/einstellungen"; +import { + benachrichtigungLesen, + benachrichtigungSpeichern, + testAnfordern, +} from "@/server/services/benachrichtigung"; +import { FachFehler } from "@/server/services/fachfehler"; +import { + hostKeyMeldungenVersenden, + taktVersenden, + testVersenden, + zusammenfassungVersenden, +} from "@/worker/benachrichtigung/versand"; +import { datenbankLeeren } from "./hilfen/db"; +import { warteschlangeStoppen } from "./hilfen/vorgang"; + +/** + * Benachrichtigungen gegen die Testdatenbank (#028): Einstellungen mit verschluesselten + * Geheimnissen und das Versandprotokoll gegen Doppelmeldungen. Die Versandwege selbst sind + * hier ersetzt – gegen Mailpit und einen echten HTTP-Empfaenger laeuft + * tests/integration/benachrichtigung.test.ts. + */ +const versand = vi.hoisted(() => ({ + gesendet: [] as { kanal: string; nachricht: Nachricht }[], + fehler: null as string | null, +})); +vi.mock("@/worker/benachrichtigung/kanaele", async (original) => { + const echt = await original(); + const senden = (kanal: string) => + vi.fn(async (_zugang: unknown, nachricht: Nachricht) => { + if (versand.fehler) throw new echt.ZustellFehler(versand.fehler); + versand.gesendet.push({ kanal, nachricht }); + }); + return { ...echt, perEmailSenden: senden("EMAIL"), perWebhookSenden: senden("WEBHOOK") }; +}); + +const AKTEUR = { id: "admin", name: "Ada Admin" }; +const PASSWORT = "Sehr-Geheim-SMTP-42"; +const GEHEIMNIS = "webhook-hmac-geheimnis-17"; + +const EINGABE = { + emailAktiv: true, + emailServer: "smtp.office365.com", + emailPort: "587", + emailSicherheit: "STARTTLS" as const, + emailAbsender: "sshkv@example.de", + emailBenutzer: "sshkv@example.de", + emailPasswort: PASSWORT, + emailPasswortEntfernen: false, + emailEmpfaenger: ["admin@example.de"], + webhookAktiv: false, + webhookUrl: "https://hooks.example.de/geheimer-pfad", + webhookHttpErlaubt: false, + webhookGeheimnis: GEHEIMNIS, + webhookGeheimnisEntfernen: false, + anlaesse: ["drift", "ablauf", "abgelaufen", "unerreichbar", "hostkey"] as ( + "drift" | "ablauf" | "abgelaufen" | "unerreichbar" | "hostkey" + )[], +}; + +afterAll(async () => { + await warteschlangeStoppen(); +}); + +beforeEach(async () => { + await datenbankLeeren(); + versand.gesendet = []; + versand.fehler = null; +}); + +async function alles(): Promise { + const teile = await Promise.all([ + prisma.einstellung.findMany(), + prisma.protokoll.findMany(), + prisma.zustellung.findMany(), + prisma.vorgang.findMany(), + ]); + return JSON.stringify(teile, (_k, w: unknown) => (typeof w === "bigint" ? w.toString() : w)); +} + +describe("Einstellungen", () => { + it("speichert Passwort und Geheimnis nur verschlüsselt", async () => { + await benachrichtigungSpeichern(EINGABE, AKTEUR); + const gespeichert = await benachrichtigungLesen(); + expect(gespeichert.email.passwort).toMatch(/^v1\./); + expect(entschluesseln(gespeichert.email.passwort!)).toBe(PASSWORT); + expect(entschluesseln(gespeichert.webhook.geheimnis!)).toBe(GEHEIMNIS); + const text = await alles(); + expect(text).not.toContain(PASSWORT); + expect(text).not.toContain(GEHEIMNIS); + const protokoll = await prisma.protokoll.findFirstOrThrow({ + where: { aktion: "einstellungen.benachrichtigungen.geaendert" }, + }); + expect(protokoll.details).toMatchObject({ smtpZugangGeaendert: true, signaturSchluesselGeaendert: true }); + }); + + it("die Seite liefert nie Klartext oder Chiffrat", async () => { + await benachrichtigungSpeichern(EINGABE, AKTEUR); + const gespeichert = await benachrichtigungLesen(); + const seite = JSON.stringify(await einstellungenSeite()); + expect(seite).not.toContain(PASSWORT); + expect(seite).not.toContain(GEHEIMNIS); + expect(seite).not.toContain(gespeichert.email.passwort!); + expect(seite).not.toContain(gespeichert.webhook.geheimnis!); + expect(seite).toContain('"passwortGesetzt":true'); + }); + + it("leeres Feld behält, Häkchen entfernt", async () => { + await benachrichtigungSpeichern(EINGABE, AKTEUR); + const vorher = await benachrichtigungLesen(); + await benachrichtigungSpeichern( + { ...EINGABE, emailPasswort: undefined, webhookGeheimnis: undefined }, + AKTEUR, + ); + const behalten = await benachrichtigungLesen(); + expect(behalten.email.passwort).toBe(vorher.email.passwort); + expect(behalten.webhook.geheimnis).toBe(vorher.webhook.geheimnis); + await benachrichtigungSpeichern( + { ...EINGABE, emailPasswort: undefined, webhookGeheimnis: undefined, emailPasswortEntfernen: true }, + AKTEUR, + ); + const entfernt = await benachrichtigungLesen(); + expect(entfernt.email.passwort).toBeNull(); + expect(entfernt.webhook.geheimnis).toBe(vorher.webhook.geheimnis); + }); + + it("ungültige Eingaben werden zu Feldfehlern", async () => { + const fehler = await benachrichtigungSpeichern( + { ...EINGABE, webhookAktiv: true, webhookUrl: "http://intern/hook" }, + AKTEUR, + ).catch((e: unknown) => e); + expect(fehler).toBeInstanceOf(FachFehler); + expect((fehler as FachFehler).feldfehler["webhookUrl"]).toMatch(/Nur https/); + expect(await prisma.einstellung.count({ where: { schluessel: EINSTELLUNG_BENACHRICHTIGUNG } })).toBe(0); + }); + + it("Testnachricht nur für vollständig eingetragene Kanäle", async () => { + const admin = await prisma.benutzer.create({ data: { name: "Ada Admin", rolle: "ADMIN" } }); + await expect(testAnfordern("EMAIL", admin.id)).rejects.toThrow(/Erst Server/); + await benachrichtigungSpeichern(EINGABE, AKTEUR); + const id = await testAnfordern("EMAIL", admin.id); + const vorgang = await prisma.vorgang.findUniqueOrThrow({ where: { id } }); + expect(vorgang).toMatchObject({ art: "BENACHRICHTIGUNG_TEST", eingabe: { kanal: "EMAIL" } }); + }); +}); + +// ---------------------------------------------------------------- Versandprotokoll + +const JETZT = new Date("2026-10-12T05:00:00Z"); +const spaeter = (minuten: number) => new Date(JETZT.getTime() + minuten * 60_000); +let zaehler = 0; + +async function hostMitDrift() { + zaehler += 1; + const host = await prisma.host.create({ + data: { name: `srv-${zaehler}`, adresse: `10.0.0.${zaehler}`, bootstrapAm: JETZT, erreichbar: true }, + }); + const abweichung = await prisma.abweichung.create({ + data: { + hostId: host.id, + art: "UNBEKANNTER_SCHLUESSEL", + zielbenutzer: "root", + details: { text: "fremd" }, + }, + }); + return { host, abweichung }; +} + +async function schluessel(ablaufAm: Date) { + zaehler += 1; + return prisma.schluessel.create({ + data: { + name: `Schlüssel ${zaehler}`, + slug: `s-${zaehler}`, + typ: "ED25519", + kategorie: "DIENST", + publicKey: "ssh-ed25519 AAAA test", + fingerprint: `SHA256:t${zaehler}`, + kommentar: "t", + ablaufAm, + }, + }); +} + +describe("Versandprotokoll", () => { + beforeEach(async () => { + await benachrichtigungSpeichern({ ...EINGABE, webhookAktiv: true }, AKTEUR); + versand.gesendet = []; + }); + + it("meldet eine Abweichung je Kanal genau einmal", async () => { + const { abweichung } = await hostMitDrift(); + expect(await zusammenfassungVersenden(JETZT)).toEqual({ gesendet: 2, fehlgeschlagen: 0 }); + expect(versand.gesendet.map((g) => g.kanal).sort()).toEqual(["EMAIL", "WEBHOOK"]); + expect(await zusammenfassungVersenden(spaeter(60))).toEqual({ gesendet: 0, fehlgeschlagen: 0 }); + + const zeilen = await prisma.zustellung.findMany({ where: { anlass: `drift:${abweichung.id}` } }); + expect(zeilen.map((z) => z.ergebnis)).toEqual(["GESENDET", "GESENDET"]); + const protokoll = await prisma.protokoll.findMany({ where: { aktion: "benachrichtigung.gesendet" } }); + expect(protokoll).toHaveLength(2); + expect(JSON.stringify(protokoll, (_k, w: unknown) => (typeof w === "bigint" ? 0 : w))).not.toContain( + "geheimer-pfad", + ); + }); + + it("eine neue Abweichung kommt in die nächste Zusammenfassung, die alte nicht noch einmal", async () => { + await hostMitDrift(); + await zusammenfassungVersenden(JETZT); + versand.gesendet = []; + const { host } = await hostMitDrift(); + await zusammenfassungVersenden(spaeter(24 * 60)); + const email = versand.gesendet.find((g) => g.kanal === "EMAIL")!.nachricht; + expect(email.betreff).toContain("1 neue Abweichung"); + expect(email.text).toContain(host.name); + expect(email.text).not.toContain("srv-1 "); + }); + + it("wiederholt Fehlschläge begrenzt und nur nach der Wartezeit", async () => { + await hostMitDrift(); + versand.fehler = "SMTP: 535 Authentication unsuccessful"; + expect(await zusammenfassungVersenden(JETZT)).toEqual({ gesendet: 0, fehlgeschlagen: 2 }); + const zeile = await prisma.zustellung.findFirstOrThrow({ where: { kanal: "EMAIL" } }); + expect(zeile).toMatchObject({ + ergebnis: "FEHLGESCHLAGEN", + versuche: 1, + fehler: "SMTP: 535 Authentication unsuccessful", + }); + expect(zeile.naechsterVersuchAm).toEqual(spaeter(5)); + expect(await prisma.protokoll.count({ where: { aktion: "benachrichtigung.fehlgeschlagen" } })).toBe(2); + + // Vor Ablauf der Wartezeit nichts; danach holt der Takt nach. + expect(await taktVersenden(spaeter(2))).toEqual({ gesendet: 0, fehlgeschlagen: 0 }); + versand.fehler = null; + expect(await taktVersenden(spaeter(6))).toEqual({ gesendet: 2, fehlgeschlagen: 0 }); + expect(await prisma.zustellung.findFirstOrThrow({ where: { kanal: "EMAIL" } })).toMatchObject({ + ergebnis: "GESENDET", + versuche: 2, + naechsterVersuchAm: null, + }); + + // Der Takt verschickt nichts Neues – das wartet auf die Zusammenfassung. + await hostMitDrift(); + expect(await taktVersenden(spaeter(20))).toEqual({ gesendet: 0, fehlgeschlagen: 0 }); + }); + + it("gibt nach fünf Versuchen auf", async () => { + await benachrichtigungSpeichern({ ...EINGABE, webhookAktiv: false }, AKTEUR); + await hostMitDrift(); + versand.fehler = "kaputt"; + await zusammenfassungVersenden(JETZT); + for (const minuten of [10, 30, 60, 120, 240, 480]) await taktVersenden(spaeter(minuten)); + const zeile = await prisma.zustellung.findFirstOrThrow(); + expect(zeile).toMatchObject({ versuche: 5, naechsterVersuchAm: null, ergebnis: "FEHLGESCHLAGEN" }); + }); + + it("Ablauf: je Stufe genau eine Meldung", async () => { + await benachrichtigungSpeichern({ ...EINGABE, webhookAktiv: false }, AKTEUR); + const tag = 24 * 60; + await schluessel(spaeter(20 * tag)); + await zusammenfassungVersenden(JETZT); + await zusammenfassungVersenden(spaeter(1 * tag)); + await zusammenfassungVersenden(spaeter(7 * tag)); // noch 13 Tage → Stufe 14 + await zusammenfassungVersenden(spaeter(8 * tag)); + await zusammenfassungVersenden(spaeter(14 * tag)); // noch 6 Tage → Stufe 7 + await zusammenfassungVersenden(spaeter(19 * tag)); + const anlaesse = (await prisma.zustellung.findMany({ orderBy: { zeitpunkt: "asc" } })).map((z) => + z.anlass.split(":").slice(0, 3).join(":"), + ); + expect(anlaesse).toEqual([ + expect.stringMatching(/^ablauf:.+:30$/), + expect.stringMatching(/^ablauf:.+:14$/), + expect.stringMatching(/^ablauf:.+:7$/), + ]); + expect(versand.gesendet).toHaveLength(3); + }); + + it("abgelaufen und noch ausgerollt; unerreichbar einmal je Ausfall", async () => { + await benachrichtigungSpeichern({ ...EINGABE, webhookAktiv: false }, AKTEUR); + const host = await prisma.host.create({ + data: { name: "srv-weg", adresse: "10.9.9.9", bootstrapAm: JETZT, erreichbar: false }, + }); + const alt = await schluessel(spaeter(-60)); + await prisma.publicVerwendung.create({ + data: { schluesselId: alt.id, hostId: host.id, zielbenutzer: "root", zustand: "AUSGEROLLT" }, + }); + await zusammenfassungVersenden(JETZT); + const text = versand.gesendet[0]!.nachricht.text; + expect(text).toContain("Hosts nicht erreichbar:"); + expect(text).toContain("srv-weg (10.9.9.9) – noch nie erfolgreich abgeglichen"); + expect(text).toContain(`${alt.name} – abgelaufen am 12.10.2026, noch auf srv-weg`); + + versand.gesendet = []; + await zusammenfassungVersenden(spaeter(24 * 60)); + expect(versand.gesendet).toHaveLength(0); + + // Erholt und wieder ausgefallen: neuer Ausfall, neue Meldung. + await prisma.host.update({ where: { id: host.id }, data: { letzterAbgleichAm: spaeter(25 * 60) } }); + await zusammenfassungVersenden(spaeter(48 * 60)); + expect(versand.gesendet).toHaveLength(1); + expect(versand.gesendet[0]!.nachricht.betreff).toContain("1 Host nicht erreichbar"); + }); + + it("ausgeschaltete Anlässe werden nicht gemeldet", async () => { + await benachrichtigungSpeichern({ ...EINGABE, webhookAktiv: false, anlaesse: ["ablauf"] }, AKTEUR); + await hostMitDrift(); + expect(await zusammenfassungVersenden(JETZT)).toEqual({ gesendet: 0, fehlgeschlagen: 0 }); + }); + + it("geänderter Host-Key: sofort im Takt, nicht in der Zusammenfassung, nicht als unerreichbar", async () => { + const host = await prisma.host.create({ + data: { name: "srv-mitm", adresse: "10.6.6.6", bootstrapAm: JETZT, erreichbar: false }, + }); + await prisma.abweichung.create({ + data: { + hostId: host.id, + art: "HOSTKEY_GEAENDERT", + fingerprint: "SHA256:neu", + details: { erwartet: "SHA256:alt", algorithmus: "ssh-ed25519" }, + }, + }); + expect(await zusammenfassungVersenden(JETZT)).toEqual({ gesendet: 0, fehlgeschlagen: 0 }); + expect(await taktVersenden(JETZT)).toEqual({ gesendet: 2, fehlgeschlagen: 0 }); + expect(versand.gesendet[0]!.nachricht.betreff).toBe( + "[sshkv] DRINGEND: Host-Key von srv-mitm hat sich geändert", + ); + expect(await hostKeyMeldungenVersenden(spaeter(5))).toEqual({ gesendet: 0, fehlgeschlagen: 0 }); + }); + + it("Testnachrichten landen im Protokoll und werden nicht wiederholt", async () => { + versand.fehler = "Webhook antwortet mit HTTP 500."; + expect(await testVersenden("WEBHOOK", AKTEUR)).toBe("Webhook antwortet mit HTTP 500."); + const zeile = await prisma.zustellung.findFirstOrThrow(); + expect(zeile.anlass).toMatch(/^test:/); + expect(zeile.naechsterVersuchAm).toBeNull(); + const protokoll = await prisma.protokoll.findFirstOrThrow({ + where: { aktion: "benachrichtigung.fehlgeschlagen" }, + }); + expect(protokoll).toMatchObject({ + akteurName: "Ada Admin", + details: { ziel: "https://hooks.example.de" }, + }); + const seite = await einstellungenSeite(); + expect(seite.zustellungen[0]).toMatchObject({ + kanal: "WEBHOOK", + ergebnis: "FEHLGESCHLAGEN", + anlaesse: 1, + }); + }); +}); diff --git a/tests/integration/benachrichtigung.test.ts b/tests/integration/benachrichtigung.test.ts new file mode 100644 index 0000000..654ad43 --- /dev/null +++ b/tests/integration/benachrichtigung.test.ts @@ -0,0 +1,200 @@ +import { randomUUID } from "node:crypto"; +import { createServer, type IncomingHttpHeaders, type Server } from "node:http"; +import type { AddressInfo } from "node:net"; +import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import { signatur } from "@/lib/benachrichtigung/nachrichten"; +import { prisma } from "@/lib/db"; +import { benachrichtigungSpeichern } from "@/server/services/benachrichtigung"; +import { taktVersenden, testVersenden, zusammenfassungVersenden } from "@/worker/benachrichtigung/versand"; +import { datenbankLeeren } from "../hilfen/db"; + +/** + * Benachrichtigungen gegen echte Gegenstellen (#028): Mailpit fuer SMTP und ein lokaler + * HTTP-Empfaenger fuer den Webhook. Mailpit muss laufen, z. B. + * docker run -d --name sshkv-mailpit -e MP_SMTP_DISABLE_RDNS=true \ + * -p 127.0.0.1:1026:1025 -p 127.0.0.1:8026:8025 axllent/mailpit + * (ohne MP_SMTP_DISABLE_RDNS wartet Mailpit je Verbindung fuenf Sekunden auf Reverse-DNS). + * Adressen ueber SSHKV_TEST_SMTP (host:port) und SSHKV_TEST_MAILPIT_API. + */ +const SMTP = process.env["SSHKV_TEST_SMTP"]?.trim() || "127.0.0.1:1026"; +const MAILPIT = (process.env["SSHKV_TEST_MAILPIT_API"]?.trim() || "http://127.0.0.1:8026").replace( + /\/+$/, + "", +); +const [SMTP_HOST, SMTP_PORT] = [SMTP.slice(0, SMTP.lastIndexOf(":")), SMTP.slice(SMTP.lastIndexOf(":") + 1)]; + +const AKTEUR = { id: "admin", name: "Ada Admin" }; +const GEHEIMNIS = "integration-webhook-geheimnis"; + +type Empfangen = { kopf: IncomingHttpHeaders; koerper: string }; +let empfaenger: Server; +let empfangen: Empfangen[] = []; +let antwortStatus = 204; +let webhookUrl = ""; + +beforeAll(async () => { + const antwort = await fetch(`${MAILPIT}/api/v1/info`).catch(() => null); + if (!antwort?.ok) throw new Error(`Mailpit unter ${MAILPIT} nicht erreichbar – siehe Kopf dieser Datei.`); + empfaenger = createServer((anfrage, antwort) => { + const teile: Buffer[] = []; + anfrage.on("data", (teil: Buffer) => teile.push(teil)); + anfrage.on("end", () => { + empfangen.push({ kopf: anfrage.headers, koerper: Buffer.concat(teile).toString("utf8") }); + antwort.writeHead(antwortStatus).end(); + }); + }); + await new Promise((fertig) => empfaenger.listen(0, "127.0.0.1", fertig)); + webhookUrl = `http://127.0.0.1:${(empfaenger.address() as AddressInfo).port}/hook/sshkv`; +}); + +afterAll(async () => { + await new Promise((fertig) => empfaenger.close(fertig)); +}); + +let postfach = ""; +beforeEach(async () => { + await datenbankLeeren(); + empfangen = []; + antwortStatus = 204; + // Eigene Adresse je Test: Mailpit wird nicht geleert, gesucht wird nach dem Empfaenger. + postfach = `lauf-${randomUUID().slice(0, 8)}@sshkv.test`; +}); + +async function einstellen(sicherheit: "KEINE" | "STARTTLS" = "KEINE") { + await benachrichtigungSpeichern( + { + emailAktiv: true, + emailServer: SMTP_HOST, + emailPort: SMTP_PORT, + emailSicherheit: sicherheit, + emailAbsender: "sshkv@sshkv.test", + emailBenutzer: "", + emailPasswortEntfernen: false, + emailEmpfaenger: [postfach], + webhookAktiv: true, + webhookUrl, + webhookHttpErlaubt: true, + webhookGeheimnis: GEHEIMNIS, + webhookGeheimnisEntfernen: false, + anlaesse: ["drift", "ablauf", "abgelaufen", "unerreichbar", "hostkey"], + }, + AKTEUR, + ); +} + +type MailpitTreffer = { ID: string; Subject: string; To: { Address: string }[] }; + +async function postfachLesen(): Promise { + // Mailpit nimmt die Nachricht asynchron an – kurz warten, bis sie suchbar ist. + for (let versuch = 0; versuch < 20; versuch += 1) { + const antwort = await fetch(`${MAILPIT}/api/v1/search?query=${encodeURIComponent(`to:${postfach}`)}`); + const daten = (await antwort.json()) as { messages: MailpitTreffer[] }; + if (daten.messages.length > 0) return daten.messages; + await new Promise((weiter) => setTimeout(weiter, 150)); + } + return []; +} + +async function mailLesen(id: string): Promise<{ Text: string; HTML: string; Subject: string }> { + const antwort = await fetch(`${MAILPIT}/api/v1/message/${id}`); + return (await antwort.json()) as { Text: string; HTML: string; Subject: string }; +} + +describe("E-Mail über Mailpit", () => { + it("Testnachricht kommt an", async () => { + await einstellen(); + expect(await testVersenden("EMAIL", AKTEUR)).toBeNull(); + const treffer = await postfachLesen(); + expect(treffer).toHaveLength(1); + expect(treffer[0]?.Subject).toBe("[sshkv] Testnachricht"); + const mail = await mailLesen(treffer[0]!.ID); + expect(mail.Text).toContain("Versand per E-Mail funktioniert"); + expect(mail.HTML).toContain("Testnachricht"); + }); + + it("Zusammenfassung mit Drift je Host, Text und HTML", async () => { + await einstellen(); + const host = await prisma.host.create({ + data: { name: "srv-mail", adresse: "10.1.1.1", bootstrapAm: new Date(), erreichbar: true }, + }); + await prisma.abweichung.create({ + data: { + hostId: host.id, + art: "UNBEKANNTER_SCHLUESSEL", + zielbenutzer: "root", + fingerprint: "SHA256:fremd", + details: { text: "Kommentar fett" }, + }, + }); + expect(await zusammenfassungVersenden()).toEqual({ gesendet: 2, fehlgeschlagen: 0 }); + const treffer = await postfachLesen(); + expect(treffer[0]?.Subject).toBe("[sshkv] Zusammenfassung: 1 neue Abweichung"); + const mail = await mailLesen(treffer[0]!.ID); + expect(mail.Text).toContain("srv-mail (10.1.1.1):"); + expect(mail.Text).toContain("Unbekannter Schlüssel – Benutzer root – SHA256:fremd"); + expect(mail.HTML).toContain("Kommentar <b>fett</b>"); + + // Zweiter Lauf: nichts Neues, keine zweite Mail. + expect(await zusammenfassungVersenden()).toEqual({ gesendet: 0, fehlgeschlagen: 0 }); + expect(await postfachLesen()).toHaveLength(1); + }); + + it("STARTTLS ist Pflicht, wenn eingestellt – ohne TLS kein Versand", async () => { + await einstellen("STARTTLS"); + const fehler = await testVersenden("EMAIL", AKTEUR); + expect(fehler).toMatch(/^SMTP: /); + const zeile = await prisma.zustellung.findFirstOrThrow({ where: { kanal: "EMAIL" } }); + expect(zeile.ergebnis).toBe("FEHLGESCHLAGEN"); + }); +}); + +describe("Webhook an lokalen Empfänger", () => { + it("signiert den Body mit HMAC-SHA256", async () => { + await einstellen(); + expect(await testVersenden("WEBHOOK", AKTEUR)).toBeNull(); + expect(empfangen).toHaveLength(1); + const { kopf, koerper } = empfangen[0]!; + expect(kopf["content-type"]).toMatch(/^application\/json/); + expect(kopf["x-sshkv-ereignis"]).toBe("test"); + expect(kopf["x-sshkv-signatur"]).toBe(signatur(koerper, GEHEIMNIS)); + expect(JSON.parse(koerper)).toMatchObject({ ereignis: "test", betreff: "[sshkv] Testnachricht" }); + }); + + it("geänderter Host-Key geht sofort raus; HTTP 500 wird später wiederholt", async () => { + await einstellen(); + const host = await prisma.host.create({ + data: { name: "srv-hook", adresse: "10.2.2.2", bootstrapAm: new Date() }, + }); + await prisma.abweichung.create({ + data: { + hostId: host.id, + art: "HOSTKEY_GEAENDERT", + fingerprint: "SHA256:neu", + details: { erwartet: "SHA256:alt", algorithmus: "ssh-ed25519" }, + }, + }); + antwortStatus = 500; + const jetzt = new Date(); + expect(await taktVersenden(jetzt)).toEqual({ gesendet: 1, fehlgeschlagen: 1 }); + const zeile = await prisma.zustellung.findFirstOrThrow({ where: { kanal: "WEBHOOK" } }); + expect(zeile).toMatchObject({ ergebnis: "FEHLGESCHLAGEN", fehler: "Webhook antwortet mit HTTP 500." }); + + antwortStatus = 204; + empfangen = []; + expect(await taktVersenden(new Date(jetzt.getTime() + 6 * 60_000))).toEqual({ + gesendet: 1, + fehlgeschlagen: 0, + }); + const json = JSON.parse(empfangen[0]!.koerper) as Record; + expect(json).toMatchObject({ + ereignis: "hostkey.geaendert", + dringend: true, + host: { name: "srv-hook", adresse: "10.2.2.2" }, + befunde: [{ fingerprint: "SHA256:neu", erwartet: "SHA256:alt" }], + }); + expect(typeof json["zeitstempel"]).toBe("string"); + expect(empfangen[0]!.kopf["x-sshkv-signatur"]).toBe(signatur(empfangen[0]!.koerper, GEHEIMNIS)); + // Die E-Mail ging beim ersten Mal durch und kommt nicht noch einmal. + expect(await postfachLesen()).toHaveLength(1); + }); +}); From 3e19b11a80f217d5d3273ddc85873689143209ba Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Mon, 12 Oct 2026 16:54:56 +0200 Subject: [PATCH 2/2] test(einstellungen): E2E, Screenshots und Issue-Abschluss (#028) Der E2E-Lauf belegt im gebauten Stand, was die Unit- und DB-Tests nur einzeln zeigen: ein Admin speichert SMTP, die Testnachricht kommt ueber den Worker in Mailpit an, das Passwort kehrt nie in die Seite zurueck, und ein Leser sieht keine Aendern-Knoepfe. Die Screenshots (1440/390 px) halten das Layout der neuen Seite fuer die Anleitung fest. Co-Authored-By: Claude Opus 5.5 --- .../bilder/einstellungen-desktop.png | Bin 0 -> 292189 bytes docs/anleitung/bilder/einstellungen-mobil.png | Bin 0 -> 236900 bytes docs/issues/028-benachrichtigungen.md | 54 +++++++++- scripts/screenshots.ts | 2 + tests/e2e/einstellungen.spec.ts | 102 ++++++++++++++++++ 5 files changed, 154 insertions(+), 4 deletions(-) create mode 100644 docs/anleitung/bilder/einstellungen-desktop.png create mode 100644 docs/anleitung/bilder/einstellungen-mobil.png create mode 100644 tests/e2e/einstellungen.spec.ts diff --git a/docs/anleitung/bilder/einstellungen-desktop.png b/docs/anleitung/bilder/einstellungen-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..8d672e17ae62f2e81c68aede49935eed60ed8b82 GIT binary patch literal 292189 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%0DEY&kuxM{?6tqx}+x@ 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 AoB#j- literal 0 HcmV?d00001 diff --git a/docs/anleitung/bilder/einstellungen-mobil.png b/docs/anleitung/bilder/einstellungen-mobil.png new file mode 100644 index 0000000000000000000000000000000000000000..20f693c5491390975b407cece16b359ab0345f85 GIT binary patch literal 236900 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

uKtA_aO98*YHjcG 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 literal 0 HcmV?d00001 diff --git a/docs/issues/028-benachrichtigungen.md b/docs/issues/028-benachrichtigungen.md index e2aa695..2813732 100644 --- a/docs/issues/028-benachrichtigungen.md +++ b/docs/issues/028-benachrichtigungen.md @@ -1,19 +1,65 @@ # #028 Benachrichtigungen -**Status:** offen +**Status:** erledigt **Meilenstein:** v0.5.0 **Labels:** backend -**Geschätzt:** 2 h **Tatsächlich:** – +**Geschätzt:** 2 h **Tatsächlich:** 0,5 h ## Ziel E-Mail (M365 SMTP) und Webhook bei Drift und Ablauf. ## Aufgaben -- [ ] wird zu Beginn der Phase verfeinert +- [x] Einstellungsseite `/einstellungen` statt Platzhalter: lesen alle Rollen, ändern nur + `einstellungenVerwalten` (Admin). Abschnitte „Benachrichtigungen“, „Abgleich“ (Zeitpläne aus + `SSHKV_SYNC_CRON`/`SSHKV_MELDUNG_CRON`, nur Anzeige) und „Instanz“ (Version, + Deployment-Key-Fingerprint, OIDC-Anbieter, TOTP des Notfall-Admins). Platz für „Syslog“ markiert. +- [x] Kanal E-Mail (SMTP): Vorbelegung Microsoft 365 (`smtp.office365.com:587`, STARTTLS), wahlweise + TLS (465) oder unverschlüsselt (nur internes Relay, mit Warnung); Absender, Benutzer, Passwort, + Empfängerliste. +- [x] Kanal Webhook: JSON per POST, optional `X-Sshkv-Signatur: sha256=` über den Body; nur + `https://`, `http://` nur per Häkchen mit Warnung; keine Weiterleitungen, Zeitlimit 15 s. +- [x] Geheimnisse (SMTP-Passwort, Webhook-Geheimnis) mit `verschluesseln()` in `Einstellung`; + die Oberfläche bekommt nur „gesetzt“, leeres Feld behält, Häkchen entfernt. +- [x] „Testnachricht senden“ je Kanal als Vorgang `BENACHRICHTIGUNG_TEST` im Worker. +- [x] Anlässe (je einzeln schaltbar): neue Abweichungen je Host, Ablauf in 30/14/7 Tagen, + abgelaufen aber ausgerollt, Host nicht erreichbar – gesammelt in der täglichen Zusammenfassung + (`SSHKV_MELDUNG_CRON`, Standard `0 7 * * *`); geänderter Host-Key sofort (Takt alle 5 Minuten). +- [x] Versandprotokoll `Zustellung` (Migration `20261012161000_benachrichtigungen`) mit + Anlass-Fingerabdruck, Kanal, Ergebnis, Fehler, Versuchen; Prüfung vor jedem Versand, + Wiederholung nach 5/10/20/40 Minuten (höchstens 5 Versuche); „Letzte Zustellungen“ auf der Seite. +- [x] Jede Zustellung in `protokollieren()` als `benachrichtigung.gesendet`/`…fehlgeschlagen` + (Empfänger nur gezählt, Webhook nur Schema und Host). +- [x] Zeitpläne in `src/worker/index.ts`; `.env.example` und `docker-compose.yml` ergänzt. +- [x] Tests: Unit (Nachrichtenaufbau, Signatur, Stufen, Deduplizierung, Prüfungen), DB + (Einstellungen, Versandprotokoll), Integration gegen Mailpit und lokalen HTTP-Empfänger, + E2E `tests/e2e/einstellungen.spec.ts`; Screenshots `einstellungen-desktop/-mobil`. ## Akzeptanzkriterien -- [ ] wird zu Beginn der Phase verfeinert +- [x] Admin speichert SMTP-Einstellungen, die Testnachricht kommt in Mailpit an (E2E). +- [x] Das Passwort steht nie im Klartext in Datenbank, Protokoll oder Seite; das Feld zeigt nur „gesetzt“. +- [x] Leser sieht die Seite ohne Ändern- und Test-Knöpfe. +- [x] Dieselbe Abweichung, dieselbe Ablaufstufe und derselbe Ausfall werden je Kanal genau einmal gemeldet. +- [x] Fehlgeschlagene Zustellungen werden begrenzt wiederholt und sind in der Oberfläche sichtbar. +- [x] Ein geänderter Host-Key wird innerhalb von fünf Minuten gemeldet, ohne den Abgleich-Ablauf zu ändern. ## Abhängigkeiten #021 ## Notizen / Entscheidungen +- **Versand im Worker**, auch für die Testnachricht: der Webprozess braucht so keinen Weg zu + Mailserver oder Webhook-Ziel, und regulärer Versand und Test laufen über denselben Code. Die + Oberfläche verfolgt den Test wie andere Vorgänge über `VorgangsKnopf`. +- **Anlässe aus der Datenbank**, nicht aus dem Abgleich: `src/worker/ablaeufe/abgleich.ts` bleibt + unverändert; der Sammler liest offene `Abweichung`, `Host.erreichbar = false` und Ablaufdaten. + Ein verpasster Lauf holt sich der nächste. +- **Fingerabdrücke:** `drift:`, `hostkey:`, + `ablauf:::` (mit Datum, damit ein verlängerter Schlüssel neu + erinnert wird), `abgelaufen::`, + `unerreichbar::` (ändert sich nur bei gelungenem Abgleich → eine Meldung + je Ausfall). Statt „seit der letzten Meldung“ zählt das Versandprotokoll – wer Benachrichtigungen + erstmals einschaltet, bekommt die offenen Abweichungen einmal gemeldet. +- Hosts mit offenem `HOSTKEY_GEAENDERT` erscheinen nicht zusätzlich als „nicht erreichbar“. +- Der Fünf-Minuten-Takt verschickt dringende Host-Key-Meldungen und fällige Wiederholungen; + Neues aus (a)–(d) wartet auf die Zusammenfassung. Läufe im selben Worker laufen nacheinander. +- Leser sehen statt der Webhook-Adresse nur Schema und Host (Tokens im Pfad). +- Mailpit für Tests mit `MP_SMTP_DISABLE_RDNS=true` starten, sonst wartet es je Verbindung 5 s. +- `nodemailer@10.0.10` wie in ProxLedger, exakt gepinnt. diff --git a/scripts/screenshots.ts b/scripts/screenshots.ts index d691d4f..a7a59ef 100644 --- a/scripts/screenshots.ts +++ b/scripts/screenshots.ts @@ -49,6 +49,8 @@ const SEITEN: { name: string; pfad: string; oeffentlich?: boolean; folgen?: stri pfad: "/vorlagen", folgen: 'main a[aria-label="Deployment-Zugang bearbeiten"]', }, + // Benachrichtigungen, Zeitplaene, Instanz (#028) – als Admin mit Formular und Testknoepfen. + { name: "einstellungen", pfad: "/einstellungen" }, ]; const ANSICHTEN = [ diff --git a/tests/e2e/einstellungen.spec.ts b/tests/e2e/einstellungen.spec.ts new file mode 100644 index 0000000..8c6187f --- /dev/null +++ b/tests/e2e/einstellungen.spec.ts @@ -0,0 +1,102 @@ +import { expect, test, type Page } from "@playwright/test"; +import "dotenv/config"; + +/** + * Einstellungen und Benachrichtigungen im gebauten Stand (#028). Braucht neben Web und Worker + * ein Mailpit (siehe tests/integration/benachrichtigung.test.ts) unter SSHKV_TEST_SMTP und + * SSHKV_TEST_MAILPIT_API. + */ +const SMTP = process.env["SSHKV_TEST_SMTP"]?.trim() || "127.0.0.1:1026"; +const MAILPIT = (process.env["SSHKV_TEST_MAILPIT_API"]?.trim() || "http://127.0.0.1:8026").replace( + /\/+$/, + "", +); +const [SMTP_HOST, SMTP_PORT] = [SMTP.slice(0, SMTP.lastIndexOf(":")), SMTP.slice(SMTP.lastIndexOf(":") + 1)]; +const PASSWORT = "e2e-smtp-passwort-nie-sichtbar"; + +async function oidcAnmelden(page: Page, rolle: "admin" | "reader") { + await page.goto("/anmelden"); + await page.getByRole("link", { name: /Mit Mock-OIDC anmelden/ }).click(); + await page.locator(`button[data-rolle="${rolle}"]`).click(); + await page.getByRole("button", { name: "Anmelden", exact: true }).click(); + await expect(page.getByRole("heading", { name: "Übersicht" })).toBeVisible(); +} + +function emailKarte(page: Page) { + // Die innerste Section mit der Ueberschrift – die aeussere ist der Abschnitt „Benachrichtigungen“. + return page + .locator("section") + .filter({ has: page.getByRole("heading", { name: "E-Mail (SMTP)" }) }) + .last(); +} + +async function mailpitSuchen(empfaenger: string): Promise<{ Subject: string }[]> { + for (let versuch = 0; versuch < 40; versuch += 1) { + const antwort = await fetch(`${MAILPIT}/api/v1/search?query=${encodeURIComponent(`to:${empfaenger}`)}`); + const daten = (await antwort.json()) as { messages: { Subject: string }[] }; + if (daten.messages.length > 0) return daten.messages; + await new Promise((weiter) => setTimeout(weiter, 250)); + } + return []; +} + +test("Admin speichert SMTP, sendet eine Testnachricht, sie kommt in Mailpit an", async ({ page }) => { + const empfaenger = `e2e-${Date.now().toString(36)}@sshkv.test`; + await oidcAnmelden(page, "admin"); + await page.goto("/einstellungen"); + await expect(page.getByRole("heading", { name: "Einstellungen", level: 1 })).toBeVisible(); + + const karte = emailKarte(page); + await karte.getByRole("checkbox", { name: "Per E-Mail benachrichtigen" }).check(); + await karte.getByLabel("Server").fill(SMTP_HOST); + await karte.getByRole("textbox", { name: "Port" }).fill(SMTP_PORT); + await karte.getByRole("radio", { name: /Unverschlüsselt/ }).check(); + await expect(karte.getByRole("note")).toContainText("Klartext"); + await karte.getByLabel("Absender").fill("sshkv@sshkv.test"); + await karte.getByLabel("Benutzer (optional)").fill(""); + await karte.getByLabel("Passwort", { exact: true }).fill(PASSWORT); + await karte.getByLabel("Empfänger").fill(empfaenger); + await page.getByRole("button", { name: "Benachrichtigungen speichern" }).click(); + await expect(page.getByText("Einstellungen gespeichert.")).toBeVisible(); + + // Das Passwort kommt nie zurueck: Feld leer, nur „gesetzt“. + const passwort = emailKarte(page).getByLabel("Passwort", { exact: true }); + await expect(passwort).toHaveValue(""); + await expect(passwort).toHaveAttribute("placeholder", /gesetzt/); + await expect(emailKarte(page).getByText("gesetzt", { exact: true })).toBeVisible(); + await page.reload(); + expect(await page.content()).not.toContain(PASSWORT); + await expect(emailKarte(page).getByLabel("Server")).toHaveValue(SMTP_HOST); + + await emailKarte(page).getByRole("button", { name: "Testnachricht senden" }).click(); + await expect(emailKarte(page).getByText("Erledigt.")).toBeVisible({ timeout: 30_000 }); + const mails = await mailpitSuchen(empfaenger); + expect(mails.map((m) => m.Subject)).toEqual(["[sshkv] Testnachricht"]); + + const zustellungen = page + .locator("section") + .filter({ has: page.getByRole("heading", { name: "Letzte Zustellungen" }) }) + .last(); + await expect(zustellungen.getByRole("row").nth(1)).toContainText("[sshkv] Testnachricht"); + await expect(zustellungen.getByRole("row").nth(1)).toContainText("gesendet"); + + // Webhook nur mit https – http ohne Haekchen ergibt eine Feldmeldung. + await page.getByRole("textbox", { name: "Adresse", exact: true }).fill("http://10.0.0.9/hook"); + await page.getByRole("button", { name: "Benachrichtigungen speichern" }).click(); + await expect(page.locator("#feld-webhookUrl-fehler")).toContainText("Nur https://"); +}); + +test("Leser sieht die Einstellungen ohne Ändern-Knöpfe", async ({ page }) => { + await oidcAnmelden(page, "reader"); + await page.goto("/einstellungen"); + await expect(page.getByRole("heading", { name: "Einstellungen", level: 1 })).toBeVisible(); + await expect(page.getByText("Nur Ansicht – ändern dürfen Administratoren.")).toBeVisible(); + await expect(page.getByRole("button", { name: "Benachrichtigungen speichern" })).toHaveCount(0); + await expect(page.getByRole("button", { name: "Testnachricht senden" })).toHaveCount(0); + await expect(emailKarte(page).getByLabel("Server")).toBeDisabled(); + // Statt eines Passwortfelds nur der Hinweis, ob eins gesetzt ist. + await expect(page.locator('input[type="password"]')).toHaveCount(0); + await expect(emailKarte(page).getByText("gesetzt", { exact: true })).toBeVisible(); + await expect(page.getByRole("heading", { name: "Instanz" })).toBeVisible(); + await expect(page.getByRole("button", { name: /Deployment-Keys kopieren/ })).toBeVisible(); +});