settings

Update Slow Triage Target

Dedicated, field-specific write (P1-2, 2026-09-02 owner change-request) — and now the SOLE write path for slow_triage_target_seconds. The ops-view threshold control calls this instead of the whole-record PUT /settings/ above, so a concurrent monitoring_center_timezone change on another connection can never be lost — this endpoint doesn't read or write that column at all, closing the lost-update window a client-side fresh-GET-then-whole-record-PUT mitigation could only narrow. Originally additive alongside the whole-record PUT (which also accepted the target, omit-means-unchanged); that turned out to be the SAME hazard in the mirror direction — a stale timezone-editor payload carrying the target could revert a target set concurrently via this endpoint — so UpdateOrgSettingsRequest dropped the field entirely (Copilot re-review on PR #175) rather than being hardened further. The timezone editor keeps using the now-timezone-only PUT /settings/.

Literal path, no catch-all conflict with the / routes above.

put/settings/slow-triage-target

Request

  • Base URL
    https://api.verdun.ai (the document declares no server; this is the origin it was published from)
  • URL
    https://api.verdun.ai/settings/slow-triage-target
  • Auth
    HTTP bearer

Request body

slow_triage_target_secondsinteger required

Operator Performance 'slow triage' target in seconds (event-created -> disposition) to set. Writes ONLY this column — never touches monitoring_center_timezone, so a concurrent timezone change made by another client is structurally impossible to lose here (unlike the whole-record PUT /settings/, which re-sends whatever timezone value the caller last read and can revert a concurrent change).

Example request

{
  "slow_triage_target_seconds": 90
}

Response

Successful Response

monitoring_center_timezonestring nullable

IANA timezone the monitoring center's operators work in; null when unset (frontend shows site-local time only).

slow_triage_target_secondsinteger nullable

Operator Performance 'slow triage' target in seconds (event-created -> disposition); null when unset (frontend falls back to a 90s default).

ai_feedback_capture_enabledboolean

Dark-by-default gate for the operator AI-feedback panel. Written ONLY through PUT /settings/ai-feedback-capture-enabled (owner-only) — never this resource's own PUT, which is timezone-only. False until an owner turns it on; there is no meaningful 'unset' distinct from off.

deepalert_default_confidence_thresholdnumber required

The FLEET default DeepAlert confidence floor (0-100, lower = more sensitive) an ii_gated camera with no valid per-camera override uses. 20 until an owner changes it through PUT /settings/deepalert-default-confidence-threshold. Read-only here. Does not govern cameras on the legacy / II-off ingestion path.

deepalert_default_confidence_revisioninteger required

Revision of that fleet value: 0 at the default, +1 on every owner change. Send it back as expected_revision on the owner PUT.

Example response

{
  "monitoring_center_timezone": "America/New_York",
  "slow_triage_target_seconds": 90,
  "deepalert_default_confidence_threshold": 20
}

Changes

No recorded changes to this operation across all 2 revisions of this API.