Tenant Platform

Tenant Platform

TesseraCMS er multi-tenant — én Next.js-app hoster mange sites. Hver tenant er fuldt isoleret med egen URL-slug, eget tema, egne brugere og eget indhold.

Hvad er en tenant

En tenant er et selvstændigt site med:

  • Slug-baseret URL/palle_jacobsen, /nyborg_rideklub, /tesseracms osv.
  • Egen LayoutPackage — fastlægger site-shell, default-moduler og page-block-overrides (læs mere)
  • Egne roller + invitationer — Platform Admin styres på platform-niveau, Tenant Owner / Editor pr. tenant
  • Egne content-items — adskilt på PartitionKey i Azure Table Storage
  • Eget tema — preset + per-var overrides (læs mere)
  • Optional custom domain — peget direkte på Azure Container Apps

Tenant-isolation

Al storage-adgang scopes på tenantSlug via PartitionKey-konvention:

// Et content-item kan ALDRIG læses uden tenant-slug
await getContentItem(tenantSlug, "Page", pageId);

Det betyder en programmeringsfejl ikke kan lække data mellem tenants — selv hvis API-route'en glemmer at filtrere, peger PartitionKey'en kun på ét tenant's data.

Roller

Rolle Scope Hvem
Platform Admin Hele platformen Operations-team, kan onboarde nye tenants
Tenant Owner Én tenant Site-ejeren, inviterer Editors, styrer tema/domæne
Editor Én tenant Daglige content-opdateringer

Læs hvordan du tildeler roller og inviterer brugere.

Onboarding

Nye tenants oprettes via /admin/tenants/ny-wizarden. Wizarden vælger sitetype + LayoutPackage og kalder seedTenantFromPackage() så ApplicationPages og default-menus tilføjes konsekvent.

Læs den fulde Platform Admin onboarding-guide.

Backup + export

Hver tenant kan eksporteres som ZIP-arkiv med content + media. Brug /admin/backup på den enkelte tenant. Læs backup-guiden.

Cross-references