Otomatik yapılandırma kavramları

Otomatik yapılandırma, yapılandırmanızdaki veritabanı nesnelerini otomatik olarak bulup kullanıma sunan desenler tanımlamanızı sağlar. Otomatik yapılandırma, özellikle nesneler ve izinler tahmin edilebilir olduğunda yapılandırma dosyasını önemli ölçüde küçültebilir. Ayrıca, autoentities DAB her başlatıldığında desenleri yeniden değerlendirin ve uygulayın; böylece desenle eşleşen yeni tablolar el ile yapılandırma değişiklikleri olmadan otomatik olarak varlık olarak eklenir.

Yapılandırmada mevcut olduğunda autoentities , entities bölüm artık gerekli değildir. Şema, autoentities veya entities (ya da her ikisi) gerektirir.

Tavsiye

CLI'dan dab auto-config tanım oluşturmak autoentities ve dab auto-config-simulate değişiklikleri işlemeden önce eşleşen nesnelerin önizlemesini görüntülemek için komutunu kullanın. JSON yapılandırma başvurusu için bkz Autoentities yapılandırma.

Tanımlar

Her autoentities tanım, bir dizi deseni şablon ve izinlerle birleştiren adlandırılmış bir yapılandırma bloğudur. Tanım adı büyük/küçük harfe duyarlıdır ve mantıksal bir tanımlayıcı işlevi görür. Her biri farklı veritabanı nesneleri ve izin kümelerini hedefleyen birden çok tanımınız olabilir.

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

Uyarı

Autoentities şu anda yalnızca MSSQL veri kaynaklarını destekler.

Desenler

Desenler, hangi veritabanı nesnelerinin bulunup bulunamadıklarını ve varlık olarak nasıl adlandırdıklarını denetler. DAB, T-SQL LIKE söz dizimini kullanarak desenleri her veritabanı nesnesinin biçimine schema.object göre değerlendirir.

Dahil et ve dışla

Dizi, include hangi nesnelerin eşleşeceklerini belirtir. % öğesini joker karakter olarak kullanın. Örneğin, dbo.% şemadaki tüm nesnelerle eşleşir dbo . Varsayılan değerdir %.% (tüm şemalardaki tüm nesneler).

Bir include dize dizisi olduğundan, farklı şemaları, ön ekleri hedeflemek ve hatta belirli tabloları ada göre listelemek için birden çok deseni birleştirebilirsiniz. Tek tek tabloları listelerken her zaman şema adını ekleyin (örneğin, dbo.Products yalnızca Products).

Örnek ekle

Desen Eşleşmeler Açıklama
%.% Tüm şemalardaki tüm nesneler Varsayılan. Her şeye uyuyor.
dbo.% Şemadaki dbo tüm nesneler Şema başına tek joker karakter.
dbo.Product% dbo.Products, dbo.ProductDetailsvb. Bir şemada nesne adı ön eki.
%.Product% dbo.Products, sales.ProductOrdersvb. Tüm şemalarda nesne adı ön eki.
dbo.Products dbo.Products sadece Tam eşleşme, joker karakter kullanılmaz.
dbo.% sales.% dbo içindeki tüm nesneler ve sales Birden çok wildcard deseni bir araya getirilmiştir.
dbo.Products dbo.Orders dbo.Customers Yalnızca bu üç tablo Belirgin tablo listesi. Şema adı gerekli.
dbo.% sales.Invoices Tüm dbo nesneler artı sales.Invoices Joker karakter ve açık tablonun karışımı.

Dizi, exclude eşleşen kümeden nesneleri kaldırır. Dışlama desenleri, ekleme desenleri sonrasında değerlendirilir. Dışlama düzeni, iç tabloları veya hazırlama tablolarını API'nizin dışında tutmak için kullanışlıdır. gibi include, exclude bir dize dizisidir ve birden çok deseni destekler.

Örnekleri hariç tut

