Zmienne środowiskowe aplikacji
OpenFactory może przechowywać wartości środowiskowe w zakresie aplikacji i konta, szyfrować je at rest i renderować je w candidate app VM podczas deploy. To wczesny file-backed secret store, a nie zarządzany vault.
Zakres i pierwszeństwo
- Wartości konta to wielokrotnego użytku domyślne ustawienia dla każdej aplikacji należącej do tego konta.
- Wartości aplikacji nadpisują wartości konta o tej samej nazwie.
- Managed values zapisuje skonfigurowany producer token i rejestruje producenta będącego właścicielem klucza.
- Zmieniona wartość zwiększa
env_version; udany deploy rejestruje zastosowaną wersję. Różnica oznacza konieczność redeploy.
Nazwy muszą być uppercase environment identifiers, są ograniczone do 128
znaków i nie mogą używać zarezerwowanego prefiksu OPENFACTORY_. User values
mają limit 8 KiB, a aplikacja limit 100 keys.
Workflow MCP
Operacje list zawsze maskują wartości. Ujawniaj jedną wartość tylko wtedy, gdy to konieczne:
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"
)Ten sam wzorzec jest dostępny jako set_account_env, list_account_env i
reveal_account_env. Operacje set/delete na poziomie aplikacji zwracają
env_version i redeploy_hint; ustawienie wartości nie mutuje działającej VM.
Powierzchnia REST
| Method | Path | Purpose |
|---|---|---|
GET | /api/apps/{app_id}/env | Zamaskowana lista app keys i stan wersji |
PUT | /api/apps/{app_id}/env | Transakcyjne set/delete dla app keys |
POST | /api/apps/{app_id}/env/reveal | Audytowane plaintext reveal jednej app key |
GET | /api/account/env | Zamaskowana lista account keys |
PUT | /api/account/env | Transakcyjne set/delete dla account keys |
POST | /api/account/env/reveal | Audytowane plaintext reveal jednej account key |
PUT | /api/apps/{app_id}/env/managed | Skonfigurowany producer publikuje managed keys |
DELETE | /api/apps/{app_id}/env/managed/{name} | Producer usuwa owned managed key |
Powierzchnie użytkownika wymuszają rozwiązany kontekst właściciela. Managed
endpoints używają bearer credential <kid>.<secret> z pliku producer token
skonfigurowanego przez operatora; bez tego pliku producer API zwraca unavailable.
Zachowanie przy deploy
Podczas deploy backend odszyfrowuje wartości konta, nakłada wartości aplikacji,
dodaje runtime fields platformy i zapisuje /etc/openfactory/app.env w VM z mode
0600. Proces startuje z tym plikiem jako środowiskiem. Jeśli odszyfrowanie,
dostarczenie pliku lub uruchomienie się nie powiedzie, candidate nie jest promowany.
Granica bezpieczeństwa
- Przechowywane wartości używają szyfrowania Fernet. Operator musi dostarczyć i
chronić
OPENFACTORY_ENV_MASTER_KEY; utrata lub wymiana uniemożliwia odszyfrowanie istniejących wartości. - List responses są zamaskowane. Jawne reveals i mutacje dopisują JSONL audit event.
- Obecne storage i audit trail to lokalne pliki. Nie zapewniają hardware-backed keys, multi-party approval, tamper-evident logging, automatic rotation ani disaster-recovery guarantee.
- Logi aplikacji i deploy nie zapewniają jeszcze pełnej secret-redaction boundary. Proces, który wypisuje środowisko, credential-bearing URL lub secret w error, może ujawnić to w logach i test evidence.
Z tego powodu nie używaj tego preview store do production credentials, dopóki deployment nie ma niezależnych access controls, testów backup i restore, log-redaction validation, retention rules i udokumentowanej procedury key-rotation. Nigdy nie umieszczaj secrets w recipes, source code, commands, URLs, test descriptions ani assertion expectations.
Zobacz App deployment dla candidate promotion flow.