Saltar a contenido

Auditoría de documentos firmados

La tabla doc_proceso_firma conserva los hitos y características de firma de cada documento.

Campos persistidos

Columna Descripción
doc_pro_fir_fecha_registro Fecha y hora de creación del registro documental.
doc_pro_fir_fecha_firma Fecha y hora en que el motor terminó de insertar la firma.
doc_pro_fir_fecha_descarga Primera fecha y hora de descarga confirmada por el cliente.
doc_pro_fir_ult_descarga Fecha y hora del último intento de confirmación, exitoso o fallido.
doc_pro_fir_formato_firma Formato aplicado: PAdES o CAdES.
doc_pro_fir_nivel_firma Nivel aplicado: B, BT, LT o LTA.

Las fechas se guardan como TIMESTAMP y usan la zona horaria configurada para la JVM y la conexión PostgreSQL.

Clasificación del nivel

El nivel se obtiene de la configuración efectiva del documento. La configuración individual tiene precedencia sobre la configuración común.

Condición Nivel guardado
firma.perfil=PAdES-B, CAdES-B o PKCS7-B B
firma.perfil=PAdES-BT, CAdES-BT o PKCS7-BT BT
firma.perfil=PAdES-LT o PKCS7-LT LT
firma.perfil=PAdES-LTA o PKCS7-LTA LTA

El formato se obtiene del prefijo de firma.perfil: PAdES-, CAdES- o PKCS7-.

Momento de registro

  • Registro: al insertar doc_proceso_firma.
  • Firma: únicamente después de que la operación ihf del motor termina con estado 0.
  • Descarga: al recibir una confirmación OK o SUCCESS en POST /api/v2/documento/{id}/confirmar-descarga.

La fecha de descarga no se actualiza en el GET porque una respuesta iniciada no garantiza que el cliente haya recibido y validado el archivo completo.

Actualización de base de datos

Para una base existente, ejecutar:

psql -h <host> -U <usuario> -d <base_datos> \
  -f src/main/resources/sql/auditoria-documentos-firma.sql

El script es idempotente, completa la fecha de registro histórica desde el grupo y usa la última descarga conocida para documentos ya confirmados. Los campos de formato, nivel y fecha de firma de registros históricos quedan en NULL porque no pueden reconstruirse con certeza.