diff --git a/nuget/README.md b/nuget/README.md index 0aebccd2c5..cb2bab37d2 100644 --- a/nuget/README.md +++ b/nuget/README.md @@ -1,18 +1,21 @@ # Data API builder for Azure Databases [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) +[![Documentation](https://img.shields.io/badge/docs-website-%23fc0)](https://learn.microsoft.com/azure/data-api-builder/) + +[What's new?](https://learn.microsoft.com/azure/data-api-builder/whats-new) ## About -**Data API builder for Azure Databases provides modern REST and GraphQL endpoints to your Azure Databases.** +**Data API builder for Azure Databases provides modern REST and GraphQL endpoints and MCP tools to your Azure Databases.** -With data API builder, database objects can be exposed via REST or GraphQL endpoints so that your data can be accessed using modern techniques on any platform, any language, and any device. With an integrated and flexible policy engine, native support for common behavior like pagination, filtering, projection and sorting, the creation of CRUD backend services can be done in minutes instead of hours or days, giving developers an efficiency boost like never seen before. +With data API builder, database objects can be exposed via REST or GraphQL endpoints as well as MCP tools so that your data can be accessed using modern techniques on any platform, any language, and any device. With an integrated and flexible policy engine, native support for common behavior like pagination, filtering, projection and sorting, the creation of CRUD backend services and MCP tools can be done in minutes instead of hours or days, giving developers an efficiency boost like never seen before. -Data API builder is Open Source and works on any platform. It can be executed on-premises, in a container or as a Managed Service in Azure, via the new [Database Connection](https://learn.microsoft.com/azure/static-web-apps/database-overview) feature available in Azure Static Web Apps. +Data API builder is Open Source and works on any platform. It can be executed on-premises, in a container or as a Managed Service in Azure, via the [Database Connection](https://learn.microsoft.com/azure/static-web-apps/database-overview) feature available in Azure Static Web Apps. ## Features -- Allow collections, tables, views and stored procedures to be accessed via REST and GraphQL +- Allow collections, tables, views and stored procedures to be accessed via REST, GraphQL, and MCP - Support authentication via OAuth2/JWT - Support for EasyAuth when running in Azure - Role-based authorization using received claims @@ -24,6 +27,26 @@ Data API builder is Open Source and works on any platform. It can be executed on - Queries and mutations - Filtering, sorting and pagination - Relationship navigation +- MCP (Model Context Protocol) + - Exposes database tables, views, and stored procedures through MCP tools + - Compatible with any MCP-enabled AI client (e.g., GitHub Copilot, Azure AI Foundry) + - DML tools for create, read, update, and delete operations + - Custom tools via stored procedures - Easy development via dedicated CLI - Full integration with Static Web Apps via Database Connection feature when running in Azure - Open Source + +## Getting started + +Use the [Getting Started](https://learn.microsoft.com/azure/data-api-builder/get-started/get-started-with-data-api-builder) tutorial to quickly explore the core tools and concepts. + +#### Other endpoints to explore + +- DAB's Health endpoint: `http://localhost:5000/health` +- DAB's Swagger UI: `http://localhost:5000/api/openapi` + +## Additional resources + +- [Online Documentation](https://learn.microsoft.com/en-us/azure/data-api-builder/overview) +- [Official Samples](https://github.com/Azure-samples/data-api-builder) +- [Known Issues](https://learn.microsoft.com/azure/data-api-builder/known-issues) \ No newline at end of file diff --git a/nuget/nuget_core/README.md b/nuget/nuget_core/README.md new file mode 100644 index 0000000000..9872c693a5 --- /dev/null +++ b/nuget/nuget_core/README.md @@ -0,0 +1,47 @@ +# Data API builder Core Library for Azure Databases + +[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) + +## About + +**Microsoft.DataApiBuilder.Core** is the core engine library for [Data API builder](https://learn.microsoft.com/azure/data-api-builder/) (DAB). It provides the runtime components needed to generate and execute secure REST, GraphQL endpoints and MCP tools backed by Azure SQL and other databases. + +This package is intended for developers who want to embed or extend the Data API builder engine within their own .NET applications or services. + +## Supported Databases + +- Azure SQL / SQL Server +- Azure SQL Data Warehouse +- Azure Cosmos DB (NoSQL) +- PostgreSQL +- MySQL + +## Key Capabilities + +- **REST API engine** � Automatically generates CRUD endpoints (POST, GET, PUT, PATCH, DELETE) with filtering, sorting, and pagination +- **GraphQL engine** � Generates queries and mutations with filtering, sorting, pagination, and relationship navigation +- **MCP tool support** � Exposes DML and custom MCP tools for building SQL MCP Servers +- **Authentication** � OAuth2/JWT and EasyAuth (Azure App Service / Static Web Apps) +- **Authorization** � Role-based access control with item-level security via policy expressions +- **Configuration-driven** � Define entities, permissions, and relationships in a JSON config file; no code required +- **Multi-database** � Connect to multiple database types from a single instance +- **Caching** � Built-in response caching with [FusionCache](https://github.com/ZiggyCreatures/FusionCache) + +## Installation + +```bash +dotnet add package Microsoft.DataApiBuilder.Core +``` + +## Usage + +This library provides the core services and middleware used by the Data API builder runtime. Register the DAB services in your application's dependency injection container and configure them using a [DAB configuration file](https://learn.microsoft.com/azure/data-api-builder/reference-configuration). + +For a complete, ready-to-run experience, consider using the [`Microsoft.DataApiBuilder`](https://www.nuget.org/packages/Microsoft.DataApiBuilder) NuGet package or the [DAB CLI](https://learn.microsoft.com/azure/data-api-builder/how-to-install-cli). + +## Resources + +- [Official Documentation](https://learn.microsoft.com/azure/data-api-builder/) +- [GitHub Repository](https://github.com/Azure/data-api-builder) +- [Samples](https://aka.ms/dab/samples) +- [Known Issues](https://learn.microsoft.com/azure/data-api-builder/known-issues) diff --git a/scripts/create-manifest-file.ps1 b/scripts/create-manifest-file.ps1 index bb32d18cf2..85e1579ba4 100644 --- a/scripts/create-manifest-file.ps1 +++ b/scripts/create-manifest-file.ps1 @@ -40,11 +40,17 @@ foreach ($targetFramework in $dotnetTargetFrameworks) } # Generating hash for nuget -$nugetFileName = "Microsoft.DataApiBuilder.$DabVersion.nupkg" -$nugetFilePath = "$BuildOutputDir/nupkg/$nugetFileName" -$fileHashInfo = Get-FileHash $nugetFilePath -$nuget_file_hash = $fileHashInfo.Hash -$download_url_nuget = "https://github.com/Azure/data-api-builder/releases/download/$versionTag/$nugetFileName" +$nugetCliFileName = "Microsoft.DataApiBuilder.$DabVersion.nupkg" +$nugetCliFilePath = "$BuildOutputDir/nupkg/$nugetCliFileName" +$fileCliHashInfo = Get-FileHash $nugetCliFilePath +$nuget_cli_file_hash = $fileCliHashInfo.Hash +$download_url_nuget_cli = "https://github.com/Azure/data-api-builder/releases/download/$versionTag/$nugetCliFileName" + +$nugetCoreFileName = "Microsoft.DataApiBuilder.Core.$DabVersion.nupkg" +$nugetCoreFilePath = "$BuildOutputDir/nupkg/$nugetCoreFileName" +$fileCoreHashInfo = Get-FileHash $nugetCoreFilePath +$nuget_core_file_hash = $fileCoreHashInfo.Hash +$download_url_nuget_core = "https://github.com/Azure/data-api-builder/releases/download/$versionTag/$nugetCoreFileName" # Creating new block to insert latest version # String substitution requires hashtable to be wrapped in $( $hashtable['key'] ) to avoid parsing issues. @@ -68,8 +74,12 @@ $latestBlock = @' "sha": "$($frameworkPlatformFileHashMetadata["net8.0_osx-x64"])" }, "nuget": { - "url": "${download_url_nuget}", - "sha": "${nuget_file_hash}" + "url": "${download_url_nuget_cli}", + "sha": "${nuget_cli_file_hash}" + }, + "nuget-core": { + "url": "${download_url_nuget_core}", + "sha": "${nuget_core_file_hash}" } } } diff --git a/scripts/notice-generation.ps1 b/scripts/notice-generation.ps1 index bc67f6e72e..d97f0edf8a 100644 --- a/scripts/notice-generation.ps1 +++ b/scripts/notice-generation.ps1 @@ -2,6 +2,7 @@ # Licensed under the MIT License. param ( + [Parameter (Mandatory=$true)][string] $noticeFilePath, [Parameter (Mandatory=$true)][string] $BuildArtifactStagingDir, [Parameter (Mandatory=$true)][string] $BuildSourcesDir ) @@ -17,9 +18,6 @@ Invoke-WebRequest $chiliCreamLicenseMetadataURL -UseBasicParsing | $sqlClientSNILicenseFilePath = "$BuildSourcesDir/external_licenses/Microsoft.Data.SqlClient.SNI.5.2.0.License.txt" $sqlClientSNILicense = Get-Content -Path $sqlClientSNILicenseFilePath -Raw -# Path of notice file generated in CI/CD pipeline. -$noticeFilePath = "$BuildSourcesDir/NOTICE.txt" - # Replace erroneous copyright, using [System.IO.File] for better performance than Get-Content and Set-Content $content = [System.IO.File]::ReadAllText($noticeFilePath).Replace("(c) Microsoft 2023`r`n", "") $content = [System.IO.File]::ReadAllText($noticeFilePath).Replace("(c) Microsoft 2024`r`n", "") diff --git a/src/Cli/Cli.csproj b/src/Cli/Cli.csproj index 2f26b932ef..3cacab6b4b 100644 --- a/src/Cli/Cli.csproj +++ b/src/Cli/Cli.csproj @@ -18,9 +18,9 @@ LICENSE.txt git https://go.microsoft.com/fwlink/?linkid=2224253 - microsoft rest graphql api azure sql mssql mysql pgsql postgresql azure-sql sqlserver nosql cosmosdb dataApiBuilder + microsoft rest graphql mcp api azure sql mssql mysql pgsql postgresql azure-sql sqlserver nosql cosmosdb dataApiBuilder Microsoft.DataApiBuilder - Data API builder for Azure Databases provides modern REST and GraphQL endpoints to your Azure Databases. + Data API builder for Azure Databases provides modern REST, GraphQL endpoints and MCP tools to your Azure Databases. nuget_icon.png README.md true @@ -55,7 +55,7 @@ - + diff --git a/src/Core/Azure.DataApiBuilder.Core.csproj b/src/Core/Azure.DataApiBuilder.Core.csproj index 2359f21a2e..756e45f984 100644 --- a/src/Core/Azure.DataApiBuilder.Core.csproj +++ b/src/Core/Azure.DataApiBuilder.Core.csproj @@ -4,7 +4,21 @@ net8.0 enable enable + ./nupkg + Microsoft.DataApiBuilder.Core + Microsoft.DataApiBuilder.Core + Microsoft + © Microsoft Corporation. All rights reserved. + LICENSE.txt + git + https://go.microsoft.com/fwlink/?linkid=2224253 + microsoft rest graphql mcp api azure sql mssql mysql pgsql postgresql azure-sql sqlserver nosql cosmosdb dataApiBuilder + Microsoft.DataApiBuilder.Core + Data API builder Core library for Azure Databases provides modern REST, GraphQL endpoints and MCP tools to your Azure Databases. + nuget_icon.png + README.md true + true NU1603 @@ -45,4 +59,11 @@ + + + + + + +