feat: Agregar campo 'user' al JSON de configuración

- Agregado campo 'user: String' a MonitoredApp
- Función default_user() que obtiene usuario del sistema ($USER/$LOGNAME)
- Actualizado todos los lugares donde se crea MonitoredApp:
  * config.rs (add_app)
  * app_manager.rs (register_app) - usa config.user
  * discovery.rs (sync) - extrae de .service file
  * handlers.rs (update_app) - usa config.user
- El campo se guarda en monitored_apps.json
- Formulario de edición ahora carga el usuario correcto
- Resuelve problema: antes ponía 'pablinux' por defecto
- Ahora muestra el usuario real (ej: 'user_apps')
This commit is contained in:
2026-01-21 18:08:40 -05:00
parent bb25004e67
commit cd14cc5c06
7 changed files with 205 additions and 4 deletions

View File

@@ -2,11 +2,27 @@
"apps": [
{
"name": "app_tareas",
"port": 3000
"service_name": "",
"path": "",
"port": 3000,
"entry_point": "",
"node_bin": "",
"mode": "production",
"service_file_path": "",
"deleted": true,
"deleted_at": "2026-01-21T18:01:42.273756980-05:00",
"deleted_reason": "Eliminada desde el panel de control"
},
{
"name": "fidelizacion",
"port": 3001
"service_name": "",
"path": "",
"port": 3001,
"entry_point": "",
"node_bin": "",
"mode": "production",
"service_file_path": "",
"deleted": false
}
]
}

View File

@@ -2328,3 +2328,173 @@
[2026-01-19 08:27:21] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:27:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:27:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:35:19] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-20 06:35:19] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-20 06:35:19] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-20 06:35:19] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-20 06:35:19] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-20 06:35:19] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-20 06:35:19] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-20 06:35:19] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-20 06:35:19] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-20 06:35:19] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-20 06:35:19] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-20 06:35:19] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-20 06:35:19] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-20 06:35:19] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:35:19] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-20 06:35:19] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-20 06:35:19] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:36:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:36:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:36:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:36:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:37:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:37:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:37:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:37:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:38:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:38:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:38:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:38:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:39:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:39:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:39:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:39:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:40:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:40:21] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:40:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:40:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:41:21] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:41:21] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:41:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:41:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:42:21] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:42:21] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:42:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:42:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:43:21] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:43:21] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:43:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:43:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:44:21] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-20 06:44:21] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:44:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-20 06:44:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:44:46] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-20 06:44:46] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-20 06:44:46] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-20 06:44:46] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-20 06:44:46] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-20 06:44:46] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-20 06:44:46] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-20 06:44:46] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-20 06:44:46] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-20 06:44:46] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-20 06:44:46] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-20 06:44:46] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-20 06:44:46] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-20 06:44:46] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:44:46] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-20 06:44:46] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-20 06:44:46] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-20 06:45:08] [INFO] [WebSocket] Nueva conexión para logs de: fidelizacion
[2026-01-20 06:45:09] [INFO] [WebSocket] Nueva conexión para logs de: app_tareas
[2026-01-20 06:45:09] [INFO] [WebSocket] Conexión cerrada para: fidelizacion
[2026-01-21 17:08:02] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-21 17:08:02] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-21 17:08:02] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-21 17:08:02] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-21 17:08:02] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-21 17:08:02] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-21 17:08:02] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-21 17:08:02] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-21 17:08:02] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-21 17:08:02] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-21 17:08:02] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-21 17:08:02] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-21 17:08:03] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-21 17:08:03] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:08:03] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-21 17:08:03] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-21 17:08:04] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:55:31] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-21 17:55:31] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-21 17:55:31] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-21 17:55:31] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-21 17:55:31] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-21 17:55:31] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-21 17:55:31] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-21 17:55:31] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-21 17:55:31] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-21 17:55:31] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-21 17:55:32] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-21 17:55:32] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-21 17:55:32] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-21 17:55:32] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:55:32] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-21 17:55:33] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-21 17:55:33] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:56:33] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-21 17:56:33] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:56:33] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-21 17:56:33] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:57:30] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-21 17:57:30] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-21 17:57:30] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-21 17:57:30] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-21 17:57:30] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-21 17:57:30] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-21 17:57:30] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-21 17:57:30] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-21 17:57:30] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-21 17:57:30] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-21 17:57:30] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-21 17:57:30] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-21 17:57:30] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-21 17:57:30] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:57:30] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-21 17:57:31] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-21 17:57:31] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:58:31] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-21 17:58:31] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:58:31] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-21 17:58:31] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:59:32] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-21 17:59:32] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 17:59:32] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-21 17:59:32] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 18:00:32] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-21 18:00:33] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 18:00:33] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-21 18:00:33] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 18:01:28] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-21 18:01:28] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-21 18:01:28] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-21 18:01:28] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-21 18:01:28] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-21 18:01:28] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-21 18:01:28] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-21 18:01:28] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-21 18:01:28] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-21 18:01:28] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-21 18:01:28] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-21 18:01:29] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-21 18:01:29] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-21 18:01:29] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 18:01:29] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-21 18:01:29] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-21 18:01:30] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-21 18:01:42] [INFO] [API] 🗑️ Solicitud de eliminación para: app_tareas
[2026-01-21 18:01:42] [INFO] [AppManager] Desregistrando aplicación (soft delete): app_tareas
[2026-01-21 18:01:42] [WARNING] [API] App no encontrada en AppManager: Aplicación no encontrada: app_tareas
[2026-01-21 18:01:42] [INFO] [API] ✅ Soft delete en JSON: app_tareas
[2026-01-21 18:01:42] [INFO] [SystemCtl] Deteniendo servicio: siax-app-app_tareas.service
[2026-01-21 18:01:50] [INFO] [API] Deteniendo servicio: siax-app-app_tareas.service
[2026-01-21 18:01:50] [INFO] [SystemCtl] Deshabilitando servicio: siax-app-app_tareas.service
[2026-01-21 18:01:56] [INFO] [API] Deshabilitando servicio: siax-app-app_tareas.service
[2026-01-21 18:01:56] [INFO] [ServiceGenerator] Eliminando servicio: /etc/systemd/system/siax-app-app_tareas.service
[2026-01-21 18:01:56] [WARNING] [ServiceGenerator] Servicio no encontrado | siax-app-app_tareas.service
[2026-01-21 18:01:56] [INFO] [API] ✅ Archivo .service eliminado: siax-app-app_tareas.service
[2026-01-21 18:01:56] [INFO] [SystemCtl] Recargando daemon de systemd
[2026-01-21 18:01:59] [INFO] [API] 🔄 daemon-reload ejecutado

