用途:该技能面向 Doppler Secrets Manager 的 API,用于检索和列出密钥(secrets)。当用户提及 "Doppler"、"doppler secrets"、"dp.st token",或提出与密钥相关的问题时适用。
主要能力:
- 按名称获取单个密钥:调用 GET https://api.doppler.com/v3/configs/config/secret,传入 project、config、name 参数,并用 jq 提取 name、raw、computed 字段。
- 列出配置中的全部密钥:调用 GET https://api.doppler.com/v3/configs/config/secrets,传入 project、config,并用 jq 遍历 secrets 输出 name、raw、computed。
- 以 JSON 下载全部密钥:调用 GET https://api.doppler.com/v3/configs/config/secrets/download,传入 project、config、format=json,返回扁平的键值 JSON 对象。
- 列出项目:调用 GET https://api.doppler.com/v3/projects,用 jq 输出 id、name、slug。
- 列出项目下的配置:调用 GET https://api.doppler.com/v3/configs,传入 project,用 jq 输出 name、environment、locked。
使用方式:所有请求均需在请求头中携带 Authorization: Bearer $DOPPLER_TOKEN。示例命令中使用 curl 发起请求,并通过 -G 与 --data-urlencode 传参,再用 jq 做结果格式化。需要将 <project-slug> 替换为 Doppler 项目 slug,<config-name> 替换为配置名(如 dev、prd),<SECRET_NAME> 替换为准确的密钥键名。
排障:如果请求失败,可运行 zero doctor check-connector --env-name DOPPLER_TOKEN,或运行 zero doctor check-connector --url https://api.doppler.com/v3/configs/config/secret --method GET 进行检查。
适用场景:适用于需要从 Doppler 读取项目、配置及密钥值的自动化或问答场景,例如获取单个密钥、批量列举配置中的密钥、以 JSON 形式导出密钥用于后续处理,或先列出项目和配置以获取正确的 slug 与配置名。
限制与注意事项:
- 服务令牌作用域:dp.st.* 令牌仅限单个 project + config,无法访问其他项目。
- 项目 slug:可通过“列出项目”获取,它是 URL 安全标识符,而非显示名称。
- 配置名:通常与环境名一致(如 dev、staging、prd),可列出配置以确认。
- raw 与 computed:raw 是存储值;computed 是解析变量引用后的值。
- 速率限制:Doppler 对免费计划的每个令牌实施速率限制,应避免在紧密循环中轮询。
- 安全性:服务令牌授予对所作用域配置中所有密钥的读取(以及可选的写入)权限,应定期轮换。