托管配置与优先级
区分强制约束、普通默认值和 managed_config.toml,并核对云策略加载与 MDM。
选择配置机制前,先区分“用户开始时用什么值”和“用户可以选择什么值”。只有 requirements 提供管理员强制约束;默认值本身不是权限边界。
三种机制
| 机制 | 行为 |
|---|---|
| requirements.toml | 限定支持的安全设置;用户配置不能突破 |
| 系统或 Cloud config.toml 默认值 | 按普通配置优先级提供可覆盖的起点 |
| Legacy managed_config.toml | 启动时覆盖本地 config 和 CLI --config;运行中仍可修改,下次启动重新应用 |
用户配置与 requirements 冲突时,支持的客户端会选择兼容值并通知用户。默认值也必须满足 requirements,否则运行时会拒绝不允许的值。
本地 requirements 的来源
从低到高依次为:
- 系统文件:Unix 的
/etc/codex/requirements.toml,Windows 的%ProgramData%\OpenAI\Codex\requirements.toml。 - Agent Security 通过 cloud config bundle 下发的 requirements。
- 客户端从 legacy managed_config.toml 重新解释得到的兼容 requirements。
- macOS MDM 的
com.openai.codex:requirements_toml_base64。
普通标量与列表由高优先级值覆盖,表按键合并。Rules、Hooks、文件系统限制有各自的组合规则,不能对所有字段套用同一合并算法。
Agent Security 同一策略中,OS 专属环境覆盖高于所有 OS 的环境覆盖,再高于 Global;不同策略之间仍由策略优先级决定,低优先级策略不会因更具体而胜出。
云策略加载
支持的本地客户端先查与当前身份匹配的有效缓存;没有时重试获取适用 bundle,成功后保存签名缓存。无法获取且没有有效缓存时返回错误,不会静默跳过云策略。
后台刷新可更新后续启动使用的缓存,但不替换当前进程已加载的 requirements。更改策略后,应在重新启动的客户端核实有效值。这个本地加载规则不能用于推断已经运行的云编排任务何时更新。
Legacy defaults 与 MDM
managed_config.toml 位于 Linux/macOS 的 /etc/codex/managed_config.toml,Windows/非 Unix 的 ~/.codex/managed_config.toml。缺失时跳过该层。
macOS MDM 使用 preference domain com.openai.codex:config_toml_base64 提供 legacy managed defaults,requirements_toml_base64 提供强制约束。将 TOML 编成不换行的 base64,通过 MDM 分发后重启支持的客户端并核对启动配置。策略文件不适合嵌入秘密或高频变化的值。
本地、Codex Cloud 与 Work Cloud 的执行要求各有范围,不应假设设备配置会自动约束所有云端能力。