Freigeben über


validate-Befehl

Überprüfen Sie eine Konfigurationsdatei des Daten-API-Generators, ohne die Laufzeit zu starten. Führt eine Abfolge von Prüfungen (Schema, Struktur, Berechtigungen, Konnektivität, Metadaten) aus und gibt einen Beendigungscode für Erfolg (0) oder Fehler (ungleich Null) zurück. Nützlich in CI/CD-Pipelines.

Syntax

dab validate [options]

Schnellblick

Option Zusammenfassung
-c, --config Pfad zur Konfigurationsdatei. Standardeinstellung für umgebungsspezifische oder dab-config.json.

Hinweis

validate akzeptiert keine Kennzeichnungen außer --config.

Ausgangscodes

Code Bedeutung
0 Die Konfiguration hat alle Phasen übergeben.
ungleich null Mindestens eine Phase ist fehlgeschlagen. Details finden Sie in den Protokollen.

CI-Beispiel:

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

-c, --config

Pfad zur Konfigurationsdatei. Wenn sie weggelassen wird, sucht dab-config.<DAB_ENVIRONMENT>.json der Validator zuerst, und dann dab-config.json.

Example

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

Überprüfungsphasen

Die Überprüfung erfolgt in der Reihenfolge. Wenn eine Phase fehlschlägt, werden spätere Phasen übersprungen.

1. Schema

Überprüft, ob die JSON-Konfiguration dem Schema entspricht.

Regeln

  • $schema ist erreichbar oder strukturell gültig
  • data-source, runtimeund entities Abschnitte existieren und sind wohlgeformt
  • Unerwartete Eigenschaften nicht zugelassen (pro Schema)
  • Enumerationswerte (wie database-type) sind gültig.

Fehler und Korrekturen

Das Problem Example Reparatur
Falsch geschriebene Eigenschaft "conn-string" Verwenden Sie "connection-string".
Ungültige Enumeration "database-type": "mydb" Verwenden Sie unterstützte Werte.
Falsche Form entities als Array Verwenden Sie objektschlüsselt nach Entitätsnamen.

2. Konfigurationseigenschaften

Überprüft die Konsistenz über das Schema hinaus.

Regeln

  • Gültig database-type angegeben
  • Für cosmosdb_nosqldatenbank- und GraphQL-Schemapfad sind erforderlich. Je nach Entitäten kann auch ein Container erforderlich sein. REST-Einstellungen werden ignoriert.
  • Mindestens ein Endpunkt (REST, GraphQL, MCP) muss aktiviert sein.
  • REST/GraphQL-Pfade beginnen mit / und kollidieren nicht
  • Legacykennzeichnungen *.disabled geben Warnungen aus, schlagen jedoch nicht fehl.
  • Wenn Sie JWT verwenden, müssen sowohl Aussteller als auch Zielgruppe festgelegt werden.

Fehler und Korrekturen

Das Problem Example Reparatur
Alle Endpunkte deaktiviert REST=false, GraphQL=false, MCP=false Aktivieren Sie eins erneut.
Cosmos DB fehlendes Schema Nein graphql-schema Geben Sie den Schemapfad an.
Authentifizierungskonflikt Ausstellersatz, Fehlende Zielgruppe Geben Sie beides oder keines an.

3. Berechtigungen

Überprüft, ob die Berechtigungen jeder Entität gültig sind.

Regeln

  • Jeder Eintrag hat eine nicht leere Rolle.

  • Aktionen müssen gültig sein:

    • Tabellen/Ansichten: create, read, update, delete, *
    • Gespeicherte Procs: execute, *
  • Keine leeren Aktionslisten

  • Ein einzelner Aktionssatz muss entweder * ODER explizite Aktionen sein, nicht beide

Fehler und Korrekturen

Das Problem Example Reparatur
Nicht unterstützte Aktion "drop" Verwenden Sie readusw.
SP mit CRUD Gespeicherte Proc-Anwendungen update Verwenden Sie execute oder *.
Leere Liste "actions": [] Stellen Sie Aktionen bereit.

4. Datenbankverbindung

Überprüft, ob die Datenbankverbindung funktioniert.

Regeln

  • Verbindungszeichenfolge kann analysiert werden
  • Gültige Anmeldeinformationen
  • Datenbank/Container ist vorhanden

Fehler und Korrekturen

Das Problem Example Reparatur
Zeitlimit Server nicht erreichbar Überprüfen Sie das Netzwerk/die Firewall.
Ungültige Anmeldung Fehler bei der Authentifizierung Korrigieren Sie den Benutzernamen/das Kennwort.
Fehlende DB DB nicht gefunden Db- oder Updatekonfiguration erstellen.

5. Entitätsmetadaten

Überprüft Entitätsdefinitionen anhand der Datenbank.

Regeln

  • Quellobjekt ist vorhanden
  • Tabellen/Ansichten: Gültige Schlüsselfelder, eingeschlossene/ausgeschlossene Felder sind vorhanden.
  • Ansichten benötigen immer source.key-fields
  • Gespeicherte Prozeduren: Params stimmen mit signatur überein
  • Beziehungen: Zielentität vorhanden, Verknüpfen von Feldern, die an Schlüsseln ausgerichtet sind; linking.object muss für n:n vorhanden sein
  • Richtlinien verweisen auf gültige Felder
  • Zwischenspeichern von TTL nicht negativ

Fehler und Korrekturen

Das Problem Example Reparatur
Fehlende Schlüsselfelder Ansicht ohne key-fields Fügen Sie source.key-fieldshinzu.
Ungültige Spalte fields.include Liste fehlender Spalte Entfernen oder Korrigieren des Namens.
Beziehungskonflikt Verknüpfen von Feldern != PK-Anzahl Fehler beim Verknüpfen von Feldern.

Ausgabebeispiele

Erfolg:

Data API builder <version>
Config is valid.

Versagen:

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

Hinweis

Validierungsfehler sind phasenspezifisch. Beheben Sie die erste fehlerhafte Phase vor dem erneuten Ausführen.

Environment-Specific Dateien

Wenn DAB_ENVIRONMENT diese Einstellung festgelegt ist, validate wird geladen dab-config.<DAB_ENVIRONMENT>.json.

Example

export DAB_ENVIRONMENT=Staging
dab validate

Hinweis

Der Validator überprüft nur eine einzelne aufgelöste Datei. Es werden keine Umgebungsvarianten zusammengeführt.

Anwendungsbeispiel

Grundlegend:

dab validate

Explizite Datei:

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

Multi-Environment:

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

CI fast fail:

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

Arbeitsablauf

  1. Führen Sie dab validate aus.
  2. Beheben der ersten fehlerhaften Phase
  3. Erneute Ausführung bis zum Beenden von Code 0
  4. Commit für überprüfte Konfiguration

Tipp

Überprüfen Sie häufig kleine Änderungen. Verwenden Sie Versionssteuerungs-Diffs, um Regressionen schnell anzuheften.