Infraestructura tecnológica
El SIG es una aplicación del monorepo de PlanItOne desplegada en el mismo servidor que el resto de la suite, pero con su propio dominio y su propio proceso. Esta página describe cada pieza y por qué está donde está.
La pila, de fuera hacia dentro
Proxy inverso con certificado
El dominio completo llega al proxy, que termina el cifrado y reenvía al proceso de la aplicación. La única
excepción es /contaduria/, que se desvía al micrositio del programa de Contaduría Pública, alojado en
el mismo servidor con otro proceso.
Servidor de aplicación
Express sobre Node con módulos ES. Sirve las vistas, los archivos estáticos, la API pública y la API del chatbot. Se ejecuta bajo un gestor de procesos que lo reinicia si cae y lo levanta al arrancar el servidor.
Base de datos en tiempo real
Guarda el catálogo documental, las carpetas, el registro de descargas y las conversaciones. Es en tiempo real por diseño: cuando un administrador publica un documento, el listado se actualiza en las pantallas abiertas sin recargar.
Almacenamiento de archivos
Los binarios no viven en la base de datos. Se suben a un bucket con la misma jerarquía que el catálogo
—/sig/archivos/{proceso}/{carpeta}/{nombre}— y al publicarlos se guarda la dirección de descarga. Cada
objeto lleva además una cabecera de descarga con su nombre original, para que el archivo llegue bien nombrado
aunque tenga tildes.
Autenticación
Inicio de sesión con Google. El servicio de identidad es compartido con el resto de la suite, de modo que el rol de una persona se lee del mismo registro de usuarios que usan las demás aplicaciones.
Modelo del asesor virtual
El chatbot llama a un modelo de lenguaje con llamada a funciones. Trabaja con dos herramientas que consultan el catálogo real, de modo que las respuestas se apoyan en datos y no en la memoria del modelo.
Correo saliente
Cuando alguien pide atención humana desde el chat, se envía un aviso a la División del SIG con el enlace directo al hilo. Se usa el mismo relé de correo que el resto de la suite.
Qué pasa al publicar un documento
Es la operación que toca más piezas a la vez, y sirve para ver cómo encajan.
El navegador sube el binario al almacenamiento
Con carga reanudable y barra de progreso. Se adjuntan metadatos: nombre original, tipo de contenido y la cabecera que fuerza la descarga con el nombre correcto.
Se obtienen la dirección de descarga y los metadatos definitivos
Tamaño real, hash y fechas los aporta el almacenamiento, no el navegador: así el registro refleja el objeto tal como quedó guardado.
Se deriva la etiqueta de formato de la extensión
.docx → Word, .xlsx → Excel, .pdf → PDF. Si la extensión no está en la
tabla, se usa en mayúsculas tal cual.
Se escribe el registro bajo el proceso
Se genera una clave nueva y se guardan nombre, carpeta, formato, peso, fecha, ruta, dirección y metadatos, más la identidad de quien publicó, que queda para trazabilidad interna.
El listado se actualiza solo
Las pantallas suscritas reciben el cambio y repintan las píldoras y las tarjetas. No hay recarga ni paso de publicación.
Decisiones de rendimiento
Vistas en caché
Cada vista se lee de disco una vez, se le inyecta el widget del chat y se guarda en memoria. Las siguientes peticiones no tocan el disco.
Caché en la API
El mapa de procesos se cachea un minuto y los archivos por proceso treinta segundos, además de la caché de cinco minutos que se anuncia al cliente.
Suscripción, no sondeo
El listado de documentos se suscribe a los cambios en lugar de preguntar cada pocos segundos.
Descarga directa
Los binarios se sirven desde el almacenamiento, sin pasar por el servidor de la aplicación. El proceso no se convierte en cuello de botella.
Puntos de atención operativa
| Punto | Qué vigilar |
|---|---|
| Modelo del chatbot | La cuota de tokens por minuto. Cambiar a un modelo mayor provoca errores de límite en uso normal. |
| Catálogo del chatbot | Es una foto del repositorio. Tras una carga grande hay que regenerarlo o el asesor no conocerá lo nuevo. |
| Caché de vistas | Se llena al arrancar. Un cambio en una vista requiere reiniciar el proceso para que se vea. |
| Ausencia de papelera | Eliminar un documento borra registro y binario. No hay restauración. |
| Certificado del dominio | Renovación automática; conviene comprobar que sigue vigente tras cambios en el proxy. |
| Identidad compartida | El rol se lee del registro de usuarios de la suite: un cambio ahí afecta también al SIG. |