Konsep konfigurasi otomatis

Konfigurasi otomatis memungkinkan Anda menentukan pola yang secara otomatis menemukan dan mengekspos objek database dalam konfigurasi Anda. Konfigurasi otomatis dapat secara dramatis menyusutkan file konfigurasi, terutama ketika objek dan izin dapat diprediksi. Selain itu, autoentities evaluasi ulang dan terapkan pola setiap kali DAB dimulai, sehingga tabel baru yang cocok dengan pola secara otomatis ditambahkan sebagai entitas tanpa perubahan konfigurasi manual.

Ketika autoentities ada dalam konfigurasi, bagian entities tidak lagi diperlukan. Skema memerlukan baik autoentities maupun entities (atau keduanya).

Petunjuk / Saran

dab auto-config Gunakan perintah untuk membuat autoentities definisi dari CLI, dan dab auto-config-simulate untuk mempratinjau objek yang cocok sebelum melakukan perubahan. Untuk referensi konfigurasi JSON, lihat Autoentities konfigurasi.

Definisi

Setiap autoentities definisi adalah blok konfigurasi bernama yang menggabungkan serangkaian pola dengan templat dan izin. Nama definisi peka huruf besar/kecil dan bertindak sebagai pengidentifikasi logis. Anda dapat memiliki beberapa definisi, masing-masing menargetkan set objek dan izin database yang berbeda.

{
  "autoentities": {
    "my-def-name": {
      "patterns": { 
        "include": [ "dbo.table1", "dbo.table2" ], 
        "exclude": [ ], 
        "name": "{schema}_{object}"
      },
      "template": { 
        "rest": { "enabled": true },
        "graphql": { "enabled": true },
        "mcp": { "dml-tools": true },
        "health": { "enabled": true },
        "cache": { "enabled": false }
       },
      "permissions": [ 
        { 
          "role": "anonymous", 
          "actions": [ "*" ] }
       ]
    }
  }
}

Nota

Autoentities saat ini hanya mendukung sumber data MSSQL .

Pola

Pola mengontrol objek database mana yang ditemukan dan bagaimana objek tersebut dinamai sebagai entitas. DAB mengevaluasi pola menggunakan sintaks T-SQL LIKE terhadap schema.object format setiap objek database.

Sertakan dan kecualikan

Array include menentukan objek mana yang akan dicocokkan. Gunakan % sebagai kartubebas. Misalnya, dbo.% cocok dengan semua objek dalam dbo skema. Defaultnya adalah %.% (semua objek dalam semua skema).

Karena include merupakan array string, Anda dapat menggabungkan beberapa pola untuk menargetkan skema, awalan, atau bahkan mencantumkan tabel tertentu berdasarkan nama. Saat mencantumkan tabel individual, selalu sertakan nama skema (misalnya, dbo.Products bukan hanya Products).

Sertakan contoh

Pola Matches Deskripsi
%.% Semua objek dalam semua skema Default. Cocok dengan semuanya.
dbo.% Semua objek dalam dbo skema Kartubebas skema tunggal.
dbo.Product% dbo.Products, dbo.ProductDetails, dll. Awalan nama objek dalam satu skema.
%.Product% dbo.Products, sales.ProductOrders, dll. Awalan penamaan objek di semua skema.
dbo.Products dbo.Products hanya Sama persis, tidak ada kartubebas.
dbo.% sales.% Semua objek dalam dbo dan sales Beberapa pola wildcard dikombinasikan.
dbo.Products dbo.Orders dbo.Customers Tiga tabel itu saja Daftar tabel eksplisit. Nama skema diperlukan.
dbo.% sales.Invoices Semua dbo objek plus sales.Invoices Campuran karakter pengganti dan tabel eksplisit.

Array exclude menghapus objek dari set yang cocok. Pola pengecualian dievaluasi setelah menyertakan pola. Pola pengecualian berguna untuk menjaga tabel internal atau tabel pengujian keluar dari API Anda. Seperti include, exclude adalah array string dan mendukung beberapa pola.

Mengecualikan contoh

