Releases: holgerimbery/lab-tenantmanager
Release list
v0.6.0
Container Image
docker pull ghcr.io/holgerimbery/lab-tenant-manager:0.6.0
The source code is closed. The pre-built image is the only distribution artefact.
"Source code" archives listed below are auto-generated by GitHub and contain only the ARM deployment template — not the application source.
Release v0.6.0
Role-based tenant access control
Tenant management is now restricted to dedicated admin users — not every authenticated user in the operator tenant can manage demo tenants anymore.
New access model:
- Master Admin — sees and manages all tenants. Configured via \TENANT_MASTER_ADMIN_EMAILS.
- Tenant Admin — can access and manage only the tenants they onboarded or were explicitly granted access to. Configured via \TENANT_ADMIN_EMAILS.
- Tenant ownership — the user who onboards a tenant automatically becomes its manager.
- Delegated management — a tenant admin can share management rights with other admins directly from the tenant detail page.
New environment variables:
\
TENANT_ADMIN_EMAILS=user1@example.com,user2@example.com
TENANT_MASTER_ADMIN_EMAILS=masteradmin@example.com
\
If neither variable is set, the previous behaviour (all authenticated users allowed) is preserved for backward compatibility.
Bug fix: container startup crash
Fixed an \EACCES: mkdir /app/.next/cache\ crash that prevented the production container from serving pages correctly after a cold start. The Next.js cache directory is now pre-created with correct ownership in the Docker image.
v0.5.0 — First public baseline
Container Image
docker pull ghcr.io/holgerimbery/lab-tenant-manager:0.5.0
The source code is closed. The pre-built image is the only distribution artefact.
"Source code" archives listed below are auto-generated by GitHub and contain only the ARM deployment template — not the application source.
What's in this release
Lab Tenant Manager v0.5.0 is the first public baseline release. The application is production-ready for operator tenants running Power Platform, Copilot Studio, and Azure AI workshops, hackathons, and training labs.
Core capabilities
- Multi-tenant onboarding — delegated consent flow lets any lab tenant's Global Admin authorize the operator in a single click; consent token stored securely in Key Vault
- Power Platform provisioning — creates a dedicated Dataverse Developer environment per participant with configurable region, currency, and language
- Workshop codes — generate reusable or single-use codes with optional expiry and usage limits; participants self-serve credentials via a simple claim page
- Credential email delivery — sends personalized login/password emails from the operator tenant mailbox using
Mail.Send; supports per-tenant sender override and custom welcome message - Lab cleanup — removes all
labadmin*users and their Power Platform environments in one click when the workshop ends - Re-authorization flow — detects and recovers expired delegated Power Platform tokens without tenant re-onboarding
- Environment management — list, filter, and grant SysAdmin rights on Dataverse environments; configurable target environment name per tenant
- Admin email management — update email addresses for claimed lab users from the admin UI
- Pre-flight checks — validates tenant reachability, license availability, and delegated token freshness before provisioning
- Audit trail — per-tenant activity log
Infrastructure
- Deployed as an Azure Container App from
ghcr.io/holgerimbery/lab-tenant-manager:0.5.0 - ARM template in the deployment repository provisions: Container App, Cosmos DB (serverless), Key Vault, ACR, and all role assignments in one step
- Managed identity for ACR pull and Key Vault access — no credentials in environment variables
- Semver image tagging:
0.5.0,0.5,latest
Requirements
- Azure subscription (operator)
- Microsoft 365 tenant (operator) with
User.ReadWrite.All,Group.ReadWrite.All,Directory.ReadWrite.All,LicenseAssignment.ReadWrite.All,Mail.SendGraph permissions and Power Platform delegated scope - Lab tenants: any Microsoft 365 tenant whose Global Admin completes the onboarding consent
Deploy
See the deployment repository for the ARM template and step-by-step guide.
This is a pre-1.0 release. Core functionality is stable; the API surface and configuration schema may change before 1.0.