Skip to content

Commit 298c1ac

Browse files
yorekAniruddh25VinnieKhannaseantleonard
authored
Update README (#678)
* updated docs * first pass at getting-started done * updated getting started * updated getting started * improved clarity, fixed typos * improved getting started * added graphql samples * documentation work * documentation work * refactored folder structure for getting started sample * updated getting-started folder structure * Apply suggestions from code review Co-authored-by: VinnieKhanna <[email protected]> Co-authored-by: Aniruddh Munde <[email protected]> * fixed typo * Apply suggestions from code review Co-authored-by: Aniruddh Munde <[email protected]> * Apply suggestions from code review Co-authored-by: Aniruddh Munde <[email protected]> * documentation improvements * improved sql script * fixed paths * added initial configuration documentation * added .net 6 pre-req * updated readme * added readme for running in a container * updated readme * updated getting started * corrected scripts * fixed paths * using correct casing * updated docs * docs improvements * Rename REST.md to rest.md * added link to dab-cli * reviewed doc * improved docs, integrated CLI docs * updated rest doc, updated sample script * added diagram * updated diagram * fixed error * clarified work in progress sections * added exercise * first pass at graphql doc * completed graphql * Update docs/authentication.md Co-authored-by: Aniruddh Munde <[email protected]> * updated REST doc * Update docs/configuration-file.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/configuration-file.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/configuration-file.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/running-using-dab-cli.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * updated docs * improved GraphQL docs * Update docs/graphql.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/graphql.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/internals/README.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/running-using-a-container.md Co-authored-by: Aniruddh Munde <[email protected]> * Update samples/getting-started/library-dab-config.json Co-authored-by: Aniruddh Munde <[email protected]> * Update samples/getting-started/run-dab.cmd Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/authorization.md Co-authored-by: Sean Leonard <[email protected]> * Update README.md Co-authored-by: Sean Leonard <[email protected]> * Update README.md Co-authored-by: Sean Leonard <[email protected]> * Update README.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/authentication.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/running-using-dab-cli.md Co-authored-by: Sean Leonard <[email protected]> * added note on default returned max items * removed unneded files * updated script and .gitignore * corrected syntax * improved doc * Update docs/running-using-a-container.md Co-authored-by: Aniruddh Munde <[email protected]> * Update samples/getting-started/azure-sql-db/.gitignore Co-authored-by: Aniruddh Munde <[email protected]> * Update samples/getting-started/run-dab.cmd Co-authored-by: Aniruddh Munde <[email protected]> * updated docs basd on additional review feedbacks * Apply suggestions from code review Co-authored-by: Sean Leonard <[email protected]> * Apply suggestions from code review Co-authored-by: Sean Leonard <[email protected]> * Remove source as a JSON object * Temporarily remove README.md * updated docs * first pass at getting-started done * updated getting started * updated getting started * improved clarity, fixed typos * improved getting started * added graphql samples * documentation work * updated getting-started folder structure * fixed typo * documentation improvements * improved sql script * added initial configuration documentation * added .net 6 pre-req * updated readme * added readme for running in a container * updated readme * updated getting started * corrected scripts * fixed paths * using correct casing * updated docs * docs improvements * Temporarily delete REST.md * Rename REST.md to rest.md * added link to dab-cli * reviewed doc * improved docs, integrated CLI docs * updated rest doc, updated sample script * added diagram * updated diagram * fixed error * clarified work in progress sections * added exercise * first pass at graphql doc * completed graphql * Update docs/authentication.md Co-authored-by: Aniruddh Munde <[email protected]> * updated REST doc * Update docs/configuration-file.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/configuration-file.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/configuration-file.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/running-using-dab-cli.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * updated docs * improved GraphQL docs * added note on default returned max items * removed unneded files * Update docs/graphql.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/graphql.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/rest.md Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/running-using-a-container.md Co-authored-by: Aniruddh Munde <[email protected]> * Update samples/getting-started/run-dab.cmd Co-authored-by: Aniruddh Munde <[email protected]> * Update docs/authorization.md Co-authored-by: Sean Leonard <[email protected]> * Update README.md Co-authored-by: Sean Leonard <[email protected]> * Update README.md Co-authored-by: Sean Leonard <[email protected]> * Update README.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/authentication.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/getting-started/getting-started.md Co-authored-by: Sean Leonard <[email protected]> * Update docs/running-using-dab-cli.md Co-authored-by: Sean Leonard <[email protected]> * updated script and .gitignore * corrected syntax * improved doc * Update docs/running-using-a-container.md Co-authored-by: Aniruddh Munde <[email protected]> * Update samples/getting-started/azure-sql-db/.gitignore Co-authored-by: Aniruddh Munde <[email protected]> * Update samples/getting-started/run-dab.cmd Co-authored-by: Aniruddh Munde <[email protected]> * updated docs basd on additional review feedbacks * Apply suggestions from code review Co-authored-by: Sean Leonard <[email protected]> * Apply suggestions from code review Co-authored-by: Sean Leonard <[email protected]> * Remove source as a JSON object * Temporarily delete rest.md * Revert "Temporarily delete rest.md" This reverts commit 2b0988cff5c72f14c3d9824ab36a7cc163195ead. * Temporarily delete rest.md * Revert "Temporarily delete rest.md" This reverts commit 5dd6925. * PATCH also follows Upsert semantics Co-authored-by: Aniruddh Munde <[email protected]> Co-authored-by: VinnieKhanna <[email protected]> Co-authored-by: Sean Leonard <[email protected]>
1 parent 5d486f6 commit 298c1ac

30 files changed

+1356
-162
lines changed

README.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,41 @@
22

33
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
44

5-
### Data API builder for Azure Databases provide modern REST and GraphQL endpoints to your Azure Databases.
5+
Latest version of Data API builder is **0.1.5** also known as **M1.5**
6+
7+
## About
8+
9+
**Data API builder for Azure Databases provides modern REST and GraphQL endpoints to your Azure Databases.**
610

711
With Data API builder, database objects can be exposed via REST or GraphQL endpoints so that your data can be accessed using modern techniques by any platform, any language, any device. With an integrated and flexible policy engine, granular security is assured; integrated with Azure SQL DB, SQL Server, PostgreSQL, MySQL, MariaDB and Cosmos DB, gives developer an efficiency boost like it was never seen before.
812

13+
![Data API Builder Architecture Overview Diagram](./docs/media/data-api-builder-overview.png)
14+
15+
## Features
16+
17+
- Allow collections, tables and views to be accessed via REST and GraphQL
18+
- Support authentication via JWT and EasyAuth
19+
- Role-based authorization using received claims
20+
- Item-level security via policy expressions
21+
- REST
22+
- CRUD operations via POST, GET, PUT, PATCH, DELETE
23+
- filtering, sorting and pagination
24+
- GraphQL
25+
- queries and mutations
26+
- filtering, sorting and pagination
27+
- relationship navigation
28+
- Easy development via dedicated CLI
29+
30+
## Limitations
31+
32+
- JWT only supports AAD
33+
- Tables must have a primary key. The primary key must be built on a single column.
34+
- MySQL, MariaDB and PostgreSQL are not yet fully supported.
35+
36+
## Known Issues
37+
38+
List of known issues and possible workarounds, where applicable and possible, is available here: [Known Issues](./docs/known-issues.md).
39+
940
## Getting Started
1041

1142
To get started quickly with Data API builder for Azure Databases, you can use the [Getting Started](./docs/getting-started/getting-started.md) tutorial, that will help to get familiar with some basic tools and concepts while giving you a good experience on how much Data API builder for Azure Databases can make you more efficient, but removing the need to write a lot of plumbing code.

docs/REST.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/authentication.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Authentication
2+
3+
Data API builder allows developers to define the authentication mechanisms they want to use to authenticate incoming requests.
4+
5+
Authentication is not performed by Data API builder, but is delegated to one of the supported authentication providers. The supported authentication providers are:
6+
7+
- EasyAuth
8+
- JWT
9+
10+
## EasyAuth
11+
12+
When using this provider, Data API builder will expect to EasyAuth to have authenticated the request, and to have authentication data available in the `X-MS-CLIENT-PRINCIPAL` HTTP header, as described here for App Service: [Work with user identities in Azure App Service authentication](https://docs.microsoft.com/en-us/azure/app-service/configure-authentication-user-identities) and here for Static Web Apps: [Accessing User Information](https://docs.microsoft.com/azure/static-web-apps/user-information?tabs=csharp).
13+
14+
To use this provider you need to specify the following configuration in the `runtime.host` section of the configuration file:
15+
16+
```json
17+
"authentication": {
18+
"provider": "StaticWebApps"
19+
}
20+
```
21+
22+
Using the EasyAuth provider is useful when you plan to run Data API builder in Azure, hosting it using an App Service and running it in a continer: [Run a custom container in Azure](https://docs.microsoft.com/en-us/azure/app-service/quickstart-custom-container?tabs=dotnet&pivots=container-linux-vscode).
23+
24+
## JWT
25+
26+
To use the JWT provider, you need to configure the `runtime.host.authentication` section by providing the needed information to verify the received JWT token:
27+
28+
```json
29+
"authentication": {
30+
"provider": "AzureAD",
31+
"jwt": {
32+
"audience": "<APP_ID>",
33+
"issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
34+
}
35+
}
36+
```
37+
38+
## Roles Selection
39+
40+
Once a request has been authenticated via any of the available mechanisms, the roles defined in the claims will be used to help determine how permission rules will be applied to [authorize](./authorization.md) the request.
41+
42+
## Anonymous Requests
43+
44+
Requests can also be made without being authenticated. In such case the request will be automatically assigned to the `anonymous` system role so that it can be properly [authorized](./authorization.md).
45+

docs/authorization.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Authorization
2+
3+
Data API builder uses a role-based authorization workflow.
4+
5+
## Roles
6+
7+
Roles, with the exception of the system roles described below, are not pre-defined and are inferred from the claims found in the incoming request.
8+
9+
### System Roles
10+
11+
There are two system roles:
12+
13+
- `anonymous`: all non-authenticated requests will be assigned to this role
14+
- `authenticated`: all authenticated requests will be assigned to this role
15+
16+
### User Roles
17+
18+
19+
##

0 commit comments

Comments
 (0)