Zum Inhalt

Lizenz

On-Premise-Installationen weisen ihr calServer-Abo über einen Lizenzschluessel nach. Er wird unter Administration → Abo & Module eingetragen und taeglich automatisch geprueft. Derselbe Schluessel entscheidet, welche zuschaltbaren Module auf dem System laufen.

Nicht zu verwechseln mit Administration → Diagnose → Lizenzen

Dort stehen die Open-Source-Lizenzen der verwendeten Bibliotheken. Das ist eine Rechtsangabe, kein Vertrag.


Schluessel eintragen

  1. Administration → Abo & Module oeffnen.
  2. In der Karte Abo den von calHelp erhaltenen Schluessel eintragen und Speichern klicken.
  3. Der Schluessel wird sofort geprueft; der Status springt bei Erfolg auf Lizenziert.

Der Schluessel wird verschluesselt gespeichert und danach nie wieder im Klartext angezeigt — die Karte zeigt nur die letzten vier Zeichen. Ein verlorener Schluessel wird nicht ausgelesen, sondern neu eingetragen.

Ohne hinterlegten Lizenzdienst passiert nichts

Ist auf dem System kein Lizenzdienst konfiguriert (LICENSE_SERVER_URL, LICENSE_PUBLIC_KEY), erscheint die Abo-Karte gar nicht erst, und alle Module gelten als lizenziert. Die Mechanik ist dann vollstaendig inaktiv: Ein Update nimmt einer laufenden Anlage nichts weg.


Systeme ohne Internetzugang

Erreicht die Installation den Lizenzdienst nicht — abgeschottetes Laborsegment, restriktive Firewall —, stellt calHelp die Lizenzbestaetigung direkt aus. Sie wird in dasselbe Feld eingefuegt wie ein Schluessel; calServer erkennt am Format, worum es sich handelt.

Die Bestaetigung durchlaeuft dabei genau dieselbe Pruefung wie eine Antwort des Lizenzdienstes: Signatur und Instanz-ID muessen passen. Sie gilt nur fuer die Installation, fuer die sie ausgestellt wurde.

Dazu braucht calHelp die Instanz-ID des Systems. Sie steht unter Administration → Abo & Module in der Abo-Karte, sobald ein Lizenzdienst konfiguriert ist. Auf der Kommandozeile:

docker exec calserver-api-v2 php artisan license:issue

Der Befehl gibt die Instanz-ID aus und bricht dann ab — Assertions ausstellen kann nur calHelp.

Nach Ablauf der Laufzeit wird die Bestaetigung erneuert und wieder eingefuegt — in der Karenzzeit laeuft das System unterdessen weiter.


Zuschaltbare Module

Drei Funktionsbereiche sind einzeln zubuchbar. Sie sind nach V1 entstanden, in sich abgeschlossen und dauerhaft pflegeintensiv — deshalb haengen sie am Abo und nicht am Grundumfang:

Modul Was es umfasst
Siegel Elektronisches Siegeln von Berichten nach eIDAS (eigener Dienst).
Abschlusspruefung Die Pruefbereiche Plausibilitaet und Spezifikation vor der Freigabe.
Messhistorie und Trend Verlauf und Trend je Messpunkt ueber die Kalibrierungen eines Geraets.

Welche Module gelten, steht in der signierten Bestaetigung des Lizenzdienstes. Sie laesst sich auf dem System nicht aendern — auch nicht ueber die Rechteverwaltung oder die SQL-Konsole.

Die Freigabe bleibt vollstaendig

Ohne Abschlusspruefung entfallen nur die beiden genannten Bereiche. Die Vollstaendigkeitspruefung — Kunde, Datum, Messwerte, Prozedur — laeuft weiter und blockiert weiter. Ein unvollstaendiger Schein wird durch ein fehlendes Modul nicht freigebbar.

Warum eine Funktion ausgegraut ist

Die Tabelle Zuschaltbare Module nennt je Funktion einen Grund. Es gibt genau drei, und sie fuehren an drei verschiedene Stellen:

Grund Bedeutung Wer es aendert
Nicht im Abo Die Lizenzbestaetigung fuehrt das Modul nicht. calHelp. Zuschalten wirkt ohne Update.
Nicht in der Abo-Stufe Die SUBSCRIPTION dieser Anlage schliesst die Operation aus. Der Betreiber, unter Administration → Plaene.
Rolle fehlt Abo und Abo-Stufe erlauben es, die Rolle des Benutzers nicht. Der Betreiber, unter Administration → Rollen.

