2791 lines
182 KiB
Markdown
2791 lines
182 KiB
Markdown
# Infraestructura SIGMA — Documentación Técnica
|
||
|
||
---
|
||
|
||
> # 🚨 PELIGRO — LEER ANTES DE TOCAR CUALQUIER COSA
|
||
>
|
||
> **ESTE ARCHIVO NO SE EDITA MANUALMENTE. NUNCA. BAJO NINGUNA CIRCUNSTANCIA. SIN AUTORIZACION**
|
||
>
|
||
> - ❌ No reescribas este archivo.
|
||
> - ❌ No elimines secciones existentes.
|
||
> - ❌ No agregues datos que pablinux no haya confirmado explícitamente.
|
||
> - ❌ No derives datos del código fuente y los documentes aquí como si fueran infraestructura.
|
||
>
|
||
> **¿Por qué?** Este documento es la biblia compartida de todo el ecosistema Telcotronics.
|
||
> Un dato incorrecto aquí afecta a todos los proyectos y a todas las IAs que lo leen.
|
||
> La fuente de verdad es el **MCP de infraestructura** (`mcp.telcotronics.net`).
|
||
|
||
---
|
||
|
||
> **Propósito:** Describe la arquitectura completa del ecosistema. Ante cualquier tarea técnica, leer primero.
|
||
> **Fuentes de verdad:** Árbol Proxmox VE, tabla DHCP MikroTik (mayo 2026), historia documentada por pablinux, e inventario de hardware/servicios/apps IA/servicios externos del **MCP de Infraestructura** (uso interno — ver sección dedicada más abajo).
|
||
>
|
||
> **Documentos relacionados:**
|
||
> - 🎨 **[Design System](design-system.md)** — Estándar visual unificado: colores, tipografía, componentes.
|
||
> - 🗺️ **[Roadmap](roadmap.md)** — Decisiones técnicas tomadas y pendientes de ejecutar.
|
||
|
||
---
|
||
|
||
## Requisito de documentación
|
||
|
||
> **Este documento no es un inventario de IPs. Es la guía de integración del ecosistema.**
|
||
> Cualquier proyecto, app o servicio debe poder conectarse a otro leyendo solo este archivo —
|
||
> sin preguntar, sin buscar en el código, sin horas de explicación.
|
||
>
|
||
> **Regla de oro:** si alguien necesita enviar un correo, usar WhatsApp, facturar, sincronizar ideas
|
||
> o consumir cualquier servicio del ecosistema, la respuesta completa debe estar aquí.
|
||
>
|
||
> **Todo proyecto o servicio documentado aquí debe incluir:**
|
||
> - URL del repositorio Git
|
||
> - Tecnología principal, responsable y estado actual
|
||
> - Servidor de producción — IP, puerto, dominio público
|
||
> - Cómo usarlo desde otra app — URL base, autenticación requerida, ejemplo mínimo
|
||
> - Swagger / documentación de API si existe
|
||
> - BDs que usa — motor, host, nombre, propósito
|
||
> - Servicios que consume — para entender sus dependencias
|
||
> - Dónde buscar más información — ruta local del `agents.md` del proyecto
|
||
>
|
||
> **Sé breve y conciso.** Incluye lo suficiente para conectarse — no más.
|
||
> Si los detalles completos ya están en Swagger o en el `agents.md` del proyecto, aquí va solo el enlace.
|
||
> El criterio es: ¿puede otra IA o desarrollador usar este servicio leyendo solo esta sección?
|
||
> Si la respuesta es no, falta información. Si ocupa más de una página, sobra información.
|
||
|
||
---
|
||
|
||
## Documentos del ecosistema
|
||
|
||
> Leer antes de inicializar, diseñar o desplegar cualquier proyecto nuevo.
|
||
|
||
| Documento | Descripción |
|
||
|---|---|
|
||
| [`infraestructura.md`](infraestructura.md) | Este documento — arquitectura de servidores, red, CTs y servicios |
|
||
| [`migraciones.md`](migraciones.md) | Registro global de cambios de schema de BD — ALTER TABLE, índices, tablas nuevas. Fuente de verdad de qué SQL hay que correr y en qué BDs |
|
||
| [`design-system.md`](design-system.md) | Sistema de diseño unificado SIGMA — paleta, tipografía, componentes, multi-plataforma |
|
||
| [`roadmap.md`](roadmap.md) | Hoja de ruta estratégica — decisiones técnicas tomadas, pendientes de ejecutar |
|
||
| [`prompt_ini_proyectos.md`](prompt_ini_proyectos.md) | Plantilla de inicialización para proyectos nuevos del ecosistema |
|
||
|
||
---
|
||
|
||
## Convenciones de scripts en proyectos
|
||
|
||
Todo proyecto del ecosistema usa exactamente **dos scripts**. Nada más para el despliegue.
|
||
|
||
### `desplegar.sh` — corre desde la máquina de desarrollo
|
||
Cómo lo hace depende del tipo de proyecto:
|
||
Todo proyecto debe tener o crear un bash sh llamado desplegar.sh, este se encarga de la sincronizacion de el proyecto a produccion.
|
||
1.- en caso de proyectos tipo webapps(app_fidelizacion, apps_ideas, sigmac-web,etc) o servicios(mail, siax-monitor,etc) sube el código al servidor de produccion asignado.
|
||
2.- en caso de apps desarrolladas para moviles o table(sigmac-app, app_pedidos,etc), y pc(desktop-> SIGMAC, ERP, CRM,etc). estas despliegan directamente al proyecto de Web_siax-sytem(https://siax-system.net) y las se publican las url en la api de webcontrol("https://api.siax-system.net/")
|
||
|
||
| Tipo de proyecto | Mecanismo |
|
||
|-----------------|-----------|
|
||
| Interpretado (Node.js, Python, PHP) | `git push` al repo + SSH al servidor + `git pull` + reinicio del proceso |
|
||
| Compilado (Rust, Java, Go) | Compila localmente + `scp`/`rsync` del binario al servidor + reinicio |
|
||
|
||
Lee `servers.conf` para saber a qué servidores apuntar.
|
||
`servers.conf` **nunca se commitea** — cada desarrollador crea el suyo desde `servers.conf.example`.
|
||
|
||
### `init.sh` — corre en el servidor
|
||
|
||
Ejecutor local. Solo arranca lo que ya está instalado. No sube código, no compila.
|
||
Puede ser simple (un solo comando) o interactivo (menú de opciones).
|
||
|
||
### Referencia entre proyectos
|
||
|
||
| Proyecto | `desplegar.sh` | `init.sh` |
|
||
|---------|----------------|-----------|
|
||
| `siax_monitor` | Compila Rust + scp binario a cada servidor | Instala como servicio systemd |
|
||
| `api_service_ia` | git push + SSH + git pull + reinicio tmux | Interactivo — op.1: instala deps + arranca / op.2: solo arranca |
|
||
| _(nuevo proyecto)_ | Seguir el mismo patrón | Seguir el mismo patrón |
|
||
|
||
### Actuallizaciones de las Base de Datos de los proyecto.
|
||
Todo proyecto al ser tipo tenancy usa su propia base de datos, la cual al sirve "https://api-gateway-cloud.telcotronics.net/" para consultarla se necesita una apikey, la cual es proporcionada solo por webcontrol("https://api.siax-system.net/") despues de realizar las debidas autenticaciones.
|
||
Esto hace que siempre alla cambios en las bd. y por tal las actualizaciones sql siempre estarqan disponibles en webcontrol: "/api/sql/check_update", "/api/sql/updates". mas info en su api o la seccion dedicada en este doc.
|
||
cada proyecto tiene 2 bd una de empresa(EMPRESA_XXX) y otra llamada sigma que almacena las actualizaciones en la tabla: "SIGMA.HistorialActualizacionBD".
|
||
#### conclusion
|
||
cada proyecto debera implementar un algoritomo de control de versiones de las actualizaciones sea por bd o por versiones de ejecutables. en caso de webapps
|
||
|
||
---
|
||
|
||
|
||
|
||
## MCPs del ecosistema Telcotronics
|
||
|
||
> El ecosistema tiene **4 MCPs independientes**, cada uno con un rol distinto.
|
||
> No confundirlos — conectarse al MCP equivocado da datos incorrectos o genera acciones en el sistema erróneo.
|
||
|
||
| MCP | URL | Rol | Estado |
|
||
|-----|-----|-----|--------|
|
||
| **Infraestructura** | `192.168.10.160:3006` (SSE, uso interno — NO expuesto a internet) | Fuente de verdad de toda la infraestructura del ecosistema. Las IAs se conectan aquí para leer y actualizar servidores, CTs, redes, servicios y proyectos. **Fuente de este documento — ver aviso más abajo.** | ✅ Activo |
|
||
| **Comunicaciones robóticas** | `sigma-robot.telcotronics.com` | Envío automatizado de mensajes: Email, WhatsApp y otros canales. Usado por agentes y robots del ecosistema para comunicarse con clientes y sistemas externos. | — |
|
||
| **ERP / CRM SIGMA** | — | Datos del ERP y CRM de SIGMA — productos, clientes, ventas, inventario. Usado por los módulos comerciales del ecosistema. | — |
|
||
| **Ideas** | `ideas.telcotronics.net` | Orquesta las ideas del ecosistema. Centraliza y coordina lo que se escribe en `ideas.md` de cada proyecto. | — |
|
||
|
||
---
|
||
|
||
## Ecosistema de Proyectos Telcotronics
|
||
|
||
| Proyecto | Repositorio / Git | Tecnología Principal | Responsable | Estado | Rol Central |
|
||
|---|---|---|---|---|---|
|
||
| **mail-monitor** | `https://git.telcotronics.net/pablinux/Monitor-ServerMail.git` | Rust (Axum + sqlx + Tera + HTMX) | pablinux | ✅ Activo | Administración y monitoreo del servidor de correo SIGMA (Postfix + Dovecot). Gestiona usuarios, logs, fail2ban y notifica eventos a API-SIGMA-WEBCONTROL |
|
||
| **SIAX Monitor** | `https://git.telcotronics.net/pablinux/SIAX-MONITOR` | Rust (Nativo) | pablinux | ✅ Activo | Agente de monitoreo systemd |
|
||
| **SIGMA-CLOUD-APPS-SERVER** (Webswing) | `https://git.telcotronics.net/pablinux/SIGMA-CLOUD-APPS-SERVER.git` (remote `origin` histórico: `bitbucket.org/pablinux/webswing.git`) | Fork Webswing — Java 11 build / Java 8 runtime (20.1.7) + Jetty | pablinux | ✅ Producción | Servidor de apps Swing en el browser (SIGMAC). Login WebControl + skin SIGMA Cloud. CT 141 (.110). |
|
||
| **SIGMAC** | Local — pendiente subir a git.telcotronics.net | Java 11 (NetBeans + Swing) + MySQL / HikariCP | pablinux | ✅ Producción | ERP desktop de facturación electrónica Ecuador. Corre sobre Webswing (CT 141). BD `facturacion` en .116. |
|
||
| **SIGMA-OPEN-API** | `https://github.com/telcotronics/xsystem-open-api` | Spring Boot 1.5.9 + Java 8 | pablinux | ✅ Activo (legacy) | API facturación SRI — sistemas existentes. Nueva URL: `api.factura-e.net` |
|
||
| **SIGMAC-SRI-API** | `https://git.telcotronics.net/pablinux/SIGMAC-SRI_API.git` | Spring Boot 1.5.9 + Java 8 | pablinux | ✅ Activo | Nueva API facturación SRI — sistemas nuevos. URL: `api.sigmac.app/sri` |
|
||
| **API-SIGMA-WEBCONTROL** | `https://git.telcotronics.net/pablinux/API-SIGMA-WEBCONTROL.git` | Node.js (Express) + MariaDB / MySQL | pablinux | ✅ Activo | Base de autorizaciones, notificaciones, identidades y onboarding |
|
||
| **API-SIGMA-CLOUD** | `https://github.com/telcotronics/api-gateway-cloud.git` | Node.js (Express) + MySQL | pablinux | ✅ Activo | API Gateway multi-tenant y motor transaccional comercial |
|
||
| **sigma-robot** | `https://git.telcotronics.net/pablinux/sigma-robot.git` | Node.js + Express + MySQL + Socket.IO | pablinux | ✅ Activo | Hub central de comunicaciones e IA. Recibe mensajes WhatsApp (Meta + Web Bot), los procesa con IA (fallback automático SIAX→DeepSeek→Gemini→Claude), expone AI Gateway compatible OpenAI para apps externas, y orquesta agentes IA con flujos configurables desde el panel. |
|
||
| **WebControlSigma** | `https://git.telcotronics.net/pablinux/Web_siax-sytem.git` | PHP 8.x + MySQL / MariaDB + Rivescript | pablinux | ✅ Activo | Panel web de control administrativo e interfaz visual para control de licencias, usuarios, captcha y gestión de API Keys en el ecosistema Telcotronics. |
|
||
| **sigmac_app** | `https://git.telcotronics.net/pablinux/SIGMAC.APP.git` | Flutter 3.44.6 stable / Dart 3.12.2 | pablinux | 🟢 En producción — cliente real pagando (FERROTOACHI) | App CRM companion multiplataforma (Android + Linux desktop). Cliente nativo offline-first para gestión de ventas, inventario, clientes, pedidos, proformas y compras, con facturación electrónica SRI real (emisión directa) y chat de soporte en tiempo real. Se sincroniza con API-SIGMA-CLOUD y se autentica vía API-SIGMA-WEBCONTROL. |
|
||
| **sigmac-web** | `https://git.telcotronics.net/pablinux/SIGMAC-WEB_PHP.git` | Laravel 13 (PHP 8.5) + Vue 3 + Tailwind CSS | pablinux | 🟡 En desarrollo activo | CRM web companion a sigmac_app. SPA Vue 3 + API REST Laravel (proxy). Módulos principales operativos. URL: `crm.sigmac.app`. Servidor-web CT 150 (.109). |
|
||
| **SitioWeb_telcotronics** | `https://git.telcotronics.net/pablinux/SitioWeb_telcotronics.git` | HTML5/CSS3/JS vanilla + PHP 8.5 + PHPMailer | pablinux | ✅ v2.7.0 | Sitio web institucional y tienda en línea (SSR) de Telcotronics. Catálogo real (901 productos) por conexión directa a MySQL, sin proxy. Panel de configuración privado con dashboard GA4. Apache .109 `/var/www/web_telcotronics/public_html/`. Dominio: `telcotronics.com`. |
|
||
| **app_ideas** | `https://git.telcotronics.net/pablinux/APPA-GENERQADOR-DE-IDEAS.git` | Node.js (Express) + MongoDB + EJS | pablinux | 🟡 En desarrollo activo | Canvas de ideas y pensamiento visual. Genera, organiza y visualiza ideas con soporte de IA. Incluye panel de dibujo, flujo, recopilación de procesos e integración con AIT (IA Telcotronics). Puerto 2000. BD: MongoDB `app_ideas` en CT 102 (.146). |
|
||
| **app_marketing** | [pendiente — crear repo en git.telcotronics.net] | Node.js (Express) + MongoDB + EJS | pablinux | ✅ Activo | Centro de publicidad y marketing multi-tenant del ecosistema. Gestiona campañas internas y de anunciantes, las sirve vía API REST y widget JS embebible. Trackea impresiones y clics por campaña y por app origen. Puerto 2100. BD: MongoDB `app_marketing` en CT 102 (.146). |
|
||
| **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. |
|
||
| **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`). |
|
||
| **seguridad_electronica (SENTINEL ONE)** | `https://git.telcotronics.net/pablinux/seguridad_electronica.git` | Flutter 2.11 / Dart 2.17-beta + SQLite | pablinux | 🟡 En desarrollo activo | App de seguridad electrónica offline-first. 15/15 módulos UI completos. Alarmas, control de acceso con registro de usuarios (nivel/áreas/vigencia), mensajería con eventos de pánico/soporte auditables. Pendiente conectar `ApiAuthService` y `Sincronizador` a `API_CENTINEL_SECURITY`. |
|
||
| **Central_monitoreo** | `https://git.telcotronics.net/pablinux/Central_monitoreo.git` *(crear)* | Flutter 2.11 / Dart 2.17-beta + SQLite | pablinux | 🔴 Iniciando — sesión 1 | App desktop para operadores de la central de monitoreo. Contrapunto de SENTINEL ONE: visión multi-tenant de todos los clientes, gestión de alarmas/incidentes/dispositivos Hikvision. Consume la misma `API_CENTINEL_SECURITY` con el mismo patrón de auth WebControl. |
|
||
| **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. |
|
||
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## Infraestructura física
|
||
|
||
### Red
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Red local | 192.168.10.0/24 |
|
||
| Router / DHCP | MikroTik — XSYSTEM MKT |
|
||
| DNS / AdBlocker | AdGuard — 192.168.10.2 |
|
||
| WiFi AP | EW1200G-PRO — 192.168.10.254 |
|
||
|
||
> **Nota:** Los contenedores LXC de Proxmox se identifican por MAC con prefijo `BC:24:11:*`. Las IPs no siguen el número del CT — son históricas y se mantienen desde antes de Proxmox.
|
||
|
||
---
|
||
|
||
### Conexiones WAN y NAT — MikroTik XSYSTEM MKT
|
||
|
||
El ecosistema tiene **3 conexiones a internet** con interfaces separadas en el MikroTik. Cada una tiene su propio conjunto de NATs y sirve servicios distintos.
|
||
|
||
#### Interfaces WAN
|
||
|
||
| Interface | Tipo | IP pública | Velocidad | Destino principal |
|
||
|-----------|------|-----------|-----------|-------------------|
|
||
| `P1 WAN` | Fibra directa | `181.198.143.66` | 15 Gbps | Apache .109 (sitios web) + correo + RustDesk |
|
||
| `CHR-MKT_old` | VPN tunnel → VPS Google (antiguo) | `34.170.252.64` | — | Nginx Proxy Manager .141 |
|
||
| `CHR_XSYSTEM_V2` | VPN tunnel → VPS Google (nuevo) | `104.198.154.171` | — | server-webapps .160 |
|
||
|
||
> **DNS por dominio:**
|
||
> - `siax-system.net` → gestionado por **Cloudflare** (con o sin proxy según el servicio)
|
||
> - `sigmac.app`, `telcotronics.net`, `telcotronics.com`, etc. → gestionados en su registrador propio
|
||
>
|
||
> **`crm.sigmac.app`** — A record directo a `181.198.143.66` (fibra P1 WAN). No necesita Cloudflare proxy: es un CRM de usuarios limitados, la IP de fibra es estable y certbot maneja el SSL en el servidor.
|
||
|
||
#### NAT Rules activas
|
||
|
||
| # | Interface entrada | Puerto ext | Destino interno | Servicio |
|
||
|---|-------------------|-----------|----------------|---------|
|
||
| 3 | CHR_XSYSTEM_V2 | 80 | 192.168.10.160:80 | Nginx (VPS nuevo) |
|
||
| 4 | CHR_XSYSTEM_V2 | 443 | 192.168.10.160:443 | Nginx (VPS nuevo) |
|
||
| 5 | CHR-MKT_old | 80 | 192.168.10.141:80 | Nginx Proxy Manager |
|
||
| 6 | CHR-MKT_old | 443 | 192.168.10.141:443 | Nginx Proxy Manager |
|
||
| 7 | P1 WAN | 80 | 192.168.10.109:80 | **Apache — sitios web** |
|
||
| 8 | P1 WAN | 443 | 192.168.10.109:443 | **Apache — sitios web (SSL)** |
|
||
| 10 | P1 WAN | 25 | 192.168.10.111:25 | SMTP (Postfix) |
|
||
| 11 | P1 WAN | 993 | 192.168.10.111:993 | IMAP SSL (Dovecot) |
|
||
| 12 | P1 WAN | 587 | 192.168.10.111:587 | SMTP Submission |
|
||
| 13 | P1 WAN | 465 | 192.168.10.111:465 | SMTPS |
|
||
| 14 | CHR-MKT_old | 25 | 192.168.10.99:25 | SMTP cluster (mail secundario) |
|
||
| 15 | CHR-MKT_old | 143 | 192.168.10.99:143 | IMAP cluster |
|
||
| 19-21 | P1 WAN | 21114-21119 | 192.168.10.105:21114+ | RustDesk (UDP+TCP) |
|
||
|
||
#### NAT Rules deshabilitadas (legacy / pendientes)
|
||
|
||
| # | Servicio | Destino | Motivo |
|
||
|---|---------|---------|--------|
|
||
| 1 | SMTP por VPN | .150:25 | Legacy server-sigma |
|
||
| 9 | Webmin | .150:10000 | Legacy en retiro |
|
||
| 16 | SIGMA-WEB | .150:8443 | Legacy en retiro |
|
||
| 17 | WEB-SWING | .110:8090 | Acceso directo desactivado |
|
||
| 18 | MONITOR SIAX | .150:8080 | Legacy |
|
||
|
||
#### Flujo de tráfico por dominio
|
||
|
||
```
|
||
Internet
|
||
│
|
||
├─ Fibra P1 WAN ──────────────► .109 Apache
|
||
│ factura-e.net, crm.sigmac.app
|
||
│ sigmac.app, telcotronics.com, etc.
|
||
│ Correo: .111 (25/587/465/993)
|
||
│ RustDesk: .105
|
||
│
|
||
├─ VPS Google (viejo) ────────► .141 Nginx Proxy Manager
|
||
│ CHR-MKT_old api-gateway-cloud.telcotronics.net
|
||
│ git, n8n, proxy, mail, voip, etc.
|
||
│
|
||
└─ VPS Google (nuevo) ────────► .160 server-webapps
|
||
CHR_XSYSTEM_V2 klickbot.app, mesh.telcotronics.net
|
||
api-gateway-sigma.telcotronics.net
|
||
```
|
||
|
||
---
|
||
|
||
### Hypervisor
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Plataforma | Proxmox VE |
|
||
| Nombre | BLACK-SERVER |
|
||
| Nodo `cloud` | Servidor nuevo — CTs críticos de producción SIGMA |
|
||
| Nodo `cluster` | Servidor principal — resto de servicios del ecosistema |
|
||
|
||
---
|
||
|
||
### Todos los CTs y servicios del ecosistema
|
||
|
||
#### Nodo cloud (producción SIGMA)
|
||
|
||
| CT | IP | Nombre | Tecnología | Rol | Estado |
|
||
|----|-----|--------|-----------|-----|--------|
|
||
| 141 | 192.168.10.110 | Servidor-SIGMA-VW | SIGMA-CLOUD-APPS-SERVER (Webswing 20.1.7) + Java Swing | Frontend SIGMA — apps Swing en browser | running |
|
||
| 142 | 192.168.10.120 | SIGMA-OPEN-API / SIGMAC-SRI-API | Spring Boot 1.5.9 + Java 8 | API REST facturación (puerto 8080 legacy + 8082 nueva) | running |
|
||
| 144 | 192.168.10.111 | servidor-email | Postfix + Dovecot + SnappyMail + **mail-monitor** | Correo + administración | running |
|
||
| 145 | 192.168.10.116 | SERVIDOR-BD | PostgreSQL 16.13 | BD sigma_api | running |
|
||
| 150 | 192.168.10.109 | Servidor-web | Apache 2.4.66 + PHP 8.5-FPM | Proxy reverso público + host de sitios PHP | running |
|
||
|
||
#### Nodo cluster (ecosistema)
|
||
|
||
| CT | IP | Nombre | Tecnología | Rol | Estado |
|
||
|----|-----|--------|-----------|-----|--------|
|
||
| 100 | 192.168.10.141 | nginxproxymanager | Nginx Proxy Manager | Reverse proxy con UI | running |
|
||
| 101 | 192.168.10.143 | cloudflared | Cloudflare Tunnel | Túnel seguro internet | running |
|
||
| 102 | 192.168.10.146 | mongodb | MongoDB | BD documental | running |
|
||
| 103 | 192.168.10.2 | adguard | AdGuard Home | DNS + bloqueador ads | running |
|
||
| 105 | 192.168.10.145 | Ubuntu-Docker | Node.js + **API-SIGMA-WEBCONTROL** | API central auth/onboarding (tmux, pendiente siax-monitor) | running |
|
||
| 107 | 192.168.10.156 | syncthing | Syncthing | Sincronización archivos | running |
|
||
| 108 | 192.168.10.108 | Servidor-IA (SIAX) | IA autónoma | Coordinador autónomo | running |
|
||
| 110 | 192.168.10.106 | meshcentral | MeshCentral | Gestión remota equipos | running |
|
||
| 114 | 192.168.10.149 | mariadb | MariaDB + phpMyAdmin | BD relacional (mailserver_db) | running |
|
||
| 121 | 192.168.10.112 | SERVER-MAIL | — | Servidor mail secundario | running |
|
||
| 122 | 192.168.10.171 | n8n | n8n | Automatización flujos | running |
|
||
| 123 | 192.168.10.107 | rustdeskserver | RustDesk Server | Escritorio remoto | running |
|
||
| 124 | 192.168.10.173 | jupyternotebook | Jupyter Notebook | Data science / IA | running |
|
||
| 125 | 192.168.10.148 | sqlserver2022 | SQL Server 2022 | BD Microsoft | running |
|
||
| 128 | 192.168.10.103 | VOIP-SERVER | — | Telefonía IP | running |
|
||
| 130 | 192.168.10.151 | gitea | Gitea | Repositorio Git | running |
|
||
| 132 | 192.168.10.160 | server-webapps | Node.js / PM2 + **API-SIGMA-CLOUD** | Apps web + API Gateway | running |
|
||
| 133 | 192.168.10.144 | redis | Redis | Cache en memoria | running |
|
||
| 134 | 192.168.10.102 | apache-tomcat | Apache Tomcat | Servidor Java legacy | running |
|
||
| 137 | 192.168.10.172 | flowiseai | Flowise AI | Flujos IA low-code | running |
|
||
| 138 | 192.168.10.152 | jenkins | Jenkins | CI/CD | running |
|
||
| 139 | 192.168.10.147 | postgresql | PostgreSQL | BD adicional | running |
|
||
| 140 | 192.168.10.98 | API-FACTURACION | — | API facturación adicional | running |
|
||
| 143 | 192.168.10.115 | DB-EMPRESAS | — | BD de empresas (Tenants) | running |
|
||
|
||
---
|
||
|
||
### Mapa de dominios
|
||
|
||
#### Nginx Proxy Manager (CT 100 — 192.168.10.141)
|
||
|
||
> Gestiona todos los dominios públicos del ecosistema con SSL automático vía Let's Encrypt.
|
||
> Panel admin: `https://proxy.telcotronics.net`
|
||
|
||
| # | Dominio(s) | Destino interno | SSL | Estado |
|
||
|---|-----------|----------------|-----|--------|
|
||
| 1 | `mesh.telcotronics.net` | 192.168.10.160:443 | HTTP Only | ✅ Online |
|
||
| 2 | `cluster.telcotronics.net` | 192.168.10.140:8006 | Let's Encrypt | ✅ Online |
|
||
| 3 | `proxy.telcotronics.net` | 192.168.10.141:81 | Let's Encrypt | ✅ Online |
|
||
| 4 | `telcotronics.net` | 192.168.10.166:80 | HTTP Only | ✅ Online |
|
||
| 5 | `android.telcotronics.net` | 192.168.10.150:4000 | Let's Encrypt | ✅ Online |
|
||
| 8 | `n8n.telcotronics.net` | 192.168.10.171:5678 | Let's Encrypt | ✅ Online |
|
||
| 9 | `whisper.telcotronics.net` | 192.168.10.145:8000 | Let's Encrypt | ✅ Online |
|
||
| 10 | `voip.telcotronics.net` | 192.168.10.102:80 | Let's Encrypt | ✅ Online |
|
||
| 11 | `sigma.telcotronics.net` | 192.168.10.150:8443 | Let's Encrypt | ❌ Offline |
|
||
| 12 | `api.telcotronics.net` | 192.168.10.145:8000 | Let's Encrypt | ✅ Online |
|
||
| 13 | `dibujo.telcotronics.net` | 192.168.10.159:3000 | Let's Encrypt | ✅ Online |
|
||
| 15 | `xsend.telcotronics.net` | 192.168.10.147:80 | Let's Encrypt | ✅ Online |
|
||
| 17 | `git.telcotronics.net` | 192.168.10.151:3000 | Let's Encrypt | ✅ Online |
|
||
| 19 | `api.klickbot.app` | 192.168.10.170:4001 | Let's Encrypt | ✅ Online |
|
||
| 20 | `app.klickbot.app` | 192.168.10.170:3001 | Let's Encrypt | ✅ Online |
|
||
| 22 | `api-gateway-cloud.telcotronics.net` | 192.168.10.160:3003 | Let's Encrypt | ✅ Online |
|
||
| 23 | `api-gateway-sigma.telcotronics.net` | 192.168.10.160:3003 | Let's Encrypt | ✅ Online |
|
||
| 24 | `klickbot.app` | 192.168.10.160:3005 | Let's Encrypt | ✅ Online |
|
||
|
||
> **Nota:** `api-gateway-cloud` y `api-gateway-sigma` apuntan al mismo destino (.160:3003) — dos dominios para el mismo servicio API-SIGMA-CLOUD. `sigma.telcotronics.net` offline — servicio en .150 (legacy en retiro).
|
||
|
||
---
|
||
|
||
### Equipos de desarrollo
|
||
|
||
| IP | Nombre | Descripción |
|
||
|----|--------|-------------|
|
||
| 192.168.10.100 | siax-amd | Workstation AMD — desarrollo |
|
||
| 192.168.10.101 | siax-intel | Workstation Intel — desarrollo |
|
||
| 192.168.10.72 | pablinux-laptop | Laptop de trabajo |
|
||
| 192.168.10.155 | DAPSI | Sistema de domótica |
|
||
|
||
---
|
||
|
||
### Servidor legacy en retiro
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Nombre | server-sigma |
|
||
| IP | 192.168.10.150 |
|
||
| OS | Ubuntu 20.04 LTS |
|
||
| Estado | ⚠️ En proceso de retiro |
|
||
| Historia | Servidor monolítico original. BD ya migrada. Casi vacío. |
|
||
en contenedor ia va a reusar la ip por el nuevo servidor -> Servidor-API-CENTINEL:~/apps$
|
||
ip a 192.168.10.150/24
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## Bases de datos
|
||
|
||
### CT cloud — SERVIDOR-BD (192.168.10.116)
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.116 |
|
||
| MAC | BC:24:11:50:DE:27 |
|
||
| CT Proxmox | 145 (nodo cloud) |
|
||
| OS | Ubuntu 24.04 LTS |
|
||
| Motores activos | **MySQL 8.0.45** (Producción) / **PostgreSQL 16.13** (API) |
|
||
| Bases de datos MySQL | `TELCOTRONICS` (servidor propio de la dueña y patrocinadora), `SIGMA`, `facturacion` |
|
||
| Bases de datos PostgreSQL | `sigma_api` (SIGMA-OPEN-API legacy), `sigmac_sri` (SIGMAC-SRI-API nueva), `veronica` (Base original) |
|
||
| Rol central | Servidor de base de datos de producción exclusivo de **TELCOTRONICS**. **MySQL** hospeda sus datos comerciales privados en total aislamiento sin compartir nada. **PostgreSQL** es el motor compartido para el almacenamiento de facturas electrónicas de clientes exclusivamente a través de la API `sigma-open-api`. |
|
||
|
||
**⚠️ Notas de Configuración:**
|
||
* **MySQL (Puerto 3306):** Hospeda de manera aislada y privada los datos comerciales e internos de Telcotronics. No tiene contacto con clientes ni con `sigma-open-api`.
|
||
* **PostgreSQL (Puerto 5432):** Hospeda la base `sigma_api` utilizada de forma compartida por `sigma-open-api` para facturación electrónica con el SRI. Mantener `password_encryption = md5`. El driver JDBC `postgresql-9.4.1212.jre7` no soporta `scram-sha-256`.
|
||
|
||
---
|
||
|
||
### CT cluster — mariadb (192.168.10.149)
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.149 |
|
||
| MAC | BC:24:11:96:D4:49 |
|
||
| CT Proxmox | 114 (nodo cluster) |
|
||
| OS | Debian 12 |
|
||
| Motor | **MariaDB 10.11.14** |
|
||
| Base de datos crítica | **`webControl`** (Base central de WebControlSigma / `Web_siax-sytem`) |
|
||
| Otras BDs hospedadas | `mailserver_db` (correo), `gitea` (repositorios), `siax_core`, `SIGMA`, `TELCOTRONICS`, `facturacion`, `sri_data` (caché compartido de consultas RUC/Cédula, usado por API-SIGMA-WEBCONTROL), entre otras (28 BDs en total). |
|
||
| Rol central | Servidor de base de datos relacional del clúster del ecosistema. Provee almacenamiento centralizado y es donde vive la base de datos `webControl` con las tablas `usuarios_sesion` (login) y `api_key` (llaves de API). |
|
||
|
||
---
|
||
|
||
### CT cluster — DB-EMPRESAS (192.168.10.115)
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.115 |
|
||
| MAC | BC:24:11:D4:3C:73 |
|
||
| CT Proxmox | 143 (nodo cluster) |
|
||
| OS | Ubuntu 24.04 LTS |
|
||
| Motor | **MySQL 8.0.45** |
|
||
| Bases de datos hospedadas | `EMPRESA_EL_SOL` (Base de datos de cliente tenant activo), `admin` |
|
||
| Rol central | Servidor de bases de datos de clientes (Tenants) del ecosistema. Utilizado críticamente por `api-gateway-cloud.telcotronics.net` (`API-SIGMA-CLOUD`) para enrutar de forma dinámica y síncrona el flujo comercial diario de los clientes finales. |
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## APIs
|
||
|
||
### Sistema SIGMA — Facturación electrónica
|
||
|
||
SIGMA es el sistema de **facturación electrónica** para Ecuador, basado en el proyecto open source [Verónica](https://github.com/RolandoPalermo/veronica-open-api), adaptado localmente. Se comunica con el **SRI** para envío y autorización de comprobantes electrónicos. Corre en el nodo **cloud** de Proxmox.
|
||
|
||
#### Flujo de una factura
|
||
|
||
```
|
||
Usuario (navegador)
|
||
│
|
||
▼
|
||
Servidor-SIGMA-VW — Webswing (192.168.10.110)
|
||
App Java Swing corriendo en servidor, visible en navegador vía HTML5
|
||
│
|
||
▼
|
||
Servidor-web — Apache proxy (192.168.10.109)
|
||
api.factura-e.net → 192.168.10.120:8080
|
||
│
|
||
▼
|
||
SIGMA-OPEN-API — Spring Boot (192.168.10.120:8080)
|
||
│ │
|
||
▼ ▼
|
||
SERVIDOR-BD SRI Ecuador
|
||
PostgreSQL 16 cel.sri.gob.ec (internet)
|
||
192.168.10.116:5432
|
||
```
|
||
|
||
---
|
||
|
||
### CT cloud — SIGMA-OPEN-API (192.168.10.120)
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.120 (IP fija) |
|
||
| MAC | BC:24:11:1D:F6:60 |
|
||
| CT Proxmox | 142 (nodo cloud) |
|
||
| OS | Ubuntu 24.04 LTS |
|
||
| Rol | API REST de facturación electrónica |
|
||
| Framework | Spring Boot 1.5.9 |
|
||
| Java | OpenJDK **8** (1.8.0_482) — **NO usar Java 9+** |
|
||
| Puerto | 8080 |
|
||
| Contexto URL | `/veronica` |
|
||
| Usuario deploy | `pablinux` |
|
||
|
||
**Ruta del proyecto:** `/home/pablinux/app/sigma-open-api/`
|
||
|
||
**Arrancar:**
|
||
```bash
|
||
sh /home/pablinux/app/1_factElect_modoPROD.sh # producción
|
||
sh /home/pablinux/app/0_factElect_modoDEV.sh # desarrollo
|
||
```
|
||
|
||
**Endpoints:**
|
||
| Recurso | URL |
|
||
|---------|-----|
|
||
| Swagger UI | `http://192.168.10.120:8080/veronica/swagger-ui.html` |
|
||
| OAuth token | `POST http://192.168.10.120:8080/veronica/oauth/token` |
|
||
| API facturas | `http://192.168.10.120:8080/veronica/api/v1.0/` |
|
||
|
||
**⚠️ Si Maven falla por repositorios HTTP bloqueados:** comentar bloque `maven-default-http-blocker` en `/usr/share/maven/conf/settings.xml`.
|
||
|
||
---
|
||
|
||
### CT cloud — SIGMAC-SRI-API (192.168.10.120 — puerto 8082)
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/SIGMAC-SRI_API.git` |
|
||
| Tecnología principal | Spring Boot 1.5.9 + Java 8 (⚠️ Java 9+ rompe dependencias de firma digital) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Producción |
|
||
| Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/java/sigmac-sri-api` |
|
||
| CT Proxmox | 142 (nodo cloud) — comparte CT con SIGMA-OPEN-API |
|
||
| Puerto interno | `8082` |
|
||
| URL interna | `http://192.168.10.120:8082/sri` |
|
||
| Dominio público | `https://api.sigmac.app` (SSL Let's Encrypt — expira 2026-08-30) |
|
||
| Contexto URL | `/sri` |
|
||
| Autenticación | OAuth2 Password Grant — `POST https://api.sigmac.app/sri/oauth/token` |
|
||
| Documentación API | `https://api.sigmac.app/sri/swagger-ui.html` |
|
||
| Última actualización | 2026-06-01 |
|
||
|
||
`SIGMAC-SRI-API` es el fork limpio y propiedad total de Telcotronics de la API de facturación electrónica SRI. Sucesor de `SIGMA-OPEN-API` con namespace unificado `com.telcotronics.sri`. Gestiona el ciclo de vida completo de comprobantes electrónicos: generación XML → firma XAdES-BES → envío SRI → autorización → RIDE (PDF). **Esta es la API oficial del ecosistema. Todos los sistemas nuevos deben integrar esta API.**
|
||
|
||
> ⚠️ **`SIGMA-OPEN-API` (`api.factura-e.net`) entra en estado LEGACY** — solo se mantiene para sistemas existentes que no pueden actualizarse. No integrar nuevos proyectos contra ella. La migración progresiva hacia `api.sigmac.app` es el camino a seguir.
|
||
|
||
**Credenciales de acceso:**
|
||
|
||
| Tipo | Parámetro | Valor | Uso |
|
||
|------|-----------|-------|-----|
|
||
| OAuth2 client | client / secret | `pablinux` / `Microbot%` | Requerido en todas las peticiones de token — va en HTTP Basic Auth |
|
||
| Usuario ADMIN | username / password | `admin` / `SigmacAdmin.2026@` | `ROLE_ADMIN` — gestión de certificados, usuarios, catálogos, stats |
|
||
| Usuario ADMIN — siax-system.net (`Web_siax-sytem`) | username / password | `SIAX-SYSTEM` / `TP.1210@` | `ROLE_ADMIN` dedicado, server-to-server. Uso: administrar certificados digitales (subir/renovar/eliminar vía `/operaciones/certificados-digitales/empresas/{ruc}`) como apoyo técnico a usuarios remotos, y demás operaciones administrativas iniciadas desde el panel `siax-system.net`. Credencial propia, revocable sin afectar a API-SIGMA-WEBCONTROL ni al admin humano |
|
||
| Usuario ADMIN — API-SIGMA-WEBCONTROL | username / password | `WEBCONTROL` / `EA.1303@` | `ROLE_ADMIN` dedicado, server-to-server. Uso: llamadas automatizadas de `API-SIGMA-WEBCONTROL` (creación/sincronización de usuarios vía `POST /operaciones/usuarios`) |
|
||
| Usuario MONITOR | username / password | `monitor` / `SigmacMonitor.2026@` | `ROLE_MONITOR` — monitoreo operativo: tokens, certificados, stats. Sin acceso de escritura. Uso: dashboard/comprobantes/certificados de `siax-system.net`. API key: `3c2b3e57-2173-475a-89f3-82e74170574c` (header `x-api-key`, alternativa a pedir Bearer token). **Temporal** — eliminar esta fila una vez que `siax-system.net` tenga la credencial integrada de su lado |
|
||
| Usuario USER (pruebas) | username / password | `facturador_app` / `SigmacUser.2026@` | `ROLE_USER` — emisión de comprobantes. Usar para pruebas; cada cliente solicita su propio usuario al admin |
|
||
|
||
> Cada sistema o cliente que consuma esta API debe solicitar al admin la creación de su propio usuario con `ROLE_USER` vía `POST /sri/operaciones/usuarios`.
|
||
|
||
**Cómo autenticarse (dos métodos):**
|
||
|
||
```bash
|
||
# --- Método 1: OAuth2 Bearer token ---
|
||
curl -u pablinux:Microbot% -X POST https://api.sigmac.app/sri/oauth/token \
|
||
-d "username=facturador_app&password=SigmacUser.2026@&grant_type=password"
|
||
# Respuesta: { "access_token": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "expires_in": 1199 }
|
||
|
||
curl https://api.sigmac.app/sri/api/v1.0/facturas/{claveAcceso}/archivos/xml \
|
||
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||
|
||
# --- Método 2: API key (header x-api-key) ---
|
||
# Generar API key para un usuario (requiere ROLE_ADMIN)
|
||
curl -X POST https://api.sigmac.app/sri/operaciones/usuarios/facturador_app/api-key \
|
||
-H "Authorization: Bearer <admin-token>"
|
||
# Respuesta: { "success": true, "result": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
|
||
|
||
curl https://api.sigmac.app/sri/api/v1.0/facturas/{claveAcceso}/archivos/xml \
|
||
-H "x-api-key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||
```
|
||
|
||
> Si la petición incluye ambos (`Bearer` + `x-api-key`), el Bearer token tiene precedencia.
|
||
|
||
**BD que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `sigmac_sri` | `192.168.10.116:5432` | PostgreSQL 16.13 | Comprobantes electrónicos (facturas, retenciones, guías, notas, liquidaciones) |
|
||
|
||
**Endpoints principales (para integración):**
|
||
|
||
| Método | Endpoint | Descripción | Auth |
|
||
|--------|---------|-------------|------|
|
||
| POST | `https://api.sigmac.app/sri/oauth/token` | Obtener token OAuth2 | Client `pablinux:Microbot%` |
|
||
| POST | `https://api.sigmac.app/sri/api/v1.0/facturas` | Crear y firmar factura | `ROLE_USER` |
|
||
| PUT | `https://api.sigmac.app/sri/api/v1.0/facturas/{clave}/enviar` | Enviar al SRI | `ROLE_USER` |
|
||
| PUT | `https://api.sigmac.app/sri/api/v1.0/facturas/{clave}/autorizar` | Consultar autorización | `ROLE_USER` |
|
||
| GET | `https://api.sigmac.app/sri/api/v1.0/facturas/{clave}/archivos/pdf` | Descargar RIDE (PDF) | `ROLE_USER` |
|
||
| GET | `https://api.sigmac.app/sri/api/v1.0/facturas/{clave}/archivos/xml` | Descargar XML firmado | `ROLE_USER` |
|
||
| POST | `https://api.sigmac.app/sri/operaciones/usuarios/{user}/api-key` | Generar/renovar API key de usuario | `ROLE_ADMIN` |
|
||
| GET | `https://api.sigmac.app/sri/operaciones/usuarios/{user}/api-key` | Consultar API key de usuario | `ROLE_ADMIN` |
|
||
| PUT | `https://api.sigmac.app/sri/operaciones/usuarios/{user}/estado` | Activar/desactivar usuario (revoca tokens Bearer activos al desactivar) | `ROLE_ADMIN` |
|
||
| POST | `https://api.sigmac.app/sri/operaciones/certificados-digitales/empresas/{ruc}` | Subir certificado digital (falla si ya hay uno activo) | `ROLE_ADMIN` |
|
||
| GET | `https://api.sigmac.app/sri/operaciones/certificados-digitales/empresas/{ruc}` | Consultar metadata del certificado activo | `ROLE_ADMIN` |
|
||
| PUT | `https://api.sigmac.app/sri/operaciones/certificados-digitales/empresas/{ruc}` | Renovar certificado (elimina el anterior + crea el nuevo) | `ROLE_ADMIN` |
|
||
| DELETE | `https://api.sigmac.app/sri/operaciones/certificados-digitales/empresas/{ruc}` | Eliminar certificado (borra físicamente) | `ROLE_ADMIN` |
|
||
| GET | `https://api.sigmac.app/sri/operaciones/stats/resumen` | Total por tipo y estado | `ROLE_ADMIN` |
|
||
| GET | `https://api.sigmac.app/sri/operaciones/stats/hoy` | Comprobantes del día | `ROLE_ADMIN` |
|
||
| GET | `https://api.sigmac.app/sri/operaciones/stats/recientes?limit=N` | Últimos N comprobantes | `ROLE_ADMIN` |
|
||
| GET | `https://api.sigmac.app/sri/monitor/tokens` | Tokens activos por usuario | `ROLE_MONITOR` |
|
||
| DELETE | `https://api.sigmac.app/sri/monitor/tokens/{username}` | Revocar tokens de un usuario | `ROLE_MONITOR` |
|
||
| GET | `https://api.sigmac.app/sri/monitor/certificados` | Estado y caducidad de certs PKCS12 | `ROLE_MONITOR` |
|
||
| GET | `https://api.sigmac.app/sri/monitor/stats/resumen` | Resumen general (monitor) | `ROLE_MONITOR` |
|
||
| GET | `https://api.sigmac.app/sri/monitor/stats/hoy` | Comprobantes del día (monitor) | `ROLE_MONITOR` |
|
||
| GET | `https://api.sigmac.app/sri/monitor/stats/recientes?limit=N` | Últimos N comprobantes (monitor) | `ROLE_MONITOR` |
|
||
|
||
El mismo patrón de endpoints aplica para: `retenciones`, `guias-remision`, `notas-credito`, `notas-debito`, `liquidaciones-compra`.
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Endpoint base | Auth | Estado |
|
||
|--------|--------------|------|--------|
|
||
| Factura | `/sri/api/v1.0/facturas` | ROLE_USER | ✅ Operativo |
|
||
| Retención | `/sri/api/v1.0/retenciones` | ROLE_USER | ✅ Operativo |
|
||
| Guía de Remisión | `/sri/api/v1.0/guias-remision` | ROLE_USER | ✅ Operativo |
|
||
| Nota de Crédito | `/sri/api/v1.0/notas-credito` | ROLE_USER | ✅ Operativo |
|
||
| Nota de Débito | `/sri/api/v1.0/notas-debito` | ROLE_USER | ✅ Operativo |
|
||
| Liquidación de Compra | `/sri/api/v1.0/liquidaciones-compra` | ROLE_USER | ✅ Operativo |
|
||
| Estadísticas (admin) | `/sri/operaciones/stats/*` | ROLE_ADMIN | ✅ Operativo |
|
||
| Monitor | `/sri/monitor/*` (tokens, certificados, stats) | ROLE_MONITOR | ✅ Operativo |
|
||
|
||
**Servicios externos que consume:**
|
||
|
||
| Servicio | URL | Uso |
|
||
|---------|-----|-----|
|
||
| SRI Recepción (prod) | `https://cel.sri.gob.ec/.../RecepcionComprobantesOffline?wsdl` | Envío comprobantes |
|
||
| SRI Autorización (prod) | `https://cel.sri.gob.ec/.../AutorizacionComprobantesOffline?wsdl` | Autorización SRI |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Independiente — no consume APIs internas del ecosistema
|
||
- Los sistemas nuevos que requieran facturación deben apuntar a `api.sigmac.app/sri`
|
||
- Para más información técnica: `siax-amd:/home/pablinux/Projects/java/sigmac-sri-api/agents.md`
|
||
|
||
**Arrancar en producción:**
|
||
```bash
|
||
cd /home/pablinux/app/sigmac-sri-api
|
||
./init.sh # selecciona 2 (producción)
|
||
# o: java -jar sigmac-sri-api.jar
|
||
```
|
||
|
||
---
|
||
|
||
### proxy_server_SRI — Script proxy para consultas SRI de RUC y Cédula
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/proxy_server_SRI.git` |
|
||
| Tecnología principal | Python 3 (ThreadingHTTPServer nativo + connection pooling) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Producción |
|
||
| Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Python/proxy_server_SRI` |
|
||
| Servidor de producción | `186.4.245.19` |
|
||
| Puerto interno | `8000` |
|
||
| Dominio público / URL | `http://186.4.245.19:8000` |
|
||
| Autenticación | Público con CORS total para `/consultar`; HTTP Basic Auth para `/api/logs` |
|
||
| Proceso | `tmux` sesión `proxy_server_SRI` gestionada por `init.sh` |
|
||
| Última actualización | 2026-09-01 |
|
||
|
||
`proxy_server_SRI` es un script proxy HTTP en Python y orquestador de búsqueda en cascada para la consulta y validación fiscal de identificaciones (RUC y Cédulas de Ecuador). Resuelve la dispersión de fuentes externas consultando secuencialmente con detención temprana (`SRI.php` → `SRI2.php` → `CEDULAS2.php`) y normaliza la respuesta en JSON estructurado para el consumo de `API-SIGMA-WEBCONTROL`, `WebControlSigma`, `SIGMAC`, `sigmac_app` y `sigmac-web`.
|
||
|
||
**BDs que usa:**
|
||
- Sin base de datos local (Stateless — proxy / gateway). El resultado externo es cacheado de forma compartida en `sri_data.clientes` (`.149`) por `API-SIGMA-WEBCONTROL`.
|
||
|
||
**Servicios que expone:**
|
||
|
||
| Método | Endpoint | Descripción | Auth |
|
||
|--------|---------|-------------|------|
|
||
| `GET` | `http://186.4.245.19:8000/consultar?ruc={ruc}` | Consulta en cascada de RUC / Cédula | Libre (CORS `*`) |
|
||
| `GET` | `http://186.4.245.19:8000/` | Landing de diagnóstico visual y mini-docs | Libre |
|
||
| `GET` | `http://186.4.245.19:8000/api/logs?tail=N` | Historial de logs del servidor | HTTP Basic Auth (`admin`) |
|
||
| `POST` | `http://186.4.245.19:8000/api/logs/clear` | Vaciado de archivo de logs | HTTP Basic Auth (`admin`) |
|
||
|
||
**Servicios que consume:**
|
||
- `http://sheyla2.dyndns.info/SRI` (`SRI.php`, `SRI2.php`, `CEDULAS2.php`).
|
||
|
||
**Módulos disponibles:**
|
||
- Cascada de consultas SRI / Cédula: ✅ Operativo
|
||
- Normalización y parseo de respuestas: ✅ Operativo
|
||
- Consola de logs dual (consola/tmux + rotativo 5MB): ✅ Operativo
|
||
- Landing interactiva con mini documentación y probador: ✅ Operativo
|
||
|
||
**Integración con el ecosistema:**
|
||
- Consumido por `API-SIGMA-WEBCONTROL` (módulo directorio de clientes), `WebControlSigma` y aplicaciones cliente de facturación.
|
||
- Más información técnica: `siax-amd:/home/pablinux/Projects/Python/proxy_server_SRI/agents.md`.
|
||
|
||
---
|
||
|
||
### API-SIGMA-WEBCONTROL — Centro de control administrativo y seguridad
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/API-SIGMA-WEBCONTROL.git` |
|
||
| Tecnología principal | Node.js (Express) con pool de conexión `mysql2/promise` |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Producción — `Ubuntu-Docker` CT 105 (`192.168.10.145`) |
|
||
| Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/API-SIGMA-WEBCONTROL` |
|
||
| Proceso | `tmux` sesión con `npm start` en `/root/app/API-SIGMA-WEBCONTROL` — pendiente migrar a **siax-monitor** |
|
||
| Puerto interno | `3002` |
|
||
| URL interna | `http://192.168.10.145:3002` |
|
||
| Dominio público | `https://api.siax-system.net` (vía Cloudflare — SSL) |
|
||
| Autenticación | Login por `usrSesion_email` — soporta bcrypt y plain-text con auto-migración silenciosa |
|
||
| Rol en el ecosistema | Núcleo central de autorizaciones y notificaciones de salud del ecosistema completo |
|
||
| Última actualización | 2026-08-04 |
|
||
|
||
`API-SIGMA-WEBCONTROL` es el cerebro y columna vertebral de seguridad y eventos del ecosistema SIGMA. Actúa como la fuente única de verdad para autorizar procesos y recopilar la salud e incidencias operativas de toda la red local y cloud de Telcotronics:
|
||
|
||
* **Base Central de Autorizaciones (API Keys)**: Genera, almacena y valida las llaves de acceso de sistema (**API Keys** en la tabla `webControl.api_key`). Es consumida críticamente por las aplicaciones comerciales y, fundamentalmente, por agentes de monitoreo e infraestructura como **SIAX Monitor**, **mail-monitor** o **server-monitor** (encargado de alertar sobre la caída de instancias o servidores) para autenticar sus despachos de telemetría.
|
||
* **Base Central de Notificaciones de Salud y Eventos**: Centraliza y procesa el flujo de logs de errores, caídas de servicios y alertas críticas del sistema. Despacha alertas a las interfaces correspondientes tras recibir notificaciones de eventos (como caídas detectadas por los monitores del cluster o estados de rechazo de documentos del SRI procesados por n8n).
|
||
* **CRM y Licenciamiento**: Controla el registro de empresas aliadas y gestiona los parámetros globales de suscripciones y accesos de usuarios de plataforma.
|
||
* **Onboarding Automático en 3 Pasos**:
|
||
1. *Pre-registro*: Registra provisionalmente datos en la tabla temporal `usuarios_xValidar` (`usr_est=0`), genera un token y despacha un código OTP de 6 dígitos vía correo electrónico (`emailService.js`) con rate limiting (3 intentos cada 15 min) para mitigar spam de cuentas.
|
||
2. *Verificación OTP*: Valida el OTP antes de 10 minutos desde el envío. Tras verificarlo, cambia el estado a `usr_est=1` y autoriza al cliente a instanciar la cuenta definitiva.
|
||
3. *Aprovisionamiento de Base de Datos*: Crea el usuario definitivo en la tabla `usuarios_sesion` (contraseña bcrypt) y clona síncronamente el molde MySQL oficial hacia la nueva base de datos del cliente (`EMPRESA_XXX`) en el host de Tenants (`.115`) ejecutando el script `tenantSchema.js`.
|
||
* **Directorio Centralizado de Clientes** (`/api/clientes`): ⚠️ Documentado en versiones previas de este documento como operativo, pero **no está montado en `app.js`** — código muerto hoy (varias rutas referencian funciones inexistentes en el controlador). Pendiente reparar o retirar. Flujo de consulta ya implementado en el código (aunque no montado): `TELCOTRONICS.clientes` (CRM privado de Telcotronics) → caché compartido `sri_data.clientes` (`.149`) → servicio externo (`zonafranka.ec:8000/consultar`, `siax-system.net/api/clientes_cloud.php`) — el resultado externo se cachea en `sri_data` con upsert para no repetir la consulta la próxima vez.
|
||
* **Registro Centralizado de Empresas** (`/api/empresas`): RUC, razón social, nombre comercial y logo. Requisito previo para subir la firma electrónica de una empresa en `sigmac-sri-api` — el RUC debe existir aquí antes de que esa API acepte un certificado, evitando asociarlo a un RUC inventado por error humano.
|
||
* **Activación de Documentos Electrónicos** (`/api/sri/documentos-electronicos`): sincroniza la identidad del usuario con `sigmac-sri-api`, reemplazando el patrón inseguro de embeber credenciales admin en cada app cliente. Valida email+contraseña como un login real; solo si es válido, usa ese password (nunca persistido) para crear/sincronizar el usuario en `sigmac-sri-api` vía una credencial admin server-to-server dedicada (`WEBCONTROL`). Guía de integración para cualquier app del ecosistema: `/home/pablinux/Projects/activacion_documentos_electronicos.md`.
|
||
|
||
**BDs que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `webControl` | `192.168.10.149` | MariaDB 10.11 | `usuarios_sesion` (identidades + login, incluye `sri_synced`), `usuarios_xValidar` (onboarding temporal), `api_key` (llaves de API), `aplicaciones`, `aplicaciones_versiones`, `empresas` (RUC, nombre comercial, logo) |
|
||
| `sri_data` | `192.168.10.149` | MariaDB 10.11 | Caché compartido de consultas RUC/Cédula a servicios externos (`clientes`) — independiente de `TELCOTRONICS.clientes` (CRM privado de Telcotronics) y de `webControl.empresas` (registro formal) |
|
||
| `SIGMA` | `192.168.10.116` | MySQL 8.0 | `HistorialActualizacionBD` — scripts SQL delta distribuidos a todas las apps del ecosistema |
|
||
| `EMPRESA_SEED` | `192.168.10.115` | MySQL 8.0 | BD semilla — clonada para crear `EMPRESA_XXX` en el onboarding paso 3 |
|
||
| `EMPRESA_XXX` (dinámica) | `192.168.10.115` | MySQL 8.0 | BD del nuevo tenant — aprovisionada automáticamente en onboarding paso 3 |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | Host / URL | Uso |
|
||
|---------|-----------|-----|
|
||
| SMTP | `smtp.sigmac.app:587` (interno: `192.168.10.111:587`) | Envío de OTP al registrar usuarios — `no-reply@sigmac.app`, STARTTLS |
|
||
|
||
**Endpoints principales (para integración):**
|
||
|
||
| Método | Endpoint | Descripción | Auth |
|
||
|--------|----------|-------------|------|
|
||
| POST | `/api/auth/pre-register` | Paso 1 onboarding — registro temporal + envío OTP | Pública |
|
||
| POST | `/api/auth/verify-otp-registro` | Paso 2 — verificación OTP (10 min, rate limit 3 intentos/15 min) | Pública |
|
||
| POST | `/api/auth/register` | Paso 3 — cuenta definitiva + aprovisionamiento BD tenant | Pública |
|
||
| POST | `/api/auth/empresas` | Pre-login — devuelve empresas del email sin emitir JWT. `unica: true` si solo tiene una. | Pública |
|
||
| POST | `/api/auth/login` | Login — emite JWT (8h) + apiKey. `?dba=EMPRESA_XXX` opcional para multi-empresa. Registra `usrSesion_ultimo_login`. | Pública |
|
||
| POST | `/api/auth/forgot-password` | Recuperación paso 1 — envía OTP al email. Respuesta genérica (no revela si existe). | Pública |
|
||
| POST | `/api/auth/reset-password` | Recuperación paso 2 — verifica OTP y actualiza contraseña en cloud. | Pública |
|
||
| GET | `/api/apps` | Lista apps satélite del ecosistema con metadata | `x-api-key` |
|
||
| GET | `/api/apps/versiones` | Lista versiones registradas (filtrables por app) | `x-api-key` |
|
||
| POST | `/api/apps/versiones` | Publica nueva versión de app (versión, changelog, url_descarga, archivo_md5, estado) | `x-api-key` |
|
||
| GET | `/api/apps/versiones/:app_nombre/latest` | Última versión activa — usada por apps cliente para auto-actualización | `x-api-key` |
|
||
| GET | `/api/apps/versiones/:app_nombre/md5` | Hash MD5 del ejecutable de la versión activa — el cliente lo compara con el MD5 del archivo descargado para verificar integridad | `x-api-key` |
|
||
| GET | `/api/sql/check_update` | Resumen rápido: total scripts y versión más reciente en `HistorialActualizacionBD` | `x-api-key` |
|
||
| GET | `/api/sql/updates?since=YYYY-MM-DD` | Scripts activos desde fecha indicada — paginado, máx 500/página | `x-api-key` |
|
||
| GET | `/api/sql/updates/:id` | Script por ID (incluye inactivos — para auditoría y reintentos) | `x-api-key` |
|
||
| POST | `/api/sql/updates` | Publica nuevo script delta (uso exclusivo del equipo de desarrollo) | `x-api-key` |
|
||
| PATCH | `/api/sql/updates/:id/estado` | Activa o desactiva un script publicado | `x-api-key` |
|
||
| * | `/api/notificaciones/*` | Recepción de eventos de salud e incidencias del ecosistema | `x-api-key` |
|
||
| POST | `/api/errores` | Bitácora centralizada — cualquier app/web app reporta sus errores (obligatorio `app_origen`+`mensaje`; resto opcional). Tabla `webControl.sistemas_errores` | `x-api-key` |
|
||
| GET | `/api/errores` | Lista paginada con filtros (`app_origen`/`usuario`/`cuenta`/`categoria`/`nivel`/`huella`/`desde`/`hasta`), sin `detalle` | `x-api-key` |
|
||
| GET | `/api/errores/:id` | Error completo con `detalle` (stack/dump) | `x-api-key` |
|
||
| GET | `/api/errores/resumen?dias=N` | Conteo agrupado por app+categoria+huella (qué falla más) | `x-api-key` |
|
||
| * | `/api/clientes/*` | ⚠️ No montado — ver nota arriba | — |
|
||
| * | `/api/sri/*` | Configuración de firmas electrónicas y SRI | `x-api-key` |
|
||
| POST | `/api/sri/documentos-electronicos/activar` | Valida email+contraseña como login real; sincroniza el usuario en sigmac-sri-api | Pública (la validación de password ES la autenticación) |
|
||
| GET | `/api/sri/documentos-electronicos/estado?email=` | Consulta si el usuario ya activó la emisión de documentos electrónicos | `x-api-key` |
|
||
| POST | `/api/empresas` | Registra una empresa (ruc, nombre_comercial, razon_social?, dba?) | `x-api-key` |
|
||
| GET/PUT | `/api/empresas/:ruc` | Consulta / actualiza una empresa (nunca el RUC) | `x-api-key` |
|
||
| POST/GET | `/api/empresas/:ruc/logo` | Sube / sirve el logo de la empresa | `x-api-key` |
|
||
|
||
**Header de autenticación para endpoints protegidos:** `x-api-key: {key}` (tabla `webControl.api_key`)
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Prefijo de ruta | Estado |
|
||
|--------|----------------|--------|
|
||
| Autenticación y Onboarding | `/api/auth` | ✅ Operativo |
|
||
| Apps satélite e infraestructura | `/api/apps`, `/api/apps_servcs` | ✅ Operativo |
|
||
| Versiones de Apps (CLI Sync) | `/api/apps/versiones` | ✅ Operativo |
|
||
| Scripts SQL delta | `/api/sql` | ✅ Operativo |
|
||
| Documentos Electrónicos y SRI | `/api`, `/api/sri` | ✅ Operativo |
|
||
| Activación Documentos Electrónicos (sync sigmac-sri-api) | `/api/sri/documentos-electronicos` | ✅ Operativo |
|
||
| Registro Centralizado de Empresas | `/api/empresas` | ✅ Operativo |
|
||
| Directorio Centralizado de Clientes | `/api/clientes` | ⚠️ Documentado pero no montado |
|
||
| Monitoreo, Alertas y Proyectos | `/api/notificaciones`, `/api/proyectos` | ✅ Operativo |
|
||
| Bitácora centralizada de errores | `/api/errores` | 🟡 Código listo — pendiente `CREATE TABLE sistemas_errores` en `.149` + deploy |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **factura-e**: usa `webControl.usuarios_sesion` directamente para auth — login por `usrSesion_email` + bcrypt/plain-text
|
||
- **sigmac_app** / **sigmac-web**: registro y login vía `/api/auth/*`. Usuarios nuevos quedan con `usrSesion_panel = 'configuracion'`
|
||
- **API-SIGMA-CLOUD**: valida `x-api-key` contra `webControl.api_key` (`.149`) en cada petición entrante
|
||
- **mail-monitor**: notifica eventos de seguridad (bans fail2ban, cambios de cuenta) vía `x-api-key`
|
||
- Para más información técnica del proyecto: consultar localmente en `siax-amd:/home/pablinux/Projects/Node/API-SIGMA-WEBCONTROL/agents.md`
|
||
|
||
---
|
||
|
||
### API-SIGMA-CLOUD — API Gateway Multi-tenant
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://github.com/telcotronics/api-gateway-cloud.git` (Gitea: `https://git.telcotronics.net/pablinux/API-GATEWAY-CLOUD.git`) |
|
||
| Tecnología principal | Node.js (Express) con conmutador de pools dinámicos (`mysql2/promise`) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Producción — `server-webapps` CT 132 (`192.168.10.160`) |
|
||
| Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/API-SIGMA-CLOUD` |
|
||
| Puerto interno | `3003` |
|
||
| URL interna | `http://192.168.10.160:3003` |
|
||
| Dominio público | `api-gateway-cloud.telcotronics.net` / `api-gateway-sigma.telcotronics.net` |
|
||
| Servicio systemd | `api-gateway.service` |
|
||
| Documentación API | `https://api-gateway-cloud.telcotronics.net/api-docs` (Swagger UI) |
|
||
| Rol en el ecosistema | API Gateway multi-tenant cloud y motor transaccional comercial diario de todos los tenants |
|
||
| Última actualización | 2026-06-07 |
|
||
|
||
`API-SIGMA-CLOUD` es el proxy y enrutador comercial del ecosistema. Se conecta directamente con las aplicaciones de campo finales (Webswing, `sigmac_app` Flutter, `sigma_app` Android) para procesar el volumen operativo diario de cada tenant. Actúa como puente dinámico entre las apps y las bases de datos individuales de los clientes. **API REST pura** — sin vistas ni templates (código legacy eliminado 2026-06-07).
|
||
|
||
* **Enrutamiento Dinámico Multi-tenant**: Middleware `dbConnection.js` enruta cada petición a la BD exacta del cliente (`?db=` o `x-database`). Nombres reservados van a pools fijos; cualquier otro nombre usa `getTenantPool(dbName)` — pool cacheado apuntando a `.115` con esa BD. Sin restricción de patrón de nombre.
|
||
* **Autenticación en Dos Capas**: API Key (`x-api-key`) validada contra `webControl.api_key` en `.149`, y JWT Bearer (8 h) para sesiones de usuarios dentro del tenant.
|
||
* **Transaccionalidad Comercial**: Inserción de pedidos, proformas e items bajo `BEGIN TRANSACTION / COMMIT / ROLLBACK` — sin corrupción de registros contables.
|
||
* **Sincronización Delta Offline**: Endpoints masivos con filtro `?desde=` y paginación `?limite=`/`?offset=`. El sync masivo excluye imágenes — se recuperan puntualmente en Base64 con `/api/items/get-items/:item`.
|
||
|
||
**BDs que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `webControl` | `192.168.10.149` | MariaDB 10.11 | Tabla `api_key` — validación de API Keys en cada petición entrante |
|
||
| `EMPRESA_XXX` (dinámica, `dbConnection`) | `192.168.10.115` | MySQL 8.0 | BD operativa del tenant enrutado por `?db=` — lógica de negocio diaria |
|
||
| `EMPRESA_XXX` (dinámica, `poolTenants`) | `192.168.10.115` | MySQL 8.0 | Pool dedicado sin DB fija para `/api/reportes` — queries con prefijo schema `` `EMPRESA_XXX`.tabla `` |
|
||
| `TELCOTRONICS` | `192.168.10.116` | MySQL 8.0 | Pool por defecto — datos propios Telcotronics |
|
||
| `SIGMA` | `192.168.10.116` | MySQL 8.0 | Pool histórico — consultas legacy |
|
||
| `sigma_tv` | `192.168.10.149` | MariaDB 10.11 | Pool canales Sigma TV |
|
||
|
||
**Headers de autenticación e integración:**
|
||
|
||
| Header / Param | Requerido | Descripción |
|
||
|----------------|-----------|-------------|
|
||
| `x-api-key` | ✅ Siempre | API Key del ecosistema — validada contra `webControl.api_key` en `.149` |
|
||
| `x-database` o `?db=` | ✅ En endpoints tenant | Nombre de la BD del cliente (ej: `EMPRESA_EL_SOL`) |
|
||
| `Authorization: Bearer {jwt}` | En endpoints de usuario | JWT emitido por `/api/auth/login-socio` (validez 8 h) |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Prefijo de ruta | Estado |
|
||
|--------|----------------|--------|
|
||
| Autenticación dual (admins bcrypt + socios MD5 legacy) | `/api/auth` | ✅ Operativo |
|
||
| Catálogo e Inventario — CRUD completo (GET individual, POST transaccional, PUT, DELETE transaccional, sync delta) | `/api/items` | ✅ Operativo |
|
||
| Utilidades y Precios (cálculo PVP offline, márgenes por grupo/item/volumen/costo) | `/api/items/utilidad`, `/api/items/precios` | ✅ Operativo |
|
||
| Clientes y Miembros — CRUD multi-tenant (`poolTenants` + `resolveDb`) | `/api/clientes` | ✅ Operativo |
|
||
| Documentos transaccionales (Pedidos y Proformas) | `/api/documentos` | ✅ Operativo |
|
||
| Contabilidad y Plan de Cuentas (sync offline Android) | `/api/contabilidad` | ✅ Operativo |
|
||
| Panel (Cajas activas, Pagos, Comprobantes) | `/api/panel` | ✅ Operativo |
|
||
| Localización (Áreas físicas) | `/api/localizacion` | ✅ Operativo |
|
||
| Reportes y Dashboard (10 endpoints analíticos para `sigmac_app`) | `/api/reportes` | ✅ Operativo |
|
||
| Usuarios del sistema — CRUD por tenant (facturador, vendedor, etc.) | `/api/panel/usuarios` | ✅ Operativo |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **API-SIGMA-WEBCONTROL**: fuente de validación de `x-api-key` — toda petición entrante consulta `webControl.api_key` en `.149`
|
||
- **DB-EMPRESAS (.115)**: destino dinámico de todas las operaciones comerciales de tenants vía `dbConnection.js`
|
||
- **sigmac_app / sigmac-web**: consumidor principal — sync offline, pedidos, proformas, clientes e items
|
||
- **Webswing (.110)**: cliente desktop de operaciones comerciales diarias
|
||
- Para más información técnica del proyecto: consultar localmente en `siax-amd:/home/pablinux/Projects/Node/API-SIGMA-CLOUD/agents.md`
|
||
|
||
---
|
||
|
||
### API-SIGMA-COMUNICACIONES — Gateway SaaS de canales de mensajería por cliente
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/API-SIGMA-COMUNICACIONES.git` |
|
||
| Tecnología principal | Node.js (Express) + MySQL (`mysql2/promise`) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🔴 En desarrollo inicial — arquitectura base multi-tenant en código, sin desplegar |
|
||
| Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/API-SIGMA-COMUNICACIONES` |
|
||
| Servidor de producción | `server-webapps` CT 132 (`192.168.10.160`) — mismo servidor que API-SIGMA-CLOUD y API-SIGMA-WEBCONTROL. Aún sin primer despliegue. |
|
||
| Ruta remota | `/home/user_apps/apps/API-SIGMA-COMUNICACIONES/` |
|
||
| Servicio systemd | `siax-app-API-SIGMA-COMUNICACIONES.service` (gestionado por SIAX Monitor — pendiente de registrar en el servidor) |
|
||
| Puerto interno | `3004` (default, configurable por `.env`) |
|
||
| Dominio público | Pendiente |
|
||
| Última actualización | 2026-08-17 |
|
||
|
||
`API-SIGMA-COMUNICACIONES` es el producto SaaS multi-tenant de canales de mensajería: cada organización/cliente del ecosistema crea y conecta **su propio** componente WhatsApp (bot tipo `whatsapp-web.js` y/o Meta Cloud API), Telegram y redes sociales, aislado del resto de tenants. Es un sistema **paralelo e independiente de `sigma-robot`** — ese es el hub de comunicaciones e IA de uso *interno* de Telcotronics; este proyecto no delega envío de mensajes en él ni viceversa.
|
||
|
||
* **Multi-tenencia**: una sola BD MySQL; toda tabla de negocio futura lleva `organization_id`. Patrón `TenantScopedRepository` obligatorio para evitar fugas de datos entre tenants.
|
||
* **Autenticación de tenants**: `x-api-key` por organización (hash SHA-256 almacenado, formato `sk_<env>_<random>`, nunca se guarda en texto plano).
|
||
* **Autenticación de administración**: `x-admin-secret` — gestiona el catálogo de organizaciones y sus api keys, separado de `x-api-key` para evitar el problema de arranque circular (no se puede exigir una key de tenant para crear la primera key de ese tenant).
|
||
|
||
**BDs que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| Pendiente de aprovisionar | Pendiente | MySQL | `organizations`, `api_keys` — migraciones ya escritas en `src/db/migrations/`, no aplicadas aún |
|
||
|
||
**Servicios que consume:** ninguno todavía.
|
||
|
||
**Endpoints principales (para integración):**
|
||
|
||
| Método | Endpoint | Descripción | Auth |
|
||
|--------|----------|-------------|------|
|
||
| GET | `/health` | Healthcheck | Pública |
|
||
| POST / GET | `/organizations` | Crear / listar organizaciones | `x-admin-secret` |
|
||
| GET / PUT / DELETE | `/organizations/:uuid` | Detalle / actualizar / suspender (soft-delete) | `x-admin-secret` |
|
||
| GET / POST | `/organizations/:uuid/api-keys` | Listar / emitir api key de un tenant | `x-admin-secret` |
|
||
| POST | `/organizations/:uuid/api-keys/:id/revoke` | Revocar api key | `x-admin-secret` |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| Arquitectura SaaS multi-tenant (organizations/api_keys) | 🟡 Código listo, sin desplegar |
|
||
| Cuentas de usuario humano (login agentes/administradores) | ⏳ Pendiente |
|
||
| Componente WhatsApp por tenant (bot whatsapp-web.js / Meta Cloud API) | ⏳ Pendiente |
|
||
| Telegram / redes sociales | ⏳ Pendiente |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Ningún proyecto lo consume todavía — es un proyecto nuevo.
|
||
- Para más información técnica del proyecto: consultar localmente en `siax-amd:/home/pablinux/Projects/Node/API-SIGMA-COMUNICACIONES/agents.md`
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## Aplicaciones web
|
||
|
||
### CT cloud — Servidor-web (192.168.10.109)
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.109 |
|
||
| MAC | BC:24:11:68:9D:74 |
|
||
| CT Proxmox | 150 (nodo cloud) |
|
||
| Motor | Apache 2.4.66 + PHP **8.5**-FPM |
|
||
| Rol | Proxy reverso público + host de sitios PHP |
|
||
|
||
> **Convención de directorios:** `/var/www/web_[nombre]/`
|
||
|
||
| Directorio | Dominio | Notas |
|
||
|-----------|---------|-------|
|
||
| `web_factura-e` | `factura-e.net` / `app.factura-e.net` | ← **FACTURA-E** (ERP Facturador SIGMA) |
|
||
| `web_sigmac-crm` | `crm.sigmac.app` | sigmac-web (Laravel 13 + Vue 3) |
|
||
| `web_sigmac_app` | `sigmac.app` | Web de la marca SIGMAC |
|
||
| `web_telcotronics` | `telcotronics.com` | Web corporativa Telcotronics |
|
||
| `web_domus-fa` | `domus-fa.com` | Sistema domótica DAPSI |
|
||
| `web_acerogas` | — | Cliente Acerogas |
|
||
| `web_artesymas` | — | Cliente Artes y Más |
|
||
| `web_fact_pro` | — | Facturador Pro |
|
||
| `web_gimnasio` | — | Cliente Gimnasio |
|
||
| `web_helpdesk` | — | Help Desk |
|
||
| `web_tiendaPadi` | — | Cliente Tienda Padi |
|
||
| `web_xsystem` | — | XSystem |
|
||
| `web_zonaindustrial` | — | Cliente Zona Industrial |
|
||
| `web_test_facturador` | — | Entorno de pruebas |
|
||
|
||
**Proxies internos (Apache → backend):**
|
||
|
||
| Dominio | Destino |
|
||
|---------|---------|
|
||
| `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/ |
|
||
|
||
---
|
||
|
||
### CT cloud — Servidor-SIGMA-VW (192.168.10.110) · proyecto `SIGMA-CLOUD-APPS-SERVER`
|
||
|
||
**Servidor de aplicaciones cloud** del ecosistema: ejecuta aplicaciones Java Swing
|
||
(principalmente **SIGMAC**, el ERP de facturación electrónica) dentro del navegador
|
||
usando HTML5 Canvas + WebSocket + Protocol Buffers, sin modificar el código fuente de
|
||
la app. Es un **fork de Webswing** (última versión libre) adaptado con autenticación
|
||
centralizada contra **API-SIGMA-WEBCONTROL**, multi-tenant (el `db_tenant` del login
|
||
llega como `-Dsigma.db=<tenant>` al proceso Swing) y branding SIGMA Cloud.
|
||
Nombre lógico del proyecto: `SIGMA-CLOUD-APPS-SERVER` (el directorio local sigue
|
||
llamándose `SIGMA-CLOUD-APPS/` para no romper rutas absolutas de config/worktree).
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.110 |
|
||
| MAC | BC:24:11:DC:3B:6E |
|
||
| CT Proxmox | 141 (nodo cloud) |
|
||
| Rol | Frontend web del sistema SIGMA (servidor de apps Swing en el browser) |
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/SIGMA-CLOUD-APPS-SERVER.git` (remote `origin` histórico: `bitbucket.org/pablinux/webswing.git`) |
|
||
| Tecnología | **Webswing 20.1.7 en producción** (rama `webcontrol-20.1.7`) · fork base **20.2.5** en `main` |
|
||
| Stack | Java 11 (build) / **Java 8 (runtime servidor 20.1.7 — Guice 4.1 + CGLIB)** / Java 8 u 11 (apps Swing) · Jetty 9.4 · Jersey 2.31 · Google Guice 4.1 · Protocol Buffers 3.12 · BouncyCastle 1.61 · ActiveMQ (puerto **configurable** vía `-Dwebswing.jmsUrl`, default 34455 — permite 2 instancias en el mismo host) · TypeScript 5.5 · Webpack 5.93 · Xvfb |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ **En producción real** (deploy 2026-09-05): `sigma-server.war` 20.1.7 con WebControl + skin SIGMA Cloud + consola admin rebrandeada, en `app/SIGMA-WEB` (plataforma legacy, ganadería/CRM + SIGMAC). Además, **instalación nueva y separada** en `servicios/sigma-cloud-apps-server` (misma IP, puertos propios), `apps/` vacía — sin apps reales desplegadas ahí todavía. |
|
||
| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/java/SIGMA-CLOUD-APPS` (rama `main`) y `/home/pablinux/Projects/java/SIGMA-CLOUD-APPS-2017` (worktree, rama `webcontrol-20.1.7`) |
|
||
| Servidor de producción | Servidor-SIGMA-VW CT 141 (`192.168.10.110`) |
|
||
| Puerto | `8090`/`8443` (`app/SIGMA-WEB`, prod real) · `8091`/`8444` (`servicios/sigma-cloud-apps-server`, instalación nueva) · `8085` (entorno de prueba en siax-amd, bind `192.168.10.100`) |
|
||
| Dominio público | `https://app.factura-e.net` (Apache `.109` → Webswing `.110`) |
|
||
| Última actualización | 2026-09-05 |
|
||
|
||
**Arquitectura:**
|
||
```
|
||
Navegador (HTML5 Canvas, TS)
|
||
│ WebSocket (Protobuf)
|
||
Webswing Server (Jetty + Jersey + Guice) ── login → API-SIGMA-WEBCONTROL
|
||
│ WebSocket (Protobuf)
|
||
JVM Swing Process (WebToolkit interceptado) ── 1 por sesión de usuario
|
||
│
|
||
Aplicación SIGMAC (Java Swing — sin modificar) ── -Dsigma.db=<tenant> → MySQL .116
|
||
```
|
||
|
||
**BDs que usa:** ninguna propia. Las apps Swing (SIGMAC) conectan a la BD del tenant
|
||
en `192.168.10.116` (MySQL / HikariCP), nombre de BD según `db_tenant`.
|
||
|
||
**Servicios que consume:**
|
||
| Servicio | Para qué |
|
||
|---|---|
|
||
| `API-SIGMA-WEBCONTROL` (`api.siax-system.net`, detrás de Cloudflare) | Login (`POST /api/auth/login` → JWT HS256 8h + apiKey + `db_tenant`) |
|
||
| MySQL tenant `.116` | Datos de SIGMAC (vía la app Swing, no directo) |
|
||
| `smtp.sigmac.app:587` / `192.168.10.111:587` | Correo del ecosistema |
|
||
|
||
**Servicios que expone:** UI de las apps Swing por HTTP/WebSocket; REST de gestión
|
||
(`/rest/paths`, `/sessions`, `/pathConfig`, `/log`, CRUD de paths — solo `main`/20.2.5);
|
||
consola de administración en `/admin/` (20.1.7, recuperada de prod).
|
||
|
||
**Módulos (estado para integración):**
|
||
- Fork base + rebranding + REST extendida (`main`/20.2.5) — ✅ compila y corre
|
||
- Módulo `WebControlSecurityModule` (20.1.7) — ✅ probado e2e
|
||
- Skin de login SIGMA Cloud + consola admin rebrandeada (20.1.7) — ✅ en producción real (`app/SIGMA-WEB`)
|
||
- Instalación nueva y separada en `servicios/sigma-cloud-apps-server` (8091/8444) — ✅ armada y corriendo, `apps/` vacía (falta desplegar SIGMAC u otra app ahí)
|
||
|
||
**Integración con el ecosistema:** es el frontend de **SIGMAC**; se autentica vía
|
||
**API-SIGMA-WEBCONTROL**; SIGMAC (a través de este servidor) consume **API-SIGMA-CLOUD**
|
||
y la BD del tenant. Publicado al exterior por el Apache de Servidor-web (`.109`).
|
||
|
||
**Compilar:**
|
||
```bash
|
||
# Fork 20.2.5 (rama main)
|
||
mvn install -Pdev -T 18 -pl webswing-server/webswing-server-war --also-make
|
||
# 20.1.7 + WebControl + skin (worktree SIGMA-CLOUD-APPS-2017) — sin Maven
|
||
./build-webcontrol-war.sh <sigma-server.war base> <salida.war>
|
||
```
|
||
|
||
**Dónde buscar más info:** `siax-amd:/home/pablinux/Projects/java/SIGMA-CLOUD-APPS/agents.md`
|
||
(+ `.agente/` para memoria, estructura, errores, objetivos y reglas).
|
||
|
||
---
|
||
|
||
### WebControlSigma (Web_siax-sytem) — Panel Administrativo del Ecosistema
|
||
|
||
Panel web central de administración del ecosistema Telcotronics. Gestiona empresas clientes, usuarios cloud (`usuarios_sesion` / `usuarios_xValidar`), API Keys de los 3 sistemas (webControl, sigma-robot, api-IA), licencias de hosts (SHA256 determinista), notificaciones, proyectos y catálogo de apps descargables. Incluye módulo BFF PHP hacia `SIGMAC-SRI-API` para facturación electrónica. Login con bcrypt + captcha. Desplegado en Apache 2.4 + PHP 8.5-FPM en Servidor-web (.109).
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/Web_siax-sytem.git` |
|
||
| Tecnología principal | PHP 8.5 + MariaDB (PDO) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Activo — tabs Android/iOS + CLI Sync + endpoint upload_app 2026-06-16 |
|
||
| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/php/Web_siax-sytem` |
|
||
| Servidor de producción | Servidor-web CT 150 (`192.168.10.109`) |
|
||
| Directorio deploy | `/var/www/web_xsystem/public_html` |
|
||
| Dominio público | `siax-system.net` |
|
||
| Puerto | 80 / 443 (Apache) |
|
||
| Última actualización | 2026-06-16 |
|
||
|
||
**BDs que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `webControl` | `192.168.10.149` | MariaDB 10.11 | BD principal — `ClienteEmpresa`, `HostEmpresa`, `usuarios_sesion`, `usuarios_xValidar`, `panel_control_users`, `api_key`, `notificaciones` |
|
||
| `siax_core` | `192.168.10.149` | MariaDB 10.11 | Lectura/escritura API keys de sigma-robot (`api_keys`) |
|
||
| `api_ia_python` | `192.168.10.149` | MariaDB 10.11 | Lectura/escritura API keys de api_service_ia (`api_key`) |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Autenticación | Propósito |
|
||
|---------|-----|---------------|-----------|
|
||
| SIGMAC-SRI-API | `https://api.sigmac.app/sri` | OAuth2 Password Grant | Panel BFF facturación SRI — `app/facturacion/` |
|
||
| SMTP ecosistema | `smtp.sigmac.app:587` | `no-reply@sigmac.app` | Envío de correos vía PHPMailer |
|
||
| API_CENTINEL_SECURITY | `https://api.telcotronics.com` | `x-api-key` | Control de acceso Hikvision — gestión de dispositivos, apertura de puertas, consulta de eventos de acceso físico |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Ruta | Estado |
|
||
|--------|------|--------|
|
||
| Login + captcha | `index.php` + `login.php` | ✅ Operativo (bcrypt + PHP 8.5) — rediseño pendiente |
|
||
| Panel principal + Dashboard métricas | `PanelMenu.php` | ✅ Operativo — 7 stat cards + 2 tablas detalle + cards Android/iOS/CLI Sync en sec-apps (contadores GROUP BY) |
|
||
| Hub Clientes (4 tabs: empresas / equipos / sesiones cloud / xValidar) | `app/clientes/sesiones.php` | ✅ Operativo 2026-06-03 |
|
||
| API Keys (webControl + sigma-robot + api-IA) | `app/clientes/apikeys.php` | ✅ Operativo — ver/copiar key_value, badge vencida, extender expiración |
|
||
| Equipos / Licencias hosts SHA256 | `sesiones.php?tab=equipos` | ✅ Operativo — `licencias.php` redirige aquí |
|
||
| Notificaciones por cliente | `app/clientes/notificaciones.php` | ✅ Operativo |
|
||
| Panel Facturación SRI (BFF) | `app/facturacion/` | ✅ Operativo |
|
||
| Usuarios del panel | `app/usuarios/` | ✅ Operativo |
|
||
| Hub Software (10 tabs: linux/windows/mac/android/ios/bd/reportes/herramientas + cloud + cli-sync) | `app/software/` | ✅ Operativo — Android, iOS, CLI Sync agregados 2026-06-16 |
|
||
| Webhook sync apps | `POST /api/sync_app.php` | ✅ Operativo — `x-api-key`, INSERT/UPDATE `aplicaciones` |
|
||
| Endpoint reportes SIGMAC Java | `GET /api/reportes.php` | ✅ Operativo — catálogo JSON + descarga por `?id=N` |
|
||
| Reportes de audio | `app/rep_audio/` | 🔧 En desarrollo |
|
||
| Webhooks / chatbot | `webhooks/domus/` | ⚠️ Legacy |
|
||
|
||
**Algoritmo de licencias:** `hash('sha256', strtoupper($hostname).'|'.strtoupper($empresa).'|'.SIGMA_LIC_SALT)` — resultado (64 hex) en `HostEmpresa.HostEmp_idLic`. Determinista: mismo host+empresa = mismo código siempre.
|
||
|
||
**BDs de software (en `webControl` — `.149`):**
|
||
|
||
| Tabla | Uso | Campo clave |
|
||
|-------|-----|-------------|
|
||
| `aplicaciones` | Catálogo de apps descargables (Linux/Windows/Mac/Android/iOS/BD/Herramientas) | `app_ENLACE` — URL de descarga actual |
|
||
| `aplicaciones_versiones` | Historial de versiones por app. FK `app_id→aplicaciones.app_ID`. UNIQUE `(app_id,version)`. Campos: `version`, `changelog`, `fecha_release`, `url_descarga`, `archivo_md5`, `estado` ENUM(`activo`\|`inactivo`\|`beta`) | `url_descarga` + `archivo_md5` |
|
||
| `aplicaciones_reportes` | Plantillas de reportes por categoría (ventas, inventario, caja, CxC, CxP, compras, contabilidad) | `url_plantilla` — consumida por `GET /api/reportes.php?id=N` |
|
||
| `aplicaciones_img` | Iconos y miniaturas para `aplicaciones` y `aplicaciones_reportes` | `ref_tabla` + `ref_id` — FK polimórfica |
|
||
|
||
**Sistema de actualizaciones de apps — CLI Sync:**
|
||
|
||
> Mecanismo central del que dependen TODAS las apps cliente para recibir nuevas versiones.
|
||
> Aplica a apps descargables (instaladores, binarios, paquetes). No aplica a webapps ni servicios.
|
||
|
||
```
|
||
Developer/IA/Robot/CI
|
||
↓
|
||
POST /api/upload_app.php (x-api-key)
|
||
↓
|
||
aplicaciones + aplicaciones_versiones (BD webControl .149)
|
||
↓
|
||
POST https://api.siax-system.net/api/apps/versiones (notifica API WebControl)
|
||
↓
|
||
App cliente consulta GET /api/apps/versiones/{app_nombre}/latest
|
||
↓
|
||
Descarga url_descarga → verifica archivo_md5 → instala
|
||
```
|
||
|
||
Subir nueva versión desde CLI:
|
||
```bash
|
||
curl -X POST 'https://siax-system.net/api/upload_app.php' \
|
||
-H 'x-api-key: <key de webControl.api_key>' \
|
||
-F 'nombre=SIGMA RC' \
|
||
-F 'version=5.2.1' \
|
||
-F 'plataforma=WINDOWS' \
|
||
-F 'changelog=Corrección de errores' \
|
||
-F 'fecha_release=2026-06-16' \
|
||
-F 'archivo=@./sigma_setup.exe'
|
||
# → {"ok":true,"app_id":N,"db_action":"created|updated","url_descarga":"...","archivo_md5":"<md5>"}
|
||
```
|
||
|
||
Verificar última versión disponible (apps cliente):
|
||
```
|
||
GET https://api.siax-system.net/api/apps/versiones/{app_nombre}/latest
|
||
Header: x-api-key: <key>
|
||
→ version, url_descarga, archivo_md5, estado (solo actualizar si estado="activo")
|
||
```
|
||
|
||
Consultar en panel: `https://siax-system.net/app/software/index.php?tab=cli-sync`
|
||
API key: panel `siax-system.net` → Clientes → API Keys
|
||
|
||
**Endpoint de reportes para SIGMAC Java:**
|
||
```
|
||
GET https://siax-system.net/api/reportes.php → catálogo JSON completo
|
||
GET https://siax-system.net/api/reportes.php?id=N → descarga directa o redirect
|
||
GET https://siax-system.net/api/reportes.php?categoria=ventas → filtrado JSON
|
||
→ Sin autenticación — acceso público por URL
|
||
```
|
||
|
||
**Integración con el ecosistema:**
|
||
- Provee `webControl.api_key` — consumida por `API-SIGMA-CLOUD` y `API-SIGMA-WEBCONTROL` para validar `x-api-key`
|
||
- Gestiona `usuarios_sesion` y su vínculo con `ClienteEmpresa` (FK bidireccional `usrSesion_idEmp` ↔ `clientEmp_idUsuario`)
|
||
- Las apps Flutter/PHP/Java registran usuarios vía `API-SIGMA-WEBCONTROL` → `usuarios_xValidar` → OTP → `usuarios_sesion` — visibles y gestionables desde este panel
|
||
- **SIGMAC Java** consumirá `GET /api/reportes/{id}` para descargar plantillas de reportes directamente desde el panel
|
||
|
||
**Más información:** `siax-amd:/home/pablinux/Projects/php/Web_siax-sytem/agents.md`
|
||
|
||
---
|
||
|
||
### SitioWeb_telcotronics — Sitio web institucional y tienda en línea
|
||
|
||
Sitio web público de Telcotronics: institucional (SPA estática, `index.html`) + tienda en línea SSR (`tienda.php`) servidos por Apache en Servidor-web (.109). Genera leads vía formulario PHP+PHPMailer y vende el catálogo real (901 productos, 22 categorías) leyendo MySQL **directo** — sin proxy intermedio, modelo `factura-e.net`. Incluye un panel de configuración privado (login propio) con parámetros de vitrina, gestión de destacados/imágenes y un dashboard de visitas/clics vía GA4 Data API.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/SitioWeb_telcotronics.git` |
|
||
| Tecnología principal | HTML5 / CSS3 / JS ES6+ vanilla · Tailwind CSS (CDN) · PHP 8.5 + PHPMailer |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ v2.7.0 |
|
||
| Código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/php/SitioWeb_telcotronics` |
|
||
| Servidor de producción | Servidor-web CT 150 (`192.168.10.109`) — Apache 2.4.66 + PHP 8.5-FPM |
|
||
| Directorio deploy | `/var/www/web_telcotronics/public_html/` |
|
||
| Dominio público | `telcotronics.com` |
|
||
| Puerto | 80 / 443 (Apache) |
|
||
| Última actualización | 2026-09-05 |
|
||
|
||
**BDs que usa:** conexión **directa** (PDO, solo lectura) a MySQL `TELCOTRONICS` en `192.168.10.115:3306` (servidor de tenants DB-EMPRESAS) — vista `ver_inventario_precios_app` filtrando `grupo_precio = 'VENTAS_WEB'`. Usuario `web_telco`@`192.168.10.%` con `GRANT SELECT` sobre la vista. Ya no pasa por API-SIGMA-CLOUD (ese proxy queda legacy, sin uso — `api/productos.php`).
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL / Host | Autenticación | Propósito |
|
||
|---------|-----------|---------------|-----------|
|
||
| SMTP ecosistema | `smtp.sigmac.app:587` (interno: `192.168.10.111:587`) | `no-reply@sigmac.app` | Formulario de contacto — pendiente activar `smtp_pass` real en el servidor |
|
||
| GA4 Data API | `analyticsdata.googleapis.com` | Service account (JWT, rol Lector en la propiedad) | Dashboard de visitas/clics del panel — pendiente `ga4_property_id` + key del service account |
|
||
| Google Analytics 4 | tag `G-GZX7LYMP3L` | — | Analytics de `index.html` y `tienda.php` |
|
||
|
||
**Servicios que expone:**
|
||
|
||
| Servicio | URL | Autenticación | Propósito |
|
||
|---|---|---|---|
|
||
| Panel de configuración | `https://telcotronics.com/panel_config.php` | Login propio — sesión PHP, `panel_user`/`panel_pass_hash` (bcrypt) en `api/config.php` del servidor | Config del catálogo, parámetros de vitrina (IVA, ocultar sin stock/imagen), imágenes de categoría, destacados, dashboard GA4. Enlazado (discreto, `rel=nofollow`) desde el footer de `index.html` |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Archivo | Estado |
|
||
|--------|---------|--------|
|
||
| Sitio institucional (SPA) | `index.html` | ✅ v2.1.0 — completo |
|
||
| Tienda en línea (SSR) | `tienda.php` | ✅ v3 — catálogo real embebido al servir; IVA/destacados/imágenes de categoría configurables desde el panel |
|
||
| Backend catálogo directo | `api/catalogo_lib.php` + `api/db.php` + `api/catalogo.php` + `api/imagen.php` | ✅ Operativo en prod |
|
||
| Panel de configuración | `panel_config.php` + `_items`/`_parametros`/`_general`/`_dashboard` | 🟡 Base operativa — dashboard GA4 pendiente de credenciales de Google |
|
||
| Formulario de contacto | `api/contacto.php` | ✅ PHP + PHPMailer + honeypot — pendiente `smtp_pass` real en el servidor |
|
||
| Catálogo proxy | `api/productos.php` | 🗄️ Legacy, sin uso — reemplazado por conexión directa a BD |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Conexión directa (solo lectura) a MySQL `TELCOTRONICS` en DB-EMPRESAS (`.115`) — no pasa por API-SIGMA-CLOUD
|
||
- Consume **SMTP ecosistema** (`smtp.sigmac.app`) para el formulario de contacto
|
||
- Chatbot **Dialogflow** embebido (agent ID `eea5ca65-ded3-4c89-bd8a-9e6378cb4686`) — independiente del hosting
|
||
- Repositorio propio en `git.telcotronics.net` (Gitea)
|
||
|
||
**Más información:** `siax-amd:/home/pablinux/Projects/php/SitioWeb_telcotronics/agents.md`
|
||
|
||
---
|
||
|
||
### sigmac-web — CRM Web del Ecosistema SIGMA
|
||
|
||
CRM web companion a `sigmac_app`. SPA Vue 3 servida por un backend Laravel 13 que actúa como proxy puro hacia los servicios del ecosistema — no tiene lógica de negocio propia. La autenticación pasa íntegramente por API-SIGMA-WEBCONTROL y los datos de negocio provienen de MySQL tenant en DB-EMPRESAS. La API Laravel valida el JWT de WEBCONTROL con `AuthJwtMiddleware` y enruta dinámicamente al tenant correcto con `TenantMiddleware` en cada petición.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/SIGMAC-WEB_PHP.git` |
|
||
| Tecnología principal | Laravel 13 (PHP 8.5) + Vue 3 + Vite 5.4 + Tailwind CSS 3.4 |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo — módulos principales completos, pendiente Notificaciones/Sincronización/HTTPS |
|
||
| Equipo / código local | `pablinux-laptop` (`192.168.10.72`) — `/home/pablinux/Projects/php/sigmac-web` |
|
||
| Servidor de producción | Servidor-web CT 150 (`192.168.10.109`) — Apache 2.4.66 + PHP 8.5-FPM |
|
||
| Directorio deploy | `/var/www/web_sigmac-crm/` |
|
||
| Dominio público | `crm.sigmac.app` |
|
||
| Puerto | 80 / 443 (Apache prod) · `:8000` API dev · `:5173` frontend dev |
|
||
| Última actualización | 2026-06-09 |
|
||
|
||
**BDs que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `EMPRESA_XXX` (dinámica) | `192.168.10.115` | MySQL 8.0 | BD operativa del tenant — toda la lógica de negocio. Enrutada por `TenantMiddleware` según `db_tenant` del JWT |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Auth | Propósito |
|
||
|---------|-----|------|-----------|
|
||
| API-SIGMA-WEBCONTROL | `https://api.siax-system.net` (interno: `http://192.168.10.145:3002`) | Pública | Auth 2 pasos: `POST /api/auth/empresas` + `POST /api/auth/login` → JWT (8h) + apiKey + db_tenant |
|
||
| API-SIGMA-CLOUD | `https://api-gateway-cloud.telcotronics.net` | `x-api-key` + `?db=` | Sincronización cloud — pendiente implementar |
|
||
|
||
**Flujo de autenticación (para integración):**
|
||
1. `POST /api/auth/empresas {email, paswd}` → Laravel proxea a WEBCONTROL → lista de empresas del usuario
|
||
2. `POST /api/auth/login {email, paswd, dba}` → Laravel proxea → JWT + apiKey + db_tenant (dba opcional en multi-empresa)
|
||
3. Cada request protegida: `Authorization: Bearer {jwt}` → `AuthJwtMiddleware` valida → `TenantMiddleware` conecta a `EMPRESA_XXX` en `.115`
|
||
|
||
**Módulos disponibles (API REST en `crm.sigmac.app/api/`):**
|
||
|
||
| Módulo | Endpoints principales | Estado |
|
||
|--------|-----------------------|--------|
|
||
| Auth | `POST /auth/empresas`, `POST /auth/login`, `GET /auth/me` | ✅ Operativo |
|
||
| Dashboard | `GET /dashboard/kpis`, `/grafica`, `/top-productos`, `/actividad` | ✅ Operativo |
|
||
| Ventas | `GET/POST /ventas`, `GET /ventas/{id}`, `POST /ventas/{id}/anular`, `GET /ventas/kpis` | ✅ Operativo |
|
||
| Compras | `GET/POST /compras`, `GET /compras/{id}`, `GET /compras/kpis` | ✅ Operativo |
|
||
| Pedidos | `GET/POST /pedidos`, `GET /pedidos/{id}`, `POST /pedidos/{id}/confirmar`, `/cancelar` | ✅ Operativo |
|
||
| Proformas | `GET/POST /proformas`, `GET /proformas/{id}`, `POST /proformas/{id}/emitir`, `/anular` | ✅ Operativo |
|
||
| Inventario | `GET/POST/PUT /inventario`, `GET /inventario/{id}`, `POST /inventario/{id}/ajustar-stock`, `GET /inventario/kpis` | ✅ Operativo |
|
||
| Clientes | `GET/POST/PUT /clientes`, `GET /clientes/{id}`, `GET /clientes/{id}/consultar-sri`, `GET /clientes/kpis` | ✅ Operativo |
|
||
| Tareas | `GET/POST/PUT/DELETE /tareas`, `POST /tareas/{id}/cambiar-estado` | ✅ Operativo |
|
||
| Notificaciones | — | 🔧 Pendiente |
|
||
| Sincronización cloud | — | 🔧 Pendiente |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Proxea auth hacia **API-SIGMA-WEBCONTROL** (`192.168.10.145:3002`) — no gestiona identidades propias
|
||
- Accede a **DB-EMPRESAS** (`.115`) directamente vía `TenantMiddleware` + Eloquent (`BaseModel $connection='tenant'`)
|
||
- Paralelo a **sigmac_app** (Flutter) — misma lógica de negocio orientada al navegador, sin modo offline
|
||
- El frontend SPA se sirve desde `crm.sigmac.app/app/` (build Vite compilado en `api/public/app/`)
|
||
|
||
**Más información:** `pablinux-laptop:/home/pablinux/Projects/php/sigmac-web/agents.md`
|
||
|
||
---
|
||
|
||
### app_ideas — Canvas de Ideas y Pensamiento Visual
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/APPA-GENERQADOR-DE-IDEAS.git` |
|
||
| Tecnología principal | Node.js (Express) + MongoDB + EJS |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo |
|
||
| Puerto | `2000` |
|
||
| Servicio systemd | `siax-app-APP_IDEAS` (gestionado por SIAX Monitor) |
|
||
| BD principal | MongoDB — `192.168.10.146:27017/app_ideas` (CT 102, nodo cluster) |
|
||
| Servidor deploy | `server-webapps` CT 132 (`192.168.10.160`) |
|
||
| Dominio público | `ideas.telcotronics.com` |
|
||
|
||
Canvas de ideas y pensamiento visual del ecosistema. Permite generar, organizar y visualizar ideas con soporte de inteligencia artificial. Cuenta con paneles especializados: dibujo libre, flujo visual, gestión de ideas, generación asistida por IA y recopilación de procesos.
|
||
|
||
**APIs que consume:**
|
||
|
||
| Servicio | URL / Variable | Uso |
|
||
|---------|---------------|-----|
|
||
| MongoDB | `MONGO_URI=mongodb://192.168.10.146:27017/app_ideas` | BD principal — ideas, flujos, sesiones |
|
||
| AIT (IA Telcotronics) | `AIT_URL=https://api.telcotronics.net/` | Generación y análisis de ideas con IA |
|
||
| Hub API (Tareas) | `HUB_API_URL=https://tareas.telcotronics.com/api/external` | Integración con sistema de tareas |
|
||
| Resend | `ReSend_APIKEY` | Envío de emails |
|
||
|
||
---
|
||
|
||
### app_marketing — Centro de Publicidad y Marketing del Ecosistema
|
||
|
||
**Descripción:**
|
||
Centro de publicidad y marketing multi-tenant del ecosistema Telcotronics. Gestiona y sirve campañas promocionales internas y de anunciantes para las aplicaciones del ecosistema (`app_ideas`, `sigmac_app`, `sigmac-web`, etc.) mediante una API REST y un widget JS embebible responsivo. Registra impresiones y clics para proporcionar métricas en tiempo real.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | [pendiente — crear repo en git.telcotronics.net] |
|
||
| Tecnología principal | Node.js (Express) + MongoDB + EJS |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Activo / Producción |
|
||
| Ubicación local | `siax-intel` (`192.168.10.101`) — `/home/pablinux/Projects/Node/app_marketing` |
|
||
| Servidor de producción | `server-webapps` CT 132 (`192.168.10.160`) — `/home/user_apps/apps/app_marketing` |
|
||
| Dominio público | `marketing.sigmac.app` (Portal Admin) y `ads.sigmac.app` (API/Widget) |
|
||
| Puerto | `2100` |
|
||
| Servicio systemd | `siax-app-APP_MARKETING` (gestionado por SIAX Monitor) |
|
||
| Última actualización | 2026-05-31 |
|
||
|
||
**Bases de Datos:**
|
||
* **MongoDB** (`192.168.10.146:27017/app_marketing` en CT 102, nodo cluster): Almacena las cuentas de usuarios, planes de suscripción con límites, campañas creadas (títulos, descripciones, llamadas a la acción, colores, recursos multimedia) y eventos de impresiones y clics para análisis histórico.
|
||
|
||
**Servicios que Consume y Expone:**
|
||
* **Expone:**
|
||
* **Widget JS:** `http://ads.sigmac.app/js/widget.js` (embebible en cualquier web del ecosistema).
|
||
* **GET** `http://ads.sigmac.app/api/banner?apiKey=sg_live_...&formato={formato}`: Devuelve el anuncio activo para la aplicación autorizada y registra la impresión automáticamente.
|
||
* **POST** `http://ads.sigmac.app/api/clic`: Registra un clic en el banner. Payload: `{ campanaId, apiKey }`.
|
||
* **Autenticación:**
|
||
* Acceso público y seguro al widget vía cabecera `x-api-key` o parámetro de consulta `apiKey`.
|
||
* Acceso a paneles administrativos mediante sesiones HTTP seguras (`express-session` con almacenamiento en MongoDB).
|
||
|
||
**Módulos Disponibles:**
|
||
* **Portal Super Admin (`/admin/super`):** Monitoreo de recursos del servidor en tiempo real, gestión de anunciantes y planes de suscripción. (✅ Operativo)
|
||
* **Portal Anunciante (`/admin`):** Métricas propias y CRUD de campañas publicitarias (imágenes, videos, HTML personalizado) limitadas por su plan. (✅ Operativo)
|
||
* **Widget Engine:** Inyección responsiva y adaptativa para 5 formatos de anuncios: `banner` (estándar), `sidebar` (columna), `footer` (pie), `intro_demo` (modal) y `slider` (deslizante esquina inferior). (✅ Operativo)
|
||
|
||
**Integración con el Ecosistema:**
|
||
* Las aplicaciones satélites autorizadas (ej. `app_ideas`, `sigmac-web`, `sigma-robot`, `sigmac_app`) integran el contenedor HTML:
|
||
```html
|
||
<div id="sigma-banner" data-api-key="sg_live_XXXX" data-formato="banner"></div>
|
||
<script src="http://ads.sigmac.app/js/widget.js"></script>
|
||
```
|
||
y consumen anuncios segmentados utilizando su API Key correspondiente.
|
||
|
||
**Dónde buscar más información:**
|
||
* Documentación local detallada del proyecto: `siax-intel:/home/pablinux/Projects/Node/app_marketing/README.md`.
|
||
|
||
---
|
||
|
||
### app_fidelizacion — Aplicación de Fidelización de Clientes
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | [pendiente — crear repo en git.telcotronics.net] |
|
||
| Tecnología principal | Node.js (Express) + MySQL + EJS + Tailwind CSS |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo |
|
||
| Puerto | `2001` |
|
||
| Servicio systemd | `siax-app-APP_FIDELIZACION.service` |
|
||
| BD principal | MySQL — `192.168.10.149:3306/nexo_fd` |
|
||
| Servidor deploy | `server-webapps` CT 132 (`192.168.10.160`) |
|
||
|
||
Plataforma de lealtad desarrollada para gestionar clientes y acumulación de puntos (transacciones) vía escaneo QR por parte de comercios (Partners). Incluye un módulo público, panel de cliente (tienda de canje, perfil), panel de partner y un panel administrativo. Integra una API REST para interacción externa (Partners).
|
||
|
||
**APIs que consume/provee:**
|
||
|
||
| Servicio | URL / Endpoint | Uso |
|
||
|---------|---------------|-----|
|
||
| MySQL | `DB_HOST=192.168.10.149` | Base de datos principal de usuarios, catálogo e historial de transacciones |
|
||
| API Partners | `/api/v1/partner/*` | Endpoints protegidos vía `x-api-key` para registro de clientes, transacciones y catálogo |
|
||
|
||
---
|
||
|
||
### drop.sigmac.app (app_compartir) — Plataforma de Transferencia y Visor Rápido de Archivos
|
||
|
||
**Descripción:**
|
||
Aplicación web en Go para transferencia inmediata de archivos, fotos, documentos y texto/código entre dispositivos (PC y móvil) sin depender de WhatsApp. Incluye un visor universal integrado con reproductores multimedia, lector de PDF y visualizador de código, además de generación instantánea de código QR para escaneo móvil.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | [pendiente — crear repo en git.telcotronics.net] |
|
||
| Tecnología principal | Go 1.22+ / 1.27 (`net/http` nativo) + SQLite + Tailwind CSS |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Operativo / En pruebas |
|
||
| Ubicación local | `siax-amd` — `/home/pablinux/Projects/GO/app_compartir` |
|
||
| Servidor de producción | `server-webapps` CT 132 (`192.168.10.160`) — pendiente deploy |
|
||
| Dominio público | `drop.sigmac.app` |
|
||
| Puerto | `2006` |
|
||
| Servicio systemd | `siax-app-DROP_SIGMAC_APP.service` (gestionado por SIAX Monitor) |
|
||
|
||
**Bases de Datos:**
|
||
* **SQLite** (`data/compartir.db` local en modo WAL): Almacena metadatos de archivos compartidos (`shares`), usuarios vinculados (`users`) y tokens de sesión (`sessions`).
|
||
|
||
**Política de Retención y Almacenamiento:**
|
||
* **Sesiones Invitado (Guest):** No requieren login. Los archivos y notas tienen caducidad estricta de **24 horas**. Un worker en segundo plano (`cleaner`) purga periódicamente el archivo físico en disco y su registro en la base de datos.
|
||
* **Cuentas Registradas (WebControl / Google OAuth):** Almacenamiento **permanente**. No se eliminan a las 24 horas y disponen de panel de gestión en `/mis-archivos`.
|
||
|
||
**Servicios que Consume y Expone:**
|
||
* **Expone:**
|
||
* **GET** `/`: Portal web de subida (drag & drop, pegar con `Ctrl+V`, compartir notas/código).
|
||
* **POST** `/api/upload`: Subida multipart de archivos (hasta 500 MB). Retorna JSON con `viewer_url` y `download_url`.
|
||
* **POST** `/api/share-text`: Subida rápida de fragmentos de texto o código.
|
||
* **GET** `/v/{id}`: Visor universal (imágenes con zoom, video/audio HTML5, PDF embebido, texto/código con botón de copia, y QR móvil).
|
||
* **GET** `/d/{id}`: Descarga directa forzada (`attachment`).
|
||
* **GET** `/raw/{id}`: Visualización directa en el navegador (`inline`).
|
||
* **GET** `/qr/{id}`: Código QR dinámico en PNG (256x256).
|
||
* **DELETE** `/api/shares/{id}`: Eliminación manual de archivos por su propietario.
|
||
* **Consume:**
|
||
* **WebControl (Auth):** `https://api.siax-system.net/api/auth/login` para autenticación de cuentas internas Telcotronics.
|
||
* **Google OAuth2:** Flujo de login con cuentas Google (`/auth/google`).
|
||
|
||
**Módulos Disponibles:**
|
||
* **Módulo de Subida y Streaming:** Recepción de multipart y almacenamiento local con generación de slug corto. (✅ Operativo)
|
||
* **Visor Universal:** Interfaz interactiva adaptativa según el MIME type. (✅ Operativo)
|
||
* **Purga Automática 24h:** Goroutine en segundo plano que limpia archivos y sesiones guest expiradas. (✅ Operativo)
|
||
* **Gestor de Cuentas y Mis Archivos:** Panel para usuarios registrados con métricas de visitas y descarga. (✅ Operativo)
|
||
|
||
**Dónde buscar más información:**
|
||
* Documentación técnica del proyecto: `siax-amd:/home/pablinux/Projects/GO/app_compartir/agents.md`.
|
||
|
||
---
|
||
|
||
### sistema-gimnasio — Sistema de Administración para Gimnasio (SOCIOS)
|
||
|
||
Panel web de administración de gimnasios en el ecosistema SIGMA (frente 3 — Panel Admin SOCIOS). Staff del gimnasio gestiona miembros, membresías, pagos, visitas, cajas, inventario de items y ventas. SPA Vue 2 + Vuetify 2 con tema oscuro. Consume dos APIs del ecosistema: `API-SIGMA-WEBCONTROL` para autenticación y `API-SIGMA-CLOUD` para todos los datos de negocio.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://github.com/telcotronics/sistema-gimnasio.git` |
|
||
| Tecnología principal | Vue.js 2.5 + Vuetify 2.7 (Options API) + Webpack 3 |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🚧 En desarrollo activo — migración a API-SIGMA-CLOUD en curso (~98% completado) |
|
||
| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/sistema-gimnasio` |
|
||
| Servidor de producción | `Servidor-web` CT 150 (`192.168.10.109`) |
|
||
| Directorio deploy | `/var/www/web_gimnasio/public_html/` |
|
||
| Dominio público | `[pendiente]` |
|
||
| Puerto | 8080 (dev) / 80-443 (prod vía Apache) |
|
||
| Última actualización | 2026-06-08 |
|
||
|
||
|
||
**BDs que usa:**
|
||
|
||
No interactúa con BD directamente. Enruta al tenant del gimnasio vía `?db=[nombre_bd]` en cada request a `API-SIGMA-CLOUD`.
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Autenticación | Propósito |
|
||
|---------|-----|---------------|-----------|
|
||
| API-SIGMA-WEBCONTROL | `https://api.siax-system.net` | Pública | Auth: `POST /api/auth/empresas` (pre-login) + `POST /api/auth/login` → devuelve JWT + apiKey |
|
||
| API-SIGMA-CLOUD | `https://api-gateway-cloud.telcotronics.net` | `x-api-key` + `Bearer JWT` + `?db=` | Todos los datos de negocio — miembros, membresías, pagos, cajas, clientes, items, ventas |
|
||
| WebSocket ChatBot | `ws://[host]/chat` | Ninguna | Módulo de chat interno |
|
||
| API_CENTINEL_SECURITY | `https://api.telcotronics.com` | `x-api-key` | Control de acceso Hikvision — CRUD usuarios en dispositivo, apertura remota de puertas |
|
||
|
||
**Flujo de autenticación:**
|
||
1. `POST api.siax-system.net/api/auth/empresas` `{email, paswd}` → lista de empresas del usuario
|
||
2. Si una empresa: login directo. Si varias: usuario selecciona.
|
||
3. `POST api.siax-system.net/api/auth/login` `{email, paswd, dba}` → `{token, apiKey, db_tenant, usuario}`
|
||
4. Requests posteriores a API-SIGMA-CLOUD llevan: `x-api-key`, `Authorization: Bearer {token}`, `?db={db_tenant}`
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Ruta | Estado |
|
||
|--------|------|--------|
|
||
| Autenticación / Sesión | `/login` | ✅ Operativo — login vía WebControl (`api.siax-system.net`) |
|
||
| Miembros | `/crud_miembros_card` | ✅ Migrado — `api/clientes/miembros` |
|
||
| Membresías / Planes | `/crud_membresia_card` | ✅ Migrado — `api/clientes/tipos-membresia` (CRUD completo) |
|
||
| Clientes | `/clientes` | ✅ Migrado — `api/clientes/verClientesJsonApp` + `consulta_clientesApps` |
|
||
| Dashboard | `/` | 🚧 Datos hardcodeados — sin conectar a API |
|
||
| Pagos | `/pagos` | ✅ Migrado — `api/panel/pagos/transacciones` (lista + registro) |
|
||
| Visitas | `/visitas` | ✅ Migrado — `api/visitas` (lista + registro miembro/ocasional + áreas) |
|
||
| Cajas | `/caja_apertura` | ⚠️ Pendiente — endpoints SOL-04/05 pendientes en backend |
|
||
| Usuarios | `/usuarios` | ✅ Migrado — `api/panel/usuarios` (CRUD completo, baja lógica) |
|
||
| Ventas | `/venta` | 🚧 UI lista — `handleSave` sin implementar |
|
||
| Inventario | `/inventario` | 🚧 UI lista — sin backend |
|
||
| CXC / Abonos | `/cxc`, `/abonos` | ❌ Placeholders — sin implementar |
|
||
| Config. Áreas | `/admin-areas` | ✅ Migrado — `api/localizacion/areas` (CRUD + inactivar) |
|
||
| Config. Empresa | `/configurar` | ✅ Migrado — `api/empresa/datos` GET/PUT. RUC solo lectura. |
|
||
| Chat | `/chat` | ⚠️ WebSocket funcional — envío con URL PHP hardcodeada |
|
||
| Control de Acceso | `/sincronizar` | 🚧 UI lista — conectar a `API_CENTINEL_SECURITY` (`api.telcotronics.com/api/devices/{id}/users`) |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Auth vía `API-SIGMA-WEBCONTROL` (`api.siax-system.net`) — el apiKey devuelto en login es válido para API-SIGMA-CLOUD.
|
||
- Datos vía `API-SIGMA-CLOUD` — multi-tenant por `?db=` y validación de `x-api-key` contra `webControl.api_key` (.149).
|
||
- El `/login` en `api-gateway-cloud.telcotronics.net/api/auth` es LEGACY (viene del monolito `app.factura-e.net`) — no usar.
|
||
|
||
**Más información:** `siax-amd:/home/pablinux/Projects/Node/sistema-gimnasio/agents.md`
|
||
|
||
---
|
||
|
||
### audio_control — Panel de Control Remoto de Audio (SoundWave)
|
||
|
||
Backend de la app **SoundWave**. Permite controlar la reproducción de audio de forma remota desde el navegador o dispositivos móviles: reproduce archivos MP3 locales con `ffplay`, descarga audio de YouTube, gestiona una playlist en MySQL, actúa como MediaRenderer DLNA/UPnP en la red local y autentica usuarios con Google OAuth 2.0 + JWT. Desplegado y activo en producción en `server-webaps` (CT 132 en `192.168.10.160`) bajo supervisión de systemd.
|
||
|
||
| Parámetro | Valor |
|
||
|---|---|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/audio_control.git` |
|
||
| Tecnología principal | Node.js (Express 4) + Socket.IO + MariaDB + DLNA/UPnP + ffplay + EJS |
|
||
| Responsable | pablinux |
|
||
| 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`) |
|
||
| 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 |
|
||
|
||
**BD que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `AUDIO_CTRL` | `192.168.10.149` | MariaDB 10.11 | `users` (usuarios Google OAuth), `rep_youtube` (playlist YouTube) |
|
||
|
||
**Endpoints principales (para integración):**
|
||
|
||
| 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/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) |
|
||
| POST | `/api/youtube-playlist/add` | — | Agrega video a playlist |
|
||
| GET | `/api/mp3-files` | — | Lista archivos MP3 en `public/files/mp3/` |
|
||
| POST | `/api/auth/google` | — | Auth Google OAuth 2.0 → JWT propio |
|
||
| GET | `/api-docs` | — | Swagger UI |
|
||
| WS | Socket.IO | — | Eventos `player:status` y ajuste de `player:volume` bidireccional |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | Uso |
|
||
|---------|-----|
|
||
| `ffplay` / `amixer` (sistema Linux) | Reproducción de audio local y control de volumen hardware |
|
||
| YouTube (internet) vía `@distube/ytdl-core` | Descarga de audio |
|
||
| Google OAuth 2.0 API | Verificación de tokens de usuario |
|
||
| Bitácora Centralizada de Errores | `POST https://api.siax-system.net/api/errores` (`app_origen: audio_control`) |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Conectado a la bitácora centralizada de errores (`siax-system.net`)
|
||
- Sincronizado en tiempo real vía WebSockets para pantallas y controles múltiples
|
||
- Potencial: integrar con `sigma-robot` para notificaciones de estado vía WhatsApp
|
||
|
||
**Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/Node/audio_control/agents.md`
|
||
|
||
---
|
||
|
||
### SoundWave — Reproductor de Música Personal PWA
|
||
|
||
Webapp PWA de streaming de música personal dentro del ecosistema Telcotronics. El usuario se autentica con Google y accede a una biblioteca de música compartida alojada en el servidor. Funciona en cualquier dispositivo con navegador (teléfono, Android del carro, tablet, PC) sin anuncios y sin suscripciones. En producción corre como un monolito Express (puerto 2005) que sirve tanto la API como los estáticos de la PWA (`dist/`). Incluye un panel integrado para descargar música directamente desde YouTube a MP3 (320 kbps con metadatos) utilizando `yt-dlp`.
|
||
|
||
| Parámetro | Valor |
|
||
|---|---|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/audio-player.git` |
|
||
| Tecnología principal | Vue 3 + Vite 7 (PWA) / Node.js (Express) + MongoDB |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟢 Activo en producción |
|
||
| Equipo / ubicación local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/audio-player` |
|
||
| Servidor de producción | `server-webaps` (CT 132 en `192.168.10.160`) — `/home/user_apps/apps/audio-player` |
|
||
| Dominio público | En configuración (subdominio planificado: `soundwave.telcotronics.net` / `music.telcotronics.net` con SSL) |
|
||
| Puerto backend / prod | `2005` (Express monolito) |
|
||
| Puerto frontend (dev) | `3000` |
|
||
| Servicio systemd | `siax-app-soundwave.service` (activo) |
|
||
| Monitor SIAX | Registrado y supervisado en SIAX Monitor (`http://192.168.10.160:8080`) |
|
||
| MCP Infraestructura | Registrado y activo como Aplicación ID **13** (`category: 'application'` per Feedback #12 · `http://192.168.10.160:3006/sse`) |
|
||
| Centro de Agentes (sigma-robot) | Registrado y activo como **`Agente SoundWave`** (ID: **37**) en `https://sigma-bot.telcotronics.com` |
|
||
| Despliegue | Script `./desplegar.sh` (build Vite + rsync + npm install + systemctl restart) |
|
||
| Última actualización | 2026-09-30 |
|
||
|
||
**BD que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `soundwave` | `192.168.10.146:27017` | MongoDB (CT 102) | Usuarios registrados — name, email, picture, provider, providerId |
|
||
|
||
**Endpoints principales (para integración):**
|
||
|
||
| Método | Endpoint | Auth | Descripción |
|
||
|--------|----------|------|-------------|
|
||
| POST | `/api/auth/login` | no | Valida email/password contra API-SIGMA-WEBCONTROL (:3002) → upsert MongoDB → devuelve JWT |
|
||
| POST | `/api/auth/webcontrol` | no | Alias de `/api/auth/login` |
|
||
| POST | `/api/auth/google` | no | Verifica Google ID token → upsert usuario MongoDB → devuelve JWT |
|
||
| POST | `/api/auth/facebook` | no | Verifica FB accessToken → upsert usuario MongoDB → devuelve JWT |
|
||
| GET | `/api/music/folders` | JWT | Árbol completo de carpetas y archivos de música |
|
||
| GET | `/api/music/search?q=` | JWT | Búsqueda recursiva por nombre |
|
||
| GET | `/api/music/stream/*ruta` | JWT (`?token=`) | Streaming de audio con Range requests (seek) |
|
||
| GET | `/api/music/download/*ruta` | JWT (`?token=`) | Descarga de archivo al dispositivo |
|
||
| POST | `/api/music/upload` | JWT | Sube archivo de música (multipart, límite 200 MB) |
|
||
| POST | `/api/music/folder` | JWT | Crea carpeta |
|
||
| PATCH | `/api/music/rename` | JWT | Renombra carpeta o archivo (preserva extensión) |
|
||
| DELETE | `/api/music/item` | JWT | Elimina carpeta o archivo recursivamente (protege raíz) |
|
||
| POST | `/api/music/youtube/search` | JWT | Busca videos en YouTube o consulta URL directa |
|
||
| POST | `/api/music/youtube/download` | JWT | Descarga audio YT a MP3 320kbps con metadatos a `server/cloud/` |
|
||
|
||
> **Nota:** El JWT se acepta en header `Authorization: Bearer {token}` Y en query param `?token=` — necesario para `<audio src>` que no puede enviar headers.
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Uso |
|
||
|---------|-----|-----|
|
||
| API-SIGMA-WEBCONTROL | `http://192.168.10.160:3002/api/auth/login` | Autenticación centralizada de credenciales del ecosistema |
|
||
| Google OAuth API | `https://oauth2.googleapis.com` | Verificación de Google ID tokens vía `google-auth-library` |
|
||
| Facebook Graph API | `https://graph.facebook.com` | Verificación de access tokens de Facebook |
|
||
| MongoDB | `192.168.10.146:27017/soundwave` | Persistencia de usuarios |
|
||
| YouTube (`yt-dlp`) | Local (`/usr/local/bin/yt-dlp`) | Extracción de metadatos y conversión a MP3 320 kbps con FFmpeg |
|
||
| app_marketing (Ads) | `http://ads.sigmac.app` (`:2100` en .160) | Planificado: Servicio de banners publicitarios y métricas de impresiones |
|
||
| sigma-robot (Bot) | `https://sigma-bot.telcotronics.com` (`:5000` en .160) | Planificado: Hub de comunicaciones y bot asistente/soporte vía Socket.IO |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| Login Google OAuth | ✅ Completo |
|
||
| Login email/password (WebControl) | ✅ Completo |
|
||
| Backend auth con MongoDB | ✅ Completo |
|
||
| API de música completa | ✅ Completo |
|
||
| Reproductor con stream real + seek | ✅ Completo |
|
||
| Navegación por carpetas + breadcrumb | ✅ Completo |
|
||
| Búsqueda en tiempo real | ✅ Completo |
|
||
| Subir / descargar música | ✅ Completo |
|
||
| Crear / renombrar carpeta y archivos | ✅ Completo |
|
||
| Eliminar carpeta y archivos | ✅ Completo |
|
||
| Shuffle y repeat (off / all / one) | ✅ Completo |
|
||
| Media Session API (bloqueo / bluetooth) | ✅ Completo |
|
||
| Descarga y búsqueda desde YouTube | ✅ Completo |
|
||
| Pantalla dedicada YouTube Downloader | ✅ Completo (pestañas de navegación en header) |
|
||
| PWA instalable + Service Worker offline | ✅ Completo |
|
||
| Despliegue automatizado (`desplegar.sh`) | ✅ Completo |
|
||
| Supervisión SIAX Monitor | ✅ Completo |
|
||
| Registro en MCP Infraestructura | ✅ Completo (Servicio ID 13) |
|
||
| Hardening de Seguridad & Rate Limiting | ✅ Completo (Helmet, Rate Limiting, bloqueo bypass prod, safePath/Multer blindados, prevención inyección CLI en yt-dlp) |
|
||
| Banner publicitario (ads.sigmac.app) | ⏳ Planificado |
|
||
| Bot interactivo (sigma-robot) | ⏳ Planificado |
|
||
| Login Facebook | 🟡 Backend listo, frontend pendiente |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Desplegado en `server-webaps` (`192.168.10.160:2005`) supervisado activamente por systemd (`siax-app-soundwave.service`) y SIAX Monitor.
|
||
- 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.
|
||
- 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`
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## Apps móviles/desktop
|
||
|
||
### sigmac_app — App CRM companion multiplataforma
|
||
|
||
App CRM companion offline-first para Android y Linux desktop. Gestiona ventas, compras, inventario, clientes, pedidos y proformas con SQLite local. Se autentica contra SIGMA WEBCONTROL y sincroniza documentos bidireccialmente con SIGMA GATEWAY CLOUD. Emite facturación electrónica real (directo contra SIGMAC-SRI-API, no solo monitor) y tiene chat de soporte en tiempo real vía `sigma-robot`. Es el cliente de campo principal del ecosistema SIGMA para vendedores y administradores — con al menos un cliente real pagando la suscripción (FERROTOACHI).
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/SIGMAC.APP.git` (recreado 2026-08-21 tras reinstalación de Gitea — la URL vieja `.../sigmac_app.git` ya no existe) |
|
||
| Tecnología principal | Flutter 3.44.6 stable / Dart 3.12.2 (migrado desde 2.11/beta el 2026-07-17) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟢 En producción activa — v1.4.60+68, iteración diaria |
|
||
| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/flutter/sigmac_app` |
|
||
| Plataformas | Android (`com.telcotronics.sigmac_app`) · Linux desktop. Scripts de deploy listos para Windows/macOS, sin build publicado todavía |
|
||
| Servidor de producción | Sin servidor propio — APK + `.deb` publicados en WebControlSigma |
|
||
| Dominio público | — |
|
||
| Última actualización | 2026-08-30 |
|
||
|
||
**BD local:**
|
||
|
||
| Motor | Archivo | Esquema | Uso |
|
||
|-------|---------|---------|-----|
|
||
| SQLite (sqflite + FFI) | `sigmac.db` en el dispositivo | v33 | BD offline-first — productos, clientes, ventas, compras, pedidos, proformas, notas de crédito, abonos, usuarios locales, grupos/utilidad de precio, kardex, bitácora, cache de reportes cloud (19 tablas propias) |
|
||
|
||
**APIs que consume:**
|
||
|
||
| API | URL | Auth | Uso |
|
||
|-----|-----|------|-----|
|
||
| SIGMA WEBCONTROL | `https://api.siax-system.net` | `x-api-key` (a nivel-app o `auth_api_key` del usuario, según el endpoint) + JWT Bearer en rutas de sesión | Auth (login/registro/OTP/recuperación), chequeo de versión/actualización, log de errores (`/api/errores`, recién agregado) |
|
||
| SIGMA GATEWAY CLOUD | `https://api-gateway-cloud.telcotronics.net` | `x-api-key` + `?db=` | Sync items/inventario/clientes/usuarios/grupos-precio (↓↑), ventas/pedidos/proformas (↑↓), reportes analíticos (↓). Compras: sin endpoint todavía |
|
||
| SIGMAC-SRI-API | `https://api.sigmac.app/sri` | OAuth2 Password Grant (credenciales reales del usuario, no una cuenta compartida) | Facturación electrónica real: emitir → enviar → autorizar → RIDE → correo; monitor de comprobantes |
|
||
| sigma-bot / sigma-robot | `sigma-bot.telcotronics.com` | `x-api-key` (sigmabot) / Socket.IO sin key | WhatsApp (reenvío de documentos), generación/edición de imágenes con IA, Chat de Soporte en tiempo real |
|
||
|
||
**Módulos disponibles:** ver tabla completa y actualizada en el propio repo, `sigmac_app/README.md` (se mantiene ahí para no duplicar y desincronizar) — resumen: Ventas/Pedidos/Proformas/Compras/Notas de crédito/Abonos operativos con sync bidireccional (Compras solo local), Inventario con kardex, Clientes/Proveedores con consulta SRI, facturación electrónica end-to-end, Chat de Soporte, WhatsApp + IA de imágenes, Usuarios con sync, Log de errores con reporte a soporte.
|
||
|
||
**Release / Deploy:**
|
||
- `desplegar.sh` — menú interactivo o flags no-interactivos (`--android --linux --changelog "..."`): compila APK + `.deb`, sube a `POST https://siax-system.net/api/upload_app.php` con icono (`archivo_ico`)
|
||
- v1.4.60+68 desplegada 2026-08-30: APK ~87MB + `.deb` ~13MB
|
||
|
||
**Integración con el ecosistema:**
|
||
- **SIGMA WEBCONTROL** (`api.siax-system.net`): auth, onboarding, chequeo de versión, log de errores a soporte
|
||
- **SIGMA GATEWAY CLOUD** (`api-gateway-cloud.telcotronics.net`): sincronización bidireccional de datos comerciales y reportes analíticos
|
||
- **SIGMAC-SRI-API** (`api.sigmac.app/sri`): facturación electrónica real, no solo monitor
|
||
- **sigma-robot** (`sigma-bot.telcotronics.com`): WhatsApp, IA de imágenes, Chat de Soporte (Socket.IO)
|
||
- **WebControlSigma** (`siax-system.net`): registro de versiones y distribución de binarios
|
||
|
||
**⚠️ Notas críticas (verificadas 2026-08-30, corrigen varias que ya no aplicaban):**
|
||
- **Ya NO es Flutter 2.11/beta** — migrado a 3.44.6 stable desde 2026-07-17. `useMaterial3: false` fijado a propósito para preservar el diseño.
|
||
- **SQLite WAL en Android**: sigue aplicando — usar `rawQuery()` para PRAGMAs, `execute()` crashea.
|
||
- **Dos APIs distintas**: WEBCONTROL (auth/licencias) ≠ GATEWAY CLOUD (datos negocio) ≠ SIGMAC-SRI-API (facturación directa, credenciales propias del usuario, nunca compartidas). No mezclar — ver regla admin/usuario documentada en el propio repo.
|
||
- **DB local schema v33** (no v11) — sube seguido, no asumir un número sin verificar `_dbVersion` en `lib/db/database_helper.dart`.
|
||
- **SSL `api.sigmac.app`**: la nota vieja de "expira 2026-08-30" ya no aplica — renovado 2026-07-31, vence 2026-10-29 (verificado en vivo).
|
||
- **Repo Git recreado 2026-08-21** tras el incidente de seguridad de Gitea — la URL vieja `sigmac_app.git` (minúsculas) ya no existe, es `SIGMAC.APP.git`.
|
||
|
||
**Más información:** `siax-amd:/home/pablinux/Projects/flutter/sigmac_app/.agente/` (`objetivos.md` tiene el detalle día a día, `README.md` la tabla de módulos siempre al día)
|
||
|
||
---
|
||
|
||
### app_comandas_restaurant — App Android de Comandas (SIGMA Restaurant)
|
||
|
||
App nativa Android (Java) para gestión de comandas de restaurante. Migración de la webapp `APP-SIGMA-WEB` (Node.js/Express) a un cliente Android orientado a tablets y dispositivos de meseros. Permite tomar pedidos por mesa, consultar el menú con fotos, gestionar clientes, ver pedidos activos y administrar usuarios — autenticado contra SIGMA WEBCONTROL con JWT + x-api-key.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/APP_COMANDAS_RESTAURANT.git` |
|
||
| Tecnología principal | Java 8 / Android nativo (AGP 8.2.2, Gradle 8.4) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo |
|
||
| Código local | `siax-intel` (`192.168.10.101`) — `/home/pablinux/Projects/android/app_comandas_restaurant` |
|
||
| App ID | `com.telcotronics.sigmarestaurant` |
|
||
| minSdk / targetSdk | 24 / 34 |
|
||
| Auth | `https://api.siax-system.net/api/auth/login` (SIGMA WEBCONTROL) — `{email, paswd}` → JWT + apiKey |
|
||
| Backend datos | `https://api-gateway-cloud.telcotronics.net/` — JWT Bearer + `x-api-key` + `?db=TENANT` |
|
||
| Última actualización | 2026-06-14 |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| Login / Auth (WEBCONTROL JWT + apiKey) | ✅ Implementado |
|
||
| NavigationDrawer (5 fragments) | ✅ Implementado |
|
||
| Dashboard — pedidos recientes | ✅ Base — faltan cards de resumen |
|
||
| Pedidos (lista + colores de estado) | ✅ Implementado |
|
||
| Clientes (lista + búsqueda) | ✅ Implementado |
|
||
| Mesas — derivadas de `origen` en pedidos | ✅ Implementado |
|
||
| Usuarios | ✅ Implementado |
|
||
| MenuMeseroActivity — toma de pedido | ✅ Implementado — landscape, categorías por grupo, grid items, IVA 15%, POST pedido |
|
||
| NuevoClienteActivity — registro cliente | ✅ Implementado — validación cédula/RUC Ecuador |
|
||
| Chat | ❌ Pendiente |
|
||
| Menú admin (gestión de items) | ❌ Pendiente |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **SIGMA WEBCONTROL** (`api.siax-system.net`): autenticación. Login → `{token, apiKey, db_tenant}`
|
||
- **API Gateway Cloud** (`api-gateway-cloud.telcotronics.net`): datos (pedidos, clientes, productos, usuarios, ciudades). Requiere `x-api-key` header + `?db=TENANT` en cada request
|
||
- Mesas = valores distintos del campo `origen` en pedidos — LIBRE si no hay pedido ACTIVO
|
||
|
||
**Más información:** `siax-intel:/home/pablinux/Projects/android/app_comandas_restaurant/agents.md`
|
||
|
||
---
|
||
|
||
### SIGMAC — ERP Desktop Java/Swing
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/SIGMAC.git` (privado) — recreado 2026-08-25 tras reinstalación del servidor Gitea, historial local preservado |
|
||
| Tecnología principal | Java 11 (NetBeans + Swing) + MySQL — pool HikariCP (adopción parcial, legacy `Conector_mysql` sigue en uso) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Producción — v7.0 |
|
||
| Código | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/java/SIGMAC` |
|
||
| Servidor de producción | Servidor-SIGMA-VW CT 141 (`192.168.10.110`) — Webswing 20.2.5 |
|
||
| Acceso web | `https://app.factura-e.net` (Apache `.109` → Webswing `.110`) |
|
||
| Última actualización | 2026-09-05 |
|
||
|
||
ERP de escritorio para facturación electrónica en Ecuador. La aplicación Java Swing corre en el servidor Webswing (CT 141) y se publica en el navegador vía HTML5 Canvas sin modificar el código fuente. Gestiona el ciclo completo de ventas, compras, inventario, contabilidad, CXC y CXP. Se integra con el SRI a través de `SIGMA-OPEN-API` (legacy) y `SIGMAC-SRI-API` (nueva). Arquitectura multi-tenant: cada empresa opera sobre su propia BD `EMPRESA_<nombre>` en `.115`, clonada desde `EMPRESA_SEED` (plantilla oficial con identidad normalizada + tablas de negocio completas).
|
||
|
||
**BDs que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `facturacion` | `192.168.10.116` (prod) / `192.168.10.149` (test) | MySQL 8.0 | BD principal — facturas, clientes, inventario, contabilidad, CXC, CXP |
|
||
| `EMPRESA_SEED` | `192.168.10.115` | MySQL 8.0 | Plantilla oficial de tenant — 174 tablas BASE + 48 vistas. Onboarding: `exec/replica_empresa.sh` |
|
||
| `EMPRESA_*` (tenants) | `192.168.10.115` | MySQL 8.0 | Una BD por empresa: TELCOTRONICS, DOMUS, XSYSTEM, LIS, aluxury, zuba |
|
||
| `sigma` | `192.168.10.115` | MySQL 8.0 | Parches y actualizaciones distribuidas — registra cambios de esquema; cada empresa ve y aplica pendientes al abrir la app |
|
||
|
||
**Estructura de `EMPRESA_SEED`:**
|
||
|
||
| Capa | Tablas | Descripción |
|
||
|------|--------|-------------|
|
||
| Identidad normalizada | 13 | `personas`, `persona_relaciones`, `*_datos`, `plataformas`, `módulos`, `usuario_grupos`, `biometria` |
|
||
| Negocio (ERP completo) | 161 | Inventario, contabilidad, CXC/CXP, facturación, proyectos, reportes |
|
||
| **Total tablas BASE** | **174** | — |
|
||
| Vistas de compatibilidad | 4 | `clientes`, `proveedores`, `usuarios`, `socios` → apuntan a tablas normalizadas |
|
||
| Vistas de negocio | 44 | Réplica de todas las vistas operativas de TELCOTRONICS |
|
||
| **Total vistas** | **48** | — |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Uso |
|
||
|---------|-----|-----|
|
||
| SIGMA-OPEN-API (legacy) | `http://192.168.10.120:8080/veronica` | Firma y autorización SRI — sistemas existentes |
|
||
| SIGMAC-SRI-API (nueva) | `https://api.sigmac.app/sri` | Nueva API SRI — migración progresiva |
|
||
| SRI Ecuador | `https://cel.sri.gob.ec/...` | Recepción y autorización de comprobantes electrónicos |
|
||
| IA local | `http://192.168.10.101:1706` | LLM para módulo SIAX Chat (Nemotron / Gemma) |
|
||
| Monitor TCP | `localhost:1803` | Sincronización con servidor de monitoreo interno |
|
||
| IA_update API | `https://api.siax-system.net/api/sql/updates` | Distribución de SQL deltas (DDL/DML) a clientes — `x-api-key` |
|
||
| Cloud Storage _(en diseño)_ | `https://cloud.sigmac.app` _(pendiente)_ | Instaladores, binarios y reportes — upload → URL hash pública |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| Facturación / Ventas | ✅ Producción |
|
||
| Inventario / Productos | ✅ Producción |
|
||
| Compras / Docs Electrónicos | ✅ Producción |
|
||
| Monitor de Servicios SRI (auto) | ✅ Producción |
|
||
| CXC — Cuentas por Cobrar | ⚠️ Fix activo en rama |
|
||
| CXP — Cuentas por Pagar | ✅ Producción |
|
||
| Contabilidad / Bancos | ✅ Producción |
|
||
| Balance de Comprobación | ✅ Producción |
|
||
| Libro Mayor | ✅ Producción |
|
||
| Estado de Resultados | ✅ Producción |
|
||
| Notas de Crédito Ventas | ✅ Implementado (pendiente prueba prod) |
|
||
| Notas de Crédito Compras | ✅ Implementado (pendiente menú) |
|
||
| IA — SIAX Chat | 🔧 En desarrollo |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **FACTURA-E (PHP web):** comparte la BD `facturacion` en `.116` — acceso directo para informes y portal web de clientes. Auth compartida vía `webControl.usuarios_sesion` en `.149`.
|
||
- **Webswing CT 141 (.110):** publica la UI Java Swing en el navegador sin modificar código fuente.
|
||
- **SIGMA-OPEN-API / SIGMAC-SRI-API:** única vía de comunicación con el SRI para firma y autorización de comprobantes.
|
||
- **DB-EMPRESAS (.115):** arquitectura multi-tenant con onboarding vía `exec/replica_empresa.sh` — clona `EMPRESA_SEED` completa para cada nueva empresa.
|
||
|
||
**Más información:** `siax-amd:/home/pablinux/Projects/java/SIGMAC/agents.md`
|
||
|
||
---
|
||
|
||
### AI_update — Actualizador de Esquemas SQL
|
||
|
||
Herramienta de escritorio (Java Swing) que mantiene sincronizados los esquemas de base de datos de los clientes SIGMA con el servidor central. Descarga parches SQL incrementales desde la API REST `api.siax-system.net` y los aplica directamente sobre la BD MySQL del cliente, garantizando idempotencia mediante la tabla `SIGMA.HistorialActualizacionBD`. Tiene dos modos: automático (bot SIGMA con máquina de estados, timer 50 ms) y manual (`CompararActualizacion` para selección de parches). Es el eslabón que mantiene todos los tenants de SIGMAC en el mismo esquema de BD sin requerir acceso SSH ni intervención manual del administrador.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | Repositorio local — pendiente subir a git.telcotronics.net |
|
||
| Tecnología principal | Java 8 (NetBeans + Swing + Apache Ant) + MySQL JDBC + Gson |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Activo / Producción |
|
||
| Equipo / código local | `pablinux-laptop` (`192.168.10.72`) — `/home/pablinux/Projects/java/AI_update` |
|
||
| Servidor de producción | Sin servidor propio — distribuido como `dist/IA_update.jar` en equipos cliente |
|
||
| Dominio público | — |
|
||
| Puerto | — (app desktop, sin servidor HTTP) |
|
||
| Última actualización | 2026-06-16 |
|
||
|
||
**BDs que usa:**
|
||
|
||
| BD | Host | Motor | Uso |
|
||
|----|------|-------|-----|
|
||
| `SIGMA` | Host del cliente (leído de `dat/bd_serv.cfg`) | MySQL 8.0 | `HistorialActualizacionBD` — registro idempotente de parches aplicados |
|
||
| BD objetivo del tenant | Host del cliente (leído de `dat/bd_serv.cfg`) | MySQL 8.0 | BD real del cliente (ej. `facturacion`, `TELCOTRONICS`, `DOMUS`) donde se aplican los parches SQL |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Autenticación | Propósito |
|
||
|---------|-----|---------------|-----------|
|
||
| API-SIGMA-WEBCONTROL | `https://api.siax-system.net/api/sql/check_update` | `x-api-key` | Verificar si hay parches nuevos disponibles |
|
||
| API-SIGMA-WEBCONTROL | `https://api.siax-system.net/api/sql/updates?since=YYYY-MM-DD` | `x-api-key` | Descargar lote de parches SQL desde una fecha dinámica |
|
||
| API-SIGMA-WEBCONTROL | `https://api.siax-system.net/api/apps/versiones/IA_update/latest` | `x-api-key` | Consultar última versión del propio JAR para auto-actualización |
|
||
| PHP legacy (modo manual) | `https://telcotronics.com/app/Sinc/HistorialActualizaciones.php` | — | Endpoint heredado — solo usado por `CompararActualizacion` (pendiente migrar a REST) |
|
||
|
||
No expone servicios propios — es una aplicación cliente sin API propia.
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| Modo automático (`IA_update` + máquina de estados `nivelesAvance`) | ✅ Operativo — timer 50 ms, 9 estados |
|
||
| Modo manual (`CompararActualizacion`) | ✅ Operativo — conecta a PHP legacy, pendiente migrar a REST |
|
||
| Descarga y aplicación de parches SQL (`Actualizar_bd`) | ✅ Operativo — ejecución paralela por hilo, idempotente |
|
||
| REST client (`DescargarJsonAPI`) | ✅ Operativo — `checkUpdate()`, `descargarJsonAPI(since)`, `obtenerVersionLatest()` |
|
||
| Auto-actualización del JAR (`LeerVersiones_arch`) | ✅ Implementado — descarga atómica a `.tmp`, verifica MD5 si disponible |
|
||
| Logs persistentes (`DataLog`) | ✅ Operativo — `dat/error.log`, append, timestamp `yyyy-MM-dd HH:mm:ss` |
|
||
| Credenciales cifradas (`CryptoUtils`) | ⚠️ Stub — AES/GCM preparado, no integrado (credenciales aún en Base64) |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **SIGMAC ERP** (CT 141, `192.168.10.110`): IA_update es el mecanismo que mantiene al día el esquema SQL de cada cliente. SIGMAC lo referencia en sus servicios consumidos.
|
||
- **API-SIGMA-WEBCONTROL** (`api.siax-system.net`): fuente única de parches SQL y registro de versiones del JAR distribuido.
|
||
- **Tenants MySQL** (`.116` prod / `.149` test): parches se aplican sobre la BD activa del tenant, con el placeholder `"facturacion"` reemplazado dinámicamente por el nombre real.
|
||
|
||
**Dónde buscar más información:** `pablinux-laptop:/home/pablinux/Projects/java/AI_update/agents.md`
|
||
|
||
---
|
||
|
||
### SIGMA_BOT — Bot Android de Mensajería Automática
|
||
|
||
App Android standalone que intercepta notificaciones de apps de mensajería y responde automáticamente según reglas configuradas (quick replies) o delegando a agentes de IA externos. No pertenece al ecosistema comercial SIGMA — es una herramienta personal/interna de automatización. No tiene servidor propio, dominio ni puerto.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/notify_bot.git` |
|
||
| Tecnología principal | Java 8 / Android nativo (AGP, Gradle) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo — FASE 2 (integración IA) implementada, pendiente prueba real |
|
||
| Código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/android/SIGMA_BOT` |
|
||
| App ID | `com.xsystem.sigma_bot` |
|
||
| minSdk / targetSdk | 18 / 34 |
|
||
| Servidor de producción | — (app local Android, sin servidor propio) |
|
||
| Dominio público | — |
|
||
| Última actualización | 2026-06-22 |
|
||
|
||
**BD local (en el dispositivo):**
|
||
|
||
| Motor | Archivo | Uso |
|
||
|-------|---------|-----|
|
||
| SQLite v6 | `sigma_bot_v2.db` | Historial de conversaciones por plataforma (8 tablas) + `quick_replies` |
|
||
| JSON | `bot_config.json` | Switches de apps, API Keys, prompts de IA, estado del bot |
|
||
| JSON | `sessions.json` | Sesiones activas por conversación (step machine, timeout 30 min) |
|
||
|
||
**APIs externas que consume:**
|
||
|
||
| Servicio | URL | Auth | Propósito |
|
||
|---------|-----|------|-----------|
|
||
| Gemini API | `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent` | `?key={api_key}` | Agente IA Google |
|
||
| OpenAI API | `https://api.openai.com/v1/chat/completions` | `Bearer {api_key}` | Agente IA ChatGPT (gpt-4o-mini) |
|
||
| SIGMA-ROBOT | configurable por URL | `Bearer {api_key}` | Agente IA propio — `sigma-robot.telcotronics.com` o servidor local |
|
||
|
||
**Plataformas monitoreadas:** WhatsApp, WhatsApp Business, Telegram, Instagram, TikTok, SMS.
|
||
|
||
**No expone servicios** — es una app cliente sin API propia.
|
||
|
||
**Integración con el ecosistema:**
|
||
- Puede apuntar a `sigma-robot.telcotronics.com` como agente IA (`sigma_url` en config) para aprovechar el AI Gateway del ecosistema
|
||
- Independiente del resto del ecosistema — no consume WebControl ni API-SIGMA-CLOUD
|
||
|
||
**Más información:** `siax-amd:/home/pablinux/Projects/android/SIGMA_BOT/agents.md`
|
||
|
||
---
|
||
|
||
### app_sigma_inventario (Control Inventario SIGMAC) — App de Gestión y Control de Inventario
|
||
|
||
Aplicación móvil y desktop para supervisores y bodegueros de Telcotronics (nombre de launcher: **Control Inventario**). Permite realizar auditorías de inventario físico, gestionar traslados internos de mercadería emitiendo hojas de despacho con código de barras e ingresando recepciones externas mediante digitalización fotográfica y OCR automatizado. Se autentica contra API-SIGMA-WEBCONTROL y sincroniza el catálogo de productos con API-SIGMA-CLOUD.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | Repositorio local — [pendiente — git.telcotronics.net] |
|
||
| Tecnología principal | Flutter (Android + Linux Desktop) / Dart (Sound Null Safety) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo |
|
||
| Equipo / código local | `pablinux-laptop` (`192.168.10.72`) — `/home/pablinux/Projects/flutter/app_sigma_inventario` |
|
||
| Servidor de producción | Sin servidor propio — app distribuida como APK/binario vía WebControlSigma CLI Sync |
|
||
| Dominio público | — |
|
||
| Puerto interno | — |
|
||
| Servicio systemd | — |
|
||
| BD principal | Almacén reactivo en memoria (`DataStore`) + sesión en `shared_preferences` + Postgres CRM (`recepcion_productos_x_homologar`) |
|
||
| Versión publicada | `1.0.0` — ANDROID + LINUX + ícono registrados en WebControlSigma (app_id 21/23) |
|
||
| Última actualización | 2026-06-17 |
|
||
|
||
**Bases de datos y almacenamiento local:**
|
||
|
||
| Motor | Archivo / IP | Esquema / Tabla | Uso principal |
|
||
|-------|--------------|-----------------|---------------|
|
||
| En memoria reactiva | `lib/data_store.dart` | `DataStore` estático | Almacenamiento local mock de bodegas, stock, traslados y homologación |
|
||
| shared_preferences | dispositivo local | `auth_nombre`, `auth_email`, `auth_rol`, `auth_db_name`, `auth_api_key` | Variables de sesión estándar del usuario autenticado |
|
||
| PostgreSQL | `192.168.10.116` | `recepcion_productos_x_homologar` | Cola de homologación comercial del CRM para administración de productos |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL / IP | Auth | Propósito |
|
||
|---------|---------|------|-----------|
|
||
| API-SIGMA-WEBCONTROL | `https://api.siax-system.net/api/auth/login` | Pública | Autenticación real — `POST {email, paswd}` → JWT + apiKey + db_tenant |
|
||
| API-SIGMA-CLOUD | `https://api-gateway-cloud.telcotronics.net/api/items/sync` | `x-api-key` | Sincronización del catálogo de productos por tenant (`?db=`, `?limite=`, `?offset=`) |
|
||
| Telcotronics OCR API | `https://api.telcotronics.net/pdf_tablas/primera/` | `X-API-Key` | Procesamiento inteligente y digitalización de imágenes de guías físicas |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| Panel de Inicio (`InicioScreen`) | ✅ Completado — Métricas, alertas de stock bajo y ocupación de bodegas |
|
||
| Gestión de Bodegas (`BodegasScreen`) | ✅ Completado — Visualización de almacenes, capacidades volumétricas y subdivisiones de secciones físicas |
|
||
| Auditoría de Inventario (`InventarioScreen`) | ✅ Completado — Conciliación de unidades teóricas vs físicas y láser |
|
||
| Traslados Internos (`TrasladoScreen`) | ✅ Completado — Despacho, previsualización de reportes e impresión con código de barras |
|
||
| Recepción de Guías (`RecepcionScreen`) | ✅ Completado — Captura fotográfica con OCR y homologación de nuevos ítems |
|
||
| Login / Auth real (`LoginScreen`) | ✅ Completado — Autenticación real vía API-SIGMA-WEBCONTROL (JWT + apiKey + db_tenant); sesión en `shared_preferences` |
|
||
| Perfil del Usuario (`PerfilScreen`) | ✅ Completado — Pantalla dedicada con datos de sesión cargados desde `shared_preferences` |
|
||
| Sincronización Cloud (`SincronizacionScreen`) | ✅ Completado — Pantalla dedicada; sync masivo de catálogo vía API-SIGMA-CLOUD |
|
||
| Gestión de Datos Local (`GestionDatosScreen`) | ✅ Completado — Pantalla dedicada; demo data, limpiar BD, configurar API Gateway |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **API-SIGMA-WEBCONTROL** (`api.siax-system.net`): autenticación real del usuario — login → JWT + apiKey + db_tenant almacenados en sesión.
|
||
- **API-SIGMA-CLOUD** (`api-gateway-cloud.telcotronics.net`): sincronización del catálogo de productos por tenant; usa la `x-api-key` obtenida en login.
|
||
- **Telcotronics OCR API** (`api.telcotronics.net`): digitalización de tablas e información de cabeceras de remisiones.
|
||
- **CRM/ERP SIGMA** (`192.168.10.116`): los productos no homologados se guardan en `recepcion_productos_x_homologar` para que el administrador complete el alta financiera y contable.
|
||
|
||
**Deploy:** `./desplegar.sh "changelog"` — detecta plataforma automáticamente (Linux→Android+Linux, Windows→Windows, macOS→macOS), sube ícono/banner si `APP_ICONO`/`APP_BANNER` están en `servers.conf`, y registra en WebControlSigma. Requiere `servers.conf` local (ver `servers.conf.example`).
|
||
|
||
**Más información:** `pablinux-laptop:/home/pablinux/Projects/flutter/app_sigma_inventario/.agente/`
|
||
|
||
---
|
||
|
||
### agente_ventas — App de pedidos y rutas para vendedores de campo
|
||
|
||
App móvil y desktop para vendedores de campo de Telcotronics. Gestiona la ruta del día con mapa esquemático custom, catálogo de productos con carrito, pedidos CRUD, firma digital del cliente, scanner QR/barcode real, búsqueda de clientes escalable y notificaciones in-app. Arquitectura offline-first con SQLite local — se autentica contra API-SIGMA-WEBCONTROL y sincroniza datos con API-SIGMA-CLOUD.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | Sin repositorio — código local únicamente |
|
||
| Tecnología principal | Flutter 2.11.0 / Dart 2.17.0-beta · SQLite (sqflite + FFI) · `mobile_scanner 0.2.0` |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo — integrando API real |
|
||
| Nombre en launcher | `Agente Ventas` · Título interno: `Agente Ventas SIGMAC` |
|
||
| Package ID | `com.sigmac.agenteventas` |
|
||
| Equipo / código local | `pablinux-laptop` (`192.168.10.72`) — `/home/pablinux/Projects/flutter/pedidos_app` |
|
||
| Plataformas | Android APK release ✅ · Linux desktop ✅ · Web (`flutter build web` ✅) |
|
||
| Servidor de producción | Sin servidor propio — app distribuida como APK/binario |
|
||
| Dominio público | — |
|
||
| Última actualización | 2026-06-14 |
|
||
| APK release | `build/app/outputs/flutter-apk/app-release.apk` — 18.9 MB |
|
||
| Build Android | Requiere `JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64` — Java 25 rompe Gradle 6.7 |
|
||
|
||
**BD local:**
|
||
|
||
| Motor | Archivo | Tablas | Uso |
|
||
|-------|---------|--------|-----|
|
||
| SQLite (sqflite + FFI) | `telcotronics.db` (en dispositivo) | 7: usuarios, clientes, productos, rutas, paradas_ruta, pedidos, items_pedido | Persistencia offline-first — seed automático en primer arranque |
|
||
|
||
**APIs que consume:**
|
||
|
||
| API | URL | Auth | Uso |
|
||
|-----|-----|------|-----|
|
||
| API-SIGMA-WEBCONTROL | `http://192.168.10.145:3002` | Pública | Auth: `POST /api/auth/empresas` + `POST /api/auth/login` → JWT + apiKey + db_tenant |
|
||
| API-SIGMA-CLOUD | `https://api-gateway-cloud.telcotronics.net` | `x-api-key` + `?db=TELCOTRONICS` | Catálogo de productos (items), clientes, pedidos — sync delta con `?desde=` |
|
||
|
||
**Flujo de autenticación:**
|
||
1. `POST /api/auth/empresas {email, password}` → lista empresas del vendedor
|
||
2. `POST /api/auth/login {email, password, dba}` → JWT (8h) + apiKey + db_tenant
|
||
3. Requests a API-SIGMA-CLOUD: `x-api-key: {apiKey}` + `Authorization: Bearer {jwt}` + `?db=TELCOTRONICS`
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| Login (local demo + cloud API-SIGMA-WEBCONTROL) | 🔧 Integrando |
|
||
| Dashboard / Home (stats del día, pedidos recientes) | ✅ |
|
||
| Ruta del día (mapa custom `CustomPainter`, paradas, agregar/eliminar) | ✅ |
|
||
| Catálogo de productos (carrito, filtros por categoría) | ✅ — sync API-SIGMA-CLOUD pendiente |
|
||
| Scanner QR / Código de barras (cámara real Android/iOS, input manual Linux) | ✅ |
|
||
| Búsqueda de clientes (pantalla dedicada, debounce 250ms, límite 50 resultados) | ✅ — sync API-SIGMA-CLOUD pendiente |
|
||
| Pedidos CRUD (lista filtrable, crear, detalle, cambio de estado) | ✅ — upload API-SIGMA-CLOUD pendiente |
|
||
| Firma digital del cliente (pad custom `GestureDetector` + Bezier curves) | ✅ |
|
||
| Registro de clientes (formulario + GPS placeholder) | ✅ |
|
||
| Notificaciones in-app (banners overlay, centro de notifs, badge, triggers auto) | ✅ |
|
||
| Perfil del vendedor | ✅ |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **API-SIGMA-WEBCONTROL** (`192.168.10.145:3002`): auth y sesión del vendedor
|
||
- **API-SIGMA-CLOUD** (`api-gateway-cloud.telcotronics.net`): catálogo items BD `TELCOTRONICS`, clientes tenant, pedidos upload
|
||
- **sigma-robot**: potencial — notificaciones push WhatsApp al confirmar pedido
|
||
|
||
**Dónde buscar más información:** `pablinux-laptop:/home/pablinux/Projects/flutter/pedidos_app/.agente/`
|
||
|
||
---
|
||
|
||
### seguridad_electronica — SENTINEL ONE App de Seguridad Electrónica
|
||
|
||
App Flutter offline-first para operadores y guardias de seguridad electrónica. Gestiona alarmas activas por zona y sensor, control de acceso a puertas físicas con registro de usuarios por nivel y vigencia de fechas, mensajería interna con la central de monitoreo (alertas de pánico/soporte como eventos auditables) y registro de sesiones del operador. Arquitectura offline-first con SQLite local — la UI solo lee de la BD local; la sincronización ocurre a través de `ApiAuthService` y `Sincronizador` contra `API_CENTINEL_SECURITY`. No comparte infraestructura con el ecosistema SIGMA — es un producto independiente para clientes del sector de seguridad electrónica.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/seguridad_electronica.git` |
|
||
| Tecnología principal | Flutter 2.11.0 / Dart 2.17-beta · SQLite (sqflite + FFI) · Material 3 · Dark Theme |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🟡 En desarrollo activo (sesión 9 completa — 15/15 módulos UI completos, integración API pendiente) |
|
||
| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/flutter/seguridad_electronica` |
|
||
| Plataformas | Android · iOS · Linux desktop (Ubuntu Touch) |
|
||
| App ID | `net.siaxsystem.sentinelone` |
|
||
| Servidor de producción | Sin servidor propio — app distribuida como APK/binario |
|
||
| Dominio público | — |
|
||
| Puerto | — |
|
||
| Última actualización | 2026-06-21 |
|
||
|
||
**BD local:**
|
||
|
||
| Motor | Archivo / Ruta | Esquema | Uso |
|
||
|-------|---------------|---------|-----|
|
||
| SQLite (sqflite + FFI) | Dispositivo: `sentinel_one.db` · Linux: `~/.local/share/sentinel_one/sentinel_one.db` | v3 — 14 tablas | BD offline-first — usuarios, zonas, nodos, puertas, alarmas, accesos, eventos, mensajes, banners, sesiones, clientes, suscripciones, sync_log, configuracion |
|
||
|
||
**Flujo de autenticación:**
|
||
|
||
```
|
||
ConectarProveedorPage (usuario + contraseña)
|
||
└─► POST api.siax-system.net/api/auth/login ← WebControl
|
||
↓ { jwt, apiKey, db_tenant }
|
||
└─► SharedPreferences (centinel_api_key + centinel_tenant)
|
||
|
||
Operaciones (ApiAuthService.getCentinelHeaders()):
|
||
└─► api.telcotronics.com ← API_CENTINEL_SECURITY
|
||
x-api-key: {apiKey}
|
||
x-database: {db_tenant}
|
||
```
|
||
|
||
WebControl es el dueño de las API keys — Centinel solo las valida.
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Auth | Estado |
|
||
|---------|-----|------|--------|
|
||
| WebControl (auth) | `https://api.siax-system.net/api/auth/login` | user/pass → `{ jwt, apiKey, db_tenant }` | ✅ Implementado en `ApiAuthService` |
|
||
| API_CENTINEL_SECURITY | `https://api.telcotronics.com` | `x-api-key` + `x-database` (del apiKey que devuelve WebControl) | ✅ Implementado en `Sincronizador` — dev: `dev-api-key-123456` · BD: `security_db` |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Archivo | Estado |
|
||
|--------|---------|--------|
|
||
| Login (PIN local SHA-256 + SharedPreferences) | `main.dart` → `LoginPage` | ✅ Completo |
|
||
| Layout principal (nav + header) | `main_page.dart` | ✅ Completo |
|
||
| Inicio (usuario, empresa, banner, log eventos) | `pages/inicio_page.dart` | ✅ BD conectada |
|
||
| Monitoreo y Alarmas | `pages/monitoreo_alarma_page.dart` | ✅ BD conectada |
|
||
| Página de Alarmas (tabs ACTIVAS/HISTORIAL, filtros, acciones) | `pages/alarmas_page.dart` | ✅ Completo |
|
||
| Control de Acceso (puertas + registro de usuarios) | `pages/control_acceso_page.dart` | ✅ Completo |
|
||
| Registrar Usuario de Acceso (formulario PIN, nivel, áreas, fechas) | `pages/registrar_usuario_page.dart` | ✅ Completo |
|
||
| Mensajería (chat + PÁNICO → evento alerta · SOPORTE → evento + llamada) | `pages/mensageria_page.dart` | ✅ Completo |
|
||
| Perfil de Usuario + foto | `pages/perfil_usuario_page.dart` | ✅ BD + foto perfil |
|
||
| Llamada simulada (fullscreen, cronómetro) | `pages/llamada_page.dart` | ✅ Completo |
|
||
| Conectar Proveedor (onboarding URL/usuario/contraseña) | `pages/conectar_proveedor_page.dart` | ✅ Completo |
|
||
| Cambio de PIN | `pages/seguridad_page.dart` | ✅ Completo |
|
||
| Historial de sesiones | `pages/historial_sesiones_page.dart` | ✅ Completo |
|
||
| BD SQLite v3 (14 tablas, 14 DAOs, 12 modelos) | `lib/db/` · `lib/models/` | ✅ Completo |
|
||
| DemoDataService (datos de prueba) | `services/demo_data_service.dart` | ✅ Completo |
|
||
| ApiAuthService + Sincronizador | `services/` | 🟡 Estructura lista — conectar a `api.telcotronics.com` |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **WebControl** (`api.siax-system.net`): proveedor de auth — emite `apiKey` y `db_tenant` que usa Centinel. Mismo patrón que `sistema-gimnasio`.
|
||
- **API_CENTINEL_SECURITY** (`api.telcotronics.com`): `ApiAuthService` y `Sincronizador` implementados con `x-api-key + x-database`. Cubre apertura remota de puertas, empleados en dispositivos Hikvision, biometría y estado de alarmas.
|
||
- Registros locales con `sincronizado = 0` se empujan mediante `Sincronizador.pushPendientes()` con los endpoints reales de Centinel.
|
||
- Notificaciones de alarma vía `sigma-robot` (WhatsApp) planeadas para alertas con severidad ≥ 4.
|
||
|
||
**Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/flutter/seguridad_electronica/agents.md`
|
||
|
||
---
|
||
|
||
### Central_monitoreo — App de Centro de Monitoreo General
|
||
|
||
App Flutter desktop para operadores de la **central de monitoreo** de seguridad electrónica. Contrapunto directo de SENTINEL ONE: donde SENTINEL ONE es la app del cliente final, esta es la del operador que recibe y gestiona los eventos de todos los clientes simultáneamente. Visión multi-tenant, layout desktop (sidebar), tablas densas de información. Misma infraestructura de auth y API que SENTINEL ONE.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/Central_monitoreo.git` *(pendiente crear)* |
|
||
| Tecnología principal | Flutter 2.11.0 / Dart 2.17-beta · SQLite (sqflite + FFI) · Material 3 · Dark Theme |
|
||
| Responsable | pablinux |
|
||
| Estado actual | 🔴 Iniciando — sesión 1 (solo inicialización + documentación) |
|
||
| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/flutter/Central_monitoreo` |
|
||
| Plataforma principal | Linux desktop (Ubuntu 24.04) — PC fija en central de monitoreo |
|
||
| Resolución objetivo | 1920×1080 |
|
||
| App ID | `net.siaxsystem.centralmonitoreo` |
|
||
| Servidor de producción | Sin servidor propio — binario Linux distribuido |
|
||
| Última actualización | 2026-06-21 |
|
||
|
||
**Relación con SENTINEL ONE:**
|
||
|
||
| Aspecto | SENTINEL ONE | Central_monitoreo |
|
||
|---|---|---|
|
||
| Usuario | Cliente final (dueño de la instalación) | Operador de la central |
|
||
| Visibilidad | Solo sus alarmas y zonas | Todos los clientes |
|
||
| Layout | Bottom nav (mobile/tablet) | Sidebar 220px (desktop) |
|
||
| Pánico | Activa | Recibe y atiende |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | URL | Auth | Estado |
|
||
|---------|-----|------|--------|
|
||
| WebControl (auth) | `https://api.siax-system.net/api/auth/login` | user/pass → `{ jwt, apiKey, db_tenant }` | 🔴 Pendiente implementar |
|
||
| API_CENTINEL_SECURITY | `https://api.telcotronics.com` | `x-api-key` + `x-database` | 🔴 Pendiente implementar |
|
||
|
||
**Módulos planificados:**
|
||
|
||
| Módulo | Archivo | Estado |
|
||
|--------|---------|--------|
|
||
| Login operador (WebControl) | `main.dart` | 🔴 Pendiente |
|
||
| Shell (sidebar + header) | `shell_page.dart` | 🔴 Pendiente |
|
||
| Dashboard general | `pages/dashboard_page.dart` | 🔴 Pendiente |
|
||
| Monitoreo (alarmas multi-cliente) | `pages/monitoreo_page.dart` | 🔴 Pendiente |
|
||
| Clientes | `pages/clientes_page.dart` | 🔴 Pendiente |
|
||
| Operadores y turnos | `pages/operadores_page.dart` | 🔴 Pendiente |
|
||
| Incidentes | `pages/incidentes_page.dart` | 🔴 Pendiente |
|
||
| Dispositivos Hikvision | `pages/dispositivos_page.dart` | 🔴 Pendiente |
|
||
| Reportes | `pages/reportes_page.dart` | 🔴 Pendiente |
|
||
| Configuración | `pages/configuracion_page.dart` | 🔴 Pendiente |
|
||
|
||
**Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/flutter/Central_monitoreo/agents.md`
|
||
|
||
---
|
||
|
||
## Servicios transversales
|
||
|
||
### sigma-robot — Hub central de comunicaciones e IA
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/sigma-robot.git` |
|
||
| Tecnología principal | Node.js + Express + MySQL + Socket.IO |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Activo — `server-webapps` CT 132 (`192.168.10.160`) |
|
||
| Puerto | `5000` |
|
||
| Servicio systemd | `siax-app-sigma-robot.service` |
|
||
| URL pública | `https://sigma-bot.telcotronics.com` |
|
||
| MCP expuesto | `sigma-robot.telcotronics.com` — herramientas: `ia_chat`, `whatsapp_enviar`, `crm_consultar`, `woo_consultar`, `db_query`, `buscar_respuesta`, `listar_agentes` |
|
||
| Equipo / ubicación local | siax-amd (192.168.10.100) — `/home/pablinux/Projects/Node/sigma-robot` |
|
||
| Última actualización | 2026-05-31 |
|
||
| Rol en el ecosistema | **Cerebro de comunicaciones y orquestación de agentes IA.** Cualquier app o robot del ecosistema que necesite enviar mensajes, consultar IA, o ejecutar agentes automatizados se conecta aquí. |
|
||
|
||
**¿Qué hace?**
|
||
|
||
sigma-robot unifica en un solo hub: mensajería WhatsApp (Meta Cloud API y Web Bot), procesamiento de IA con fallback automático, y ejecución de agentes configurables desde el panel. Es el punto de integración que el resto del ecosistema usa para comunicarse con clientes y automatizar tareas inteligentes.
|
||
|
||
**Bases de datos:**
|
||
|
||
| BD | Motor | IP | Variable env | Uso |
|
||
|----|-------|----|-------------|-----|
|
||
| `siax_core` | MariaDB (CT 114) | 192.168.10.149 | `SIGMA_DB_*` | BD principal — IA, usuarios, agentes, flujos, prompts, API keys |
|
||
| `TELCOTRONICS` | MySQL (CT 145) | 192.168.10.116 | `DB_TELCO_*` / `DB_*` | BD externa — comprobantes bancarios (OCR), galerías |
|
||
|
||
**Servicios que consume:**
|
||
|
||
| Servicio | IP / URL | Uso |
|
||
|---------|---------|-----|
|
||
| SIAX IA local | `192.168.10.101:1706` | Proveedor IA primario (Gemma 4 26B) |
|
||
| Whisper STT | `192.168.10.145:8000` | Transcripción de audio a texto |
|
||
| OCR / TTS / STT | `https://api.telcotronics.net` | Extracción de texto de imágenes y comprobantes |
|
||
| n8n | `192.168.10.171:5678` | Workflows de automatización (webhook entrante) |
|
||
|
||
**Cómo usarlo desde otras apps del ecosistema:**
|
||
|
||
```
|
||
# 1. Enviar mensaje WhatsApp desde CRM/ERP (WSBot o Meta)
|
||
POST https://sigma-bot.telcotronics.com/api/wsbot/enviar_mensaje (o /api/meta/enviar_mensaje)
|
||
x-api-key: {api_key}
|
||
{ "to": "593XXXXXXXXX", "mensaje": "Hola, tu pedido está listo." }
|
||
|
||
# 2. Enviar imagen / documento
|
||
POST https://sigma-bot.telcotronics.com/api/wsbot/enviar_imagen (multipart/form-data: destino, file)
|
||
POST https://sigma-bot.telcotronics.com/api/wsbot/enviar_documento (multipart/form-data: destino, file)
|
||
POST https://sigma-bot.telcotronics.com/api/meta/enviar_imagen ({ to, url, caption })
|
||
POST https://sigma-bot.telcotronics.com/api/meta/enviar_documento ({ to, url, filename, caption })
|
||
|
||
# 3. Consultar IA (compatible OpenAI)
|
||
POST https://sigma-bot.telcotronics.com/gateway/v1/chat
|
||
x-api-key: {api_key}
|
||
{ "messages": [{ "role": "user", "content": "Analiza este texto: ..." }] }
|
||
|
||
# 4. Vía MCP (para agentes IA del ecosistema)
|
||
Tool: whatsapp_enviar → envía mensaje WhatsApp
|
||
Tool: ia_chat → consulta IA con fallback automático
|
||
Tool: db_query → consulta BD externa configurada
|
||
Tool: crm_consultar → consulta REST a CRM externo
|
||
|
||
# Respuestas posibles (endpoints /api/wsbot/* y /api/meta/*)
|
||
200 → enviado OK
|
||
400 → faltan campos (to/destino, mensaje o file) — no reintentar igual, revisar el request
|
||
500 "Bot no está activo" → WSBot apagado/desconectado — chequear GET /api/modulos/wsbot/status antes de mandar
|
||
500 genérico → error interno al enviar — reintentar una vez, si persiste avisar al admin
|
||
```
|
||
|
||
**Widget de chat embebible (`<sigma-chat>`) — para conectar cualquier webapp al chat de soporte:**
|
||
|
||
Web Component con Shadow DOM (no choca con el CSS de la página anfitriona). No requiere API key — la empresa/tenant queda fija en el propio snippet. Se genera con vista previa en vivo desde el panel: `https://sigma-bot.telcotronics.com/chat` (requiere sesión de staff).
|
||
|
||
```html
|
||
<script src="https://sigma-bot.telcotronics.com/widget/sigma-chat.js"></script>
|
||
<sigma-chat empresa="NombreEmpresa" titulo="Hablanos" color="#6c5ce7"></sigma-chat>
|
||
```
|
||
|
||
- `empresa` (requerido) — debe existir en `chat_empresas` (`estado='activo'`).
|
||
- `titulo` / `color` — opcionales, cosméticos.
|
||
- El widget abre un socket.io hacia `sigma-bot.telcotronics.com`, se identifica con un UUID persistido en `localStorage` (memoria del cliente entre sesiones — si el navegador bloquea storage, cae a sesión anónima sin memoria) y chatea directo con el Bot IA (fallback automático de proveedores). Escalamiento a un vendedor específico: pendiente (ver roadmap del proyecto).
|
||
|
||
**Prioridad de proveedores IA (fallback automático):**
|
||
|
||
| Prioridad | Proveedor | Tipo | Variable env |
|
||
|-----------|-----------|------|-------------|
|
||
| 1 | SIAX | siax | `$SIAX_API` / `$SIAX_URL` |
|
||
| 2 | DeepSeek | openai | `$DEEPSEEK_API_KEY` |
|
||
| 3 | Gemini | gemini | `$GEMINI_API_KEY` |
|
||
| 4 | Claude | anthropic | `$ANTHROPIC_API_KEY` |
|
||
|
||
**Casos de uso del sistema de agentes (objetivos a cumplir):**
|
||
|
||
| # | Caso | Estado |
|
||
|---|------|--------|
|
||
| C1 | CRM/ERP envía documentos/notificaciones por WhatsApp via API | ✅ Activo |
|
||
| C2 | App externa envía prompt + datos → IA procesa → retorna resultado | ✅ Activo |
|
||
| C3 | Cliente pide algo por WhatsApp → agente consulta BD → responde | 🔧 Motor de flujos pendiente |
|
||
| C4 | Chat de soporte recolecta datos del cliente → clasifica → resuelve o escala | 🔧 En desarrollo |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|--------|--------|
|
||
| WhatsApp Bot WS (whatsapp-web.js) | ✅ Activo |
|
||
| WhatsApp Cloud API (Meta Webhooks) | ✅ Activo |
|
||
| AI Gateway (`/gateway/v1/chat`) | ✅ Activo |
|
||
| Messaging Gateway (`/api/meta/`, `/api/wsbot/`) | ✅ Activo |
|
||
| Motor de IA con fallback automático | ✅ Activo — 4 proveedores |
|
||
| Panel Admin (AdminLTE 3) | ✅ Activo |
|
||
| Portal Agentes (`/agentes`) | ✅ Activo |
|
||
| Portal Arrendatarios (`/empresas`) | ✅ Activo |
|
||
| MCP Server | ✅ Activo |
|
||
| Clasificador de intenciones | ✅ Activo — listo para configurar |
|
||
| Agentes / Flujos IA (`ia_agentes`, `ia_flujos`) | 🟡 Estructura lista — motor de ejecución pendiente |
|
||
| Chat de soporte integrado (C4) | 🔧 Interfaz activa — flujo guiado pendiente |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **n8n (.171):** envía webhooks entrantes en `/webhook/n8n` para automatizaciones del ecosistema
|
||
- **CRM / ERP / sistemas externos:** consumen la Messaging Gateway para enviar mensajes WhatsApp vía API Key
|
||
- **Apps externas (Confyui, Dialogflow):** envían prompts a la AI Gateway para procesamiento IA con fallback
|
||
- **mail-monitor:** puede consumir la AI Gateway (`/gateway/v1/chat`) para análisis de logs con IA
|
||
|
||
**Más información:** `siax-amd:/home/pablinux/Projects/Node/sigma-robot/agents.md`
|
||
|
||
---
|
||
|
||
### mail-monitor — Administración y monitoreo del servidor de correo
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/Monitor-ServerMail.git` |
|
||
| Tecnología principal | Rust (Axum 0.7 + sqlx 0.7 + Tera + HTMX) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Producción (desplegado en `servidor-email` CT 144, `192.168.10.111`) |
|
||
| Rol en el ecosistema | Administración y monitoreo del servidor de correo SIGMA. Gestiona usuarios virtuales de Postfix/Dovecot, visualiza logs por SSH, controla fail2ban y notifica eventos de seguridad y administrativos a `API-SIGMA-WEBCONTROL` |
|
||
|
||
**Acceso:** `http://192.168.10.111:3000`
|
||
|
||
**Eventos que notifica a `API-SIGMA-WEBCONTROL`:**
|
||
|
||
| Evento | Tipo | Severidad |
|
||
|--------|------|-----------|
|
||
| IP baneada en fail2ban | `seguridad` | `alta` |
|
||
| IP desbaneada | `seguridad` | `baja` |
|
||
| Cuenta de correo creada | `admin` | `info` |
|
||
| Cuenta de correo desactivada | `admin` | `media` |
|
||
| Cuenta de correo reactivada | `admin` | `info` |
|
||
| Contraseña de cuenta cambiada | `admin` | `info` |
|
||
|
||
**Cumplimiento RGPD/LOPD:** Tab "Desactivados" en la UI — muestra `fecha_modificacion` (cuándo se desactivó), permite reactivar cuentas o eliminarlas definitivamente (borrado físico de la BD) para cumplir solicitudes de supresión de datos.
|
||
|
||
**Integración con el ecosistema:**
|
||
- **BD correo:** MariaDB en `192.168.10.149` (`mailserver_db`) — tablas `virtual_users`, `virtual_domains`, `app_config`
|
||
- **SSH al servidor:** `192.168.10.111` — para logs de Postfix/Dovecot, control de fail2ban y creación de maildirs
|
||
- **API-SIGMA-WEBCONTROL:** notificaciones vía `x-api-key` (token de `webControl.api_key`)
|
||
- **SIGMA Bot gateway:** análisis de logs con IA (`https://sigma-bot.telcotronics.com/gateway/v1/chat`)
|
||
|
||
---
|
||
|
||
### CT cloud — servidor-email (192.168.10.111)
|
||
|
||
> **Servidor de correo del ecosistema SIGMA.** Cualquier app o sistema que necesite enviar correos usa este servidor. La cuenta de sistema, credenciales y puertos están documentados aquí — no buscar en otro lugar.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.111 |
|
||
| MAC | BC:24:11:EC:44:0D |
|
||
| CT Proxmox | 144 (nodo cloud) |
|
||
| SMTP | Postfix — relay vía Resend.com |
|
||
| IMAP | Dovecot |
|
||
| Webmail | SnappyMail 2.38.2 |
|
||
| Dominios activos | `sigmac.app`, `factura-e.net` |
|
||
| BD usuarios correo | MariaDB en 192.168.10.149 (`mailserver_db`) |
|
||
| Administración | mail-monitor en `http://192.168.10.111:3000` — documentación técnica en `/docs` |
|
||
|
||
#### Configuración de correo para sistemas del ecosistema
|
||
|
||
> Usar estos datos en cualquier app, servicio o herramienta del ecosistema que necesite enviar correos (CRM SIGMA, sigmac_app, n8n, notificaciones, mailing, etc.).
|
||
|
||
**Envío (SMTP):**
|
||
|
||
| Campo | Valor |
|
||
|-------|-------|
|
||
| Host | `smtp.sigmac.app` |
|
||
| Puerto | `587` |
|
||
| Usuario | `no-reply@sigmac.app` |
|
||
| Contraseña | `Sigma.2030@` |
|
||
| Seguridad | `STARTTLS` |
|
||
|
||
**Lectura (IMAP):**
|
||
|
||
| Campo | Valor |
|
||
|-------|-------|
|
||
| Host | `imap.sigmac.app` |
|
||
| Puerto | `993` |
|
||
| Usuario | `no-reply@sigmac.app` |
|
||
| Contraseña | `Sigma.2030@` |
|
||
| Seguridad | `SSL/TLS` |
|
||
|
||
**Desde LAN interna (192.168.10.x):** reemplazar el hostname por `192.168.10.111` — sin dependencia de DNS externo.
|
||
|
||
**Relay saliente:** Resend.com, gestionado por Postfix. La app solo habla con el SMTP local.
|
||
|
||
#### Notas técnicas del servidor de correo
|
||
|
||
**⚠️ mysql-users.cf:** La query DEBE retornar `domain/user/` (ruta relativa Maildir). Si retorna el email completo, Postfix crea archivos en lugar de directorios.
|
||
|
||
**⚠️ Certificados SSL:** Se copian manualmente desde Servidor-web (.109). No hay certbot en el .111.
|
||
|
||
---
|
||
|
||
### SIAX Monitor — Agente de monitoreo de aplicaciones
|
||
|
||
SIAX Monitor se instala en los servidores donde corren aplicaciones Node.js o Python. Registra cada app como un servicio systemd (`siax-app-NOMBRE.service`), controla su ciclo de vida (start/stop/restart) and monitorea su estado cada 60 segundos reportando al dashboard central. Detecta discrepancias entre el proceso real y el estado de systemd (crashed, zombie). Expone una interface web local y API REST para gestión sin necesidad de acceso SSH directo.
|
||
|
||
**Control vía systemd:** cada app registrada genera un archivo `.service` en `/etc/systemd/system/`. El agente usa `systemctl` con permisos sudoers para arrancar, detener y consultar el estado real de cada servicio. Soporta auto-detección de rutas NVM para Node.js y `EnvironmentFile` desde `.env`.
|
||
|
||
**Despliegue:**
|
||
```bash
|
||
# Desde máquina de desarrollo — compila y sube a los servidores configurados
|
||
./desplegar_agent.sh
|
||
|
||
# En el servidor destino — instala el agente como servicio systemd
|
||
sudo ./instalador.sh
|
||
|
||
# Desde cualquier servidor nuevo — descarga e instala sin necesidad de Rust
|
||
curl -sSL http://192.168.10.101:8080/install.sh | sudo bash
|
||
```
|
||
|
||
| Servidor | IP | Usuario de servicio |
|
||
|----------|----|-------------------|
|
||
| server-webapps (CT 132) | 192.168.10.160 | user_apps |
|
||
| siax-intel | 192.168.10.101 | pablinux |
|
||
| siax-amd | 192.168.10.100 | pablinux |
|
||
|
||
---
|
||
|
||
### SIAX — IA autónoma coordinadora
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.108 |
|
||
| Nombre | Servidor-IA |
|
||
| Rol | IA autónoma que coordina y ejecuta tareas mientras pablinux descansa o realiza labores administrativas |
|
||
| CT Proxmox | 108 (nodo cluster) |
|
||
|
||
SIAX es la inteligencia artificial del ecosistema. Aprende de forma autónoma y coordina el trabajo técnico de los demás sistemas. Es parte central de la arquitectura operativa.
|
||
|
||
---
|
||
|
||
### DAPSI — Domótica
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| IP | 192.168.10.155 |
|
||
| Nombre | DAPSI |
|
||
| MAC | DC:A6:32:11:03:EA |
|
||
| Rol | Sistema de domótica con autoaprendizaje |
|
||
| Descripción | Primera IA de autoaprendizaje del ecosistema. IP reservada históricamente. Controla dispositivos del entorno físico. |
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## Servicios externos
|
||
|
||
| Servicio | URL |
|
||
|----------|-----|
|
||
| SRI Recepción | `https://cel.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantesOffline?wsdl` |
|
||
| SRI Autorización | `https://cel.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantesOffline?wsdl` |
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## api_service_ia — API de Servicios con IA
|
||
|
||
Microservicio REST que centraliza modelos de IA preentrenados para consumo interno del ecosistema. Es el **único proyecto Python serio de Telcotronics**: todos los demás son Node.js, Java, PHP, Rust o Flutter. Expone capacidades de procesamiento pesado (Whisper, InsightFace, Silero, rembg) como endpoints HTTP autenticados, evitando duplicar dependencias en cada proyecto que las necesite. Actualmente consumido por `sigma-robot` para STT y OCR.
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `git@github.com:telcotronics/API_Service_IA.git` |
|
||
| Tecnología principal | Python 3.14 + FastAPI + uvicorn |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Producción |
|
||
| Código local | `siax-amd:/home/pablinux/Projects/Python/api_service_ia/` |
|
||
| Servidor producción | `Ubuntu-Docker` — CT 105 (`192.168.10.145`) — usuario `root` |
|
||
| Ruta en servidor | `/root/app/API_Service_IA` |
|
||
| Dominio público | `api.telcotronics.net` (`whisper.telcotronics.net` — legacy, obsoleto) |
|
||
| Puerto | `8000` |
|
||
| Servicio de arranque | `tmux` — sesión `api_service_ia` (pendiente migrar a systemd) |
|
||
| Última actualización | 2026-06-03 |
|
||
|
||
**BD que usa:**
|
||
|
||
| Motor | Host | Base de datos | Tabla | Uso |
|
||
|-------|------|--------------|-------|-----|
|
||
| MariaDB | `192.168.10.149` (CT 114, nodo cluster) | `api_ia_python` | `api_key` | Validación y gestión de API keys propias |
|
||
|
||
> ⚠️ Anteriormente apuntaba a `webControl.api_key` en `.150` (legacy en retiro). Migrado a BD propia. Keys huérfanas en `webControl.api_key` pueden eliminarse desde WebControlSigma.
|
||
|
||
**Módulos disponibles — endpoints para integración:**
|
||
|
||
| Módulo | Endpoint principal | Retorna | Estado |
|
||
|--------|--------------------|---------|--------|
|
||
| STT — audio a texto | `POST /convertir_audio_aTexto/` | JSON `{idioma, transcripcion}` | ✅ |
|
||
| OCR — imagen a texto | `POST /convertir_img_aTexto/` | JSON `{texto}` | ✅ |
|
||
| Remover fondo | `POST /removerFondo_img/` | PNG con transparencia | ✅ |
|
||
| PDF a texto | `POST /convertir_pdf_aTexto/` | JSON `{texto}` | ✅ |
|
||
| PDF a Word | `POST /convertir_pdf_aWord/` | `.docx` descargable | ✅ |
|
||
| PDF a Excel | `POST /convertir_pdf_aExcel/` | `.xlsx` descargable | ✅ |
|
||
| PDF tablas a JSON | `POST /pdf_tablas/` | JSON estructurado | ✅ |
|
||
| Reconocimiento facial | `POST /facial/detectar/` | JSON `{bbox, confianza}` | ✅ |
|
||
| Comparación facial | `POST /facial/comparar/` | JSON `{es_misma_persona, similitud}` | ✅ |
|
||
| TTS online (gTTS) | `POST /texto_aVoz/` | MP3 descargable | ✅ requiere internet |
|
||
| TTS offline (Silero) | `POST /texto_aVoz/silero/` | WAV 24kHz descargable | ✅ offline tras 1ª descarga |
|
||
|
||
**Autenticación:** header `X-API-Key` — validado contra `api_ia_python.api_key` en MariaDB .149.
|
||
|
||
**Integración con el ecosistema:**
|
||
- **sigma-robot** la consume para STT (`/convertir_audio_aTexto/`) y OCR/imágenes (`https://api.telcotronics.net`)
|
||
- Cualquier proyecto del ecosistema puede consumirla con una API key válida
|
||
|
||
**Dónde buscar más info:** `siax-amd:/home/pablinux/Projects/Python/api_service_ia/agents.md`
|
||
|
||
---
|
||
|
||
## API_CENTINEL_SECURITY — Gestión de Seguridad Electrónica
|
||
|
||
**API de Seguridad Electrónica del ecosistema Telcotronics.** Plataforma centralizada para integrar, administrar y supervisar todos los componentes de seguridad física: control de acceso a puertas, registro y sincronización de credenciales biométricas (rostro, huella, foto), gestión de dispositivos de seguridad, monitoreo de eventos físicos en tiempo real y automatización de procesos de acceso. Proporciona un punto único para la gestión de eventos, control de asistencia, automatización de accesos y generación de reportes de seguridad, unificando múltiples dispositivos y tecnologías bajo una sola API REST.
|
||
|
||
> **Si tu app necesita:** controlar puertas físicas, registrar asistencia, gestionar credenciales biométricas de empleados o miembros, aprovisionar accesos en terminales, o recibir eventos de acceso en tiempo real — **esta es tu API**.
|
||
|
||
**Implementación actual:** hardware Hikvision vía protocolo ISAPI con autenticación HTTP Digest. Diseñada para escalar a otros fabricantes (Dahua, ZKTeco) sin cambiar la interfaz de la API.
|
||
|
||
| Parámetro | Valor |
|
||
|---|---|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/API-CENTINEL-SECURITY.git` |
|
||
| Tecnología | Java 17 + Spring Boot 3.3 + WebClient (WebFlux) + JPA/MariaDB |
|
||
| Responsable | pablinux |
|
||
| Estado | ✅ Producción (MVP activo) |
|
||
| Equipo/IP local | `siax-intel` (`192.168.10.101`) — `/home/pablinux/Projects/java/API_CENTINEL_SECURITY` |
|
||
| Servidor de producción | `Servidor-API-CENTINEL` — `192.168.10.150` — Ubuntu 24.04 LTS — tmux sesión `api-centinel` |
|
||
| Dominio público | `https://api.telcotronics.com` |
|
||
| Swagger | `https://api.telcotronics.com/swagger-ui/index.html` |
|
||
| Puerto | `8080` |
|
||
| Autenticación | Header `x-api-key` en todas las peticiones. Header `x-database` para multi-tenant. La clave maestra `ADMIN_API_KEY` solo para endpoints de administración. |
|
||
| MCP Infraestructura | Servicio ID `11` (`API_CENTINEL_SECURITY`) · Hardware ID `11` (`Servidor-API-CENTINEL`) |
|
||
| Última actualización | 2026-09-24 |
|
||
|
||
> ⚠️ **Nota IP:** `192.168.10.150` fue el servidor monolítico `server-sigma` (Ubuntu 20.04, retirado). Ahora reutilizada para `Servidor-API-CENTINEL` (Ubuntu 24.04).
|
||
|
||
**Qué puede hacer tu app con esta API:**
|
||
|
||
| Necesidad | Cómo resolverlo |
|
||
|---|---|
|
||
| Abrir una puerta remotamente | `POST /api/access/open-door/{deviceId}/{door}` |
|
||
| Configurar recepción de eventos (Alarm Host) | `POST /api/devices/{id}/alarm-host` |
|
||
| Registrar a un empleado/miembro en un terminal | `POST /api/devices/{deviceId}/employees` |
|
||
| Subir foto, huella o rostro de un empleado | `POST /api/biometria/{employeeNo}` |
|
||
| Dar de baja a un empleado en todos los terminales | `DELETE /api/employees/{employeeNo}` |
|
||
| Verificar si un dispositivo está en línea | `GET /api/devices/test/{id}` |
|
||
| Ver qué empleados están activos en un dispositivo | `GET /api/devices/{deviceId}/employees` |
|
||
| Ver operaciones pendientes (dispositivos offline) | `GET /api/sync-queue` |
|
||
| Escalar, resolver o silenciar una alarma | `POST/PUT /api/alarmas/{id}/*` |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Endpoint base | Auth | Estado |
|
||
|---|---|---|---|
|
||
| CRUD Dispositivos de seguridad | `GET/POST/DELETE /api/devices` | `x-api-key` | ✅ Operativo |
|
||
| Test de conectividad | `GET /api/devices/test/{id}` | `x-api-key` | ✅ Operativo |
|
||
| Apertura remota de puerta | `POST /api/access/open-door/{deviceId}/{door}` | `x-api-key` | ✅ Operativo |
|
||
| Gestión de credenciales directa en hardware | `GET/POST/DELETE /api/devices/{id}/users` | `x-api-key` | ✅ Operativo |
|
||
| Configurar recepción de eventos (Alarm Host) | `POST /api/devices/{id}/alarm-host` | `x-api-key` | ✅ Operativo |
|
||
| Biometría (foto/rostro/huella) | `GET/POST/DELETE /api/biometria/{employeeNo}` | `x-api-key` | ✅ Operativo |
|
||
| Sincronización de empleados en dispositivos | `GET/POST/DELETE /api/devices/{deviceId}/employees` | `x-api-key` | ✅ Operativo (soporte offline) |
|
||
| Baja en cascada (todos los terminales del tenant) | `DELETE /api/employees/{employeeNo}` | `x-api-key` | ✅ Operativo |
|
||
| Cola de sincronización offline + reintento | `GET/POST /api/sync-queue` | `x-api-key` | ✅ Operativo |
|
||
| Gestión de Alarmas (escalar/resolver/silenciar) | `POST/PUT /api/alarmas/{id}/*` | `x-api-key` | ✅ Operativo |
|
||
| Admin — clientes y API Keys | `GET/POST/DELETE /api/admin/clients` | `ADMIN_API_KEY` | ✅ Operativo |
|
||
|
||
**Cómo conectarse (ejemplo mínimo):**
|
||
|
||
```bash
|
||
# 1. Listar dispositivos disponibles
|
||
curl https://api.telcotronics.com/api/devices \
|
||
-H "x-api-key: {tu_api_key}"
|
||
|
||
# 2. Registrar un empleado/miembro en un terminal (con soporte offline)
|
||
curl -X POST https://api.telcotronics.com/api/devices/1/employees \
|
||
-H "x-api-key: {tu_api_key}" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"employeeNo": "1001", "name": "Juan Pérez", "cardNo": "ABC123"}'
|
||
|
||
# 3. Abrir puerta 1 del dispositivo ID 1
|
||
curl -X POST https://api.telcotronics.com/api/access/open-door/1/1 \
|
||
-H "x-api-key: {tu_api_key}"
|
||
|
||
# 4. Subir foto de rostro de un empleado
|
||
curl -X POST https://api.telcotronics.com/api/biometria/1001 \
|
||
-H "x-api-key: {tu_api_key}" \
|
||
-F "tipo=FOTO" \
|
||
-F "archivo=@foto.jpg"
|
||
```
|
||
|
||
> Documentación interactiva completa: `https://api.telcotronics.com/swagger-ui/index.html`
|
||
|
||
**Apps del ecosistema que la consumen:**
|
||
|
||
| Sistema | Propósito |
|
||
|---|---|
|
||
| `seguridad_electronica` (SENTINEL ONE) | App de operadores de seguridad — monitoreo de zonas, control de acceso a puertas, gestión de credenciales |
|
||
| `sistema-gimnasio` | Validar acceso físico de miembros en torniquetes/puertas |
|
||
| ERP / Nómina | Registrar asistencia laboral por eventos de puerta |
|
||
|
||
**BD que usa:**
|
||
|
||
| Motor | Host | Nombre BD | Propósito |
|
||
|---|---|---|---|
|
||
| MariaDB 10.11 | `192.168.10.149` | `security_db` | Auth de API Keys, registro de dispositivos, biometría, cola offline, multi-tenant |
|
||
|
||
**Dónde buscar más info:** `siax-intel:/home/pablinux/Projects/java/API_CENTINEL_SECURITY/agents.md`
|
||
|
||
---
|
||
|
||
## 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.
|
||
|
||
| 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 |
|
||
| 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 |
|
||
|
||
**Almacenamiento de datos:**
|
||
|
||
| 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 |
|
||
|
||
**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 |
|
||
|
||
**Estado de módulos y pendientes:**
|
||
|
||
| Módulo / tarea | 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 |
|
||
|
||
**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.
|
||
|
||
**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`
|
||
|
||
---
|
||
|
||
## APP-SIGMA-WEB — Panel web y API REST del ecosistema SIGMA
|
||
|
||
APP-SIGMA-WEB es el backend REST + panel web principal del ecosistema SIGMA. Sirve el panel administrativo `centralCloud`, la app de pedidos V2 multi-tenant y múltiples APIs internas consumidas por apps móviles y otros servicios. Expone el dominio `app.factura-e.net` a través del proxy Apache en CT 109. La BD principal es `TELCOTRONICS` en `.149`.
|
||
|
||
| Parámetro | Valor |
|
||
|---|---|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/APP-SIGMA-WEB.git` |
|
||
| Tecnología | Node.js 18 (Express 4) + EJS + MySQL (mysql2) |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Activo |
|
||
| Equipo / código local | `siax-amd` (`192.168.10.100`) — `/home/pablinux/Projects/Node/APP-SIGMA-WEB` |
|
||
| Servidor de producción | [COMPLETAR — CT o equipo donde vive el proceso en prod] |
|
||
| Dominio público | `https://app.factura-e.net` (Apache CT 109 → `:3001`) |
|
||
| Puerto interno | `3001` |
|
||
|
||
**BD que usa:**
|
||
|
||
| Motor | Host | Nombre | Uso |
|
||
|---|---|---|---|
|
||
| MySQL / MariaDB | `192.168.10.149:3306` | `TELCOTRONICS` | Clientes, pedidos, items, membresías, pagos, proyectos |
|
||
|
||
**Servicios que expone (endpoints clave):**
|
||
|
||
| Método | Endpoint | Auth | Descripción |
|
||
|---|---|---|---|
|
||
| GET | `/` | sesión | Login principal / panel |
|
||
| GET | `/pedidos/bd/:bd_name/:token?` | JWT token | Panel pedidos V2 multi-tenant |
|
||
| POST | `/login` | — | Autenticación por sesión |
|
||
| POST | `/auth-keygen` | — | Genera JWT |
|
||
| POST | `/api/pagos/transacciones` | sesión/JWT | Registrar transacción |
|
||
| GET | `/api/pagos/transacciones` | sesión/JWT | Listar transacciones |
|
||
| GET | `/api-docs` | — | Swagger UI |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|---|---|
|
||
| Login / Auth (sesión + JWT) | ✅ Activo |
|
||
| Pedidos V2 multi-tenant | ✅ Activo |
|
||
| Clientes (CRUD + API) | ✅ Activo |
|
||
| Items / Productos (CRUD + API) | ✅ Activo |
|
||
| CentralCloud (panel admin) | ✅ Activo |
|
||
| Pagos y Transacciones | ✅ Activo |
|
||
| API V2 unificada | 🟡 En integración |
|
||
| Multimedia / Videos / Web TV | ✅ Activo |
|
||
| Proyectos / Memorias Técnicas | ✅ Activo |
|
||
|
||
**Integración con el ecosistema:**
|
||
- **Apache CT 109**: proxy inverso que expone `app.factura-e.net` → `localhost:3001`
|
||
- **BD TELCOTRONICS** (`.149`): fuente de datos principal
|
||
- **SIGMA-OPEN-API** (Java, `.120`): facturación SRI — referenciada en la whitelist CORS
|
||
- Apps Android (restaurant, inventario) migran desde este backend hacia APIs independientes
|
||
|
||
**Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/Node/APP-SIGMA-WEB/agents.md`
|
||
|
||
---
|
||
|
||
### MCP Infraestructura — Fuente de verdad del ecosistema
|
||
|
||
> ⚠️ **Aviso a partir de 2026-08-20 — este MCP reemplaza el mantenimiento manual del inventario de este documento.**
|
||
>
|
||
> El servidor MCP de Infraestructura ya está desplegado, probado end-to-end y operativo. A partir de ahora, **el inventario de hardware, servicios, apps IA y servicios externos del ecosistema (la tabla "Ecosistema de Proyectos Telcotronics" y las tablas de CTs/hardware más abajo) deja de mantenerse a mano en este archivo y pasa a vivir en la base de datos del MCP** (`mcp_infraestructura` en MariaDB `.149`).
|
||
>
|
||
> - Cada app/servicio del ecosistema debe registrarse y mantenerse actualizado **escribiendo en el MCP** (vía sus tools `crear_*`/`actualizar_*`), no editando este `.md` directamente.
|
||
> - El propio servidor MCP es el único responsable de reflejar esos cambios — ningún humano ni IA debe seguir parcheando a mano las tablas de inventario de este documento; en su lugar, corresponde actualizarlas vía el MCP y, si hace falta un snapshot legible acá, regenerarlo desde ahí.
|
||
> - **Esto NO cubre todo el documento:** el MCP solo modela 4 entidades (Hardware, Service, AiApp, ExternalService) — la topología de red, reglas NAT, dominios/proxy, credenciales y notas operativas de las secciones de abajo **no tienen equivalente en su schema** y siguen siendo mantenimiento manual de pablinux hasta que (si alguna vez) se extienda el modelo.
|
||
> - **Uso exclusivamente interno:** por decisión explícita, este MCP **no se expone a internet** (no tiene capa de autenticación todavía). Solo es alcanzable dentro de la red `192.168.10.0/24`, directo por IP:puerto — no hay `mcp.telcotronics.net` público ni DNS interno configurado aún.
|
||
|
||
Registro centralizado de la infraestructura real del ecosistema (hardware, servicios internos, apps IA y servicios externos). Expone dos interfaces sincronizadas sobre MySQL: panel web Nuxt 4 para supervisión humana y servidor MCP en TypeScript (`@modelcontextprotocol/sdk`) con soporte dual `stdio`/`SSE` para agentes IA (con operaciones de eliminación bloqueadas a nivel de código — solo la web puede borrar, con confirmación humana). Incluye formateo y enriquecimiento automático de datos mediante el AI Gateway (`sigma-bot.telcotronics.com`).
|
||
|
||
| Parámetro | Valor |
|
||
|-----------|-------|
|
||
| Repositorio Git | `https://git.telcotronics.net/pablinux/MCP-INFRAESTRUCTURA.git` |
|
||
| Tecnología principal | TypeScript + `@modelcontextprotocol/sdk` / Nuxt 4 (Vue 3) + Prisma + MySQL |
|
||
| Responsable | pablinux |
|
||
| Estado actual | ✅ Activo / Operativo — desplegado y verificado end-to-end en producción |
|
||
| Equipo / ubicación local | siax-amd (`192.168.10.100`) — `/home/pablinux/Projects/IA/mcp infraestructura` |
|
||
| Servidor de producción | `server-webapps` CT 132 (`192.168.10.160`) |
|
||
| Dominio público | Ninguno — **uso interno exclusivo**, no expuesto a internet (sin capa de auth todavía) |
|
||
| Puerto | `3006` (MCP SSE) / `3007` (Web) |
|
||
| Gestión del proceso | ⚠️ Manual vía tmux — pendiente de registrar como servicio systemd (SIAX Monitor) |
|
||
| Última actualización | 2026-08-20 |
|
||
| Rol en el ecosistema | **Fuente de verdad de infraestructura.** Centraliza el inventario de hardware, servidores, servicios y apps para consumo de IAs y humanos — ver aviso arriba. |
|
||
|
||
**Bases de datos:**
|
||
|
||
| BD | Motor | Host / IP | Variable env | Uso |
|
||
|----|-------|-----------|-------------|-----|
|
||
| `mcp_infraestructura` | MariaDB | 192.168.10.149 (CT 114) | `DATABASE_URL` | Fuente de verdad: tablas `hardware`, `services`, `ai_apps`, `external_services`, `system_logs` |
|
||
|
||
**Servicios que consume y expone:**
|
||
|
||
| Servicio / Endpoint | Tipo | URL / Host | Autenticación | Propósito |
|
||
|---|---|---|---|---|
|
||
| Gateway IA | Consume | `https://sigma-bot.telcotronics.com/gateway/v1/chat` | Bearer Token (`AI_GATEWAY_API_KEY`, ⏳ pendiente de configurar) | AI Formatter para estandarizar registros |
|
||
| Servidor MCP | Expone | `http://192.168.10.160:3006/sse` (interno) | Sin autenticación | Resources (`infra://*`) y Tools (búsqueda, `crear_*`, `actualizar_*`) para agentes IA |
|
||
| Panel Web | Expone | `http://192.168.10.160:3007` (interno) | Sin autenticación | Gestión CRUD con supervisión técnica y confirmación de borrado |
|
||
| Admin & Logs | Expone | `http://192.168.10.160:3007/admin` (interno) | Sin autenticación | Monitoreo de salud en vivo y visor/vaciado de logs de auditoría |
|
||
|
||
**Módulos disponibles:**
|
||
|
||
| Módulo | Estado |
|
||
|---|---|
|
||
| Base de datos (Schema Prisma MariaDB) | ✅ Completo |
|
||
| Servidor MCP (`mcp/`) — Resources + Tools (stdio/SSE) | ✅ Completo |
|
||
| Panel Web Nuxt 4 (`web/`) — Dashboard + CRUD x4 | ✅ Completo |
|
||
| Panel Admin & Logs (`/admin`) | ✅ Completo — incluye captura global de errores 5xx a `system_logs` |
|
||
| AI Formatter (Gateway IA) | ✅ Completo (con fallback sin enriquecer — falta `AI_GATEWAY_API_KEY`) |
|
||
| Scripts de despliegue (`init.sh`, `desplegar.sh`) | ✅ Completo (rsync directo, sin depender de git) |
|
||
|
||
**Integración con el ecosistema:**
|
||
- Proveedor de contexto y topología para todos los agentes IA y servidores del ecosistema — vía red interna únicamente.
|
||
- Conecta con `sigma-bot.telcotronics.com` para formateo inteligente de entidades.
|
||
|
||
**Dónde buscar más información:** `siax-amd:/home/pablinux/Projects/IA/mcp infraestructura/agents.md`
|
||
|
||
---
|
||
|
||
## Historial y notas críticas
|
||
|
||
### Historial de migraciones (Mayo 2026)
|
||
|
||
- **Separación SIGMA en CTs dedicados:** BD (.116), API (.120), web proxy (.109). Sistema 100% operativo.
|
||
- **Migración correo:** Postfix + Dovecot + SnappyMail en .111. Relay vía Resend.com. SSL con certbot.
|
||
- **Buzones Maildir:** usuario `vmail`, query mysql-users.cf corregida, SASL entrante habilitado.
|
||
- **fail2ban:** instalado en .111 (postfix, dovecot, sshd) y .109 (apache, sshd).
|
||
|
||
---
|
||
|
||
### Notas críticas de operación
|
||
|
||
- **Java en SIGMA-OPEN-API / SIGMAC-SRI-API:** Obligatoriamente Java 8. Java 9+ rompe dependencias de firma digital (MITyCLib). Compilar con `JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64`.
|
||
- **PostgreSQL auth:** Mantener `md5`. Driver JDBC 9.4 no soporta `scram-sha-256`.
|
||
- **SIAX (192.168.10.108):** IA autónoma coordinadora. No apagar sin coordinación previa.
|
||
- **IPs históricas:** No siguen el número del CT. Asignadas antes de Proxmox.
|
||
- **LXC:** MAC prefijo `BC:24:11:*` = contenedor Proxmox.
|
||
- **Certificados correo:** Renovar en .109 con certbot y re-copiar al .111 manualmente.
|
||
|
||
|
||
## Historia del ecosistema
|
||
|
||
El ecosistema comenzó con herramientas como **MAAS de Ubuntu**, **VirtualBox** (servidores de prueba) y **GNS3** (análisis de red). Las IPs fueron asignadas históricamente y se mantienen por continuidad — **no siguen el número del CT de Proxmox**.
|
||
|
||
Cronología de los servidores principales:
|
||
|
||
- **IP .50** — Primer servidor web. Reemplazado por el .150.
|
||
- **IP .100 / .101** — Primeros dos equipos de desarrollo (siax-amd / siax-intel). IPs anteriores a Proxmox.
|
||
- **IP .150 (server-sigma)** — Servidor monolítico original. Corrió todo el sistema SIGMA junto: BD, API Spring Boot, apps Node.js, y más. Fue vaciándose progresivamente: primero salieron las apps Node a `server-webapps`, luego se separaron la BD, la API y el frontend. Hoy está casi vacío y en proceso de retiro.
|
||
- **Nodo "cloud"** — Nuevo servidor Proxmox adquirido para reemplazar al .150. Se crearon 5 CTs dedicados: Servidor-web, servidor-email, SERVIDOR-BD, SIGMA-OPEN-API y Servidor-SIGMA-VW.
|
||
|
||
> ⏳ **Pendiente de eliminar** — esta sección se retira cuando la migración al nuevo cluster esté completa.
|
||
|
||
---
|