Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit der automatischen Konfiguration können Sie Muster definieren, die Datenbankobjekte automatisch in Ihrer Konfiguration suchen und verfügbar machen. Die automatische Konfiguration kann eine Konfigurationsdatei erheblich verkleinern, insbesondere, wenn Objekte und Berechtigungen vorhersagbar sind. Darüber hinaus autoentities werden die Muster bei jedem Start von DAB neu ausgewertet und angewendet, sodass neue Tabellen, die mit dem Muster übereinstimmen, automatisch als Entitäten ohne manuelle Konfigurationsänderungen hinzugefügt werden.
Wenn autoentities in der Konfiguration vorhanden ist, ist der entities Abschnitt nicht mehr erforderlich. Das Schema erfordert entweder autoentities oder entities (oder beides).
Tipp
Verwenden Sie den dab auto-config Befehl zum Erstellen von autoentities Definitionen aus der CLI und dab auto-config-simulate zum Anzeigen der Vorschau übereinstimmender Objekte vor dem Commit von Änderungen. Informationen zur JSON-Konfigurationsreferenz finden Sie unter Autoentities "Konfiguration".
Definitionen
Jede autoentities Definition ist ein benannter Konfigurationsblock, der eine Reihe von Mustern mit einer Vorlage und Berechtigungen kombiniert. Der Definitionsname ist groß-/kleinbuchstabensensitiv und fungiert als logischer Bezeichner. Sie können über mehrere Definitionen verfügen, die jeweils auf unterschiedliche Gruppen von Datenbankobjekten und Berechtigungen abzielen.
{
"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": false },
"cache": { "enabled": false }
},
"permissions": [
{
"role": "anonymous",
"actions": [ "*" ] }
]
}
}
}
Hinweis
Autoentities unterstützt derzeit nur MSSQL-Datenquellen .
Muster
Muster steuern, welche Datenbankobjekte ermittelt werden und wie sie als Entitäten benannt werden. DAB wertet Muster mithilfe der T-SQL-Syntax LIKE anhand des schema.object Formats der einzelnen Datenbankobjekte aus.
Einschließen und Ausschließen
Das include Array gibt an, welche Objekte übereinstimmen sollen. Verwenden Sie % als Wildcard. Entspricht beispielsweise dbo.% allen Objekten im dbo Schema. Der Standardwert ist %.% (alle Objekte in allen Schemas).
Da include es sich um ein Zeichenfolgenarray handelt, können Sie mehrere Muster kombinieren, um verschiedene Schemas, Präfixe oder sogar bestimmte Tabellen anhand des Namens anzuzeigen. Wenn Sie einzelne Tabellen auflisten, schließen Sie immer den Schemanamen ein (z. B dbo.Products . nicht nur Products).
Beispiele einschließen
| Schema | Treffer | Beschreibung |
|---|---|---|
%.% |
Alle Objekte in allen Schemas | Standard. Gleicht alles ab. |
dbo.% |
Alle Objekte im dbo Schema |
Ein-Schema-Wildcard. |
dbo.Product% |
dbo.Products, dbo.ProductDetails usw. |
Objektnamenpräfix in einem Schema. |
%.Product% |
dbo.Products, sales.ProductOrders usw. |
Objektnamenpräfix für alle Schemas. |
dbo.Products |
Nur dbo.Products |
Exakte Übereinstimmung, keine Wildcard. |
dbo.%
sales.%
|
Alle Objekte in dbo und sales |
Mehrere Wildcardmuster kombiniert. |
dbo.Products
dbo.Orders
dbo.Customers
|
Nur diese drei Tabellen | Explizite Tabellenliste. Schema-Name erforderlich. |
dbo.%
sales.Invoices
|
Alle dbo Objekte plus sales.Invoices |
Kombination aus Wildcard und expliziter Tabelle. |
Das exclude Array entfernt Objekte aus dem übereinstimmenen Satz. Ausschlussmuster werden nach einschließen von Mustern ausgewertet. Das Ausschlussmuster ist nützlich, um interne oder Stagingtabellen aus Ihrer API herauszuhalten. Like include, exclude ist ein String-Array und unterstützt mehrere Muster.
Beispiele ausschließen
| Schema | Ausschließen | Beschreibung |
|---|---|---|
dbo.internal% |
dbo.internalLogs, dbo.internalAudit usw. |
Entfernen sie Objekte mit einem Namenspräfix. |
%.%_staging |
dbo.Orders_staging, sales.Items_staging usw. |
Entfernen Sie Stagingtabellen in allen Schemas. |
dbo.__migration% |
dbo.__migrationHistory, usw. |
Entfernen Sie Migrationsnachverfolgungstabellen. |
dbo.sysdiagrams |
Nur dbo.sysdiagrams |
Entfernen sie ein einzelnes bestimmtes Objekt. |
%.vw_% |
dbo.vw_Summary, reports.vw_Daily usw. |
Entfernen Sie Ansichten nach Benennungskonvention. |
dbo.Logs
dbo.AuditTrail
|
Nur diese beiden Tabellen | Schließen Sie bestimmte Tabellen anhand des Namens aus. |
Befehlszeile
dab auto-config my-def \
--patterns.include "dbo.%" \
--patterns.exclude "dbo.internal%"
Mehrere Muster sind in der CLI durch Leerzeichen getrennt:
dab auto-config my-def \
--patterns.include "dbo.Products" "dbo.Orders" "dbo.Customers" \
--permissions "anonymous:read"
Resultierende Konfiguration
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ]
}
}
}
}
In diesem Beispiel sind alle Objekte im dbo Schema enthalten, mit Ausnahme derjenigen, deren Namen mit internal beginnen.
Entitätsbenennung
Die name Eigenschaft ist ein Interpolationsmuster, das steuert, wie übereinstimmene Datenbankobjekte als Entitäten benannt werden. Sie unterstützt {schema} und {object} Platzhalter. Sie können auch Literalzeichenfolgen zusammen mit Platzhaltern einschließen. Standardmäßig wird {object}der Datenbankobjektname direkt verwendet.
Beispiele
In den folgenden Beispielen wird angenommen, dass ein Datenbankobjekt dbo.Products:
| Schema | Resultierender Entitätsname | Beschreibung |
|---|---|---|
{object} |
Products |
Standard. Nur Objektname. |
{schema}_{object} |
dbo_Products |
Schema und Objekt getrennt durch Unterstrich. |
{schema}-{object} |
dbo-Products |
Schema und Objekt getrennt durch Bindestrich. |
{schema}.{object} |
dbo.Products |
Schema und Objekt getrennt durch Punkt. |
api_{object} |
api_Products |
Literalpräfix mit Objektnamen. |
{object}_entity |
Products_entity |
Objektname mit Literalsuffix. |
tbl_{schema}_{object} |
tbl_dbo_Products |
Literalpräfix mit beiden Platzhaltern. |
{schema}_{object}_v1 |
dbo_Products_v1 |
Beide Platzhalter mit literalen Versionssuffix. |
{object}Resource |
ProductsResource |
Objektname mit Literalsuffix, kein Trennzeichen. |
Die Verwendung {schema} im Muster ist besonders hilfreich, wenn Sie mehrere Schemas einschließen und Namenskonflikte vermeiden müssen.
Befehlszeile
dab auto-config my-def \
--patterns.include "dbo.%" \
--patterns.name "{schema}_{object}"
Resultierende Konfiguration
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"name": "{schema}_{object}"
}
}
}
}
Vorlage
Die Vorlage definiert die Standardkonfiguration, die auf jede Entität angewendet wird, die mit der Definition übereinstimmt. Vorlageneinstellungen decken ab, welche API-Protokolle aktiviert sind und wie sich die Zwischenspeicherung verhält. Jede Einstellung, die Sie weglassen, verwendet den Standardwert.
API-Protokolle
Sie können REST, GraphQL und Model Context Protocol (MCP) unabhängig für übereinstimmene Entitäten aktivieren oder deaktivieren.
Befehlszeile
dab auto-config my-def \
--patterns.include "dbo.%" \
--template.rest.enabled true \
--template.graphql.enabled true \
--template.mcp.dml-tools true
Resultierende Konfiguration
{
"autoentities": {
"my-def": {
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"mcp": { "dml-tools": true }
}
}
}
}
| Eigentum | Vorgabe | Beschreibung |
|---|---|---|
rest.enabled |
true |
Machen Sie REST-Endpunkte für übereinstimmene Entitäten verfügbar. |
graphql.enabled |
true |
Machen Sie GraphQL-Vorgänge für übereinstimmene Entitäten verfügbar. |
mcp.dml-tools |
true |
Machen Sie MCP-Tools für die Datenmanipulationssprache (DML) für übereinstimmende Entitäten verfügbar. |
Gesundheitschecks
Wenn diese Option aktiviert ist, enthält DAB übereinstimmende Entitäten in seinem Integritätsprüfungsendpunkt, wobei die Datenbankkonnektivität für jede Entität überprüft wird.
Befehlszeile
dab auto-config my-def \
--patterns.include "dbo.%" \
--template.health.enabled true
Resultierende Konfiguration
{
"autoentities": {
"my-def": {
"template": {
"health": { "enabled": true }
}
}
}
}
Zwischenspeicherung
Das Zwischenspeichern von Antworten kann für alle übereinstimmenden Entitäten mit einer konfigurierbaren TTL -Ebene (Time-to-Live) und Cacheebene aktiviert werden.
Befehlszeile
dab auto-config my-def \
--patterns.include "dbo.%" \
--template.cache.enabled true \
--template.cache.ttl-seconds 30 \
--template.cache.level L1L2
Resultierende Konfiguration
{
"autoentities": {
"my-def": {
"template": {
"cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
}
}
}
}
| Eigentum | Vorgabe | Beschreibung |
|---|---|---|
cache.enabled |
false |
Aktivieren sie das Zwischenspeichern von Antworten für übereinstimmene Entitäten. |
cache.ttl-seconds |
null |
Zwischenspeichern von Zeit-zu-Live-Zeit in Sekunden. |
cache.level |
L1L2 |
Cacheebene. Unterstützte Werte: L1, L1L2. |
Erlaubnisse
Berechtigungen definieren rollenbasierte Zugriffssteuerung, die auf jede Entität angewendet wird, die mit der Definition übereinstimmt. Jeder Berechtigungseintrag gibt eine Rolle und die für diese Rolle zulässigen Aktionen an.
Befehlszeile
dab auto-config my-def \
--patterns.include "dbo.%" \
--permissions "anonymous:read"
Resultierende Konfiguration
{
"autoentities": {
"my-def": {
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}
Zu den unterstützten Aktionen gehören create, read, update, delete und * (alle). Sie können mehrere Rollen mit unterschiedlichen Aktionssätzen zuweisen.
Vollständiges Konfigurationsbeispiel
Eine vollständige autoentities Definition, die Muster, Vorlagen und Berechtigungen kombiniert.
Befehlszeile
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"
Resultierende Konfiguration
{
"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" } ] }
]
}
}
}
Diese Definition enthält alle Objekte im dbo-Schema, mit Ausnahme von Objekten, die mit internal beginnen, benennt sie mit dem schema_object-Format, aktiviert REST und GraphQL, speichert Antworten für 30 Sekunden im Cache und gewährt anonymen Lesezugriff.
Simulation
Bevor Sie Muster autoentities für Ihre Konfiguration übernehmen, können Sie die Ergebnisse simulieren, um eine Vorschau zu erhalten, welche Datenbankobjekte übereinstimmen würden. Die Simulation verbindet sich mit der Datenbank, löst jedes Muster auf und meldet die übereinstimmenden Objekte, ohne Änderungen zu schreiben. Die Simulationsausgabe zeigt die Übereinstimmungen jeder Definition mit Entitätsnamen und den entsprechenden Datenbankobjekten an.
Tipp
Verwenden Sie dab auto-config-simulate, um Simulationen von der Befehlszeilenschnittstelle auszuführen. Alle Optionen finden Sie in der Befehlsreferenz .
Befehlszeile (Konsole)
dab auto-config-simulate \
--config ./dab-config.json
Resultierende Konsolenausgabe
AutoEntities Simulation Results
Filter: my-def
Matches: 3
dbo_Products → dbo.Products
dbo_Inventory → dbo.Inventory
dbo_Pricing → dbo.Pricing
Sie können Auch Simulationsergebnisse zur weiteren Analyse in CSV exportieren.
Befehlszeile (Datei)
dab auto-config-simulate \
--config ./dab-config.json \
--output results.csv
Resultierende CSV-Ausgabe
filter_name,entity_name,database_object
my-def,dbo_Products,dbo.Products
my-def,dbo_Inventory,dbo.Inventory
my-def,dbo_Pricing,dbo.Pricing