Skip to content

Releases: holgerimbery/lab-tenantmanager

v0.6.0

Choose a tag to compare

@holgerimbery holgerimbery released this 06 Jun 15:51

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

Pre-release

Choose a tag to compare

@holgerimbery holgerimbery released this 03 Jun 12:55

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.Send Graph 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.