Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
af10913
updated docs
yorek Jul 28, 2022
5c4773a
first pass at getting-started done
yorek Jul 28, 2022
eebdcc1
updated getting started
yorek Jul 29, 2022
af82614
updated getting started
yorek Jul 29, 2022
1923519
improved clarity, fixed typos
yorek Jul 29, 2022
d39a744
improved getting started
yorek Jul 29, 2022
5339a47
added graphql samples
yorek Jul 29, 2022
67542eb
documentation work
yorek Aug 1, 2022
81a56fa
documentation work
yorek Aug 1, 2022
489eb43
refactored folder structure for getting started sample
yorek Aug 1, 2022
2e49929
updated getting-started folder structure
yorek Aug 1, 2022
4701a14
Merge branch 'main' into dev/damauri
Aniruddh25 Aug 3, 2022
7f8cd14
Apply suggestions from code review
yorek Aug 4, 2022
cba2854
fixed typo
yorek Aug 4, 2022
9363075
Apply suggestions from code review
yorek Aug 4, 2022
d9fb45c
Apply suggestions from code review
yorek Aug 4, 2022
0184dc7
documentation improvements
yorek Aug 4, 2022
32b96e2
improved sql script
yorek Aug 5, 2022
08f15b0
fixed paths
yorek Aug 5, 2022
8cfc2b5
Merge branch 'main' into dev/damauri
yorek Aug 5, 2022
3bc2e03
added initial configuration documentation
yorek Aug 5, 2022
55db12f
Merge branch 'main' into dev/damauri
yorek Aug 8, 2022
97b2b98
added .net 6 pre-req
yorek Aug 8, 2022
7c35c98
updated readme
yorek Aug 12, 2022
92a074a
Merge branch 'main' into dev/damauri
yorek Aug 12, 2022
beac01e
added readme for running in a container
yorek Aug 12, 2022
1ee6ff9
updated readme
yorek Aug 12, 2022
7232a53
updated getting started
yorek Aug 12, 2022
107e931
corrected scripts
yorek Aug 12, 2022
21947b0
fixed paths
yorek Aug 12, 2022
61f0900
using correct casing
yorek Aug 12, 2022
1d782b9
updated docs
yorek Aug 12, 2022
632ad6b
docs improvements
yorek Aug 12, 2022
f1adf05
Rename REST.md to rest.md
yorek Aug 12, 2022
91d8ca8
Merge branch 'release/M1.5' into dev/damauri
yorek Aug 15, 2022
e6dd52b
added link to dab-cli
yorek Aug 15, 2022
65c7c21
reviewed doc
yorek Aug 15, 2022
610ce09
improved docs, integrated CLI docs
yorek Aug 15, 2022
47b41ee
updated rest doc, updated sample script
yorek Aug 16, 2022
9806755
added diagram
yorek Aug 16, 2022
d31438a
updated diagram
yorek Aug 16, 2022
fbb3470
fixed error
yorek Aug 16, 2022
7d2c241
clarified work in progress sections
yorek Aug 16, 2022
4bb5c7b
added exercise
yorek Aug 16, 2022
e037ee9
first pass at graphql doc
yorek Aug 16, 2022
9799be5
completed graphql
yorek Aug 16, 2022
a113314
Update docs/authentication.md
yorek Aug 16, 2022
8bfba71
updated REST doc
yorek Aug 16, 2022
dbc0c25
Update docs/configuration-file.md
yorek Aug 16, 2022
540d070
Update docs/configuration-file.md
yorek Aug 16, 2022
08a31dc
Update docs/configuration-file.md
yorek Aug 16, 2022
b933ab6
Update docs/getting-started/getting-started.md
yorek Aug 16, 2022
193cf91
Update docs/running-using-dab-cli.md
yorek Aug 16, 2022
aa8e7ff
Update docs/getting-started/getting-started.md
yorek Aug 16, 2022
af43025
Update docs/getting-started/getting-started.md
yorek Aug 16, 2022
d952d26
updated docs
yorek Aug 16, 2022
f664b23
improved GraphQL docs
yorek Aug 17, 2022
ec6325c
Update docs/graphql.md
yorek Aug 17, 2022
b154348
Update docs/graphql.md
yorek Aug 17, 2022
4ac6b2d
Update docs/getting-started/getting-started.md
yorek Aug 17, 2022
cceff34
Update docs/internals/README.md
yorek Aug 17, 2022
51e539a
Update docs/rest.md
yorek Aug 17, 2022
a48a6c0
Update docs/rest.md
yorek Aug 17, 2022
aab88cf
Update docs/rest.md
yorek Aug 17, 2022
97773d1
Update docs/rest.md
yorek Aug 17, 2022
dfe36dc
Update docs/rest.md
yorek Aug 17, 2022
34ba508
Update docs/running-using-a-container.md
yorek Aug 17, 2022
6ed0f73
Update samples/getting-started/library-dab-config.json
yorek Aug 17, 2022
a7af294
Update samples/getting-started/run-dab.cmd
yorek Aug 17, 2022
7d30ef0
Update docs/authorization.md
yorek Aug 17, 2022
eefa6b2
Update README.md
yorek Aug 17, 2022
8c4ff98
Update README.md
yorek Aug 17, 2022
b8287d8
Update README.md
yorek Aug 17, 2022
8181260
Update docs/authentication.md
yorek Aug 17, 2022
5ad08e7
Update docs/getting-started/getting-started.md
yorek Aug 17, 2022
fd80e71
Update docs/getting-started/getting-started.md
yorek Aug 17, 2022
8c6e1be
Update docs/running-using-dab-cli.md
yorek Aug 17, 2022
75a95ac
added note on default returned max items
yorek Aug 17, 2022
5d99de5
removed unneded files
yorek Aug 17, 2022
899b0f8
Merge branch 'dev/damauri' of https://github.com/Azure/hawaii-engine …
yorek Aug 17, 2022
e66bd95
updated script and .gitignore
yorek Aug 17, 2022
bf8e70b
corrected syntax
yorek Aug 17, 2022
e2a2889
improved doc
yorek Aug 17, 2022
b4ef505
Update docs/running-using-a-container.md
yorek Aug 17, 2022
2e90946
Update samples/getting-started/azure-sql-db/.gitignore
yorek Aug 17, 2022
d7e34a6
Update samples/getting-started/run-dab.cmd
yorek Aug 17, 2022
fea1aff
updated docs basd on additional review feedbacks
yorek Aug 17, 2022
8f9bf18
Apply suggestions from code review
Aniruddh25 Aug 17, 2022
7034d7a
Apply suggestions from code review
Aniruddh25 Aug 17, 2022
ca1ee3b
Remove source as a JSON object
Aniruddh25 Aug 17, 2022
530c19a
Temporarily remove README.md
Aniruddh25 Aug 17, 2022
4467f63
updated docs
yorek Jul 28, 2022
ddd5cd0
first pass at getting-started done
yorek Jul 28, 2022
5761fe4
updated getting started
yorek Jul 29, 2022
a00f52d
updated getting started
yorek Jul 29, 2022
3efcffe
improved clarity, fixed typos
yorek Jul 29, 2022
a567504
improved getting started
yorek Jul 29, 2022
f2e7284
added graphql samples
yorek Jul 29, 2022
8a6fd2e
documentation work
yorek Aug 1, 2022
bd89585
updated getting-started folder structure
yorek Aug 1, 2022
73269b3
fixed typo
yorek Aug 4, 2022
1915a39
documentation improvements
yorek Aug 4, 2022
105be78
improved sql script
yorek Aug 5, 2022
311a7a6
added initial configuration documentation
yorek Aug 5, 2022
47bf4a8
added .net 6 pre-req
yorek Aug 8, 2022
fccf128
updated readme
yorek Aug 12, 2022
fd59c51
added readme for running in a container
yorek Aug 12, 2022
3b2fb04
updated readme
yorek Aug 12, 2022
92f7620
updated getting started
yorek Aug 12, 2022
e60f712
corrected scripts
yorek Aug 12, 2022
de018f8
fixed paths
yorek Aug 12, 2022
f3b748d
using correct casing
yorek Aug 12, 2022
49b5791
updated docs
yorek Aug 12, 2022
da67db4
docs improvements
yorek Aug 12, 2022
aea47c7
Temporarily delete REST.md
Aniruddh25 Aug 17, 2022
120fe85
Rename REST.md to rest.md
yorek Aug 12, 2022
8672ac8
added link to dab-cli
yorek Aug 15, 2022
2be9784
reviewed doc
yorek Aug 15, 2022
56cae01
improved docs, integrated CLI docs
yorek Aug 15, 2022
d3818da
updated rest doc, updated sample script
yorek Aug 16, 2022
f368c06
added diagram
yorek Aug 16, 2022
7a2266a
updated diagram
yorek Aug 16, 2022
e71df51
fixed error
yorek Aug 16, 2022
c6b76bc
clarified work in progress sections
yorek Aug 16, 2022
41fdbec
added exercise
yorek Aug 16, 2022
801e619
first pass at graphql doc
yorek Aug 16, 2022
42a129d
completed graphql
yorek Aug 16, 2022
1cca11f
Update docs/authentication.md
yorek Aug 16, 2022
8ab5a31
updated REST doc
yorek Aug 16, 2022
3bdee99
Update docs/configuration-file.md
yorek Aug 16, 2022
f98d3c0
Update docs/configuration-file.md
yorek Aug 16, 2022
2b7d490
Update docs/configuration-file.md
yorek Aug 16, 2022
23e2aa6
Update docs/getting-started/getting-started.md
yorek Aug 16, 2022
20b0bf3
Update docs/running-using-dab-cli.md
yorek Aug 16, 2022
192c046
Update docs/getting-started/getting-started.md
yorek Aug 16, 2022
eabf883
Update docs/getting-started/getting-started.md
yorek Aug 16, 2022
4dd18e4
updated docs
yorek Aug 16, 2022
a7d982b
improved GraphQL docs
yorek Aug 17, 2022
c87f398
added note on default returned max items
yorek Aug 17, 2022
27fcff5
removed unneded files
yorek Aug 17, 2022
0eb8285
Update docs/graphql.md
yorek Aug 17, 2022
1fd905d
Update docs/graphql.md
yorek Aug 17, 2022
f31c8b0
Update docs/getting-started/getting-started.md
yorek Aug 17, 2022
6ea1e53
Update docs/rest.md
yorek Aug 17, 2022
757616b
Update docs/rest.md
yorek Aug 17, 2022
2754b49
Update docs/rest.md
yorek Aug 17, 2022
2569c52
Update docs/rest.md
yorek Aug 17, 2022
a193f7c
Update docs/rest.md
yorek Aug 17, 2022
3228f94
Update docs/running-using-a-container.md
yorek Aug 17, 2022
725d770
Update samples/getting-started/run-dab.cmd
yorek Aug 17, 2022
0791d82
Update docs/authorization.md
yorek Aug 17, 2022
1533037
Update README.md
yorek Aug 17, 2022
c5da92f
Update README.md
yorek Aug 17, 2022
ddefa30
Update README.md
yorek Aug 17, 2022
5f4e719
Update docs/authentication.md
yorek Aug 17, 2022
4c9981a
Update docs/getting-started/getting-started.md
yorek Aug 17, 2022
a44fe58
Update docs/getting-started/getting-started.md
yorek Aug 17, 2022
7a26a4c
Update docs/running-using-dab-cli.md
yorek Aug 17, 2022
076536b
updated script and .gitignore
yorek Aug 17, 2022
d182cb2
corrected syntax
yorek Aug 17, 2022
628fa04
improved doc
yorek Aug 17, 2022
cf785db
Update docs/running-using-a-container.md
yorek Aug 17, 2022
e7c3071
Update samples/getting-started/azure-sql-db/.gitignore
yorek Aug 17, 2022
2da3895
Update samples/getting-started/run-dab.cmd
yorek Aug 17, 2022
c85a1b2
updated docs basd on additional review feedbacks
yorek Aug 17, 2022
4d1fbaa
Apply suggestions from code review
Aniruddh25 Aug 17, 2022
c8fe0cd
Apply suggestions from code review
Aniruddh25 Aug 17, 2022
6a165a3
Remove source as a JSON object
Aniruddh25 Aug 17, 2022
8760cef
Temporarily delete rest.md
Aniruddh25 Aug 17, 2022
6e0c9d8
Revert "Temporarily delete rest.md"
Aniruddh25 Aug 17, 2022
5dd6925
Temporarily delete rest.md
Aniruddh25 Aug 17, 2022
d6b3110
Revert "Temporarily delete rest.md"
Aniruddh25 Aug 17, 2022
5cc017f
Resolve conflicts from remote
Aniruddh25 Aug 17, 2022
e50efcf
PATCH also follows Upsert semantics
Aniruddh25 Aug 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,41 @@

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

