用途:为 Gamma API 访问配置开发、预发布(staging)和生产三套环境。由于 Gamma 是无自托管选项的 SaaS API,环境隔离依靠独立工作区(不同 API 密钥)、开发用 mock 服务器以及环境感知的客户端配置实现。
前置条件:每个环境拥有独立 Gamma 工作区(至少独立 API 密钥);具备密钥管理方案;已完成 gamma-install-auth 设置。
主要能力:
- 环境配置:在配置文件中按 NODE_ENV 定义 baseUrl、useMock、timeoutMs、maxRetries。开发环境可指向 localhost:9876 的 mock 服务器(不消耗积分),staging 与 production 使用 https://public-api.gamma.app/v1.0。
- 环境感知客户端工厂:缓存并复用客户端实例,提供 resetGammaClient() 便于测试。
- 环境变量文件:示例包含 .env.development、.env.test、.env.staging;生产密钥不建议放在文件,应从 AWS Secrets Manager / Vault 获取,并带 5 分钟缓存。
- 环境守卫:blockProduction() 阻止生产环境执行破坏性操作;warnCredits() 在非生产且未启用 mock 时提示会消耗积分。
- CI/CD 配置:GitHub Actions 中 test 任务使用 GAMMA_MOCK=true 无需密钥;staging 与 production 任务按分支使用对应 Secrets。
环境检查清单:Dev 密钥来自 .env,mock 可选;Test 无需密钥、启用 mock;Staging 密钥来自 GitHub Secret,不用 mock;Production 密钥来自 Secret Manager,不用 mock,需关闭调试日志。
输出要求:记录环境身份引用、已批准目标、策略版本、验证结果、负责人与回滚路径,且不得包含凭据或内容。示例做法:用虚构 staging 演示文稿证明开发凭据无法发布到生产,轮换 staging 凭据,只保留脱敏的控制证据。
限制与排错:密钥环境不匹配会报错,需核对 NODE_ENV 与对应密钥;开发环境意外消耗积分需设置 GAMMA_MOCK=true;密钥获取失败需检查 IAM 权限;防止生产数据进入开发需添加环境守卫。其他限制暂未提供。