Alerts notify operators that action is needed. They are displayed prominently in the UI (environment view, twin detail, etc.). Alerts have a category:Documentation Index
Fetch the complete documentation index at: https://docs.cyberwave.com/llms.txt
Use this file to discover all available pages before exploring further.
- technical (default): operational or hardware events (e.g. robot stuck, calibration needed).
- business: business-process events (e.g. order delayed, SLA threshold exceeded).
- A robot needs calibration.
- A robot got stuck and needs remote takeover.
- A sensor reading is out of expected range.
- An order has exceeded its SLA deadline.
Model
Every alert belongs to a workspace and must be attached to at least one of: twin, environment, or workflow.| Field | Type | Notes |
|---|---|---|
name | string | Human-readable title |
description | text | Optional details |
alert_type | string | Machine-readable code (e.g. calibration_needed, robot_stuck) |
severity | enum | info, warning, error, critical (default: warning) |
status | enum | active, acknowledged, resolved, silenced (default: active) |
source_type | enum | edge, simulation, cloud, workflow (default: edge) |
category | enum | technical, business (default: technical) |
Lifecycle
- Active: new alert, requires attention.
- Acknowledged: an operator has seen it but the issue is not yet fixed.
- Resolved: the root cause has been addressed (by edge device or operator).
- Silenced: suppressed workspace-wide without resolving the root cause.
Idempotent resolve and silence
ThePOST /api/v1/alerts/{uuid}/resolve and POST /api/v1/alerts/{uuid}/silence endpoints are idempotent:
- Resolving an already-resolved alert returns
200with the alert body (no-op). - Resolving a silenced alert is allowed — it transitions the alert to resolved.
- Silencing an already-silenced alert returns
200with the alert body (no-op). - Silencing a resolved alert returns
400.
Workflow-scoped alerts
Alerts produced by a workflow’ssend_alert node carry a workflow_uuid, and Alert.workflow is set on the backend. List alerts for a single workflow with:
client.publish_alert(..., workflow_uuid=WORKFLOW_UUID, workflow_node_uuid=..., workflow_execution_uuid=...). The SDK forwards workflow_uuid as a top-level field (sets the FK) and merges workflow_node_uuid / workflow_execution_uuid into metadata for full provenance.
Source attribution: metadata.source_chain
Every alert raised by a workflow’s send_alert node carries an ordered source_chain under metadata describing each upstream node that fed into the decision. The chain is built generically — any node emitter that opts in by parking a _source_summary on its output dict contributes an entry, so the mechanism works equally well for camera-perception, audio-track, alert-triggered, manual, scheduled, or any future trigger source.
Each entry includes:
kind— short identifier (camera_frame,audio_track,alert_trigger,manual_trigger,schedule_trigger,call_model,detection_event_gate,conditional).node_uuid— the workflow node that contributed the entry.- Kind-specific fields. Examples:
twin_uuid+sensorfor camera/audio triggers;model_uuid+model_name+ a cappeddetections_sampleforcall_model;mode+matched_classes+cooldown_secondsfordetection_event_gate.
camera_frame → call_model → send_alert workflow:
- The chain is purely additive. Adding
_source_summarydoes not changededupe_hash(computed overname + description + alert_type + severity + status + twin_uuid), so dedupe behavior is unchanged. detections_sampleis capped to keep alert metadata bounded; the originaldetections_totalis preserved.- User-supplied static
metadatakeys always win on conflict — the source chain only fills inmetadata['source_chain']when not already provided.
Edge Core system alerts
Edge Core automatically raises technical alerts for operational issues. These arecategory: technical, source_type: edge.
alert_type | Severity | Trigger |
|---|---|---|
driver_start_failure | error | Driver container cannot reach a stable running state |
driver_restart_loop | error | Driver restarts too frequently (circuit-breaker tripped) |
driver_health | warning | Driver container stopped unexpectedly |
model_download_failure | warning | Required ML model could not be downloaded |
worker_start_failure | warning | Worker container failed to start |