# Валидатор 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)
