Partager via


Commande validate

Validez un fichier de configuration du générateur d’API de données sans démarrer le runtime. Exécute une séquence de vérifications (schéma, structure, autorisations, connectivité, métadonnées) et retourne un code de sortie pour la réussite (0) ou l’échec (non zéro). Utile dans les pipelines CI/CD.

Syntaxe

dab validate [options]

Aperçu rapide

Choix Résumé
-c, --config Chemin d’accès au fichier de configuration. La valeur par défaut est spécifique à l’environnement ou dab-config.json.

Note

validate n’accepte aucun indicateur autre que --config.

Codes de sortie

Code Meaning
0 La configuration a passé toutes les étapes.
Différent de zéro Une ou plusieurs étapes ont échoué. Pour plus d’informations, consultez les journaux d’activité.

Exemple CI :

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

-c, --config

Chemin d’accès au fichier de configuration. S’il est omis, le validateur recherche d’abord dab-config.<DAB_ENVIRONMENT>.json , puis dab-config.json.

Example

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

Étapes de validation

La validation se produit dans l’ordre. En cas d’échec d’une étape, les étapes ultérieures sont ignorées.

1. Schéma

Vérifie que le json de configuration correspond au schéma.

Règles

  • $schema est accessible ou structurellement valide
  • data-source, runtimeet entities les sections existent et sont bien formées
  • Propriétés inattendues non autorisées (par schéma)
  • Les valeurs d’énumération (comme database-type) sont valides

Échecs &correctifs

Problème Example Réparer
Propriété mal orthographié "conn-string" Utiliser "connection-string".
Énumération non valide "database-type": "mydb" Utilisez les valeurs prises en charge.
Forme incorrecte entities en tant que tableau Utilisez l’objet clé par noms d’entité.

2. Propriétés de configuration

Vérifie la cohérence au-delà du schéma.

Règles

  • Valide database-type fourni
  • Pour cosmosdb_nosql, la base de données et le chemin de schéma GraphQL sont requis. Un conteneur peut également être requis en fonction des entités. Les paramètres REST sont ignorés.
  • Au moins un point de terminaison (REST, GraphQL, MCP) doit être activé
  • Les chemins REST/GraphQL commencent par / et ne sont pas en collision
  • Les indicateurs hérités *.disabled émettent des avertissements, mais ne échouent pas
  • Si vous utilisez JWT, l’émetteur et l’audience doivent être définis

Échecs &correctifs

Problème Example Réparer
Tous les points de terminaison désactivés REST=false, GraphQL=false, MCP=false Réactivez-en une.
Schéma manquant Cosmos DB Non graphql-schema Fournissez le chemin d’accès au schéma.
Incompatibilité d’authentification Jeu d’émetteurs, audience manquante Fournissez les deux ou ni l’un ni l’autre.

3. Autorisations

Vérifie que les autorisations de chaque entité sont valides.

Règles

  • Chaque entrée a un rôle non vide

  • Les actions doivent être valides :

    • Tables/vues : create, read, update, delete, *
    • Processus stockés : execute, *
  • Aucune liste d’actions vide

  • Un jeu d’actions unique doit être soit des * actions explicites OR, pas les deux

Échecs &correctifs

Problème Example Réparer
Action non prise en charge "drop" Utiliser read, etc.
SP avec CRUD Processus stocké utilise update Utilisez execute ou *.
Liste vide "actions": [] Fournissez des actions.

4. Connexion à la base de données

Vérifie que la connexion de base de données fonctionne.

Règles

  • Analyseur de chaîne de connexion
  • Informations d’identification valides
  • La base de données/le conteneur existe

Échecs &correctifs

Problème Example Réparer
Délai d'expiration Serveur inaccessible Vérifiez le réseau/pare-feu.
Connexion incorrecte Échec de l’authentification Corrigez le nom d’utilisateur/mot de passe.
Base de données manquante Base de données introuvable Créez une base de données ou mettez à jour la configuration.

5. Métadonnées d’entité

Vérifie les définitions d’entité sur la base de données.

Règles

  • L’objet source existe
  • Tables/vues : les champs clés valides, inclus/exclus existent
  • Les vues ont toujours besoin source.key-fields
  • Procédures stockées : les paramètres correspondent à la signature
  • Relations : l’entité cible existe, la liaison de champs s’aligne sur les clés ; linking.object doit exister pour plusieurs-à-plusieurs
  • Champs valides de référence des stratégies
  • Mise en cache de la durée de vie non négative

Échecs &correctifs

Problème Example Réparer
Champs clés manquants Afficher sans key-fields Ajoutez source.key-fields.
Colonne incorrecte fields.include répertorie les colonnes manquantes Supprimez ou corrigez le nom.
Incompatibilité de relation Nombre de champs de liaison != nombre PK Corrigez les champs de liaison.

Exemples de sortie

Succès:

Data API builder <version>
Config is valid.

Échec:

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

Note

Les erreurs de validation sont spécifiques à l’étape. Corrigez la première étape défaillante avant la réexécution.

fichiers Environment-Specific

Si DAB_ENVIRONMENT elle est définie, validate charge dab-config.<DAB_ENVIRONMENT>.json.

Example

export DAB_ENVIRONMENT=Staging
dab validate

Note

Le validateur vérifie uniquement un seul fichier résolu. Il ne fusionne pas les variantes d’environnement.

Exemple d’utilisation

Basique:

dab validate

Fichier explicite :

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

Multi-environnement :

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

Échec rapide de l’intégration continue :

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

Flux de travail

  1. Exécutez dab validate
  2. Correction de la première étape défaillante
  3. Réexécuter jusqu’à ce que le code de sortie soit 0
  4. Valider la configuration validée

Conseil / Astuce

Validez souvent les petites modifications. Utilisez des différences de contrôle de version pour identifier rapidement les régressions.