Validatore di YAML
Verificate YAML per individuare errori di sintassi prima che compromettano una distribuzione o una pipeline CI. Il validatore analizza ogni documento nell'input con un parser YAML 1.2, rifiuta chiavi duplicate, tabulazioni usate per il rientro ed espansioni incontrollate degli alias, e segnala il primo errore con documento, riga e colonna. Se l'input è valido, mostra il numero di documenti, il tipo di primo livello di ciascuno ed eventuali avvisi. Pensato per chi crea configurazioni Kubernetes, Docker Compose e altri file di configurazione.
Domande frequenti
Che cosa controlla il validatore YAML?
Analizza tutta la sintassi YAML: rientri, raccolte in blocco e in modalità flusso, valori scalari tra virgolette o semplici, ancore, alias, tag e direttive. Inoltre, considera un errore le chiavi duplicate in una mappatura. Il risultato è una conferma con un breve riepilogo oppure il primo errore con la relativa posizione e una spiegazione.
Quale versione di YAML segue?
Il validatore usa lo schema core YAML 1.2, la versione attuale della specifica. Con la versione 1.2, parole come yes, no, on e off sono stringhe ordinarie, non valori booleani, quindi non causano mai errori. I documenti scritti per gli strumenti YAML 1.1 sono comunque accettati, purché la sintassi sia valida.
Perché le chiavi duplicate vengono segnalate come errori?
La specifica YAML richiede che le chiavi di una mappa siano univoche. Molti parser conservano silenziosamente l’ultimo valore, nascondendo errori di configurazione come un’impostazione definita due volte. Il validatore segnala la riga e la colonna della chiave ripetuta, così potete decidere quale valore mantenere.
Come vengono conteggiati i numeri di riga, colonna e documento?
Le righe e le colonne partono da 1, dall’inizio del testo inserito. I documenti vengono conteggiati nell’ordine in cui compaiono e sono separati da righe ---, quindi il primo è il documento 1. La posizione indica il punto in cui il parser ha rilevato il problema, che può trovarsi subito dopo l’errore effettivo.
Posso convalidare più documenti YAML contemporaneamente?
Sì. Separate i documenti con --- come in un manifest Kubernetes con più documenti e verranno analizzati tutti. Un risultato valido mostra il numero di documenti e il tipo di primo livello di ciascuno.
Che cosa significa il tipo di primo livello?
Indica che cosa contiene ciascun documento alla radice: una mappa di chiavi e valori, una sequenza di elementi, un singolo valore scalare oppure niente. La maggior parte dei file di configurazione contiene mappe, mentre gli elenchi di risorse sono spesso sequenze. Un tipo errato di solito indica un trattino o un’indentazione fuori posto.
Che cosa sono gli avvisi?
Gli avvisi riguardano problemi che non interrompono l’analisi; per esempio, un tag sconosciuto al parser viene letto come valore semplice. Ogni avviso è elencato con la relativa riga e colonna, fino a un massimo di 20. Un documento con avvisi è comunque considerato valido.
Perché le tabulazioni vengono rifiutate?
YAML vieta i caratteri di tabulazione per l’indentazione, perché la loro larghezza è ambigua. Sostituite con spazi le tabulazioni all’inizio della riga segnalata e mantenete un’indentazione coerente con le righe circostanti. Le tabulazioni nei valori e nelle stringhe tra virgolette sono consentite.
È protetto dagli attacchi con alias bomb?
Sì. Gli alias possono espandersi al massimo 100 volte. Un documento creato per moltiplicarli fino a generare gigabyte di dati, in un attacco spesso chiamato «billion laughs», viene segnalato come non valido invece di esaurire la memoria. L’uso normale di ancore e alias per condividere impostazioni resta ben al di sotto di questo limite.
Convalida rispetto a uno schema come Kubernetes o OpenAPI?
No, controlla solo la sintassi e la struttura, non verifica se le chiavi e i valori corrispondono a uno schema specifico. L’input può avere una dimensione massima di 5 MiB. Per convertire dati YAML validi in JSON, TOML o in un altro formato, usate il Convertitore di formati dati.