Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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,runtimeeentitiesas 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-typefornecido - 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
*.disabledemitem 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, *
- Tabelas/vistas:
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
- Executar
dab validate - Corrigir o primeiro estágio com falha
- Execute novamente até que o código de saída seja 0
- 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.