External Integrations
The Admin API integrates with several external systems through dedicated HTTP clients registered in the application layer.
UCSD Metadata APIβ
The IUCSDClient (provided by the Alert.CA.UCSDService library) is used to:
- Sync device configurations β Import camera lists and settings from UCSD
- Retrieve credentials β Fetch camera access credentials for onboarding
- Test device access β Validate connectivity to test cameras
See the UCSDService documentation for protocol details.
ESRI Feature Layersβ
The IESRIClient and IFeatureLayerService manage camera representation on ESRI maps:
- Add cameras to the feature layer when onboarded
- Update status (online/offline) reflected on the map
- Remove cameras from the feature layer when decommissioned
- Sync location data from uploaded location files
Microsoft Graphβ
The IGraphService integrates with Microsoft Graph API for:
- User lookup β Resolving user identities from Entra ID
- Group membership β Validating agency/role assignments
HTTP Client Registrationβ
All external clients are registered in Program.cs using typed HTTP client factories:
builder.Services.AddVAPIXHttpClient(azureConfig); // VAPIX camera protocol
builder.Services.AddGraphServices(azureConfig); // Microsoft Graph
builder.Services.AddESRIClient(azureConfig); // ESRI GIS
builder.Services.AddJWTService(azureConfig); // JWT token service
Configuration for each client (base URLs, auth credentials, timeouts) is loaded from Azure App Configuration with Key Vault references for secrets.