Skip to Content
TestingMiljøvariabler for app

Miljøvariabler for app

OpenFactory kan gemme miljøværdier på app- og kontoniveau, kryptere dem at rest og render dem i en candidate app-VM under deploy. Det er et tidligt file-backed secret store, ikke en administreret vault.

Omfang og forrang

  • Kontoværdier er genanvendelige defaults for hver app, som kontoen ejer.
  • App-værdier tilsidesætter kontoværdier med samme navn.
  • Managed values skrives af et konfigureret producer token og registrerer producenten, der ejer nøglen.
  • En ændret værdi øger env_version; en vellykket deploy registrerer den anvendte version. En forskel betyder, at redeploy er påkrævet.

Navne skal være uppercase environment identifiers, er begrænset til 128 tegn og må ikke bruge det reserverede præfiks OPENFACTORY_. User values er begrænset til 8 KiB, og en app er begrænset til 100 keys.

MCP-workflow

List operations maskerer altid værdier. Afslør kun én værdi, når det er nødvendigt:

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

Samme mønster findes som set_account_env, list_account_env og reveal_account_env. Set/delete på app-niveau returnerer env_version og redeploy_hint; at sætte en værdi muterer ikke en kørende VM.

REST-flade

MethodPathPurpose
GET/api/apps/{app_id}/envMaskeret app-keyliste og versionsstatus
PUT/api/apps/{app_id}/envTransaktionel set/delete for app keys
POST/api/apps/{app_id}/env/revealRevisionspligtig plaintext reveal af én app key
GET/api/account/envMaskeret account-keyliste
PUT/api/account/envTransaktionel set/delete for account keys
POST/api/account/env/revealRevisionspligtig plaintext reveal af én account key
PUT/api/apps/{app_id}/env/managedKonfigureret producer publicerer managed keys
DELETE/api/apps/{app_id}/env/managed/{name}Producer fjerner en managed key, den ejer

Brugerflader håndhæver den løste ejerkontekst. Managed endpoints bruger <kid>.<secret> bearer credential fra operator-konfigureret producer-token-fil; uden den fil returnerer producer-API unavailable.

Deploy-adfærd

Under deploy dekrypterer backend kontoværdier, lægger app-værdier ovenpå, tilføjer platformens runtime fields og skriver /etc/openfactory/app.env i VM med mode 0600. Processen startes med den fil som miljø. Hvis dekryptering, fillevering eller opstart fejler, promoveres candidaten ikke.

Sikkerhedsgrænse

  • Lagrede værdier bruger Fernet-kryptering. Operatøren skal levere og beskytte OPENFACTORY_ENV_MASTER_KEY; tab eller udskiftning gør eksisterende værdier ukrypterbare.
  • List responses er maskerede. Eksplicitte reveals og mutationer tilføjer en JSONL audit event.
  • Nuværende storage og audit trail er lokale filer. De giver ikke hardware-backed keys, multi-party approval, tamper-evident logging, automatic rotation eller disaster-recovery guarantee.
  • Applikations- og deploylogs giver endnu ikke en fuld secret-redaction boundary. En proces, der udskriver sit miljø, en credential-bearing URL eller et secret i en error, kan afsløre det i logs og test evidence.

Brug derfor ikke denne preview store til production credentials, før jeres deployment har uafhængige access controls, backup- og restoretests, log-redaction validation, retention rules og en dokumenteret key-rotation procedure. Placer aldrig secrets i recipes, source code, commands, URLs, test descriptions eller assertion expectations.

Se App deployment for candidate promotion flow.