Volver a la wiki

¿Cómo detecta el frontend si el Local Agent está corriendo? ¿Cómo se construye la URL del agente (localhost:5050) y qué CORS/orígenes acepta el agente local?

Pregunta

¿Cómo detecta el frontend si el Local Agent está corriendo? ¿Cómo se construye la URL del agente (localhost:5050) y qué CORS/orígenes acepta el agente local?

Respuesta corta

El frontend hace un fetch a http://127.0.0.1:5050/info (o /). Si responde, el Agente está vivo y del JSON saca el agent_id para el bootstrap. Si el fetch falla (conexión rechazada), no hay Agente corriendo.

Detección

Construcción de la URL y CORS

El primer agente de una organización

El SaaS solo conoce agentes ya registrados (/api/agent/status los consulta en su propia base de datos). Para el primer agente de una org, esa fuente no sirve — el agente ya corre en el PC del usuario pero el SaaS aún no lo ha visto nunca. Antes de Agent 2.20.1, los gestos de emparejamiento (?setup_agent en la URL, botón “Download Agent”) esperaban a que /api/agent/status confirmara el agente online, y ese gate nunca se cumplía para el primero — el emparejamiento inicial era imposible desde el navegador (bug medido en la F2 de Dos Casas).

El fix (ObservatorySentinel.js, función _probeLocalAgent()) añade un sondeo directo a http://127.0.0.1:5050/info en esos mismos gestos con contexto explícito, precisamente para no disparar el aviso de permiso LNA del navegador sin motivo. Si el sondeo local responde 200, se procede al emparejamiento aunque el SaaS todavía no vea el agente registrado.

Tras detectarlo

El frontend obtiene el token local del SaaS (GET /api/agent/local-token) y lo inyecta como Authorization: Bearer en cada llamada a la API local (interceptor agent_auth.js). A partir de ahí puede abrir consolas SSH, lanzar discovery, etc. Ver la página sobre las credenciales del Local Agent.

Véase también

Subir