Bagikan melalui


validate perintah

Validasi file konfigurasi penyusun Api Data tanpa memulai runtime. Menjalankan urutan pemeriksaan (skema, struktur, izin, konektivitas, metadata) dan mengembalikan kode keluar untuk keberhasilan (0) atau kegagalan (bukan nol). Berguna dalam alur CI/CD.

Syntax

dab validate [options]

Sekilas

Option Ringkasan
-c, --config Jalur ke file konfigurasi. Default ke spesifik lingkungan atau dab-config.json.

Nota

validate tidak menerima bendera selain --config.

Kode Keluar

Kode Meaning
0 Konfigurasi melewati semua tahapan.
bukan nol Satu atau beberapa tahap gagal. Lihat log untuk detailnya.

Contoh CI:

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

-c, --config

Jalur ke file konfigurasi. Jika dihilangkan, validator mencari dab-config.<DAB_ENVIRONMENT>.json terlebih dahulu, lalu dab-config.json.

Example

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

Tahap validasi

Validasi terjadi secara berurutan. Jika satu tahap gagal, tahap selanjutnya akan dilewati.

1. Skema

Memeriksa apakah konfigurasi JSON cocok dengan skema.

Aturan

  • $schema dapat dijangkau atau valid secara struktural
  • data-source, runtime, dan entities bagian ada dan terbentuk dengan baik
  • Properti tak terduga yang tidak diizinkan (per skema)
  • Nilai enum (seperti database-type) valid

Kegagalan & Perbaikan

Masalah Example Perbaiki
Properti salah eja "conn-string" Gunakan "connection-string".
Enum tidak valid "database-type": "mydb" Gunakan nilai yang didukung.
Bentuk salah entities sebagai array Gunakan objek yang ditandatangani oleh nama entitas.

2. Properti Konfigurasi

Memeriksa konsistensi di luar skema.

Aturan

  • Valid database-type disediakan
  • Untuk cosmosdb_nosqljalur skema , database dan GraphQL diperlukan. Kontainer mungkin juga diperlukan tergantung pada entitas. Pengaturan REST diabaikan.
  • Setidaknya satu titik akhir (REST, GraphQL, MCP) harus diaktifkan
  • Jalur REST/GraphQL dimulai dengan / dan jangan bertabrakan
  • Bendera warisan *.disabled memancarkan peringatan tetapi tidak gagal
  • Jika menggunakan JWT, penerbit dan audiens harus diatur

Kegagalan & Perbaikan

Masalah Example Perbaiki
Semua titik akhir nonaktif REST=false, GraphQL=false, MCP=false Aktifkan kembali satu.
Skema Cosmos DB hilang Tidak graphql-schema Sediakan jalur skema.
Ketidakcocokan autentikasi Set pengeluar sertifikat, audiens hilang Sediakan keduanya atau tidak.

3. Izin

Memeriksa apakah izin setiap entitas valid.

Aturan

  • Setiap entri memiliki peran yang tidak kosong

  • Tindakan harus valid:

    • Tabel/tampilan: create, read, update, delete, *
    • Proc tersimpan: execute, *
  • Tidak ada daftar tindakan kosong

  • Satu set tindakan harus berupa * tindakan eksplisit OR, bukan keduanya

Kegagalan & Perbaikan

Masalah Example Perbaiki
Tindakan yang tidak didukung "drop" Gunakan read, dll.
SP dengan CRUD Penggunaan proc tersimpan update Gunakan execute atau *.
Daftar kosong "actions": [] Berikan tindakan.

4. Koneksi Database

Memeriksa apakah koneksi database berfungsi.

Aturan

  • String koneksi dapat diurai
  • Kredensial valid
  • Database/kontainer ada

Kegagalan & Perbaikan

Masalah Example Perbaiki
Jeda Waktu Server tidak dapat dijangkau Periksa jaringan/firewall.
Login buruk Autentikasi gagal Perbaiki nama pengguna/kata sandi.
DB hilang DB tidak ditemukan Buat DB atau perbarui konfigurasi.

5. Metadata Entitas

Memeriksa definisi entitas terhadap database.

Aturan

  • Objek sumber ada
  • Tabel/tampilan: bidang kunci valid, bidang yang disertakan/dikecualikan ada
  • Tampilan selalu diperlukan source.key-fields
  • Prosedur tersimpan: param cocok dengan tanda tangan
  • Hubungan: entitas target ada, menautkan bidang yang selaras dengan kunci; linking.object harus ada untuk banyak-ke-banyak
  • Bidang referensi kebijakan yang valid
  • Penembolokan TTL non-negatif

Kegagalan & Perbaikan

Masalah Example Perbaiki
Bidang kunci hilang Lihat tanpa key-fields Tambahkan source.key-fields.
Kolom buruk fields.include mencantumkan kolom yang hilang Hapus atau perbaiki nama.
Ketidakcocokan hubungan Jumlah bidang penautan != Jumlah PK Perbaiki bidang penautan.

Contoh Output

Keberhasilan:

Data API builder <version>
Config is valid.

Kegagalan:

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

Nota

Kesalahan validasi khusus tahap. Perbaiki tahap pertama yang gagal sebelum menjalankan ulang.

File Environment-Specific

Jika DAB_ENVIRONMENT diatur, validate memuat dab-config.<DAB_ENVIRONMENT>.json.

Example

DAB_ENVIRONMENT=Staging dab validate

Nota

Validator hanya memeriksa satu file yang diselesaikan. Ini tidak menggabungkan varian lingkungan.

Contoh Penggunaan

Dasar:

dab validate

File eksplisit:

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

Multi-lingkungan:

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

CI fast-fail:

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

Alur kerja

  1. Jalankan dab validate
  2. Memperbaiki tahap pertama yang gagal
  3. Jalankan kembali hingga kode keluar adalah 0
  4. Menerapkan konfigurasi yang divalidasi

Petunjuk / Saran

Memvalidasi perubahan kecil sering. Gunakan perbedaan kontrol versi untuk menentukan regresi dengan cepat.