Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 ,runtimeeentitiesesistono 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
*.disabledgenerano 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, *
- Tabelle/viste:
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
- Eseguire
dab validate - Correggere la prima fase di errore
- Riesegua fino a quando il codice di uscita non è 0
- Eseguire il commit della configurazione convalidata
Suggerimento
Convalidare spesso piccole modifiche. Usare le differenze del controllo della versione per individuare rapidamente le regressioni.