Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
-
$schemadapat dijangkau atau valid secara struktural -
data-source,runtime, danentitiesbagian 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-typedisediakan - 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
*.disabledmemancarkan 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, *
- Tabel/tampilan:
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
- Jalankan
dab validate - Memperbaiki tahap pertama yang gagal
- Jalankan kembali hingga kode keluar adalah 0
- Menerapkan konfigurasi yang divalidasi
Petunjuk / Saran
Memvalidasi perubahan kecil sering. Gunakan perbedaan kontrol versi untuk menentukan regresi dengan cepat.