mcpField
D
doppler-workflows

doppler-workflows

github.com/terrylica安全1128 次安装今天更新
代码仓库

关于 doppler-workflows

doppler-workflows 是使用 Doppler CLI 注入和管理多种服务凭据的技能,涵盖 Python 包发布、AWS 密钥轮换、多账户模式和身份验证故障排查。

主要功能

  1. 01通过 Doppler CLI 注入凭据
  2. 02向 PyPI 发布 Python 包
  3. 03轮换 AWS 访问密钥
  4. 04管理多种服务的凭据
  5. 05排查身份验证故障

适用场景

  1. 01使用注入的凭据运行 PyPI 发布命令
  2. 02轮换 AWS 密钥并更新 Doppler
  3. 03诊断 403 或无效 AWS 令牌
  4. 04将项目目录绑定到 Doppler 配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/terrylica/cc-skills --skill doppler-workflows

安装后在 Claude Code 中输入/doppler-workflows确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AWS_SPECIFICATION.yaml
AWS_WORKFLOW.md
PYPI_REFERENCE.yaml
references/
aws-credentials.md
evolution-log.md
multi-service-patterns.md
pypi-publishing.md

详细介绍

Doppler 凭据工作流

自我演进的技能:此技能会在使用过程中不断改进。如果说明有误、参数发生变化,或需要采用变通方案,请立即修复此文件,不要拖延。仅在遇到真实、可复现的问题时更新。

使用时机

在以下情况下使用此技能:

  • 将 Python 包发布到 PyPI
  • 轮换 AWS 访问密钥
  • 管理多个服务的凭据
  • 排查身份验证失败(403、InvalidClientTokenId)
  • 设置 Doppler 凭据注入模式
  • 多令牌/多账户策略

快速参考

核心模式:Doppler CLI

标准用法:

doppler run --project <project> --config <config> --command='<command>'

为什么要使用 --command 标志:

  • Doppler 官方模式(自动检测 shell)
  • 确保变量在 Doppler 注入后再展开
  • 不使用该标志时:shell 会在 Doppler 运行前展开 $VAR → 得到空字符串

快速入门示例

PyPI 发布
doppler run --project private-config --config dev \
  --command='uv publish --token "$PYPI_TOKEN"'
AWS 操作
doppler run --project aws-credentials --config dev \
  --command='aws s3 ls --region $AWS_DEFAULT_REGION'

最佳实践

  1. 注入凭据时始终使用 --command 标志
  2. 使用项目范围的令牌(PyPI),以提高安全性
  3. 定期轮换凭据(建议每 90 天一次)
  4. 使用 Doppler 备注记录信息:doppler secrets notes set <SECRET> "<note>"
  5. 使用标准输入存储密钥:echo -n 'secret' | doppler secrets set
  6. 使用前测试注入:通过 echo ${#VAR} 验证长度
  7. 多令牌命名:使用 SERVICE_TOKEN_{ABBREV},以便于识别

参考文档

详细信息请参阅:

随附规范:

  • PYPI_REFERENCE.yaml - 完整的 PyPI 规范
  • AWS_SPECIFICATION.yaml - AWS 凭据架构

本地开发:按目录指定 Doppler 配置

进行本地开发时,先将项目目录绑定到对应的 Doppler 项目/配置,然后使用 doppler run 为每条命令指定作用范围:

cd ~/project && doppler setup --project private-config --config prd --no-interactive
doppler run -- COMMAND   # secrets such as PYPI_TOKEN exist for this command only

如果某个值需要在同一个 shell 中用于多条命令,请显式导出:export PYPI_TOKEN="$(doppler secrets get PYPI_TOKEN --plain)"。

切勿通过这种方式注入 GitHub 令牌(ADR 2026-06-21)。 GitHub 多账户身份验证由仓库的 origin 主机别名([email protected]<account>:…)驱动。每个仓库都会通过 ~/.claude/tools/bin/gh-token-for-repo 即时解析令牌;环境中的 GH_TOKEN 优先级高于隔离的 gh 配置文件,轮换后会导致 401。.secrets/gh-token-* 文件已删除。


PyPI 发布政策

有关 PyPI 发布的信息,请参阅 pypi-doppler skill,了解仅限本地的工作区政策。

切勿在 GitHub Actions 或 CI/CD 流水线中配置 PyPI 发布。


故障排除

问题原因解决方案
发布到 PyPI 时出现 403令牌已过期或权限范围错误重新生成项目范围的令牌,并在 Doppler 中更新
InvalidClientTokenId (AWS)访问密钥已轮换或删除运行 AWS 密钥轮换工作流,并更新 Doppler
变量展开为空使用 $VAR 时未加 --command始终使用 --command='...$VAR...' 模式
未找到 Doppler CLI未安装brew install dopplerhq/cli/doppler
选择了错误的配置项目/配置不明确显式指定 --project 和 --config
选中了错误的项目目录未绑定或绑定错误使用 doppler configure 检查;重新运行 doppler setup
获取密钥较慢每次调用都运行一次 doppler secrets get每个 shell 中只获取一次:export VAR="$(doppler secrets get VAR --plain)"
令牌长度不匹配复制时带入了多余空格修剪令牌:echo -n 'secret' | doppler secrets set

执行后回顾

此技能完成后,结束前请检查:

  1. 命令是否成功? — 如果没有,请修复导致失败的指令或错误表。
  2. 参数或输出是否发生变化? — 如果底层工具的接口发生变化,请更新用法示例和参数表,使其保持一致。
  3. 是否需要变通处理? — 如果你不得不临时变通(使用不同标志、增加额外步骤),请更新此 SKILL.md,以便下次调用时无需重复同样的变通处理。

仅当问题真实存在且可复现时才进行更新,不要基于推测更新。

评论

支持 Markdown