Commit graph

17 commits

Author SHA1 Message Date
d18bd30adf test(auth): Story 5.1 — Audit-Coverage-Integrationstest (login_ok, PII-frei) 2026-07-07 23:16:04 +02:00
66717014d0 harden(auth): cookie secure-by-default, sendMagicLink try/catch (Neutralität), :id-Validierung (qwen-Backend-Gate, verifiziert) 2026-07-07 23:07:32 +02:00
480a4c3b1c harden(auth): atomarer Token-Claim in consumeLoginToken (TOCTOU-frei, qwen-Gate) 2026-07-07 22:54:11 +02:00
facbb48bbf feat(auth): Stories 3.2/3.3 — Admin-Nutzerverwaltung (add/list/remove) + Last-Admin-Guard + CASCADE 2026-07-07 22:47:22 +02:00
846ca4f83a feat(auth): Story 3.1 — /api/state pro Nutzer hinter Auth (Anti-IDOR), documents (user_id,key), Startup seed+migrate 2026-07-07 22:46:25 +02:00
0b25c7b493 feat(auth): Stories 2.3-2.5 — Auth-Routen (neutral request, scanner-sicheres confirm, me/logout, Notzugang) + cookie-parser 2026-07-07 22:41:11 +02:00
b08988c2a5 feat(auth): Story 2.2 — Mailer (nodemailer + Konsolen-Fallback) 2026-07-07 22:37:02 +02:00
08c32bcf0f feat(auth): Story 2.1 — In-Memory Rate-Limiter (pro Key) 2026-07-07 22:36:10 +02:00
07f1bccff0 feat(auth): Story 1.5 — atomare, idempotente Migration Alt-Daten → Admin 2026-07-07 22:34:30 +02:00
c994dbf3b5 feat(auth): Story 1.4 — seedAdmin + Fail-Fast auf ADMIN_EMAIL 2026-07-07 22:33:14 +02:00
c1fc60cf02 feat(auth): Story 1.3 — Sessions (idle+absolut, gedrosselter last_seen, delete) 2026-07-07 22:30:54 +02:00
fb708912d7 feat(auth): Story 1.2 — normalizeEmail + Login-Token (SHA-256, einmalig, 30min) 2026-07-07 22:29:03 +02:00
b2dbd31b41 feat(auth): Story 1.1 — Auth-Schema (users/tokens/sessions/audit) + foreign_keys + audit-Helper
Fuegt users/login_tokens/sessions/audit_log Tabellen + FK-Indizes zu
server/db.js hinzu (foreign_keys=ON fuer CASCADE), plus server/audit.js
(append-only, keine PII). Bestehende documents/history-Tabellen und
exports unveraendert. TDD: server/auth-schema.test.js zuerst rot,
dann gruen; volle Suite (24 Tests) regressionsfrei.
2026-07-07 22:21:59 +02:00
97e58903b8 feat(backend): automatisches taegliches SQLite-Online-Backup 2026-07-07 15:50:34 +02:00
45503f03ee feat(backend): GET/PUT /api/state mit Dokument-Persistenz 2026-07-07 15:46:48 +02:00
9714d845bb feat(backend): SQLite-Schicht mit WAL, Dokumenten und Historie 2026-07-07 15:43:30 +02:00
3b0632c4b9 feat(backend): Express-Server liefert statisch + /api/health 2026-07-07 15:40:06 +02:00