Secrets 应用计划契约
本页定义�?openclaw secrets apply 强制执行的严格契约�?
如果目标不符合这些规则,应用在变更配置之前失败�?
计划文件形状
openclaw secrets apply --from <plan.json> 期望一�?targets 计划目标数组�?
{
version: 1,
protocolVersion: 1,
targets: [
{
type: "models.providers.apiKey",
path: "models.providers.openai.apiKey",
pathSegments: ["models", "providers", "openai", "apiKey"],
providerId: "openai",
ref: { source: "env", provider: "default", id: "OPENAI_API_KEY" },
},
],
}
允许的目标类型和路径
target.type | 允许�?target.path 形状 | 可�?ID 匹配规则 |
|---|---|---|
models.providers.apiKey | models.providers.<providerId>.apiKey | providerId 必须匹配 <providerId>(当存在时) |
skills.entries.apiKey | skills.entries.<skillKey>.apiKey | n/a |
channels.googlechat.serviceAccount | channels.googlechat.serviceAccount | accountId 必须为空/省略 |
channels.googlechat.serviceAccount | channels.googlechat.accounts.<accountId>.serviceAccount | accountId 必须匹配 <accountId>(当存在时) |
路径验证规则
每个目标都经过以下全部验证:
type必须是上述允许的目标类型之一�?path必须是非空的点路径�?pathSegments可以省略。如果提供,它必须规范化为与path完全相同的路径�?- 禁止的段被拒绝:
__proto__、prototype、constructor�? - 规范化路径必须匹配目标类型允许的路径形状之一�?
- 如果设置�?
providerId/accountId,它必须与路径中编码�?ID 匹配�?
失败行为
如果目标验证失败,应用退出并显示如下错误�?
Invalid plan target path for models.providers.apiKey: models.providers.openai.baseUrl
不会为该无效目标路径提交部分变更�?
�?ref �?auth-profile 和隐式提供�?
隐式提供者发现还考虑存储 ref 而非明文凭证�?auth-profile�?
type: "api_key"�?profile 可以使用keyRef(例�?env 支持�?ref)�?type: "token"�?profile 可以使用tokenRef�?
行为�?
- 对于 API 密钥提供者(例如
volcengine、byteplus),�?ref �?profile 仍然可以激活隐式提供者条目�? - 对于
github-copilot,如�?profile 没有明文令牌,发现将在令牌交换之前尝�?tokenRefenv 解析�?
操作员检�?
# 验证计划而不写入
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
# 然后实际应用
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
如果应用失败并显示无效目标路径消息,使用 openclaw secrets configure 重新生成计划或将目标路径修复为上述允许的形状之一�?