Condividi tramite


validate comando

Convalidare un file di configurazione di Generatore API dati senza avviare il runtime. Esegue una sequenza di controlli (schema, struttura, autorizzazioni, connettività, metadati) e restituisce un codice di uscita per l'esito positivo (0) o l'errore (diverso da zero). Utile nelle pipeline CI/CD.

Sintassi

dab validate [options]

Sguardo rapido

Opzione Riassunto
-c, --config Percorso del file di configurazione. Il valore predefinito è specifico dell'ambiente o dab-config.json.

Annotazioni

validate non accetta flag diversi da --config.

Codici di uscita

Codice Meaning
0 La configurazione ha superato tutte le fasi.
diverso da zero Una o più fasi non sono riuscite. Per informazioni dettagliate, vedere i log.

Esempio di integrazione continua:

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

-c, --config

Percorso del file di configurazione. Se omesso, il validator cerca dab-config.<DAB_ENVIRONMENT>.json prima di tutto, quindi dab-config.json.

Example

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

Fasi di convalida

La convalida viene eseguita in ordine. Se una fase ha esito negativo, le fasi successive vengono ignorate.

1. Schema

Verifica che il codice JSON di configurazione corrisponda allo schema.

Regole

  • $schema è raggiungibile o strutturalmente valido
  • data-sourceLe sezioni , runtimee entities esistono e sono ben formate
  • Proprietà impreviste non consentite (per schema)
  • I valori di enumerazione (ad esempio database-type) sono validi

Errori e correzioni

Problema Example Correzione
Proprietà con errori di ortografia "conn-string" Usa "connection-string".
Enumerazione non valida "database-type": "mydb" Usare i valori supportati.
Forma errata entities come matrice Usare l'oggetto con chiave in base ai nomi delle entità.

2. Proprietà di configurazione

Verifica la coerenza oltre lo schema.

Regole

  • Specificato valido database-type
  • Per cosmosdb_nosql, sono necessari il percorso dello schema di database e GraphQL. Un contenitore può anche essere necessario a seconda delle entità. Le impostazioni REST vengono ignorate.
  • È necessario abilitare almeno un endpoint (REST, GraphQL, MCP)
  • I percorsi REST/GraphQL iniziano con / e non si scontrano
  • I flag legacy *.disabled generano avvisi ma non hanno esito negativo
  • Se si usa JWT, è necessario impostare sia l'autorità di certificazione che il gruppo di destinatari

Errori e correzioni

Problema Example Correzione
Tutti gli endpoint sono disattivati REST=false, GraphQL=false, MCP=false Riabilitarne una.
Schema mancante di Cosmos DB No graphql-schema Specificare il percorso dello schema.
Mancata corrispondenza dell'autenticazione Set di autorità di certificazione, gruppo di destinatari mancante Specificare entrambi o nessuno dei due.

3. Autorizzazioni

Verifica che le autorizzazioni di ogni entità siano valide.

Regole

  • Ogni voce ha un ruolo non vuoto

  • Le azioni devono essere valide:

    • Tabelle/viste: create, read, update, delete, *
    • Stored procedure: execute, *
  • Nessun elenco di azioni vuoto

  • Un singolo set di azioni deve essere o * azioni esplicite OR, non entrambe

Errori e correzioni

Problema Example Correzione
Azione non supportata "drop" Usare reade così via.
SP con CRUD Stored proc usa update Usare execute o *.
Elenco vuoto "actions": [] Fornire azioni.

4. Connessione al database

Verifica che la connessione al database funzioni.

Regole

  • Stringa di connessione analizzabile
  • Credenziali valide
  • Database/contenitore esistente

Errori e correzioni

Problema Example Correzione
Interruzione temporanea Server non raggiungibile Controllare la rete/il firewall.
Accesso non valido Autenticazione non riuscita Correggere nome utente/password.
Database mancante Database non trovato Creare un database o aggiornare la configurazione.

5. Metadati entità

Controlla le definizioni di entità sul database.

Regole

  • L'oggetto di origine esiste
  • Tabelle/viste: i campi chiave validi, inclusi/esclusi esistono
  • Le visualizzazioni necessitano sempre di source.key-fields
  • Stored procedure: params match signature
  • Relazioni: l'entità di destinazione esiste, collegando i campi allineati con le chiavi; linking.object deve esistere per molti-a-molti
  • Campi validi di riferimento ai criteri
  • Memorizzazione nella cache TTL non negativa

Errori e correzioni

Problema Example Correzione
Campi chiave mancanti Visualizzazione senza key-fields Aggiungere source.key-fields.
Colonna non valida fields.include elenca la colonna mancante Rimuovere o correggere il nome.
Mancata corrispondenza delle relazioni Collegamento del conteggio dei campi != Conteggio pk Correzione dei campi di collegamento.

Esempi di output

Successo:

Data API builder <version>
Config is valid.

Fallimento:

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

Annotazioni

Gli errori di convalida sono specifici della fase. Correggere la prima fase di errore prima di riesecuzione.

file Environment-Specific

Se DAB_ENVIRONMENT è impostato, validate carica dab-config.<DAB_ENVIRONMENT>.json.

Example

DAB_ENVIRONMENT=Staging dab validate

Annotazioni

Il validator controlla solo un singolo file risolto. Non unisce varianti di ambiente.

Esempio di utilizzo

Basico:

dab validate

File esplicito:

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

Ci fast-fail:CI fast-fail:CI fast-fail:

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

Flusso di lavoro

  1. Eseguire dab validate
  2. Correggere la prima fase di errore
  3. Riesegua fino a quando il codice di uscita non è 0
  4. Eseguire il commit della configurazione convalidata

Suggerimento

Convalidare spesso piccole modifiche. Usare le differenze del controllo della versione per individuare rapidamente le regressioni.