应用程序环境变量
OpenFactory 可以存储应用程序范围和帐户范围的环境值, 静态加密它们,并在部署期间将它们渲染到候选应用程序虚拟机中。 这是早期的文件支持的秘密存储,而不是托管保管库。
范围和优先级
- 帐户值是该帐户拥有的每个应用程序的可重复使用的默认值。
- 应用程序值会覆盖同名的帐户值。
- 托管值由配置的生产者令牌写入并记录 拥有密钥的生产者。
- 更改后的值递增
env_version;成功的部署会记录 应用版本。差异意味着需要重新部署。
名称必须是大写环境标识符,限制为 128
字符,并且不能使用保留的 OPENFACTORY_ 前缀。用户值为
限制为 8 KiB,应用程序限制为 100 个密钥。
MCP 工作流程
列表操作始终屏蔽值。仅在必要时显示一个值:
set_app_env(
app_id="550e8400-e29b-41d4-a716-446655440000",
set={"API_BASE_URL": "https://api.example.internal"}
)
list_app_env(app_id="550e8400-e29b-41d4-a716-446655440000")
reveal_app_env(
app_id="550e8400-e29b-41d4-a716-446655440000",
name="API_BASE_URL"
)相同的模式可用作 set_account_env、list_account_env 和
reveal_account_env。应用程序级设置/删除操作返回 env_version
和 redeploy_hint;设置值不会改变正在运行的虚拟机。
静止表面
| 方法 | 路径 | 目的 |
|---|---|---|
GET | /api/apps/{app_id}/env | 屏蔽的应用程序密钥列表和版本状态 |
PUT | /api/apps/{app_id}/env | 应用程序密钥的事务设置/删除 |
POST | /api/apps/{app_id}/env/reveal | 经审计的明文揭示一个应用程序密钥 |
GET | /api/account/env | 隐藏帐户密钥列表 |
PUT | /api/account/env | 帐户密钥的交易设置/删除 |
POST | /api/account/env/reveal | 经审计的明文揭示一个帐户密钥 |
PUT | PUT | /api/apps/{app_id}/env/managed |
DELETE | /api/apps/{app_id}/env/managed/{name} | 生产者删除其拥有的托管密钥 |
用户表面强制执行已解析的所有者上下文。托管端点使用
来自运营商配置的生产者令牌的 <kid>.<secret> 持有者凭证
文件;如果没有该文件,生产者 API 将返回不可用。
部署行为
在部署期间,后端解密帐户值、覆盖应用程序值、添加
平台的运行时字段,并在VM中写入/etc/openfactory/app.env
模式为 0600。该进程以该文件作为其环境启动。
如果解密、文件传送或启动失败,则不会晋升候选人。
安全边界
- 存储值使用 Fernet 加密。运营商必须提供并保护
OPENFACTORY_ENV_MASTER_KEY;失去或替换它会产生现有的价值 无法解密。 - 列表响应被屏蔽。显式揭示和突变附加 JSONL 审计事件。
- 当前存储和审计跟踪是本地文件。他们不提供 硬件支持的密钥、多方批准、防篡改日志记录、自动 轮换或灾难恢复保证。
- 应用程序和部署日志尚未提供完整的秘密编辑 边界。一个打印其环境、带有凭证的 URL 的进程, 或者错误中的秘密可以在日志和测试证据中暴露它。
因此,请勿将此预览存储用于生产凭据,直到 您的部署具有独立的访问控制、备份和恢复测试, 日志编辑验证、保留规则和记录的密钥轮换 程序。切勿在配方、源代码、命令、URL、测试中放置秘密 描述或断言期望。
请参阅应用部署 了解候选人晋升流程。