Skip to Content
TestingVariables de entorno de app

Variables de entorno de app

OpenFactory puede almacenar valores de entorno con alcance de app y cuenta, cifrarlos en reposo y renderizarlos en una VM candidata de app durante el despliegue. Es un almacén de secretos temprano respaldado por archivos, no un vault gestionado.

Alcance y precedencia

  • Los valores de cuenta son valores por defecto reutilizables para cada app propiedad de esa cuenta.
  • Los valores de app anulan valores de cuenta con el mismo nombre.
  • Los valores gestionados los escribe un token producer configurado y registran el producer dueño de la clave.
  • Un valor cambiado incrementa env_version; un despliegue exitoso registra la versión aplicada. Una diferencia significa que hace falta redesplegar.

Los nombres deben ser identificadores de entorno en mayúsculas, están limitados a 128 caracteres y no pueden usar el prefijo reservado OPENFACTORY_. Los valores de usuario están limitados a 8 KiB y una app a 100 claves.

Flujo MCP

Las operaciones de listado enmascaran siempre los valores. Revela un valor solo cuando sea necesario:

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

El mismo patrón está disponible como set_account_env, list_account_env y reveal_account_env. Las operaciones set/delete a nivel app devuelven env_version y redeploy_hint; fijar un valor no muta una VM en ejecución.

Superficie REST

MethodPathPurpose
GET/api/apps/{app_id}/envMasked app-key list and version state
PUT/api/apps/{app_id}/envTransactional set/delete for app keys
POST/api/apps/{app_id}/env/revealAudited plaintext reveal of one app key
GET/api/account/envMasked account-key list
PUT/api/account/envTransactional set/delete for account keys
POST/api/account/env/revealAudited plaintext reveal of one account key
PUT/api/apps/{app_id}/env/managedConfigured producer publishes managed keys
DELETE/api/apps/{app_id}/env/managed/{name}Producer removes a managed key it owns

Las superficies de usuario aplican el contexto de propietario resuelto. Los endpoints gestionados usan una credencial bearer <kid>.<secret> del archivo de token producer configurado por el operador; sin ese archivo la API producer devuelve no disponible.

Comportamiento en despliegue

Durante el despliegue, el backend descifra valores de cuenta, superpone valores de app, añade los campos runtime de la plataforma y escribe /etc/openfactory/app.env en la VM con modo 0600. El proceso se inicia con ese archivo como entorno. Si falla descifrado, entrega de archivo o arranque, el candidato no se promueve.

Límite de seguridad

  • Los valores almacenados usan cifrado Fernet. El operador debe suministrar y proteger OPENFACTORY_ENV_MASTER_KEY; perderla o reemplazarla hace indescifrables los valores existentes.
  • Las respuestas de listado están enmascaradas. Las revelaciones y mutaciones explícitas añaden un evento de auditoría JSONL.
  • El almacenamiento y pista de auditoría actuales son archivos locales. No proporcionan claves respaldadas por hardware, aprobación multiparte, logging a prueba de manipulación, rotación automática ni garantía de recuperación ante desastres.
  • Los logs de aplicación y despliegue aún no proporcionan un límite completo de redacción de secretos. Un proceso que imprime su entorno, una URL con credencial o un secret en un error puede exponerlo en logs y evidencia de prueba.

Por eso, no uses este almacén preview para credenciales de producción hasta que tu despliegue tenga controles de acceso independientes, pruebas de copia y restauración, validación de redacción en logs, reglas de retención y un procedimiento documentado de rotación de claves. Nunca coloques secretos en recetas, código fuente, comandos, URL, descripciones de prueba o expectativas de aserción.

Consulta Despliegue de app para el flujo de promoción del candidato.