Shuffle/supabase
cschlaefke 079eb0b576
Some checks failed
CI / flutter (pull_request) Failing after 4s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Failing after 22s
test(catalog): clear seed data before catalog count assertions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 19:16:17 +01:00
..
migrations chore: initial project kit 2026-11-02 12:14:09 +01:00
tests/database test(catalog): clear seed data before catalog count assertions 2026-11-02 19:16:17 +01:00
README.md chore: initial project kit 2026-11-02 12:14:09 +01:00
seed.sql chore: initial project kit 2026-11-02 12:14:09 +01:00

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.
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

Regeln

  • Jede Tabelle hat id (uuid, PK), created_at, updated_at und Row Level Security.
  • updated_at setzt ein Trigger; id und created_at sind 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 aus user_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).