YAML-configuratie (.yaml)

YAML Standaard

YAML Ain't Markup Language (YAML) is het dominante gegevensserialisatieformaat voor moderne DevOps, cloudinfrastructuren (Kubernetes, Docker Compose) en CI/CD-automatisering. Het legt de nadruk op leesbaarheid voor mensen dankzij overzichtelijke inspringing met witruimte.

YAML naar JSON converteren

Gratis YAML-naar-JSON-converter in uw browser. Converteer bestanden direct op uw apparaat.

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen YAML-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen YAML-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

2D 2D 2D 0A

ASCII-WEERGAVE: ---\n

Standaardisatie: YAML 1.2.2-specificatie

Technische specificaties

ContainerarchitectuurOp inspringing gebaseerd, mensvriendelijk gegevensserialisatieformaat als superset van JSON dat ankers en aliassen ondersteunt
CompressieNiet-gecomprimeerde tekststroom
Bytevolgorde (endianness)UTF-8 / Unicode-tekststroom
KleurruimtenN.v.t. (gegevensserialisatie)
Kanalen en structuurMappings (sleutel-waardewoordenboeken), reeksen (lijsten), scalartypen (tekenreeksen, getallen, booleans) en ankers (&ref/*ref)
Maximale afmetingenOnbegrensde documentgrootte (ondersteunt stromen met meerdere documenten gescheiden door '---')
TransparantieGeen
Streaming en progressiefStromen met meerdere documenten maken sequentiële verwerking per document mogelijk

Technische vergelijkingsmatrix: YAML versus concurrenten

Technisch kenmerkYAML (Huidig)JSONTOMLXML
SyntaxisstijlHiërarchie op basis van inspringing en witruimteStrikte haken en aanhalingstekensTabellen en sleutel=waarde-parenUitgebreide openende en sluitende tags
Ondersteuning voor opmerkingenIngebouwd (#-opmerkingen)Geen opmerkingen toegestaanIngebouwd (#-opmerkingen)<!-- opmerkingen -->
DevOps-adoptieOndersteuning verschilt per programma.Ondersteuning verschilt per programma.Rust/Python-pakketconfiguratieVerouderde configuratie in bedrijfsomgevingen
GegevenshergebruikIngebouwde ankers (&) en aliassen (*)Geen (handmatige duplicatie)Geen (handmatige duplicatie)XML-entiteiten

Veelvoorkomende beschadigingen en gids voor hex-herstel

Parserfout: 'mapping values are not allowed here' of inspringfout.

Oorzaak: Het combineren van tabs en spaties of onjuist uitgelijnde inspringingsniveaus.

Herstel: Converteer tabs naar spaties en valideer de syntaxis met de YAML-formatter van File2File.app.

Beveiligingsanalyse en aanvalsvectoren voor parsers

YAML-parsers die aangepaste typetags ondersteunen (zoals 'yaml.load()' van PyYAML), stonden historisch gezien uitvoering van externe code toe via willekeurige objectinstantiatie.

Bekende aanvalsvectoren

  • Uitvoering van willekeurige code via onveilige objectdeserialisatietags (bijv. '!!python/object/apply').
  • Entiteitsexpansiebommen (het equivalent van de billion-laughs-aanval met YAML-ankers en -aliassen).
  • Kwetsbaarheden door typeverwarring als gevolg van impliciete verwerking van booleans en tijdstempels.

Aanbevolen beveiligingspraktijken: Gebruik altijd veilige YAML-parsers ('yaml.safe_load()' in Python) en handhaaf limieten voor de diepte van ankerexpansie.

Historische oorsprong en mijlpalen

2021YAML 1.2.2-revisie gepubliceerd, met verfijningen voor JSON-compatibiliteit en formele grammaticadefinities.
2009YAML 1.2 standaardiseert YAML als een strikte superset van JSON, wat betekent dat alle geldige JSON ook geldige YAML is.
2001Clark Evans, Ingy döt Net en Oren Ben-Kiki creëren YAML als een mensvriendelijk alternatief voor XML.

Belangrijkste voordelen

  • YAML komt veel voor in infrastructuurtools, maar de ondersteuning en het gedrag verschillen per implementatie.
  • Schone, leesbare syntaxis: elimineert de rommel van accolades, haken en aanhalingstekens door intuïtieve inspringing.
  • Ondersteunt verwijzingen en ankers (&anchor / *anchor) om herhaalde configuratieblokken te hergebruiken zonder duplicatie.

Technische beperkingen

  • Gevoelig voor witruimte: een per ongeluk ingevoerde tab of extra spatie kan de documenthiërarchie beschadigen of verwerkingsfouten veroorzaken.
  • Berucht om fouten door automatische typeconversie: woorden zonder aanhalingstekens zoals 'no', 'on', 'yes' of landcodes ('NO' voor Noorwegen) kunnen ongemerkt in booleans worden omgezet.
  • Aanzienlijk tragere verwerkingssnelheid vergeleken met binaire formaten of strikte JSON.

Interessante technische weetjes

  • YAML stond oorspronkelijk voor 'Yet Another Markup Language', maar werd voor de grap hernoemd naar het recursieve acroniem 'YAML Ain't Markup Language' om de nadruk te leggen op gegevensserialisatie.
  • Het 'Norway problem' (Noorwegenprobleem) is een beroemde programmeerbug waarbij de landcode 'NO' in een YAML-bestand werd geparseerd als de boolean 'false'.
  • Elk geldig JSON-bestand ter wereld is tegelijkertijd ook een 100% geldig YAML-bestand.

Veelgestelde technische vragen

Waar wordt YAML voor gebruikt?

YAML is de primaire configuratietaal voor cloudcomputing, Kubernetes-clusterimplementatie, Docker Compose-bestanden, GitHub Actions-workflows en software-instellingen.

Kan ik tabs gebruiken in YAML-bestanden?

Nee. De officiële YAML-specificatie verbiedt ten strengste het gebruik van tabtekens voor inspringing; u moet altijd spaties gebruiken (meestal 2 spaties per niveau).

Hoe kan ik YAML naar JSON converteren?

U kunt YAML-bestanden met één klik converteren naar schone, gevalideerde JSON met behulp van File2File.app, rechtstreeks in uw webbrowser met volledige privacy.