Adds AUTH-CFG settings, confirmation/recovery templates and docs/auth-konfiguration.md (KTO-01 criteria 1, 3, 4, 7, 8, 11). Refs #1 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| migrations | ||
| templates | ||
| tests/database | ||
| .gitignore | ||
| config.toml | ||
| README.md | ||
| seed.sql | ||
Supabase – Datenbank für Shuffle
Inhalt
| Pfad | Zweck |
|---|---|
migrations/ |
Schema, Trigger und RLS-Policies für R1 (17 Tabellen, 2 Views). Nur additiv ändern, nie bestehende Dateien editieren. |
tests/database/ |
pgTAP-Tests: Struktur-Regeln und Zugriffsrechte je Bereich. |
templates/ |
Auth-Mailvorlagen (HTML, Go-Template) für Bestätigung und Passwort-Reset. |
seed.sql |
Beispieldaten nur für die lokale Entwicklung. |
Lokal starten und testen
supabase start # lokales Backend
supabase db reset # Migrationen + Seed einspielen
supabase test db # alle pgTAP-Tests ausführen
Registrierung (KTO-01)
- Der Trigger
handle_new_usererzwingt Altersbestätigung, Zustimmung,terms_versionund Anzeigename (1–30 Zeichen). Fehlertexte: siehedocs/datenmodell-r1.md. Clients senden diese Werte alsuser_metadatabeisignUp. - pgTAP-Fixtures, die
auth.usersdirekt füllen, brauchen daherage_confirmed,terms_accepted,terms_versionunddisplay_nameinraw_user_meta_data. - Ergebnisse der GoTrue-Prüfung:
docs/specs/1-auth-spike-ergebnisse.md. - Auth-Einstellungen (
AUTH-CFG-nninconfig.toml), Env-Block für Staging/Produktion, Release-Checkliste und bekannte Grenzen:docs/auth-konfiguration.md. - Mailvorlagen (Bestätigung, Passwort-Reset; de/en nach
user_metadata.locale):templates/. Lokal landen Mails in Mailpit (http://127.0.0.1:54324).
Regeln
- Jede Tabelle hat
id(uuid, PK),created_at,updated_atund Row Level Security. updated_atsetzt ein Trigger;idundcreated_atsind nach dem Anlegen unveränderlich.- Fremdschlüssel nur dort, wo Tabellen in Beziehung stehen, benannt
<Zieltabelle>_id. - Rechte werden explizit vergeben (erst alles entziehen, dann gezielt gewähren).
- Admin-Rolle kommt aus
app_metadata.role = 'admin'im JWT, nie aususer_metadata.
Noch nicht enthalten
- Storage-Buckets und -Policies für Avatare und Spielbilder.
- Edge Functions (BGG-Import, Konto löschen).
- Selbst-Hosting-Setup auf Hetzner (ADR-0002, Aufgabe für
devops).