Cette documentation concerne les déploiements fédéraux de Devin. Retour à la documentation de Devin
Emplacement de la licence
L’agent intégré à Desktop et la CLI autonome lisent le même fichier. Installez-le avant le premier lancement ; voir Installation → Étape 4. Les utilisateurs de Desktop peuvent également installer une licence depuis les paramètres de Devin : l’agent intégré valide alors le fichier hors ligne, refuse d’écraser un fichier appartenant à un autre utilisateur et consigne un événement d’audit
license_installed. Sous Windows, si le fichier de licence appartient à un administrateur, un utilisateur standard ne peut pas le remplacer depuis Desktop (l’installation est refusée avec l’erreur LIC001), contrairement à un administrateur. Verrouillez C:\ProgramData\Devin\ avant d’y placer le fichier.
Émettre une licence depuis le portail
- Connectez-vous au portail et ouvrez votre page Team. La section Air-gapped licenses indique le nombre de licences utilisées, la période de droits et la durée de licence par défaut.
- Cliquez sur Generate license.
- Saisissez un libellé (par exemple le hostname ou le nom de l’utilisateur), l’e-mail du responsable et la durée en jours. Par défaut, la durée correspond à celle définie dans vos droits ; elle est plafonnée à la fois par la durée maximale autorisée par vos droits et par la fin de la période de droits. L’étape de revue affiche la date d’expiration prévue.
- Confirmez. Le portail affiche License generated et propose Download license file. Le fichier téléchargé est le fichier signé
.devin-onprem-license; transférez-le vers l’hôte en air gap via votre procédure approuvée de transfert sur support amovible.
Contenu du fichier
Le fichier contient un unique JSON Web Token au format compact (header.payload.signature), signé avec EdDSA (Ed25519). Le champ kid de l’en-tête identifie la clé publique ayant servi à la signature ; le produit embarque la clé publique de chaque environnement, si bien qu’aucune clé n’est récupérée au moment de la validation. Revendications :
La validation vérifie la signature à l’aide de la clé embarquée désignée par
kid, la fenêtre nbf/exp (avec une tolérance de décalage d’horloge de 24 heures dans chaque sens) ainsi que la revendication product.
Inspecter une licence
Vérifier l’identifiant de la clé
Décodez l’en-tête du JWT et lisez la valeurkid. Cette commande d’une ligne fonctionne aussi bien sous Linux que sous macOS : elle convertit le base64url en base64 et ajoute le remplissage nécessaire, car la version BSD de base64 fournie avec macOS tronque sans avertissement les entrées dépourvues de remplissage.
Si le
kid est différent ou si le résultat est vide, le fichier n’est pas une licence émise pour ce produit, ou il a été corrompu lors du transfert.
Vérifier la licence, le compte et la date d’expiration
devin auth status fonctionne même lorsque la licence est absente ou invalide : vous pouvez donc l’utiliser pour diagnostiquer le problème :
Identity correspond à l’identité locale utilisée pour la mention d’auteur (nom d’utilisateur du système d’exploitation et git config user.email) ; elle est enregistrée dans le journal d’audit et ne dépend pas de la licence. Si le fichier ne peut pas être validé, la dernière ligne est remplacée par License: INVALID — LIC00X: <reason>.
La vérification license de devin airgap doctor affiche la même licence, le même compte et la même date d’expiration, et passe à warn dans les 30 jours précédant l’expiration.
Comportement au démarrage et lors de la revalidation
-
À chaque démarrage, la CLI valide la licence et affiche une ligne sur stderr :
Si la licence expire dans les 30 jours, une ligne
Warning: license expires in N day(s)s’affiche à la suite. - Les processus de longue durée (l’agent fourni avec Desktop, le REPL de la CLI) revérifient le fichier au plus une fois par heure, avant de démarrer une nouvelle session ou un nouveau tour. Le travail en cours n’est jamais interrompu.
-
Une licence expirée depuis plus de 24 heures bloque les nouvelles sessions et les nouveaux tours. Dans Desktop, le panneau de chat affiche l’erreur ACP
-32019 license_invalid; la cause précise (LIC00X) est indiquée dans View → Output → Devin ACP. - Les échecs ne sont pas mis en cache : un fichier renouvelé prend effet dès le tour suivant, sans redémarrage.
-
Quelques commandes fonctionnent sans licence valide afin de vous permettre de réparer un hôte :
devin auth status,devin airgap doctor,devin doctor,devin diagnostics,devin models validateetdevin version.
Renouveler ou remplacer une licence
- Générez depuis le portail une nouvelle licence pour le même titulaire de licence (voir ci-dessus). Si la licence est déjà utilisée, demandez d’abord à votre équipe d’assistance de révoquer l’ancienne.
-
Remplacez le fichier existant par le nouveau à l’emplacement
/etc/devin/license.devin-onprem-license(ou au chemin défini dansDEVIN_LICENSE_FILE). Le fichier doit appartenir au compte qui exécute Devin, ou à root avec un accès en lecture pour ce compte. Sous Windows, le chemin par défaut estC:\ProgramData\Devin\license.devin-onprem-license; remplacez le fichier depuis une session avec privilèges élevés. -
Vérifiez :
Codes d’erreur
Tous les échecs liés à la licence s’affichent sous la formeLIC00X: <message>, suivis du chemin vérifié et de la manière de le remplacer.
Le catalogue complet, tous espaces de noms confondus, est disponible dans Codes d’erreur.

