# Валідатор YAML

Перевірте YAML на синтаксичні помилки, перш ніж вони порушать розгортання або конвеєр CI. Валідатор розбирає кожен документ у вхідних даних за допомогою парсера YAML 1.2, відхиляє повторювані ключі, табуляцію для відступів і надмірне розгортання псевдонімів та повідомляє про першу помилку, зазначаючи документ, рядок і стовпець. Якщо дані коректні, відображається кількість документів, тип верхнього рівня кожного з них і всі попередження. Для Kubernetes, Docker Compose та авторів конфігурацій.

## Поширені запитання

### Що перевіряє валідатор YAML?

Він розбирає повний синтаксис YAML: відступи, блокові й потокові колекції, рядкові значення в лапках і без лапок, якорі, псевдоніми, теги та директиви. Також він вважає помилкою повторювані ключі в зіставленні. Результат — або підтвердження з коротким зведенням, або перша помилка з її позицією та поясненням.

### Якої версії YAML він відповідає?

Валідатор використовує основну схему YAML 1.2 — поточну версію специфікації. У версії 1.2 слова на кшталт yes, no, on і off є звичайними рядками, а не логічними значеннями, тому вони ніколи не спричиняють помилку. Документи, створені для інструментів YAML 1.1, також приймаються, якщо їхній синтаксис правильний.

### Чому дубльовані ключі вважаються помилками?

Специфікація YAML вимагає, щоб ключі в зіставленні були унікальними. Багато парсерів мовчки залишають останнє значення, через що помилки конфігурації, наприклад повторне визначення параметра, залишаються непоміченими. Валідатор указує рядок і стовпець повторного ключа, щоб ви могли вирішити, яке значення залишити.

### Як рахуються номери рядків, стовпців і документів?

Нумерація рядків і стовпців починається з 1 від початку вставленого вами вводу. Документи рахуються в порядку появи й розділяються рядками з ---, тому перший документ має номер 1. Позиція вказує, де парсер виявив проблему; це місце може бути одразу після самої помилки.

### Чи можна перевірити кілька документів YAML одночасно?

Так. Розділіть документи за допомогою ---, як у маніфесті Kubernetes із кількома документами, і кожен документ буде розібрано. У результаті успішної перевірки відображаються кількість документів і тип верхнього рівня кожного з них.

### Що означає тип верхнього рівня?

Він показує, що містить корінь кожного документа: зіставлення ключів і значень, послідовність елементів, одне скалярне значення або нічого. Більшість файлів конфігурації — це зіставлення, тоді як списки ресурсів часто є послідовностями. Неправильний тип зазвичай означає, що тире чи відступ стоїть не на своєму місці.

### Що таке попередження?

Попередження вказують на проблеми, які не зупиняють розбір, наприклад на невідомий парсеру тег, який потім читається як звичайне значення. Кожне попередження супроводжується номером рядка та стовпця; відображається не більше ніж 20 попереджень. Документ із попередженнями все одно вважається дійсним.

### Чому табуляцію відхилено?

YAML забороняє символи табуляції у відступах, оскільки їхня ширина неоднозначна. Замініть табуляцію на початку вказаного рядка пробілами й дотримуйтеся однакових відступів у сусідніх рядках. Табуляція в значеннях і рядках у лапках дозволена.

### Чи захищений він від атак із бомбами псевдонімів?

Так. Псевдоніми можуть розгортатися не більше ніж 100 разів, тому документ, створений для розмноження псевдонімів до гігабайтів даних (це часто називають атакою «мільярд сміхів»), буде позначено як недійсний, перш ніж він вичерпає пам’ять. Звичайне використання якорів і псевдонімів для спільних параметрів залишається значно нижчим за це обмеження.

### Чи перевіряє він відповідність схемі, наприклад Kubernetes або OpenAPI?

Ні, він перевіряє лише синтаксис і структуру, а не відповідність ключів і значень певній схемі. Розмір вводу може становити до 5 MiB. Щоб перетворити дійсний YAML на JSON, TOML або інший формат, скористайтеся Конвертером форматів даних.

Ваша реклама тут?

[Напишіть нам електронною поштою](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набір плагінів для роботи з агентами для WordPress.](https://sleekwp.com/?ref=oneclickpro)
