多环境与目录继承
通过 Infisical 环境和项目目录共享、覆盖变量。
一个工作区绑定一个 Infisical 项目。environments.names 声明环境名,目录路径区分共享变量与项目变量。
环境名
新工作区使用 dev、preview、prod。添加 qa:
one env set API_URL=https://qa.example.com -p web --env qa --yes
one env list -p web --env qa
one exec -p web --env qa -- pnpm test
set 会登记新环境名,list 拒绝未声明名称。省略 --env 时使用 Manifest 默认环境。
目录继承
工作区 env.rootPath 默认 /,项目默认使用 relativeDir 对应目录。services/api 的合并顺序是:
/ → /services → /services/api
越靠近项目的目录优先覆盖同名变量。可在项目 env 中配置自定义路径:
{
"name": "api",
"relativeDir": "services/api",
"env": { "path": "/teams/payments/api", "inherits": true }
}
设置 inherits: false 只读取该目录;设置 disabled: true 跳过该项目的 Infisical 注入,继承 shell 环境。
执行
one run build --env preview
one exec -p api --env prod -- go run ./cmd/server
生成的任务适配器和项目命令直接接收拉取的变量,不同步本地变量文件。认证或拉取失败会停止执行。自定义 mise 任务继续使用 mise 自身环境。