Saltearse al contenido

Workflows

Admin → Workflows (/admin/workflows) es el constructor de automatización sin código. Cada workflow vincula uno o más triggers (eventos) a un conjunto de acciones, filtrado por condiciones. Los workflows corren en el worker de argus-api y pueden publicar en chat, dirigir un dock, lanzar una tarea de vuelo, o encadenar otro workflow.

Requiere admin o superadmin. El motor está en desarrollo activo — las páginas a continuación describen lo que se entrega hoy más lo que está en staging tras validación pero aún no habilitado en runtime; señalado donde sea relevante.

La lista

Dos modos de vista — una lista de tarjetas compacta y un canvas DAG (alternar en la cabecera). Por workflow la lista muestra:

  • Nombre, descripción.
  • Estado Habilitado / pausado.
  • Recuento de triggers y recuento de acciones.
  • Estado de la ejecución más reciente.
  • Insignia de override por misión (cuando está presente).

La cabecera muestra {workflowCount} total y {enabledCount} activos.

Triggers

Desde WORKFLOW_TRIGGER_TYPES, agrupados exactamente como el constructor los agrupa:

  • Vuelosflight.started, flight.completed, flight.failed.
  • Alertasalert.cas, alert.geofence, alert.hms, geofence.enter, geofence.exit.
  • IA / Multimediadetection.new, media.captured.
  • Docksdock.online, dock.offline.
  • Operacionesoperation.created, operation.started, operation.completed.
  • Sensoresbattery.low, weather.threshold, timeWindow.weather.
  • Programaciónschedule.cron, schedule.interval.
  • Externoswebhook.received, manual.
  • Compuestos (aspiracional)workflow.completed, workflow.failed, compound (AND/OR de triggers).

Este conjunto es un superset de la lista de eventos de webhook — cualquier cosa a la que puedas suscribir un webhook, también puedes disparar un workflow sobre ella.

Condiciones

Las condiciones son filtros de payload evaluados después de que el trigger dispara. Una condición es {leftPath} {operator} {rightValue} donde leftPath es un JSONPath dentro del payload del evento.

Operadores de CONDITION_OPERATORS:

OperadorEtiqueta
eq / neq= / ≠
gt / gte> / ≥
lt / lte< / ≤
contains / not_containspertenencia a cadena o array
regexcoincidencia completa de RegExp

Las condiciones se combinan con AND en el nivel superior. Usa ramas de acción condition para OR.

Acciones

Desde WORKFLOW_ACTION_TYPES, agrupadas por categoría:

Notificaciones

  • Send Webhook (POST de un disparo), Send Email (plantillas Handlebars), Send Slack (Block Kit), Send SMS (Twilio), Copilot Alert (banner de master-caution estilo CAS en un HUD de misión).

Drone / Dock

  • Launch Mission (desde una plantilla, opcionalmente en un dock específico), Fly Route (misión de waypoints), Return Dock Home, Open / Close Dock Cover, Capture Photo/Video, Upload Media (dock → S3), Download Telemetry.

Imagen / IA

  • Run Mapping (2D/3D), Change Detection, Generate Report (dispara anticipadamente el pipeline de informe de misión con IA), Run AI Detection.

Streaming

  • Start / Stop Stream Forward — retransmite un stream TACLINK a un RTMP / SRT externo.

Operaciones

  • Create Map Flag — suelta un pin. Update Task Status.

Datos / Código (aspiracional para la mayoría de orgs)

  • Firestore Read / Write, HTTP Call, Execute Script (V8 sandbox, solo Sovereign), Transform Data (JSONata).

Control de flujo

  • Delay, Branch / If-Else (condition), Parallel, Wait For Condition, Human Approval (approval_gate), Loop, On Failure (branch_on_failure).

Plantillas

El drawer Plantillas aloja workflows prefabricados — “HMS Critical → Slack + RTH”, “Detection watchlist hit → Copilot alert”, “Mission complete → Generate report + email team”. Elige uno y el constructor pre-rellena trigger, condiciones y acciones.

Override por misión

Los workflows se aplican a nivel org por defecto pero pueden anularse por misión. En el tile de ajustes de misión un admin ve cada workflow de org habilitado como un toggle y puede deshabilitar específicos solo para esa misión. Los overrides se almacenan en el documento de misión y nunca modifican el workflow a nivel de org.

Ejecuciones, versiones, métricas

  • Validación en vivo — el constructor señala campos obligatorios faltantes, cron inválido, ramas inalcanzables y conflictos de política de roles. Guardar está deshabilitado mientras existan errores.
  • Ejecuciones — ejecuciones cronológicas con estado de paso, snapshot de payload y detalle de error.
  • Versiones — cada guardado es una nueva versión; vuelve atrás desde la lista.
  • Métricas — tasa de éxito, duración mediana y estimación de coste (30 d).
  • Auditorías — quién creó, editó, habilitó o deshabilitó el workflow.
  • Políticas de rol — mapea WorkflowActionType → roles permitidos, aplicado antes de que cada acción se ejecute.

Relacionados