Partilhar via


validate comando

Valide um arquivo de configuração do construtor de API de dados sem iniciar o tempo de execução. 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]

Visão rápida

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 bandeiras além de --config.

Códigos de saída

Código Meaning
0 A configuração passou em todos os estágios.
não-zero Uma ou mais etapas falharam. Consulte os logs para obter detalhes.

Exemplo de IC:

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

-c, --config

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

Example

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

Etapas de validação

A validação acontece 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 secções existem e estão bem formadas
  • Propriedades inesperadas não permitidas (por esquema)
  • Os valores de Enum (como database-type) são válidos

Falhas e correções

Problema Example Corrigir
Propriedade com erros ortográficos "conn-string" Utilize "connection-string".
Enum inválido "database-type": "mydb" Use valores suportados.
Forma errada entities como matriz Use o objeto codificado por nomes de entidade.

2. Propriedades de configuração

Verifica a consistência além do esquema.

Regras

  • Válido database-type fornecido
  • 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
  • Os sinalizadores herdados *.disabled emitem avisos, mas não falham
  • Se estiver usando JWT, tanto o emissor quanto o público devem ser definidos

Falhas e correções

Problema Example Corrigir
Todos os pontos finais desligados REST=false, GraphQL=false, MCP=false Reative 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.

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/vistas: create, read, update, delete, *
    • Procs armazenados: execute, *
  • Sem listas 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 proc armazenados update Utilizar execute ou *.
Lista vazia "actions": [] Fornecer ações.

4. Conexão com o banco de dados

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

Regras

  • Cadeia de conexão analisável
  • Credenciais válidas
  • O banco de dados/contêiner existe

Falhas e correções

Problema Example Corrigir
Timeout Servidor inacessível Verifique a rede/firewall.
Login ruim Auth falhou Corrija o nome de utilizador/palavra-passe.
DB em falta DB não encontrado Crie DB ou atualize a configuração.

5. Metadados da entidade

Verifica as definições de entidade em relação ao banco de dados.

Regras

  • O objeto de origem existe
  • Tabelas/vistas: campos chave válidos, campos incluídos/excluídos existem
  • As visualizações sempre precisam source.key-fields
  • Procedimentos armazenados: assinatura de correspondência de parâmetros
  • Relacionamentos: a entidade alvo existe, os campos de ligação alinham-se com as chaves; linking.object deve existir para muitos-para-muitos
  • Campos válidos de referência de políticas
  • Cache TTL não negativo

Falhas e correções

Problema Example Corrigir
Campos-chave em falta Ver sem key-fields Adicionar source.key-fields.
Coluna ruim fields.include lista a coluna em falta Remova ou corrija o nome.
Descompasso de relacionamento Contagem de campos de ligação != contagem PK Corrija campos de vinculação.

Exemplos de saída

Sucesso:

Data API builder <version>
Config is valid.

Falha:

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 carrega dab-config.<DAB_ENVIRONMENT>.json.

Example

export DAB_ENVIRONMENT=Staging
dab validate

Observação

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

Exemplo de Utilização

Básico:

dab validate

Arquivo explícito:

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

Multi-ambiente:

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. Executar dab validate
  2. Corrigir o primeiro estágio com falha
  3. Execute novamente até que o código de saída seja 0
  4. Configuração validada de confirmação

Sugestão

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