Instalar Etendo Main UI
Visión general
IMPORTANTE: ESTA ES UNA VERSIÓN BETA
- Está en desarrollo activo y puede contener funcionalidades inestables o incompletas. Úsela bajo su propia responsabilidad, especialmente en entornos de producción.
- Debe utilizarse con precaución, y siempre debe validar las copias de seguridad antes de ejecutar cualquier operación crítica.
Esta guía proporciona instrucciones para instalar y ejecutar Etendo Main UI, una interfaz de usuario moderna basada en React/TypeScript que ofrece una nueva experiencia de frontend para Etendo. La Main UI se ejecuta como un servicio en contenedor junto con su instancia de Etendo.
Requisitos
- Proyecto Etendo configurado correctamente.
-
Este proyecto depende de las siguientes herramientas:
- Docker: versión
26.0.0o superior - Docker Compose: versión
2.26.0o superior
Warning
Evite instalar Docker mediante Snap, ya que puede quedar restringido por este sandbox y no tener acceso a directorios del host como
/opt/, lo que puede impedir que los contenedores Docker de Etendo se inicien correctamente.Recomendación: instale Etendo usando la última ISO(que incluye Docker) o instale Docker siguiendo la guía de instalación oficial de su distribución.
Info
El módulo Docker Management, incluido como dependencia, permite la distribución de la infraestructura dentro de los módulos de Etendo, que incluyen contenedores Docker para cada servicio.
- Docker: versión
-
Token de acceso de Entidad
Aplicación>Configuración General>Entidad>EntidadDebe configurarse un token de cifrado de un solo uso para la autenticación. Este token es necesario para que Etendo Main UI inicie una sesión.
- Acceda a Etendo Classic como
System Administrator. - Vaya a
Entidad> pestañaSecure Web Service Configuration. - Haga clic en el botón Generar Clave para crear un token. El tiempo de caducidad se mide en minutos; si se establece en 0, el token no caduca.
Info
Este token no requiere ninguna acción; solo necesita generarse para que el proceso de autenticación funcione correctamente.
- Acceda a Etendo Classic como
Instalación
Etendo Main UI se distribuye dentro del bundle Platform Extensions, que incluye la infraestructura de Main UI y todos los módulos de backend necesarios para la nueva interfaz.
Info
Para poder incluir esta funcionalidad, debe instalarse el Platform Extensions Bundle.
Para ello, siga las instrucciones del marketplace: Platform Extensions Bundle.
Para más información sobre las versiones disponibles, compatibilidad con el core y nuevas funcionalidades, visite Platform Extensions - Notas de la versión.
Ejecutar Etendo Main UI
El ejemplo de configuración más sencillo utiliza Main UI ejecutándose en Docker y Tomcat ejecutándose localmente.
Otras configuraciones se detallan en la sección Configuración avanzada.
Configuración interactiva (recomendado)
-
Puede configurar Main UI de forma interactiva ejecutando:
Esto le guiará a través del proceso de configuración de todas las variables necesarias. Para más información, visite la guía de Instalación interactiva.
-
Inicie los servicios Docker:
Esto iniciará el contenedor de Main UI junto con cualquier otro servicio Docker configurado.
Configuración manual
-
Añada las siguientes líneas al archivo
gradle.properties:gradle.propertiesdocker_com.etendoerp.mainui=true etendo.classic.url=http://host.docker.internal:8080/etendo etendo.classic.host=http://localhost:8080/etendo authentication.class=com.etendoerp.etendorx.auth.SWSAuthenticationManager ws.maxInactiveInterval=3600 next.public.app.url=http://localhost:3000Variable Propósito (explicación simple) Notas Valor recomendado (local) Valor recomendado (producción) docker_com.etendoerp.mainui Habilita el servicio Docker de Main UI. El valor por defecto puede variar según el entorno. truetrueetendo.classic.url URL del backend utilizada por el servidor de Main UI para conectarse a Etendo Classic. Si Main UI se ejecuta en Docker y Tomcat se ejecuta localmente, debe usarse host.docker.internal.http://host.docker.internal:8080/etendohttps://your.backend.etendo.cloud/etendoetendo.classic.host URL del lado del cliente que el navegador utiliza para realizar solicitudes directas a Etendo Classic. URL que el navegador utiliza para solicitudes directas. En modo híbrido con Docker, use localhosthttp://localhost:8080/etendohttps://your-domain.com/etendoauthentication.class Clase Java que gestiona la autenticación entre Main UI y Etendo Classic. Requerida para la autenticación de Secure Web Services. com.etendoerp.etendorx.auth.SWSAuthenticationManagercom.etendoerp.etendorx.auth.SWSAuthenticationManagerws.maxInactiveInterval Duración de la sesión (en segundos) para la conexión WebSocket de Main UI. No afecta al tiempo de espera de sesión de Etendo Classic. El valor recomendado es 3600 segundos (1 hora). 36003600next.public.app.url URL pública donde los usuarios acceden a la aplicación Main UI. Debe apuntar a la URL del frontend accesible; para uso local, lo habitual es localhost. http://localhost:3000https://your.frontend.etendo.cloud -
Ejecute los siguientes comandos para configurar el módulo y actualizar los recursos:
-
Inicie los servicios Docker:
Esto iniciará el contenedor de Main UI junto con cualquier otro servicio Docker configurado.
Acceder a la Main UI
Una vez que todos los servicios estén en ejecución, la Main UI estará disponible en:
http://localhost:3000 (puerto por defecto)
Info
La URL exacta puede variar en función de su configuración de Docker.
Configuración avanzada
Esta sección está dirigida a desarrolladores que deseen contribuir o personalizar directamente el código base de Main UI.
Requisitos para desarrollo
- Node.js versión ^18.0.0 o superior
- pnpm versión ^9.15.2 (gestor de paquetes)
- Todos los requisitos de la instalación básica anterior.
Instalación manual de módulos (solo desarrollo)
Para entornos de desarrollo, necesita instalar manualmente los módulos requeridos:
com.etendoerp.openapicom.etendoerp.etendorxcom.etendoerp.metadatacom.etendoerp.metadata.template
Comandos rápidos de clonado
cd modules
# Clone required modules for development
git clone git@github.com:etendosoftware/com.etendoerp.etendorx.git
git clone git@github.com:etendosoftware/com.etendoerp.openapi.git
git clone git@github.com:etendosoftware/com.etendoerp.metadata.git
git clone git@github.com:etendosoftware/com.etendoerp.metadata.template.git
Estructura del proyecto de desarrollo
El workspace está organizado como un entorno único con múltiples paquetes:
com.etendorx.workspace-ui/
├── packages/
│ ├── api-client/ # Cliente API para comunicación con el backend
│ ├── ComponentLibrary/ # Componentes de UI reutilizables
│ └── MainUI/ # Aplicación principal
├── package.json
├── pnpm-workspace.yaml
└── README.md
Pasos de instalación para desarrollo
-
Clone el repositorio de desarrollo de Main UI:
-
Instale todas las dependencias del proyecto usando
pnpm:Este comando instalará las dependencias de todos los paquetes del workspace.
-
Cree un archivo
.env.localen el directoriopackages/MainUI: -
Añada la configuración de su backend:
Info
Sustituya las URLs por las URLs reales de su backend de Etendo.
-
Compile los paquetes necesarios en el orden correcto:
-
Inicie el servidor de desarrollo de Main UI:
La aplicación estará disponible en http://localhost:3000 por defecto.
Flujo de trabajo de desarrollo
Comandos a nivel raíz (recomendado)
El workspace proporciona alias prácticos a nivel raíz para tareas comunes:
# Start Main UI development server
pnpm dev
# Build all packages
pnpm build
# Run tests across all packages
pnpm test
# Lint all packages
pnpm lint
# Fix lint issues automatically
pnpm lint:fix
# Format code across all packages
pnpm format
# Auto-fix formatting issues
pnpm format:fix
# Clean all build artifacts
pnpm clean
# Install dependencies
pnpm install
Comandos por paquete individual
Cada paquete también puede ejecutarse de forma independiente usando comandos de workspace de pnpm:
# Run MainUI development server
pnpm --filter @workspaceui/mainui dev
# Build API Client
pnpm --filter @workspaceui/api-client build
# Build Component Library
pnpm --filter @workspaceui/componentlibrary build
# Run tests for API Client
pnpm --filter @workspaceui/api-client test
# Lint specific package
pnpm --filter @workspaceui/mainui lint
Linting y formateo
El proyecto utiliza Biome para linting y formateo en todos los paquetes:
# Lint all packages
pnpm lint
# Fix lint issues
pnpm lint:fix
# Format code
pnpm format
# Auto-fix formatting
pnpm format:fix
Detalles de los paquetes
API Client (@workspaceui/api-client)
Contiene definiciones TypeScript y funciones de API para comunicarse con el backend de Etendo. Proporciona:
- APIs de autenticación
- APIs de metadatos
- APIs de datasource
- APIs de integración con Copilot
Component Library (@workspaceui/componentlibrary)
Una colección de componentes React reutilizables construidos con Material-UI. Incluye:
- Componentes de formulario (inputs, selectores, etc.)
- Componentes de navegación
- Componentes modales y de diálogo
- Componentes de visualización de datos
Main UI (@workspaceui/mainui)
La aplicación principal de Next.js que proporciona la interfaz de usuario completa. Funcionalidades:
- Arquitectura moderna React/TypeScript
- Renderizado del lado del servidor con Next.js
- Integración del tema de Material-UI
- Diseño responsive
Ejecutar pruebas
Ejecute las suites de pruebas para asegurar que todo funciona correctamente
El entorno de desarrollo ya está listo para compilar y personalizar Etendo Main UI.
This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L.
