oggui/DOCUMENTACION_FUNCIONAL_OGW...

290 lines
11 KiB
Markdown

# Documentación Funcional - OgWebconsole
## Descripción General
**OgWebconsole** es una aplicación web desarrollada en Angular 18 que proporciona una interfaz de gestión integral para sistemas de computación distribuida, especialmente diseñada para entornos educativos y laboratorios. La aplicación permite administrar clientes, unidades organizativas, comandos, imágenes, calendarios y configuraciones de red de manera centralizada.
**URL de Acceso:** https://localhost:4200/
## Arquitectura del Sistema
### Tecnologías Utilizadas
- **Frontend:** Angular 18 con Angular Material
- **Autenticación:** JWT (JSON Web Tokens)
- **Internacionalización:** ngx-translate (Español/Inglés)
- **Gráficos:** ngx-charts
- **Notificaciones:** ngx-toastr
- **Tours Guiados:** ngx-joyride
### Sistema de Roles
La aplicación implementa un sistema jerárquico de roles con diferentes niveles de acceso:
1. **Super Admin** (`super-admin`): Acceso completo a todas las funcionalidades
2. **OU Admin** (`ou-admin`): Administrador de unidad organizativa
3. **OU Operator** (`ou-operator`): Operador de unidad organizativa
4. **OU Minimal** (`ou-minimal`): Acceso mínimo de solo lectura
5. **User** (`user`): Usuario básico
## Módulos Principales
### 1. Gestión de Grupos y Unidades Organizativas
**Ruta:** `/groups`
**Descripción:** Módulo central para la gestión de la estructura organizativa jerárquica.
**Funcionalidades:**
- Visualización en árbol de unidades organizativas (Centros, Aulas, Grupos)
- Gestión de clientes individuales y masiva
- Filtros avanzados por nombre, IP, MAC y estado
- Vista de lista y tarjeta para clientes
- Estadísticas en tiempo real de clientes (Online, Offline, Ocupados)
**Casos de Uso:**
- **Crear Estructura Organizativa:** Un administrador puede crear centros, aulas y grupos de clientes
- **Gestionar Clientes:** Añadir, editar, eliminar y mover clientes entre unidades organizativas
- **Monitoreo de Estado:** Visualizar el estado en tiempo real de todos los clientes conectados
- **Búsqueda Avanzada:** Localizar clientes específicos por múltiples criterios
### 2. Administración de Usuarios y Roles
**Ruta:** `/users`, `/roles`, `/env-vars`
**Descripción:** Gestión completa del sistema de usuarios y permisos.
**Funcionalidades:**
- CRUD de usuarios con asignación de roles
- Gestión de roles con permisos granulares
- Variables de entorno del sistema
- Cambio de contraseñas
**Casos de Uso:**
- **Gestión de Usuarios:** Crear cuentas para administradores y operadores
- **Control de Acceso:** Asignar roles específicos según responsabilidades
- **Configuración del Sistema:** Modificar variables de entorno críticas
### 3. Gestión de Comandos
**Rutas:** `/commands`, `/commands-groups`, `/commands-task`, `/commands-logs`
**Descripción:** Sistema completo de ejecución y programación de comandos.
**Funcionalidades:**
- Creación y edición de comandos personalizados
- Agrupación de comandos para ejecución masiva
- Programación de tareas con calendario
- Trazabilidad completa de ejecuciones
- Logs detallados de todas las operaciones
**Comandos Predefinidos:**
- Encender/Apagar equipos
- Reiniciar sistemas
- Crear/Desplegar imágenes
- Particionar y formatear discos
- Inventarios de software y hardware
- Ejecución de scripts personalizados
**Casos de Uso:**
- **Mantenimiento Programado:** Ejecutar tareas de mantenimiento en horarios específicos
- **Despliegue Masivo:** Aplicar configuraciones a múltiples clientes simultáneamente
- **Monitoreo de Ejecución:** Seguir el progreso de comandos en tiempo real
- **Auditoría:** Revisar historial completo de operaciones realizadas
### 4. Gestión de Imágenes y Repositorios
**Rutas:** `/images`, `/repositories`, `/pxe-images`
**Descripción:** Administración de imágenes del sistema y repositorios.
**Funcionalidades:**
- Gestión de imágenes OgLive
- Repositorios Git y monolíticos
- Plantillas PXE para arranque de red
- Importación y exportación de imágenes
- Conversión entre formatos de imagen
**Casos de Uso:**
- **Despliegue de Sistemas:** Crear y distribuir imágenes de sistemas operativos
- **Gestión de Versiones:** Control de versiones de imágenes mediante Git
- **Configuración de Arranque:** Configurar plantillas PXE para diferentes tipos de arranque
- **Backup y Restauración:** Crear copias de seguridad de configuraciones
### 5. Configuración de Red y DHCP
**Rutas:** `/subnets`, `/ogdhcp-status`
**Descripción:** Gestión de configuración de red y servicios DHCP.
**Funcionalidades:**
- Configuración de subredes
- Gestión de clientes DHCP
- Monitoreo del estado del servicio DHCP
- Configuración de parámetros de red
**Casos de Uso:**
- **Configuración de Red:** Definir subredes y rangos de IP
- **Gestión de Clientes:** Asignar direcciones IP automáticamente
- **Monitoreo de Red:** Supervisar el estado de los servicios de red
### 6. Gestión de Calendarios
**Ruta:** `/calendars`
**Descripción:** Sistema de calendarios para control de disponibilidad de equipos.
**Funcionalidades:**
- Creación de calendarios personalizados
- Configuración de horarios de disponibilidad
- Excepciones y reglas especiales
- Integración con Remote PC
**Casos de Uso:**
- **Control de Acceso:** Definir horarios de uso de laboratorios
- **Mantenimiento Programado:** Bloquear equipos durante mantenimiento
- **Gestión de Recursos:** Optimizar el uso de recursos informáticos
### 7. Gestión de Software y Hardware
**Rutas:** `/software`, `/software-profiles`, `/operative-systems`, `/hardware`, `/hardware-profiles`, `/hardware-types`
**Descripción:** Administración de configuraciones de software y hardware.
**Funcionalidades:**
- Catálogo de software disponible
- Perfiles de software para diferentes entornos
- Configuraciones de sistemas operativos
- Gestión de hardware y perfiles de hardware
- Tipos de hardware y configuraciones específicas
**Casos de Uso:**
- **Configuración de Entornos:** Crear perfiles específicos para diferentes tipos de laboratorios
- **Gestión de Software:** Mantener catálogo actualizado de software disponible
- **Configuración de Hardware:** Definir configuraciones óptimas para diferentes tipos de equipos
### 8. Estado Global del Sistema
**Ruta:** `/global-status`
**Descripción:** Dashboard centralizado con métricas del sistema.
**Funcionalidades:**
- Uso de CPU y RAM en tiempo real
- Estado de servicios críticos
- Estadísticas de equipos conectados
- Monitoreo de procesos del sistema
**Casos de Uso:**
- **Monitoreo del Sistema:** Supervisar el rendimiento general del sistema
- **Detección de Problemas:** Identificar rápidamente fallos o sobrecargas
- **Planificación de Recursos:** Analizar tendencias de uso para planificación
## Flujos de Trabajo Principales
### 1. Configuración Inicial del Sistema
1. **Acceso como Super Admin**
2. **Configuración de Variables de Entorno** (`/env-vars`)
3. **Creación de Roles y Usuarios** (`/roles`, `/users`)
4. **Configuración de Red** (`/subnets`)
5. **Creación de Estructura Organizativa** (`/groups`)
### 2. Gestión Diaria de Clientes
1. **Acceso a Gestión de Grupos** (`/groups`)
2. **Selección de Unidad Organizativa**
3. **Visualización de Clientes**
4. **Ejecución de Comandos** (individual o masivo)
5. **Monitoreo de Estado** en tiempo real
### 3. Despliegue de Imágenes
1. **Preparación de Imagen** (`/images` o `/repositories`)
2. **Configuración de Plantilla PXE** (`/pxe-templates`)
3. **Selección de Clientes Objetivo** (`/groups`)
4. **Ejecución de Despliegue** (comando `deployImage`)
5. **Verificación de Resultados** (`/commands-logs`)
### 4. Mantenimiento Programado
1. **Creación de Tarea** (`/commands-task`)
2. **Selección de Comandos** (`/commands` o `/commands-groups`)
3. **Programación de Ejecución** (fecha y hora)
4. **Selección de Clientes** (`/groups`)
5. **Monitoreo de Ejecución** (`/commands-logs`)
## Características Técnicas Avanzadas
### 1. Sistema de Autenticación y Autorización
- Autenticación basada en JWT
- Guards de ruta para control de acceso
- Roles jerárquicos con permisos granulares
- Sesiones persistentes con refresh automático
### 2. Interfaz de Usuario
- Diseño responsive con Angular Material
- Tours guiados integrados (ngx-joyride)
- Internacionalización completa (ES/EN)
- Notificaciones en tiempo real
- Modales y diálogos contextuales
### 3. Gestión de Estado
- Servicios centralizados para cada módulo
- Interceptores HTTP para manejo de errores
- Caché inteligente de datos
- Actualizaciones en tiempo real
### 4. Monitoreo y Logging
- Trazabilidad completa de operaciones
- Logs detallados de ejecución
- Métricas de rendimiento
- Exportación de datos (CSV)
## Casos de Uso Específicos por Rol
### Super Admin
- Configuración completa del sistema
- Gestión de todos los usuarios y roles
- Acceso a todas las funcionalidades
- Configuración de variables de entorno
- Monitoreo global del sistema
### OU Admin
- Gestión de unidades organizativas asignadas
- Creación y gestión de clientes
- Ejecución de comandos y tareas
- Gestión de imágenes y repositorios
- Configuración de calendarios
### OU Operator
- Ejecución de comandos predefinidos
- Monitoreo de estado de clientes
- Visualización de logs y trazas
- Gestión básica de clientes
### OU Minimal
- Solo visualización de información
- Sin permisos de modificación
- Acceso limitado a funcionalidades de consulta
## Consideraciones de Seguridad
1. **Autenticación Robusta:** Sistema JWT con refresh tokens
2. **Control de Acceso:** Guards de ruta y validación de roles
3. **Validación de Datos:** Validación tanto en frontend como backend
4. **Auditoría:** Logs completos de todas las operaciones
5. **HTTPS:** Comunicación segura en toda la aplicación
## Escalabilidad y Rendimiento
1. **Paginación:** Implementada en todas las listas grandes
2. **Lazy Loading:** Carga diferida de componentes
3. **Caché Inteligente:** Reducción de llamadas al servidor
4. **Optimización de Consultas:** Filtros y búsquedas eficientes
5. **Responsive Design:** Adaptable a diferentes dispositivos
## Conclusión
OgWebconsole es una solución integral para la gestión de laboratorios de computación que combina facilidad de uso con potentes funcionalidades de administración. Su arquitectura modular y sistema de roles permite adaptarse a diferentes entornos y necesidades organizativas, proporcionando una herramienta centralizada para la gestión eficiente de recursos informáticos distribuidos.
La aplicación está diseñada para ser intuitiva para usuarios finales mientras proporciona las herramientas avanzadas necesarias para administradores de sistemas, haciendo que sea una solución ideal para entornos educativos, laboratorios de investigación y cualquier organización que requiera gestión centralizada de múltiples equipos informáticos.