Die Spalten Fuer mich verfuegbar und Grund beziehen sich auf den angemeldeten Benutzer. Wer fuer jemand anderen nachsieht, muss dessen Rolle pruefen, nicht die eigene.

Ein gesperrtes Abo nimmt keine Module weg

Steht die Lizenz auf Nicht lizenziert, sind nur Updates gesperrt. Die zugebuchten Module laufen weiter. Entzogen wird ein Modul ausschliesslich, indem der Lizenzdienst eine Bestaetigung ohne es ausstellt.


Statusbedeutungen

Status Bedeutung Wirkung
Nicht aktiv Kein Lizenzdienst auf diesem System hinterlegt. Keine.
Nicht geprueft Kein Schluessel eingetragen, oder noch keine Bestaetigung erhalten. Hinweis fuer Administratoren mit dem Stichtag, siehe unten. Updates bleiben moeglich.
Lizenziert Gueltiges Abo. Keine.
Pruefung veraltet Der Lizenzdienst war zuletzt nicht erreichbar. Hinweis auf dieser Seite. Die Lizenz gilt weiter.
Karenzzeit Die Abo-Laufzeit ist abgelaufen, die Karenz laeuft noch. Warnung mit Restfrist. Updates bleiben moeglich.
Nicht lizenziert Abo gekuendigt/gesperrt, oder Karenz abgelaufen. Warnung fuer alle Benutzer. Updates sind gesperrt.
Probezeit abgelaufen Die 30-Tage-Probelizenz ist zu Ende. Warnung fuer alle Benutzer. Nur-Lese-Modus, siehe unten.
Ohne Lizenz nur lesbar Ab dem 1. Februar 2027: kein gueltiger Schluessel, oder Abo gekuendigt bzw. Karenz abgelaufen. Warnung fuer alle Benutzer. Nur-Lese-Modus und keine zubuchbaren Module, siehe unten.

Das laufende System arbeitet in jedem dieser Zustaende normal weiter, mit Ausnahme der abgelaufenen Probe und des Zustands Ohne Lizenz nur lesbar. Auf Administration → Updates steht derselbe Zustand noch einmal, dort aber nur zum Lesen: Er erklaert, warum ein Update gesperrt ist. Gepflegt wird der Schluessel nur unter Abo & Module.

In den uebrigen Zustaenden werden ausschliesslich Updates gesperrt. Ein Rollback auf eine frueher installierte Version bleibt immer moeglich.

Karenzzeit

Nach Ablauf der Abo-Laufzeit laeuft eine Karenz von standardmaessig 21 Tagen (LICENSE_GRACE_DAYS), bevor der Status auf Nicht lizenziert wechselt. Sie faengt genau die Faelle ab, die kein Zahlungsproblem sind: ein laufender Verlaengerungsvorgang, ein Wartungsfenster, eine Firewall-Aenderung.

Ein fehlgeschlagener Pruefversuch — Lizenzdienst nicht erreichbar, Netzwerkfehler — aendert den Status nicht. Er wird als Letzter Fehler auf der Seite vermerkt, die zuletzt erhaltene Bestaetigung bleibt gueltig.

Probelizenz

Eine Installation aus dem Ein-Klick-Installer laeuft 30 Tage mit einer Probelizenz. Waehrend der Probe sehen Administratoren die Resttage im Hinweis oben und unter Abo & Module.

Nach dem Ende der Probe ist das System schreibgeschuetzt: Ansehen, Suchen, Berichte und Exporte funktionieren weiter, Anlegen, Aendern und Loeschen nicht. Es gehen keine Daten verloren. Eine Karenz gibt es bei der Probe nicht, und ohne Internetverbindung laeuft sie ebenfalls ab.

Um weiterzuarbeiten, wird aus der Probe ein Abo: calHelp stellt die Lizenz um, der Schluessel bleibt derselbe. Danach unter Abo & Module Jetzt pruefen waehlen, der Schreibschutz faellt sofort weg.

Ohne Lizenz nur lesbar