Desen Hariç Açıklama
dbo.internal% dbo.internalLogs, dbo.internalAuditvb. Ad ön eki olan nesneleri kaldırın.
%.%_staging dbo.Orders_staging, sales.Items_stagingvb. Tüm şemalardaki staging tablolarını kaldırın.
dbo.__migration% dbo.__migrationHistory ve saire. Geçiş izleme tablolarını kaldırın.
dbo.sysdiagrams dbo.sysdiagrams sadece Tek bir belirli nesneyi kaldırma.
%.vw_% dbo.vw_Summary, reports.vw_Dailyvb. Görünümleri adlandırma kuralına göre silin.
dbo.Logs dbo.AuditTrail Yalnızca bu iki tablo Belirli tabloları ada göre hariç tutun.

Komut satırı

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

CLI'da birden çok desen boşlukla ayrılmıştır:

dab auto-config my-def \
  --patterns.include "dbo.Products" "dbo.Orders" "dbo.Customers" \
  --permissions "anonymous:read"
Sonuçta elde edilen yapılandırma
{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "exclude": [ "dbo.internal%" ]
      }
    }
  }
}

Bu örnekte, adları ile dbobaşlayan nesneler dışında şemadaki internal tüm nesneler eklenir.

Varlık adlandırma

name özelliği, eşleşen veritabanı nesnelerinin varlık olarak nasıl adlandırıldığını denetleen bir ilişkilendirme desenidir. {schema} ve {object} yer tutucularını destekler. Yer tutucuların yanı sıra harfiyen dizeler de ekleyebilirsiniz. Varsayılan değer, veritabanı şemasını ve nesne adını bir alt çizgiyle birleştiren değeridir {schema}_{object}.

Örnekler

Aşağıdaki örneklerde bir veritabanı nesnesi dbo.Productsvarsayılır:

Desen Sonuçta elde edilen varlık adı Açıklama
{schema}_{object} dbo_Products Varsayılan. Şema ve nesne alt çizgiyle ayrılmıştır.
{object} Products Yalnızca nesne adı.
{schema}-{object} dbo-Products Kısa çizgiyle ayrılmış şema ve nesne.
{schema}.{object} dbo.Products Şema ve nesne noktayla ayrılmıştır.
api_{object} api_Products Literal ön eki ile nesne adı.
{object}_entity Products_entity Harfiyen son ekli nesne adı.
tbl_{schema}_{object} tbl_dbo_Products Her iki yer tutucuyla birlikte sözdizimsel ön ek.
{schema}_{object}_v1 dbo_Products_v1 Her iki yer tutucu da literal sürüm ekine sahiptir.
{object}Resource ProductsResource Sabit soneki olan nesne adı, ayırıcı yok.

Desende kullanmak {schema} , özellikle birden çok şema eklediğinizde ve adlandırma çakışmalarını önlemeniz gerektiğinde kullanışlıdır.

Komut satırı

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --patterns.name "{schema}_{object}"
Sonuçta elde edilen yapılandırma
{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "name": "{schema}_{object}"
      }
    }
  }
}

Şablon

Şablon, tanımla eşleşen her varlığa uygulanan varsayılan yapılandırmayı tanımlar. Şablon ayarları hangi API protokollerinin etkinleştirildiğini ve önbelleğe almanın nasıl davrandığını kapsar. Atladığınız tüm ayarlar varsayılan değerini kullanır.

API protokolleri

Eşleşen varlıklar için REST, GraphQL ve Model Bağlam Protokolü'ne (MCP) bağımsız olarak etkinleştirebilir veya devre dışı bırakabilirsiniz.

Komut satırı

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.rest.enabled true \
  --template.graphql.enabled true \
  --template.mcp.dml-tools true
Sonuçta elde edilen yapılandırma
{
  "autoentities": {
    "my-def": {
      "template": {
        "rest": { "enabled": true },
        "graphql": { "enabled": true },
        "mcp": { "dml-tools": true }
      }
    }
  }
}
Mülkiyet Varsayılan Açıklama
rest.enabled true Eşleşen varlıklar için REST uç noktalarını kullanıma sunma.
graphql.enabled true Eşleşen varlıklar için GraphQL işlemlerini kullanıma sunma.
mcp.dml-tools true Eşleşen varlıklar için MCP veri işleme dili (DML) araçlarını kullanıma sunma.

