SSigner Server¶
Aplicación de escritorio (JavaFX) que administra certificados digitales y procesos de firma, vigila carpetas en busca de documentos nuevos, y ejecuta la firma digital PDF/PAdES invocando a una librería de firma externa. Corre siempre en segundo plano en el servidor Windows, sin intervención manual.
Esta documentación es autocontenida: no asume que ya viste la documentación de Envío de Documentos y Mantenimiento (la API REST con la que este componente se coordina). Si necesitás el detalle completo de esa API para integrar un front, está en esa otra sección — acá se documenta esta app: cómo se configura, cómo opera, y qué hace con cada documento que le llega.
Qué hace esta app¶
- Administra certificados digitales: registra certificados (del almacén de Windows o de un token PKCS11), valida su vigencia automáticamente.
- Administra procesos de firma: cada proceso define rutas de entrada/salida, qué certificado usar, y cómo se ve la firma en el documento (texto, imagen, posición, página, sello de tiempo, glosa, código QR/de barras).
- Vigila carpetas: detecta documentos PDF nuevos apenas llegan (eventos nativos de filesystem, no polling), sin intervención humana.
- Invoca la firma digital: por cada documento detectado, llama a la librería de firma (que no forma parte de este repositorio — se consume como una dependencia, no se modifica) y escribe el resultado en la carpeta de salida del proceso.
- Retiene y limpia documentos firmados según una política configurable por proceso (días, semanas, meses o años).
Qué NO hace esta app¶
- No expone ninguna API HTTP. Nadie se conecta a esta app desde afuera — ni un front, ni un sistema externo. Toda interacción con el mundo exterior pasa por Envío de Documentos y Mantenimiento, el servicio REST con el que esta app se coordina.
- No recibe documentos directamente de un cliente final. Los documentos le llegan únicamente porque otro componente los dejó en una carpeta que esta app está vigilando.
Cómo continúa el flujo desde donde queda el servicio de documentos¶
Un documento llega a esta app sin que nadie se lo "envíe" en el sentido de una llamada de red — simplemente aparece un archivo en una carpeta que esta app vigila. Desde ahí:
sequenceDiagram
participant FS as Envío de Documentos y Mantenimiento
participant Carpeta as Carpeta de entrada (compartida)
participant SS as SSigner Server (esta app)
participant M as Librería de firma
participant Salida as Carpeta de salida (compartida)
FS->>Carpeta: escribe el PDF recibido
Note over SS: detecta el archivo nuevo por notificación del sistema operativo, sin polling
SS->>SS: lee de la BD la configuración del proceso (certificado, apariencia)
SS->>M: invoca la firma (3 fases)
M-->>SS: PDF firmado
SS->>Salida: escribe el resultado
SS->>SS: limpia archivos intermedios de la carpeta de entrada
Note over FS: detecta el archivo firmado por polling periódico, lo entrega
Ni esta app ni el servicio de documentos se llaman entre sí directamente — la carpeta compartida y la base de datos SQLite compartida son el único punto de contacto. El detalle completo de esa decisión de arquitectura está en Arquitectura y flujo.
Índice de esta documentación¶
| Documento | Contenido |
|---|---|
| 01 · Arquitectura y flujo | Los dos componentes, por qué no se llaman entre sí, la continuación del flujo end-to-end |
| 02 · Configuración de procesos | Certificados, procesos, apariencia de firma, posición vertical/horizontal |
| 03 · Retención y operación | Retención automática, bandeja del sistema, validación de certificados, logging |
| 04 · Modelo de datos | Las mismas 7 tablas, desde la óptica de qué escribe/lee esta app |
| 05 · Despliegue | Empaquetado, instalador, JRE compartido, migraciones |
Datos rápidos¶
| Tecnología | Aplicación de escritorio con interfaz gráfica nativa, acceso a la base de datos vía un ORM (mapeo objeto-relacional) |
| Base de datos | SQLite, compartida con el servicio de documentos |
| Cómo corre | Instalado en el servidor Windows, siempre activo en segundo plano (bandeja del sistema) |
| Quién la configura | Personal de soporte técnico, manualmente, desde la interfaz de escritorio |