Ab dem 1. Februar 2027 ist ein System ohne gueltige Lizenz nur noch lesbar. Das gilt, wenn kein Schluessel eingetragen ist, wenn der Lizenzdienst den Schluessel nie bestaetigt hat, und wenn ein Abo gekuendigt oder gesperrt ist oder seine Karenz abgelaufen ist. Bis zu diesem Tag laeuft das System voll; Administratoren sehen oben einen Hinweis mit dem Datum.

Danach gilt dasselbe wie nach einer Probe: Ansehen, Suchen, Drucken (auch Kalibrierscheine) und Exporte funktionieren weiter, und zwar ohne Enddatum. Anlegen, Aendern und Loeschen sind gesperrt, ebenso Updates und die zubuchbaren Module. Es gehen keine Daten verloren.

Nicht betroffen sind die Karenzzeit und ein Lizenzdienst, der gerade nicht erreichbar ist: Solange das Abo laeuft, arbeitet das System auch ohne frische Bestaetigung weiter.

Sobald eine gueltige Lizenz unter Abo & Module eingetragen und bestaetigt ist, faellt der Schreibschutz sofort weg, ohne Neuinstallation.


Automatische Pruefung

Der geplante Lauf license:check prueft einmal taeglich. Der genaue Zeitpunkt ergibt sich aus der Installation selbst, damit nicht alle Systeme gleichzeitig pruefen.

Pruefung von Hand ausloesen:

docker exec calserver-api-v2 php artisan license:check --force

Ohne --force beendet sich der Befehl, wenn die letzte Pruefung noch aktuell ist. In der Oberflaeche leistet Jetzt pruefen dasselbe.


Uebertragene Daten

Bei jeder Pruefung gehen genau vier Angaben an den Lizenzdienst:

Feld Inhalt
license_key Der hinterlegte Lizenzschluessel
instance_id Zufaellige ID dieser Installation (einmalig erzeugt)
product_version Laufende calServer-Version
image_tag Aktiver Docker-Image-Tag

Keine Kunden-, Geraete-, Kalibrier- oder Nutzungsdaten. Die instance_id ist eine Zufalls-UUID ohne Bezug zu Kundendaten; sie verhindert, dass eine Lizenzbestaetigung von einem System auf andere kopiert wird.


Umgebungsvariablen (Host-.env)

Variable Bedeutung Default
LICENSE_SERVER_URL Basis-URL des Lizenzdienstes — (leer = deaktiviert)
LICENSE_PUBLIC_KEY Ed25519-Public-Key des Dienstes (hex oder Base64) — (leer = deaktiviert)
LICENSE_GRACE_DAYS Karenz in Tagen nach Ablauf der Laufzeit 21
LICENSE_CHECK_INTERVAL_HOURS Abstand zwischen zwei Pruefungen 24
LICENSE_HTTP_TIMEOUT Timeout gegen den Lizenzdienst in Sekunden 15

Beide Pflichtwerte muessen gesetzt sein, sonst bleibt die Lizenzpruefung inaktiv. Der Public Key ist kein Geheimnis; der zugehoerige private Schluessel liegt ausschliesslich beim Lizenzdienst.


Fehlerbehebung

Status bleibt Nicht geprueft, obwohl ein Schluessel eingetragen ist

Der Lizenzdienst ist nicht erreichbar oder lehnt den Schluessel ab. Der Grund steht auf der Seite unter Letzter Fehler. Ausgehende HTTPS-Verbindungen zur in LICENSE_SERVER_URL hinterlegten Adresse pruefen.

Status Nicht lizenziert, obwohl das Abo laeuft

Erst Jetzt pruefen ausloesen. Bleibt es dabei, calHelp kontaktieren — die Sperre stammt dann aus einer signierten Antwort des Lizenzdienstes, nicht aus dem System.

Nach Wiederherstellung eines Backups auf einem anderen Server

Die instance_id kommt aus dem Backup mit; die Bestaetigung gilt weiter. Wird das System dagegen neu aufgesetzt, entsteht eine neue instance_id — der Schluessel muss dann einmal neu eingetragen werden.

Schluessel wurde mit einem anderen APP_KEY verschluesselt

Nach einem APP_KEY-Wechsel ist der gespeicherte Schluessel nicht mehr lesbar. Einfach neu eintragen.