Goal
Let users verify a stored camera profile without creating a capture session or exposing its password in the page.
Acceptance criteria
- Each camera card has a Test connection action that posts only its profile ID to the existing
/api/camera/test endpoint.
- While pending, disable only the selected card's action and expose its busy state. Restore it in a
finally path.
- Put an accessible success or failure message beside that card in a
role="status", aria-live="polite" region, including request duration when available.
- The stored password is never rendered into HTML, JavaScript, a query string, a request body, or a diagnostic.
- The action works for the demo profile and real saved profiles and can be retried after an error.
- Existing antiforgery handling is reused.
- A page/integration test stores a profile with a sentinel password and proves the password is absent from the Cameras response HTML.
- Tests cover demo and saved-profile success, camera failure, and retry; the request body contains only
profileId.
- Tests and formatting checks pass.
Please comment with your proposed approach before starting. A draft PR is welcome.
Goal
Let users verify a stored camera profile without creating a capture session or exposing its password in the page.
Acceptance criteria
/api/camera/testendpoint.finallypath.role="status",aria-live="polite"region, including request duration when available.profileId.Please comment with your proposed approach before starting. A draft PR is welcome.