Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Sürüm 2.0 genel önizleme aşamasındadır. Bazı özellikler henüz üretim kullanımı için önerilmeyebilir. Özellik kullanılabilirliği ve kararlılığı hakkında ayrıntılı bilgi için belgelere bakın.
Data API builder 2.0 Model Bağlam Protokolü (MCP) ve yapay zeka tümleştirmesi, daha basit kimlik doğrulama varsayılanları ve daha iyi yapılandırma otomasyonuna odaklanır. Bu sürüm ayrıca daha güçlü gözlemlenebilirlik ve daha esnek REST ve OpenAPI davranışı getirir.
Giriş: Otomatik yapılandırma
Otomatik yapılandırma, yapılandırmanızdaki veritabanı nesnelerini otomatik olarak bulup kullanıma sunan desenler tanımlamanıza olanak tanıyan güçlü bir özelliktir. Bu yaklaşım, ö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.
Uyarı
Sürüm 2.0'da, dab auto-config yalnızca bir veya daha fazla Microsoft SQL veritabanındaki tabloları destekler. Başka bir veri kaynağına veya veritabanı türüne ihtiyacınız varsa varlıklarınızı el ile tanımlamaya devam edebilirsiniz.
Why?
ile auto-config, tek bir varlık bloğunu el ile yazmadan veritabanı şemasının tamamını DAB API'sine bağlayabilirsiniz. Desenlerinizi bir kez tanımlayın ve DAB gerisini yapar.
DAB'de şema temelli API'ye geçiş olmadığını belirtmek gerekir autoentities . Şema temelli API'lerle ilgili sorun, şemayı sızdırmaları ve iyi tasarlanmış bir depo yerine API'ye uyum sağlamak için veritabanına yük getirmeleridir.
Autoentities veritabanı şemanızla eşleşen desenler tanımlamanıza ve bu desenlerden varlıkların bir alt kümesini otomatik olarak oluşturmanıza izin vererek bu sorunu çözün. Buna ek olarak, veritabanınız geliştikçe el ile yapılandırma güncelleştirmeleri olmadan benzersiz desenler ve izinlerle birden çok autoentities tanımlayabilir, MCP'ye katılabilir ve daha fazlasını yapabilirsiniz.
Komut satırı
dab auto-config my-def \
--patterns.include "dbo.%" \
--patterns.exclude "dbo.internal%" \
--patterns.name "{schema}_{table}" \
--permissions "anonymous:read"
dab auto-config my-def \
--template.rest.enabled true \
--template.graphql.enabled true \
--template.cache.enabled true \
--template.cache.ttl-seconds 30 \
--template.cache.level L1L2
Sonuçta elde edilen yapılandırma
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{table}"
},
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level": "l1l2"
}
},
"permissions": [
{
"role": "anonymous",
"actions": [ "read" ]
}
]
}
}
}
Yapılandırmanızı test edin
dab auto-config-simulate değişiklikleri işlemeden önce desenlerinizle autoentities eşleşen veritabanı nesnelerinin önizlemesini görüntüler. Veritabanına bağlanır, her deseni çözümler ve eşleşen nesneleri yazdırır. Artık ekleme ve dışlama desenlerinizin canlı yapılandırmaya dokunmadan önce tam olarak beklediğiniz varlıkları ürettiğini doğrulayabilirsiniz.
dab auto-config-simulate
Sonuç çıktı
AutoEntities Simulation Results
Filter: my-def
Matches: 3
dbo_Products → dbo.Products
dbo_Inventory → dbo.Inventory
dbo_Pricing → dbo.Pricing
Belgeleri okuyun
Giriş: Birinin Adına (OBO) kullanıcı yetkilendirme
DAB 2.0, Microsoft Entra Id kullanan Microsoft SQL veritabanları için bazen doğrudan kimlik doğrulaması olarak da adlandırılanBehalf-Of (OBO) kimlik doğrulaması ekler. Etkinleştirildiğinde, DAB gelen kullanıcı belirtecini aşağı akış SQL belirteci ile değiştirir, böylece veritabanı gerçek çağıran kullanıcı olarak kimlik doğrulaması yapar.
Why?
OBO kimlik doğrulaması ile, SQL veritabanının gerçek kullanıcı kimliğini gördüğü ve zorunlu kıldığı API'ler oluşturabilirsiniz. Bu, bazı satır düzeyi güvenlik senaryoları ve uyumluluk denetimi için yararlı olabilir. Bu davranış özellikle kimin harekete geçtiği belirsiz hale gelebileceği MCP senaryolarında değerlidir; OBO, saydam kullanıcı tanımlamasına izin verir.
OBO önkoşulları
- Veritabanı için belirteç istemek için uygun API izinlerine sahip bir Entra Id uygulama kaydı
- DAB tarafından kabul edilen JWT'leri veren bir yukarı akış kimlik sağlayıcısı (Entra Kimliği veya yapılandırdığınız özel bir sağlayıcı)
- Microsoft Entra Id belirteçlerini kabul etmek üzere yapılandırılmış MSSQL veritabanı
Yapılandırma gereksinimleri
- Gerektirir
data-source.database-type: "mssql" - Gerektirir
data-source.user-delegated-auth.database-audience - OBO yapılandırıldığında
runtime.cachedevre dışı bırakılmalıdır. - OBO uygulama kaydının istemci kimliğini içeren bir ortam değişkeni
DAB_OBO_CLIENT_IDgerektirir. - OBO uygulama kaydının kiracı kimliğiyle env var
DAB_OBO_TENANT_IDgerektirir - OBO uygulama kaydının istemci sırrını içeren çevresel değişken
DAB_OBO_CLIENT_SECRETgerektirir.
Komut satırı
set DAB_OBO_CLIENT_ID=1234-abcd-5678-efgh
set DAB_OBO_TENANT_ID=abcd-1234-efgh-567
set DAB_OBO_CLIENT_SECRET=supersecretvalue
dab configure --data-source.database-type mssql
dab configure --runtime.cache.enabled false
dab configure --data-source.user-delegated-auth.enabled true
dab configure --data-source.user-delegated-auth.provider EntraId
dab configure --data-source.user-delegated-auth.database-audience "https://database.windows.net"
Sonuçta elde edilen yapılandırma
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
},
"runtime": {
"cache": {
"enabled": false
}
}
}
Uyarı
OBO etkinleştirildiğinde, DAB kullanıcı başına ayrı SQL bağlantı havuzları tutar, böylece bir kullanıcının erişim belirteci hiçbir zaman başka bir kullanıcının isteği için yeniden kullanılmaz. Artık kimlerin bağlı olduğuna bağlı olarak satır düzeyi güvenlik uygulandığında, bağlantıların kullanıcılar arasında yeniden kullanımının sessizce yanlış erişim sağlamadığından emin olabilirsiniz.
Belgeleri okuyun
- OBO kimlik doğrulamayı yapılandırma
- Kullanıcıya devredilen kimlik doğrulama yapılandırması
- En iyi güvenlik uygulamaları
Giriş: Özel MCP araçları
custom-tool: true Bir saklı yordam varlığında ayarlandığında, DAB bu yordamı standart tools/list ve tools/call yöntemler aracılığıyla kullanıma sunulan adlandırılmış bir MCP aracı olarak dinamik olarak kaydeder.
Why?
Artık yapay zeka ajanlarına, herhangi bir yapıştırma kodu yazmadan mevcut saklı yordamlarınız tarafından desteklenen özel amaçlı araçlar verebilirsiniz. Araç, MCP araç listesinde görünür ve prosedürle aynı parametreleri kabul eder.
Komut satırı
dab add GetBookById \
--source dbo.get_book_by_id \
--source.type "stored-procedure" \
--permissions "anonymous:execute" \
--mcp.custom-tool true
Sonuçta elde edilen yapılandırma
{
"entities": {
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id"
},
"mcp": {
"custom-tool": true
},
"permissions": [
{
"role": "anonymous",
"actions": [ "execute" ]
}
]
}
}
}
Belgeleri okuyun
Tanıtılıyor: yeni Unauthenticated sağlayıcı
DAB 2.0, yeni bir kimlik doğrulama sağlayıcısı olarak tanıtılarak Unauthenticated yeni yapılandırmalar için varsayılan olarak kullanılır. Bu sağlayıcı etkin olduğunda, tüm istekler anonymous olarak çalışır. DAB herhangi bir JSON Web Belirtecini (JWT) incelemez veya doğrulamaz. DAB'nin önündeki başka bir hizmet çağıranın kimliğini doğrulasa bile, DAB izinleri yalnızca olarak anonymousdeğerlendirir.
Why?
Artık DAB'nin anonymousyalnızca kalmasını istediğinizde başlangıç için bir JWT sağlayıcısı yapılandırmanız gerekmez. Çalıştırma dab init , ek kimlik doğrulama seçenekleri olmadan çalışan bir yapılandırma oluşturur.
Komut satırı
dab init --database-type mssql --connection-string "Server=localhost;Database=mydb;"
Sonuçta elde edilen yapılandırma
{
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
}
}
Önemli
Etkin olduğunda Unauthenticated, authenticated ve varlık izinlerinde tanımlanan özel roller hiçbir zaman etkinleştirilmez. Yapılandırmanız bu rolleri içeriyorsa, DAB başlangıçta bir uyarı gösterir.
Belgeleri okuyun
- Kimliği Doğrulanmamış sağlayıcıyı yapılandırma
- Kimlik doğrulama sağlayıcınızı seçin
dab init --auth.provider
Giriş: Rol devralma
DAB 2.0 rol devralma ekler, böylece her rolde aynı izin bloğunu yinelemeniz gerekmez. Devralma zinciri:
named-role → authenticated → anonymous
Bir varlık için authenticated açıkça yapılandırılmamışsa, anonymous öğesinden devralır. Adlandırılmış bir rol yapılandırılmamışsa, authenticated öğesinden devralır veya anonymous de yoksa authenticated öğesinden devralır.
Why?
Rol devralma ile izinleri bir kez anonymous tanımlayabilirsiniz ve daha geniş olan her rol otomatik olarak aynı erişimi alır; yineleme gerekmez.
{
"entities": {
"Book": {
"source": "dbo.books",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
Bu yapılandırmayla, anonymous, authenticated ve herhangi bir yapılandırılmamış adlandırılmış rol Book'yi okuyabilir.
CLI ile etkili izinleri gösterme
Rol devralma işleminin bir sonucu olarak, --show-effective-permissions üzerindeki dab configure yeni bir seçenek, her varlık için çözümlenmiş izinleri görüntüler. Devralma kuralları uygulandıktan sonra bir rolün neler yapabileceğini bilmiyorsanız, yapılandırmayı el ile yönetmek yerine yanıtı almak için bu komutu çalıştırın.
Komut satırı
dab configure --show-effective-permissions
dab configure --show-effective-permissions --config my-config.json
Sonuç çıktı
Entity: Book
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles inherit from: anonymous
Entity: Order
Role: admin | Actions: Create, Read, Update, Delete
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles inherit from: authenticated
Belgeleri okuyun
Giriş: gelişmiş REST yolları
Varlık REST yolları artık eğik çizgi içererek alt dizin stili URL segmentlerine izin verebilir.
Why?
Artık paylaşılan yol ön eki altında ilgili varlıkları gruplandırarak REST API'nizin herhangi bir yönlendirici yapılandırması olmadan daha doğal bir şekilde düzenlenmiş hissetmesini sağlayabilirsiniz. Bu yaklaşım, daha önce benzersiz varlık adları gerektiren /api/shopping-cart/item ve /api/invoice/items gibi aynı ada sahip uç noktaların, kiracı kimliği segmenti ile segmentlere ayrılabileceği çok kiracılı senaryolar için faydalı olabilir.
Komut satırı
dab add ShoppingCartItem \
--source dbo.ShoppingCartItem \
--rest.path "shopping-cart/item"
dab add InvoiceItem \
--source dbo.InvoiceItem \
--rest.path "invoice/item"
Sonuçta elde edilen yapılandırma
{
"entities": {
"ShoppingCartItem": {
"source": "dbo.ShoppingCartItem",
"rest": { "path": "shopping-cart/item" }
},
"InvoiceItem": {
"source": "dbo.InvoiceItem",
"rest": { "path": "invoice/item" }
}
}
}
Ortaya çıkan yollar
https://{server-name}/api/shopping-cart/item
https://{server-name}/api/invoice/item
Belgeleri okuyun
Giriş: izin odaklı OpenAPI
OpenAPI belgesi artık yalnızca izinlere göre erişilebilen HTTP yöntemlerini ve alanlarını gösterir. Role özgü yeni bir yol /openapi/{role} , belirli bir rolün tam olarak neler yapabileceğini görmenizi sağlar.
Why?
İzin kullanan OpenAPI ile belgeniz güvenilir bir sözleşmedir. İstemciler ve API tüketicileri, tam iç yüzeyi değil, yalnızca çağırmalarına izin verilenleri görür.
Kullanılabilir yollar
/openapi
/openapi/anonymous
/openapi/authenticated
/openapi/{custom-role}
Önemli
/openapi/{role} yalnızca üretimde rol numaralandırmasını önlemek için Geliştirme modunda kullanılabilir.
Belgeleri okuyun
dab init içindeki varsayılan OpenTelemetry ayarları
dab init tarafından oluşturulan yeni yapılandırmalar, standart OTEL (OpenTelemetry) ortam değişkenlerine önceden yapılandırılmış varsayılan bir OpenTelemetry bölümü içerir.
Why?
Artık bir kapsayıcıya veya Aspire uygulamasına DAB dağıttığınızda, gözlemlenebilirlik altyapısı zaten kurulmuştur. Yalnızca ortam değişkenlerini ayarlarsınız; el ile yapılandırma düzenlemesi gerekmez.
{
"telemetry": {
"open-telemetry": {
"enabled": true,
"endpoint": "@env('OTEL_EXPORTER_OTLP_ENDPOINT')",
"headers": "@env('OTEL_EXPORTER_OTLP_HEADERS')",
"service-name": "@env('OTEL_SERVICE_NAME')"
}
}
}
Ortam değişkenleri ayarlanmamışsa, DAB normal şekilde başlar ve OpenTelemetry Protocol (OTLP) dışarı aktarma kurulumunu atlar. Çözümlenmemiş @env(...) değerler başlangıçta tolere edilir.
Belgeleri okuyun
Giriş: HTTP yanıt sıkıştırması
DAB 2.0, REST ve GraphQL yanıtları için HTTP yanıt sıkıştırması ekler. Artık tek bir yapılandırma ayarıyla kablo üzerindeki yük boyutlarını küçültebilirsiniz. Bu ayar özellikle büyük sonuç kümeleri veya düşük bant genişliğine sahip ortamlar için kullanışlıdır.
Desteklenen düzeyler: optimal, fastest, none.
Komut satırı
dab configure --runtime.compression.level "optimal"
Sonuçta elde edilen yapılandırma
{
"runtime": {
"compression": {
"level": "optimal"
}
}
}
Belgeleri okuyun
Anahtarsız PUT ve PATCH otomatik oluşturulan anahtarlar için
DAB 2.0, veritabanı tüm atlanmış anahtar sütunlarını otomatik olarak oluştururken URL'de anahtar olmadan PUT ve PATCH isteklerine izin verir. Anahtarsız upsert'lerle, alışkın olduğunuz upsert semantiğini kullanarak sunucu tarafından oluşturulan anahtarla yeni bir satır ekleyebilirsiniz; anahtarı önceden oluşturmanıza veya sağlamanıza gerek kalmaz.
Belgeleri okuyun
MCP yürütmesi için OpenTelemetry izleme
MCP aracı yürütmesi artık REST ve GraphQL trafiğiyle birlikte OpenTelemetry izlemelerine dahil edilir. Artık aynı panoları, aynı izleme kimliklerini ve aynı araçları kullanarak, API isteklerini izlediğiniz gibi yapay zeka aracısı araç çağrılarını izleyebilir ve ilişkilendirebilirsiniz. OpenTelemetry yapılandırıldığında bu otomatik olarak çalışır.
dab init Artık varsayılan bir telemetri bölümü oluşturduğundan, yeni uygulamaların üç uç nokta türü için de kullanıma hazır gözlemlenebilirlik özelliği vardır.