View File

@@ -170,6 +170,7 @@ pub async fn update_app_handler(
entry_point,
node_bin,
mode,
user: config.user.clone(),
service_file_path,
registered_at: chrono::Local::now().to_rfc3339(),
deleted: false,

View File

@@ -32,6 +32,10 @@ pub struct MonitoredApp {
#[serde(default = "default_mode")]
pub mode: String,
/// Usuario del sistema que ejecuta la aplicación
#[serde(default = "default_user")]
pub user: String,
/// Ruta completa al archivo .service de systemd
#[serde(default)]
pub service_file_path: String,
@@ -64,6 +68,13 @@ fn default_mode() -> String {
"production".to_string()
}
fn default_user() -> String {
// Intentar obtener el usuario actual del sistema
std::env::var("USER")
.or_else(|_| std::env::var("LOGNAME"))
.unwrap_or_else(|_| "root".to_string())
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AppConfig {
pub apps: Vec<MonitoredApp>,
@@ -200,6 +211,7 @@ impl ConfigManager {
entry_point: String::new(),
node_bin: String::new(),
mode: "production".to_string(),
user: default_user(),
service_file_path: String::new(),
registered_at,
deleted: false,

View File

@@ -255,6 +255,7 @@ pub fn sync_discovered_services(services: Vec<DiscoveredService>) {
entry_point: service.entry_point.unwrap_or_default(),
node_bin: service.node_bin.unwrap_or_default(),
mode: service.node_env,
user: service.user.clone().unwrap_or_else(|| "root".to_string()),
service_file_path: service.service_file.clone(),
registered_at,
deleted: false,

View File

@@ -86,6 +86,7 @@ impl AppManager {
entry_point,
node_bin,
mode,
user: config.user.clone(),
service_file_path,
registered_at,
deleted: false,

View File

@@ -475,8 +475,8 @@
document.getElementById("working_directory").value =
app.path || "";
// El user no está en el JSON, usar valor por defecto
document.getElementById("user").value = "pablinux";
// Cargar usuario desde JSON o usar valor por defecto
document.getElementById("user").value = app.user || "root";
document.getElementById("restart_policy").value = "always";
document.getElementById("app_type").value = "nodejs";
document.getElementById("description").value = "";