### Data API builder for Azure Databases provide modern REST and GraphQL endpoints to your Azure Databases.
Latest version of Data API builder is **0.1.5** also known as **M1.5**

## About

**Data API builder for Azure Databases provides modern REST and GraphQL endpoints 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 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.

![Data API Builder Architecture Overview Diagram](./docs/media/data-api-builder-overview.png)

## Features

- Allow collections, tables and views to be accessed via REST and GraphQL
- Support authentication via JWT and EasyAuth
- Role-based authorization using received claims
- Item-level security via policy expressions
- REST
- CRUD operations via POST, GET, PUT, PATCH, DELETE
- filtering, sorting and pagination
- GraphQL
- queries and mutations
- filtering, sorting and pagination
- relationship navigation
- Easy development via dedicated CLI

## Limitations

- JWT only supports AAD
- Tables must have a primary key. The primary key must be built on a single column.
- MySQL, MariaDB and PostgreSQL are not yet fully supported.

## Known Issues

List of known issues and possible workarounds, where applicable and possible, is available here: [Known Issues](./docs/known-issues.md).

## Getting Started

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.
Expand Down
3 changes: 0 additions & 3 deletions docs/REST.md

This file was deleted.

45 changes: 45 additions & 0 deletions docs/authentication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Authentication

Data API builder allows developers to define the authentication mechanisms they want to use to authenticate incoming requests.

Authentication is not performed by Data API builder, but is delegated to one of the supported authentication providers. The supported authentication providers are:

- EasyAuth
- JWT

## EasyAuth

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).

To use this provider you need to specify the following configuration in the `runtime.host` section of the configuration file:

```json
"authentication": {
"provider": "StaticWebApps"
}
```

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).

## JWT

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:

```json
"authentication": {
"provider": "AzureAD",
"jwt": {
"audience": "<APP_ID>",
"issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
}
}
```

## Roles Selection

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.

## Anonymous Requests

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).

19 changes: 19 additions & 0 deletions docs/authorization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Authorization

Data API builder uses a role-based authorization workflow.

## Roles

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.

### System Roles

There are two system roles:

- `anonymous`: all non-authenticated requests will be assigned to this role
- `authenticated`: all authenticated requests will be assigned to this role

### User Roles


##
Loading