Apps personalizadas (Custom Gestiono Apps)
Extender Gestiono con pantallas y flujos propios
Las apps personalizadas te permiten extender Gestiono con pantallas y flujos propios, usando un bundle JavaScript que Gestiono carga dentro del Dashboard.
Cuándo usar una app personalizada
- Necesitas UI propia dentro de Gestiono (un módulo interno, una consola operativa, una pantalla de auditoría).
- Quieres datos “a tu manera” sin tocar el core: guardas JSON por organización usando
app-data. - Quieres reutilizar la API oficial (usuarios, recursos, tareas, etc.) y combinarla con tus campos personalizados.
¿Qué puedes hacer con una app personalizada?
- Crear UI a medida para procesos internos (ej: “órdenes internas”, “inspecciones”, “CRM liviano”).
- Guardar datos propios usando el storage multi-tenant de apps (
app-data). - Consumir datos nativos de Gestiono vía API (usuarios, recursos, tareas, etc.).
Requisitos (permisos y acceso)
- Autenticación: Las rutas de apps están protegidas con sesión (cookies/token) o API keys firmadas (ver Autenticación).
- Plan/permisos: En el Dashboard existe “App Studio” y acciones como “Explorar Datos” según permisos de la organización.
Modelo mental: app → releases → ejecución
- Creas una app (
POST /v1/apps) y obtienes un appId. - Subes un release (un archivo
.js) conPOST /v1/apps/release. - Cuando alguien abre
/app/<appId>en el Dashboard, Gestiono carga el último release aprobado/permitido y ejecuta tu script.
Contrato de ejecución (runtime contract)
El Dashboard renderiza un contenedor con id app-container-<appId>. Tu bundle debe “montarse” ahí (con React, Vanilla JS, Vue, etc.).
Desarrollo: correr un bundle en modo “dev”
Para probar un build sin publicarlo como release, puedes abrir la app pasando appJs como query param. El Dashboard cargará ese script directamente:
/app/<APP_ID>?appJs=https://tu-host.com/tu-bundle-dev.js
Nota: verás un badge indicando que estás corriendo una versión de desarrollo.
Cómo una app maneja datos personalizados
Cada app puede guardar “registros” JSON por organización mediante /v1/apps/data. Esto permite que tu app tenga su propia “base de datos” (sin migraciones) usando el campo type como “tabla/colección”.
Siguientes pasos
- Guardar datos personalizados con
app-data. - Descubrir tipos de datos y explorar data en múltiples organizaciones (owner).
- Subir y publicar releases (PRIVATE / ORGANIZATION / PUBLIC).