Skip to main content

概述

system.json 是一个可选的全系统策略文件,管理员会将其分发到受管设备上 (通常通过 MDM) 。它位于仅管理员可写的系统目录中,因此,与位于 ~/.config/devin/config.json 的用户配置不同,其中的设置无法由用户更改或删除。 可用于:
  • 身份验证固定到你的 Enterprise Devin 主机和/或账户,使 devin auth login 跳过登录方式菜单,并拒绝不属于你的组织的账户。
  • 为 CLI 及其更新程序强制指定出站 HTTP 代理。Enterprise 设置优先于用户配置;如果用户自己的配置中也有 proxy 部分,系统会要求其先删除该部分,CLI 才能启动——部署前请参阅代理
该文件是可选且叠加的:如果不存在,Devin CLI 的行为将与在非受管设备上完全一致。

文件位置

这些目录与 Devin Desktop 用于系统级规则钩子的、供管理员写入的全系统目录相同。部署该文件时,请将所有者设为 root/Administrator,并将普通用户权限设为只读——CLI 会读取其找到的任何位置的该文件,因此将文件放在用户可写的位置会使策略失去意义。

示例

system.json 会按严格的 JSON 格式解析,不支持注释和尾随逗号;而用户的 config.json 则支持带注释的 JSON。上方的注释仅用于标示文件路径。

选项参考

各字段相互独立——仅设置所需字段。未知字段将被忽略,因此为较新版本 CLI 编写的策略仍可在较旧版本上应用其中已知的设置。

enterprise_host

设置后,devin auth login 将:
  1. 跳过登录方式菜单和子域名提示,直接通过已配置的主机进行身份验证。
  2. 如果登录后获得的账户属于其他主机 (或根本不属于任何 Devin Enterprise) ,则拒绝登录,并提示用户前往正确的主机。
  3. 完全禁用旧版 Windsurf 登录 流程。
比较该值时不区分大小写,且会忽略协议,因此 acme.devinenterprise.comACME.DevinEnterprise.comhttps://acme.devinenterprise.com/ 视为等效。登录时会保留显式指定的 http:// 协议 (仅用于测试) ;否则默认使用 https://

account_id

设置后,已通过身份验证的账户必须与此账户标识符一致,即使主机已匹配也不例外。可使用此选项在共享主机上固定到特定租户。若登录后解析到其他账户或未解析到任何账户,将在账户验证后被拒绝。 如果你不确定应使用哪个账户标识符,请联系你的 Cognition 账户团队。设置 account_id 还会拒绝使用旧版 Windsurf 登录流程,因为 Windsurf 账户无法满足 Devin 账户策略。

proxy

配置 CLI 自身的出站 HTTP/HTTPS 流量 (API 调用、更新、MCP 服务器) 的路由方式。其格式与用户配置文件proxy 部分相同: devin-updater 二进制程序也会读取此设置,因此后台更新将使用与 CLI 相同的代理。
企业代理优先于用户配置,且两个文件不能同时配置代理,否则会报错。如果用户的 config.json 中也包含 proxy 部分,CLI 会在启动时退出,并要求用户将其删除,而非静默忽略该设置。请在推出此策略前告知用户删除所有本地 proxy 部分。

行为和故障模式

损坏或仅能部分识别的策略文件绝不会导致 CLI 停用,而是会降级为不进行强制执行;有效策略则始终会被强制执行: 登录强制执行会在执行 devin auth login 时生效。对于在策略部署前已登录设备上存储的凭据,不会重新验证。因此,请在推出 CLI 前部署 system.json,或者让受影响的用户执行 devin auth logout 后重新登录。 在 stable、next 或 enterprise 构建中,无法通过环境变量重定向 system.json 的路径,因此用户无法将 CLI 指向自己的策略。

验证策略

在受管设备上:
设置 enterprise_host 后,登录方式菜单不应出现,输出的登录 URL 应指向你配置的主机。然后确认生成的会话:
使用不符合该策略的账户登录会失败,并显示明确提示,说明你的组织要求使用的主机或账户。 system.json 涵盖必须在登录前或登录过程中配置的设备级策略。大多数其他组织级控制项——模型、MCP 服务器和注册表、终端权限、沙盒强制执行、网页搜索——均在服务器端的团队设置中进行管理,并会在用户登录后自动生效。

延伸阅读