Skip to main content

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.