Architecture diagram
┌─────────────────────────────────────────────────────────────────────────────┐
│ Customer Azure AD (Microsoft Entra ID) │
│ Users sign in to BulkForge dashboard via Entra SSO │
└──────────────────────────────────┬──────────────────────────────────────────┘
│ OAuth / OIDC
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Publisher Azure subscription (AgeeBgee Solutions) │
│ ┌──────────────────────┐ ┌──────────────────────┐ ┌────────────────┐ │
│ │ Azure App Service │ │ Azure App Service │ │ Azure SQL │ │
│ │ (Next.js dashboard) │◄──►│ (Control-plane API) │◄──►│ Database │ │
│ │ bulkforge-engine-* │ │ job dispatch, audit │ │ jobs, engines, │ │
│ └──────────┬───────────┘ └──────────┬───────────┘ │ subscriptions │ │
│ │ │ └────────────────┘ │
│ │ Marketplace SaaS webhook │ HTTPS poll / report │
└─────────────┼───────────────────────────┼───────────────────────────────────┘
│ │
│ Azure Marketplace │ Agent ID + Agent Key (no secrets)
│ transact / fulfill │
▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Customer Azure subscription │
│ ┌──────────────────────┐ ┌──────────────────────┐ ┌────────────────┐ │
│ │ Azure Key Vault │◄───│ Azure Functions │ │ Azure Storage │ │
│ │ Postmark tokens │ │ Flex Consumption │ │ deployment pkg │ │
│ │ ACS connection str │ │ Customer Agent │ │ + runtime │ │
│ │ (managed identity) │ │ .NET 10 isolated │ └────────────────┘ │
│ └──────────────────────┘ └──────────┬───────────┘ │
│ │ │
│ Deployed via Azure Marketplace │ outbound email API │
│ (BulkForge Install v3 ARM template) ▼ │
│ ┌──────────────────────┐ │
│ │ Postmark API │ │
│ │ and/or │ │
│ │ Azure Communication │ │
│ │ Services Email │ │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
Optional integrations: Power Automate / Logic Apps → Workflow Trigger API (HTTPS + API key)