Freigeben über


Autoentities

Konfigurationseinstellungen für die automatische Entitätsgenerierung basierend auf Musterabgleichsregeln. Autoentities ist ein Peer zum entities Abschnitt – wenn autoentities vorhanden, entities ist nicht mehr erforderlich. Das Schema lässt entweder autoentities oder entities (oder beides) zu. Wenn beide vorhanden sind, haben explizit definierte Entitäten Vorrang vor autoentities Übereinstimmungen mit demselben Namen.

Tipp

Dient dab auto-config zum Erstellen und Aktualisieren autoentities von Definitionen aus der CLI und dab auto-config-simulate zum Anzeigen einer Vorschau, welche Objekte übereinstimmen, bevor Änderungen ausgeführt werden.

Muster

Eigentum Beschreibung
patterns.include MSSQL-Muster LIKE für Objekte, die eingeschlossen werden sollen
patterns.exclude MSSQL-Muster LIKE für Objekte, die ausgeschlossen werden sollen
patterns.name Interpolationsmuster für die Entitätsbenennung

Vorlage

Eigentum Beschreibung
template.rest.enabled Aktivieren von REST für übereinstimmene Entitäten
template.graphql.enabled Aktivieren von GraphQL für übereinstimmene Entitäten
template.mcp.dml-tools Aktivieren von MCP-Tools (Model Context Protocol) für die Datenmanipulationssprache (DML) für übereinstimmende Entitäten
template.health.enabled Aktivieren von Integritätsprüfungen für übereinstimmene Entitäten
template.cache.enabled Aktivieren des Zwischenspeicherns von Antworten für übereinstimmene Entitäten
template.cache.ttl-seconds Zwischenspeichern von Zeit-zu-Live-Zeit in Sekunden
template.cache.level Cacheebene: L1 oder L1L2

Erlaubnisse

Eigentum Beschreibung
permissions[].role Rollennamenzeichenfolge
permissions[].actions Eine oder mehrere von: create, , read, update, deleteoder *

Formatübersicht

{
  "autoentities": {
    "<definition-name>": {
      "patterns": {
        "include": [ "<string>" ],    // default: ["%.%"]
        "exclude": [ "<string>" ],    // default: null
        "name": "<string>"            // default: "{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>" } ]
        }
      ]
    }
  }
}

Definitionsname (autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities <definition-name> Objekt ✔️ Ja Nichts

Jeder Schlüssel im autoentities Objekt ist eine benannte Definition. Bei dem Namen wird die Groß-/Kleinschreibung beachtet und dient als logischer Bezeichner. Sie können mehrere Definitionen mit unterschiedlichen Mustern und Berechtigungen definieren.

Format

{
  "autoentities": {
    "<definition-name>": { ... }
  }
}

Beispiel

{
  "autoentities": {
    "public-tables": {
      "patterns": { "include": [ "dbo.%" ] },
      "permissions": [ { "role": "anonymous", "actions": [ { "action": "read" } ] } ]
    },
    "admin-tables": {
      "patterns": { "include": [ "admin.%" ] },
      "permissions": [ { "role": "authenticated", "actions": [ { "action": "*" } ] } ]
    }
  }
}

Muster (Definitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name> patterns Objekt ❌ Nein Nichts

Definiert Regeln zum Einschließen, Ausschließen und Benennen, die bestimmen, welche Datenbankobjekte als Entitäten verfügbar gemacht werden.

Verschachtelte Eigenschaften

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.patterns include Zeichenfolgenarray ❌ Nein ["%.%"]
autoentities.<definition-name>.patterns exclude Zeichenfolgenarray ❌ Nein null
autoentities.<definition-name>.patterns name Schnur ❌ Nein "{object}"
  • include– Mindestens ein MSSQL-Muster LIKE , das angibt, welche Datenbankobjekte einbezogen werden sollen. Wird als Wildcard verwendet % . Das Musterformat lautet schema.object (z dbo.% . B. entspricht allen Objekten im dbo Schema). Wenn null oder ausgelassen, wird standardmäßig auf ["%.%"] (alle Objekte in allen Schemas) festgelegt.

  • exclude– Mindestens ein MSSQL-Muster LIKE , das angibt, welche Datenbankobjekte ausgeschlossen werden sollen. Ausschlussmuster werden nach einschließen von Mustern ausgewertet. Wenn null oder ausgelassen, werden keine Objekte ausgeschlossen.

  • name— Interpolationsmuster, das steuert, wie übereinstimmene Datenbankobjekte als Entitäten benannt werden. Unterstützt {schema} und {object} Platzhalter. Jeder aufgelöste Name muss für alle Entitäten in der Konfiguration eindeutig sein.

Format

{
  "autoentities": {
    "<definition-name>": {
      "patterns": {
        "include": [ "<string>" ],
        "exclude": [ "<string>" ],
        "name": "<string>"
      }
    }
  }
}

Beispiel

{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "exclude": [ "dbo.internal%" ],
        "name": "{schema}_{object}"
      }
    }
  }
}

Bei dieser Konfiguration wird jede Tabelle im dbo Schema (mit Ausnahme dieser Übereinstimmungen dbo.internal%) als Entität verfügbar gemacht. Eine Benannte dbo.Products Tabelle wird zu einer Entität namens dbo_Products.

