Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sql-apps-skills",
"owner": { "name": "Microsoft", "url": "https://www.microsoft.com" },
"metadata": { "description": "Independent Azure-native application development", "version": "0.1.2" },
"plugins": [{ "name": "sql-apps", "description": "Subscription-free local Azure application workflows and diagnostics", "version": "0.1.2", "source": "./plugins/sql-apps" }]
"metadata": { "description": "Application development on Azure SQL Database and Data API Builder", "version": "0.2.0" },
"plugins": [{ "name": "sql-apps", "description": "Build and validate Azure SQL and Data API Builder applications; delegate general Azure lifecycle work to maintained Azure skills", "version": "0.2.0", "source": "./plugins/sql-apps" }]
}
6 changes: 3 additions & 3 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "sql-apps",
"version": "0.1.2",
"description": "Build and deploy this independent Azure-native TypeScript stack.",
"version": "0.2.0",
"description": "Build and validate Azure SQL Database and Data API Builder applications; use maintained Azure skills for the general cloud lifecycle.",
"author": { "name": "Microsoft SQL team (mssql)", "url": "https://github.com/microsoft" },
"homepage": "https://github.com/microsoft/sql-apps",
"repository": "https://github.com/microsoft/sql-apps",
"license": "MIT",
"skills": "./skills/",
"keywords": ["azure", "bicep", "typescript", "data-api-builder"]
"keywords": ["azure-sql", "typescript", "data-api-builder"]
}
8 changes: 4 additions & 4 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"name": "sql-apps",
"version": "0.1.2",
"description": "Build and deploy this independent Azure-native TypeScript stack.",
"version": "0.2.0",
"description": "Build and validate Azure SQL Database and Data API Builder applications; use maintained Azure skills for the general cloud lifecycle.",
"author": { "name": "Microsoft SQL team (mssql)", "url": "https://github.com/microsoft" },
"homepage": "https://github.com/microsoft/sql-apps",
"repository": "https://github.com/microsoft/sql-apps",
"license": "MIT",
"skills": "./skills/",
"keywords": ["azure", "bicep", "typescript", "data-api-builder"],
"keywords": ["azure-sql", "typescript", "data-api-builder"],
"interface": {
"displayName": "SQL Apps",
"shortDescription": "Build an independent Azure-native application",
"shortDescription": "Build an Azure SQL and Data API Builder application",
"developerName": "Microsoft SQL team (mssql)",
"category": "Coding",
"capabilities": ["Read", "Write"],
Expand Down
6 changes: 3 additions & 3 deletions .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "sql-apps",
"version": "0.1.2",
"description": "Build and deploy this independent Azure-native TypeScript stack.",
"version": "0.2.0",
"description": "Build and validate Azure SQL Database and Data API Builder applications; use maintained Azure skills for the general cloud lifecycle.",
"author": { "name": "Microsoft SQL team (mssql)", "url": "https://github.com/microsoft" },
"homepage": "https://github.com/microsoft/sql-apps",
"repository": "https://github.com/microsoft/sql-apps",
"license": "MIT",
"skills": "./skills/",
"keywords": ["azure", "bicep", "typescript", "data-api-builder"]
"keywords": ["azure-sql", "typescript", "data-api-builder"]
}
5 changes: 3 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
node_modules
dist
.git
.worktrees
.vscode
.azure
.sql-apps
.env*
sql-apps.json
azure-demo-cost.json
functions/local.settings.json
4 changes: 2 additions & 2 deletions .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sql-apps-skills",
"owner": { "name": "Microsoft", "url": "https://www.microsoft.com" },
"metadata": { "description": "Independent Azure-native application development", "version": "0.1.2" },
"plugins": [{ "name": "sql-apps", "description": "Subscription-free local Azure application workflows and diagnostics", "version": "0.1.2", "source": "./plugins/sql-apps" }]
"metadata": { "description": "Application development on Azure SQL Database and Data API Builder", "version": "0.2.0" },
"plugins": [{ "name": "sql-apps", "description": "Build and validate Azure SQL and Data API Builder applications; delegate general Azure lifecycle work to maintained Azure skills", "version": "0.2.0", "source": "./plugins/sql-apps" }]
}
2 changes: 1 addition & 1 deletion .github/workflows/azure-native-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@ jobs:
- run: node scripts/check-application.mjs . sql/obj/Debug/model/model.xml
- run: az bicep install
- run: npm run infra:build
- run: npm run infra:test-demo
- run: npm run infra:test
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ public/auth/redirect.js
.env.*
!.env.example
sql-apps.json
azure-demo-cost.json
functions/local.settings.json
.azure/
.vscode/
sql/bin/
sql/obj/
examples/**/obj/
Expand Down
6 changes: 3 additions & 3 deletions .grok-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "sql-apps",
"version": "0.1.2",
"description": "Build and deploy this independent Azure-native TypeScript stack.",
"version": "0.2.0",
"description": "Build and validate Azure SQL Database and Data API Builder applications; use maintained Azure skills for the general cloud lifecycle.",
"author": { "name": "Microsoft SQL team (mssql)", "url": "https://github.com/microsoft" },
"homepage": "https://github.com/microsoft/sql-apps",
"repository": "https://github.com/microsoft/sql-apps",
"license": "MIT",
"skills": "./skills/",
"keywords": ["azure", "bicep", "typescript", "data-api-builder"]
"keywords": ["azure-sql", "typescript", "data-api-builder"]
}
6 changes: 3 additions & 3 deletions .kimi-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "sql-apps",
"version": "0.1.2",
"description": "Build and deploy this independent Azure-native TypeScript stack.",
"version": "0.2.0",
"description": "Build and validate Azure SQL Database and Data API Builder applications; use maintained Azure skills for the general cloud lifecycle.",
"author": { "name": "Microsoft SQL team (mssql)", "url": "https://github.com/microsoft" },
"homepage": "https://github.com/microsoft/sql-apps",
"repository": "https://github.com/microsoft/sql-apps",
"license": "MIT",
"skills": "./skills/",
"keywords": ["azure", "bicep", "typescript", "data-api-builder"]
"keywords": ["azure-sql", "typescript", "data-api-builder"]
}
1 change: 0 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ COPY dab ./dab
COPY infra ./infra
COPY tsconfig*.json ./
COPY src ./src
COPY functions ./functions
COPY public ./public
RUN npm run build && npm prune --omit=dev

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ SQL Apps gives you a working application foundation and guides for creating your
- An equipment checkout app that records loans and returns.
- An inventory app that helps a team find and update stock.
- A registration app that collects and manages signups.
- A small team workflow with records, file uploads or background file processing.
- A small team workflow where signed-in members with the right role review and update shared records.

