Configuración YAML (.yaml)

YAML Estándar

YAML Ain't Markup Language (YAML) es el formato de serialización de datos dominante para DevOps moderno, infraestructura en la nube (Kubernetes, Docker Compose) y automatización CI/CD, que enfatiza la legibilidad humana a través de una limpieza sangría de espacios en blanco.

Convertir de YAML a JSON

Convertidor gratuito de YAML a JSON en el navegador. Convierte archivos al instante en tu dispositivo.

Inspeccionar y metadatos

Los sistemas operativos y analizadores de archivos identifican los archivos de YAML inspeccionando la secuencia de bytes binarios inicial:

Selecciona o arrastra archivos aquí

Conversión 100% privada en el navegador; los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

Firma de cabecera a nivel de bytes (Bytes mágicos)

Los sistemas operativos y analizadores de archivos identifican los archivos de YAML inspeccionando la secuencia de bytes binarios inicial:

FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):

2D 2D 2D 0A

REPRESENTACIÓN ASCII: ---\n

Estandarización: YAML 1.2.2 Specification

Especificaciones técnicas

Arquitectura del contenedorFormato de serialización de datos amigable para humanos basado en sangría, superconjunto de JSON que admite anclajes y alias
CompresiónFlujo de texto sin comprimir
Orden de bytes (Endianness)Flujo de texto UTF-8 / Unicode
Espacios de colorN/D (Serialización de datos)
Canales y estructuraMapeos (diccionarios clave-valor), secuencias (listas), tipos escalares (cadenas, números, booleanos) y anclajes (&ref/*ref)
Dimensiones máximasTamaño de documento ilimitado (admite flujos de múltiples documentos separados por '---')
TransparenciaNinguna
Streaming y progresivoLos flujos de múltiples documentos permiten el procesamiento secuencial documento por documento

Matriz de comparación técnica: YAML frente a la competencia

Atributo técnicoYAML (Actual)JSONTOMLXML
Estilo de sintaxisJerarquía de espacios en blanco de sangríaCorchetes y comillas estrictosTablas y pares clave=valorEtiquetas de apertura/cierre detalladas
Soporte de comentariosNativo (comentarios #)No se permiten comentariosNativo (comentarios #)<!-- comentarios -->
Adopción de DevOpsEstándar universal (Kubernetes, CI/CD)Estándar universal de APIConfiguración de paquetes de Rust/PythonConfiguración heredada empresarial
Reutilización de datosAnclajes nativos (&) y alias (*)Ninguno (duplicación manual)Ninguno (duplicación manual)Entidades XML

Modos de corrupción comunes y guía de recuperación hexadecimal

Error del analizador: 'mapping values are not allowed here' o error de sangría.

Causa raíz: Mezcla de tabuladores con espacios o niveles de sangría desalineados.

Recuperación: Convierta tabuladores en espacios y valide la sintaxis usando el formateador YAML de File2File.

Análisis de seguridad y vectores de ataque al analizador

Los analizadores de YAML que admiten etiquetas de tipos personalizados (como 'yaml.load()' de PyYAML) históricamente permitían la ejecución remota de código mediante la creación de instancias de objetos arbitrarios.

Vectores de ataque conocidos

  • Ejecución de código arbitrario a través de etiquetas de deserialización de objetos no seguros (por ejemplo, '!!python/object/apply').
  • Bombas de expansión de entidades (equivalente a mil millones de risas usando anclajes y alias de YAML).
  • Vulnerabilidades de confusión de tipos debido al análisis implícito de booleanos y marcas de tiempo.

Mejores prácticas defensivas: Utilice siempre analizadores YAML seguros ('yaml.safe_load()' en Python) y aplique límites de profundidad de expansión de anclajes.

Orígenes históricos e hitos

2021Se publica la revisión de YAML 1.2.2, refinando la compatibilidad con JSON y las definiciones formales de gramática.
2009YAML 1.2 estandariza YAML como un superconjunto estricto de JSON, lo que significa que todo JSON válido es YAML válido.
2001Clark Evans, Ingy döt Net y Oren Ben-Kiki crean YAML como una alternativa amigable para humanos a XML.

Ventajas clave y pros

  • El estándar indiscutible para la infraestructura moderna en la nube: utilizado universalmente en manifiestos de Kubernetes, Docker Compose y GitHub Actions.
  • Sintaxis limpia y legible: elimina el desorden de llaves, corchetes y comillas mediante una sangría intuitiva.
  • Admite referencias y anclajes (&anchor / *anchor) para reutilizar bloques de configuración repetidos sin duplicación.

Limitaciones técnicas y contras

  • Sensible a los espacios en blanco: un tabulador accidental o un solo espacio adicional pueden corromper la jerarquía del documento o causar errores de análisis.
  • Notorios errores de coerción de tipos: las palabras sin comillas como 'no', 'on', 'yes' o los códigos de país ('NO' para Noruega) pueden convertirse silenciosamente en booleanos.
  • Velocidad de análisis significativamente más lenta en comparación con los formatos binarios o JSON estricto.

Curiosidades técnicas interesantes

  • YAML originalmente significaba 'Yet Another Markup Language', pero se renombró humorísticamente al acrónimo recursivo 'YAML Ain't Markup Language' para enfatizar la serialización de datos.
  • El 'Problema de Noruega' es un error de programación famoso donde el código de país 'NO' en un archivo YAML se analizaba como el booleano 'false'.
  • Cada archivo JSON válido en el mundo es también simultáneamente un archivo YAML 100% válido.

Preguntas técnicas frecuentes

¿Para qué se utiliza YAML?

YAML es el lenguaje de configuración principal para la computación en la nube, la implementación de clústeres de Kubernetes, los archivos de Docker Compose, los flujos de trabajo de GitHub Actions y la configuración de software.

¿Puedo usar tabuladores en archivos YAML?

No. La especificación oficial de YAML prohíbe estrictamente el uso de caracteres de tabulación para la sangría; siempre debe usar espacios (normalmente 2 espacios por nivel).

¿Cómo puedo convertir YAML a JSON?

Puede convertir archivos YAML en JSON limpio y validado con un solo clic utilizando File2File.app directamente en su navegador web con total privacidad.