Saltar a contenido

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