Skip to Content
TestingVariabili ambiente app

Variabili ambiente app

OpenFactory può memorizzare valori ambiente con scope app e account, cifrarli a riposo e renderizzarli in una VM app candidata durante deploy. È un early secret store file-backed, non un vault gestito.

Scope e precedenza

  • Valori account sono default riutilizzabili per ogni app posseduta da quell’account.
  • Valori app sovrascrivono valori account con lo stesso nome.
  • Valori managed sono scritti da token produttore configurato e registrano il produttore che possiede la chiave.
  • Un valore cambiato incrementa env_version; deploy riuscito registra versione applicata. Una differenza significa che serve redeploy.

I nomi devono essere identificatori ambiente maiuscoli, sono limitati a 128 caratteri e non possono usare prefisso riservato OPENFACTORY_. Valori utente sono limitati a 8 KiB e un’app a 100 chiavi.

Flusso MCP

Operazioni list mascherano sempre valori. Rivela un valore solo quando necessario:

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

Lo stesso pattern è disponibile come set_account_env, list_account_env e reveal_account_env. Operazioni set/delete a livello app restituiscono env_version e redeploy_hint; impostare un valore non muta una VM in esecuzione.

Superficie REST

MetodoPathScopo
GET/api/apps/{app_id}/envElenco chiavi app mascherate e stato versione
PUT/api/apps/{app_id}/envSet/delete transazionale chiavi app
POST/api/apps/{app_id}/env/revealReveal plaintext auditato di una chiave app
GET/api/account/envElenco chiavi account mascherate
PUT/api/account/envSet/delete transazionale chiavi account
POST/api/account/env/revealReveal plaintext auditato di una chiave account
PUT/api/apps/{app_id}/env/managedProduttore configurato pubblica chiavi managed
DELETE/api/apps/{app_id}/env/managed/{name}Produttore rimuove chiave managed che possiede

Superfici utente applicano contesto owner risolto. Endpoint managed usano credenziale bearer <kid>.<secret> dal file token produttore configurato operatore; senza quel file l’API produttore restituisce unavailable.

Comportamento deploy

Durante deploy, il backend decifra valori account, sovrappone valori app, aggiunge campi runtime platform e scrive /etc/openfactory/app.env nella VM con mode 0600. Il processo parte con quel file come ambiente. Se decifratura, consegna file o avvio falliscono, il candidato non è promosso.

Confine sicurezza

  • Valori memorizzati usano crittografia Fernet. L’operatore deve fornire e proteggere OPENFACTORY_ENV_MASTER_KEY; perderla o sostituirla rende valori esistenti indecifrabili.
  • Risposte list sono mascherate. Reveal espliciti e mutazioni appendono evento audit JSONL.
  • Storage e audit trail attuali sono file locali. Non forniscono chiavi hardware-backed, approvazione multi-party, logging tamper-evident, rotazione automatica o garanzia disaster-recovery.
  • Log applicazione e deploy non forniscono ancora confine redazione secret completo. Un processo che stampa ambiente, URL con credenziale o secret in errore può esporlo in log ed evidenza test.

Per questo motivo, non usare questo store preview per credenziali produzione finché il deploy non ha controlli accesso indipendenti, test backup e restore, validazione redazione log, regole retention e procedura rotazione chiavi documentata. Non mettere mai segreti in ricette, codice sorgente, comandi, URL, descrizioni test o aspettative asserzione.

Vedi App deployment per flusso promozione candidato.