Appearance
Resource Groups
Each Microtec ERP environment is organized into 8–9 dedicated resource groups. This isolation enables granular RBAC, cost tracking per concern, and safe teardown of individual tiers without affecting others.
Resource Group Map (Dev Example)
The table below shows the standard RGs for the dev environment. Substitute dev with stage, preprod, uat, or production for other environments.
| # | Resource Group Name | Purpose | Key Resources |
|---|---|---|---|
| 1 | mic-erp-be-dev-network-rg | Network infrastructure | VNet, subnets, NSGs, VNet peerings |
| 2 | mic-erp-be-dev-security-rg | Security & identity | Managed Identity, RBAC assignments |
| 3 | mic-erp-be-dev-sql-rg | SQL configuration | SQL-related configs (shared SQL server is in shared RG) |
| 4 | mic-erp-be-dev-utils-rg | Utility services | Service Bus namespace, private endpoints |
| 5 | mic-erp-be-dev-apps-public-rg | Public container workloads | Public CAE (mic-erp-be-dev-cae-public), Gateway + Keycloak |
| 6 | mic-erp-be-dev-apps-private-rg | Private container workloads | Private CAE (mic-erp-be-dev-cae-private), all 11 internal services |
| 7 | mic-erp-be-dev-monitoring-rg | Observability | Log Analytics Workspace, Application Insights |
| 8 | mic-erp-be-dev-global-rg | Global / shared resources | ACR (micerpbedevacr), Key Vault (mic-erp-be-dev-skv) |
| 9 | mic-erp-be-dev-storage-rg | Backend blob storage | Backend Blob Storage (micerpbedevsa) (optional) |
Shared Resource Groups (All Environments)
| Resource Group | Scope | Purpose |
|---|---|---|
mic-backend-shared-sql-rg | Cross-environment | SQL Server VM, all tenant databases |
mic-backend-shared-sql-rg — Do NOT Delete or Rename
This RG is shared across dev, stage, preprod, uat, and production. It hosts the SQL Server VM at 20.50.120.95. All environment-specific SQL databases live on this shared server. Deleting or renaming this RG would destroy all tenant and admin databases.
Complete Environment Matrix
Resource Group Detail: *-network-rg
Contains all network infrastructure. Must be deployed first as other RGs depend on subnet IDs.
Resources:
- VNet:
mic-erp-be-{env}-vnet(10.x.0.0/16) - Subnets:
public-apps(10.x.0.0/24) — Public CAEprivate-apps(10.x.1.0/24) — Private CAEdata(10.x.2.0/24) — Redis, Service Bus private endpointskeyvault(10.x.3.0/24) — Key Vault private endpointsql-peering(10.x.4.0/24) — VNet peering to shared SQL VNet
- NSGs: One per subnet with deny-all default + explicit allow rules
- VNet peering to
mic-backend-shared-sql-rgVNet (10.100.0.0/16)
Resource Group Detail: *-apps-public-rg
Contains the Public Container Apps Environment and the internet-facing services.
Resources:
mic-erp-be-{env}-cae-public— Public CAE (Gateway + Keycloak)- Container Apps:
Gateway.API,Keycloak
Resource Group Detail: *-apps-private-rg
Contains the Private Container Apps Environment and all internal microservices.
Resources:
mic-erp-be-{env}-cae-private— Private CAE (all 11 internal services)- Container Apps: AppsPortal.Apis, Inventory.Apis, BusinessOwners.Apis, BusinessOwners.AdminPortal, Integration.Apis, Attachment.Apis, Notification.Apis, Workflows.Apis, Hr.Personnel.Apis, Template.Blazor, Platforms.Worker
- User-assigned managed identity:
mic-erp-be-{env}-mi
Resource Group Detail: *-utils-rg
Contains utility data services (excluding SQL which lives in shared RG).
Resources:
- Redis:
mic-erp-be-{env}-redis- Product: Azure Managed Redis
- SKU:
Balanced_B0(non-prod) /Balanced_B1(default all environments)
- Service Bus Namespace:
mic-erp-be-{env}-asb- SKU: Standard (dev/stage), Premium (preprod/uat/prod)
- Queues:
notifications,workflow-events,audit-events - Private endpoint:
mic-erp-be-{env}-asb-pe
Resource Group Detail: *-global-rg
Contains global/shared resources per environment including the image registry and Key Vault.
Resources:
- ACR:
micerpbe{env}acr- SKU: Basic (dev), Standard (stage), Premium (preprod/uat/prod)
- Geo-replication: prod only (secondary in West Europe)
- Private endpoint: prod only
- Key Vault (see Key Vault for actual names per environment)
- RBAC assignments:
Key Vault Secrets User→mic-erp-be-{env}-mi(runtime access)Key Vault Secrets Officer→ Pipeline service principal (provisioning)
Resource Group Detail: *-storage-rg
Contains backend blob storage (optional, may be part of global-rg).
Resources:
- Backend Blob Storage:
micerpbe{env}sa- Used by Attachment service for file uploads
- Container:
attachments - CORS: configured per environment
Resource Group Detail: *-monitoring-rg
Contains all observability infrastructure.
Resources:
- Log Analytics Workspace:
mic-erp-be-{env}-law- Retention: 30 days (dev/stage), 90 days (prod)
- Daily cap: 5GB (dev), 20GB (prod)
- Application Insights:
mic-erp-be-{env}-ai- Connected to Log Analytics workspace
- Sampling rate: 100% (dev), 20% (prod)
Resource Group Detail: mic-erp-fr-*-storage-rg
Contains the frontend SPA static file storage.
Resources:
- Frontend Blob Storage:
micerpfr{env}sa- Static website hosting enabled
- Container
$webfor SPA files - CORS: origin
https://{env-domain}, all HTTP methods - CDN origin for Azure Front Door (frontend)
MFE Storage Accounts
The frontend storage account (micerpfr{env}sa) is separate from the backend storage account (micerpbe{env}sa). This separation came from the frontend storage refactor (Session 13, 2026-03-31) which moved AzureBlobStorage secrets to the frontend MFE storage account.
Resource Group Detail: mic-erp-fr-*-swa-rg
Contains Azure Static Web Apps instances.
Resources:
- One or more Static Web Apps for Angular MFE deployments
- Custom domain assignments per SWA
- Authentication providers (linked to Keycloak)
AFD Profiles (Global, not per-environment)
All Azure Front Door profiles live in the shared mic-erp-global-rg (not per-environment RGs):
| AFD Profile | Environments | Resource Group |
|---|---|---|
mic-erp-fd | dev, stage | mic-erp-global-rg |
mic-erp-fd-2 | preprod, uat | mic-erp-global-rg |
mic-erp-prod-fd | production | mic-erp-global-rg |
- Custom domains:
gateway.{domain}andauth.{domain}for all environments - WAF policy:
Standard_AzureFrontDoorSKU - DDoS protection: disabled (
enableDdosProtection: false)
Deprovision Safety
When tearing down an environment using the deprovision pipeline:
*-apps-public-rgand*-apps-private-rgare deleted first (no data, safe)*-utils-rgis deleted second (check backups first)*-global-rgis deleted third (ACR images are gone, KV enters soft-delete)*-storage-rgis deleted fourth (if separate from global-rg)*-monitoring-rgis deleted fifth*-network-rgis deleted last
Soft Delete on Key Vault
Key Vaults are protected by Azure's soft-delete policy for 90 days after deletion. If you need to re-create a KV with the same name, you must first purge the soft-deleted vault:
bash
az keyvault purge --name mic-erp-be-dev-skv --location uksouthRelated Documentation
- Infrastructure Overview — Bicep IaC structure
- Naming Conventions — Resource naming patterns
- Container Apps — CAE and container app details
- Key Vault — KV actual names and secret management