Compartilhar via


validate comando

Valide um arquivo de configuração do Construtor de API de Dados sem iniciar o runtime. Executa uma sequência de verificações (esquema, estrutura, permissões, conectividade, metadados) e retorna um código de saída para êxito (0) ou falha (diferente de zero). Útil em pipelines de CI/CD.

Sintaxe

dab validate [options]

Olhar rápido

Opção Resumo
-c, --config Caminho para o arquivo de configuração. O padrão é específico do ambiente ou dab-config.json.

Observação

validate não aceita nenhum sinalizador que não seja --config.

Códigos de saída

Code Meaning
0 A configuração passou em todos os estágios.
diferente de zero Uma ou mais fases falharam. Confira os logs para obter detalhes.

Exemplo de CI:

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

-c, --config

Caminho para o arquivo de configuração. Se omitido, o validador procurará dab-config.<DAB_ENVIRONMENT>.json primeiro, depois dab-config.json.

Example

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

Estágios de validação

A validação ocorre em ordem. Se um estágio falhar, os estágios posteriores serão ignorados.

1. Esquema

Verifica se o JSON de configuração corresponde ao esquema.

Regras

  • $schema é acessível ou estruturalmente válido
  • data-source, runtimee entities as seções existem e são bem formadas
  • Propriedades inesperadas não permitidas (por esquema)
  • Valores de enumeração (como database-type) são válidos

Falhas e correções

Problema Example Corrigir
Propriedade incorreta "conn-string" Use "connection-string".
Enumeração inválida "database-type": "mydb" Use valores com suporte.
Forma errada entities como matriz Use o objeto chaveado por nomes de entidade.

2. Propriedades de configuração

Verifica a consistência além do esquema.

Regras

  • Fornecido válido database-type
  • Para cosmosdb_nosql, o banco de dados e o caminho do esquema GraphQL são necessários. Um contêiner também pode ser necessário dependendo das entidades. As configurações REST são ignoradas.
  • Pelo menos um ponto de extremidade (REST, GraphQL, MCP) deve estar habilitado
  • Os caminhos REST/GraphQL começam / com e não colidem
  • Sinalizadores *.disabled herdados emitem avisos, mas não falham
  • Se estiver usando o JWT, o emissor e o público devem ser definidos

Falhas e correções

Problema Example Corrigir
Todos os pontos de extremidade desativados REST=false, GraphQL=false, MCP=false Habilite novamente um.
Esquema ausente do Cosmos DB Não graphql-schema Forneça o caminho do esquema.
Incompatibilidade de autenticação Conjunto de emissores, audiência ausente Forneça ambos ou nenhum dos dois.

3. Permissões

Verifica se as permissões de cada entidade são válidas.

Regras

  • Cada entrada tem uma função não vazia

  • As ações devem ser válidas:

    • Tabelas/exibições: create, read, update, delete, *
    • Procs armazenados: execute, *
  • Nenhuma lista de ações vazias

  • Um único conjunto de ações deve ser * ou ações explícitas, não ambas

Falhas e correções

Problema Example Corrigir
Ação sem suporte "drop" Use read, etc.
SP com CRUD Usos de proc armazenados update Use execute ou *.
Lista vazia "actions": [] Forneça ações.

4. Conexão de banco de dados

Verifica se a conexão de banco de dados funciona.

Regras

  • Parseable de cadeia de conexão
  • Credenciais válidas
  • Existe banco de dados/contêiner

Falhas e correções

Problema Example Corrigir
Intervalo Servidor inacessível Verifique a rede/firewall.
Logon incorreto Falha na autenticação Corrija o nome de usuário/senha.
BD ausente BD não encontrado Crie o BD ou atualize a configuração.

5. Metadados de entidade

Verifica as definições de entidade no banco de dados.

Regras

  • O objeto de origem existe
  • Tabelas/exibições: campos-chave válidos, campos incluídos/excluídos existem
  • Os modos de exibição sempre precisam source.key-fields
  • Procedimentos armazenados: params correspondem à assinatura
  • Relações: a entidade de destino existe, vinculando campos alinhados com chaves; linking.object deve existir para muitos para muitos
  • Políticas fazem referência a campos válidos
  • Cache TTL não negativo

Falhas e correções

Problema Example Corrigir
Campos de chave ausentes Exibir sem key-fields Adicione source.key-fields.
Coluna inválido fields.include lista a coluna ausente Remover ou corrigir o nome.
Incompatibilidade de relação Contagem de campos de vinculação != contagem de PK Correção de campos de vinculação.

Exemplos de saída

Êxito:

Data API builder <version>
Config is valid.

Fracasso:

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

Observação

Os erros de validação são específicos do estágio. Corrija o primeiro estágio com falha antes de executar novamente.

Arquivos Environment-Specific

Se DAB_ENVIRONMENT estiver definido, validate carregará dab-config.<DAB_ENVIRONMENT>.json.

Example

DAB_ENVIRONMENT=Staging dab validate

Observação

O validador verifica apenas um único arquivo resolvido. Ele não mescla variantes de ambiente.

Exemplo de Uso

Básico:

dab validate

Arquivo explícito:

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

Vários ambientes:

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

Falha rápida de CI:

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

Workflow

  1. Execute dab validate
  2. Corrigir o primeiro estágio com falha
  3. Executar novamente até que o código de saída seja 0
  4. Confirmar configuração validada

Dica

Valide pequenas alterações com frequência. Use as diferenças de controle de versão para identificar regressões rapidamente.