Autoentities

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

Vlastnictví Description
patterns.include Vzory MSSQL LIKE pro objekty, které se mají zahrnout
patterns.exclude Vzory MSSQL LIKE pro objekty, které se mají vyloučit
patterns.name Model interpolace pro pojmenování entit

Template

Vlastnictví Description
template.rest.enabled Povolení REST pro odpovídající entity
template.graphql.enabled Povolení knihovny GraphQL pro odpovídající entity
template.mcp.dml-tools Povolení nástrojů jazyka DML (Model Context Protocol) pro manipulaci s daty (MCP) pro odpovídající entity
template.health.enabled Povolení kontrol stavu pro odpovídající entity
template.cache.enabled Povolení ukládání odpovědí do mezipaměti pro odpovídající entity
template.cache.ttl-seconds Ukládání do mezipaměti v sekundách
template.cache.level Úroveň mezipaměti: L1 nebo L1L2

Povolení

Vlastnictví Description
permissions[].role Řetězec názvu role
permissions[].actions Jeden nebo více z: create, read, update, deletenebo *

Přehled formátu

{
  "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.

Formát

{
  "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.

Formát

{
  "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.

Formát

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

Formát

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

Formát

{
  "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.

Formát

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

Formát

{
  "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.

Formát

{
  "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).

Formát

{
  "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.