アプリ環境変数
OpenFactory は、アプリ スコープおよびアカウント スコープの環境値を保存できます。 保存時にそれらを暗号化し、デプロイ時に候補アプリ VM にレンダリングします。 これは、管理されたコンテナーではなく、初期のファイルにバックアップされたシークレット ストアです。
スコープと優先順位
- アカウント値は、そのアカウントが所有するすべてのアプリの再利用可能なデフォルトです。
- アプリの値は、同じ名前のアカウントの値を上書きします。
- 管理された値は、構成されたプロデューサー トークンによって書き込まれ、 キーを所有するプロデューサー。
- 変更された値は
env_versionずつ増加します。デプロイが成功すると記録されます 応用バージョン。違いがある場合は、再デプロイが必要であることを意味します。
名前は大文字の環境識別子である必要があり、128 に制限されています
文字であり、予約された OPENFACTORY_ プレフィックスは使用できません。ユーザーの価値観は、
は 8 KiB に制限され、アプリは 100 キーに制限されます。
MCP ワークフロー
リスト操作では常に値がマスクされます。必要な場合にのみ 1 つの値を公開します。
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。値を設定しても、実行中の VM は変更されません。
REST サーフェス
| 方法 | パス | 目的 |
|---|---|---|
GET | /api/apps/{app_id}/env | マスクされたアプリキーのリストとバージョン状態 |
PUT | /api/apps/{app_id}/env | アプリキーのトランザクション設定/削除 |
POST | /api/apps/{app_id}/env/reveal | 監査された平文で 1 つのアプリ キーが明らかに |
GET | /api/account/env | マスクされたアカウント キー リスト |
PUT | /api/account/env | アカウントキーのトランザクション設定/削除 |
POST | /api/account/env/reveal | 監査された平文で 1 つのアカウント キーが明らかに |
PUT | /api/apps/{app_id}/env/managed | 構成されたプロデューサーがマネージド キーを公開する |
DELETE | /api/apps/{app_id}/env/managed/{name} | プロデューサーが所有するマネージド キーを削除します。 |
ユーザー サーフェスは、解決されたオーナー コンテキストを強制します。管理対象エンドポイントは、 オペレーターが構成したプロデューサー・トークンからの 24 個のベアラー資格情報 ファイル;このファイルがないと、プロデューサー API は使用不可を返します。
デプロイ動作
デプロイ中に、バックエンドはアカウント値を復号化し、アプリ値をオーバーレイし、追加します。
プラットフォームのランタイムフィールドに /etc/openfactory/app.env を VM に書き込みます
モード 0600 付き。プロセスは、そのファイルを環境として使用して開始されます。
復号化、ファイル配信、または起動に失敗した場合、候補者は昇格されません。
セキュリティ境界
- 保存された値は Fernet 暗号化を使用します。オペレータは供給し、保護する必要があります
OPENFACTORY_ENV_MASTER_KEY;失ったり交換したりすると既存の価値が生じる 解読不能。 - リストの応答はマスクされます。明示的なリビールとミューテーションは JSONL を追加します 監査イベント。
- 現在のストレージと監査証跡はローカル ファイルです。彼らは提供しません ハードウェアベースのキー、複数当事者による承認、改ざん明示ロギング、自動 ローテーション、または災害復旧保証。
- アプリケーションおよびデプロイのログでは、完全なシークレット編集がまだ提供されていません 境界線。環境、資格情報を含む URL を出力するプロセス。 または、エラー内のシークレットがログに記録され、証拠がテストされる可能性があります。
そのため、次の作業が完了するまで、このプレビュー ストアを本番認証情報に使用しないでください。 導入環境には独立したアクセス制御、バックアップと復元のテストがあり、 ログリダクション検証、保持ルール、および文書化されたキーローテーション 手順。レシピ、ソースコード、コマンド、URL、テストにはシークレットを決して置かないでください。 説明、またはアサーションの期待。
候補者のプロモーション フローについては、アプリの導入 を参照してください。