-- ==================================================================== -- 0050_employee_extra_fields — Frei definierbare Zusatzangaben -- ==================================================================== -- Mitarbeiter können beliebig viele weitere Telefonnummern und private -- Angaben hinterlegen, jeweils ein-/ausblendbar. Statt vieler fester -- Spalten eine JSONB-Liste: -- [{ "id": "f0", "kind": "phone|mobile|email|address|text", -- "label": "Festnetz privat", "value": "...", "visible": true }, …] -- -- Sichtbarkeit wird wie bei show_mobile serverseitig im Render/vCard -- gefiltert (visibleExtraFields). Die öffentliche Karte liest seit 0045 -- ohnehin per Service-Role — anon braucht die Spalte nicht und soll sie -- (ausgeblendete, ggf. private Werte) auch nicht lesen können. alter table public.employees add column if not exists extra_fields jsonb not null default '[]'::jsonb; comment on column public.employees.extra_fields is 'Frei definierbare Zusatzangaben (weitere Telefonnummern, private Angaben). ' 'Liste von {id, kind, label, value, visible}. Sichtbarkeit pro Eintrag; ' 'serverseitige Filterung im Render/vCard. Siehe lib/extra-fields.ts.'; -- anon darf die Spalte nicht direkt lesen (könnte ausgeblendete/private -- Einträge enthalten). REVOKE auf nicht vorhandenen Grant ist ein No-op. revoke select (extra_fields) on public.employees from anon;