Variabile de mediu ale aplicației
OpenFactory poate stoca valori de mediu la nivel de aplicație și cont, le criptează în repaus și le scrie într-o VM app candidat în timpul deployului. Este un magazin timpuriu de secrete bazat pe fișiere, nu un vault gestionat.
Domeniu și precedență
- Valorile contului sunt valori implicite reutilizabile pentru fiecare aplicație a acelui cont.
- Valorile aplicației înlocuiesc valorile contului cu același nume.
- Valorile gestionate sunt scrise de un producer token configurat și înregistrează producătorul care deține cheia.
- O valoare modificată incrementează
env_version; un deploy reușit înregistrează versiunea aplicată. O diferență înseamnă că este necesar un redeploy.
Numele trebuie să fie identificatori de mediu cu majuscule, sunt limitate la 128
de caractere și nu pot folosi prefixul rezervat OPENFACTORY_. Valorile utilizatorului sunt
limitate la 8 KiB, iar o aplicație la 100 de chei.
Flux MCP
Operațiile de listare maschează întotdeauna valorile. Dezvăluiți o singură valoare doar când este necesar:
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"
)Același model este disponibil ca set_account_env, list_account_env și
reveal_account_env. Operațiile set/delete la nivel de aplicație returnează env_version
și redeploy_hint; setarea unei valori nu modifică o VM în execuție.
Suprafață REST
| Method | Path | Purpose |
|---|---|---|
GET | /api/apps/{app_id}/env | Listă mascată de chei app și stare versiune |
PUT | /api/apps/{app_id}/env | Set/delete tranzacțional pentru chei app |
POST | /api/apps/{app_id}/env/reveal | Reveal plaintext auditat pentru o cheie app |
GET | /api/account/env | Listă mascată de chei cont |
PUT | /api/account/env | Set/delete tranzacțional pentru chei cont |
POST | /api/account/env/reveal | Reveal plaintext auditat pentru o cheie cont |
PUT | /api/apps/{app_id}/env/managed | Producătorul configurat publică chei gestionate |
DELETE | /api/apps/{app_id}/env/managed/{name} | Producătorul elimină o cheie gestionată pe care o deține |
Suprafețele pentru utilizator impun contextul de proprietar rezolvat. Endpointurile gestionate folosesc
un bearer credential de forma <kid>.<secret> din fișierul producer token configurat de operator;
fără acel fișier, producer API returnează unavailable.
Comportament la deploy
În timpul deployului, backendul decriptează valorile contului, suprapune valorile aplicației, adaugă
câmpurile runtime ale platformei și scrie /etc/openfactory/app.env în VM cu modul 0600.
Procesul pornește cu acel fișier ca mediu. Dacă decriptarea, livrarea fișierului sau pornirea
eșuează, candidatul nu este promovat.
Limită de securitate
- Valorile stocate folosesc criptare Fernet. Operatorul trebuie să furnizeze și să protejeze
OPENFACTORY_ENV_MASTER_KEY; pierderea sau înlocuirea face valorile existente indescifrabil. - Răspunsurile de listare sunt mascate. Reveal-urile explicite și mutațiile adaugă un JSONL audit event.
- Stocarea curentă și audit trail sunt fișiere locale. Nu oferă hardware-backed keys, multi-party approval, tamper-evident logging, automatic rotation sau disaster-recovery guarantee.
- Jurnalele aplicației și ale deployului nu oferă încă o secret-redaction boundary completă. Un proces care își tipărește mediul, un credential-bearing URL sau un secret într-o eroare îl poate expune în jurnale și test evidence.
Din acest motiv, nu folosiți acest preview store pentru credențiale de producție până când deploymentul are access controls independente, teste de backup și restore, log-redaction validation, retention rules și o procedură documentată de key-rotation. Nu plasați niciodată secrets în recipes, source code, commands, URLs, test descriptions sau assertion expectations.
Consultați Implementarea aplicațiilor pentru fluxul de promovare a candidatului.