Skip to content

Applications & APIs ​

Source: the BlazorApps solution (.NET 9). Hosted on Azure App Service unless noted; deployed by GitHub Actions (one workflow per app, test then prod).

Applications ​

ProjectTypeWhat it doesFramework
AdminPortalWeb portalInternal staff portal (Make Safe, bookings, user settings, schedules, trade search). Blazor Server + MudBlazor, EntraID login.net10.0
BrowserActionsServiceBrowser automation (Browserbase + Playwright) exposed as REST actions and Service Bus consumers (RepairLine sync, etc.).net10.0
DbMigrationsToolingDbUp migrations: numbered run-once scripts plus CREATE OR ALTER programmable objects.net10.0
FormsPortalWeb portalForms for insureds, insurers and trades. Per-form auth: EntraID, sharing code or anonymous. Replaced BookingPortal/ClientPortal/TradePortal (removed 2026-08-19).net10.0
ITProvisioningServiceService Bus consumer that onboards/offboards staff (Entra account, licence, groups via Automation runbook) and notes the FreshDesk ticket.net10.0
MCPServerMCP serverModel Context Protocol server for n8n and AI agents; actions suitable for general staff.net10.0
MCPServerSensitiveMCP serverMCP server with broader data access for automation agents; not for staff.net10.0
WebAPIAPIASP.NET Core API behind Basic auth. Controllers for AI, Booking, GeoLocation, OptimoRoute, Prime, Task, WIPUpdate, Endata. Main back end for n8n and Stagehand.net10.0
WebAPIExcelAPIReduced-scope API for Excel get/set operations (limits exposure).net10.0
WebhookReceiverServiceGeneric inbound webhook receiver: validates API-Key and drops the raw call on a Service Bus queue. New source = config only.net10.0

Libraries ​

LibraryPurpose
CommonAIModelProvider-agnostic AI client (OpenAI Responses API) and prompt templates.
CommonAuthEntraID wrapper; scoped EntraIDUser.
CommonDataAccessDapper + stored-procedure data access (ISQLDataAccess) and domain data classes.
CommonFormsPdfPDF generation for forms.
CommonFreshDeskFreshDesk ticket API.
CommonImagingImage handling.
CommonJSErrorClient-side JS error capture.
CommonLocationGeo/location utilities.
CommonOptimoRouteOptimoRoute orders, planning and routes.
CommonPrimeAPIPrime API client and models.
CommonServiceBusService Bus sender and abstract QueueConsumer background service.
CommonSMSSMS sending.
CommonTimeZoneTime zone utilities.
CommonWebhooksWebhook helpers.

Project references ​

Arrows show ProjectReference from each application to the libraries it uses.

Deployment targets ​

ProjectEnvApp ServiceSlotIn Azure export?
AdminPortalProdapp-makesafe-prod-australiasoutheast-001yes
FormsPortalProdapp-form-prod-australiasoutheast-001stagingyes
WebAPIProdapp-webapi-prod-australiasoutheast-001yes
WebhookReceiverProdapp-webhook-prod-australiasoutheast-001yes
ITProvisioningProdapp-itprov-prod-australiasoutheast-001yes
BrowserActionsProdapp-browseractions-prod-australiasoutheast-001no
MCPServerProdapp-mcp-prod-australiasoutheast-001yes
WebAPIExcelProdapp-excelapi-prod-australiasoutheast-001yes
AdminPortalTestapp-makesafe-test-australiasoutheast-001yes
FormsPortalTestapp-form-test-australiasoutheast-001yes

Design specs ​