Pola Tidak termasuk Deskripsi
dbo.internal% dbo.internalLogs, dbo.internalAudit, dll. Hapus objek dengan awalan nama.
%.%_staging dbo.Orders_staging, sales.Items_staging, dll. Hapus tabel penahapan di semua skema.
dbo.__migration% dbo.__migrationHistory Dll. Menghapus tabel pelacakan migrasi.
dbo.sysdiagrams dbo.sysdiagrams hanya Hapus satu objek tertentu.
%.vw_% dbo.vw_Summary, reports.vw_Daily, dll. Hapus tampilan dengan aturan penamaan.
dbo.Logs dbo.AuditTrail Dua tabel itu saja Kecualikan tabel tertentu berdasarkan nama.

Baris perintah

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --patterns.exclude "dbo.internal%"

Beberapa pola dipisahkan spasi pada CLI:

dab auto-config my-def \
  --patterns.include "dbo.Products" "dbo.Orders" "dbo.Customers" \
  --permissions "anonymous:read"
Konfigurasi yang dihasilkan
{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "exclude": [ "dbo.internal%" ]
      }
    }
  }
}

Dalam contoh ini, semua objek dalam dbo skema disertakan kecuali objek yang namanya dimulai dengan internal.

Penamaan entitas

Properti name adalah pola interpolasi yang mengontrol bagaimana objek database yang cocok dinamai sebagai entitas. Ini mendukung {schema} dan {object} placeholder. Anda juga dapat menyertakan string harfiah bersama placeholder. Defaultnya adalah {schema}_{object}, yang menggabungkan skema database dan nama objek dengan garis bawah.

Examples

Contoh berikut mengasumsikan objek dbo.Productsdatabase :

Pola Nama entitas yang dihasilkan Deskripsi
{schema}_{object} dbo_Products Default. Skema dan objek dipisahkan oleh garis bawah.
{object} Products Nama objek saja.
{schema}-{object} dbo-Products Skema dan objek dipisahkan oleh tanda hubung.
{schema}.{object} dbo.Products Skema dan objek dipisahkan oleh titik.
api_{object} api_Products Awalan harfiah dengan nama objek.
{object}_entity Products_entity Nama objek dengan akhiran harfiah.
tbl_{schema}_{object} tbl_dbo_Products Awalan literal dengan kedua placeholder.
{schema}_{object}_v1 dbo_Products_v1 Kedua placeholder dengan akhiran versi literal.
{object}Resource ProductsResource Nama objek dengan akhiran harfiah, tanpa pemisah.

Penggunaan {schema} dalam pola sangat berguna ketika Anda menyertakan beberapa skema dan perlu menghindari konflik penamaan.

Baris perintah

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --patterns.name "{schema}_{object}"
Konfigurasi yang dihasilkan
{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "name": "{schema}_{object}"
      }
    }
  }
}

Template

Templat menentukan konfigurasi default yang diterapkan ke setiap entitas yang cocok dengan definisi. Pengaturan templat mencakup protokol API mana yang diaktifkan dan bagaimana cara kerja sistem caching. Pengaturan apa pun yang Anda hilangkan menggunakan nilai defaultnya.

Protokol API

Anda dapat mengaktifkan atau menonaktifkan REST, GraphQL, dan Model Context Protocol (MCP) secara independen untuk entitas yang cocok.

Baris perintah

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.rest.enabled true \
  --template.graphql.enabled true \
  --template.mcp.dml-tools true
Konfigurasi yang dihasilkan
{
  "autoentities": {
    "my-def": {
      "template": {
        "rest": { "enabled": true },
        "graphql": { "enabled": true },
        "mcp": { "dml-tools": true }
      }
    }
  }
}
Harta benda Default Deskripsi
rest.enabled true Mengekspos titik akhir REST untuk entitas yang cocok.
graphql.enabled true Mengekspos operasi GraphQL untuk entitas yang cocok.
mcp.dml-tools true Mengekspos alat bahasa manipulasi data (DML) MCP untuk entitas yang cocok.

Pemeriksaan kesehatan

