From 243713fe7401941892422a68ffc5934b78e63f72 Mon Sep 17 00:00:00 2001 From: TeamVis Release Date: Wed, 1 Jul 2026 17:18:02 +0200 Subject: [PATCH] TeamVis Self-Host-Bundle v0.33.0 --- README.md | 4 +-- package.json | 2 +- supabase/migrations/0056_brand_font.sql | 41 +++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 supabase/migrations/0056_brand_font.sql diff --git a/README.md b/README.md index 30c63c1..0891a46 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# TeamVis — Self-Hosting-Bundle (v0.32.1) +# TeamVis — Self-Hosting-Bundle (v0.33.0) Dieses Bundle enthält alles zum **Betreiben** von TeamVis auf eigener Infrastruktur — **keinen** App-Quellcode. Die App selbst kommt als fertiges @@ -36,4 +36,4 @@ Vollständige Schritt-für-Schritt-Anleitung (von der nackten VM bis live): | `supabase/migrations/` | Datenbank-Schema (DDL) | | `docs/` | Anleitungen | -Stand: TeamVis 0.32.1. +Stand: TeamVis 0.33.0. diff --git a/package.json b/package.json index fff6ccd..f5781fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "teamvis-selfhost", - "version": "0.32.1", + "version": "0.33.0", "private": true, "description": "Self-Hosting-Bundle für TeamVis (Installer + Migrationen, ohne App-Quellcode).", "type": "module", diff --git a/supabase/migrations/0056_brand_font.sql b/supabase/migrations/0056_brand_font.sql new file mode 100644 index 0000000..026540f --- /dev/null +++ b/supabase/migrations/0056_brand_font.sql @@ -0,0 +1,41 @@ +-- ==================================================================== +-- 0056_brand_font — eigene Marken-Schriftart (Branding) +-- ==================================================================== +-- Der Mandant kann eine eigene Schrift hinterlegen (Google-Font-Name, +-- kuratierte Auswahl oder Datei-Upload). DSGVO: die Font-Dateien werden +-- SELF-HOSTED (im branding-assets-Bucket), NICHT von Google's CDN geladen. +-- Angewandt auf die öffentlichen Flächen (--font-sans-Override + @font-face) +-- und das QR-Wallpaper. + +alter table public.site_settings + add column if not exists brand_font_family text, -- CSS/SVG-Family, z.B. "Inter" + add column if not exists brand_font_regular_url text, -- self-hosted TTF (400) + add column if not exists brand_font_bold_url text, -- self-hosted TTF (700) + add column if not exists brand_font_source text; -- 'google' | 'upload' + +-- anon-Spalten-Grant neu setzen (Muster 0043/0055): die Font-Spalten sind +-- KEINE Geheimnisse — die öffentliche Karte liest site_settings via anon und +-- braucht sie. Also: Block-Liste = bisherige Geheimnisse (bleiben gesperrt), +-- die neuen brand_font_*-Spalten werden dadurch automatisch anon-lesbar. +revoke all on public.site_settings from anon; + +do $$ +declare + v_cols text; +begin + select string_agg(quote_ident(column_name), ', ') + into v_cols + from information_schema.columns + where table_schema = 'public' + and table_name = 'site_settings' + and column_name not in ( + 'ai_anthropic_key', 'ai_openai_key', 'ai_openrouter_key', + 'apple_pass_cert_p12', 'apple_pass_passphrase', 'apple_pass_type_id', + 'google_wallet_service_account_json', + 'phone_api_token', 'phone_lookup_token', 'phone_webhook_secret', + 'license_key', + 'smtp_host', 'smtp_port', 'smtp_secure', 'smtp_user', 'smtp_pass', + 'smtp_from_email', 'smtp_from_name' + ); + execute 'grant select (' || v_cols || ') on public.site_settings to anon'; +end $$;