Miljövariabler för app
OpenFactory kan lagra miljövärden på app- och kontonivå, kryptera dem at rest och rendera dem i en candidate app-VM under deploy. Det här är en tidig file-backed secret store, inte en hanterad vault.
Omfattning och prioritet
- Kontovärden är återanvändbara defaults för varje app som ägs av kontot.
- App-värden åsidosätter kontovärden med samma namn.
- Managed values skrivs av en konfigurerad producer token och registrerar producenten som äger nyckeln.
- Ett ändrat värde ökar
env_version; en lyckad deploy registrerar den tillämpade versionen. En skillnad betyder att redeploy krävs.
Namn måste vara uppercase environment identifiers, är begränsade till 128 tecken
och får inte använda det reserverade prefixet OPENFACTORY_. User values är
begränsade till 8 KiB och en app till 100 keys.
MCP-arbetsflöde
List operations maskerar alltid värden. Avslöja ett värde bara när det behövs:
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"
)Samma mönster finns som set_account_env, list_account_env och
reveal_account_env. Set/delete på app-nivå returnerar env_version och
redeploy_hint; att sätta ett värde muterar inte en körande VM.
REST-yta
| Method | Path | Purpose |
|---|---|---|
GET | /api/apps/{app_id}/env | Maskerad app-keylista och versionsstatus |
PUT | /api/apps/{app_id}/env | Transaktionell set/delete för app keys |
POST | /api/apps/{app_id}/env/reveal | Granskad plaintext reveal av en app key |
GET | /api/account/env | Maskerad account-keylista |
PUT | /api/account/env | Transaktionell set/delete för account keys |
POST | /api/account/env/reveal | Granskad plaintext reveal av en account key |
PUT | /api/apps/{app_id}/env/managed | Konfigurerad producer publicerar managed keys |
DELETE | /api/apps/{app_id}/env/managed/{name} | Producer tar bort en managed key den äger |
Användarytor tillämpar den lösta ägarkontexten. Managed endpoints använder
<kid>.<secret> bearer credential från operator-konfigurerad producer-token-fil;
utan den filen returnerar producer-API unavailable.
Deploy-beteende
Under deploy dekrypterar backend kontovärden, lägger app-värden ovanpå, lägger till
plattformens runtime fields och skriver /etc/openfactory/app.env i VM med mode
0600. Processen startas med den filen som miljö. Om dekryptering, filleverans
eller startup misslyckas promoveras inte candidaten.
Säkerhetsgräns
- Lagrade värden använder Fernet-kryptering. Operatören måste tillhandahålla och
skydda
OPENFACTORY_ENV_MASTER_KEY; förlust eller byte gör befintliga värden okrypterbara. - List responses är maskerade. Explicita reveals och mutationer lägger till en JSONL audit event.
- Nuvarande storage och audit trail är lokala filer. De ger inte hardware-backed keys, multi-party approval, tamper-evident logging, automatic rotation eller disaster-recovery guarantee.
- Applikations- och deployloggar ger ännu inte en fullständig secret-redaction boundary. En process som skriver ut sin miljö, en credential-bearing URL eller ett secret i ett error kan exponera det i loggar och test evidence.
Använd därför inte den här preview store för production credentials förrän er deployment har oberoende access controls, backup- och restoretester, log-redaction validation, retention rules och en dokumenterad key-rotation procedure. Placera aldrig secrets i recipes, source code, commands, URLs, test descriptions eller assertion expectations.
Se App deployment för candidate promotion flow.