Azure / data-api-builder

Data API builder provides modern REST and GraphQL endpoints to your Azure Databases and on-prem stores.
https://aka.ms/dab/docs
MIT License
930 stars 193 forks source link

DAB Feature Availability Matrix for Azure Databases #1920

Closed seantleonard closed 6 months ago

seantleonard commented 11 months ago

Add documentation listing out which DAB features are available for each supported Database type.

JerryNixon commented 11 months ago

Database version

Database Minimum Supported Version
SQL Server v2016
Azure SQL n/a
CosmosDB for NoSQL n/a
PostgreSQL v11
MySQL v8

GraphQL

Feature SQL Server Azure SQL CosmosDB for NoSQL PostgreSQL MySQL DWSQL
Pagination Yes Yes Yes Yes Yes -
Filtering Yes Yes Yes Yes Yes -
Sorting Yes Yes - Yes Yes Yes
Selection Yes Yes Yes Yes Yes -
Schema Gen Yes Yes - Yes Yes -
Schema Attribute Placement (@model, @authorize) Yes Yes - Yes Yes -
User Provided Schema - - Yes - - -
Subscription - - - - - -
Banana Cake Pop UI * Yes Yes Yes Yes Yes -
In-Memory Cache ** Yes Yes - Yes Yes -

GraphQL Relationship Navigation

Feature SQL Server Azure SQL CosmosDB for NoSQL PostgreSQL MySQL DWSQL
One-To-Many / Query Yes Yes - Yes Yes -
One-To-Many / Mutation v0.11 v0.11 - - - -
Many-To-Many / Query Yes Yes - Yes Yes -
Many-To-Many / Mutation v0.11 v0.11 - - - -
Cross-Source Relationships - - - - - -
Cross-Source Joins - - - - - -

REST

Feature SQL Server Azure SQL CosmosDB for NoSQL* PostgreSQL MySQL DWSQL
PUT Yes Yes - Yes Yes -
POST Yes Yes - Yes Yes -
PATCH Yes Yes - Yes Yes -
DELETE Yes Yes - Yes Yes -
GET Yes Yes - Yes Yes Yes
Pagination Yes Yes - Yes Yes -
$Filter Yes Yes - Yes Yes -
$Count - - - - - -
$OrderBy Yes Yes - Yes - -
$First Yes Yes - Yes - -
$After Yes Yes - Yes - -
$Select Yes - - Yes Yes -
OpenAPI Document Yes Yes - Yes Yes -
Swagger UI * Yes Yes - Yes Yes -
In-Memory Cache ** Yes Yes Yes Yes Yes -
Not/Strict Payload Yes Yes - Yes Yes -
OpenAPIReference - - - - - -
  • Data API builder does not generate a REST API for CosmosDB for NoSQL as CosmosDB for NoSQL provides a native REST API. More information can be found here: Azure Cosmos DB: REST API Reference.

Supported Database Objects

Feature SQL Server Azure SQL CosmosDB for NoSQL PostgreSQL MySQL DWSQL
Stored Procedures Yes Yes - - - -
Tables Yes Yes - Yes Yes Yes
Views Yes Yes - Yes - -
Functions - - - - - -
Collections - - Yes - - -

Entity Security

Feature SQL Server Azure SQL CosmosDB for NoSQL PostgreSQL MySQL DWSQL
[C]reate Yes Yes Yes Yes Yes -
[R]ead Yes Yes Yes Yes Yes -
[U]pdate Yes Yes Yes Yes Yes -
[D]elete Yes Yes Yes Yes Yes -

Database Policy

Feature SQL Server Azure SQL CosmosDB for NoSQL PostgreSQL MySQL DWSQL
Create Yes Yes - - - -
Read Yes Yes - Yes Yes -
Update Yes Yes - Yes Yes -
Delete Yes Yes - Yes Yes -
Single-Table Policies Yes Yes - - - -
Multi-Table Policies - - - - - -
Request Policy - - - - - -
Create via PUT Yes Yes - - - -
Create via PATCH Yes Yes - - - -
Update via PUT Yes Yes - - - -
Update via PATCH Yes Yes - - - -

Other Features

Feature SQL Server Azure SQL CosmosDB for NoSQL PostgreSQL MySQL DWSQL
User Assigned Managed Identity (Entra ID/ Azure AD) - - - - - -
System Assigned Managed Identity (Entra ID/ Azure AD) Yes Yes Yes Yes Yes -
Column/Property Mapping/Rename Yes Yes - Yes Yes -
Native JSON Support Yes Yes Yes - - -
Native XML Support - - - - - -
application_name Yes Yes Yes Yes - -
Application Insights * Yes Yes Yes Yes Yes Yes
Session Context Yes Yes - - - -
Multiple Data Sources * Yes Yes Yes Yes Yes -

Static Web Apps

seantleonard commented 11 months ago

CosmosDB column need to be either no or - for REST and Caching.

Also GraphQL mutations for relationships is not yet supported for any database. That's in development.

abhishekkumams commented 11 months ago

Application Insights is independent of Database used, So its available for all.

sajeetharan commented 11 months ago

Cosmos DB Column should be renamed as Cosmos DB (NOSQL API) - somewhere need to indicate it is for NOSQL API only..

seantleonard commented 11 months ago

I updated the REST section to show - for Cosmos with an annotation describing why.

Also updated cosmos header per Sajee's suggestion to CosmosDB for NoSQL

APortolesScope commented 11 months ago

Does the new DB type DWSQL must appear here? https://github.com/Azure/data-api-builder/pull/1873

seantleonard commented 10 months ago

Column/Property Mapping/Rename under Other Features needs to be more granular: not supported with stored procedures.

Updates I already made:

seantleonard commented 6 months ago

Updated for 1.1.7:

seesharprun commented 6 months ago

This will be published later today. We can edit the article in-place after publishing.

seesharprun commented 6 months ago

https://learn.microsoft.com/azure/data-api-builder/feature-availability

JerryNixon commented 5 months ago

Added to docs here: https://learn.microsoft.com/en-us/azure/data-api-builder/feature-availability