Skip to Content
TestingOmgevingsvariabelen voor apps

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

MethodPathPurpose
GET/api/apps/{app_id}/envGemaskeerde app-keylijst en versiestatus
PUT/api/apps/{app_id}/envTransactionele set/delete voor app keys
POST/api/apps/{app_id}/env/revealGeauditte plaintext reveal van één app key
GET/api/account/envGemaskeerde account-keylijst
PUT/api/account/envTransactionele set/delete voor account keys
POST/api/account/env/revealGeauditte plaintext reveal van één account key
PUT/api/apps/{app_id}/env/managedGeconfigureerde 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_KEY leveren 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.