Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Veritabanı varlıkları için yapılandırma ayarları.
Health
| Property | Description |
|---|---|
entities.entity-name.health.enabled |
Varlık için sistem durumu denetimlerini etkinleştirir (hem REST hem de GraphQL uç noktaları) |
entities.entity-name.health.first |
Sistem durumu denetimi sorgusunda döndürülen satır sayısı (aralık: 1-500) |
entities.entity-name.health.threshold-ms |
Sistem durumu denetimi sorgusu için milisaniye cinsinden en uzun süre (dk: Bir) |
Description
| Property | Description |
|---|---|
entities.entity-name.description |
Varlığın insan tarafından okunabilen açıklaması |
Fields
| Property | Description |
|---|---|
entities.entity-name.fields[].name |
Veritabanı alan adı (gerekli) |
entities.entity-name.fields[].alias |
API tarafından kullanıma sunulan ad (eşlemelerin yerini alır) |
entities.entity-name.fields[].description |
İnsan tarafından okunabilen alan açıklaması |
entities.entity-name.fields[].primary-key |
Alanı birincil anahtar olarak işaretler (anahtar alanlarının yerini alır) |
Source
| Property | Description |
|---|---|
entities.entity-name.source.type |
Nesne türü: table, viewveya stored-procedure |
entities.entity-name.source.object |
Veritabanı nesnesinin adı |
entities.entity-name.source.object-description |
Veritabanı nesnesinin okunabilir açıklaması |
entities.entity-name.source.parameters |
Saklı yordamlar veya işlevler için parametreler |
entities.entity-name.source.key-fields |
|
entities.entity-name.mappings |
|
REST
| Property | Description |
|---|---|
entities.entity-name.rest.enabled |
Bu varlık için REST'i etkinleştirir |
entities.entity-name.rest.path |
REST uç noktası için özel yol |
entities.entity-name.rest.methods |
İzin verilen REST yöntemleri: get, post, put, patch, delete |
GraphQL
| Property | Description |
|---|---|
entities.entity-name.graphql.type |
ve ile singular ad veya nesne yazın plural |
entities.entity-name.graphql.operation |
İşlem türü: query veya mutation |
entities.entity-name.graphql.enabled |
Bu varlık için GraphQL'i etkinleştirir |
Permissions
| Property | Description |
|---|---|
entities.entity-name.permissions[].role |
Rol adı dizesi |
entities.entity-name.permissions[].actions |
Bir veya daha fazla: create, read, update, delete, execute |
Relationships
| Property | Description |
|---|---|
entities.entity-name.relationships.relationship-name.cardinality |
one veya many |
entities.entity-name.relationships.relationship-name.target.entity |
Hedef varlığın adı |
entities.entity-name.relationships.relationship-name.source.fields |
İlişkide kullanılan bu varlıktaki alanlar |
entities.entity-name.relationships.relationship-name.target.fields |
Hedef varlıktan alanlar |
entities.entity-name.relationships.relationship-name.linking.object |
Çoka çok ilişkiler için kullanılan birleştirme nesnesi |
entities.entity-name.relationships.relationship-name.linking.source.fields |
Birleştirmede kullanılan kaynak varlıktaki alanlar |
entities.entity-name.relationships.relationship-name.linking.target.fields |
Birleştirmede kullanılan hedef varlıktaki alanlar |
Cache
| Property | Description |
|---|---|
entities.entity-name.cache.enabled |
Varlık için yanıt önbelleğe almayı etkinleştirir |
entities.entity-name.cache.ttl-seconds |
Yaşam süresini saniyeler içinde önbelleğe alma |
entities.entity-name.cache.level |
Önbellek düzeyi: L1 (yalnızca bellek içi) veya L1L2 (bellek içi + dağıtılmış) |
MCP
| Property | Description |
|---|---|
entities.entity-name.mcp |
Varlık için Model Bağlam Protokolü (MCP) katılımını denetleen nesne |
entities.entity-name.mcp.dml-tools |
Varlık için veri işleme dili (DML) araçlarını etkinleştirir veya devre dışı bırakır |
entities.entity-name.mcp.custom-tool |
Saklı yordamı adlandırılmış bir MCP aracı olarak kaydeder (yalnızca saklı yordam varlıkları) |
Biçime genel bakış
{
"entities": {
"{entity-name}": {
"description": <string>,
"rest": {
"enabled": <boolean> // default: true
"path": <string> // default: "{entity-name}"
"methods": ["GET", "POST"] // default: ["GET", "POST"]
},
"graphql": {
"enabled": <boolean> // default: true
"type": {
"singular": <string>,
"plural": <string>
},
"operation": "query" | "mutation" // default: "query"
},
"source": {
"object": <string>,
"object-description": <string>,
"type": "view" | "stored-procedure" | "table",
"key-fields": [<string>], // DEPRECATED: use fields[].primary-key
"parameters": [ // array format (preferred)
{
"name": "<parameter-name>",
"required": <boolean>,
"default": <value>,
"description": "<string>"
}
]
},
"fields": [
{
"name": "<database-field-name>",
"alias": "<api-exposed-name>",
"description": "<string>",
"primary-key": <boolean>
}
],
"mappings": { // DEPRECATED: use fields[].alias
"<database-field-name>": <string>
},
"relationships": {
"<relationship-name>": {
"cardinality": "one" | "many",
"target.entity": <string>,
"source.fields": [<string>],
"target.fields": [<string>],
"linking.object": <string>,
"linking.source.fields": [<string>],
"linking.target.fields": [<string>]
}
},
"permissions": [
{
"role": "anonymous" | "authenticated" | <custom-role>,
"actions": ["create", "read", "update", "delete", "execute", "*"],
"fields": {
"include": [<string>],
"exclude": [<string>]
},
"policy": {
"database": <string>
}
}
],
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level": "L1" | "L1L2" // default: "L1L2"
},
"mcp": {
"dml-tools": <boolean>, // default: true
"custom-tool": <boolean> // stored-procedure only; default: false
}
}
}
}
Kaynak (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
source |
object | ✔️ Evet | None |
Varlığın veritabanı kaynak ayrıntıları.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.source |
object |
string | ✔️ Evet | None |
entities.{entity-name}.source |
object-description |
string | ❌ Hayır | None |
entities.{entity-name}.source |
type |
sabit listesi (table, view, stored-procedure) |
✔️ Evet | None |
entities.{entity-name}.source |
key-fields |
dize dizisi | ❌ Hayır* | None |
entities.{entity-name}.source |
parameters |
dizi veya nesne | ❌ No** | None |
*
key-fieldsyalnızca is type olduğunda ve view dizi kullanılmadığında fields gereklidir. değeri birincil anahtarları temsil eder.
Uyarı
özelliği key-fields DAB 2.0'da kullanım dışıdır. Bunun yerine ile dizisini fieldsprimary-key: true kullanın. Şema bunu fields zorunlu tutar ve key-fields aynı varlıkta birlikte bulunamaz.
**
parameters yalnızca varsayılan değerlere sahip parametreler için ve olduğunda typestored-procedure gereklidir. Parametresinin veri türü çıkarılır. Varsayılan olmayan parametreler atlanabilir.
object-description , temel alınan veritabanı nesnesinin isteğe bağlı olarak okunabilir bir açıklamasıdır. Bu değer MCP aracı bulma sırasında ortaya çıkar ve yapay zeka aracılarının varlığın amacını anlamasına yardımcı olur.
Tip
Nesne dbo şemasına aitse, şemanın belirtilmesi isteğe bağlıdır. Ayrıca, gerektiğinde nesne adlarının etrafındaki köşeli ayraçlar (örneğin, dbo.Users vs. [dbo].[Users]) kullanılabilir.
Format
{
"entities": {
"{entity-name}": {
"source": {
"object": <string>,
"object-description": <string>,
"type": <"view" | "stored-procedure" | "table">,
"key-fields": [ <string> ], // DEPRECATED: use fields[].primary-key
"parameters": [ // array format (preferred)
{
"name": "<parameter-name>",
"required": <boolean>,
"default": <value>,
"description": "<string>"
}
]
}
}
}
}
Parametreler dizisi biçimi
DAB 2.0 önizlemesinde, parameters daha zengin meta verilerle yapılandırılmış dizi biçimini destekler. Her parametre aşağıdaki özelliklere sahip bir nesnedir:
| Property | Type | Required | Description |
|---|---|---|---|
name |
string | ✔️ Evet | Parametre adı (ön ek olmadan @ ) |
required |
boolean | ❌ Hayır | Parametrenin gerekli olup olmadığı (true) veya isteğe bağlı (false) |
default |
any | ❌ Hayır | Parametre sağlandığında kullanılan varsayılan değer |
description |
string | ❌ Hayır | Parametrenin insan tarafından okunabilir açıklaması |
Örnek (dizi biçimi—tercih edilen)
{
"entities": {
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id",
"parameters": [
{
"name": "id",
"required": true,
"default": null,
"description": "The unique identifier of the book"
}
]
}
}
}
}
Uyarı
için sözlük biçimi parameters (örneğin, { "id": 0 }) DAB 2.0'da kullanım dışıdır. Önceki dizi biçimini kullanın. Eski biçim geriye dönük uyumluluk için hala kabul edilir, ancak gelecek bir sürümde kaldırılacaktır.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
İzinler (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.permissions |
role |
string | ✔️ Evet | None |
İzinlerin uygulanacağı rol adını belirtir. Kimlik sağlayıcınızda tanımlanan sistem rollerini (Anonymous, Authenticated) veya özel rolleri kullanın.
Tip
Rol değerlendirmesi, sistem rolleri ve üst bilgi hakkında ayrıntılı bilgi için bkz. YetkilendirmeyeX-MS-API-ROLE genel bakış.
Format
{
"entities": {
"{entity-name}": {
"permissions": [
{
"role": <"Anonymous" | "Authenticated" | "custom-role">,
"actions": [ <string> ]
}
]
}
}
}
Example
{
"entities": {
"User": {
"permissions": [
{
"role": "reader",
"actions": ["read"]
}
]
}
}
}
Rol devralma
DAB 2.0, varlık izinleri için rol devralmayı tanıtır. Bir rol bir varlık için açıkça yapılandırılmadığında, aşağıdaki zinciri kullanarak izinleri daha geniş bir rolden devralır:
named-role → authenticated → anonymous
- Bir varlık için yapılandırılmamışsa
authenticated, öğesindenanonymousdevralır. - Adlandırılmış bir rol yapılandırılmamışsa, öğesinden
authenticatedveya yoksa öğesindenanonymousauthenticateddevralır.
Başka bir deyişle, izinleri bir kez anonymous tanımlayabilirsiniz ve daha geniş olan her rol aynı erişimi otomatik olarak alır ve yineleme gerekmez.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
Example
{
"entities": {
"Book": {
"source": "dbo.books",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
Bu yapılandırmayla, anonymous, authenticatedve yapılandırılmamış adlandırılmış rollerin tümü okuyabilir Book. Devralma uygulandıktan sonra her varlığın çözümlenmiş izinlerini görmek için kullanın dab configure --show-effective-permissions .
Eylemler (dize dizisi İzinleri varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.permissions |
actions |
oneOf [dize, dizi] | ✔️ Evet | None |
İlişkili rol için izin verilen işlemlerin ayrıntılarını içeren bir dize dizisi.
| Action | SQL İşlemi |
|---|---|
* |
Tüm eylemler |
create |
Bir veya daha fazla* satır ekleme |
read |
Bir veya daha fazla satır seçme |
update |
Bir veya daha fazla satırı değiştirme* |
delete |
Bir veya daha fazla* satırı silme |
execute |
Saklı yordam çalıştırır |
* Şu anda yalnızca GraphQL'de birden çok işlem desteklenmektedir.
Note
Saklı yordamlar için joker karakter (*) eylemi yalnızca execute eylemine genişletir. Tablolar ve görünümler için create, read, updateve deleteolarak genişletir.
Format
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": [ <string> ]
}
]
}
}
}
Example
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": [ "*" ] // equivalent to create, read, update, delete
}
]
}
}
}
Alternatif biçim (yalnızca dize, ne zaman type=stored-procedure)
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": <string>
}
]
}
}
}
Example
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": "*" // equivalent to execute
}
]
}
}
}
Eylemler (nesne dizisi İzinleri varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.permissions |
actions |
dize dizisi | ✔️ Evet | None |
İlişkili rol için izin verilen işlemlerin ayrıntılarını gösteren bir nesne dizisi.
Note
Saklı yordamlar için joker karakter (*) eylemi yalnızca executegenişletir. Tablolar/görünümler için, create, read, updateve deleteolarak genişletir.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.permissions.actions[] |
action |
string | ✔️ Evet | None |
entities.{entity-name}.permissions.actions[] |
fields |
object | ❌ Hayır | None |
entities.{entity-name}.permissions.actions[] |
policy |
object | ❌ Hayır | None |
entities.{entity-name}.permissions.actions[].policy |
database |
string | ✔️ Evet | None |
Format
{
"entities": {
"{entity-name}": {
"permissions": [
{
"role": <string>,
"actions": [
{
"action": <string>,
"fields": <array of strings>,
"policy": <object>
}
]
}
]
}
}
Example
Bu, alan ve ilke kısıtlamalarıyla varlık üzerinde read izni auditor verirUser.
{
"entities": {
"User": {
"permissions": [
{
"role": "auditor",
"actions": [
{
"action": "read",
"fields": {
"include": ["*"],
"exclude": ["last_login"]
},
"policy": {
"database": "@item.IsAdmin eq false"
}
}
]
}
]
}
}
}
İlke notları
Veritabanı ilkeleri, OData stili koşullarını kullanarak sorgu sonuçlarını filtreler. Varlık alanlarına başvurmak ve @item.<field> kimliği doğrulanmış kullanıcı talepleri eklemek için kullanın@claims.<type>.
| Görünüş | Ayrıntılar |
|---|---|
| Sözdizimi | OData önkoşulları (eq, ne, and, or, gt, lt) |
| Alan referansı |
@item.<field> (varsa eşlenmiş ad kullanın) |
| Talep başvurusu | @claims.<claimType> |
| Desteklenen eylemler |
read, update, delete |
| Desteklenmez |
create, execute |
Tip
Talep değiştirme ve sorun giderme dahil olmak üzere veritabanı ilkeleriyle ilgili kapsamlı yönergeler için bkz. Veritabanı ilkelerini yapılandırma.
Tür (GraphQL varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql |
type |
object | ❌ Hayır | {entity-name} |
GraphQL şemasındaki bir varlık için adlandırma kuralını ayarlar.
Format
{
"entities": {
"{entity-name}": {
"graphql": {
"type": {
"singular": "<string>",
"plural": "<string>"
}
}
}
}
}
İç içe özellikler
| Parent | Property | Required | Type | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql.type |
singular |
✔️ Evet* | string | None |
entities.{entity-name}.graphql.type |
plural |
❌ Hayır | string | Yok (varsayılan olarak tekil değer kullanılır) |
*
singular bir nesne olarak belirtildiğinde type gereklidir. Düz bir dize olduğunda type , bu dize tekil ad olarak kullanılır.
Example
Configuration
{
"entities": {
"User": {
"graphql": {
"type": {
"singular": "User",
"plural": "Users"
}
}
}
}
}
GraphQL sorgusu
{
Users {
items {
id
name
age
isAdmin
}
}
}
GraphQL yanıtı
{
"data": {
"Users": {
"items": [
{
"id": 1,
"name": "Alice",
"age": 30,
"isAdmin": true
},
{
"id": 2,
"name": "Bob",
"age": 25,
"isAdmin": false
}
// ...
]
}
}
}
İşlem (GraphQL varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql |
operation |
sabit listesi dizesi | ❌ Hayır | mutation |
İşlemin stored-procedure veya Queryaltında Mutation görünüp görünmediğini tanımlar.
Note
{entity-name}.type olarak ayarlandığındastored-procedure, otomatik olarak yeni bir GraphQL türü executeXXX oluşturulur. Bu operation özellik, bu türün GraphQL şemasına yerleştirildiği yeri denetler. İşlevsel bir etki yoktur, yalnızca şema hijyeni vardır.
Format
{
"entities": {
"{entity-name}": {
"graphql": {
"operation": "query" | "mutation"
}
}
}
}
Örnek: işlem
Ne zaman operation olarak ayarlanır? query
type Query {
executeGetUserDetails(userId: Int!): GetUserDetailsResponse
}
Ne zaman operation olarak ayarlanır? mutation
type Mutation {
executeGetUserDetails(userId: Int!): GetUserDetailsResponse
}
Etkin (GraphQL varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql |
enabled |
boolean | ❌ Hayır | True |
Geliştiricilerin GraphQL şemasına varlıkları seçmeli olarak eklemesine olanak tanır.
Format
{
"entities": {
"{entity-name}": {
"graphql": {
"enabled": <true> (default) | <false>
}
}
}
}
REST (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.rest |
enabled |
boolean | ❌ Hayır | True |
entities.rest |
path |
string | ❌ Hayır | /{entity-name} |
entities.{entity-name}.rest |
methods |
dize dizisi | ❌ Hayır* | POST |
methods* Özelliği yalnızca uç noktalar içindirstored-procedure.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
Format
{
"entities": {
"{entity-name}": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string; default: "{entity-name}">
}
}
}
}
Açıklama (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
description |
string | ❌ Hayır | None |
Varlığın isteğe bağlı olarak okunabilir bir açıklaması. Bu değer oluşturulan API belgelerinde ve GraphQL şemasında açıklama olarak gösterilir.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
Format
{
"entities": {
"{entity-name}": {
"description": "<string>"
}
}
}
Example
{
"entities": {
"Book": {
"description": "Represents a book in the catalog with title, author, and pricing information.",
"source": {
"object": "dbo.books",
"type": "table"
}
}
}
}
Alanlar (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
fields |
array | ❌ Hayır | None |
Diğer adlar, açıklamalar ve birincil anahtar atamaları dahil olmak üzere tek tek veritabanı alanları için meta verileri tanımlar. Dizi hem fields (özelliği aracılığıylamappings) hem alias de source.key-fields (özelliği aracılığıylaprimary-key) tek bir birleşik yapıda değiştirir.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.fields[] |
name |
string | ✔️ Evet | None |
entities.{entity-name}.fields[] |
alias |
string | ❌ Hayır | None |
entities.{entity-name}.fields[] |
description |
string | ❌ Hayır | None |
entities.{entity-name}.fields[] |
primary-key |
boolean | ❌ Hayır | false |
Format
{
"entities": {
"{entity-name}": {
"fields": [
{
"name": "<database-field-name>",
"alias": "<api-exposed-name>",
"description": "<string>",
"primary-key": <boolean>
}
]
}
}
}
Example
{
"entities": {
"Book": {
"source": {
"object": "dbo.books",
"type": "table"
},
"fields": [
{
"name": "id",
"description": "Unique book identifier",
"primary-key": true
},
{
"name": "sku_title",
"alias": "title",
"description": "The display title of the book"
},
{
"name": "sku_status",
"alias": "status"
}
]
}
}
}
Bu örnekte birincil id anahtar olarak belirlenmiştir (için gereksinimini source.key-fieldsdeğiştirerek) sku_title ve sku_status olarak titlestatus diğer ad verilir (gereksinimini mappingsdeğiştirir).
Important
Şema fields , aynı varlıkla mappings veya source.key-fields aynı varlıkta birlikte bulunamaz. Kullanım dışı bırakılan özelliklere fields geçiş ve kaldırma.
Eşlemeler (varlık-adı varlıkları)
Uyarı
özelliği mappings DAB 2.0'da kullanım dışıdır.
fields Bunun yerine özelliğiyle dizisini alias kullanın. Şema bunu fields zorunlu tutar ve mappings aynı varlıkta birlikte bulunamaz.
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
mappings |
object | ❌ Hayır | None |
Veritabanı nesnesi alanları için özel diğer adları veya kullanıma sunulan adları etkinleştirir.
Important
GraphQL'in etkinleştirildiği varlıklar için, kullanıma sunulan adın GraphQL adı gereksinimlerini karşılaması gerekir.
Format
{
"entities": {
"{entity-name}": {
"mappings": {
"<field-1-name>": "<field-1-alias>",
"<field-2-name>": "<field-2-alias>",
"<field-3-name>": "<field-3-alias>"
}
}
}
}
Examples
Veritabanı Tablosu
CREATE TABLE Books
(
id INT,
sku_title VARCHAR(50),
sku_status VARCHAR(50),
)
Configuration
{
"entities": {
"Books": {
...
"mappings": {
"sku_title": "title",
"sku_status": "status"
}
}
}
}
Önbellek (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
cache |
object | ❌ Hayır | None |
Varlık için önbelleğe almayı etkinleştirir ve yapılandırr.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.cache |
enabled |
boolean | ❌ Hayır | False |
entities.{entity-name}.cache |
ttl-seconds |
integer | ❌ Hayır | - |
entities.{entity-name}.cache |
level |
sabit listesi (L1 | L1L2) |
❌ Hayır | L1L2 |
Format
{
"entities": {
"{entity-name}": {
"cache": {
"enabled": <true> (default) | <false>,
"ttl-seconds": <integer; default: 5>,
"level": <"L1" | "L1L2"> (default: "L1L2")
}
}
}
}
level özelliği hangi önbellek katmanlarının kullanıldığını denetler:
| Değer | Description |
|---|---|
L1 |
Yalnızca bellek içi önbellek. En hızlı, ancak örnekler arasında paylaşılmaz. |
L1L2 |
Bellek içi önbellek artı dağıtılmış (Redis) önbellek. Ölçeği genişletilmiş örnekler arasında paylaşılır. Varsayılan. |
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
Note
Belirtilmediğinde altında ttl-seconds ayarlanan runtime.cachegenel değeri devralır.
Example
{
"entities": {
"Author": {
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level": "L1"
}
}
}
}
İlişkiler (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
relationships |
object | ❌ Hayır | None |
GraphQL varlıklarının diğer kullanıma sunulan varlıklarla nasıl ilişkili olduğunu yapılandırır. Daha fazla bilgi için bkz. Veri API'si oluşturucu ilişkileri dökümü.
Note
relationship-name Her ilişkinin özelliği, bu varlığa ait tüm ilişkilerde benzersiz olmalıdır.
İç içe özellikler
Bu özellikler, ilişki kardinalitesine bağlı olarak farklı birleşimlerde kullanılır.
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.relationships |
cardinality |
string | ✔️ Evet | None |
entities.{entity-name}.relationships |
target.entity |
string | ✔️ Evet | None |
entities.{entity-name}.relationships |
target.fields |
dize dizisi | ❌ Hayır | None |
entities.{entity-name}.relationships |
source.fields |
dize dizisi | ❌ Hayır | None |
entities.{entity-name}.relationships |
linking.object |
string | ❌ Hayır | None |
entities.{entity-name}.relationships |
linking.source.fields |
dize dizisi | ❌ Hayır | None |
entities.{entity-name}.relationships |
linking.target.fields |
dize dizisi | ❌ Hayır | None |
Format
{
"entities": {
"{entity-name}": {
"relationships": {
"<relationship-name>": {
"cardinality": "one" | "many",
"target.entity": "<string>",
"source.fields": ["<string>"],
"target.fields": ["<string>"],
"linking.object": "<string>",
"linking.source.fields": ["<string>"],
"linking.target.fields": ["<string>"]
}
}
}
}
}
| Relationship | Cardinality | Example |
|---|---|---|
| one-to-many | many |
Bir kategori varlığı birçok yapılacaklar varlığıyla ilişkilendirilebilir |
| many-to-one | one |
Birçok yapılacaklar varlığı bir kategori varlığıyla ilişkilendirilebilir |
| many-to-many | many |
Bir yapılacaklar varlığı birçok kullanıcı varlığıyla ve bir kullanıcı varlığı da birçok yapılacaklar varlığıyla ilişkilendirilebilir |
Örnek: Bire bir kardinalite
Her Profile biri tam olarak bir Userile ilişkilidir ve her User birinin tam olarak bir ilişkili Profilevardır.
{
"entities": {
"User": {
"relationships": {
"user_profile": {
"cardinality": "one",
"target.entity": "Profile",
"source.fields": [ "id" ],
"target.fields": [ "user_id" ]
}
}
},
"Profile": {
...
}
}
}
GraphQL şeması
type User
{
id: Int!
...
profile: Profile
}
Command-line
dab update User \
--relationship profile \
--target.entity Profile \
--cardinality one \
--relationship.fields "id:user_id"
Örnek: Bire çok kardinalitesi
A Category ile ilgili bir veya daha fazla varlık Book olabilirken, her Book birinin ilgili Categorybir varlığı olabilir.
{
"entities": {
"Book": {
...
},
"Category": {
"relationships": {
"category_books": {
"cardinality": "many",
"target.entity": "Book",
"source.fields": [ "id" ],
"target.fields": [ "category_id" ]
}
}
}
}
}
GraphQL şeması
type Category
{
id: Int!
...
books: [BookConnection]!
}
Komut satırı
dab update Category \
--relationship category_books \
--target.entity Book \
--cardinality many \
--relationship.fields "id:category_id"
Örnek: Çoka bir kardinalitesi
Birçok Book varlığın ilgili Categorybir öğesi olabilirken, bir Category varlığın bir veya daha fazla ilişkili Book girdisi olabilir.
{
"entities": {
"Book": {
"relationships": {
"books_category": {
"cardinality": "one",
"target.entity": "Category",
"source.fields": [ "category_id" ],
"target.fields": [ "id" ]
}
},
"Category": {
...
}
}
}
}
GraphQL şeması
type Book
{
id: Int!
...
category: Category
}
Komut satırı
dab update Book \
--relationship books_category \
--target.entity "Category" \
--cardinality one \
--relationship.fields "category_id:id"
Örnek: Çoka çok kardinalitesi
Birçok Book varlığın birçok ilişkili Author varlığı olabilirken, birçok Author varlığın birçok ilgili Book girdisi olabilir.
Note
Bu ilişki, dbo.books_authorsbağlama nesnesi olarak adlandırdığımız üçüncü bir tabloyla mümkündür.
{
"entities": {
"Book": {
"relationships": {
...,
"books_authors": {
"cardinality": "many",
"target.entity": "Author",
"source.fields": [ "id" ],
"target.fields": [ "id" ],
"linking.object": "dbo.books_authors",
"linking.source.fields": [ "book_id" ],
"linking.target.fields": [ "author_id" ]
}
},
"Category": {
...
},
"Author": {
...
}
}
}
}
GraphQL şeması
type Book
{
id: Int!
...
authors: [AuthorConnection]!
}
type Author
{
id: Int!
...
books: [BookConnection]!
}
Komut satırı
dab update Book \
--relationship books_authors \
--target.entity "Author" \
--cardinality many \
--relationship.fields "id:id" \
--linking.object "dbo.books_authors" \
--linking.source.fields "book_id" \
--linking.target.fields "author_id"
Sistem durumu (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
health |
object | ❌ Hayır | None |
Varlık için sistem durumu denetimlerini etkinleştirir ve yapılandırr.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.health |
enabled |
boolean | ❌ Hayır | true |
entities.{entity-name}.health |
first |
integer | ❌ Hayır | 100 |
entities.{entity-name}.health |
threshold-ms |
integer | ❌ Hayır | 1000 |
Example
{
"entities": {
"Book": {
"health": {
"enabled": true,
"first": 3,
"threshold-ms": 500
}
}
}
}
Note
Değer first , ayardan küçük veya buna eşit runtime.pagination.max-page-size olmalıdır. Daha küçük değerler, sistem durumu denetimlerinin daha hızlı tamamlanmasına yardımcı olur.
Important
Saklı yordamlar, parametre gerektirdiğinden ve belirlenimci olmayabileceği için varlık durumu denetimlerinin dışında tutulur.
MCP (varlık-adı varlıkları)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
mcp |
object | ❌ Hayır | atlandığında varsayılan olarak etkin |
Varlık için MCP katılımını denetler. MCP genel olarak etkinleştirildiğinde varlıklar varsayılan olarak katılır. Saklı yordam varlıkları için özel MCP araçlarını devre dışı bırakma veya etkinleştirme için bu özelliği kullanın.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
Nesne biçimi
Ayrıntılı denetim için nesne biçimini kullanın:
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.mcp |
dml-tools |
boolean | ❌ Hayır | true |
entities.{entity-name}.mcp |
custom-tool |
boolean | ❌ Hayır | false |
{
"entities": {
"Book": {
"mcp": {
"dml-tools": true
}
}
}
}
Özel araç (yalnızca saklı yordamlar)
Saklı yordam varlıkları için, yordamı adlandırılmış bir MCP aracı olarak kaydedecek şekilde ayarlayın custom-tooltrue :
{
"entities": {
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id"
},
"mcp": {
"custom-tool": true
},
"permissions": [
{
"role": "anonymous",
"actions": ["execute"]
}
]
}
}
}
Important
custom-tool özelliği yalnızca saklı yordam varlıkları için geçerlidir. Bunu bir tabloda ayarlamak veya varlığı görüntülemek yapılandırma hatasıyla sonuçlanır.
CLI örnekleri
dab add Book --source books --permissions "anonymous:*" --mcp.dml-tools true
dab add GetBookById --source dbo.get_book_by_id --source.type stored-procedure --permissions "anonymous:execute" --mcp.custom-tool true