📚 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 en todos los proyectos de frontend de Cliengo (que tienen políticas estrictas de CORS y no envían cookies cross-origin por defecto en métodos POST/PATCH), es obligatorio instalar nuestra extensión compañera de Chrome.

Esta extensión es súper liviana, no tiene interfaz gráfica propia, y funciona como un puente invisible: lee las rutas que configuras en este panel y se asegura de inyectarlas a nivel de red en todas tus peticiones.

Pasos para instalarla (Modo Developer):

  1. Descarga el archivo cliengo-router-extension.zip y descomprímelo en una carpeta.
  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 el botón "Cargar descomprimida" (Load unpacked) y selecciona la carpeta que acabas de descomprimir.
  5. ¡Listo! Regresa a este panel y verás que el aviso de advertencia amarillo desaparece.

Nota: Si en el futuro se sube a la Chrome Web Store oficial de Cliengo, actualizaremos este enlace para que sea a un click.

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. Simplemente inyectamos una pequeña cookie criptográfica en tu navegador.

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 tu cookie secreta, asiente en silencio, 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[Navegador Frontend] -->|Fetch API| B{Cloudflare Worker} B -->|No hay Cookie| C[Staging Oficial] B -->|Cookie detectada| D[Review App / Ngrok Local] subgraph Edge [Cloudflare Edge] B end subgraph Cloud [Heroku / AWS] C D end style B fill:#18181b,stroke:#3b82f6,stroke-width:2px,color:#fff style C fill:#10b981,stroke:#047857,stroke-width:2px,color:#fff style D fill:#f59e0b,stroke:#b45309,stroke-width:2px,color:#fff style A 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.

🛠️ Cloudflare Wrangler (CLI)

Si necesitas añadir un nuevo microservicio al Worker, modifica `wrangler.toml` en el repo `cliengo-env` y haz deploy con Wrangler.