Omgevingsvariabelen voor apps
OpenFactory kan omgevingswaarden op app- en accountniveau opslaan, ze at rest versleutelen en tijdens deploy in een candidate app-VM renderen. Dit is een vroeg file-backed secret store, geen beheerde vault.
Scope en voorrang
- Accountwaarden zijn herbruikbare defaults voor elke app van dat account.
- App-waarden overschrijven accountwaarden met dezelfde naam.
- Managed values worden geschreven door een geconfigureerd producer token en registreren de producer die de sleutel bezit.
- Een gewijzigde waarde verhoogt
env_version; een geslaagde deploy registreert de toegepaste versie. Een verschil betekent dat een redeploy nodig is.
Namen moeten uppercase environment identifiers zijn, zijn beperkt tot 128
tekens en mogen het gereserveerde voorvoegsel OPENFACTORY_ niet gebruiken.
User values zijn beperkt tot 8 KiB en een app tot 100 keys.
MCP-workflow
List operations maskeren waarden altijd. Onthul één waarde alleen wanneer dat nodig is:
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"
)Hetzelfde patroon is beschikbaar als set_account_env, list_account_env en
reveal_account_env. Set/delete op app-niveau geven env_version en
redeploy_hint terug; een waarde instellen wijzigt geen draaiende VM.
REST-oppervlak
| Method | Path | Purpose |
|---|---|---|
GET | /api/apps/{app_id}/env | Gemaskeerde app-keylijst en versiestatus |
PUT | /api/apps/{app_id}/env | Transactionele set/delete voor app keys |
POST | /api/apps/{app_id}/env/reveal | Geauditte plaintext reveal van één app key |
GET | /api/account/env | Gemaskeerde account-keylijst |
PUT | /api/account/env | Transactionele set/delete voor account keys |
POST | /api/account/env/reveal | Geauditte plaintext reveal van één account key |
PUT | /api/apps/{app_id}/env/managed | Geconfigureerde producer publiceert managed keys |
DELETE | /api/apps/{app_id}/env/managed/{name} | Producer verwijdert een managed key die hij bezit |
Gebruikersoppervlakken handhaven de opgeloste eigenaarcontext. Managed endpoints
gebruiken een <kid>.<secret> bearer credential uit het door de operator
geconfigureerde producer-tokenbestand; zonder dat bestand geeft de producer-API
unavailable terug.
Deploy-gedrag
Tijdens deploy ontsleutelt de backend accountwaarden, legt app-waarden erover,
voegt runtime fields van het platform toe en schrijft /etc/openfactory/app.env
in de VM met mode 0600. Het proces start met dat bestand als omgeving. Als
decryptie, file delivery of startup mislukt, wordt de candidate niet gepromoveerd.
Beveiligingsgren
- Opgeslagen waarden gebruiken Fernet-versleuteling. De operator moet
OPENFACTORY_ENV_MASTER_KEYleveren en beschermen; verlies of vervanging maakt bestaande waarden onontsleutelbaar. - List responses zijn gemaskeerd. Expliciete reveals en mutaties voegen een JSONL audit event toe.
- Huidige opslag en audit trail zijn lokale bestanden. Ze bieden geen hardware-backed keys, multi-party approval, tamper-evident logging, automatic rotation of disaster-recovery guarantee.
- Application- en deploylogs bieden nog geen volledige secret-redaction boundary. Een proces dat zijn omgeving print, een credential-bearing URL of een secret in een error kan dat blootleggen in logs en test evidence.
Gebruik deze preview store daarom niet voor productiecredentials totdat uw deployment onafhankelijke access controls, backup- en restoretests, log-redaction validation, retention rules en een gedocumenteerde key-rotation procedure heeft. Plaats nooit secrets in recipes, source code, commands, URLs, test descriptions of assertion expectations.
Zie App deployment voor de candidate promotion flow.