Questa documentazione riguarda le distribuzioni di Devin per il governo federale. Torna alla documentazione di Devin
Dove si trova la licenza
L’agente incluso nel bundle di Desktop e la CLI standalone leggono lo stesso file. Installalo prima del primo avvio; consulta Installazione → Passaggio 4. Gli utenti di Desktop possono anche installare una licenza dalle impostazioni di Devin: l’agente incluso nel bundle convalida il file offline, non sovrascrive un file di proprietà di un altro utente e registra un evento di audit
license_installed. Su Windows, se il file di licenza è di proprietà di un amministratore, un utente standard non può sostituirlo da Desktop (l’installazione viene rifiutata con LIC001), mentre un amministratore sì. Limita l’accesso a C:\ProgramData\Devin\ prima di copiarvi il file.
Emettere una licenza dal portale
- Accedi al portale e apri la pagina Team. La sezione Air-gapped licenses mostra quante postazioni sono in uso, il periodo del diritto di licenza e la durata predefinita delle licenze.
- Fai clic su Generate license.
- Inserisci un’etichetta (ad esempio l’hostname o il nome dell’utente), l’email dell’assegnatario e la durata in giorni. Per impostazione predefinita, la durata corrisponde al valore predefinito del tuo diritto di licenza e non può superare né la durata massima prevista dal diritto di licenza né la fine del relativo periodo; il passaggio di revisione mostra la data di scadenza prevista.
- Conferma. Il portale mostra il messaggio License generated e propone l’opzione Download license file. Il file scaricato è il file firmato
.devin-onprem-license; trasferiscilo sull’host air-gapped tramite la procedura approvata per i supporti fisici.
Contenuto del file
Il file è un singolo JSON Web Token in forma compatta (header.payload.signature), firmato con EdDSA (Ed25519). Il campo kid dell’intestazione identifica la chiave pubblica usata per la firma; il prodotto include le chiavi pubbliche di tutti gli ambienti, quindi in fase di convalida non viene recuperato nulla. Claim:
I controlli di convalida verificano la firma con la chiave incorporata selezionata tramite
kid, l’intervallo nbf/exp (con una tolleranza di 24 ore in entrambe le direzioni per lo sfasamento dell’orologio) e il claim product.
Esaminare una licenza
Verificare l’ID della chiave
Decodifica l’intestazione del JWT e leggi il campokid. Questo comando su una sola riga funziona sia su Linux sia su macOS: converte base64url in base64 e aggiunge il padding, perché la versione BSD di base64 inclusa in macOS tronca senza alcun avviso l’input privo di padding.
Se il
kid è diverso o il risultato è vuoto, il file non è una licenza emessa per questo prodotto oppure si è danneggiato durante il trasferimento.
Verifica la postazione, l’account e la scadenza
devin auth status funziona anche quando la licenza manca o non è valida, quindi puoi usarlo per diagnosticare il problema:
Identity è l’identità di attribuzione locale (nome utente del sistema operativo più git config user.email); viene registrata nel registro di audit ed è indipendente dalla licenza. Se non è possibile convalidare il file, l’ultima riga diventa invece License: INVALID — LIC00X: <reason>.
Il controllo license di devin airgap doctor riporta gli stessi dati di postazione, account e scadenza, e passa a warn nei 30 giorni che precedono la scadenza.
Comportamento all’avvio e alla riconvalida
-
A ogni avvio, la CLI convalida la licenza e stampa una riga su stderr:
Se la licenza scade entro 30 giorni, viene stampata anche una riga
Warning: license expires in N day(s). - I processi di lunga durata (l’agente incluso nel bundle di Desktop, la REPL della CLI) verificano nuovamente il file al massimo una volta all’ora, prima di avviare una nuova sessione o un nuovo turn. Il lavoro in corso non viene mai interrotto.
-
Una licenza scaduta da più di 24 ore blocca l’avvio di nuove sessioni e nuovi turn. In Desktop, il pannello della chat mostra l’errore ACP
-32019 license_invalid; la causa specifica (LIC00X) è riportata in View → Output → Devin ACP. - Gli errori non vengono memorizzati nella cache: un file rinnovato, una volta installato, ha effetto dal turn successivo senza bisogno di riavviare.
-
Alcuni comandi funzionano anche senza una licenza valida, così da poter ripristinare un host:
devin auth status,devin airgap doctor,devin doctor,devin diagnostics,devin models validateedevin version.
Rinnovare o sostituire una licenza
- Genera dal portale una nuova licenza per lo stesso titolare della postazione (vedi sopra). Se la postazione è già in uso, chiedi prima al tuo team di supporto di revocare la vecchia licenza.
-
Sovrascrivi il file esistente in
/etc/devin/license.devin-onprem-license(o nel percorso indicato inDEVIN_LICENSE_FILE) con quello nuovo. Il file deve restare di proprietà dell’account che esegue Devin, oppure di root con accesso in lettura per tale account. Su Windows il percorso predefinito èC:\ProgramData\Devin\license.devin-onprem-license; sostituisci il file da una sessione con privilegi elevati. -
Verifica:
Codici di errore
Tutti gli errori di licenza vengono visualizzati nel formatoLIC00X: <message>, seguiti dal percorso verificato e dalle istruzioni per sovrascriverlo.
Il catalogo completo per tutti i namespace è disponibile in Codici di errore.

