ECC
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
npx ecc-install --profile fullThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
npx ecc-install --profile fullFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
npx n8nAn open-source AI agent that brings the power of Gemini directly into your terminal.
npx @google/gemini-cliSupports Mcp
1460 GitHub stars recorded
Data API builder (DAB) is an open-source, no-code tool that creates secure, full-featured REST and GraphQL endpoints for your database. It’s a CRUD data API engine that runs in a container—on Azure, any other cloud, or on-premises. DAB is built for developers with integrated tooling, telemetry, and other productivity features.
[!IMPORTANT] Data API builder (DAB) is open source and always free.
| Azure SQL | SQL Server | SQLDW | Cosmos DB | PostgreSQL | MySQL | |
|---|---|---|---|---|---|---|
| Supported | Yes | Yes | Yes | Yes | Yes | Yes |
| On-Prem | Azure | AWS | GCP | Other | |
|---|---|---|---|---|---|
| Supported | Yes | Yes | Yes | Yes | Yes |
| REST | GraphQL | MCP | |
|---|---|---|---|
| Supported | Yes | Yes | Coming soon |
Use the Getting Started tutorial to quickly explore the core tools and concepts.
dotnet command line[!NOTE] You may already have .NET installed!
The Data API builder (DAB) command line requires the .NET runtime version 8 or later.
dotnet --version
dab command lineThe Data API builder (DAB) command line is cross-platform and intended for local developer use.
dotnet tool install microsoft.dataapibuilder -g
dab --version
This example uses a single table for simplicity.
CREATE TABLE dbo.Todo
(
Id INT PRIMARY KEY IDENTITY,
Title NVARCHAR(500) NOT NULL,
IsCompleted BIT NOT NULL DEFAULT 0
);
INSERT dbo.Todo (Title, IsCompleted)
VALUES
('Walk the dog', 0),
('Feed the fish', 0),
('Clean the cat', 1);
Data API builder (DAB) supports .env files for testing process-level environment variables.
echo "my-connection-string=$env:database_connection_string" > .env
echo my-connection-string=%database_connection_string% > .env
echo "my-connection-string=$database_connection_string" > .env
The file .env is automatically created through this process. These are the resulting contents:
"my-connection-string=$env:database_connection_string"
[!NOTE] Be sure and replace
database_connection_stringwith your actual database connection string.
[!IMPORTANT] Adding
.envto your.gitignorefile will help ensure your secrets are not added to source control.
Data API builder (DAB) requires a JSON configuration file. Use dab --help for syntax options.
dab init
--database-type mssql
--connection-string "@env('my-connection-string')"
--host-mode development
[!NOTE] Including
--host-mode developmentenables Swagger for REST and Nitro for GraphQL.
The file dab-config.json is automatically created through this process. These are the resulting contents:
{
"$schema": "https://github.com/Azure/data-api-builder/releases/download/v1.5.56/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"connection-string": "@env('my-connection-string')",
"options": {
"set-session-context": false
}
},
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
"graphql": {
"enabled": true,
"path": "/graphql",
"allow-introspection": true
},
"host": {
"cors": {
"origins": [],
"allow-credentials": false
},
"authentication": {
"provider": "AppService"
},
"mode": "development"
}
},
"entities": { }
}
dab add Todo
--source "dbo.Todo"
--permissions "anonymous:*"
[!NOTE] DAB supports tables, views, and stored procedures. When the type is not specified, the default is
table.
The entities section of the configuration is no longer empty:
{
"entities": {
"Todo": {
"source": {
"object": "dbo.Todo",
"type": "table"
},
"graphql": {
"enabled": true,
"type": {
"singular": "Todo",
"plural": "Todos"
}
},
"rest": {
"enabled": true
},
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "*"
}
]
}
]
}
}
}
In production, DAB runs in a container. In development, it’s locally self-hosted.
dab start
[!IMPORTANT] The DAB CLI assumes your configuration file is called
dab-config.jsonand is in the local folder.
By default, DAB enables both REST and GraphQL.
GET http://localhost:5000/api/Todo
[!NOTE] Change the URL to match your port if it is different.
http://localhost:5000/healthhttp://localhost:5000/swaggerhttp://localhost:5000/graphql