Koncepty automatické konfigurace

Automatická konfigurace umožňuje definovat vzory, které ve vaší konfiguraci automaticky vyhledá a zpřístupňují databázové objekty. Automatická konfigurace může výrazně zmenšit konfigurační soubor, zejména pokud jsou objekty a oprávnění předvídatelné. Kromě toho znovu vyhodnotit a použít vzory při každém spuštění DAB, takže nové tabulky, autoentities které odpovídají vzoru, se automaticky přidají jako entity bez ručních změn konfigurace.

Pokud se autoentities nachází v konfiguraci, entities sekce již není vyžadována. Schéma vyžaduje buď autoentities nebo entities (nebo obojí).

Návod

dab auto-config Pomocí příkazu vytvořte autoentities definice z rozhraní příkazového řádku a dab auto-config-simulate před potvrzením změn zobrazte náhled odpovídajících objektů. Referenční informace o konfiguraci JSON najdete v tématuAutoentities konfigurace.

Definice

Každá autoentities definice je pojmenovaný blok konfigurace, který kombinuje sadu vzorů se šablonou a oprávněními. Název definice rozlišuje malá a velká písmena, a tím funguje jako logický identifikátor. Můžete mít více definic, z nichž každý cílí na různé sady databázových objektů a oprávnění.

{
  "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": [ "*" ] }
       ]
    }
  }
}

Poznámka:

Autoentities aktuálně podporují pouze zdroje dat MSSQL .

Patterns

Vzory určují, které databázové objekty se zjistí a jak jsou pojmenované jako entity. DAB vyhodnocuje vzory pomocí syntaxe T-SQL LIKE pro schema.object formát každého databázového objektu.

Zahrnout a vyloučit

Pole include určuje, které objekty se mají shodovat. Použijte % jako zástupný znak. Například dbo.% odpovídá všem objektům ve schématu dbo . Výchozí hodnota je %.% (všechny objekty ve všech schématech).

Jelikož je include pole řetězců, můžete kombinovat více vzorů pro cílení na různá schémata, předpony nebo dokonce uvést konkrétní tabulky podle názvu. Při výpisu jednotlivých tabulek vždy uveďte název schématu (například dbo.Products nejen Products).

Zahrnout příklady

Vzor Shody Description
%.% Všechny objekty ve všech schématech Výchozí. Odpovídá všemu.
dbo.% Všechny objekty ve dbo schématu Zástupný znak pro jednotlivé schéma
dbo.Product% dbo.Products, dbo.ProductDetailsatd. Předpona názvu objektu v jednom schématu
%.Product% dbo.Products, sales.ProductOrdersatd. Předpona názvu objektu napříč všemi schématy
dbo.Products dbo.Products pouze Přesná shoda, žádný zástupný znak.
dbo.% sales.% Všechny objekty v dbo a sales Více vzorů se zástupnými znaky zkombinováno.
dbo.Products dbo.Orders dbo.Customers Pouze tyto tři tabulky Explicitní seznam tabulek Vyžaduje se název schématu.
dbo.% sales.Invoices Všechny dbo objekty plus sales.Invoices Kombinace zástupných znaků a explicitní tabulky

Pole exclude odebere objekty z odpovídající sady. Vzory vyloučení se vyhodnocují po vzorech zahrnutí. Vzor vyloučení je užitečný pro udržování interních nebo přípravných tabulek mimo rozhraní API. Podobně jako includeje exclude řetězcové pole a podporuje více vzorů.

Vyloučení příkladů

Vzor Nezahrnuje Description
dbo.internal% dbo.internalLogs, dbo.internalAuditatd. Odeberte objekty s předponou názvu.
%.%_staging dbo.Orders_staging, sales.Items_stagingatd. Odstraňte staging tabulky napříč všemi schématy.
dbo.__migration% dbo.__migrationHistory Atd. Odeberte tabulky sledování migrace.
dbo.sysdiagrams dbo.sysdiagrams pouze Odeberte jeden konkrétní objekt.
%.vw_% dbo.vw_Summary, reports.vw_Dailyatd. Odeberte zobrazení dle konvence pojmenování.
dbo.Logs dbo.AuditTrail Pouze tyto dvě tabulky Vyloučí konkrétní tabulky podle názvu.

Příkazový řádek

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

V rozhraní příkazového řádku je více vzorů oddělených mezerami:

dab auto-config my-def \
  --patterns.include "dbo.Products" "dbo.Orders" "dbo.Customers" \
  --permissions "anonymous:read"
Výsledná konfigurace
{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "exclude": [ "dbo.internal%" ]
      }
    }
  }
}

V tomto příkladu jsou všechny objekty ve schématu dbo zahrnuty kromě objektů, jejichž názvy začínají internal.

Pojmenování entit

Vlastnost name je interpolační vzor, který řídí, jak odpovídající databázové objekty jsou pojmenovány jako entity. Podporuje {schema} a {object} zástupné symboly. Můžete také zahrnout literály spolu se zástupnými symboly. Výchozí hodnota je {schema}_{object}, která kombinuje schéma databáze a název objektu s podtržítkem.

Příklady

Následující příklady předpokládají databázový objekt dbo.Products:

