Перейти к содержимому

Валидатор 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 или другой формат, воспользуйтесь конвертером форматов данных.

О проекте OneClick Pro

OneClick Pro — это бесплатная коллекция из более чем 150 веб-инструментов для повседневных задач: преобразования изображений и единиц измерения, форматирования и проверки кода, проверки доменов и SEO, а также работы с текстом, датами и числами. Все инструменты доступны без регистрации и подписки, а введенные вами данные используются только для расчета результата и никогда не сохраняются. Используйте коллекцию как быстрый набор инструментов для разовых задач или добавьте в закладки те, которыми пользуетесь каждый день.