Udostępnij za pomocą


validate polecenie

Zweryfikuj plik konfiguracji konstruktora interfejsu API danych bez uruchamiania środowiska uruchomieniowego. Uruchamia sekwencję testów (schemat, struktura, uprawnienia, łączność, metadane) i zwraca kod zakończenia dla powodzenia (0) lub niepowodzenia (niezerowego). Przydatne w potokach ciągłej integracji/ciągłego wdrażania.

Składnia

dab validate [options]

Szybki rzut oka

Option Podsumowanie
-c, --config Ścieżka do pliku konfiguracji. Wartość domyślna to środowisko lub dab-config.json.

Uwaga / Notatka

validate nie akceptuje żadnych flag innych niż --config.

Kody zakończenia

Code Meaning
0 Konfiguracja przeszła wszystkie etapy.
bez zera Co najmniej jeden etap zakończył się niepowodzeniem. Aby uzyskać szczegółowe informacje, zobacz dzienniki.

Przykład ciągłej integracji:

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

-c, --config

Ścieżka do pliku konfiguracji. Jeśli pominięto, moduł sprawdzania poprawności najpierw szuka dab-config.<DAB_ENVIRONMENT>.json elementu , a następnie dab-config.json.

Example

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

Etapy walidacji

Walidacja odbywa się w kolejności. Jeśli jeden etap zakończy się niepowodzeniem, późniejsze etapy zostaną pominięte.

1. Schemat

Sprawdza, czy plik JSON konfiguracji jest zgodny ze schematem.

Reguły

  • $schema jest osiągalny lub strukturalnie prawidłowy
  • data-source, runtimei entities istnieją sekcje i są dobrze sformułowane
  • Niedozwolone nieoczekiwane właściwości (według schematu)
  • Wartości wyliczenia (na przykład database-type) są prawidłowe

Błędy i poprawki

Problem Example Napraw.
Błędna właściwość "conn-string" Użyj "connection-string".
Nieprawidłowe wyliczenie "database-type": "mydb" Użyj obsługiwanych wartości.
Nieprawidłowy kształt entities jako tablica Użyj obiektu kluczowanego według nazw jednostek.

2. Właściwości konfiguracji

Sprawdza spójność poza schematem.

Reguły

  • Podano prawidłową database-type wartość
  • W przypadku cosmosdb_nosqlparametrów wymagana jest ścieżka schematu programu GraphQL. Kontener może być również wymagany w zależności od jednostek. Ustawienia REST są ignorowane.
  • Musi być włączony co najmniej jeden punkt końcowy (REST, GraphQL, MCP)
  • Ścieżki REST/GraphQL zaczynają się od / i nie kolidują
  • Starsze *.disabled flagi emitują ostrzeżenia, ale nie kończą się niepowodzeniem
  • W przypadku korzystania z biblioteki JWT należy ustawić zarówno wystawcę, jak i odbiorców

Błędy i poprawki

Problem Example Napraw.
Wszystkie punkty końcowe wyłączone REST=false, GraphQL=false, MCP=false Włącz ponownie jeden.
Brak schematu usługi Cosmos DB Nie graphql-schema Podaj ścieżkę schematu.
Niezgodność uwierzytelniania Zestaw wystawców, brak odbiorców Podaj zarówno, jak i nie.

3. Uprawnienia

Sprawdza, czy uprawnienia każdej jednostki są prawidłowe.

Reguły

  • Każdy wpis ma niepustą rolę

  • Akcje muszą być prawidłowe:

    • Tabele/widoki: create, read, update, delete, *
    • Przechowywane procs: execute, *
  • Brak pustych list akcji

  • Pojedynczy zestaw akcji musi być akcjami * LUB jawnymi, a nie obydwoma

Błędy i poprawki

Problem Example Napraw.
Nieobsługiwana akcja "drop" Użyj polecenia read, itp.
SP z operacją CRUD Użycie przechowywanego proc update Użyj execute lub *.
Pusta lista "actions": [] Podaj akcje.

4. Połączenie z bazą danych

Sprawdza, czy połączenie z bazą danych działa.

Reguły

  • Parametry połączenia można przeanalizować
  • Prawidłowe poświadczenia
  • Baza danych/kontener istnieje

Błędy i poprawki

Problem Example Napraw.
Przerwa czasowa Serwer jest niedostępny Sprawdź sieć/zaporę.
Nieprawidłowe logowanie Uwierzytelnianie nie powiodło się Napraw nazwę użytkownika/hasło.
Brak bazy danych Nie znaleziono bazy danych Utwórz bazę danych lub zaktualizuj konfigurację.

5. Metadane jednostki

Sprawdza definicje jednostek w bazie danych.

Reguły

  • Obiekt źródłowy istnieje
  • Tabele/widoki: istnieją pola klucza prawidłowe, dołączone/wykluczone pola
  • Widoki zawsze potrzebują source.key-fields
  • Procedury składowane: parametry pasują do podpisu
  • Relacje: jednostka docelowa istnieje, łączenie pól jest zgodne z kluczami; link.object musi istnieć dla wielu-do-wielu
  • Zasady odwołują się do prawidłowych pól
  • Buforowanie czasu wygaśnięcia nieujemnego

Błędy i poprawki

Problem Example Napraw.
Brakujące pola kluczy Wyświetl bez key-fields Dodaj source.key-fields.
Zła kolumna fields.include lista brakujących kolumn Usuń lub napraw nazwę.
Niezgodność relacji Łączenie liczby pól != liczba PK Napraw pola łączenia.

Przykłady danych wyjściowych

Sukces:

Data API builder <version>
Config is valid.

Niepowodzenie:

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

Uwaga / Notatka

Błędy walidacji są specyficzne dla etapu. Napraw pierwszy etap niepowodzenia przed ponownym uruchomieniem.

pliki Environment-Specific

Jeśli DAB_ENVIRONMENT jest ustawiona, validate ładuje dab-config.<DAB_ENVIRONMENT>.jsonwartość .

Example

DAB_ENVIRONMENT=Staging dab validate

Uwaga / Notatka

Moduł sprawdzania poprawności sprawdza tylko jeden rozpoznany plik. Nie scala wariantów środowiska.

Przykładowe użycie

Podstawowy:

dab validate

Jawny plik:

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

Wiele środowisk:

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

Ciągła integracja — szybka awaria:

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

Workflow

  1. Uruchom dab validate
  2. Naprawianie pierwszego etapu niepowodzenia
  3. Uruchom ponownie, aż kod zakończenia ma wartość 0
  4. Zatwierdzanie zweryfikowanych konfiguracji

Wskazówka

Często weryfikuj małe zmiany. Użyj różnic kontroli wersji, aby szybko wskazać regresje.