These are ideas for your own application, not prebuilt templates. SQL Apps includes a separate [Todo reference app](examples/todo/README.md) if you want to try a concrete example first.

Expand Down Expand Up @@ -57,7 +57,7 @@ For one connected setup journey, ask your assistant to use the [setup coordinato

**Your application.** Work with your AI assistant to implement and test its screens and SQL behavior in its generated repository. The project factory creates the runtime foundation, not a finished domain app. The default project has no Todo screen or sample data; examples are selected explicitly.

**A useful first result.** Run the app, create a record, reload it, and make a change such as adding a field or filter. A launch URL is usable only after the intended server responds. [Run locally](docs/guides/run-locally.md) explains startup paths, scoped approvals and how to keep your data between sessions.
**A useful first result.** Run the app, sign in as a development user and see its readiness check pass, then add your first table, stored procedure and screen. A launch URL is usable only after the intended server responds. [Run locally](docs/guides/run-locally.md) explains startup paths, scoped approvals and how to keep your data between sessions.

**Sharing is optional.** Azure is the cloud target. Free tier means recurring allowances, not trial credits or unlimited usage. When you are ready to share, read [Sharing your app](docs/guides/sharing.md) and [Costs and growth](docs/guides/costs.md) before choosing a cloud path.

Expand All @@ -73,7 +73,7 @@ For one connected setup journey, ask your assistant to use the [setup coordinato
| Share with other people | [Sharing your app](docs/guides/sharing.md) |
| Find detailed commands or contribute | [Documentation index](docs/README.md) |

Under the hood, every profile uses TypeScript, Azure SQL Database and Data API builder. Profiles that need files or background jobs also use Blob Storage and Azure Functions. You do not need to choose or configure cloud services to begin building locally.
Under the hood, SQL Apps uses TypeScript, Azure SQL Database and Data API builder, with a sign-in gateway that admits only users holding the app's role. If your app later needs file storage or background jobs, add them with the maintained Azure skills rather than SQL Apps. You do not need to choose or configure cloud services to begin building locally.

## Trademarks

Expand Down
4 changes: 2 additions & 2 deletions application.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"name": "sql-apps-foundation",
"name": "sql-apps",
"selectedExamples": []
}
}
17 changes: 0 additions & 17 deletions azure-architecture-intent.example.json

