Skip to main content
Diese Dokumentation gilt für föderale Deployments von Devin. Zurück zur Devin-Dokumentation
Air-Gapped-Builds von Devin Desktop und der Devin CLI haben keine Cloud-Anmeldung. Der Zugriff wird stattdessen über eine signierte Lizenzdatei gesteuert, die das Produkt bei jedem Start vollständig offline validiert. Jede Lizenz wird über das Portal für genau einen Sitzplatzinhaber ausgestellt und belegt einen Sitzplatz der Air-Gapped-Berechtigung Ihres Teams.

Speicherort der Lizenz

Der mitgelieferte Desktop-Agent und die eigenständige CLI lesen dieselbe Datei. Installieren Sie sie vor dem ersten Start; siehe Installation → Schritt 4. Desktop-Nutzer können eine Lizenz auch in den Devin-Einstellungen installieren: Der mitgelieferte Agent validiert die Datei offline, überschreibt keine Datei, die einem anderen Nutzer gehört, und protokolliert ein license_installed-Audit-Ereignis. Gehört die Lizenzdatei unter Windows einem Administrator, kann ein Standardnutzer sie nicht über die Desktop-App ersetzen (die Installation wird mit LIC001 abgelehnt); ein Administrator hingegen schon. Sichern Sie C:\ProgramData\Devin\ ab, bevor Sie die Datei ablegen.

Lizenz über das Portal ausstellen

  1. Melden Sie sich im Portal an und öffnen Sie Ihre Team-Seite. Im Abschnitt Air-gapped licenses sehen Sie, wie viele Sitzplätze belegt sind, den Berechtigungszeitraum und die Standard-Lizenzdauer.
  2. Klicken Sie auf Generate license.
  3. Geben Sie ein Label (zum Beispiel den Hostnamen oder den Namen des Nutzers), die E-Mail-Adresse der zugewiesenen Person und die Dauer in Tagen ein. Standardmäßig wird die Standarddauer Ihrer Berechtigung übernommen. Die Dauer ist sowohl durch das Maximum Ihrer Berechtigung als auch durch das Ende des Berechtigungszeitraums begrenzt; im Review-Schritt wird das voraussichtliche Ablaufdatum angezeigt.
  4. Bestätigen Sie Ihre Eingaben. Das Portal meldet License generated und bietet Download license file an. Dabei handelt es sich um die signierte Datei .devin-onprem-license. Übertragen Sie sie gemäß Ihrem freigegebenen Verfahren für Datenträger auf den air-gapped Host.
Die Tabelle Issued licenses führt alle Lizenzen mit ihrem Status auf (Active, Expiring soon, Expired, Revoked). Aktive Lizenzen können Sie über diese Tabelle erneut herunterladen. Das Widerrufen oder erneute Ausstellen einer Lizenz sowie das Freigeben eines Sitzplatzes, wenn alle Sitzplätze belegt sind, übernimmt Ihr Support-Team.

Inhalt der Datei

Die Datei besteht aus einem einzelnen JSON Web Token in kompakter Form (header.payload.signature), signiert mit EdDSA (Ed25519). Das Feld kid im Header gibt den öffentlichen Schlüssel an, mit dem das Token signiert wurde. Das Produkt liefert die öffentlichen Schlüssel aller Umgebungen mit, sodass bei der Validierung nichts abgerufen werden muss. Claims: Bei der Validierung werden die Signatur anhand des über kid ausgewählten eingebetteten Schlüssels, das Zeitfenster nbf/exp mit einer Toleranz für Uhrenabweichungen von 24 Stunden in beide Richtungen sowie der Claim product geprüft.

Lizenz prüfen

Schlüssel-ID prüfen

Dekodieren Sie den JWT-header und lesen Sie kid aus. Dieser Einzeiler funktioniert sowohl unter Linux als auch unter macOS: Er wandelt base64url in base64 um und ergänzt das Padding, da das mit macOS ausgelieferte BSD-base64 Eingaben ohne Padding stillschweigend abschneidet.
Erwartete Werte: Ein abweichender kid oder ein leeres Ergebnis bedeutet, dass die Datei entweder keine für dieses Produkt ausgestellte Lizenz ist oder bei der Übertragung beschädigt wurde.

Sitzplatz, Konto und Ablaufdatum prüfen

devin auth status funktioniert auch dann, wenn die Lizenz fehlt oder ungültig ist. Daher können Sie den Befehl zur Fehlerdiagnose verwenden:
Identity ist die lokale Identität für die Urheberangabe (OS-Benutzername plus git config user.email); sie wird im Audit-Protokoll aufgezeichnet und ist unabhängig von der Lizenz. Kann die Datei nicht validiert werden, lautet die letzte Zeile stattdessen License: INVALID — LIC00X: <reason>. Die license-Prüfung in devin airgap doctor meldet denselben Sitzplatz, dasselbe Konto und dasselbe Ablaufdatum und springt in den letzten 30 Tagen vor Ablauf auf warn um.

Verhalten beim Start und bei der erneuten Validierung

  • Bei jedem Start validiert die CLI die Lizenz und gibt eine Zeile auf stderr aus:
    Läuft die Lizenz innerhalb der nächsten 30 Tage ab, folgt eine Zeile Warning: license expires in N day(s).
  • Langlaufende Prozesse (der in Desktop gebündelte Agent, die CLI-REPL) prüfen die Datei höchstens einmal pro Stunde erneut, und zwar vor dem Start einer neuen Sitzung oder Eingabe. Laufende Vorgänge werden nie unterbrochen.
  • Ist eine Lizenz seit mehr als 24 Stunden abgelaufen, werden neue Sitzungen und Eingaben blockiert. In Desktop zeigt der Chat-Bereich den ACP-Fehler -32019 license_invalid an; die genaue Ursache (LIC00X) finden Sie unter View → Output → Devin ACP.
  • Fehlschläge werden nicht zwischengespeichert: Eine erneuerte Datei wird nach der Installation ab der nächsten Eingabe wirksam, ganz ohne Neustart.
  • Einige Befehle funktionieren auch ohne gültige Lizenz, damit Sie einen Host reparieren können: devin auth status, devin airgap doctor, devin doctor, devin diagnostics, devin models validate und devin version.

Lizenz verlängern oder ersetzen

  1. Generieren Sie im Portal eine neue Lizenz für denselben Sitzplatzinhaber (siehe oben). Wenn der Sitzplatz bereits belegt ist, bitten Sie Ihr Support-Team, zuerst die alte Lizenz zu widerrufen.
  2. Überschreiben Sie die vorhandene Datei unter /etc/devin/license.devin-onprem-license (oder unter dem in DEVIN_LICENSE_FILE angegebenen Pfad) mit der neuen Datei. Die Datei muss weiterhin dem Konto gehören, unter dem Devin ausgeführt wird, oder Root gehören und für dieses Konto lesbar sein. Unter Windows lautet der Standardpfad C:\ProgramData\Devin\license.devin-onprem-license; ersetzen Sie die Datei in einer Sitzung mit erhöhten Rechten.
  3. Überprüfen Sie das Ergebnis:
Ein Neustart ist nicht erforderlich – die neue Datei wird ab der nächsten Sitzung oder Eingabe verwendet.

Fehlercodes

Alle Lizenzfehler werden als LIC00X: <message> ausgegeben, gefolgt vom geprüften Pfad und einem Hinweis, wie Sie ihn überschreiben können. Den vollständigen Katalog für alle Namespaces finden Sie unter Fehlercodes.