Skip to Content
TestingOkoljske spremenljivke aplikacije

Okoljske spremenljivke aplikacije

OpenFactory lahko shrani vrednosti okolja v obsegu aplikacije in računa, jih šifrira v mirovanju in jih ob uvajanju zapiše v kandidatno app VM. To je zgodnja shramba skrivnosti v datotekah, ne upravljani trezor.

Obseg in prednost

  • Vrednosti računa so ponovno uporabne privzete vrednosti za vsako aplikacijo tega računa.
  • Vrednosti aplikacije preglasijo vrednosti računa z enakim imenom.
  • Upravljane vrednosti zapiše konfiguriran producer token in zabeleži producenta, ki je lastnik ključa.
  • Spremenjena vrednost poveča env_version; uspešno uvajanje zabeleži uporabljeno različico. Razlika pomeni, da je potrebno ponovno uvajanje.

Imena morajo biti identifikatorji okolja z velikimi črkami, so omejena na 128 znakov in ne smejo uporabljati rezerviranega predpona OPENFACTORY_. Uporabniške vrednosti so omejene na 8 KiB in aplikacija na 100 ključev.

Potek MCP

Operacije seznama vedno maskirajo vrednosti. Razkrijte eno vrednost le, ko je to potrebno:

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" )

Enak vzorec je na voljo kot set_account_env, list_account_env in reveal_account_env. Operacije nastavitve/brisanja na ravni aplikacije vrnejo env_version in redeploy_hint; nastavitev vrednosti ne spremeni tekoče VM.

REST vmesnik

MethodPathPurpose
GET/api/apps/{app_id}/envMaskiran seznam ključev aplikacije in stanje različice
PUT/api/apps/{app_id}/envTransakcijsko nastavljanje/brisanje ključev aplikacije
POST/api/apps/{app_id}/env/revealRevidirano razkritje enega ključa aplikacije v plaintextu
GET/api/account/envMaskiran seznam ključev računa
PUT/api/account/envTransakcijsko nastavljanje/brisanje ključev računa
POST/api/account/env/revealRevidirano razkritje enega ključa računa v plaintextu
PUT/api/apps/{app_id}/env/managedKonfiguriran producent objavi upravljane ključe
DELETE/api/apps/{app_id}/env/managed/{name}Producent odstrani upravljani ključ, ki ga ima v lasti

Uporabniške površine uveljavljajo razrešen kontekst lastnika. Upravljane končne točke uporabljajo bearer credential oblike <kid>.<secret> iz datoteke producer tokena, ki jo konfigurira operater; brez te datoteke producer API vrne unavailable.

Obnašanje ob uvajanju

Med uvajanjem backend dešifrira vrednosti računa, prekrije vrednosti aplikacije, doda runtime polja platforme in zapiše /etc/openfactory/app.env v VM z načinom 0600. Proces se zažene s to datoteko kot okoljem. Če dešifriranje, dostava datoteke ali zagon spodletijo, kandidat ni promoviran.

Varnostna meja

  • Shranjene vrednosti uporabljajo šifriranje Fernet. Operater mora zagotoviti in varovati OPENFACTORY_ENV_MASTER_KEY; izguba ali zamenjava onemogoči dešifriranje obstoječih vrednosti.
  • Odgovori seznama so maskirani. Eksplicitna razkritja in mutacije dodajo JSONL audit event.
  • Trenutno shrambo in audit trail predstavljata lokalne datoteke. Ne zagotavljata hardware-backed keys, multi-party approval, tamper-evident logging, automatic rotation ali disaster-recovery guarantee.
  • Dnevniki aplikacije in uvajanja še ne zagotavljajo popolne secret-redaction boundary. Proces, ki izpiše okolje, credential-bearing URL ali skrivnost v error, jo lahko razkrije v dnevnikih in test evidence.

Zato te predogledne shrambe ne uporabljajte za produkcijske poverilnice, dokler vaše uvajanje nima neodvisnih access controls, testov varnostne kopije in obnovitve, log-redaction validation, retention rules in dokumentiranega postopka key-rotation. Nikoli ne postavljajte secrets v recipes, source code, commands, URLs, test descriptions ali assertion expectations.

Glej Uvajanje aplikacij za potek promocije kandidata.