Skip to main content

Panoramica

system.json è un file di policy facoltativo a livello di macchina che gli amministratori distribuiscono ai dispositivi gestiti, in genere tramite MDM. Risiede in una directory di sistema in cui può scrivere solo un amministratore; pertanto, a differenza della configurazione utente in ~/.config/devin/config.json, le impostazioni che contiene non possono essere modificate o rimosse dall’utente. Usalo per:
  • Bloccare l’autenticazione sull’host e/o sull’account Devin della tua Enterprise, in modo che devin auth login salti il menu del metodo di accesso e rifiuti qualsiasi account esterno alla tua organizzazione.
  • Forzare un proxy HTTP in uscita per la CLI e il relativo aggiornamento. L’impostazione Enterprise ha la precedenza sulla configurazione utente e, se un utente ha anche una sezione proxy nella propria configurazione, gli viene chiesto di rimuoverla prima dell’avvio della CLI. Prima di distribuirne uno, consulta proxy.
Il file è facoltativo e additivo: se non è presente, Devin CLI si comporta esattamente come su un dispositivo non gestito.

Percorso del file

Si tratta delle stesse directory a livello di macchina, scrivibili dagli amministratori, che Devin Desktop usa per le regole e gli hook a livello di sistema. Distribuisci il file assegnandone la proprietà a root/Administrator e autorizzazioni di sola lettura per gli utenti normali: la CLI lo legge ovunque lo trovi, quindi una posizione scrivibile dagli utenti vanifica lo scopo della policy.

Esempio

system.json viene analizzato come JSON rigoroso: qui i commenti e le virgole finali non sono supportati, a differenza del file config.json dell’utente, che è JSON con commenti. Il commento precedente è riportato solo per indicare il percorso del file.

Riferimento delle opzioni

Ogni campo è indipendente: imposta solo quelli necessari. I campi sconosciuti vengono ignorati, quindi una policy scritta per una CLI più recente applica comunque le impostazioni note su una versione precedente.

enterprise_host

Se impostato, devin auth login:
  1. Salta il menu del metodo di accesso e la richiesta del sottodominio, eseguendo l’autenticazione direttamente sull’host configurato.
  2. Rifiuta qualsiasi accesso il cui account risultante appartenga a un host diverso (o non appartenga ad alcun Devin Enterprise), mostrando un messaggio che indirizza l’utente all’host corretto.
  3. Rifiuta completamente il percorso legacy di accesso a Windsurf.
Il valore viene confrontato senza distinzione tra maiuscole e minuscole e ignorando lo schema, pertanto acme.devinenterprise.com, ACME.DevinEnterprise.com e https://acme.devinenterprise.com/ sono equivalenti. Uno schema http:// esplicito viene mantenuto durante l’accesso (utile solo per il testing); altrimenti si presume https://.

account_id

Se impostato, l’account autenticato deve corrispondere a questo identificatore account, anche se l’host corrisponde già: usalo per bloccare un tenant specifico su un host condiviso. Un accesso che corrisponde a un altro account, o a nessun account, viene rifiutato dopo la verifica dell’account. Contatta il team account di Cognition se non sei sicuro dell’identificatore account da usare. L’impostazione di account_id rifiuta anche il percorso di accesso legacy di Windsurf, poiché un account Windsurf non può soddisfare una policy di account Devin.

proxy

Configura il modo in cui la CLI instrada il proprio traffico HTTP/HTTPS in uscita (chiamate API, aggiornamenti, server MCP). Utilizza la stessa struttura della sezione proxy del file di configurazione utente: Il binario devin-updater legge la stessa impostazione, quindi gli aggiornamenti in background usano lo stesso proxy della CLI.
Il proxy Enterprise ha la precedenza sulla configurazione utente ed è un errore configurarlo in entrambi i file. Se un utente ha anche una sezione proxy nel proprio config.json, la CLI termina all’avvio e chiede di rimuoverla, anziché ignorare silenziosamente l’impostazione. Invita gli utenti a rimuovere qualsiasi sezione proxy locale prima di distribuire la policy.

Comportamento e modalità di errore

Un file di policy danneggiato o compreso solo in parte non disabilita mai la CLI: non comporta alcuna applicazione, mentre una policy valida viene sempre applicata: L’applicazione delle restrizioni di accesso avviene durante devin auth login. Le credenziali già archiviate su un dispositivo su cui è stato effettuato l’accesso prima della distribuzione della policy non vengono nuovamente convalidate. Pertanto, distribuisci system.json prima di distribuire la CLI oppure chiedi agli utenti interessati di eseguire devin auth logout e di accedere nuovamente. Il percorso di system.json non può essere reindirizzato tramite una variabile d’ambiente nelle build stable, next o Enterprise, quindi gli utenti non possono indirizzare la CLI a una policy di propria scelta.

Verifica della policy

Su un dispositivo gestito:
Con enterprise_host impostato, il menu dei metodi di accesso non dovrebbe essere visualizzato e l’URL di accesso generato dovrebbe puntare all’host configurato. Verifica quindi la sessione risultante:
Un tentativo di accesso con un account non conforme alla policy non va a buon fine e visualizza un messaggio esplicito che indica l’host o l’account richiesto dalla tua organizzazione. system.json definisce le policy a livello di dispositivo che devono essere configurate prima o durante l’accesso. La maggior parte degli altri controlli a livello di organizzazione — modelli, server MCP e registri, autorizzazioni del Terminale, applicazione della sandbox, ricerca sul web — viene gestita lato server in Team Settings e si applica automaticamente quando un utente effettua l’accesso.

Per approfondire