From 928aad4affdcfeb4ee38d09eba2f6f8536c5cd72 Mon Sep 17 00:00:00 2001 From: pablinux Date: Tue, 20 Oct 2026 11:23:17 -0500 Subject: [PATCH] docs: actualizar espejo de infraestructura, arbol de archivos, incidente vhost y reglas de despliegue --- .agente/infraestructura.md | 161 ++++++++++++++++++++------------- .agente/proyecto_errores.md | 10 ++ .agente/proyecto_estructura.md | 6 +- .agente/reglas.md | 5 + README.md | 2 - 5 files changed, 119 insertions(+), 65 deletions(-) diff --git a/.agente/infraestructura.md b/.agente/infraestructura.md index 7d6dca2..5b8c4a1 100644 --- a/.agente/infraestructura.md +++ b/.agente/infraestructura.md @@ -144,7 +144,7 @@ cada proyecto debera implementar un algoritomo de control de versiones de las ac | **app_fidelizacion** | [pendiente — crear repo en git.telcotronics.net] | Node.js (Express) + MySQL + EJS | pablinux | 🟡 En desarrollo activo | Plataforma de lealtad, escáner QR y canjes. Gestión de clientes y transacciones de partners. Puerto 2001. BD: MySQL `nexo_fd` en 192.168.10.149. | | **api_service_ia** | `git@github.com:telcotronics/API_Service_IA.git` | Python 3.14 + FastAPI + uvicorn | pablinux | 🟡 En desarrollo activo | API REST de modelos de IA preentrenados (OCR, STT, TTS, visión facial, PDF). Único proyecto Python serio del ecosistema. Puerto 8000. BD: MariaDB `api_ia_python` en .149. | | **API_CENTINEL_SECURITY** | `https://git.telcotronics.net/pablinux/API-CENTINEL-SECURITY.git` | Java 17 + Spring Boot 3.3 + WebClient | pablinux | ✅ Activo | API de Gestión de Seguridad Electrónica — control de acceso físico, biometría, apertura remota de puertas, sincronización de credenciales y eventos en tiempo real. Punto único de integración para cualquier app que gestione seguridad física en el ecosistema. | -| **audio_control** | `https://git.telcotronics.net/pablinux/audio_control.git` | Node.js (Express 4) + MariaDB + DLNA/UPnP + ffplay | pablinux | ✅ Activo / Producción | Backend SoundWave — control remoto de reproducción de audio, descarga YouTube, playlist MySQL, renderer DLNA y auth Google OAuth. Puerto 4005 en CT 132 (`192.168.10.160`). Dominio: `musica.sigmac.app`. Servicio systemd: `siax-app-AUDIO_CONTROL`. MCP ID: 15. | +| **audio_control** | `https://git.telcotronics.net/pablinux/audio_control.git` | Node.js (Express 4) + MariaDB + DLNA/UPnP + ffplay | pablinux | ✅ Activo / Producción | Backend SoundWave — control remoto de reproducción de audio, descarga YouTube, playlist MySQL, renderer DLNA y auth Google OAuth. Puerto 2006 en CT 132 (`192.168.10.160`). Dominio: `musica.sigmac.app`. Servicio systemd: `siax-app-AUDIO_CONTROL`. MCP ID: 15. | | **SoundWave** | `https://git.telcotronics.net/pablinux/audio-player.git` | Vue 3 + Vite 7 (PWA) / Node.js (Express) + MongoDB | pablinux | 🟢 Activo en producción | Reproductor de música personal PWA. Desplegado en server-webaps (.160) puerto 2005. Auth Google OAuth, streaming con Range requests, descargador YouTube MP3 (yt-dlp) y monitoreado en SIAX Monitor. | | **app_sigma_inventario** (Control Inventario) | [pendiente — git.telcotronics.net] | Flutter (Android / Linux Desktop) / Dart | pablinux | 🟡 En desarrollo activo | App móvil para supervisores y bodegueros: conciliación física de stock, traslados con código de barras y recepción OCR externa. | | **agente_ventas** | [sin repositorio — local] | Flutter 2.11 / Dart 2.17-beta + SQLite | pablinux | 🟡 En desarrollo activo — integrando API real | App "Agente Ventas SIGMAC" — gestión de rutas y pedidos de campo para vendedores de Telcotronics. Ruta del día, catálogo, pedidos, firma digital, scanner QR/barcode, notificaciones in-app. Auth vía API-SIGMA-WEBCONTROL · datos vía API-SIGMA-CLOUD (BD `TELCOTRONICS`). | @@ -153,8 +153,9 @@ cada proyecto debera implementar un algoritomo de control de versiones de las ac | **API-SIGMA-COMUNICACIONES** | `https://git.telcotronics.net/pablinux/API-SIGMA-COMUNICACIONES.git` | Node.js (Express) + MySQL | pablinux | 🔴 En desarrollo inicial | Gateway SaaS multi-tenant de canales de mensajería: cada cliente/organización crea y conecta su propio componente WhatsApp (bot o Meta), Telegram y redes sociales, aislado del resto. Independiente de `sigma-robot` (comunicaciones internas de Telcotronics). | | **MCP-Infraestructura** | `https://git.telcotronics.net/pablinux/MCP-INFRAESTRUCTURA.git` | TypeScript (@modelcontextprotocol/sdk) + Nuxt 3 + MySQL | pablinux | ✅ Activo | Servidor MCP y panel web para inventario y gestión en tiempo real de la infraestructura del ecosistema (hardware, servicios, apps IA y externos). Fuente de verdad en MySQL. | | **proxy_server_SRI** | `https://git.telcotronics.net/pablinux/proxy_server_SRI.git` | Python 3 (ThreadingHTTPServer + requests) | pablinux | ✅ Producción | Script proxy HTTP multihilo para consultas SRI en cascada de RUC y Cédula (Ecuador). Provee proxy y normalización para WebControl, SIGMAC y apps. | -| **cloud-sync** | `https://git.telcotronics.net/pablinux/Service-Cloud-SINC.git` | Rust 2021 + Axum 0.7 + SQLite | pablinux | ✅ Activo / Producción HTTP | Servidor central de backup cifrado y consolas web. `192.168.10.136:3000`, health `ok` y harness remoto upload/list/download/restore verificados el 2026-10-17. HTTPS pendiente; MCP id 12. | -| **cloud-sync-clients** | [sin remoto aún — siax-amd] | Rust 2021 + Axum 0.7 + Tokio + aes-gcm + zstd + rusqlite | pablinux | 🟡 Operativo / En desarrollo | Clientes server-to-server (Linux/Windows) para respaldo y cifrado local hacia cloud-sync. UI local :3001. Harness remoto validado (192.168.10.136:3000). MCP ID: 21. Agente ID: 42. | +| **cloud-sync** | `https://git.telcotronics.net/pablinux/Service-Cloud-SINC.git` | Rust 2021 + Axum 0.7 + SQLite | pablinux | 🟡 En mantenimiento / primer deploy | Servidor central de backup cifrado y consolas web. Puerto 3000 en 192.168.10.136. MCP ID: 12. | +| **cloud-sync-clients** | [sin remoto aún — siax-amd] | Rust 2021 + Axum 0.7 + Tokio + aes-gcm + zstd | pablinux | 🟡 En desarrollo activo | Clientes server-to-server (Linux/Windows) para respaldo y cifrado local hacia cloud-sync. UI local :3001. MCP ID: 21. | +| **help_desk** | `https://git.telcotronics.net/pablinux/help_desk.git` | Node.js (Express 5.2) + MariaDB + EJS | pablinux | ✅ Activo / Producción | Sistema SaaS multi-tenant de soporte técnico, gestión de incidencias y despacho FSM integrado con tareas.telcotronics.com (CT 132). Puerto 3008 en CT 132 (`192.168.10.160`). Dominio: `soporte.sigmac.app`. Servicio systemd: `siax-app-HELPDESK.service`. MCP ID: 35. | --- @@ -913,6 +914,7 @@ cd /home/pablinux/app/sigmac-sri-api | `api.factura-e.net` | http://192.168.10.120:8080/ | | `app.factura-e.net` | http://*:3001/ | | `api.sigmac.app` | http://192.168.10.120:8082/ | +| `soporte.sigmac.app` | http://192.168.10.160:3008/ | --- @@ -1456,11 +1458,11 @@ Backend de la app **SoundWave**. Permite controlar la reproducción de audio de | Estado actual | ✅ Activo / Desplegado en producción | | Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/audio_control` | | Servidor de producción | `server-webaps` CT 132 (`192.168.10.160`) — `/home/user_apps/apps/audio_control` | -| Dominio público | `musica.sigmac.app` (vhost activo en .160; enrutamiento WAN sujeto a proxy en .109 / NAT) | -| Puerto | `4005` (dev: `4000`) | +| Dominio público | `audiocontrol.sigmac.app` (vhost en Servidor-web .109 apuntando a `http://192.168.10.160:2006` con SSL activo) | +| Puerto | `2006` (dev: `4000`) | | Servicio systemd | `siax-app-AUDIO_CONTROL.service` (activo) | | Registro MCP | Servicio ID `15` en `http://192.168.10.160:3006` | -| Última actualización | 2026-09-24 | +| Última actualización | 2026-10-20 | **BD que usa:** @@ -1473,6 +1475,7 @@ Backend de la app **SoundWave**. Permite controlar la reproducción de audio de | Método | Endpoint | Auth | Descripción | |--------|----------|------|-------------| | POST | `/control/audio/play` | `verificarJWT` | Reproduce archivo MP3 local con `ffplay` y emite `player:status`. Body: `{ file: "ruta/relativa" }` | +| POST | `/control/audio/pause` | `verificarJWT` | Pausa o reanuda la reproducción activa con `SIGSTOP`/`SIGCONT` y emite `player:status` | | POST | `/control/audio/stop` | `verificarJWT` | Detiene `ffplay` activo y emite `player:status` | | POST | `/control/youtube/download` | `verificarJWT` | Descarga audio de YouTube como MP3 con validación regex anti-SSRF. Body: `{ url: "..." }` | | GET | `/api/youtube-playlist` | — | Lista playlist YouTube (últimas 50 de MySQL) | @@ -1593,13 +1596,50 @@ Webapp PWA de streaming de música personal dentro del ecosistema Telcotronics. - Autenticación delegada a `API-SIGMA-WEBCONTROL` (`:3002`). - Inventariado en el MCP de Infraestructura como Servicio ID 13. - Persistencia de usuarios en cluster MongoDB CT 102 (`192.168.10.146:27017/soundwave`). -- Potencial: integrar con `audio_control` (puerto 4005 en .160) para enviar audio al equipo ambiental del local. +- Potencial: integrar con `audio_control` (puerto 2006 en .160) para enviar audio al equipo ambiental del local. - Planificado: banner publicitario desde `app_marketing` (`ads.sigmac.app` puerto 2100) y bot interactivo desde `sigma-robot` (`sigma-bot.telcotronics.com` puerto 5000). **Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/Node/audio-player/agents.md` --- +### Help Desk — Sistema Multi-Tenant de Soporte Técnico & FSM + +Sistema web SaaS multi-tenant para la gestión de tickets de soporte técnico, atención al cliente y despacho de **visitas técnicas en terreno (FSM - Field Service Management)**, integrado con `tareas.telcotronics.com` (CT 132). Dispone de roles jerárquicos (superadmin, admin, agent, client), mini-timeline operativo con GPS, checklist de averías, fotos de evidencia y firma digital. Desplegado y activo en producción en `server-webapps` (CT 132 en `192.168.10.160`) supervisado por SIAX Monitor y systemd. + +| Parámetro | Valor | +|---|---| +| Repositorio Git | `https://git.telcotronics.net/pablinux/help_desk.git` | +| Tecnología principal | Node.js (Express 5.2) + MariaDB (mysql2) + EJS + Bootstrap 5 | +| Responsable | pablinux | +| Estado actual | ✅ Activo / Producción | +| Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/help_desk` | +| Servidor de producción | `server-webapps` CT 132 (`192.168.10.160`) — `/home/user_apps/apps/help_desk` | +| Dominio público | `https://soporte.sigmac.app` (Proxy reverso en Servidor-web .109 apuntando a `http://192.168.10.160:3008` con SSL Let's Encrypt) | +| Puerto interno | `3008` | +| Servicio systemd | `siax-app-HELPDESK.service` (activo) | +| Monitor SIAX | Registrado y supervisado en SIAX Monitor (`http://192.168.10.160:8080`) | +| Registro MCP | Servicio ID `35` en `http://192.168.10.160:3007` | +| Base de Datos | MariaDB `help_desk` en CT 114 (`192.168.10.149:3306`) | +| Bitácora de errores | API-SIGMA-WEBCONTROL (`https://api.siax-system.net/api/errores`) | +| Última actualización | 2026-10-20 | + +**BD que usa:** + +| BD | Host | Motor | Tablas clave | +|---|---|---|---| +| `help_desk` | `192.168.10.149:3306` | MariaDB (CT 114) | `companies`, `users`, `departments`, `tickets`, `ticket_respuestas`, `ticket_visitas` | + +**Integración con el ecosistema:** +- Desplegado en `server-webapps` (`192.168.10.160:3008`) bajo el servicio `siax-app-HELPDESK.service` gestionado por SIAX Monitor (:8080). +- Despacho operativo de visitas de campo integrado directamente con `tareas.telcotronics.com` (`POST /api/external/tareas`). +- Bitácora de errores conectada a `API-SIGMA-WEBCONTROL` (`POST /api/errores`). +- Ficha técnica oficial registrada en MCP de Infraestructura como Servicio ID 35. + +**Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/Node/help_desk/agents.md` + +--- + --- ## Apps móviles/desktop @@ -2561,75 +2601,74 @@ curl -X POST https://api.telcotronics.com/api/biometria/1001 \ ## cloud-sync — Sistema de Backup Automático y Recuperación ante Desastre -cloud-sync es un servidor central de backup y recuperación ante desastre para clientes SIGMA. Los datos se comprimen y cifran en el equipo de origen antes de subirlos; el servidor almacena contenido cifrado y metadatos, sin recibir la clave de cifrado. El repositorio mantiene la API Rust y las consolas root/empresa. Los ejecutables server-to-server están en el proyecto separado `cloud-sync-clients`; Tauri y los SDK Flutter/Java siguen pendientes. +cloud-sync es el servidor central de backup y recuperación ante desastre para clientes SIGMA. El agente de origen comprime y cifra archivos y dumps de SQLite, MySQL, MariaDB o bases compatibles antes de subirlos; el servidor almacena metadatos y contenido cifrado, sin recibir la clave del cliente. El repositorio incluye la API Rust y las consolas root/empresa; los ejecutables server-to-server viven en `cloud-sync-clients`. La integración Flutter/Java y la aplicación de escritorio siguen siendo objetivos posteriores. | Parámetro | Valor | |---|---| -| Repositorio Git | `https://git.telcotronics.net/pablinux/Service-Cloud-SINC.git` (privado, rama `main`) | -| Tecnología principal | Rust 2021 · Axum 0.7 · Tokio · rusqlite/SQLite · filesystem local · HTML/CSS/JavaScript | +| Repositorio Git | `https://git.telcotronics.net/pablinux/Service-Cloud-SINC.git` (privado, rama `main`, último commit documentado `babf1cd`) | +| Tecnología principal | Rust 2021 · Axum 0.7 · Tokio · rusqlite/SQLite · filesystem local · HTML/CSS/JavaScript para consolas web | | Responsable | pablinux | -| MCP de Infraestructura | Servicio id 12 · categoría `service` · estado `ACTIVE` | -| Estado operativo | Producción HTTP. El 2026-10-17 `/health` respondió HTTP 200, `status: ok`, versión `0.1.0`; harness remoto aislado completó upload/list/download/restore desde `cloud-sync-clients` | -| Servidor de producción | `192.168.10.136:3000`; ruta documentada `/home/user_apps/apps/cloud-sync` | -| Hardware / CT | No hay entidad correspondiente a `192.168.10.136` en `infra://hardware`; sin CT confirmado. Feedback MISSING id 24, abierto el 2026-10-17 | -| Dominio público / HTTPS | Sin dominio confirmado; HTTPS público pendiente | -| Feedback MCP | Cero reportes al iniciar la revisión del 2026-10-17; se abrió después el MISSING id 24 por la ficha de hardware faltante | -| Reglas de despliegue | Ninguna activa devuelta para alcance `cloud-sync` ni global. Hay una regla global SRI en borrador, no aplicable a este servicio | -| Última actualización | 2026-10-17 | +| Estado actual | 🟡 Primer despliegue y smoke test HTTP aprobados; HTTPS público, auth Cloud dual y pruebas funcionales pendientes | +| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Rust/cloud monitor sinc` | +| Servidor de producción | `192.168.10.136` — `/home/user_apps/apps/cloud-sync`; tmux activo, `/health` y consolas HTTP 200 verificados 2026-09-21 | +| Dominio público | Pendiente — VirtualHost HTTPS en Apache | +| Puerto interno | `3000` | +| Última actualización | 2026-09-30 | -**Almacenamiento de datos:** +**BD que usa:** -| Motor | Host / ruta | Uso | -|---|---|---| -| SQLite embebida | `192.168.10.136` — `/home/user_apps/apps/cloud-sync/data/server.db` | Empresas, cuotas, perfiles, sesiones, metadatos de backups y eventos | -| SQLite local del cliente | Equipo de origen — `index.db` | Rutas, checksum SHA-256, identificadores y timestamps de backups | -| Filesystem | Servidor `192.168.10.136` | Contenido cifrado de los backups, organizado por empresa | +| Motor | Host | Nombre | Uso | +|---|---|---|---| +| SQLite (embebida, bundled) | `192.168.10.136` — `/home/user_apps/apps/cloud-sync/data` | `server.db` | Empresas, cuotas, tokens, perfiles, sesiones, backups (metadata) y eventos | +| SQLite (embebida, en el cliente) | Equipo de origen | `index.db` | Índice local de rutas, checksum SHA-256, backup_id y timestamps | **Servicios que consume y expone:** | Método | Endpoint | Auth | Descripción | |---|---|---|---| -| GET | `/health` | — | Estado del servidor y capacidad de disco | -| POST | `/auth/token` | Token de empresa | Compatibilidad con agentes integradores | -| POST | `/auth/root`, `/auth/admin` | Usuario y contraseña | Login root; `/auth/admin` es alias compatible | -| POST | `/auth/empresa` | Usuario y contraseña | Login de administrador de empresa | -| POST | `/auth/logout` | Sesión Bearer | Revocar la sesión presentada | -| PUT | `/auth/admin/password` | Sesión root | Cambiar contraseña root | -| PUT | `/auth/empresa/password` | Sesión empresa | Cambiar contraseña de empresa | -| GET | `/empresa/cuenta` | Sesión empresa | Consultar su cuenta y perfil | -| POST | `/backup/upload` | Bearer de integración | Subir backup cifrado multipart; límite configurado de hasta 10 GiB y cuota por empresa | -| GET | `/backup/list`, `/backup/status` | Bearer de integración | Listar respaldos y consultar estado | -| GET | `/backup/download/{id}` | Bearer de integración o sesión empresa | Descargar respaldo cifrado propio | -| DELETE | `/backup/{id}` | Bearer de integración | Eliminar backup propio | -| GET | `/me/storage` | Bearer de integración | Uso y cuota de empresa | -| GET | `/admin/storage`, `/admin/clientes`, `/admin/eventos` | Sesión root | Capacidad, empresas y auditoría | -| POST | `/admin/clientes` | Sesión root | Crear empresa y token de integración | -| PUT | `/admin/clientes/{id}/cuota`, `/estado` | Sesión root | Cambiar cuota o suspender empresa | -| GET/PUT | `/admin/clientes/{id}/perfil` | Sesión root | Consultar o editar perfil | -| PUT | `/admin/clientes/{id}/acceso` | Sesión root | Asignar o reemplazar acceso de empresa | -| GET | `/root/`, `/admin/`, `/panel/` | Según consola | Root, administrador de empresa y portal legado | +| GET | `/health` | — | Estado del servidor + info de disco | +| POST | `/auth/token` | — | Login cliente (token UUID) → sesión Bearer | +| POST | `/auth/admin` | — | Login admin (argon2) → session token | +| POST | `/backup/upload` | Bearer token | Subir archivo cifrado (multipart) | +| GET | `/backup/list` | Bearer token | Listar backups de la empresa | +| GET | `/backup/download/{id}` | Bearer token | Descargar backup para restore | +| DELETE | `/backup/{id}` | Bearer token | Eliminar backup | +| GET | `/me/storage` | Bearer token | Uso actual vs cuota asignada | +| GET | `/admin/storage` | X-Admin-Token | Capacidad CT146 + resumen global | +| GET/POST | `/admin/clientes` | X-Admin-Token | Listar / crear empresas | +| PUT | `/admin/clientes/{id}/cuota` | X-Admin-Token | Ajustar cuota por empresa | +| GET | `/admin/eventos` | X-Admin-Token | Log de auditoría | +| GET | `/root/` | — | Consola root para empresas, cuotas, estados, perfiles y accesos | +| GET | `/admin/` | — | Portal admin de empresa para consultar cuenta y descargar respaldos propios | +| GET | `/panel/` | Token de integración | Portal legado de cliente | +| MCP Infraestructura | `http://192.168.10.160:3006/sse` | Uso interno del ecosistema | Inventario; `cloud-sync` registrado como servicio id 12; `cloud-sync-clients` registrado como servicio id 21. No transporta errores de runtime | +| API-SIGMA-WEBCONTROL | `https://api.siax-system.net/api/errores` | `x-api-key` por aplicación | Integración de bitácora de errores pendiente; no hay clave configurada | -**Estado de módulos y pendientes:** +**Módulos disponibles:** -| Módulo / tarea | Estado | +| Módulo | Estado | |---|---| -| API Rust y consola root | Implementadas y desplegadas; health HTTP verificado | -| Consola de empresa | Implementada; validar login y flujos de consola en producción | -| Portal `/panel/` | Legado por token de integración | -| `cloud-sync-clients` | Proyecto separado, MCP id 21; harness aislado upload/list/download/restore pasó contra `192.168.10.136:3000` el 2026-10-17; Windows pendiente de validación funcional | -| Autenticación dual | Diseño aprobado; falta cerrar proveedor/login, tokens y registro/revocación de instalaciones | -| Uploads reanudables y cola durable | Objetivo 10, pendiente de diseño e implementación | -| Restauración automatizada y verificada | Objetivo 11; el harness validó un ciclo básico remoto, la automatización de archivos/dumps sigue pendiente | -| HTTPS público | Pendiente confirmar dominio y configurar la entrada aprobada | -| Bitácora WebControl | Objetivo 8; bloqueada hasta confirmar `app_origen` y obtener `x-api-key` autorizada | -| App de escritorio Tauri / SDK Flutter / SDK Java | Pendientes | +| Servidor API REST (Axum) | ✅ Completo y probado | +| Consola web admin (`/admin`) | ✅ Completa | +| Consola web panel cliente (`/panel`) | ✅ Completa | +| `cloud_sync_core` (librería Rust) — crypto, uploader, backup_engine, restore | ✅ Completo | +| Agente server-to-server (`cloud-sync-clients`) — archivos y dumps | ✅ Base Linux; UI local :3001; harness local/remoto; MCP ID 21; Windows pendiente de validación real | +| Script de despliegue configurable | ✅ Preparado para `192.168.10.136` | +| App desktop (Tauri — Windows/Linux/macOS) | ⏳ Pendiente | +| SDK Flutter (uniffi-rs → Dart FFI) | ⏳ Pendiente | +| SDK Java (uniffi-rs → JNI) | ⏳ Pendiente | +| Deploy en `192.168.10.136` | ✅ Ejecutado; smoke test HTTP aprobado | +| HTTPS público detrás de Apache | ⏳ Pendiente de configurar y verificar | +| Bitácora centralizada de errores | ⏳ Pendiente de clave, reportador y consulta operativa | +| Autenticación dual para apps y servicios | ⏳ Diseño aprobado; login Cloud, sesiones cortas y credencial por instalación pendientes | -**Integración y separación de sistemas:** -- **MCP de Infraestructura** (`192.168.10.160:3006`): inventario y reglas operativas. Ficha de servicio id 12; no es proxy de errores de runtime. -- **Feedback MCP:** el 2026-10-17 se reportó MISSING id 24 porque el inventario no contiene una entidad de hardware para `192.168.10.136`. No registrar un CT o ubicación hasta confirmarlos. -- **API-SIGMA-WEBCONTROL** (`https://api.siax-system.net/api/errores`): destino separado para errores de runtime. No hay `x-api-key` autorizada ni `app_origen` confirmado en este proyecto; la ausencia de consulta no significa ausencia de errores. -- **Reglas de despliegue:** no se devolvieron reglas activas globales ni para `cloud-sync`; no inferir dominio, DNS, ruta pública o contenedor. -- **Autenticación Cloud:** la implementación dual sigue pendiente de cerrar el contrato con el proveedor autorizado. No persistir contraseñas Cloud en cloud-sync. +**Integración con el ecosistema:** +- **SIGMAC** (Java ERP, CT 141): SDK Java pendiente — backup automático de archivos y BD de las empresas clientes +- **sigmac_app** (Flutter, `.72`): SDK Flutter pendiente — backup de datos del app sin intervención del usuario +- **MCP de Infraestructura** (`192.168.10.160:3006`): inventario actualizado; no es proxy de la bitácora de errores +- **API-SIGMA-WEBCONTROL**: canal previsto para reportar/consultar errores de runtime cuando exista una clave autorizada +- **Autenticación Cloud**: diseño aprobado para login de apps con access/refresh token y credencial protegida por instalación en servicios automáticos; implementación pendiente +- **Apache**: VirtualHost HTTPS pendiente **Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/Rust/cloud monitor sinc/agents.md`; cliente server-to-server: `/home/pablinux/Projects/Rust/cloud-sync-clients/agents.md` diff --git a/.agente/proyecto_errores.md b/.agente/proyecto_errores.md index c52ca3b..0b2df1f 100644 --- a/.agente/proyecto_errores.md +++ b/.agente/proyecto_errores.md @@ -35,6 +35,16 @@ - **Solución / Acción requerida:** El usuario o administrador de Gitea debe crear el repositorio vacío `pablinux/help_desk` desde la interfaz web de `https://git.telcotronics.net`. Una vez creado el repositorio vacío, el push funcionará de inmediato. - **Estado:** Documentado / Pendiente de creación en interfaz web. +--- + +## Incidente #5: Colisión inicial en proxy inverso de `soporte.sigmac.app` con vhost SSL por defecto +- **Fecha:** 2026-10-19 / 2026-10-20 +- **Síntoma:** Al apuntar el DNS público hacia la WAN, las peticiones HTTPS a `soporte.sigmac.app` entregaban la interfaz y cookie de sesión de `drop.sigmac.app`. +- **Causa confirmada:** En `Servidor-web` (CT 109 `192.168.10.109` - Apache 2.4.66), ante la falta de un VirtualHost dedicado para `soporte.sigmac.app`, Apache servía el primer VirtualHost SSL definido por orden alfabético/carga. +- **Solución:** Se configuró el VirtualHost específico para `soporte.sigmac.app` en Apache 2.4.66 con `ProxyPass / http://192.168.10.160:3008/` y certificado SSL de Let's Encrypt. +- **Verificación:** `curl -sI https://soporte.sigmac.app/login` responde HTTP 200 OK con la sesión y vistas de Help Desk. +- **Estado:** Resuelto. + ## Integración con Bitácora Centralizada (API-SIGMA-WEBCONTROL) - **Endpoint de Reporte:** `POST https://api.siax-system.net/api/errores` diff --git a/.agente/proyecto_estructura.md b/.agente/proyecto_estructura.md index 9c15502..13460e4 100644 --- a/.agente/proyecto_estructura.md +++ b/.agente/proyecto_estructura.md @@ -8,12 +8,14 @@ help_desk/ ├── package.json # Metadatos del proyecto y dependencias npm ├── package-lock.json # Bloqueo de versiones de dependencias ├── .env.example # Plantilla de variables de entorno (sin secretos) -├── .gitignore # Ignorados por Git (node_modules, .env) +├── .gitignore # Ignorados por Git (node_modules, .env, servers.conf) +├── servers.conf.example # Plantilla de destinos de producción para desplegar.sh +├── servers.conf # Destinos de despliegue locales (ignorado por Git) ├── id_agente.md # Identidad del agente en sigma-robot (estado local) ├── README.md # Documentación general para humanos ├── agents.md # Punto de entrada principal para agentes IA ├── init.sh # Script bash interactivo para gestión y entorno local -├── desplegar.sh # Script de despliegue automatizado hacia producción (CT 132) +├── desplegar.sh # Script de despliegue coordinado con SIAX Monitor (:8080) ├── siax-app-HELPDESK.service # Unidad de servicio systemd gestionada por SIAX en CT 132 ├── .agente/ # Documentación interna del proyecto │ ├── infraestructura.md # Espejo del inventario global de infraestructura diff --git a/.agente/reglas.md b/.agente/reglas.md index f0f76bd..324d091 100644 --- a/.agente/reglas.md +++ b/.agente/reglas.md @@ -29,3 +29,8 @@ - **Alcance:** Archivo `id_agente.md` y conexión a `sigma-robot` / MCP de Chat. - **Restricción:** Mantener la identidad en `pendiente` hasta confirmación formal en `sigma-robot`. Nunca inventar identificadores, nombres ni tokens locales. Nunca incluir secretos o credenciales en `id_agente.md`. - **Motivo:** Cumplimiento del estándar centralizado de agentes del ecosistema Telcotronics. + +## 7. Despliegue y Orquestación con SIAX Monitor +- **Alcance:** Despliegues de la aplicación a producción (`desplegar.sh`, `servers.conf`). +- **Restricción:** El despliegue debe utilizar `servers.conf` (copiado desde `servers.conf.example`, nunca commiteado). No utilizar `sudo` interactivo ni contraseñas fijas en el servidor; el ciclo de vida, reinicio y auditoría de salud debe coordinarse a través de la API REST de **SIAX Monitor** en `http://$HOST:8080` (`POST /api/apps/HELPDESK/restart` y `GET /api/apps/HELPDESK/status`). +- **Motivo:** Cumplimiento de la política oficial de despliegue del ecosistema Telcotronics (Prompt 8 y Feedback #25). diff --git a/README.md b/README.md index 8ee5760..834233f 100644 --- a/README.md +++ b/README.md @@ -107,8 +107,6 @@ Acceso en navegador: `http://localhost:3008` --- ---- - ## 🚀 Despliegue a Producción & Orquestación con SIAX Monitor El proyecto está preparado para desplegarse de manera automatizada conforme a las reglas del Ecosistema Telcotronics y el orquestador **SIAX Monitor**: