Поделиться через


Команда validate

Проверьте файл конфигурации построителя данных, не запуская среду выполнения. Выполняет последовательность проверок (схема, структура, разрешения, подключение, метаданные) и возвращает код выхода для успешного выполнения (0) или сбоя (ненулевая). Полезно в конвейерах CI/CD.

Синтаксис

dab validate [options]

Краткий обзор

Вариант Сводка
-c, --config Путь к файлу конфигурации. По умолчанию используется для конкретной среды или dab-config.json.

Замечание

validate не принимает флаги, отличные от --config.

Коды выхода

Code Meaning
0 Конфигурация прошла все этапы.
ненулевое значение Сбой одного или нескольких этапов. Дополнительные сведения см. в журналах.

Пример CI:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

-c, --config

Путь к файлу конфигурации. Если опущен, проверяющий элемент сначала ищетdab-config.<DAB_ENVIRONMENT>.json.dab-config.json

Example

dab validate --config ./dab-config.prod.json

Этапы проверки

Проверка выполняется в порядке. Если один этап завершается сбоем, более поздние этапы пропускаются.

1. Схема

Проверяет, соответствует ли json конфигурации схеме.

Правила

  • $schema доступен или является допустимым структурным
  • data-source, runtimeи разделы существуют и entities хорошо сформированы
  • Запрещенные непредвиденные свойства (на схему)
  • Допустимые значения перечисления (например database-type),

Ошибки и исправления

Проблема Example Исправить
Свойство Misspelled "conn-string" Используйте "connection-string".
Недопустимая перечисление "database-type": "mydb" Используйте поддерживаемые значения.
Неправильная фигура entities как массив Используйте объект, ключом к которым являются имена сущностей.

2. Свойства конфигурации

Проверяет согласованность за пределами схемы.

Правила

  • Допустимый предоставленный database-type
  • Для cosmosdb_nosqlбазы данных и пути схемы GraphQL требуются. Контейнер также может потребоваться в зависимости от сущностей. Параметры REST игнорируются.
  • Необходимо включить по крайней мере одну конечную точку (REST, GraphQL, MCP)
  • Пути REST и GraphQL начинаются и / не сталкиваются
  • Устаревшие *.disabled флаги выдают предупреждения, но не завершаются ошибкой
  • При использовании JWT необходимо задать издателя и аудиторию.

Ошибки и исправления

Проблема Example Исправить
Все конечные точки отключены REST=false, GraphQL=false, MCP=false Повторно включите его.
Отсутствует схема Cosmos DB Нет graphql-schema Укажите путь схемы.
Несоответствие проверки подлинности Набор издателя, отсутствуют аудитории Укажите оба или ни то, ни другое.

3. Разрешения

Проверяет, допустимы ли разрешения каждой сущности.

Правила

  • Каждая запись имеет непустую роль

  • Действия должны быть допустимыми:

    • Таблицы и представления: create, read, update, delete, *
    • Сохраненные procs: execute, *
  • Нет пустых списков действий

  • Один набор действий должен быть либо * или явным, а не обоим.

Ошибки и исправления

Проблема Example Исправить
Неподдерживаемое действие "drop" Использование readи т. д.
SP с CRUD Использование хранимого proc update Используйте execute или *.
Пустой список "actions": [] Предоставьте действия.

4. Подключение к базе данных

Проверяет, работает ли подключение к базе данных.

Правила

  • Синтаксический анализ строки подключения
  • Допустимые учетные данные
  • База данных или контейнер существуют

Ошибки и исправления

Проблема Example Исправить
Таймаут Неустранимый сервер Проверьте сеть или брандмауэр.
Недопустимый вход Сбой проверки подлинности Исправление имени пользователя или пароля.
Отсутствует база данных База данных не найдена Создайте базу данных или конфигурацию обновления.

5. Метаданные сущности

Проверяет определения сущностей в базе данных.

Правила

  • Исходный объект существует
  • Таблицы и представления: допустимые ключевые поля, включенные и исключенные поля существуют
  • Представления всегда требуются source.key-fields
  • Хранимые процедуры: сигнатура params соответствует
  • Связи: целевая сущность существует, связывание полей с ключами; связывание.object должно существовать для "многие ко многим"
  • Ссылки на допустимые поля политик
  • Кэширование TTL, не отрицательное

Ошибки и исправления

Проблема Example Исправить
Отсутствующие ключевые поля Представление без key-fields Добавьте source.key-fields.
Недопустимый столбец fields.include список отсутствующих столбцов Удаление или исправление имени.
Несоответствие связей Связывание полей != число PK Исправление полей связывания.

Примеры выходных данных

Успех:

Data API builder <version>
Config is valid.

Неудача:

Data API builder <version>
Error: View 'sales_summary' missing required key-fields.
Config is invalid.

Замечание

Ошибки проверки зависят от этапа. Исправьте первый этап сбоя перед повторным запуском.

файлы Environment-Specific

Если DAB_ENVIRONMENT задано, validate загружается dab-config.<DAB_ENVIRONMENT>.json.

Example

DAB_ENVIRONMENT=Staging dab validate

Замечание

Проверяющий элемент проверяет только один разрешенный файл. Он не объединяет варианты среды.

Пример использования

Основной:

dab validate

Явный файл:

dab validate --config ./configs/dab-config.test.json

Многоэкционная среда:

for env in Development Staging Production; do
  echo "Validating $env..."
  DAB_ENVIRONMENT=$env dab validate || exit 1
done

Сбой CI:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

Рабочий процесс

  1. Запуск dab validate
  2. Исправление первого этапа сбоя
  3. Повторное выполнение до тех пор, пока код выхода не равен 0
  4. Фиксация проверенной конфигурации

Подсказка

Часто проверяйте небольшие изменения. Используйте диффы управления версиями, чтобы быстро закрепить регрессию.