Skip to Content
TestingVariabile de mediu ale aplicației

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

MethodPathPurpose
GET/api/apps/{app_id}/envListă mascată de chei app și stare versiune
PUT/api/apps/{app_id}/envSet/delete tranzacțional pentru chei app
POST/api/apps/{app_id}/env/revealReveal plaintext auditat pentru o cheie app
GET/api/account/envListă mascată de chei cont
PUT/api/account/envSet/delete tranzacțional pentru chei cont
POST/api/account/env/revealReveal plaintext auditat pentru o cheie cont
PUT/api/apps/{app_id}/env/managedProducă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.