Vzor Výsledný název entity Description
{schema}_{object} dbo_Products Výchozí. Schéma a objekt oddělené podtržítkem
{object} Products Pouze název objektu.
{schema}-{object} dbo-Products Schéma a objekt oddělené spojovníkem
{schema}.{object} dbo.Products Schéma a objekt oddělené tečkou
api_{object} api_Products Předpona literálu s jménem objektu.
{object}_entity Products_entity Název objektu s příponou literálu
tbl_{schema}_{object} tbl_dbo_Products Předpona literálu s oběma zástupnými symboly
{schema}_{object}_v1 dbo_Products_v1 Oba zástupné symboly s příponou doslovné verze.
{object}Resource ProductsResource Název objektu s příponou literálu, bez oddělovače.

Použití {schema} v modelu je zvlášť užitečné, když zahrnete více schémat a potřebujete se vyhnout konfliktům pojmenování.

Příkazový řádek

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --patterns.name "{schema}_{object}"
Výsledná konfigurace
{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "name": "{schema}_{object}"
      }
    }
  }
}

Template

Šablona definuje výchozí konfiguraci použitou pro každou entitu, která odpovídá definici. Nastavení šablony se týká povolených protokolů rozhraní API a chování ukládání do mezipaměti. Jakékoli nastavení, které vynecháte, použije výchozí hodnotu.

Protokoly rozhraní API

U odpovídajících entit můžete nezávisle povolit nebo zakázat REST, GraphQL a Model Context Protocol (MCP).

Příkazový řádek

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.rest.enabled true \
  --template.graphql.enabled true \
  --template.mcp.dml-tools true
Výsledná konfigurace
{
  "autoentities": {
    "my-def": {
      "template": {
        "rest": { "enabled": true },
        "graphql": { "enabled": true },
        "mcp": { "dml-tools": true }
      }
    }
  }
}
Vlastnictví Výchozí Description
rest.enabled true Zveřejnění koncových bodů REST pro odpovídající entity
graphql.enabled true Zveřejnění operací GraphQL pro odpovídající entity
mcp.dml-tools true Zpřístupnit nástroje datového manipulačního jazyka (DML) MCP pro odpovídající entity.

Zdravotní prohlídky

Kontroly stavu jsou ve výchozím nastavení povolené. Pokud je tato možnost povolená, DAB zahrnuje do koncového bodu kontroly stavu odpovídající entity a ověřuje připojení databáze pro každou entitu. Nastavte template.health.enabled na false pro vyloučení odpovídajících entit z kontrol stavu.

Příkazový řádek

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.health.enabled true
Výsledná konfigurace
{
  "autoentities": {
    "my-def": {
      "template": {
        "health": { "enabled": true }
      }
    }
  }
}

Cacheování

Ukládání odpovědí do mezipaměti je možné povolit pro všechny odpovídající entity s konfigurovatelnou úrovní TTL (Time to Live) a mezipamětí.

Příkazový řádek

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.cache.enabled true \
  --template.cache.ttl-seconds 30 \
  --template.cache.level L1L2
Výsledná konfigurace
{
  "autoentities": {
    "my-def": {
      "template": {
        "cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
      }
    }
  }
}
Vlastnictví Výchozí Description
cache.enabled false Povolte ukládání odpovědí do mezipaměti pro odpovídající entity.
cache.ttl-seconds null Doba platnosti mezipaměti v sekundách
cache.level L1L2 Úroveň mezipaměti. Podporované hodnoty: L1, L1L2.

Povolení

Oprávnění definují řízení přístupu na základě role použité pro každou entitu, která odpovídá definici. Každá položka oprávnění určuje roli a akce povolené pro danou roli.

Příkazový řádek

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --permissions "anonymous:read"
Výsledná konfigurace
{
  "autoentities": {
    "my-def": {
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

Mezi podporované akce patří create, , readupdate, deletea * (vše). Můžete přiřadit více rolí s různými sadami akcí.

Příklad úplné konfigurace

Kompletní autoentities definice kombinuje vzory, šablony a oprávnění.

Příkazový řádek

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"

Výsledná konfigurace

{
  "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" } ] }
      ]
    }
  }
}

Tato definice zahrnuje všechny objekty ve schématu dbo s výjimkou objektů začínajících internal, pojmenovávají je pomocí schema_object formátu, povolí rozhraní REST a GraphQL, uloží odpovědi do mezipaměti po dobu 30 sekund a udělí anonymní přístup pro čtení.

Simulace

Než vzory potvrdíte ve své konfiguraci, můžete otestovat výsledky a prohlédnout si, které databázové objekty odpovídají. Simulace se připojí k databázi, přeloží jednotlivé vzory a hlásí odpovídající objekty bez nutnosti zapisovat změny. Výstup simulace zobrazuje shodu jednotlivých definic s názvy entit a jejich odpovídajícími databázovými objekty.

Návod

Použijte dab auto-config-simulate ke spouštění simulací z rozhraní příkazového řádku. Všechny možnosti najdete v referenčních informacích k příkazům .

Příkazový řádek (konzola)

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

Výsledný výstup konzoly

AutoEntities Simulation Results

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

Výsledky simulace můžete také exportovat do souboru CSV pro další analýzu.

Příkazový řádek (soubor)

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

Výsledný výstup 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