Version 1.5.0
Vollständig verifiziert: natives npm run dev auf frisch geleerter lokaler Postgres-DB (Migration + Admin-Bootstrap + ZUGANGSDATEN.md, Login, Essenszeiten/Gerichte/Wochenplan/Kennzeichnung/Vorschläge-CRUD, Konto-Verwaltung inkl. serverseitiger Passkey-Absicherung, Branding-Upload/-Löschung, Admin-Benutzerverwaltung mit rollenbasierter Zugriffskontrolle, Neustart-Idempotenz) sowie über docker compose --build auf eigenem Volume (Migration/Bootstrap im Container-Entrypoint, Bind-Mount für ZUGANGSDATEN.md, Login).
This commit is contained in:
@@ -4,6 +4,46 @@ Alle nennenswerten Änderungen an diesem Projekt werden hier dokumentiert.
|
||||
Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.1.0/),
|
||||
Versionierung nach [Semantic Versioning](https://semver.org/lang/de/).
|
||||
|
||||
## [1.5.0] – 2026-07-18 (Branch `feature/v1.5`, noch nicht gemergt)
|
||||
|
||||
### Geändert
|
||||
- **Supabase vollständig entfernt** – die App läuft jetzt komplett
|
||||
selbst gehostet, einzige externe Abhängigkeit bleibt optional DeepL.
|
||||
- Datenbank: selbst gehostetes PostgreSQL statt Supabase-Cloud-Postgres.
|
||||
Schema in `db/migrations/*.sql`, wird beim Start automatisch und
|
||||
idempotent angewendet (`db/migrate.mjs`).
|
||||
- Anmeldung: eigene Session-Verwaltung (opake, in der DB gespeicherte
|
||||
Tokens, `httpOnly`/`sameSite=lax`-Cookie) statt Supabase Auth.
|
||||
Passwörter werden mit Node-eigenem `crypto.scrypt` gehasht (keine
|
||||
neue Abhängigkeit).
|
||||
- Passkeys: `@simplewebauthn` ersetzt Supabase's bisher experimentelles
|
||||
WebAuthn-API. Die RP-Domain wird direkt aus `APP_URL` abgeleitet –
|
||||
kein externer Konfigurationsschritt mehr nötig.
|
||||
- Logo/Favicon: lokale Dateiablage (Docker-Volume) statt
|
||||
Supabase-Storage-Bucket, ausgeliefert über `/branding/[filename]`.
|
||||
- Autorisierung (öffentlich lesbar / Kantinen-Team schreibt / nur
|
||||
Admin für Einstellungen & Benutzer) läuft jetzt in den API-Routen
|
||||
statt über Postgres-Row-Level-Security.
|
||||
- E-Mail-Änderung im eigenen Konto läuft direkt nach
|
||||
Passwort-Bestätigung statt über eine Supabase-Bestätigungsmail
|
||||
(kein SMTP-Server vorhanden).
|
||||
- Datenbank startet beim allerersten Deployment leer; beim ersten Start
|
||||
wird automatisch genau ein Admin-Benutzer mit zufällig generiertem
|
||||
Passwort angelegt, die Zugangsdaten landen in `ZUGANGSDATEN.md`.
|
||||
|
||||
### Behoben
|
||||
- „Mindestens 1 Passkey nötig, um die Passwort-Anmeldung zu
|
||||
deaktivieren" wurde bisher nur clientseitig geprüft; ein manuell
|
||||
gebauter Request hätte die Passwort-Anmeldung auch ohne Passkey
|
||||
deaktivieren können. Jetzt zusätzlich serverseitig erzwungen.
|
||||
|
||||
### Hinweis für bestehende Docker-Installationen
|
||||
Das Docker-Volume `pgdata` diente bisher nur als Lese-Kopie/Backup und
|
||||
wird mit v1.5 zur primären Datenbank. Es enthält noch das alte
|
||||
Supabase-Mirror-Schema und muss vor dem Upgrade entfernt werden
|
||||
(`docker compose down -v`, danach `docker compose up -d --build`), damit
|
||||
die neuen Migrationen auf einer leeren Datenbank laufen.
|
||||
|
||||
## [1.4.0] – 2026-07-18
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
Reference in New Issue
Block a user