Schlanker, wirklich geschützter Verwaltungsbereich für Buchungen, Zahlungen, Gutscheine, Kapazität und Camp-Einstellungen, ohne Standardpasswörter.
Umgesetzt
Better Auth mit E-Mail und Passwort, Registrierung aus, TOTP-2FA Pflicht (Migration 20260927025745_better_auth_two_factor), Passwortprüfung gegen Datenlecks, Rate Limits der Anmeldung in PostgreSQL
Konten nur über die Kommandozeile: pnpm admin:create bzw. Pod-Befehl in k8s/README.md
Jede Seite, Server-Action und der CSV-Export (/admin/export) prüfen Sitzung und 2FA selbst; Proxy (src/proxy.ts) leitet nur vorab um; Admin-Routen nicht vorab gerendert (771eeee)
Buchungsübersicht mit Filtern, Buchungsdetails mit Raten, offenen Beträgen und Fälligkeiten; Einstellungen und Freigaben; Gutscheine
Stornieren (Grund Pflicht) und Erstatten je bezahlter Rate mit Idempotenzschlüssel; alle Aktionen im AuditLog
Anmeldung lokal unter Node 24 repariert (9785eb2, 15.10.2026; Produktion mit Node 22 war nicht betroffen)
Grundlage
docs/ARCHITEKTUR.md (ADR-7), docs/BETRIEB.md Abschnitt 8 (Storno und Erstattung), tests/admin.integration.test.ts. Ob im Cluster bereits ein Admin-Konto angelegt ist, ist im Repo nicht dokumentiert.
Status
Code: ja · Geprüft: ja (Tests, manuelle HTTP-Prüfung laut docs/TESTS.md) · Gemergt: ja · Produktiv: ja (im Cluster belegt ausgerollt sha-5a88f3d am 13.10.2026); 9785eb2 nicht gebaut, siehe #20
Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)
## Ziel
Schlanker, wirklich geschützter Verwaltungsbereich für Buchungen, Zahlungen, Gutscheine, Kapazität und Camp-Einstellungen, ohne Standardpasswörter.
## Umgesetzt
- [x] Better Auth mit E-Mail und Passwort, Registrierung aus, TOTP-2FA Pflicht (Migration `20260927025745_better_auth_two_factor`), Passwortprüfung gegen Datenlecks, Rate Limits der Anmeldung in PostgreSQL
- [x] Konten nur über die Kommandozeile: `pnpm admin:create` bzw. Pod-Befehl in `k8s/README.md`
- [x] Jede Seite, Server-Action und der CSV-Export (`/admin/export`) prüfen Sitzung und 2FA selbst; Proxy (`src/proxy.ts`) leitet nur vorab um; Admin-Routen nicht vorab gerendert (`771eeee`)
- [x] Buchungsübersicht mit Filtern, Buchungsdetails mit Raten, offenen Beträgen und Fälligkeiten; Einstellungen und Freigaben; Gutscheine
- [x] Stornieren (Grund Pflicht) und Erstatten je bezahlter Rate mit Idempotenzschlüssel; alle Aktionen im AuditLog
- [x] Anmeldung lokal unter Node 24 repariert (`9785eb2`, 15.10.2026; Produktion mit Node 22 war nicht betroffen)
## Grundlage
`docs/ARCHITEKTUR.md` (ADR-7), `docs/BETRIEB.md` Abschnitt 8 (Storno und Erstattung), `tests/admin.integration.test.ts`. Ob im Cluster bereits ein Admin-Konto angelegt ist, ist im Repo nicht dokumentiert.
## Status
Code: ja · Geprüft: ja (Tests, manuelle HTTP-Prüfung laut docs/TESTS.md) · Gemergt: ja · Produktiv: ja (im Cluster belegt ausgerollt sha-5a88f3d am 13.10.2026); 9785eb2 nicht gebaut, siehe #20
Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ziel
Schlanker, wirklich geschützter Verwaltungsbereich für Buchungen, Zahlungen, Gutscheine, Kapazität und Camp-Einstellungen, ohne Standardpasswörter.
Umgesetzt
20260927025745_better_auth_two_factor), Passwortprüfung gegen Datenlecks, Rate Limits der Anmeldung in PostgreSQLpnpm admin:createbzw. Pod-Befehl ink8s/README.md/admin/export) prüfen Sitzung und 2FA selbst; Proxy (src/proxy.ts) leitet nur vorab um; Admin-Routen nicht vorab gerendert (771eeee)9785eb2, 15.10.2026; Produktion mit Node 22 war nicht betroffen)Grundlage
docs/ARCHITEKTUR.md(ADR-7),docs/BETRIEB.mdAbschnitt 8 (Storno und Erstattung),tests/admin.integration.test.ts. Ob im Cluster bereits ein Admin-Konto angelegt ist, ist im Repo nicht dokumentiert.Status
Code: ja · Geprüft: ja (Tests, manuelle HTTP-Prüfung laut docs/TESTS.md) · Gemergt: ja · Produktiv: ja (im Cluster belegt ausgerollt sha-5a88f3d am 13.10.2026);
9785eb2nicht gebaut, siehe #20Stand: 2026-10-16 (Quelle: git origin/main
9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)