Nastavení konfigurace pro automatické generování entit na základě pravidel porovnávání vzorů
Autoentities je partnerský vztah k oddílu entities – pokud autoentities je k dispozici, entities už se nevyžaduje. Schéma umožňuje buď autoentities nebo entities (nebo obojí). Pokud existují obě entity, mají explicitně definované entity přednost před autoentities shodami se stejným názvem.
Návod
Slouží dab auto-config k vytváření a aktualizaci autoentities definic z rozhraní příkazového řádku a dab auto-config-simulate k zobrazení náhledu, které objekty se shodují před potvrzením změn.
Patterns
Template
Povolení
{
"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>" } ]
}
]
}
}
}
Název definice (autoentities)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities |
<definition-name> |
objekt |
✔️ Ano |
None |
Každý klíč v objektu autoentities je pojmenovaná definice. V názvu se rozlišují malá a velká písmena a slouží jako logický identifikátor. Můžete definovat více definic s různými vzory a oprávněními.
{
"autoentities": {
"<definition-name>": { ... }
}
}
Příklad
{
"autoentities": {
"public-tables": {
"patterns": { "include": [ "dbo.%" ] },
"permissions": [ { "role": "anonymous", "actions": [ { "action": "read" } ] } ]
},
"admin-tables": {
"patterns": { "include": [ "admin.%" ] },
"permissions": [ { "role": "authenticated", "actions": [ { "action": "*" } ] } ]
}
}
}
Vzory (název autoentitiesdefinice)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name> |
patterns |
objekt |
❌ Ne |
None |
Definuje pravidla zahrnutí, vyloučení a pojmenování, která určují, které databázové objekty jsou vystaveny jako entity.
Vnořené vlastnosti
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.patterns |
include |
Řetězcové pole |
❌ Ne |
["%.%"] |
autoentities.<definition-name>.patterns |
exclude |
Řetězcové pole |
❌ Ne |
null |
autoentities.<definition-name>.patterns |
name |
řetězec |
❌ Ne |
"{schema}_{object}" |
include– Jeden nebo více vzorů MSSQL LIKE určujících, které databázové objekty mají být zahrnuty. Slouží % jako zástupný znak. Formát vzoru je schema.object (například dbo.% odpovídá všem objektům ve schématu dbo ). Když null nebo vynecháte, použije se ["%.%"] výchozí hodnota (všechny objekty ve všech schématech).
exclude– Jeden nebo více vzorů MSSQL LIKE určujících, které databázové objekty se mají vyloučit. Vzorce vyloučení se vyhodnocují po zahrnutí vzorů. Pokud null nebo vynecháte, nejsou vyloučeny žádné objekty.
name– Interpolační vzor, který řídí, jak se odpovídající databázové objekty pojmenují jako entity. Podporuje {schema} a {object} zástupné symboly. Každý přeložený název musí být jedinečný pro všechny entity v konfiguraci.
{
"autoentities": {
"<definition-name>": {
"patterns": {
"include": [ "<string>" ],
"exclude": [ "<string>" ],
"name": "<string>"
}
}
}
}
Příklad
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{object}"
}
}
}
}
Při této konfiguraci se každá tabulka ve schématu dbo (s výjimkou těch odpovídajících dbo.internal%) zobrazí jako entita. Tabulka s názvem dbo.Products se stane entitou s názvem dbo_Products.
Název (název definice autoentitiesvzorů)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.patterns |
name |
řetězec |
❌ Ne |
"{schema}_{object}" |
Určuje, jak se odpovídající databázové objekty pojmenují jako entity. Podporuje dva zástupné symboly:
| Zástupný symbol |
Řeší se na |
{schema} |
Název schématu odpovídajícího databázového objektu |
{object} |
Název objektu odpovídajícího databázového objektu |
Pokud tento parametr vynecháte, kombinuje výchozí "{schema}_{object}" název schématu a objektu s podtržítkem, což pomáhá zachovat jedinečné názvy generovaných entit napříč schématy.
{
"autoentities": {
"<definition-name>": {
"patterns": {
"name": "<string>"
}
}
}
}
Příklady
| Vzor |
Databázový objekt |
Název entity |
"{schema}_{object}" |
dbo.Products |
dbo_Products |
"{object}" |
dbo.Products |
Products |
"{schema}.{object}" |
sales.Orders |
sales.Orders |
REST (název autoentitiesdefinice šablony)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template |
rest |
objekt |
❌ Ne |
None |
Vnořené vlastnosti
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template.rest |
enabled |
Boolean |
❌ Ne |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"rest": { "enabled": <boolean> }
}
}
}
}
Příklad
{
"autoentities": {
"my-def": {
"template": {
"rest": { "enabled": false }
}
}
}
}
GraphQL (název autoentitiesdefinice šablony)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template |
graphql |
objekt |
❌ Ne |
None |
Vnořené vlastnosti
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template.graphql |
enabled |
Boolean |
❌ Ne |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"graphql": { "enabled": <boolean> }
}
}
}
}
Příklad
{
"autoentities": {
"my-def": {
"template": {
"graphql": { "enabled": true }
}
}
}
}
MCP (název autoentitiesdefinice šablony)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template |
mcp |
objekt |
❌ Ne |
None |
Vnořené vlastnosti
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template.mcp |
dml-tools |
Boolean |
❌ Ne |
true |
Povolí nebo zakáže nástroje jazyka DML (Data Manipulací s daty MCP) pro všechny odpovídající entity.
{
"autoentities": {
"<definition-name>": {
"template": {
"mcp": { "dml-tools": <boolean> }
}
}
}
}
Příklad
{
"autoentities": {
"my-def": {
"template": {
"mcp": { "dml-tools": true }
}
}
}
}
Stav (název autoentitiesdefinice šablony)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template |
health |
objekt |
❌ Ne |
None |
Vnořené vlastnosti
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template.health |
enabled |
Boolean |
❌ Ne |
true |
{
"autoentities": {
"<definition-name>": {
"template": {
"health": { "enabled": <boolean> }
}
}
}
}
Příklad
{
"autoentities": {
"my-def": {
"template": {
"health": { "enabled": true }
}
}
}
}
Mezipaměť (název autoentitiesdefinice šablony)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template |
cache |
objekt |
❌ Ne |
None |
Povolí a nakonfiguruje ukládání odpovědí do mezipaměti pro všechny odpovídající entity.
Vnořené vlastnosti
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.template.cache |
enabled |
Boolean |
❌ Ne |
false |
autoentities.<definition-name>.template.cache |
ttl-seconds |
integer |
❌ Ne |
null |
autoentities.<definition-name>.template.cache |
level |
enum (L1 | L1L2) |
❌ Ne |
"L1L2" |
Vlastnosti level řídí, které úrovně mezipaměti se používají:
| Hodnota |
Description |
L1 |
Pouze mezipaměť v paměti. Nejrychlejší, ale nesdílený mezi instancemi. |
L1L2 |
Mezipaměť v paměti plus distribuovaná mezipaměť (Redis). Sdíleno napříč instancemi s horizontálním navýšením kapacity Výchozí. |
Poznámka:
Pokud ttl-seconds je null nebo vynechá, dědí globální hodnotu z runtime.cache.ttl-seconds.
{
"autoentities": {
"<definition-name>": {
"template": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level": "<L1 | L1L2>"
}
}
}
}
}
Příklad
{
"autoentities": {
"my-def": {
"template": {
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level": "L1L2"
}
}
}
}
}
Oprávnění (název autoentitiesdefinice)
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name> |
permissions |
pole |
❌ Ne |
None |
Oprávnění použitá pro každou entitu, která odpovídá této autoentities definici. Každý prvek je objekt s role a polem actions .
Vnořené vlastnosti
| Rodič |
Vlastnictví |
Typ |
Povinné |
Výchozí |
autoentities.<definition-name>.permissions[] |
role |
řetězec |
✔️ Ano |
None |
autoentities.<definition-name>.permissions[] |
actions |
pole nebo řetězec |
✔️ Ano |
None |
autoentities.<definition-name>.permissions[].actions[] |
action |
řetězec |
✔️ Ano |
None |
Podporované hodnoty akcí: create, , readupdate, deletenebo * (zástupný znak se rozbalí na všechny čtyři akce CRUD).
{
"autoentities": {
"<definition-name>": {
"permissions": [
{
"role": "<string>",
"actions": [ { "action": "<string>" } ]
}
]
}
}
}
Příklad
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ]
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] },
{ "role": "authenticated", "actions": [ { "action": "*" } ] }
]
}
}
}
Úplný příklad
{
"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" } ] }
]
}
}
}
Při této konfiguraci se každá tabulka ve schématu dbo (s výjimkou těch odpovídajících dbo.internal%) automaticky zobrazí jako entita DAB. Každá entita má název pomocí {schema}_{object} vzoru (například dbo_Products), má povolené REST, GraphQL, MCP a kontroly stavu, používá ukládání do mezipaměti s 30sekundovým režimem a uděluje read přístup k anonymous roli.
Související obsah