Ir al contenido

API de eventos

La API Event representa un proceso que cambia con el tiempo y termina finalmente. Al crear un Event se devuelve un event_id; las actualizaciones y el cierre usan ese identificador para permanecer dentro del mismo ciclo de vida.

POST /event/create
POST /event/update
POST /event/close

El cuerpo de la petición debe ser JSON y los campos desconocidos se rechazan. Si un Gateway privado habilita PUSHGO_TOKEN, incluya Authorization: Bearer <token>.

EncabezadoRequeridoDescripción
Content-Type: application/jsonSolicitar formato del cuerpo.
Authorization: Bearer <token>Dependiente del GatewaySe requiere solo cuando un Gateway privado habilita PUSHGO_TOKEN.
/event/create -> event_id
|
+-> /event/update can be called many times
|
+-> /event/close marks the event as ended
CampoTipoRequeridoDescripción
channel_idstringID de Channel de destino.
passwordstringContraseña Channel, normalmente de 8 a 128 caracteres.
op_idstringNoClave de idempotencia; se genera y se devuelve si se omite.
thing_idstringNoAsocie este despacho de eventos con un Thing existente.
ciphertextstringNoCarga útil de texto cifrado E2EE opcional.
RutaCampos comerciales requeridos
/event/createtitle, status, message, severity, event_time
/event/updateevent_id, status, message, severity, event_time
/event/closeevent_id, status, message, severity, event_time
CampoTipoReglas
event_idstringRequerido para actualizar y cerrar; no debe enviarse al crear.
titlestringRequerido al crear; Opcional al actualizar y cerrar.
descriptionstringOpcional; las cadenas vacías se consideran faltantes.
statusstringRequerido; no vacío, máximo 24 caracteres.
messagestringRequerido; no vacío, máximo 512 caracteres.
severitystringRequerido; Sólo critical, high, normal, low.
event_timenumberRequerido; cuando ocurrió esta actualización, Unix milisegundos.
started_atnumberCrear únicamente; hora general de inicio del evento.
ended_atnumberSólo cerrar; hora general de finalización del evento.
tagsstring[]Hasta 32 elementos, con un máximo de 64 caracteres cada uno, recortados y sin duplicados.
imagesstring[]Hasta 32 URL de imágenes, con un máximo de 2048 caracteres cada una.
attrsobjectParche de objetos; null quita una llave; No se permiten matrices.
metadataobjectSólo valores escalares; clave <= 64, valor <= 512.
Ventana de terminal
curl -X POST https://gateway.pushgo.dev/event/create \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"title": "Production deployment",
"status": "running",
"message": "Deployment started",
"severity": "normal",
"event_time": 1713750000000,
"started_at": 1713750000000,
"attrs": {
"service": "api",
"revision": "8f3c2a1"
}
}'

Respuesta:

{
"success": true,
"data": {
"channel_id": "YOUR_CHANNEL_ID",
"op_id": "op-20260422-001",
"event_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"accepted": true
},
"error": null,
"error_code": null
}

Guarde el event_id devuelto; actualizar y cerrar llamadas lo necesitan.

Ventana de terminal
curl -X POST https://gateway.pushgo.dev/event/update \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"event_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"status": "publishing",
"message": "Image pushed, publishing release",
"severity": "normal",
"event_time": 1713750300000,
"attrs": {
"progress": 0.75
}
}'

A /event/update se le puede llamar muchas veces. Cada actualización debe describir el cambio actual, no repetir todo el historial.

Ventana de terminal
curl -X POST https://gateway.pushgo.dev/event/close \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"event_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"status": "success",
"message": "Production deployment completed",
"severity": "normal",
"event_time": 1713750600000,
"ended_at": 1713750600000,
"attrs": {
"progress": 1
}
}'

Para fallas, use status=failed y eleve severity cuando sea apropiado.

Si el evento ocurre en una entidad persistente, incluya thing_id.

{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"thing_id": "3b7fd2e87d7d4d6d9c7f3a318ac21f02",
"title": "Database lag",
"status": "open",
"message": "Replica lag exceeded 30 seconds",
"severity": "high",
"event_time": 1713750000000,
"started_at": 1713750000000
}

Thing identifica el objeto; Event describe el proceso que le sucede.

Las API Event utilizan el sobre de respuesta compartido. accepted=true significa que el Gateway entró en despacho, no que todos los dispositivos hayan mostrado una notificación del sistema.

EstadoRazón típica
400Falta campo obligatorio de ruta, campo desconocido, severity no válido, attrs no válido.
401El token privado Gateway Bearer falta o es incorrecto.
404Channel o event_id no existe.
413El cuerpo de la petición supera los 32 KB.
503El envío no se aceptó por completo.