Files
linkedsign/backend/IMPLEMENTATION_SUMMARY.md
T
2026-04-06 20:34:18 -05:00

2.7 KiB

LinkedSign Backend - Resumen Actual

Resumen corto del estado actual del backend que usan la web y la app Android.

Módulos activos

  • auth
  • users
  • documents
  • certificates
  • signatures
  • mail
  • audit
  • health

Seguridad aplicada

  • helmet
  • cors restringido
  • rate limit en login
  • JWT access + refresh
  • contraseñas con bcrypt
  • validación fuerte de contraseña
  • validación de PDF
  • control de acceso por usuario autenticado
  • auditoría de login, documentos, certificados y firmas

Autenticación

  • registro con correo + contraseña
  • validación del correo por enlace
  • reenvío automático del correo si el usuario intenta entrar sin validar
  • GET /auth/me
  • logout y refresh token
  • cambio de contraseña con confirmación por correo

Documentos

  • subida de PDF original
  • listado
  • descarga
  • eliminación
  • cálculo de hash SHA-256 del documento

Ruta de almacenamiento:

/storage/documentos/YYYY/MM/

Certificados

  • subida de .p12 / .pfx
  • lectura de sujeto, emisor y vigencia
  • detección de cantidad de certificados embebidos
  • indicador de cadena embebida
  • listado y eliminación

Ruta de almacenamiento:

/backend/storage/certificates/users/{userId}

Firmas

  • firmado de PDF con certificado del usuario
  • estilos visuales:
    • classic
    • qr
    • professional
    • image
  • QR configurable:
    • izquierda / derecha
    • borde / sin borde
    • fondo suave / transparente
  • nombre del firmado:
    • nombreOriginal_yyyymmddhhmm.pdf
  • listado de documentos firmados
  • descarga del firmado
  • verificación pública por QR

Verificación QR

Cada firma puede generar:

  • verificationCode
  • verificationUrl

El QR apunta a la verificación pública de LinkedSign y muestra:

  • estado de validez interna
  • firmante
  • emisor del certificado
  • documento
  • fecha de firma
  • razón y ubicación
  • hash de integridad

Preferencias visuales

Se guardan por usuario:

  • signatureStyle
  • qrPosition
  • qrBackground
  • qrBorder
  • signatureImageBase64

Persistencia actual:

backend/storage/preferences/signature-styles.json

Auditoría

Eventos almacenados en:

backend/logs/audit.log

Se registran, entre otros:

  • USER_REGISTERED
  • LOGIN_SUCCESS
  • LOGIN_FAILED
  • VERIFICATION_EMAIL_RESENT
  • PASSWORD_CHANGE_REQUESTED
  • PASSWORD_CHANGED
  • DOCUMENT_UPLOAD
  • DOCUMENT_DELETE
  • CERTIFICATE_UPLOAD
  • CERTIFICATE_DELETE
  • DOCUMENT_SIGNED

Integración con Android

La app móvil en android/README.md:

  • usa esta misma API
  • comparte autenticación con la web
  • guarda sesión en el dispositivo
  • sincroniza documentos, certificados y firmados bajo petición del usuario