Aracılığıyla paylaş


validate komut

Çalışma zamanını başlatmadan Bir Data API builder yapılandırma dosyasını doğrulayın. Bir dizi denetim (şema, yapı, izinler, bağlantı, meta veriler) çalıştırır ve başarı (0) veya başarısızlık (sıfır olmayan) için bir çıkış kodu döndürür. CI/CD işlem hatlarında kullanışlıdır.

Sözdizimi

dab validate [options]

Hızlı bakış

Seçenek Özet
-c, --config Yapılandırma dosyasının yolu. Varsayılan olarak ortama özgü veya dab-config.jsonşeklindedir.

Uyarı

validate dışında --confighiçbir bayrak kabul etmemektedir.

Çıkış Kodları

Kod Meaning
0 Yapılandırma tüm aşamaları geçti.
sıfır olmayan Bir veya daha fazla aşama başarısız oldu. Ayrıntılar için günlüklere bakın.

CI örneği:

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

-c, --config

Yapılandırma dosyasının yolu. Belirtilmezse, doğrulayıcı önce öğesini, sonra öğesini dab-config.jsonarardab-config.<DAB_ENVIRONMENT>.json.

Example

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

Doğrulama Aşamaları

Doğrulama sırayla gerçekleşir. Bir aşama başarısız olursa, sonraki aşamalar atlanır.

1. Şema

Yapılandırma JSON'unun şemayla eşleşerek eşleşmediğini denetler.

Kurallar

  • $schema ulaşılabilir veya yapısal olarak geçerli
  • data-source, runtimeve entities bölümleri vardır ve iyi biçimlendirilmişlerdir
  • İzin verilmeyen beklenmeyen özellikler (şema başına)
  • Sabit listesi değerleri (gibi database-type) geçerlidir

Hatalar ve Düzeltmeler

Sorun Example Düzelt
Yanlış yazılmış özellik "conn-string" "connection-string"kullanın.
Geçersiz sabit listesi "database-type": "mydb" Desteklenen değerleri kullanın.
Yanlış şekil entities dizi olarak Varlık adlarının anahtarladığı nesneyi kullanın.

2. Yapılandırma Özellikleri

Şemanın ötesinde tutarlılığı denetler.

Kurallar

  • Sağlanan geçerli database-type
  • için cosmosdb_nosqlveritabanı ve GraphQL şema yolu gereklidir. Varlıklara bağlı olarak bir kapsayıcı da gerekebilir. REST ayarları yoksayılır.
  • En az bir uç nokta (REST, GraphQL, MCP) etkinleştirilmelidir
  • REST/GraphQL yolları ile / başlar ve harmanlanmaz
  • Eski *.disabled bayraklar uyarıları yayar ancak başarısız olmaz
  • JWT kullanılıyorsa hem veren hem de hedef kitle ayarlanmalıdır

Hatalar ve Düzeltmeler

Sorun Example Düzelt
Tüm uç noktalar kapalı REST=false, GraphQL=false, MCP=false Birini yeniden etkinleştirin.
Cosmos DB şeması eksik Hayır graphql-schema Şema yolunu belirtin.
Kimlik doğrulaması uyuşmazlığı Veren kümesi, izleyici eksik Her ikisini de veya hiçbirini sağlayın.

3. İzinler

Her varlığın izinlerinin geçerli olup olmadığını denetler.

Kurallar

  • Her girişin boş olmayan bir rolü vardır

  • Eylemler geçerli olmalıdır:

    • Tablolar/görünümler: create, read, update, delete, *
    • Depolanan procs: execute, *
  • Boş eylem listesi yok

  • Tek bir eylem kümesi, her ikisi de * değil, YA DA açık eylemler olmalıdır

Hatalar ve Düzeltmeler

Sorun Example Düzelt
Desteklenmeyen eylem "drop" vb. kullanın read.
CRUD ile SP Depolanan proc kullanımları update execute veya * kullanın.
Boş liste "actions": [] Eylemleri sağlayın.

4. Veritabanı Bağlantısı

Veritabanı bağlantısının çalışıp çalışmadığını denetler.

Kurallar

  • Bağlantı dizesi ayrıştırılabilir
  • Kimlik bilgileri geçerli
  • Veritabanı/kapsayıcı var

Hatalar ve Düzeltmeler

Sorun Example Düzelt
Zaman Aşımı Sunucuya ulaşılamıyor Ağı/güvenlik duvarını denetleyin.
Hatalı oturum açma Kimlik doğrulaması başarısız oldu Kullanıcı adı/parola düzeltildi.
Eksik VERITABANı Veritabanı bulunamadı VERITABANı veya güncelleştirme yapılandırması oluşturun.

5. Varlık Meta Verileri

Varlık tanımlarını veritabanında denetler.

Kurallar

  • Kaynak nesne var
  • Tablolar/görünümler: geçerli, dahil edilen/hariç tutulan önemli alanlar var
  • Görünümler her zaman gereklidir source.key-fields
  • Saklı yordamlar: parametreler imzayla eşleşiyor
  • İlişkiler: hedef varlık var, bağlantı alanları anahtarlarla hizalanır; linking.object çoka çok için mevcut olmalıdır
  • İlkeler geçerli alanlara başvurur
  • TTL'yi negatif olmayan önbelleğe alma

Hatalar ve Düzeltmeler

Sorun Example Düzelt
Eksik anahtar alanları Görüntüleme olmadan key-fields ekleyin source.key-fields.
Hatalı sütun fields.include listelerde eksik sütun Adı kaldırın veya düzeltin.
İlişki uyuşmazlığı Alan sayısı bağlanıyor != PK sayısı Alanları bağlamayı düzeltin.

Çıkış Örnekleri

Başarı:

Data API builder <version>
Config is valid.

Başarısızlık:

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

Uyarı

Doğrulama hataları aşamaya özeldir. Yeniden çalıştırmadan önce ilk başarısız aşamayı düzeltin.

dosyaları Environment-Specific

ayarlanırsa DAB_ENVIRONMENT , validate yükler dab-config.<DAB_ENVIRONMENT>.json.

Example

DAB_ENVIRONMENT=Staging dab validate

Uyarı

Doğrulayıcı yalnızca tek bir çözümlenmiş dosyayı denetler. Ortam değişkenlerini birleştirmez.

Örnek Kullanım

Temel:

dab validate

Açık dosya:

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

Çok ortamlı:

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

CI hızlı başarısız:

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

Workflow

  1. dab validate komutunu çalıştırın
  2. İlk başarısız aşamayı düzeltme
  3. Çıkış kodu 0 olana kadar yeniden çalıştırma
  4. Doğrulanmış yapılandırmayı işleme

İpucu

Küçük değişiklikleri sık sık doğrulayın. Regresyonları hızla saptamak için sürüm denetimi farklarını kullanın.