Pemeriksaan kesehatan diaktifkan secara default. Saat diaktifkan, DAB menyertakan entitas yang cocok dalam titik akhir pemeriksaan kesehatannya, memverifikasi konektivitas database untuk setiap entitas. Atur template.health.enabled ke false untuk mengecualikan entitas yang cocok dari pemeriksaan kesehatan.

Baris perintah

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.health.enabled true
Konfigurasi yang dihasilkan
{
  "autoentities": {
    "my-def": {
      "template": {
        "health": { "enabled": true }
      }
    }
  }
}

Penggunaan Cache

Penembolokan respons dapat diaktifkan untuk semua entitas yang cocok dengan jangka waktu aktif (TTL) dan tingkat cache yang dapat dikendalikan.

Baris perintah

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.cache.enabled true \
  --template.cache.ttl-seconds 30 \
  --template.cache.level L1L2
Konfigurasi yang dihasilkan
{
  "autoentities": {
    "my-def": {
      "template": {
        "cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
      }
    }
  }
}
Harta benda Default Deskripsi
cache.enabled false Aktifkan pencaching respons untuk entitas yang cocok.
cache.ttl-seconds null Waktu kedaluwarsa cache dalam detik.
cache.level L1L2 Tingkat cache. Nilai yang didukung: L1, L1L2.

Permissions

Izin menentukan kontrol akses berbasis peran yang diterapkan ke setiap entitas yang cocok dengan definisi. Setiap entri izin menentukan peran dan tindakan yang diizinkan untuk peran tersebut.

Baris perintah

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --permissions "anonymous:read"
Konfigurasi yang dihasilkan
{
  "autoentities": {
    "my-def": {
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

Tindakan yang didukung meliputi create, , readupdate, delete, dan * (semua). Anda dapat menetapkan beberapa peran dengan kumpulan tindakan yang berbeda.

Contoh konfigurasi lengkap

Definisi lengkap autoentities menggabungkan pola, templat, dan izin.

Baris perintah

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --patterns.exclude "dbo.internal%" \
  --patterns.name "{schema}_{object}" \
  --template.rest.enabled true \
  --template.graphql.enabled true \
  --template.cache.enabled true \
  --template.cache.ttl-seconds 30 \
  --template.cache.level L1L2 \
  --permissions "anonymous:read"

Konfigurasi yang dihasilkan

{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "exclude": [ "dbo.internal%" ],
        "name": "{schema}_{object}"
      },
      "template": {
        "rest": { "enabled": true },
        "graphql": { "enabled": true },
        "cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

Definisi ini mencakup semua objek dalam dbo skema kecuali objek yang dimulai dengan internal, menamainya menggunakan schema_object format , mengaktifkan REST dan GraphQL, cache respons selama 30 detik, dan memberikan akses baca anonim.

Simulasi

Sebelum menerapkan autoentities pola ke konfigurasi, Anda dapat mensimulasikan hasil untuk mempratinjau objek database mana yang akan dicocokkan. Simulasi tersambung ke database, menyelesaikan setiap pola, dan melaporkan objek yang cocok tanpa menulis perubahan apa pun. Output simulasi menunjukkan kecocokan setiap definisi dengan nama entitas dan objek database yang sesuai.

Petunjuk / Saran

Gunakan dab auto-config-simulate untuk menjalankan simulasi dari CLI. Lihat referensi perintah untuk semua opsi.

Baris perintah (konsol)

dab auto-config-simulate \
  --config ./dab-config.json

Keluaran konsol yang dihasilkan

AutoEntities Simulation Results

Filter: my-def
Matches: 3
  dbo_Products  →  dbo.Products
  dbo_Inventory →  dbo.Inventory
  dbo_Pricing   →  dbo.Pricing

Anda juga dapat mengekspor hasil simulasi ke CSV untuk analisis lebih lanjut.

Baris perintah (file)

dab auto-config-simulate \
  --config ./dab-config.json \
  --output results.csv

Hasil output CSV

filter_name,entity_name,database_object
my-def,dbo_Products,dbo.Products
my-def,dbo_Inventory,dbo.Inventory
my-def,dbo_Pricing,dbo.Pricing