Name (Musterdefinitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.patterns name Schnur ❌ Nein "{object}"

Steuert, wie übereinstimmene Datenbankobjekte als Entitäten benannt werden. Unterstützt zwei Platzhalter:

Platzhalter Löst auf zu
{schema} Der Schemaname des übereinstimmenen Datenbankobjekts
{object} Der Objektname des übereinstimmenen Datenbankobjekts

Wenn sie weggelassen wird, bedeutet die Standardeinstellung "{object}" , dass der Entitätsname dem Datenbankobjektnamen direkt entspricht.

Format

{
  "autoentities": {
    "<definition-name>": {
      "patterns": {
        "name": "<string>"
      }
    }
  }
}

Beispiele

Schema Datenbankobjekt Name der Entität
"{object}" dbo.Products Products
"{schema}_{object}" dbo.Products dbo_Products
"{schema}.{object}" sales.Orders sales.Orders

REST (Vorlagendefinitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template rest Objekt ❌ Nein Nichts

Verschachtelte Eigenschaften

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template.rest enabled boolean ❌ Nein true

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "rest": { "enabled": <boolean> }
      }
    }
  }
}

Beispiel

{
  "autoentities": {
    "my-def": {
      "template": {
        "rest": { "enabled": false }
      }
    }
  }
}

GraphQL (Vorlagendefinitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template graphql Objekt ❌ Nein Nichts

Verschachtelte Eigenschaften

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template.graphql enabled boolean ❌ Nein true

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "graphql": { "enabled": <boolean> }
      }
    }
  }
}

Beispiel

{
  "autoentities": {
    "my-def": {
      "template": {
        "graphql": { "enabled": true }
      }
    }
  }
}

MCP (Vorlagendefinitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template mcp Objekt ❌ Nein Nichts

Verschachtelte Eigenschaften

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template.mcp dml-tools boolean ❌ Nein true

Aktiviert oder deaktiviert MCP-Datenmanipulationssprache (DML)-Tools für alle übereinstimmende Entitäten.

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "mcp": { "dml-tools": <boolean> }
      }
    }
  }
}

Beispiel

{
  "autoentities": {
    "my-def": {
      "template": {
        "mcp": { "dml-tools": true }
      }
    }
  }
}

Integrität (Vorlagendefinitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template health Objekt ❌ Nein Nichts

Verschachtelte Eigenschaften

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template.health enabled boolean ❌ Nein true

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "health": { "enabled": <boolean> }
      }
    }
  }
}

Beispiel

{
  "autoentities": {
    "my-def": {
      "template": {
        "health": { "enabled": true }
      }
    }
  }
}

Cache (Vorlagendefinitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template cache Objekt ❌ Nein Nichts

Aktiviert und konfiguriert das Zwischenspeichern von Antworten für alle übereinstimmenen Entitäten.

Verschachtelte Eigenschaften

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.template.cache enabled boolean ❌ Nein false
autoentities.<definition-name>.template.cache ttl-seconds Integer ❌ Nein null
autoentities.<definition-name>.template.cache level Enumeration (L1 | L1L2) ❌ Nein "L1L2"

Die level Eigenschaft steuert, welche Cacheebenen verwendet werden:

Wert Beschreibung
L1 Nur Im Arbeitsspeichercache. Am schnellsten, aber nicht für alle Instanzen freigegeben.
L1L2 Cache im Arbeitsspeicher plus verteilter (Redis)-Cache. Freigegeben für skalierte Instanzen. Standard.

Hinweis

Wenn ttl-seconds dieser Wert nicht angegeben wird null , erbt er den globalen Wert von runtime.cache.ttl-seconds.

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "cache": {
          "enabled": <boolean>,
          "ttl-seconds": <integer>,
          "level": "<L1 | L1L2>"
        }
      }
    }
  }
}

Beispiel

{
  "autoentities": {
    "my-def": {
      "template": {
        "cache": {
          "enabled": true,
          "ttl-seconds": 30,
          "level": "L1L2"
        }
      }
    }
  }
}

Berechtigungen (Definitionsname autoentities)

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name> permissions Array ❌ Nein Nichts

Berechtigungen, die auf jede Entität angewendet werden, die mit dieser autoentities Definition übereinstimmt. Jedes Element ist ein Objekt mit einem role und einem actions Array.

Verschachtelte Eigenschaften

Eltern Eigentum Typ Erforderlich Vorgabe
autoentities.<definition-name>.permissions[] role Schnur ✔️ Ja Nichts
autoentities.<definition-name>.permissions[] actions Array oder Zeichenfolge ✔️ Ja Nichts
autoentities.<definition-name>.permissions[].actions[] action Schnur ✔️ Ja Nichts

Unterstützte Aktionswerte: create, read, , update, deleteoder * (Wildcard erweitert sich auf alle vier CRUD-Aktionen).

Format

{
  "autoentities": {
    "<definition-name>": {
      "permissions": [
        {
          "role": "<string>",
          "actions": [ { "action": "<string>" } ]
        }
      ]
    }
  }
}

Beispiel

{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] },
        { "role": "authenticated", "actions": [ { "action": "*" } ] }
      ]
    }
  }
}

Vollständiges Beispiel

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

Bei dieser Konfiguration wird jede Tabelle im dbo Schema (mit Ausnahme dieser Übereinstimmungen dbo.internal%) automatisch als DAB-Entität verfügbar gemacht. Jede Entität wird mit dem {schema}_{object} Muster benannt (z dbo_Products. B. ), verfügt über REST-, GraphQL-, MCP- und Integritätsprüfungen aktiviert, verwendet zwischenspeichern mit einer 30-Sekunden-Zeit-zu-Live-Funktion und gewährt read Zugriff auf die anonymous Rolle.