Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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,runtimeeentitiesas 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
*.disabledherdados 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, *
- Tabelas/exibições:
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
- Execute
dab validate - Corrigir o primeiro estágio com falha
- Executar novamente até que o código de saída seja 0
- 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.