YAML-Laufzeitprüfung
Füge ein YAML-Dokument wie einen GitHub-Actions-Workflow, eine Docker-Compose-Datei, ein Kubernetes-Manifest oder generisches YAML ein. Das Werkzeug prüft strukturelle Merkmale und mehrdeutige Werte, die sich zwischen Verbrauchern unterscheiden können.
Die Verarbeitung erfolgt lokal in Ihrem Browser. Ihre Datei wird niemals hochgeladen.
Anleitung Tool
- Füge YAML ein oder lade eine .yaml/.yml-Datei; sie bleibt im Browser.
- Starte die Analyse.
- Prüfe betroffene Umgebungen und Gründe.
- Übernimm sichere Korrekturen wie Tabulatoren durch Leerzeichen oder mehrdeutige Skalare in Anführungszeichen.
Annahmen
- Die Prüfung von Skalaren vergleicht YAML 1.1 mit YAML-1.2-Core-Schema und übernimmt die Logik des YAML-Semantikprüfers.
- Strukturprüfungen basieren auf Mustern und Einrückung; dies ist kein vollständiger YAML-Parser.
- Betroffene Umgebungen spiegeln dokumentierte Einschränkungen wider, keine Prüfung jeder Version.
Quellen und Referenzdaten
Methodik
Zuerst werden nicht zitierte Skalare nach YAML 1.1 und YAML-1.2-Core-Schema verglichen. Danach werden Anker/Aliase, Merge-Keys, Tabulatoren, doppelte Schlüssel und Flow-Collections geprüft. Merge-Keys sind keine YAML-1.2-Core-Funktion; Tabulatoren sind in Einrückung verboten; das Verhalten doppelter Schlüssel ist nicht spezifiziert. Flow-Collections sind ein Hinweis niedriger Sicherheit, nicht zwingend ein Fehler.
Rechenbeispiel
GitHub-Actions-Wert `on`
Eingaben: flag: on
Ergebnis: YAML 1.1 interpretiert on als true, YAML 1.2 als Zeichenfolge. Mehrdeutiger Wert wird markiert.
Merge-Key in Compose-Konfiguration
Eingaben: <<: *defaults
Ergebnis: Merge-Keys sind eine YAML-1.1-Erweiterung und werden von Kubernetes-Verarbeitung und manchen strikten Parsern nicht unterstützt. Keine automatische Umschreibung.
Kubernetes-Manifesteinrückung mit Tabulator
Eingaben: name: demo
Ergebnis: Tabulatoren sind laut YAML-Spezifikation in Einrückungen unzulässig. Vorgeschlagen wird, führende Tabs durch zwei Leerzeichen zu ersetzen.
Praktische Hinweise
- Behandle Merge-Keys und Tabulator-Einrückung als zu prüfende Probleme, wenn Kubernetes oder strikte Parser beteiligt sind.
- Prüfe Anker/Aliase bei sicherheitssensiblen Parsern; einige begrenzen Expansion zum Schutz vor Ressourcenerschöpfung.
- Mehrdeutige skalare Werte wie on in Anführungszeichen setzen, wenn sie Zeichenfolgen sein sollen.
Häufige Fehler
- Annehmen, ein Merge-Key, der in Docker Compose funktioniert, sei auch in Kubernetes kompatibel.
- Beim Kopieren von Blöcken doppelte Schlüssel zurücklassen; viele Parser behalten stillschweigend nur den letzten.
Häufige Fragen
Warum überschneidet sich diese Prüfung mit dem YAML-Semantikprüfer?
Sie verwendet dessen Skalarlogik erneut und ergänzt Strukturprüfungen zu Ankern, Merge-Keys, Tabulatoren, doppelten Schlüsseln und Flow-Style.
Warum sind Merge-Keys ein Fehler, Anker aber nur ein Hinweis?
Merge-Keys liegen außerhalb des YAML-1.2-Standards und sind in Kubernetes inkompatibel. Anker gehören zum YAML-Kern, sind aber in manchen Tools aus Sicherheitsgründen eingeschränkt.
Warum werden Anker und doppelte Schlüssel nicht automatisch repariert?
Eine Korrektur erfordert die Kenntnis der beabsichtigten Struktur oder des gewünschten Werts. Das Werkzeug markiert sie, statt zu raten.
Zuletzt geprüft:
Begrenzte strukturelle Musterprüfungen plus wiederverwendeter Skalarvergleich, kein vollständiger Parser und keine Validierung des exakten Verhaltens eines einzelnen Tools. Flow-Inhalte werden nicht auf Skalarabweichungen geprüft; Duplikate werden anhand von Einrückungsebenen verfolgt.
Design- und Tool-Einstellungen sowie gespeicherte und zuletzt verwendete Listen werden nur in diesem Browser gespeichert.