This file was deleted.

7 changes: 0 additions & 7 deletions azure-demo-cost.example.json

This file was deleted.

23 changes: 0 additions & 23 deletions azure-demo-hosting-comparison.example.json

This file was deleted.

40 changes: 0 additions & 40 deletions azure-demo-publication.example.json

This file was deleted.

9 changes: 0 additions & 9 deletions azure-demo-target.example.json

This file was deleted.

6 changes: 0 additions & 6 deletions azure-role-based-cost.example.json

This file was deleted.

6 changes: 3 additions & 3 deletions azure-role-based.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
"sqlAdminObjectId": "00000000-0000-0000-0000-000000000000",
"sqlAdminName": "deployment-operator",
"resourceGroup": "data-app-dev",
"location": "eastus",
"location": "westus2",
"environment": "dev",
"name": "data-app",
"gatewayImage": "yourregistry.azurecr.io/app-gateway:0.1.2",
"dabImage": "yourregistry.azurecr.io/app-data:0.1.2",
"gatewayImage": "yourregistry.azurecr.io/app-gateway:0.2.0",
"dabImage": "yourregistry.azurecr.io/app-data:0.2.0",
"registryServer": "yourregistry.azurecr.io"
}
2 changes: 1 addition & 1 deletion content/start.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Follow **Describe -> Run locally -> Make it yours -> Share optionally**.

1. Start with `README.md`. Open a linked guide only when the current stage needs it.
2. Ask one question at a time about who uses the app, what it stores and what people do. Summarize a small first version before editing. Do not ask me to choose frameworks or Azure services.
3. Once Node is available, run `npm run guide` and `node scripts/setup-check.mjs`. Use `node scripts/setup.mjs plan --profile <agreed-profile> --json` to find the next setup action. Stop gathering context once the plan names an action or blocker.
3. Once Node is available, run `npm run guide` and `node scripts/setup-check.mjs`. Use `node scripts/setup.mjs plan --json` (the only profile is `role-based-data`) to find the next setup action. Stop gathering context once the plan names an action or blocker.
4. Show the reviewed setup or installation plan before any download, install, license acceptance, workspace change, schema change or startup. Continue only after explicit approval. Use `setup run` or `setup resume`; do not bypass its blocker, repeat completed work, replace the SQL engine or reset saved data.
5. Build the smallest useful slice with the application skill. Use the local skill to start it. Verify one real browser action and SQL save/reload, then make and verify one useful change.

