Primeros pasos
Conceptos básicos
ConnXL es un pequeño conjunto de objetos que anidan de forma limpia: una organización posee complementos, cada complemento lo sirve un agent y se divide en entornos, y cada entorno contiene conexiones y funciones. Entender esta jerarquía hace evidente todo lo demás.
6 min de lectura
Organización
Tu tenant. Los usuarios, los webhooks de notificación y los miembros viven a nivel de organización. Una organización contiene muchos complementos.
Complemento
Un complemento es lo que entregas a tus usuarios finales: una entrada en el centro de administración de Microsoft 365, un espacio de nombres de fórmulas, un panel de tareas. Lo sirves ejecutando el binario connxl-agent en tu propio host — un agent por entorno (ver más abajo). En el panel, el complemento es la cosa de nivel superior que creas, nombras y entre las que cambias.
Entorno
Un complemento posee un conjunto ordenado de entornos con nombre — hasta cinco, configurados desde el panel. Un complemento nuevo empieza con un único entorno de Development.
-
Cada entorno ejecuta su propio agent — su propio proceso
connxl-agent, autenticado mediante un token de inscripción de un solo uso que se intercambia por un certificado de cliente mTLS limitado a ese entorno. Es el certificado el que decide qué entorno sirve un agent. Un complemento con entornos de Development y Production lo sirven dos agents, activos en paralelo, y un agent puede escalar a varias réplicas que comparten el certificado y la configuración del entorno. -
El entorno más bajo (Development) es la fuente — el único lugar donde se crea o edita la estructura (funciones, definiciones de conexión, botones de la cinta, el panel de tareas).
-
Cualquier otro entorno es un destino de promoción: allí editas solo valores específicos del entorno — credenciales, hosts, caché. Las ediciones estructurales se rechazan (el backend lo impone, no solo la interfaz).
-
Promote copia la estructura de la fuente en un entorno posterior conservando los valores propios de ese entorno, así puedes mover un cambio a QA o a producción sin tocar sus credenciales.
Conexión
Un puntero a una de tus fuentes de datos — una base de datos, una API HTTP, una función en la nube, un archivo remoto o una caché. Las conexiones se definen en el panel (credenciales por referencia secret://) y las resuelve el agent en el momento de la ejecución. Consulta Conexiones para el catálogo completo.
Función
Una función asocia una conexión a una fórmula que tus usuarios escriben, p. ej. =CONNXL.SALES.TOP_CUSTOMERS(10). Las funciones varían en dos ejes:
- Forma de salida — cómo se ve el resultado en la cuadrícula: un único valor, una fila, una tabla (se desborda en un rango) o una entidad (un tipo de datos vinculado con accesores de campo como
=A2.Price). - Modelo de ejecución — sync (calculado localmente), async (el predeterminado; se ejecuta en el agent) o streaming (con actualización en vivo).
La división panel / agent
El panel es la configuración de referencia — guarda lo que hacen tus complementos y envía los cambios a tus agents por un canal de streaming. El agent es el plano de ejecución — sirve el complemento a Excel y ejecuta cada llamada de función contra tus datos. El panel habla solo con este backend; nunca habla con tu agent directamente, y nunca toca tus fuentes de datos.
El invariante del producto
Los datos del cliente nunca atraviesan nuestro backend. Tus credenciales y los datos de tus celdas permanecen dentro de tu red — la única forma de usar ConnXL es ejecutar un agent. El panel solo ve metadatos: latencia, estado, resultado de caché y correos de usuario con hash SHA-256.
Guía rápida
Levanta un complemento de Excel funcional que ejecuta tus propias funciones contra tus propios datos, sin que los datos de tu hoja de cálculo salgan nunca de tu red. Esto recorre todo el camino, desde el registro hasta escribir tu primera fórmula =NAMESPACE.MODULE.FN(…) en una celda.
Glosario
Todos los términos de ConnXL en un solo sitio, con la distinción que más se confunde: un complemento es lo que creas, un agent es lo que lo ejecuta.