Asset Catalogus
Deze pagina is een datasheet per asset van het AutoMate-platform. Per asset zijn doel, SKU/tier, scaling-strategie, slots/replicatie, dependencies, Bicep-locatie en de verwijzing naar de topologie opgenomen. Bedoeld als snelle referentie bij capaciteitsvraagstukken, incident-response, cost reviews en onboarding.
Verwante topics: Externe Diensten — Topologie & Toegang (volgt in aparte PR) · Hosting — SaaS Applicatie· Hosting — Status Page.
Compute & Applicaties
AutoMate Web API
Veld | Waarde |
|---|---|
Doel | Centrale FastEndpoints-API; host voor Hangfire background jobs en plugins (AuditLog, Email, MsGraph) |
Resource | Azure App Service (Web App), Linux, runtime |
SKU/tier | Volgt het gedeelde App Service Plan ( |
Scaling | Verticale scaling via plan-tier; horizontale scaling via Premium-instances (handmatig, auto-scale rules: TODO) |
Slots |
|
Sidecar | Geen — de |
Identiteit | System-assigned + user-assigned managed identity |
Netwerk | VNet-integratie via |
Domein | Prod: |
Health |
|
Dependencies | App Service Plan, Key Vault, Azure SQL, Managed Redis, AuditLogs Storage Account, Application Insights, Seq (via Serilog), SendGrid, Microsoft Graph |
Bicep |
|
Management Portal
Veld | Waarde |
|---|---|
Doel | Blazor Server beheersinterface voor admins (tenants, workflows, branding, etc.) |
Resource | Azure App Service (Web App), Linux, runtime |
SKU/tier | Volgt gedeeld App Service Plan (zie hierboven) |
Scaling | Idem Web API — gedeeld plan, verticaal via tier, horizontaal handmatig |
Slots |
|
Sidecar |
|
Identiteit | System-assigned + user-assigned managed identity |
Netwerk | VNet-integratie via |
Domein | Prod: |
Health |
|
Dependencies | App Service Plan, Key Vault, Web API (apim/api), SQL ( |
Bicep |
|
Status Page
Veld | Waarde |
|---|---|
Doel | Publieke statuspagina; pollt Web API health endpoints |
Resource | Docker container op Railway (geen Azure-resource) |
SKU/tier | Railway plan — TODO (vermoedelijk Hobby/Pro) |
Scaling | Single-container Railway-service (geen horizontale scaling geconfigureerd) |
Slots/replicatie | n.v.t. — één instantie, omgeving-overstijgend |
Database | MySQL |
Domein | TODO (bv. |
Dependencies | AutoMate Web API health endpoints ( |
Bicep | n.v.t. — Railway-config, zie Hosting — Status Page |
App Service Plan (gedeeld)
Veld | Waarde |
|---|---|
Doel | Onderliggende compute-capaciteit voor Web API en Portal (beide slots, alle sidecars) |
Resource |
|
SKU/tier |
|
Scaling | Verticaal: switch tier in Bicep (Basic |
Belangrijk | Web API én Portal delen dit plan — een tier-wijziging raakt beide applicaties tegelijk |
Bicep |
|
Cloudflare Tunnel Container App
Veld | Waarde |
|---|---|
Doel | Dedicated Azure Container App die de Cloudflare Zero Trust tunnel termineert voor beheerverkeer (medewerkers). Vervangt de voormalige |
Resource | Azure Container App ( |
Image |
|
Replicas | 2 voor HA |
Managed Identity | User-assigned (voor KV secret-toegang) |
Ingress | Geen (outbound-only — maakt uitgaande verbinding naar Cloudflare edge) |
Subnet |
|
Tunnel-token | KV secret |
Status | Live in dev en prod |
Bicep |
|
Zie Cloudflare Tunnel Architectuur voor de volledige migratiebeschrijving en operationele details.
Data & State
Azure SQL Server + Elastic Pool
Veld | Waarde |
|---|---|
Doel | Relationele opslag voor tenants, UserTypes, Users, Branding, Jobs, Devices, Emails, Signatures e.a. |
Resource |
|
SKU/tier | Elastic Pool |
Authenticatie | Azure AD only ( |
Identiteit | User-assigned managed identity (GitHub Actions) als primaire identity op de server |
Netwerk | Private Endpoint via |
Databases | Lijst komt uit |
Backup/HA | Default Azure SQL backup (Basic tier: PITR 7 dagen). Geen geo-replicatie geconfigureerd |
Bicep |
|
Azure Key Vault
Veld | Waarde |
|---|---|
Doel | Secrets, certificaten, Cloudflared tunnel-tokens, SendGrid API key, app-instellingen |
Resource |
|
SKU/tier |
|
Toegangsmodel | Access Policies (geen RBAC). Admin-objectId Innovative tenant; managed identity = |
Soft delete | Enabled |
Netwerk |
|
Belangrijke secrets |
|
Bicep |
|
Azure Managed Redis (Enterprise)
Veld | Waarde |
|---|---|
Doel | Distributed cache voor Web API (sessies, hot data, throttling-tellers) |
Resource |
|
SKU — productie |
|
SKU — development |
|
Scaling | SKU-wijziging (verticaal). Horizontale scaling via Enterprise cluster-nodes (TODO: niet geconfigureerd) |
Beveiliging |
|
Clustering |
|
Netwerk | Private Endpoint via |
Access policy | Data-plane access voor Web API system-MI én staging-slot system-MI ( |
Bicep |
|
AuditLogs Storage Account
Veld | Waarde |
|---|---|
Doel | Blob-opslag voor audit-trails per tenant (gebruikt door AutoMate.API.Plugins.AuditLog) |
Resource |
|
SKU/tier |
|
Connection string | Output |
Bicep |
|
Observability & E-mail
Application Insights
Veld | Waarde |
|---|---|
Doel | APM, telemetrie, OpenTelemetry voor API en Portal |
Resource |
|
SKU/tier | Workspace-based — facturering volgt Log Analytics |
Workspace | Gekoppeld aan Log Analytics Workspace (zie hieronder) |
App settings injectie |
|
Bicep |
|
Log Analytics Workspace
Veld | Waarde |
|---|---|
Doel | Centrale opslag voor Azure-logs + Application Insights data |
Resource |
|
SKU/tier |
|
Retentie | Productie: 31 dagen · Development/Test: 30 dagen |
Daily quota |
|
Netwerk | Public query + ingestion |
Bicep |
|
Seq @ TransIP (extern)
Veld | Waarde |
|---|---|
Doel | Productie-pad voor structured application logging (Serilog → Seq). Wordt door Web API en Portal beide gevuld |
Resource | Seq-instantie, gehost op TransIP (buiten Azure) |
Runtime |
|
App settings |
|
Bicep | App-setting injectie in |
Beheer | Console/UI van Seq via Cloudflare One (Zero Trust toegang voor medewerkers) |
SendGrid (extern)
Veld | Waarde |
|---|---|
Doel | Primair pad voor transactionele e-mail + inbound webhooks |
Resource | SaaS — beheerd in SendGrid console (zie Externe Diensten — Topologie & Toegang wanneer beschikbaar) |
Secrets |
|
App settings |
|
Netwerk & Toegang
Virtual Network (VNet) + subnets
Veld | Waarde |
|---|---|
Naam |
|
Address space |
|
Subnets |
|
NSG's | Alle 11 subnets hebben een NSG gedefinieerd in |
Private DNS Zones |
|
Bicep |
|
Private Endpoints
Endpoint | Subnet | DNS Zone | Bicep |
|---|---|---|---|
Azure SQL |
|
|
|
Key Vault |
|
| idem |
Managed Redis |
|
| idem |
Web API (prod slot) |
|
| idem |
Web API (staging slot) |
|
| idem |
Cloudflared tunnels
De tunnelarchitectuur bestaat uit twee componenten per omgeving. Zie Cloudflare Tunnel Architectuur voor de volledige details en NSG-regels.
Status per app:
App | Sidecar | Omschrijving |
|---|---|---|
AutoMate.API | Geen | Sidecar verwijderd uit de live-omgeving en uit Bicep voor alle omgevingen |
Management Portal | Actief (Tunnel B) |
|
Sidecar-configuratie (Portal):
Veld | Waarde |
|---|---|
Resource |
|
Image |
|
Target port |
|
Startup |
|
Tokens |
|
Bicep |
|
Afgevoerd uit deze deployment
De volgende assets zijn historisch wel uitgerold geweest maar worden niet meer ingezet. De bijbehorende Bicep-modules zijn verwijderd uit de repo.
Asset | Status | Bicep (ongebruikt) |
|---|---|---|
Azure Service Bus | Vervangen door Hangfire in-process voor async coordinatie | n.v.t. — Bicep verwijderd |
Azure Communication Service | Vervangen door uitsluitend SendGrid voor uitgaande e-mail | n.v.t. — Bicep verwijderd |
Azure API Management (APIM) | Klanten benaderen de Web API rechtstreeks via de App Service custom domain | n.v.t. — niet meer in repo gedeployed |
Identiteit & Authenticatie
Managed Identities
Identity | Type | Gebruikt door | Doel |
|---|---|---|---|
Web API system-MI | System-assigned | Web API production slot | Redis data, SQL login, Key Vault access |
Web API staging system-MI | System-assigned | Web API staging slot | Idem voor staging |
Portal system-MI | System-assigned | Portal production slot | SQL login (Signatures DB), Key Vault refs |
Portal staging system-MI | System-assigned | Portal staging slot | Idem voor staging |
User-assigned MI (GitHub Actions) | User-assigned | Bicep deployments, SQL admin tasks | Deployment-pijplijn, SQL user provisioning |
Onderhoud van dit document
Werk dit topic bij wanneer:
Een SKU of tier verandert in de Bicep (App Service Plan, Redis, SQL pool, AuditLogs Storage, etc.)
Een nieuw asset wordt toegevoegd (nieuwe Azure-resource, nieuwe externe SaaS, nieuwe sidecar)
Slots, replicatie of HA-configuratie wijzigen
Subnet-layout of Private Endpoint-koppelingen wijzigen
Een TODO-veld is verduidelijkt (bv. Status Page Railway-plan, auto-scale rules)
Een asset uit de "Afgevoerd"-tabel wordt weer in gebruik genomen of definitief uit de repo verwijderd
Verantwoordelijke voor onderhoud: de medewerker die de wijziging doorvoert past dit topic aan als onderdeel van het change-proces.