📚 Documentación del Router Dinámico

¿Por qué existe esto? (El problema)

Con la llegada del código generado masivamente por IA, el ciclo de pruebas tradicional se rompió. Levantar todo el entorno local (Core, Mosquitto, Mongo, Redis, Combee, Frontends) vía docker-compose requiere demasiados recursos, causa colisiones de red y hace que las máquinas colapsen.

Por otro lado, si todo el mundo pushea sus pruebas directamente al entorno compartido de Staging, Staging se vuelve inestable. Si un desarrollador o agente de IA introduce un bug crítico en la API, todo el equipo de QA queda bloqueado hasta que se revierta el cambio.

💡 La Solución: Aislamiento por Peticiones (Request Isolation)
En lugar de levantar toda la arquitectura en tu computadora, utilizamos Review Apps efímeras en Heroku para la pieza específica que estés modificando. El Router Dinámico se encarga de tejer una ilusión: crea una red privada temporal solo para ti.

La Extensión de Chrome (Requerida)

Para que la magia funcione es obligatorio instalar nuestra extensión compañera de Chrome. Ella se encarga de inyectar el header X-Cliengo-Routes a nivel de red en todas tus peticiones a *.stagecliengo.com — incluyendo navegación directa, iframes y llamadas fetch/XHR.

Al hacer clic en el ícono de la extensión verás un popup con el estado actual: dot verde cuando está activa, lista de rutas configuradas, toggle ON/OFF para desactivarla sin perder la configuración, y un botón para volver a este panel.

Pasos para instalarla (Modo Developer):

  1. Clona o descarga el repo github.com/Cliengo/cliengo-router y ubicá la carpeta router-chrome-extension/.
  2. Abre Chrome y ve a la URL chrome://extensions/
  3. Activa el Modo de desarrollador (Developer mode) arriba a la derecha.
  4. Haz clic en "Cargar descomprimida" (Load unpacked) y seleccioná la carpeta router-chrome-extension/.
  5. ¡Listo! Regresa a este panel y verás que el aviso de advertencia amarillo desaparece.

La Magia de la Intercepción Invisible

Es fundamental entender una regla de oro de esta herramienta: Todo lo que configures aquí ocurre estrictamente en tu navegador y es completamente invisible para el resto del equipo.

Cuando aplicas una ruta personalizada, no estamos reconfigurando el servidor central ni tocando la base de datos de Staging. La extensión de Chrome usa la API declarativeNetRequest de Manifest V3 para inyectar el header X-Cliengo-Routes en todas tus peticiones a *.stagecliengo.com — con el mapa de servicios en formato JSON.

Al navegar por el CRM o Litten, tus herramientas de desarrollo (Network Tab) seguirán mostrando que te estás comunicando con las URLs oficiales (por ejemplo, verás que tus peticiones salen hacia https://combee.stagecliengo.com). Sin embargo, antes de que esa petición toque nuestros servidores, Cloudflare la intercepta en la nube a la velocidad de la luz.

El Edge Worker de Cloudflare lee el header X-Cliengo-Routes, parsea el JSON, y desvía la petición hacia tu Review App o tu túnel de Ngrok. Tu código local responde, y Cloudflare le devuelve la respuesta a tu navegador haciéndole creer que provino del Staging oficial. El aislamiento es perfecto.

graph TD A[Extensión de Chrome] -->|Inyecta X-Cliengo-Routes header| B[Navegador Frontend] B -->|Fetch / Navegación| C{Cloudflare Worker} C -->|Header ausente o vacío| D[Staging Oficial] C -->|Header con overrides| E[Review App / Ngrok Local] subgraph Edge [Cloudflare Edge] C end subgraph Cloud [Heroku / AWS] D E end style C fill:#18181b,stroke:#3b82f6,stroke-width:2px,color:#fff style D fill:#10b981,stroke:#047857,stroke-width:2px,color:#fff style E fill:#f59e0b,stroke:#b45309,stroke-width:2px,color:#fff style A fill:#3b82f6,stroke:#1d4ed8,color:#fff style B fill:#3f3f46,stroke:#27272a,color:#fff

Flujo de Trabajo (Paso a paso)

Imagina que quieres probar una nueva feature generada por IA en combee sin romper nada:

*Nota: También puedes pegar URLs manuales (como https://mi-app.ngrok.io) si tienes el backend corriendo en tu propia máquina.

Enlaces y Recursos Útiles

☁️ Dashboard de Cloudflare Workers

Monitorea las invocaciones, logs y métricas del Edge Router.

💜 Heroku Pipelines

Gestiona las Review Apps, variables de entorno (app.json) y builds de Heroku.

🛠️ Repo cliengo-router

Código fuente de la extensión, el Cloudflare Worker y este panel. Modificá router-cloudflare/wrangler.toml para agregar nuevos microservicios y hacé deploy con Wrangler.