Ir al contenido

Sistema de Entorno

Gestiona variables de entorno a través de backends de almacenamiento configurables.

El sistema de entorno separa el almacenamiento del acceso:

  • Almacenes - Donde se guardan los valores (SO, archivos, memoria)
  • Variables - Referencias nombradas a valores en almacenes

Las variables pueden referenciarse por:

  • Nombre público - El valor del campo variable (debe ser único en el sistema)
  • ID de Entrada - Referencia completa namespace:nombre

Si no desea que una variable sea accesible públicamente por nombre, omita el campo variable.

TipoDescripción
env.storage.memoryAlmacenamiento clave-valor en memoria
env.storage.fileAlmacenamiento basado en archivo (formato .env)
env.storage.osAcceso de solo lectura al entorno del SO
env.storage.staticAlmacenamiento estático de solo lectura clave-valor
env.storage.routerEncadena múltiples almacenes
env.variableVariable nombrada referenciando un almacén

Almacenamiento volátil en memoria.

- name: runtime_env
kind: env.storage.memory

Almacenamiento persistente usando formato de archivo .env (KEY=VALUE con comentarios #).

- name: app_config
kind: env.storage.file
file_path: /etc/app/config.env
auto_create: true
file_mode: 0600
dir_mode: 0700
PropiedadTipoPor DefectoDescripción
file_pathstringrequeridoRuta al archivo .env
auto_createbooleanfalseCrear archivo si no existe
file_modeinteger0644Permisos de archivo
dir_modeinteger0755Permisos de directorio

Acceso de solo lectura a variables de entorno del sistema operativo.

- name: os_env
kind: env.storage.os

Siempre de solo lectura. Las operaciones de escritura retornan PERMISSION_DENIED.

Almacenamiento de solo lectura con valores definidos directamente en la configuración. Los valores se integran en la entrada y no pueden cambiarse en tiempo de ejecución. Útil para constantes de configuración públicas que se distribuyen con un módulo o paquete.

- name: defaults
kind: env.storage.static
values:
PUBLIC_API_HOST: "https://api.example.com"
PUBLIC_WS_HOST: "wss://api.example.com/ws"
APP_ENV: "production"
PropiedadTipoDescripción
valuesmapPares clave-valor (string a string)

Siempre de solo lectura. Las operaciones de escritura retornan PERMISSION_DENIED.

Encadena múltiples almacenes. Las lecturas buscan en orden hasta encontrar. Las escrituras van solo al primer almacén.

- name: config
kind: env.storage.router
storages:
- app.config:memory # Primario (escribe aquí)
- app.config:file # Respaldo
- app.config:os # Respaldo
PropiedadTipoDescripción
storagesarrayLista ordenada de referencias de almacenes

Las variables proporcionan acceso nombrado a valores de almacenes.

- name: DATABASE_URL
kind: env.variable
variable: DATABASE_URL
storage: app.config:file
default: postgres://localhost/app
read_only: false
PropiedadTipoDescripción
variablestringNombre de variable pública (opcional, debe ser único)
storagestringReferencia de almacén (namespace:nombre)
defaultstringValor por defecto si no se encuentra
read_onlybooleanPrevenir modificaciones

Los nombres de variables deben contener solo: a-z, A-Z, 0-9, _

# Variable pública - accesible por nombre "PORT"
- name: port_var
kind: env.variable
variable: PORT
storage: app.config:os
default: "8080"
# Variable privada - accesible solo por ID "app.config:internal_key"
- name: internal_key
kind: env.variable
storage: app.config:secrets
CondiciónTipoReintentable
Variable no encontradaerrors.NOT_FOUNDno
Almacén no encontradoerrors.NOT_FOUNDno
Variable es de solo lecturaerrors.PERMISSION_DENIEDno
Almacén es de solo lecturaerrors.PERMISSION_DENIEDno
Nombre de variable inválidoerrors.INVALIDno