YAML lint
Validador YAML
Descubra o que está errado no seu YAML — e onde.
Cole seu YAML aqui ou solte um arquivo na pagina
JSON aparece aqui enquanto voce digita
Grátis e ilimitado · Sem registo · Cada erro traz a linha e coluna exatas, uma explicação clara e uma correção sugerida.
O que é verificado
Sintaxe
Indentação, tabulações, parênteses e aspas por fechar, e mapas e sequências malformados.
Estrutura
Chaves duplicadas, que o YAML rejeita e que em JSON colapsariam em silêncio.
Referências
Aliases que apontam para anchors inexistentes, e anchors declarados sem nome.
Segurança
Expansão descontrolada de aliases — a forma «billion laughs» — antes de poder bloquear a página.
Portabilidade
Valores que mudam de significado entre YAML 1.1 e YAML 1.2, assinalados com o que cada versão produz.
Tags
Tags personalizadas como !Ref ou !GetAtt que não têm significado padrão fora da sua ferramenta.
YAML válido nem sempre é YAML correto
Um documento pode passar perfeitamente no parsing e ainda assim significar algo que não pretendia. O caso clássico é country: no, válido em ambas as versões de YAML mas que produz a string "no" numa e o booleano false na outra.
É por isso que este validador reporta duas coisas distintas. Erros significam que o documento não pode ser analisado de todo. Avisos significam que é analisado, mas um valor seria lido de forma diferente por outra ferramenta — vale a pena saber antes de um manifesto do Kubernetes chegar a um cluster.
Se quiser perceber o erro antes de o corrigir, o guia Erros comuns de YAML e como corrigir percorre os seis erros por trás de quase todos os parsings falhados — tabulações, dois pontos sem aspas, parênteses por fechar, chaves duplicadas, anchors em falta e indentação irregular — com um antes e depois de cada um.
Perguntas frequentes
O que este validador de YAML verifica?
Primeiro a sintaxe: indentação, tabulações, parênteses e aspas por fechar, mapeamentos e sequências mal formados. Depois a estrutura: chaves duplicadas, aliases que apontam para âncoras nunca declaradas e expansões de alias sem controle. Por fim a portabilidade: tags personalizadas como !Ref, que nada significam fora da sua ferramenta, e cada valor sem aspas que o YAML 1.1 e o YAML 1.2 leem de forma diferente. Cada problema vem com linha e coluna, uma explicação em linguagem clara, uma correção sugerida e uma marca no editor.
Por que o meu YAML é válido mas se comporta mal?
Porque válido não é o mesmo que correto. country: no é analisado sem erros nas duas versões do YAML, mas é a string "no" no YAML 1.2 e o booleano false no YAML 1.1; é assim que um país desaparece de uma lista sem nenhum erro. O mesmo vale para 022, 12:30 e 1e3. Este validador os reporta como avisos, não como erros: o documento é analisado, mas outra ferramenta leria um valor de outra forma. Coloque o valor entre aspas para eliminar a ambiguidade.
O que significa «mapping values are not allowed in this context»?
O parser encontrou dois-pontos seguidos de um espaço num lugar onde já estava lendo um valor. A causa habitual é um valor sem aspas que contém ele próprio dois-pontos, como title: Deploy: production, ou uma URL escrita sem aspas. Coloque o valor entre aspas. A outra causa é uma chave com indentação diferente das chaves ao redor, que o parser lê como parte do valor anterior.
O que significa «found character that cannot start any token»?
Quase sempre uma tabulação usada como indentação, o que o YAML proíbe. Editores que convertem tabulações em espaços escondem o problema até o arquivo ser editado em outro lugar. Substitua a tabulação por espaços e mantenha todas as chaves irmãs com a mesma largura; o validador aponta a linha exata. A mesma mensagem aparece para um caractere de controle perdido ou para um @ ou um acento grave no início de um valor.
O que significa «did not find expected key»?
O parser estava lendo um mapeamento e esperava que a linha seguinte fosse outra chave com a mesma indentação, mas encontrou outra coisa. Olhe a linha anterior à reportada: um valor com um espaço a mais de indentação que os irmãos, um hífen que abre uma lista onde se esperava uma chave, ou um valor que deveria estar entre aspas. O validador recupera a causa real em parênteses e aspas por fechar, que a maioria dos parsers reporta erradamente sob esta mensagem.
Valida contra um esquema, como Kubernetes ou OpenAPI?
Não. Ele verifica que o documento é YAML bem formado e que significa o mesmo para qualquer parser; não sabe quais chaves um Deployment ou um documento OpenAPI pode conter. Para Kubernetes, kubectl apply --dry-run=client -f arquivo.yaml verifica um manifesto contra o esquema do cluster. Para OpenAPI, GitHub Actions ou JSON Schema, passe o arquivo pelo validador de esquema desse formato depois de ele passar aqui.
O meu YAML é enviado para algum servidor ao validar?
Não. A validação roda no seu navegador; não existe nenhum endpoint para onde enviar o documento e a página continua funcionando depois de desconectar. Arquivos de configuração são exatamente o tipo de coisa que carrega nomes de host, caminhos internos e, de vez em quando, um segredo, e é por isso que a ferramenta foi construída assim.
Como valido YAML na linha de comando?
yamllint arquivo.yaml reporta erros de sintaxe e problemas de estilo e é a escolha habitual em CI. yq . arquivo.yaml imprime o documento ou falha com um erro de análise. Em Python, python -c "import sys, yaml; yaml.safe_load(sys.stdin)" < arquivo.yaml falha com YAML inválido, embora o PyYAML leia YAML 1.1 e por isso também trate no como false. Nenhum deles explica o erro como o validador acima: use-os para fazer um pipeline falhar, e esta página para descobrir por quê.