Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ü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
-
$schemaist erreichbar oder strukturell gültig -
data-source,runtimeundentitiesAbschnitte 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-typeangegeben - 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
*.disabledgeben 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, *
- Tabellen/Ansichten:
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
- Führen Sie
dab validateaus. - Beheben der ersten fehlerhaften Phase
- Erneute Ausführung bis zum Beenden von Code 0
- Commit für überprüfte Konfiguration
Tipp
Überprüfen Sie häufig kleine Änderungen. Verwenden Sie Versionssteuerungs-Diffs, um Regressionen schnell anzuheften.