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
| Method | Path | Purpose |
|---|---|---|
GET | /api/apps/{app_id}/env | Maskeret app-keyliste og versionsstatus |
PUT | /api/apps/{app_id}/env | Transaktionel set/delete for app keys |
POST | /api/apps/{app_id}/env/reveal | Revisionspligtig plaintext reveal af én app key |
GET | /api/account/env | Maskeret account-keyliste |
PUT | /api/account/env | Transaktionel set/delete for account keys |
POST | /api/account/env/reveal | Revisionspligtig plaintext reveal af én account key |
PUT | /api/apps/{app_id}/env/managed | Konfigureret 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.