Expand Down
17 changes: 6 additions & 11 deletions dab/dab-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,11 @@
}
},
"entities": {
"FileJob": {
"source": { "object": "dbo.FileJobs", "type": "table" },
"rest": { "enabled": true },
"graphql": { "enabled": true },
"permissions": [{
"role": "authenticated",
"actions": [
{ "action": "read", "fields": { "exclude": ["blob_key"] }, "policy": { "database": "@item.owner_oid eq @claims.oid" } }
]
}]
"AppReady": {
"source": { "object": "dbo.AppReady", "type": "stored-procedure" },
"rest": { "enabled": true, "methods": ["get"] },
"graphql": { "enabled": false },
"permissions": [{ "role": "AppUser", "actions": ["execute"] }]
}
}
}
}
15 changes: 6 additions & 9 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,31 @@ Choose a guide for what you want to do. Command details and contributor contract
1. [Get started](guides/getting-started.md): prepare your computer and get SQL preview access.
2. [Build your app](guides/build-your-app.md): describe an idea, build a first version and make it yours.
3. [Run locally](guides/run-locally.md): choose a startup path, stop and resume.
4. [Sharing your app](guides/sharing.md): choose access and understand current cloud options.
5. [Costs and growth](guides/costs.md): local costs, recurring free tiers and paid growth.
4. [Sharing your app](guides/sharing.md): use maintained Azure skills for cloud lifecycle work while preserving SQL/DAB acceptance.
5. [Costs and growth](guides/costs.md): understand local costs and route Azure estimates/analysis to the Azure Cost plugin.

To try something already implemented, use the [Todo reference app](../examples/todo/README.md).

## Command and configuration reference

- [Independent projects](reference/projects.md): project manifest, packaged tooling and foundation boundaries.
- [Local runtime](reference/local-development.md): services, workspace settings, diagnostics and recovery.
- [Local runtime](reference/local-development.md): the role-based-data startup stages, workspace ports, diagnostics and recovery.
- [Setup coordinator](reference/setup.md): connected first-run planning, approved tool installation and safe continuation.
- [Remember local permissions](reference/local-consent.md): one setup approval covering restore, build, workspace, startup and SQL terms, reusable grants and revocation.
- [Manage projects](reference/projects.md): create independent application repositories under the user-level SQL Apps project root.
- [Authentication and application access](reference/authentication.md): account states, local preview, real Entra opt-in, access permissions and current/future hosting boundaries.
- [Role-based-data profile](reference/role-based-data.md): SQL/DAB/browser startup, application-role authorization, matching costs and private SQL Azure deployment.
- [Role-based-data profile](reference/role-based-data.md): SQL/DAB/browser startup, application-role authorization and private SQL Azure deployment.
- [Copilot plugin](reference/copilot-plugin.md): installation, binding and troubleshooting.
- [Guide command](reference/guide.md): saved brief and checkpoint format.
- [Demo cost review](reference/demo-cost.md): offline cost command, SQL billing settings and measured hosting comparison.
- [Monitor usage and growth](reference/monitor-growth.md): free Database Hub preview setup, read-only SQL diagnostics and capacity decisions.
- [Public-demo publishing candidate](reference/demo-deployment.md): proposed publish/status commands, diagnostics, template contracts and live acceptance.
- [Authenticated Azure deployment](reference/deployment.md): full infrastructure deployment commands.
- [Authenticated Azure deployment](reference/deployment.md): retained role-based-data deployment commands for existing SQL Apps deployments.

## Contribute and maintain

- [Contributing](../CONTRIBUTING.md): development checks and pull requests.
- [Agent guidance evaluations](maintainers/agent-evaluations.md): behavior scenarios for prompt, skill and workflow-boundary changes.
- [Application boundaries](maintainers/application-boundary.md): keep reference examples out of delivered applications.
- [Hosting decision: Static Web Apps candidate](maintainers/hosting-decision.md): why public demos may split static hosting from the linked API, and the gates before changing the default.
- [Operations and release checks](maintainers/operations.md): authenticated deployment recovery and production checks.
- [Legacy operations and release checks](maintainers/operations.md): recovery and production checks for existing custom deployments.
- [Naming transition](maintainers/naming-transition.md): migration notes for existing development checkouts.

Temporary implementation plans and session notes belong in ignored `docs/superpowers/` or session storage. They are not product guidance and must not be committed as authoritative documentation.
Loading