Skip to main content

Durable Entities

The DurableEntityController provides endpoints for inspecting and managing the state of Durable Entities β€” the per-camera state objects maintained by the Image Acquisition Engine's Durable Functions.

What Is a Durable Entity?​

Each camera has a corresponding CameraState Durable Entity that tracks:

FieldDescription
modeCurrent acquisition mode (SINGLE, PANO, LEASED, TURBO)
statusOnline/offline status
panPositionCurrent pan angle (0–360Β°)
tiltPositionCurrent tilt angle (-90Β° to 90Β°)
zoomLevelCurrent zoom level
lastImageTimestampWhen the last image was captured
commandQueuePending PTZ/focus/brightness commands
leaseEndTimeWhen a leased session expires
turboEndTimeWhen turbo mode expires

Entity keys follow the pattern: @CameraState@{deviceId}

Endpoints​

EndpointMethodPurpose
/durableentity/{deviceId}GETGet the current state of a camera's entity
/durableentityGETList all durable entities with their states
/durableentity/{deviceId}/signalPOSTSend a signal (command) to an entity

Why This Matters​

Durable Entity state is the source of truth for orchestration state. When debugging why a camera isn't capturing images or is stuck in the wrong mode, querying the durable entity reveals the internal state that the orchestration loop is operating on.

The DurableDataStoreService also syncs entity state to Table Storage for dashboard queries, so the Admin API can show aggregated status without querying the Durable Functions runtime directly.