Volver a la wiki

Onboarding guiado de descarga del Local Agent (PR #182, #293)

Descripción

Feature que ofrece al usuario una descarga guiada y contextual del Local Agent cuando lo necesita, pero no está instalado en su equipo.

Cierra la brecha de UX en el flujo de auto-discovery de red: hasta ahora, si el Agent no estaba en ejecución, el usuario veía solo un error seco ("Please start CreaRackAgent.exe") sin opciones. Ahora:

  1. Se detecta que el Agent NO está corriendo (probe a 127.0.0.1:5050/info).
  2. Se muestra un banner instalación con dos botones: Download Local Agent y Not now.
  3. Al pulsar Download: se descarga el instalador .exe (descarga del navegador, automatizada), se sondea cada 2.5s, y se cierra el banner automáticamente cuando el Agent conecta.
  4. Se ofrece en contextos específicos (discovery de red, agent_probe) — modelo “just-in-time”, no al iniciar la app (pues hay usuarios que solo leen datos del Sentinel central, sin necesidad de Agent local).

Contexto de negocio

Componentes técnicos

Módulo principal: agent_onboarding.js

Integración en flujos existentes

Estilos CSS

Carga en HTML

Flujo UX

Usuario intenta discovery de red
    → agent_probe.js / discovery.js sondean Agent
        → Falla el fetch a 127.0.0.1:5050/info
            → En catch: CreaRackAgentOnboarding.offer('discovery')
                → Banner: "Install the Local Agent"
                → Botones: Download | Not now
                    → Download: descarga .exe, sondea cada 2.5s
                    → Not now: cierra banner (marca sesión para no reofrecerlo)

No auto-disparo al cargar la app: El usuario que solo consulta datos centrales nunca verá el banner (model just-in-time).

Detalles de implementación

Detección del Agent

async function agentRunning() {
    try {
        const r = await fetch(`${AGENT_URL}/info`, { 
            signal: AbortController, 
            timeout: 1500ms 
        });
        return r.ok;
    } catch { return false; }
}

Polling

Diferencias con agent_lna_notice.js

MóduloQué detectaCuándo se muestraAcción
agent_lna_notice.jsAgent YA instalado pero permiso Local Network Access pendientePrimera vez / consentimiento pendienteExplica el popup del navegador para aceptar permiso
agent_onboarding.js (nuevo)Agent NO instaladoCuando se necesita en un flujo (discovery, etc.)Ofrece descargar el instalador

Ambos usan el estilo .lna-notice (banner flotante en la app).

Verificación (testeado en local)

Véase también

Subir