Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Adatbázis-entitások konfigurációs beállításai.
Health
| Property | Description |
|---|---|
entities.entity-name.health.enabled |
Engedélyezi az entitás állapot-ellenőrzését (REST- és GraphQL-végpontok egyaránt) |
entities.entity-name.health.first |
Az állapot-ellenőrző lekérdezésben visszaadott sorok száma (tartomány: 1–500) |
entities.entity-name.health.threshold-ms |
Az állapot-ellenőrzési lekérdezés maximális időtartama ezredmásodpercben (min: Egy) |
Description
| Property | Description |
|---|---|
entities.entity-name.description |
Az entitás ember által olvasható leírása |
Fields
| Property | Description |
|---|---|
entities.entity-name.fields[].name |
Adatbázismező neve (kötelező) |
entities.entity-name.fields[].alias |
API által közzétett név (a leképezések helyett) |
entities.entity-name.fields[].description |
Ember által olvasható mező leírása |
entities.entity-name.fields[].primary-key |
Mező megjelölése elsődleges kulcsként (kulcsmezők helyett) |
Source
| Property | Description |
|---|---|
entities.entity-name.source.type |
Objektumtípus: table, viewvagy stored-procedure |
entities.entity-name.source.object |
Az adatbázis-objektum neve |
entities.entity-name.source.object-description |
Az adatbázis-objektum olvasható leírása |
entities.entity-name.source.parameters |
Tárolt eljárások vagy függvények paraméterei |
entities.entity-name.source.key-fields |
|
entities.entity-name.mappings |
|
REST
| Property | Description |
|---|---|
entities.entity-name.rest.enabled |
REST engedélyezése ehhez az entitáshoz |
entities.entity-name.rest.path |
Egyéni útvonal REST-végponthoz |
entities.entity-name.rest.methods |
Engedélyezett REST-metódusok: get, post, put, patchdelete |
GraphQL
| Property | Description |
|---|---|
entities.entity-name.graphql.type |
Írja be a nevet vagy objektumot a singularplural |
entities.entity-name.graphql.operation |
Művelet típusa: query vagy mutation |
entities.entity-name.graphql.enabled |
Engedélyezi a GraphQL-t ehhez az entitáshoz |
Permissions
| Property | Description |
|---|---|
entities.entity-name.permissions[].role |
Szerepkörnév sztringje |
entities.entity-name.permissions[].actions |
Egy vagy több: create, read, update, deleteexecute |
Relationships
| Property | Description |
|---|---|
entities.entity-name.relationships.relationship-name.cardinality |
one vagy many |
entities.entity-name.relationships.relationship-name.target.entity |
A cél entitás neve |
entities.entity-name.relationships.relationship-name.source.fields |
A kapcsolatban használt entitás mezői |
entities.entity-name.relationships.relationship-name.target.fields |
Mezők a cél entitásból |
entities.entity-name.relationships.relationship-name.linking.object |
Több-a-többhöz kapcsolatokhoz használt összekapcsolás objektum |
entities.entity-name.relationships.relationship-name.linking.source.fields |
Az illesztés során használt forrásentitások mezői |
entities.entity-name.relationships.relationship-name.linking.target.fields |
Az illesztésben használt célentitások mezői |
Cache
| Property | Description |
|---|---|
entities.entity-name.cache.enabled |
Az entitás válasz gyorsítótárazásának engedélyezése |
entities.entity-name.cache.ttl-seconds |
Gyorsítótár élettartam másodpercben |
entities.entity-name.cache.level |
Gyorsítótár szintje: L1 (csak memóriában) vagy L1L2 (memóriában + elosztott) |
MCP
| Property | Description |
|---|---|
entities.entity-name.mcp |
Az entitáshoz tartozó Model Context Protocol (MCP) részvételét vezérlő objektum |
entities.entity-name.mcp.dml-tools |
Engedélyezi vagy letiltja az entitás adatmanipulációs nyelvi (DML) eszközeit |
entities.entity-name.mcp.custom-tool |
A tárolt eljárást névvel ellátott MCP-eszközként regisztrálja (csak tárolt eljárás entitások) |
Formátum áttekintése
{
"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
}
}
}
}
Forrás (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
source |
objektum | ✔️ Igen | None |
Az entitás adatbázis-forrásadatai.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.source |
object |
karakterlánc | ✔️ Igen | None |
entities.{entity-name}.source |
object-description |
karakterlánc | ❌ Nem | None |
entities.{entity-name}.source |
type |
enum (table, view, stored-procedure) |
✔️ Igen | None |
entities.{entity-name}.source |
key-fields |
karakterlánc-tömb | ❌ Nem* | None |
entities.{entity-name}.source |
parameters |
tömb vagy objektum | ❌ Nem** | None |
*
key-fields csak akkor szükséges, ha type van, view és a fields tömb nincs használatban. Az érték az elsődleges kulcsokat jelöli.
Figyelmeztetés
A key-fields tulajdonság elavult a DAB 2.0-ban. Használja helyette a fields tömböt primary-key: true . A séma kikényszeríti ezt, fields és key-fields nem lehet egyidejűleg létezni ugyanazon az entitáson.
**
parameters csak akkor szükséges, ha type van stored-procedure és csak az alapértelmezett értékeket tartalmazó paraméterek esetében. A paraméter adattípusa kikövetkezésre kerül. Az alapértelmezett paraméterek kihagyhatók.
object-description a mögöttes adatbázis-objektum nem kötelező, emberi olvasásra alkalmas leírása. Ez az érték az MCP-eszközök felderítése során jelenik meg, segítve az AI-ügynököket az entitás céljának megértésében.
Tip
Ha az objektum a dbo sémához tartozik, a séma megadása nem kötelező. Emellett szükség esetén az objektumnevek körüli szögletes zárójelek (például dbo.Users vs. [dbo].[Users]) is használhatók.
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>"
}
]
}
}
}
}
Paraméterek tömbformátuma
A DAB 2.0-s és újabb verzióiban parameters gazdagabb metaadatokkal rendelkező strukturált tömbformátumot támogat. Minden paraméter egy objektum, amely a következő tulajdonságokkal rendelkezik:
| Property | Típus | Required | Description |
|---|---|---|---|
name |
karakterlánc | ✔️ Igen | Paraméter neve (az @ előtag nélkül) |
required |
boolean | ❌ Nem | Szükség van-e a paraméterre (true) vagy nem kötelező (false) |
default |
any | ❌ Nem | Alapértelmezett érték, amely akkor használatos, ha a paraméter nincs megadva |
description |
karakterlánc | ❌ Nem | A paraméter ember által olvasható leírása |
Példa (tömbformátum – előnyben részesített)
{
"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"
}
]
}
}
}
}
Figyelmeztetés
A szótár formátuma parameters (például { "id": 0 }) elavult a DAB 2.0-ban. Használja az előző tömbformátumot. A régi formátum továbbra is használható a visszamenőleges kompatibilitás érdekében, de egy későbbi kiadásban el lesz távolítva.
Note
Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.
Engedélyek (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.permissions |
role |
karakterlánc | ✔️ Igen | None |
Megadja a szerepkör nevét, amelyre az engedélyek vonatkoznak. Használja az identitásszolgáltatóban definiált rendszerszerepköröket (Anonymous, Authenticated) vagy egyéni szerepköröket.
Tip
A szerepkör-kiértékelésről, a rendszerszerepkörökről és a fejlécről további információt az X-MS-API-ROLEEngedélyezés áttekintése című témakörben talál.
Format
{
"entities": {
"{entity-name}": {
"permissions": [
{
"role": <"Anonymous" | "Authenticated" | "custom-role">,
"actions": [ <string> ]
}
]
}
}
}
Example
{
"entities": {
"User": {
"permissions": [
{
"role": "reader",
"actions": ["read"]
}
]
}
}
}
Szerepköröröklés
A DAB 2.0 szerepköröröklést vezet be az entitásengedélyekhez. Ha egy szerepkör nincs explicit módon konfigurálva egy entitáshoz, az engedélyeket egy szélesebb szerepkörtől örökli az alábbi lánc használatával:
named-role → authenticated → anonymous
- Ha
authenticatednincs konfigurálva egy entitáshoz, attól öröklődikanonymous. - Ha egy elnevezett szerepkör nincs konfigurálva, akkor az örökli
authenticateda ( vagy haanonymousszintén hiányzik) szerepkörtauthenticated.
Ez azt jelenti, hogy egyszer megadhatja az engedélyeket, anonymous és minden szélesebb szerepkör automatikusan megkapja ugyanazt a hozzáférést, és nincs szükség duplikálásra.
Note
Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.
Example
{
"entities": {
"Book": {
"source": "dbo.books",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
Ezzel a konfigurációval, anonymousauthenticatedés minden nem konfigurált névvel ellátott szerepkör is elolvashatóBook. A dab configure --show-effective-permissions feloldott engedélyek megtekintése minden entitáshoz az öröklés alkalmazása után.
Műveletek (string-array Permissions entity-name entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.permissions |
actions |
oneOf [sztring, tömb] | ✔️ Igen | None |
Egy sztringtömb, amely részletezi, hogy milyen műveletek engedélyezettek a társított szerepkörhöz.
| Action | SQL-művelet |
|---|---|
* |
Minden művelet |
create |
Egy vagy több* sor beszúrása |
read |
Egy vagy több sor kijelölése |
update |
Egy vagy több* sor módosítása |
delete |
Egy vagy több* sor törlése |
execute |
Tárolt eljárás futtatása |
* Jelenleg több művelet is csak a GraphQL-ben támogatott.
Note
Tárolt eljárások esetén a helyettesítő karakter (*) művelet csak a execute műveletre terjed ki. Táblák és nézetek esetén a create, read, updateés delete.
Format
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": [ <string> ]
}
]
}
}
}
Example
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": [ "*" ] // equivalent to create, read, update, delete
}
]
}
}
}
Alternatív formátum (csak sztring, ha type=stored-procedure)
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": <string>
}
]
}
}
}
Example
{
"entities": {
"{entity-name}": {
"permissions": [
{
"actions": "*" // equivalent to execute
}
]
}
}
}
Műveletek (object-array Permissions entity-name entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.permissions |
actions |
karakterlánc-tömb | ✔️ Igen | None |
Egy objektumtömb, amely részletezi, hogy milyen műveletek engedélyezettek a társított szerepkörhöz.
Note
Tárolt eljárások esetén a helyettesítő karakter (*) művelet csak execute. Táblák/nézetek esetén a create, read, updateés delete.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.permissions.actions[] |
action |
karakterlánc | ✔️ Igen | None |
entities.{entity-name}.permissions.actions[] |
fields |
objektum | ❌ Nem | None |
entities.{entity-name}.permissions.actions[] |
policy |
objektum | ❌ Nem | None |
entities.{entity-name}.permissions.actions[].policy |
database |
karakterlánc | ✔️ Igen | None |
Format
{
"entities": {
"{entity-name}": {
"permissions": [
{
"role": <string>,
"actions": [
{
"action": <string>,
"fields": <array of strings>,
"policy": <object>
}
]
}
]
}
}
Example
Ez engedélyt ad read az auditor entitásra User mező- és szabályzatkorlátozásokkal.
{
"entities": {
"User": {
"permissions": [
{
"role": "auditor",
"actions": [
{
"action": "read",
"fields": {
"include": ["*"],
"exclude": ["last_login"]
},
"policy": {
"database": "@item.IsAdmin eq false"
}
}
]
}
]
}
}
}
Szabályzati megjegyzések
Az adatbázis-szabályzatok OData-stílusú predikátumokkal szűrik a lekérdezési eredményeket. Entitásmezők hivatkozására és @item.<field> hitelesített felhasználói jogcímek injektálására használható@claims.<type>.
| Jellemző | Részletek |
|---|---|
| Szemantika | OData-predikátumok (eq, ne, and, or, gt) lt |
| Mezőhivatkozás |
@item.<field> (ha van, használja a megfeleltetett nevet) |
| Jogcímhivatkozás | @claims.<claimType> |
| Támogatott műveletek | \ |
| Nem támogatott |
create, execute |
Tip
Az adatbázis-szabályzatokkal kapcsolatos átfogó útmutatásért, beleértve a jogcímek helyettesítését és hibaelhárítását, tekintse meg az adatbázis-szabályzatok konfigurálását ismertető témakört.
Típus (GraphQL entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql |
type |
objektum | ❌ Nem | {entity-name} |
Beállítja egy entitás elnevezési konvencióját a GraphQL-sémán belül.
Format
{
"entities": {
"{entity-name}": {
"graphql": {
"type": {
"singular": "<string>",
"plural": "<string>"
}
}
}
}
}
Beágyazott tulajdonságok
| Parent | Property | Required | Típus | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql.type |
singular |
✔️ Igen* | karakterlánc | None |
entities.{entity-name}.graphql.type |
plural |
❌ Nem | karakterlánc | N/A (a szingular érték alapértelmezett értéke) |
*
singular objektumként való megadása kötelező type . Ha type egyszerű sztringről van szó, akkor a rendszer ezt a sztringet használja egyedi névként.
Example
Configuration
{
"entities": {
"User": {
"graphql": {
"type": {
"singular": "User",
"plural": "Users"
}
}
}
}
}
GraphQL-lekérdezés
{
Users {
items {
id
name
age
isAdmin
}
}
}
GraphQL-válasz
{
"data": {
"Users": {
"items": [
{
"id": 1,
"name": "Alice",
"age": 30,
"isAdmin": true
},
{
"id": 2,
"name": "Bob",
"age": 25,
"isAdmin": false
}
// ...
]
}
}
}
Művelet (GraphQL entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql |
operation |
enum sztring | ❌ Nem | mutation |
Azt határozza meg, hogy a stored-procedure művelet megjelenik-e a vagy Querya Mutation .
Note
Ha {entity-name}.type be van állítva stored-procedure, a rendszer automatikusan létrehoz egy új GraphQL-típust executeXXX . Ez a operation tulajdonság szabályozza, hogy a típus hol található a GraphQL-sémában. Nincs funkcionális hatás, csak sémahigiénia.
Format
{
"entities": {
"{entity-name}": {
"graphql": {
"operation": "query" | "mutation"
}
}
}
}
Példa: művelet
Mikor operation van beállítva query
type Query {
executeGetUserDetails(userId: Int!): GetUserDetailsResponse
}
Mikor operation van beállítva mutation
type Mutation {
executeGetUserDetails(userId: Int!): GetUserDetailsResponse
}
Engedélyezve (GraphQL-entitásnév-entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.graphql |
enabled |
boolean | ❌ Nem | True |
Lehetővé teszi, hogy a fejlesztők szelektíven belefoglalják az entitásokat a GraphQL-sémába.
Format
{
"entities": {
"{entity-name}": {
"graphql": {
"enabled": <true> (default) | <false>
}
}
}
}
REST (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.rest |
enabled |
boolean | ❌ Nem | True |
entities.rest |
path |
karakterlánc | ❌ Nem | /{entity-name} |
entities.{entity-name}.rest |
methods |
karakterlánc-tömb | ❌ Nem* | POST |
* A methods tulajdonság csak végpontokra vonatkozik stored-procedure .
Note
Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.
Format
{
"entities": {
"{entity-name}": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string; default: "{entity-name}">
}
}
}
}
Leírás (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
description |
karakterlánc | ❌ Nem | None |
Az entitás opcionálisan olvasható leírása. Ez az érték a létrehozott API-dokumentációban és a GraphQL-séma megjegyzéseként jelenik meg.
Note
Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.
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"
}
}
}
}
Mezők (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
fields |
tömb | ❌ Nem | None |
Az egyes adatbázismezők metaadatait határozza meg, beleértve az aliasokat, a leírásokat és az elsődleges kulcsok megjelölését. A fields tömb (a tulajdonságon keresztül) és mappings (a aliassource.key-fields tulajdonságon keresztül) is primary-key egy egységes szerkezetben cseréli le a tömböt.
Note
Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.fields[] |
name |
karakterlánc | ✔️ Igen | None |
entities.{entity-name}.fields[] |
alias |
karakterlánc | ❌ Nem | None |
entities.{entity-name}.fields[] |
description |
karakterlánc | ❌ Nem | None |
entities.{entity-name}.fields[] |
primary-key |
boolean | ❌ Nem | 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"
}
]
}
}
}
Ebben a példában id a rendszer elsődleges kulcsként van kijelölve (a szükségletet source.key-fieldslecserélve), míg sku_titlesku_status a rendszer aliasként title és status (az igény mappingshelyére) van állítva.
Important
A séma kikényszeríti, hogy fields ne létezhet együtt egy entitással mappings vagy source.key-fields ugyanazon az entitáson. Az elavult tulajdonságok migrálása fields és eltávolítása.
Leképezések (entitásnév entitások)
Figyelmeztetés
A mappings tulajdonság elavult a DAB 2.0-ban. Használja inkább a fields tömböt a alias tulajdonsággal. A séma kikényszeríti ezt, fields és mappings nem lehet egyidejűleg létezni ugyanazon az entitáson.
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
mappings |
objektum | ❌ Nem | None |
Egyéni aliasok vagy közzétett nevek engedélyezése adatbázis-objektummezőkhöz.
Important
A GraphQL-t engedélyező entitások esetében a konfigurált közzétett névnek meg kell felelnie a GraphQL-névkövetelményeknek.
Format
{
"entities": {
"{entity-name}": {
"mappings": {
"<field-1-name>": "<field-1-alias>",
"<field-2-name>": "<field-2-alias>",
"<field-3-name>": "<field-3-alias>"
}
}
}
}
Examples
Adatbázistábla
CREATE TABLE Books
(
id INT,
sku_title VARCHAR(50),
sku_status VARCHAR(50),
)
Configuration
{
"entities": {
"Books": {
...
"mappings": {
"sku_title": "title",
"sku_status": "status"
}
}
}
}
Gyorsítótár (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
cache |
objektum | ❌ Nem | None |
Engedélyezi és konfigurálja az entitás gyorsítótárazását.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.cache |
enabled |
boolean | ❌ Nem | False |
entities.{entity-name}.cache |
ttl-seconds |
egész szám | ❌ Nem | - |
entities.{entity-name}.cache |
level |
enum (L1 | L1L2) |
❌ Nem | L1L2 |
Format
{
"entities": {
"{entity-name}": {
"cache": {
"enabled": <true> (default) | <false>,
"ttl-seconds": <integer; default: 5>,
"level": <"L1" | "L1L2"> (default: "L1L2")
}
}
}
}
A level tulajdonság szabályozza, hogy mely gyorsítótárszinteket használja a rendszer:
| Érték | Description |
|---|---|
L1 |
Csak a memóriabeli gyorsítótárban. Leggyorsabb, de nem osztják meg a példányok között. |
L1L2 |
Memóriabeli gyorsítótár és elosztott (Redis) gyorsítótár. Felskálázott példányok között megosztva. Default. |
Note
Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.
Note
Ha nincs megadva, ttl-seconds örökli a megadott globális értéket runtime.cache.
Example
{
"entities": {
"Author": {
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level": "L1"
}
}
}
}
Kapcsolatok (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
relationships |
objektum | ❌ Nem | None |
Konfigurálja, hogy a GraphQL-entitások hogyan kapcsolódnak más közzétett entitásokhoz. További információ: Data API Builder-kapcsolatok részletezése.
Note
Az relationship-name egyes kapcsolatok tulajdonságának egyedinek kell lennie az adott entitás összes kapcsolatában.
Beágyazott tulajdonságok
Ezeket a tulajdonságokat a kapcsolat számosságától függően különböző kombinációkban használják.
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.relationships |
cardinality |
karakterlánc | ✔️ Igen | None |
entities.{entity-name}.relationships |
target.entity |
karakterlánc | ✔️ Igen | None |
entities.{entity-name}.relationships |
target.fields |
karakterlánc-tömb | ❌ Nem | None |
entities.{entity-name}.relationships |
source.fields |
karakterlánc-tömb | ❌ Nem | None |
entities.{entity-name}.relationships |
linking.object |
karakterlánc | ❌ Nem | None |
entities.{entity-name}.relationships |
linking.source.fields |
karakterlánc-tömb | ❌ Nem | None |
entities.{entity-name}.relationships |
linking.target.fields |
karakterlánc-tömb | ❌ Nem | 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 |
Egy kategória-entitás számos teendő entitáshoz kapcsolódhat |
| many-to-one | one |
Számos teendő entitás kapcsolódhat egy kategória-entitáshoz |
| many-to-many | many |
Egy teendő entitás számos felhasználói entitáshoz kapcsolódhat, egy felhasználói entitás pedig számos todo entitáshoz kapcsolódhat |
Példa: Egy az egyhez számosság
Mindegyik Profile pontosan egyhez Userkapcsolódik , és mindegyiknek User pontosan egy kapcsolódója Profilevan .
{
"entities": {
"User": {
"relationships": {
"user_profile": {
"cardinality": "one",
"target.entity": "Profile",
"source.fields": [ "id" ],
"target.fields": [ "user_id" ]
}
}
},
"Profile": {
...
}
}
}
GraphQL-séma
type User
{
id: Int!
...
profile: Profile
}
Command-line
dab update User \
--relationship profile \
--target.entity Profile \
--cardinality one \
--relationship.fields "id:user_id"
Példa: Egy-a-többhöz számosság
A egy Category vagy több kapcsolódó Book entitással rendelkezhet, míg mindegyikhez Book tartozhat egy kapcsolódó Categoryentitás.
{
"entities": {
"Book": {
...
},
"Category": {
"relationships": {
"category_books": {
"cardinality": "many",
"target.entity": "Book",
"source.fields": [ "id" ],
"target.fields": [ "category_id" ]
}
}
}
}
}
GraphQL-séma
type Category
{
id: Int!
...
books: [BookConnection]!
}
Parancssor
dab update Category \
--relationship category_books \
--target.entity Book \
--cardinality many \
--relationship.fields "id:category_id"
Példa: Több az egyhez számosság
Sok Book entitás rendelkezhet egy kapcsolódóval Category, míg egy Category vagy több kapcsolódó Book bejegyzéssel.
{
"entities": {
"Book": {
"relationships": {
"books_category": {
"cardinality": "one",
"target.entity": "Category",
"source.fields": [ "category_id" ],
"target.fields": [ "id" ]
}
},
"Category": {
...
}
}
}
}
GraphQL-séma
type Book
{
id: Int!
...
category: Category
}
Parancssor
dab update Book \
--relationship books_category \
--target.entity "Category" \
--cardinality one \
--relationship.fields "category_id:id"
Példa: Több-a-többhöz számosság
Sok Book entitás számos kapcsolódó entitással Author rendelkezhet, míg számos Author entitáshoz számos kapcsolódó Book bejegyzés tartozhat.
Note
Ez a kapcsolat egy harmadik táblával lehetséges, dbo.books_authorsamelyre hivatkozunk csatolási objektumként.
{
"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-séma
type Book
{
id: Int!
...
authors: [AuthorConnection]!
}
type Author
{
id: Int!
...
books: [BookConnection]!
}
Parancssor
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"
Állapot (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
health |
objektum | ❌ Nem | None |
Engedélyezi és konfigurálja az entitás állapot-ellenőrzését.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.health |
enabled |
boolean | ❌ Nem | true |
entities.{entity-name}.health |
first |
egész szám | ❌ Nem | 100 |
entities.{entity-name}.health |
threshold-ms |
egész szám | ❌ Nem | 1000 |
Example
{
"entities": {
"Book": {
"health": {
"enabled": true,
"first": 3,
"threshold-ms": 500
}
}
}
}
Note
Az first értéknek kisebbnek vagy egyenlőnek kell lennie a runtime.pagination.max-page-size beállításnál. A kisebb értékek segítenek az állapot-ellenőrzések gyorsabb elvégzésében.
Important
A tárolt eljárások automatikusan ki vannak zárva az entitásállapot-ellenőrzésekből, mert paramétereket igényelnek, és nem feltétlenül determinisztikusak.
MCP (entitásnév entitások)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name} |
mcp |
objektum | ❌ Nem | alapértelmezés szerint engedélyezve, ha nincs megadva |
Szabályozza az mcp-részvételt az entitás számára. Ha az MCP globálisan engedélyezve van, az entitások alapértelmezés szerint részt vesznek a programban. Ezzel a tulajdonságbal letilthatja vagy engedélyezheti az egyéni MCP-eszközöket a tárolt eljárás entitásai számára.
Note
Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.
Objektumformátum
Az objektumformátum használata részletes vezérléshez:
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
entities.{entity-name}.mcp |
dml-tools |
boolean | ❌ Nem | true |
entities.{entity-name}.mcp |
custom-tool |
boolean | ❌ Nem | false |
{
"entities": {
"Book": {
"mcp": {
"dml-tools": true
}
}
}
}
Egyéni eszköz (csak tárolt eljárások)
Tárolt eljárás entitások esetében állítsa be custom-tool az eljárást nevesített MCP-eszközként való regisztrálásra true :
{
"entities": {
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id"
},
"mcp": {
"custom-tool": true
},
"permissions": [
{
"role": "anonymous",
"actions": ["execute"]
}
]
}
}
}
Important
A custom-tool tulajdonság csak tárolt eljárás entitásokra érvényes. Ha egy táblára vagy egy entitásra állítja be, konfigurációs hiba történik.
CLI-példák
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