SuperAPI AI 工具集

dotenvx-secrets

编程与开发

查看项目

更新于 10-15 23:47

技能介绍

用途:该技能说明本仓库如何用 dotenvx 加密管理 API 密钥,以及四套本地运行环境(local/dev/staging/prod)。核心要求是明文密钥绝不进入被跟踪文件,所有密钥经 dotenvx 就地加密后提交。

主要能力与环境:四个环境各为独立加密文件及独立密钥对,区别仅在于本地运行的 API 连接哪个后端。pnpm dev 对应 apps/api/.env(本地 Supabase Docker + 测试 Stripe),并运行 web 与隧道;pnpm dev:dev-env、pnpm dev:staging-env、pnpm dev:prod-env 分别对应 .env.dev、.env.staging、.env.prod,仅本地运行 API 指向对应远端后端。其中 dev:prod-env 会真实写入生产数据库并调用真实 Stripe。注意 apps/api/.env.prod 并非生产实际运行的配置,生产从 AWS Secrets Manager 加载,改该文件不影响生产。

使用方式:新增或修改密钥用 dotenvx set KEY value -f <文件> 后就地重加密并提交。读取用 dotenvx get KEY -f <文件>。验证四套环境可解密且相互隔离用 pnpm test:envs。新机器登录后按团队拉取:dotenvx armor login,再对各文件执行 dotenvx armor pull --team go-marko-kortix-ai -f <文件>;生产用 --team kortix-ai-prod,仅限生产授权成员。私钥存放于 Dotenv Armor 云端及被忽略的 .env.keys。机器本地覆盖可写入被忽略的 apps/api/.env.local。

限制与注意:键对轮换需通过仓库固定的 dotenvx 1.75.x 的 pnpm exec dotenvx rotate 执行,rotate --no-armor 会产生临时的 old,new 合并值,不可推送到只接受单个私钥的 Armor;轮换不能使已解密过密钥的人遗忘,如需彻底吊销还需轮换底层厂商凭证。Dotenvx 2.14.0 存在 run --token 不转发到运行时 Armor 提供者的问题,自动化场景应使用显式团队 pull 并事后删除生成的 .env.keys。Armor 登录建议使用 dotenvx 2.7.1 或更新版本。supabase/.env 为明文且被忽略,不由 dotenvx 管理。资料未提供具体价格或收费信息。