Update-API
Code Guardian prüft im laufenden Betrieb nicht selbst, ob eine neue Version vorliegt. Wer die neueste Version laden will, auf die die eigene Lizenz Anspruch hat, nutzt dafür die öffentlich dokumentierte Update-API von provimedia.de und meldet sich mit dem Lizenzschlüssel an.
Authentifizierung
Jeder Aufruf trägt den Lizenzschlüssel im Header, wahlweise als Authorization: Bearer <Schlüssel> oder als X-Licence-Key: <Schlüssel>. Groß- und Kleinschreibung, Leerzeichen und fehlende Bindestriche werden toleriert. Der Schlüssel gehört nie in die URL, sonst landet er in Server-Logs und in der Shell-History.
Endpunkte
| Endpunkt | Zweck |
|---|---|
GET /api/code-guardian/status |
Zeigt Lizenz, Update-Zeitraum und Abo-Zustand; nennt getrennt die neueste Version, auf die Anspruch besteht, sowie die neueste überhaupt vorhandene Version |
GET /api/code-guardian/latest |
Direkt nur die neueste Version, auf die Anspruch besteht |
GET /api/code-guardian/download/{version} |
Lädt das ZIP; {version} ist optional: ohne Angabe die neueste Version, auf die Anspruch besteht, mit Angabe auch eine ältere Version, um darauf zurückzuwechseln |
Ablauf
- Installierten Stand aus der Überschrift von
SKILL.mdlesen. - Den Stand, auf den die Lizenz Anspruch hat, über
/latestabfragen. - Vergleichen. Stimmen beide überein, ist nichts zu tun.
- Bei einer neueren Version, auf die Anspruch besteht, über die mitgelieferte
download_urlladen. - Prüfsumme (
sha256aus der Antwort) gegen die geladene Datei kontrollieren, bei Abweichung nicht installieren. install.shaus dem Paket ausführen undUPDATE-ANLEITUNG.mdlesen.- ZIP und Entpackverzeichnis wieder entfernen.
Fehlercodes
| HTTP | Fehler | Bedeutung |
|---|---|---|
| 401 | missing_licence_key |
Kein Header gesetzt |
| 401 | invalid_licence_key |
Schlüssel unbekannt, nicht wiederholt versuchen |
| 402 | payment_returned |
Lastschrift wurde zurückgebucht, Downloads gesperrt bis zum Zahlungseingang |
| 403 | licence_not_paid |
Zahlung noch nicht verbucht |
| 403 | subscription_required |
Die gewünschte Version erschien nach Ende des Update-Zeitraums |
| 404 | no_entitled_release |
Für diese Lizenz ist derzeit keine Version freigegeben |
| 404 | release_not_found |
Diese Versionsnummer gibt es nicht |
| 404 | release_file_missing |
Serverseitiges Problem |
| 429 | ohne eigenes Fehlerfeld | Zu viele Anfragen; einmal abwarten, statt es in einer Schleife zu wiederholen |
Grenzen
- Liefert ausschließlich Code-Guardian-Pakete.
- Ein Lizenzschlüssel gehört zu genau einem Unternehmen und darf dort beliebig oft eingesetzt werden, aber nicht darüber hinaus.
- Der Zugriff wird protokolliert (Zeitpunkt der letzten Nutzung je Lizenz), nicht aber Projekt oder Rechner.
- Die Lizenz selbst läuft nicht ab: Versionen aus dem bezahlten Zeitraum bleiben dauerhaft abrufbar, auch nach einer Kündigung des Update-Abos.
In einem Satz
Drei Endpunkte und ein Lizenzschlüssel im Header genügen, um Status, die Version, auf die Anspruch besteht, und den Download abzurufen; eine Prüfsumme sichert den Download zusätzlich ab.