定义 openclaw secrets apply 强制执行的严格合约。目标不符合规则时,apply 在变更配置前就会失败。

计划文件格式

{
  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" },
    },
    {
      type: "auth-profiles.api_key.key",
      path: "profiles.openai:default.key",
      pathSegments: ["profiles", "openai:default", "key"],
      agentId: "main",
      ref: { source: "env", provider: "default", id: "OPENAI_API_KEY" },
    },
  ],
}

路径验证规则

  • type 必须是已识别的目标类型
  • path 必须是非空点路径
  • pathSegments 若提供,必须与 path 规范化后一致
  • 禁止段:__proto__、prototype、constructor
  • auth-profiles.json 目标必须提供 agentId
  • 新建 auth-profiles.json 映射时需提供 authProfileProvider

兼容别名(仍接受)

  • models.providers.apiKey
  • skills.entries.apiKey
  • channels.googlechat.serviceAccount

Exec Provider 同意行为

  • --dry-run 默认跳过 exec SecretRef 检查
  • 包含 exec SecretRef 的计划在写入模式下被拒绝,除非传 --allow-exec

操作命令

# 验证计划(不写入)
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
 
# 实际应用
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
 
# exec 计划需显式 opt-in
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run --allow-exec
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --allow-exec

失败示例

Invalid plan target path for models.providers.apiKey: models.providers.openai.baseUrl

无效计划不会提交任何写入。

相关