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:
| Field | Description |
|---|---|
mode | Current acquisition mode (SINGLE, PANO, LEASED, TURBO) |
status | Online/offline status |
panPosition | Current pan angle (0β360Β°) |
tiltPosition | Current tilt angle (-90Β° to 90Β°) |
zoomLevel | Current zoom level |
lastImageTimestamp | When the last image was captured |
commandQueue | Pending PTZ/focus/brightness commands |
leaseEndTime | When a leased session expires |
turboEndTime | When turbo mode expires |
Entity keys follow the pattern: @CameraState@{deviceId}
Endpointsβ
| Endpoint | Method | Purpose |
|---|---|---|
/durableentity/{deviceId} | GET | Get the current state of a camera's entity |
/durableentity | GET | List all durable entities with their states |
/durableentity/{deviceId}/signal | POST | Send 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.