Conversor de YAML a ENV

Convierte bloques YAML en variables de entorno en formato KEY=VALUE.

{{ yamlToEnv.message }}

Descripción

Las variables de entorno son uno de los pilares del desarrollo de software moderno — The Twelve-Factor App (12factor.net), el manifiesto de buenas prácticas para aplicaciones cloud-native publicado por el equipo de Heroku, dedica una sección completa al principio de separar la configuración del código fuente. La idea es simple: todo lo que cambia entre entornos (dev, staging, producción) — cadenas de conexión a base de datos, claves de API, feature flags — debe inyectarse mediante variables de entorno, nunca hardcodeado. Esto permite un único artefacto de build que funciona en cualquier entorno con solo cambiar las variables. El archivo `.env` nació de esta práctica: un archivo de texto simple con pares KEY=VALUE que herramientas como `dotenv` (Node.js), `python-decouple` (Python) y `vlucas/phpdotenv` (PHP) cargan automáticamente.

YAML se ha convertido en el formato de configuración dominante en el mundo DevOps y cloud. Kubernetes almacena toda su configuración en YAML — Deployments, Services, ConfigMaps, Secrets. Docker Compose usa YAML. Helm Charts usan YAML. GitHub Actions usa YAML. El problema surge cuando necesitas ejecutar localmente algo que en producción está configurado mediante YAML en un ConfigMap de Kubernetes o en un archivo de configuración de servicio: tienes que extraer las variables de ese YAML y transformarlas en un `.env` que tu entorno de desarrollo entienda. Hacer esto manualmente — abrir el YAML, ir campo a campo, convertir `database.host: localhost` en `DATABASE_HOST=localhost` — es tedioso y propenso a errores.

Convertir YAML jerárquico al formato plano KEY=VALUE del `.env` requiere una regla de aplanamiento: la jerarquía `database.host` se convierte en `DATABASE_HOST` (mayúsculas, puntos reemplazados por guiones bajos). Las claves con arrays son más complicadas — los arrays en YAML no tienen un equivalente directo en variables de entorno, y la convención varía: algunos usan `SERVICE_HOSTS_0`, `SERVICE_HOSTS_1`; otros prefieren serializar el array como JSON en la variable. Esta herramienta adopta un enfoque conservador y práctico, generando claves planas para valores escalares, que cubre la gran mayoría de los casos de uso.

Una nota sobre seguridad y buenas prácticas: el archivo `.env` nunca debe commitearse en el repositorio. El `.gitignore` del proyecto debe incluir siempre `.env` y cualquier variante como `.env.local` y `.env.production`. Lo que sí puede (y debe) versionarse es un archivo `.env.example` con las claves pero sin los valores reales, que sirve como documentación de lo que el proyecto necesita para funcionar. Para entornos con muchos secretos, considera un gestor de secretos como AWS Secrets Manager, HashiCorp Vault o Doppler, que inyectan las variables en runtime sin que tengan que tocar el disco.

Detalle técnico

Ideas claras antes de usar la herramienta

  • ¿Para qué sirve esta herramienta?: Funciona por completo en tu navegador: sirve para validar, formatear o convertir datos en el día a día.
  • ¿Se envían mis datos a algún servidor?: El procesamiento es local con JavaScript. No almacenamos lo que pegas en los campos de texto.
  • ¿Puedo usarlo con datos reales en producción?: Úsalo bajo tu responsabilidad. Para secretos (contraseñas, tokens), prefiere entornos controlados y políticas internas. Recuerda de revisar los contenidos generados. Nunca confies ciegamente en cosas que ves en internet.

Fragmento corto para probar

  • Debajo aparece también el ejemplo largo en "Fragmentos de Código"; pega esta versión corta: Ejemplo — database: host: localhost port: 5432 => DATABASE_HOST=localhost DATABASE_PORT=5432

Guía de la herramienta

  • Qué es YAML Formato jerárquico de configuración usado en Docker, Kubernetes, CI/CD e infraestructura.

  • Qué es .env Formato simple KEY=VALUE para variables de entorno en aplicaciones.

  • Qué hace la herramienta Parsea YAML y aplana la estructura para generar variables ENV.

  • Por qué usarla Facilita el puente entre archivos declarativos y variables de entorno de runtime.

Fragmentos de Código

Ejemplo de código
database:
  host: localhost
  port: 5432
=> DATABASE_HOST=localhost
DATABASE_PORT=5432

Ejemplo

database:
  host: localhost
  port: 5432
=> DATABASE_HOST=localhost
DATABASE_PORT=5432

Preguntas frecuentes

¿Para qué sirve esta herramienta?

Funciona por completo en tu navegador: sirve para validar, formatear o convertir datos en el día a día.

¿Se envían mis datos a algún servidor?

El procesamiento es local con JavaScript. No almacenamos lo que pegas en los campos de texto.

¿Puedo usarlo con datos reales en producción?

Úsalo bajo tu responsabilidad. Para secretos (contraseñas, tokens), prefiere entornos controlados y políticas internas. Recuerda de revisar los contenidos generados. Nunca confies ciegamente en cosas que ves en internet.