Expand description
Camera configuration (HikVision ISAPI) API: device identity, video-encoding, clock/NTP, ONVIF + ISAPI integration, on-screen-display overlays, reboot, and a cross-camera bulk apply.
Reads (GET) are open to any authenticated principal (can_view); every mutation (PUT/POST) is
gated by manager+ (can_manage_registry) and written to the immutable audit log. The handlers
own persistence/audit; the device protocol lives behind the vendor-agnostic
CameraConfigProvider built per-camera by camera_config::for_camera. GET .../device_info
and POST .../onvif/ensure_user also refresh the camera_isapi cache row.
The reboot endpoint is DISRUPTIVE: it refuses to act unless the body carries confirm: true. The
bulk endpoint walks its target cameras SERIALLY, bounding each camera’s action with a timeout and
collecting a per-camera result so one unreachable device never aborts the run.