Saltearse al contenido

Servicios (apps)

El monorepo tiene siete servicios bajo apps/.

ServicioStackRol
api-gatewayGo + GinAuth, tenant middleware, webhooks WhatsApp, CRM, billing, proxy RAG
flow-engineGo + GinEjecutor de flujos (canvas), consumidor RabbitMQ, DLQ
ai-servicePython + FastAPI + LangChainRAG + LLM (BYOK), skill factory
dashboard-uiAstro 5 + React islandsUI del tenant (inbox, flows, agentes, knowledge, agenda)
control-planeGo + GinProvisioning por tenant, lifecycle, billing/suscripciones, auth central
ops-portalReact + ViteBack-office del operador
landingAstro 5Sitio público + signup + Embedded Signup

Puerta de entrada del tenant. Valida JWT, aplica el rol RLS, expone CRM, flujos, agentes, knowledge, agenda, billing y los webhooks de WhatsApp (firmados por HMAC). Hace de proxy hacia ai-service para RAG.

Consume eventos de RabbitMQ (message.received, flow.triggered) y ejecuta los nodos del canvas. Tiene límite de reintentos + DLQ para mensajes envenenados.

RAG sobre los documentos del workspace + acceso a LLM únicamente vía LangChain. El proveedor y la API key son del cliente (BYOK), leídos cifrados desde la DB del tenant.

UI del cliente (islas React sobre Astro): inbox/coexistencia, canvas de flujos, agentes + playground de chat, knowledge, agenda. Sin lógica de negocio (vive en api-gateway).

Plano de operación: provisiona el stack del tenant (Terraform), maneja el lifecycle, la auth central del signup y el billing/suscripciones (ver Billing). Tiene su propia DB (tablas cp_*), sin RLS — acceso restringido al servicio operador.

Back-office del operador (root): workspaces, finanzas, salud, logs, auditoría y suscripciones. Es un cliente del control-plane.

Sitio público en bongga.dev: marketing, signup y el Embedded Signup de WhatsApp.