Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Команда
Проверьте файл конфигурации построителя данных, не запуская среду выполнения. Выполняет последовательность проверок (схема, структура, разрешения, подключение, метаданные) и возвращает код выхода для успешного выполнения (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; }
Рабочий процесс
- Запуск
dab validate - Исправление первого этапа сбоя
- Повторное выполнение до тех пор, пока код выхода не равен 0
- Фиксация проверенной конфигурации
Подсказка
Часто проверяйте небольшие изменения. Используйте диффы управления версиями, чтобы быстро закрепить регрессию.