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¶
- Administration → Abo & Module oeffnen.
- In der Karte Abo den von calHelp erhaltenen Schluessel eintragen und Speichern klicken.
- 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:
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:
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.