-- ============================================================================ -- RAPPORT — Public Studio-Liste für Login-Dropdown -- ============================================================================ -- Wenn auf einer Supabase-Instanz mehrere Firmen / Studios gehostet sind, -- soll der Login-Screen vor Email+Passwort einen Dropdown zeigen: «In welches -- Studio möchten Sie sich einloggen?». Dafür braucht das Frontend eine Liste -- aller Studios — ohne dass jemand bereits eingeloggt sein muss. -- -- RLS verhindert das normalerweise (`studios_member_access` nur für Member). -- Diese SECURITY-DEFINER-Funktion umgeht RLS und liefert nur die öffentlichen -- Identitäts-Felder (name, slug). Keine Tenant-Daten, kein Risiko. -- -- Trade-Off: Studio-Namen sind in dem Sinne «öffentlich» — wer die Server-URL -- kennt, kann sehen welche Firmen hier hosten. Bei einem Selfhosted-Setup für -- 1-3 befreundete Studios ist das akzeptabel; bei einer Public-SaaS-Instanz -- wäre das ein Re-Design wert. -- ============================================================================ create or replace function list_studios() returns table(id uuid, name text, slug text) language sql security definer stable as $$ select id, name, slug from studios order by name; $$; grant execute on function list_studios() to anon, authenticated;