Admin API
The Admin API (Alert.CA.Admin.API + Alert.CA.Admin.API.Application) is an ASP.NET Core 10 Web API that serves as the administrative control plane for the entire camera ecosystem. It provides RESTful endpoints for managing cameras, users, orchestrations, and system configuration.
Architectureβ
Tech Stackβ
| Component | Technology |
|---|---|
| Framework | ASP.NET Core 10 |
| Auth | Microsoft Identity Web (JWT Bearer) |
| CQRS | MediatR |
| Serialization | Newtonsoft.Json (camelCase) |
| API Docs | Swashbuckle (Swagger/OpenAPI) |
| Health Checks | SQL Server, Cosmos DB, Blob Storage, Queue Storage |
| Monitoring | Application Insights |
| Config | Azure App Configuration + Key Vault |
Controllersβ
| Controller | Responsibility |
|---|---|
DeviceConfigController | Camera device configuration and credentials |
ImageAcquisitionController | Orchestration control β start, stop, redeploy |
UserAgencyCameraController | User β agency β camera relationships |
UserController | User CRUD and Cosmos DB sync |
AxisCameraController | Direct Axis camera operations (overlays, status) |
FrontEndCamerasController | Public-facing camera config for the frontend |
FeatureFlagsController | Feature flag management |
LocationsController | Location file uploads (up to 300 MB) |
CameraEnvironmentController | Camera environment configuration |
DurableEntityController | Query and manage Durable Function entity state |
FrontEndApiController | Proxy/integration with the Frontend API |
AuthorizationController | Token management and login redirect |
ActivityLogController | Audit trail viewing |
HealthChecksController | Health check dashboard |
Key Featuresβ
- CQRS with MediatR β All controller actions dispatch commands or queries through MediatR, keeping controllers thin
- Automatic Audit Trail β
AuditBehaviorpipeline intercepts everyIAuditCommand, captures HTTP context + user claims, and logs to the audit service - Role-Based Access β
Admin.GlobalandAdmin.ReadWriteroles via Microsoft Entra ID - Health Checks UI β
/healthendpoint reports status of all dependent services with a web dashboard - React SPA Hosting β The built React admin app is served as static files from the API
- CORS β Configured for React dev server on
localhost:3000
Documentation Sectionsβ
- Authentication & Authorization β JWT setup, roles, managed identity
- Device Configuration β Camera onboarding, credentials, bulk operations
- Image Acquisition Management β Start/stop/redeploy orchestrations
- Camera Management β Axis operations, frontend cameras, user-agency relationships
- CQRS & Application Layer β MediatR pipeline, command/query organization, audit behavior
- Feature Flags β Feature flag storage and gating
- Durable Entities β Querying and managing orchestration state
- External Integrations β UCSD, ESRI, Microsoft Graph connections