Pengaturan konfigurasi untuk pembuatan entitas otomatis berdasarkan aturan pencocokan pola.
Autoentities adalah serekan ke entities bagian —ketika autoentities ada, entities tidak lagi diperlukan. Skema memungkinkan atau autoentitiesentities (atau keduanya). Jika keduanya ada, entitas yang ditentukan secara eksplisit lebih diutamakan daripada autoentities kecocokan dengan nama yang sama.
Petunjuk / Saran
Gunakan dab auto-config untuk membuat dan memperbarui autoentities definisi dari CLI, dan dab auto-config-simulate untuk mempratinjau objek mana yang cocok sebelum melakukan perubahan.
Pola
Template
Permissions
{
"autoentities": {
"<definition-name>": {
"patterns": {
"include": [ "<string>" ], // default: ["%.%"]
"exclude": [ "<string>" ], // default: null
"name": "<string>" // default: "{schema}_{object}"
},
"template": {
"rest": { "enabled": <boolean> }, // default: true
"graphql": { "enabled": <boolean> }, // default: true
"mcp": { "dml-tools": <boolean> }, // default: true
"health": { "enabled": <boolean> }, // default: true
"cache": {
"enabled": <boolean>, // default: false
"ttl-seconds": <integer>, // default: null
"level": "<string>" // default: "L1L2"
}
},
"permissions": [
{
"role": "<string>",
"actions": [ { "action": "<string>" } ]
}
]
}
}
}
Nama definisi (autoentities)
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities |
<definition-name> |
objek |
✔️ Ya |
Tidak |
Setiap kunci dalam autoentities objek adalah definisi bernama. Nama ini peka huruf besar/kecil dan berfungsi sebagai pengidentifikasi logis. Anda dapat menentukan beberapa definisi dengan pola dan izin yang berbeda.
{
"autoentities": {
"<definition-name>": { ... }
}
}
Example
{
"autoentities": {
"public-tables": {
"patterns": { "include": [ "dbo.%" ] },
"permissions": [ { "role": "anonymous", "actions": [ { "action": "read" } ] } ]
},
"admin-tables": {
"patterns": { "include": [ "admin.%" ] },
"permissions": [ { "role": "authenticated", "actions": [ { "action": "*" } ] } ]
}
}
}
Pola (nama autoentitiesdefinisi )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name> |
patterns |
objek |
❌ Tidak |
Tidak |
Menentukan aturan meliputi, mengecualikan, dan menamai yang menentukan objek database mana yang diekspos sebagai entitas.
Properti berlapis
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.patterns |
include |
larik string |
❌ Tidak |
["%.%"] |
autoentities.<definition-name>.patterns |
exclude |
larik string |
❌ Tidak |
null |
autoentities.<definition-name>.patterns |
name |
string |
❌ Tidak |
"{schema}_{object}" |
include—Satu atau beberapa pola MSSQL LIKE yang menentukan objek database mana yang akan disertakan. Gunakan % sebagai kartubebas. Format pola adalah schema.object (misalnya, dbo.% cocok dengan semua objek dalam dbo skema). Saat null atau dihilangkan, default ke ["%.%"] (semua objek dalam semua skema).
exclude—Satu atau beberapa pola MSSQL LIKE yang menentukan objek database mana yang akan dikecualikan. Pola pengecualian dievaluasi setelah menyertakan pola. Ketika null atau dihilangkan, tidak ada objek yang dikecualikan.
name—Pola interpolasi yang mengontrol bagaimana objek database yang cocok dinamai sebagai entitas.
{schema} Mendukung dan {object} tempat penampung. Setiap nama yang diselesaikan harus unik di semua entitas dalam konfigurasi.
{
"autoentities": {
"<definition-name>": {
"patterns": {
"include": [ "<string>" ],
"exclude": [ "<string>" ],
"name": "<string>"
}
}
}
}
Example
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{object}"
}
}
}
}
Dengan konfigurasi ini, setiap tabel dalam dbo skema (kecuali yang cocok dbo.internal%) diekspos sebagai entitas. Tabel bernama dbo.Products menjadi entitas bernama dbo_Products.
Nama (nama autoentitiesdefinisi pola )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.patterns |
name |
string |
❌ Tidak |
"{schema}_{object}" |
Mengontrol bagaimana objek database yang cocok dinamai sebagai entitas. Mendukung dua tempat penampung:
| Placeholder |
Beralih ke |
{schema} |
Nama skema objek database yang cocok |
{object} |
Nama objek objek database yang cocok |
Saat dihilangkan, default "{schema}_{object}" menggabungkan skema dan nama objek dengan garis bawah, membantu menjaga nama entitas yang dihasilkan tetap unik di seluruh skema.
{
"autoentities": {
"<definition-name>": {
"patterns": {
"name": "<string>"
}
}
}
}
Examples
| Pola |
Objek database |
Nama entitas |
"{schema}_{object}" |
dbo.Products |
dbo_Products |
"{object}" |
dbo.Products |
Products |
"{schema}.{object}" |
sales.Orders |
sales.Orders |
REST (nama autoentitiesdefinisi templat )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template |
rest |
objek |
❌ Tidak |
Tidak |
Properti berlapis
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template.rest |
enabled |
Boolean |
❌ Tidak |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"rest": { "enabled": <boolean> }
}
}
}
}
Example
{
"autoentities": {
"my-def": {
"template": {
"rest": { "enabled": false }
}
}
}
}
GraphQL (nama autoentitiesdefinisi templat )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template |
graphql |
objek |
❌ Tidak |
Tidak |
Properti berlapis
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template.graphql |
enabled |
Boolean |
❌ Tidak |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"graphql": { "enabled": <boolean> }
}
}
}
}
Example
{
"autoentities": {
"my-def": {
"template": {
"graphql": { "enabled": true }
}
}
}
}
MCP (nama autoentitiesdefinisi templat )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template |
mcp |
objek |
❌ Tidak |
Tidak |
Properti berlapis
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template.mcp |
dml-tools |
Boolean |
❌ Tidak |
true |
Mengaktifkan atau menonaktifkan alat bahasa manipulasi data (DML) MCP untuk semua entitas yang cocok.
{
"autoentities": {
"<definition-name>": {
"template": {
"mcp": { "dml-tools": <boolean> }
}
}
}
}
Example
{
"autoentities": {
"my-def": {
"template": {
"mcp": { "dml-tools": true }
}
}
}
}
Kesehatan (nama autoentitiesdefinisi templat )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template |
health |
objek |
❌ Tidak |
Tidak |
Properti berlapis
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template.health |
enabled |
Boolean |
❌ Tidak |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"health": { "enabled": <boolean> }
}
}
}
}
Example
{
"autoentities": {
"my-def": {
"template": {
"health": { "enabled": true }
}
}
}
}
Cache (nama autoentitiesdefinisi templat )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template |
cache |
objek |
❌ Tidak |
Tidak |
Mengaktifkan dan mengonfigurasi penembolokan respons untuk semua entitas yang cocok.
Properti berlapis
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.template.cache |
enabled |
Boolean |
❌ Tidak |
false |
autoentities.<definition-name>.template.cache |
ttl-seconds |
bilangan bulat |
❌ Tidak |
null |
autoentities.<definition-name>.template.cache |
level |
enum (L1 | L1L2) |
❌ Tidak |
"L1L2" |
Properti level mengontrol tingkat cache mana yang digunakan:
| Nilai |
Deskripsi |
L1 |
Hanya cache dalam memori. Tercepat, tetapi tidak dibagikan di seluruh instans. |
L1L2 |
Cache dalam memori ditambah cache terdistribusi (Redis). Dibagikan di seluruh instans yang diskalakan. Default. |
Nota
Ketika ttl-seconds dihilangkan null atau dihilangkan, ia mewarisi nilai global dari runtime.cache.ttl-seconds.
{
"autoentities": {
"<definition-name>": {
"template": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level": "<L1 | L1L2>"
}
}
}
}
}
Example
{
"autoentities": {
"my-def": {
"template": {
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level": "L1L2"
}
}
}
}
}
Izin (nama autoentitiesdefinisi )
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name> |
permissions |
array |
❌ Tidak |
Tidak |
Izin diterapkan ke setiap entitas yang cocok dengan definisi ini autoentities . Setiap elemen adalah objek dengan role array dan actions .
Properti berlapis
| Parent |
Harta benda |
Tipe |
Required |
Default |
autoentities.<definition-name>.permissions[] |
role |
string |
✔️ Ya |
Tidak |
autoentities.<definition-name>.permissions[] |
actions |
array atau string |
✔️ Ya |
Tidak |
autoentities.<definition-name>.permissions[].actions[] |
action |
string |
✔️ Ya |
Tidak |
Nilai tindakan yang didukung: create, , readupdate, delete, atau * (kartubebas meluas ke keempat tindakan CRUD).
{
"autoentities": {
"<definition-name>": {
"permissions": [
{
"role": "<string>",
"actions": [ { "action": "<string>" } ]
}
]
}
}
}
Example
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ]
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] },
{ "role": "authenticated", "actions": [ { "action": "*" } ] }
]
}
}
}
Contoh lengkap
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{object}"
},
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"mcp": { "dml-tools": true },
"health": { "enabled": true },
"cache": { "enabled": true, "ttl-seconds": 30, "level": "L1L2" }
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}
Dengan konfigurasi ini, setiap tabel dalam dbo skema (kecuali yang cocok dbo.internal%) secara otomatis diekspos sebagai entitas DAB. Setiap entitas diberi nama menggunakan {schema}_{object} pola (misalnya, dbo_Products), memiliki REST, GraphQL, MCP, dan pemeriksaan kesehatan yang diaktifkan, menggunakan penembolokan dengan time-to-live 30 detik, dan memberikan read akses ke peran tersebut anonymous .
Konten terkait