22 puntos por xguru 2025-07-21 | 2 comentarios | Compartir por WhatsApp
  • Herramienta de nueva generación para la gestión de variables de entorno que supera las limitaciones del enfoque tradicional .env/.env.example y resuelve de una sola vez colaboración, IA, seguridad y estabilidad de tipos
    • Con .env.schema, el esquema de variables de entorno se gestiona en un solo lugar, así que, a diferencia de .env.example, no hay que preocuparse por desajustes entre lo real y lo ejemplificado
  • Mediante anotaciones decoradoras @env-spec, se puede agregar de forma declarativa al archivo .env diversa información como esquema, tipo, validación, ejemplo, sensibilidad y gestión de secretos externos
    • @required, @type=string, @sensitive, @example, etc.
  • Validación potente: guía de inmediato sobre configuraciones incorrectas o valores faltantes con mensajes claros (bloqueo preventivo antes del runtime)
  • Generación automática de tipos basada en esquemas, para ofrecer seguridad de tipos al acceder a variables de entorno en el código y soporte de IntelliSense en el IDE
  • Seguridad: enmascaramiento automático de información sensible (logs/consola) y detección de filtraciones en clientes empaquetados o dentro de respuestas
  • Múltiples entornos y overrides: soporte para configuraciones complejas de entorno, como valores predeterminados, archivos por entorno, valores personales ignorados por git y combinación con process env
  • Integración con secretos externos: carga dinámica de secretos basada en comandos como 1Password y exec; próximamente habrá soporte para plugins, cifrado local y vault de equipo
  • Independiente del lenguaje y del runtime: además de JS/TS, permite inyectar env validados en cualquier lenguaje o proceso, por ejemplo con varlock run -- python my.py
  • Puede reemplazar completamente a dotenv: con solo cambiar el import de dotenv por varlock, se obtiene de inmediato validación, generación automática de tipos, mayor seguridad e integración de múltiples entornos y secretos

2 comentarios

 
onixboox 2025-07-23

¿Entonces esto significa que .env.schema debería estar incluido en .gitignore?

 
onixboox 2025-07-23

Ah... entonces la información se guarda en .env y .env.schema la carga, ¿no?