Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Valideer een Data API Builder-configuratiebestand zonder de runtime te starten. Voert een reeks controles (schema, structuur, machtigingen, connectiviteit, metagegevens) uit en retourneert een afsluitcode voor geslaagd (0) of mislukt (niet-nul). Handig in CI/CD-pijplijnen.
Syntaxis
dab validate [options]
Snelle blik
| Optie | Samenvatting |
|---|---|
-c, --config |
Pad naar het configuratiebestand. Standaard ingesteld op omgevingsspecifieke of dab-config.json. |
Opmerking
validate accepteert geen andere vlaggen dan --config.
Afsluitcodes
| Code | Meaning |
|---|---|
| 0 | De configuratie heeft alle fasen doorstaan. |
| niet-nul | Een of meer fasen zijn mislukt. Zie logboeken voor meer informatie. |
CI-voorbeeld:
dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }
-c, --config
Pad naar het configuratiebestand. Als u dit weglaat, zoekt validator eerst naardab-config.<DAB_ENVIRONMENT>.json.dab-config.json
Example
dab validate \
--config ./dab-config.prod.json
Validatiefasen
Validatie vindt plaats in volgorde. Als één fase mislukt, worden latere fasen overgeslagen.
1. Schema
Controleert of de configuratie-JSON overeenkomt met het schema.
Reglement
-
$schemais bereikbaar of structureel geldig -
data-source,runtimeen secties bestaan enentitieszijn goed gevormd - Onverwachte eigenschappen niet toegestaan (per schema)
- Opsommingswaarden (zoals
database-type) zijn geldig
Fouten en oplossingen
| Probleem | Example | Repareren |
|---|---|---|
| Verkeerd gespelde eigenschap | "conn-string" |
Gebruik "connection-string". |
| Ongeldige opsomming | "database-type": "mydb" |
Gebruik ondersteunde waarden. |
| Verkeerde vorm |
entities als matrix |
Gebruik objectsleutels op entiteitsnamen. |
2. Configuratie-eigenschappen
Controleert de consistentie buiten het schema.
Reglement
- Geldig
database-typeopgegeven - Voor het schemapad database
cosmosdb_nosqlen GraphQL zijn vereist. Er kan ook een container vereist zijn, afhankelijk van entiteiten. REST-instellingen worden genegeerd. - Ten minste één eindpunt (REST, GraphQL, MCP) moet zijn ingeschakeld
- REST/GraphQL-paden beginnen met
/en botsen niet - Verouderde
*.disabledvlaggen verzenden waarschuwingen, maar mislukken niet - Als u JWT gebruikt, moeten zowel verlener als doelgroep worden ingesteld
Fouten en oplossingen
| Probleem | Example | Repareren |
|---|---|---|
| Alle eindpunten uit | REST=false, GraphQL=false, MCP=false | Schakel er een opnieuw in. |
| Ontbrekend schema in Cosmos DB | Nee graphql-schema |
Geef het schemapad op. |
| Verificatie komt niet overeen | Verlenerset, doelgroep ontbreekt | Geef beide of geen van beide op. |
3. Machtigingen
Controleert of de machtigingen van elke entiteit geldig zijn.
Reglement
Elke vermelding heeft een niet-lege rol
Acties moeten geldig zijn:
- Tabellen/weergaven:
create, read, update, delete, * - Opgeslagen procs:
execute, *
- Tabellen/weergaven:
Geen lege actielijsten
Eén actieset moet EEN OF expliciete acties zijn
*, niet beide
Fouten en oplossingen
| Probleem | Example | Repareren |
|---|---|---|
| Niet-ondersteunde actie | "drop" |
Gebruik read, enzovoort. |
| SP met CRUD | Opgeslagen proc gebruikt update |
Gebruik execute of *. |
| Lege lijst | "actions": [] |
Acties opgeven. |
4. Databaseverbinding
Controleert of de databaseverbinding werkt.
Reglement
- Verbindingsreeks die kan worden geparseerd
- Geldige referenties
- Database/container bestaat
Fouten en oplossingen
| Probleem | Example | Repareren |
|---|---|---|
| Onderbreking | Server onbereikbaar | Controleer het netwerk/de firewall. |
| Ongeldige aanmelding | Verificatie is mislukt | Gebruikersnaam/wachtwoord herstellen. |
| Ontbrekende database | DB is niet gevonden | Db maken of configuratie bijwerken. |
5. Entiteitsmetagegevens
Controleert entiteitsdefinities op basis van de database.
Reglement
- Bronobject bestaat
- Tabellen/weergaven: sleutelvelden geldig, opgenomen/uitgesloten velden bestaan
- Weergaven die altijd nodig zijn
source.key-fields - Opgeslagen procedures: parameters komen overeen met handtekening
- Relaties: doelentiteit bestaat, velden koppelen die zijn uitgelijnd met sleutels; linking.object moet bestaan voor veel-op-veel
- Beleid verwijst naar geldige velden
- TTL niet-negatief opslaan in cache
Fouten en oplossingen
| Probleem | Example | Repareren |
|---|---|---|
| Ontbrekende sleutelvelden | Weergeven zonder key-fields |
Voeg source.key-fieldstoe. |
| Ongeldige kolom |
fields.include lijsten met ontbrekende kolom |
Naam verwijderen of herstellen. |
| Relatie komt niet overeen | Aantal velden koppelen != PK-telling | Koppelingsvelden herstellen. |
Uitvoervoorbeelden
Succes:
Data API builder <version>
Config is valid.
Mislukking:
Data API builder <version>
Error: View 'sales_summary' missing required key-fields.
Config is invalid.
Opmerking
Validatiefouten zijn fasespecifiek. Herstel de eerste mislukte fase voordat deze opnieuw wordt uitgevoerd.
Environment-Specific-bestanden
Als DAB_ENVIRONMENT dit is ingesteld, validate wordt geladen dab-config.<DAB_ENVIRONMENT>.json.
Example
export DAB_ENVIRONMENT=Staging
dab validate
Opmerking
De validatie controleert slechts één opgelost bestand. Er worden geen omgevingsvarianten samengevoegd.
Voorbeeldgebruik
Basisch:
dab validate
Expliciet bestand:
dab validate \
--config ./configs/dab-config.test.json
Meerdere omgevingen:
for env in Development Staging Production; do
echo "Validating $env..."
DAB_ENVIRONMENT=$env dab validate || exit 1
done
CI-snel mislukt:
dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }
Werkproces
- Voer
dab validateuit - De eerste mislukte fase herstellen
- Opnieuw uitvoeren totdat afsluitcode 0 is
- Gevalideerde configuratie doorvoeren
Aanbeveling
Valideer vaak kleine wijzigingen. Gebruik versiebeheerverschil om snel regressies aan te geven.