Sağlık kontrolleri

Sağlık kontrolleri varsayılan olarak etkindir. Etkinleştirildiğinde DAB, sistem durumu denetimi uç noktasına eşleşen varlıklar ekler ve her varlık için veritabanı bağlantısını doğrular. template.health.enabled eşleşen varlıkları sistem durumu denetimlerinin dışında tutmak için false olarak ayarlayın.

Komut satırı

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.health.enabled true
Sonuçta elde edilen yapılandırma
{
  "autoentities": {
    "my-def": {
      "template": {
        "health": { "enabled": true }
      }
    }
  }
}

Önbellekleme

Yanıt önbelleğe alma, yapılandırılabilir yaşam süresi (TTL) ve önbellek düzeyine sahip tüm eşleşen varlıklar için etkinleştirilebilir.

Komut satırı

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --template.cache.enabled true \
  --template.cache.ttl-seconds 30 \
  --template.cache.level L1L2
Sonuçta elde edilen yapılandırma
{
  "autoentities": {
    "my-def": {
      "template": {
        "cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
      }
    }
  }
}
Mülkiyet Varsayılan Açıklama
cache.enabled false Eşleşen varlıklar için yanıt önbelleğe almayı etkinleştirin.
cache.ttl-seconds null Yaşam süresini saniyeler içinde önbelleğe alın.
cache.level L1L2 Önbellek düzeyi. Desteklenen değerler: L1, L1L2.

İzinler

İzinler, tanımla eşleşen her varlığa uygulanan rol tabanlı erişim denetimini tanımlar. Her izin girdisi bir rol ve bu rol için izin verilen eylemleri belirtir.

Komut satırı

dab auto-config my-def \
  --patterns.include "dbo.%" \
  --permissions "anonymous:read"
Sonuçta elde edilen yapılandırma
{
  "autoentities": {
    "my-def": {
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

Desteklenen eylemler arasında , create, read, updateve delete (tümü) bulunur*. Farklı eylem kümeleriyle birden çok rol atayabilirsiniz.

Tam yapılandırma örneği

Desenleri, şablonu ve izinleri birleştiren eksiksiz autoentities bir tanım.

Komut satırı

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"

Sonuçta elde edilen yapılandırma

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

Bu tanım, ile dbobaşlayan nesneler dışında şemadaki internal tüm nesneleri içerir, biçimi kullanarak schema_object bunları adlandırır, REST ve GraphQL'i etkinleştirir, yanıtları 30 saniye boyunca önbelleğe alır ve anonim okuma erişimi verir.

Simülasyon

Desenleri yapılandırmanıza işlemeden autoentities önce, hangi veritabanı nesnelerinin eşleşeceğini önizlemek için sonuçların benzetimini yapabilirsiniz. Simülasyon veritabanına bağlanır, her deseni çözümler ve eşleşen nesneleri hiçbir değişiklik yazmadan raporlar. Benzetim çıkışı, her tanımın varlık adlarıyla ve ilgili veritabanı nesneleriyle eşleşmelerini gösterir.

Tavsiye

SIMÜLASYONları CLI'dan çalıştırmak için kullanın dab auto-config-simulate . Tüm seçenekler için komut başvurusuna bakın.

Komut satırı (konsol)

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

Ortaya çıkan konsol çıktısı

AutoEntities Simulation Results

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

Daha fazla analiz için benzetimi sonuçlarını CSV'ye de aktarabilirsiniz.

Komut satırı (dosya)

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

Sonuçta elde edilen CSV çıktısı

filter_name,entity_name,database_object
my-def,dbo_Products,dbo.Products
my-def,dbo_Inventory,dbo.Inventory
my-def,dbo_Pricing,dbo.Pricing