Entwicklerportal
Templates

Freischaltung und Lizenz

Wer welches Template wählen darf – Passung, Freigabe je Gliederung und Lizenz-Katalog.

Ein installiertes Template ist nicht automatisch für jede Website wählbar. Drei Ebenen entscheiden.

1. Passung (Manifest)

siteKinds und siteRoles legen fest, für welche Website-Arten und -Rollen das Template gilt:

Websitetypische Einstellung
Gliederung, Fraktion, Jugend, VereinsiteKinds: ["org"], optional siteRoles: ["primary"] oder ["campaign"]
Personen-WebsitesiteKinds: ["person"]
PortalsiteKinds: ["portal"]

Passt ein Template nicht, lehnt der Server die Wahl ab (400 CMS_TEMPLATE_SITE_KIND bzw. CMS_TEMPLATE_SITE_ROLE).

2. Freigabe je Mandant und Gliederung

Die Einstellung cms.templates.allowed (Liste von Template-Kennungen) wird je Gliederung gepflegt und entlang des Organisationspfads vererbt: leer = alle installierten Templates, sonst nur die genannten (standard ist immer erlaubt). Andere lehnt der Server ab (400 CMS_TEMPLATE_NOT_ALLOWED). Die Freigabe wird nur beim Wechsel geprüft – bestehende Websites behalten ein später entzogenes Template bis zum nächsten Wechsel.

3. Lizenz (ADR-0107)

Ein buchbares Template nennt im Manifest seinen Lizenz-Katalogeintrag (license: { catalogKey, edition }, siehe Manifest). Geprüft wird über den Port TemplateLicensePort aus dem SDK, den die Lizenzprüfung der Plattform bereitstellt:

import { isTemplateLicensed, type TemplateLicensePort } from "@patriotconnect/template-sdk";

const port: TemplateLicensePort = { isTemplateLicensed: ({ catalogKey, edition, tenantId }) => /* Lizenzstand */ true };
isTemplateLicensed(templateManifest, port, "mandant-123");
LageErgebnis
Manifest ohne licenseimmer lizenziert (lizenzfrei, in jeder Edition)
kein Port gebunden (z. B. Installation ohne Lizenzprüfung)lizenziert
Port verneintWechsel abgelehnt mit 400 CMS_TEMPLATE_NOT_LICENSED, Galerie zeigt „nicht lizenziert“

Wie die Freigabe gilt die Lizenzprüfung nur beim Wechsel auf ein Template (Bestandsschutz). Das Template selbst prüft nichts – es beschreibt nur seinen Katalogeintrag.

SaaS und eigene Installation

  • Eigene Installation: Es existieren nur die Templates, die der Betreiber ins Image baut. Eine Lizenzprüfung ist optional.
  • SaaS: Das Image enthält alle Templates; je Mandant entscheiden Lizenz und cms.templates.allowed.

Mehrere Templates je Website

  • Website-Template: die Wahl auf der Website-Seite im Workspace.
  • Seite abweichend: im Seiten-Editor „Template dieser Seite“ – z. B. eine Kampagnen-Landingpage.
  • Reihenfolge beim Rendern: Seite → Website → standard.

On this page