Operation
Day-to-day use of BlazorData.net
This guide covers day-to-day use of BlazorData.net: connecting Azure, creating and updating Blazor Data Orchestrator installations, watching deployments, and running the site as an administrator.
Deployment lifecycle
deploy-jobsOnly one deployment per installation can be queued or running at a time.
Dashboard overview
After sign-in, the Dashboard shows your totals and recent deployment events, and a Needs your attention list with only the installations that need you, most urgent first:
| Shown when | Action |
|---|---|
| The last deployment failed | See what went wrong opens the failed deployment |
| A deployment is queued or running | Watch live opens the live deployment page |
| A newer approved release is available | Update starts the update |
| The wizard was left unfinished | Continue setup reopens the wizard; never-deployed drafts can also be deleted |
When nothing needs you, it says All caught up.
The Installations page lists every BDO installation in your team account, with search, filters and CSV export:
| Column | Description |
|---|---|
| Name | Name of the installation; click it to open the installation |
| Status | Draft while the wizard is open, Active once deployed or imported |
| Version | BDO release currently running |
| Resource group | Azure resource group that holds the installation |
| Region | Azure location of the resources |
| Last deployment | Status and time of the most recent deployment |
From there you can:
- Open an installation to see its resources and deployment history
- Click New installation to start the wizard
- Click Import existing to bring in a BDO you deployed yourself with
azd up. Discovery finds it by itswebapp,schedulerandagentcontainer apps, whether they run release images (bdo-web, ...) or imagesazd upbuilt from the BDO source; an image taggedazd-deploy-...carries no version, so confirm the version when you import
Connecting Azure
- Open Azure connection and sign in with the Microsoft account that can reach your subscription.
- Grant the BlazorData Deployer access to the resource groups you choose. It never gets the whole subscription.
- Optionally turn on Remove deployer access after each deployment; access is granted again before the next one.
The Deployer cannot remove its own access, so BlazorData.net removes it with your Azure sign-in when the deployment page sees the deployment finish. Keep that page open until the result message appears. If you close it early, or the message says access could not be removed, remove it on the Azure connection page.
Creating an installation
- Click New installation.
- Pick existing resources or let BlazorData.net create them: Container Apps environment, container registry, Azure SQL, storage and managed identity.
- Pre-flight checks verify permissions, quotas and names.
- Pick an approved release and click Deploy.
- When it succeeds, open your BDO site and run its Install Wizard to create the admin user.
The installation stays in Draft until its first deployment succeeds. Close the wizard at any time
and resume it from the Installations page.
Running a deployment
There are three kinds of deployment:
| Type | Description |
|---|---|
| Install | Provisions the Azure resources, imports the bdo-web, bdo-scheduler and bdo-agent images, and deploys them. |
| Update | From the installation page, when a newer release is approved. Deploys the new images and database scripts; then run the BDO Upgrade Wizard. |
| Rollback | Redeploys the previous version's images. Never provisions and never runs database scripts. |
Monitoring a deployment
Viewing the live log
- Open the deployment from the installation page.
- The step list and log console refresh every 2 seconds until the deployment finishes.
- Any account member can click Cancel.
azd provision) right away. That can leave partial changes in Azure, so check the
resource group before you retry.
Understanding deployment status
| Status | Meaning |
|---|---|
| Queued | A message is on the queue but no worker has picked it up yet |
| Running | A worker is running the steps listed under Deploy worker behavior |
| Succeeded | Every step finished. The page shows your site URL |
| Failed | A step failed. The page shows the category, advice and a short support reference |
| Canceled | A member canceled the deployment |
When a deployment fails
| Category | Problem | What to do | Button |
|---|---|---|---|
Permissions |
Permission denied | The BlazorData Deployer does not have the access it needs in your resource group. Re-grant deployer access and retry. | Re-grant deployer access |
Provider |
Resource provider not registered | Your subscription is missing a resource provider registration. Register the providers and retry. | Register providers |
Quota |
Quota exceeded | Azure refused the request because a regional quota was reached. Pick another region or an existing environment. | Change region |
Naming |
Name not available | A resource name is already taken. Choose a different name and retry. | Rename and retry |
Policy |
Blocked by Azure Policy | An Azure Policy assignment denied a resource. Ask your Azure administrator about the policy named in the log. | None |
NotEntitled |
Subscription required | This account cannot deploy right now. Check the billing page. | Open billing |
Release |
Release problem | The selected BDO release could not be downloaded or did not pass verification. Try again later or pick another release. | None |
Timeout |
Timed out | A step took longer than allowed. The resources may still be finishing in Azure; check the log and retry. | Retry |
Unknown |
Deployment failed | Something unexpected went wrong. The log below has the details; quote the support reference if you contact us. | Retry |
Administration
Administrators see the Admin menu in the navigation. To make someone an administrator, add their
email to Admin:BootstrapEmails in appsettings.json as a comma-delimited string, or grant
the role on the Users page.
| Page | Route | What you can do |
|---|---|---|
| Overview | /admin | Totals for users, accounts, trials, paid accounts, deployments and failures |
| Users | /admin/users | Grant or revoke Administrator, change status, delete users |
| Accounts | /admin/accounts | Members, invitations, installations, billing; change account status |
| Deployments | /admin/deployments | Every account's deployments, failure rate, read-only log, re-queue |
| Releases | /admin/releases | Sync BDO releases from GitHub; approve or unapprove them |
| Settings | /admin/settings | Deployments on or off, site banner, support email |
| Activity | /admin/activity | Read-only audit trail of actions |
| Error log | /admin/errors | Errors from the site and the deploy worker |
Deploy worker behavior
The deploy worker is a Container Apps job triggered by the deploy-jobs queue. Each deployment runs
these steps, each recorded with its own status:
- Load deployment: reads the deployment and installation, and checks they belong to the account in the message.
- Check subscription: confirms the account is entitled to deploy.
- Download release: fetches the release and deploy-manifest.json, and verifies the SHA-256.
- Install pinned tools: installs the .NET SDK, Aspire CLI and azd versions the release was tested with.
- Sign in to Azure: uses federated credentials for the Deployer; no stored secrets.
- Prepare azd environment: restores the installation's .azure folder or creates a new one.
- Provision infrastructure: runs azd provision.
- Import container images: imports the BDO images into your registry by digest.
- Deploy services: deploys the webapp, scheduler and agent services.
- Verify health: waits for the site's /alive endpoint to return 200.
- Record outputs: saves the site URL, resource ids and current version.
- Clean up: skipped when you asked for Deployer access to be removed; the website removes it with your Azure sign-in (see Connecting Azure).
Reliability
- Log lines are redacted (tokens, keys, passwords) before they are stored.
- Retries are user-initiated: a failed job is never silently retried.
- A deployment abandoned by a crashed worker is marked
Failedso you can retry it.