TeamVis Self-Host-Bundle v0.31.0
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
-- ====================================================================
|
||||
-- 0042_license — License-Foundation
|
||||
-- ====================================================================
|
||||
-- Speichert pro Instanz/Mandant einen signierten License-JWT. Inhalt:
|
||||
-- - tier (free/starter/business/enterprise)
|
||||
-- - max_employees, ma_overage_price_eur
|
||||
-- - enabled modules + per-module limits
|
||||
-- - hosting (cloud | self-hosted), branding_level
|
||||
-- - exp
|
||||
--
|
||||
-- Der JWT wird im Application-Code per public key validiert (lib/
|
||||
-- license.ts). Bei fehlendem oder ungueltigem Key faellt die Instanz
|
||||
-- auf Free-Tier-Defaults zurueck (10 MA, Core only).
|
||||
--
|
||||
-- license_status ist ein gecachter Wert ('active' | 'grace' | 'expired'
|
||||
-- | 'invalid'), license_checked_at der letzte Pruef-Zeitpunkt. Beides
|
||||
-- nicht-load-bearing — wird beim periodischen Check refresht. Idee:
|
||||
-- Render-Pages koennen ohne JWT-Decode den Status anzeigen.
|
||||
-- --------------------------------------------------------------------
|
||||
|
||||
alter table public.site_settings
|
||||
add column if not exists license_key text,
|
||||
add column if not exists license_status text,
|
||||
add column if not exists license_checked_at timestamptz;
|
||||
|
||||
comment on column public.site_settings.license_key is
|
||||
'Signierter License-JWT (RS256). Wird per lib/license.ts gegen den Public Key validiert. NULL → Free-Tier-Defaults.';
|
||||
comment on column public.site_settings.license_status is
|
||||
'Gecachter Status: active | grace | expired | invalid | null. Wird beim periodischen Check aktualisiert.';
|
||||
comment on column public.site_settings.license_checked_at is
|
||||
'Letzter Validierungs-Zeitpunkt. Wird genutzt um Refresh-Cycles zu drosseln.';
|
||||
Reference in New Issue
Block a user