Volver a la wiki

reload_targets pide la lista por REST en vez de subir el tope de mensaje de Daphne

Contexto

Task #328: en una organización con una flota grande, la lista de equipos que el servidor envía al Agente por WebSocket podía superar 1 MiB. Daphne 4.2.2 rechaza mensajes WebSocket salientes de más de 1 MiB por defecto (tope del parche de seguridad PYSEC-2026-213, en main desde el 10-07-2026), y el código que enviaba la lista (_send_targets) se tragaba el error en silencio: el Agente se quedaba con una lista de equipos desactualizada sin ningún aviso.

Opciones consideradas

  1. Subir el tope de Daphne (--websocket-max-message-size 8388608, 8 MiB) para que el mensaje quepa entero. Primer intento, descartado.
  2. El Agente pide la lista por REST en vez de recibirla empujada por WebSocket, y el servidor solo manda un aviso corto (menos de 100 bytes) de que hay cambios.

Decisión elegida

Opción 2. El Agente declara la capacidad caps=reload_targets en la URL de conexión WebSocket; el servidor la detecta antes de aceptar la conexión y, en vez de empujar la lista completa, manda solo el aviso diminuto. El Agente entonces pide la lista completa por REST, sin límite de tamaño de mensaje WebSocket. Una respuesta vacía del aviso nunca borra la lista que el Agente ya tiene cacheada. Los Agentes antiguos (sin la capacidad declarada) siguen el camino de siempre — con el fallo de tamaño ya no silencioso, sino registrado.

Se retiró explícitamente de esta rama la subida del tope de Daphne: es un parche de seguridad (PYSEC-2026-213) y decisión de Edu fue no tocarlo — la solución de fondo cambia el protocolo, no relaja la protección.

Consecuencias

Status

accepted — Agente 2.28.0, v1.147.1.

Véase también

Subir