Changelog
Historial desglosado por versión, basado en los tags y commits del repositorio, desde la 0.2.11. Las versiones de las imágenes Docker se corresponden con los tags Git sin el prefijo v; la versión del contrato OpenAPI se mantiene por separado.
0.2.16 — 5 de octubre de 2026
Firma visible con certificado
- La vista previa de Business Central permite elegir página y dibujar, mover o redimensionar el recuadro de firma con certificado, con zoom y controles de teclado. La presentación visible muestra el titular real, la hora de preparación en UTC y el emisor, protegidos por la firma criptográfica.
- El campo opcional
visibleSignatureamplía la API y usa las coordenadas del PDF original sin rotación. Se validan desplazamientos de recorte, rotaciones, área mínima legible y huellas de reintento. Las llamadas existentes conservan firmas invisibles al omitirlo. - Los recursos locales PDF.js incluyen CMaps y fuentes sin conexión y decodificación JPEG2000/JBIG2 en JavaScript. La página fija documento, certificado, selección y
OperationIdantes de firmar; los fallos del servicio se pueden reintentar mientras permanezca abierta. - El contrato OpenAPI tiene versión 2.2.0. No se requieren migraciones ni variables de entorno nuevas en ejecución. Las imágenes API/tablet tienen versión 0.2.16; la extensión AL conserva versión independiente 1.1.0.0.
- Backend: 115 pruebas superadas. Se superaron las comprobaciones reales de navegador y recursos. La extensión AL completa compiló con símbolos BC 24.5/runtime 13: 0 errores y 0 advertencias. MkDocs pasó la compilación estricta. La validación en el tenant real de BC y un lector independiente sigue siendo necesaria antes de producción.
Para usar la vista previa y el recuadro visible, actualiza la API a 0.2.16 y los objetos/recursos AL a 1.1.0.0, y después compila y publica tu extensión en el tenant objetivo. El flujo existente también etiqueta la imagen tablet como 0.2.16; actualizar solo la tablet no habilita la vista previa BC. Consulta las instrucciones de actualización y los archivos de la versión. Confirma que han terminado los trabajos de imágenes del tag antes de elegirlo en Coolify. Publicar la versión no redespliega el servidor ni el tenant.
Corrección documental posterior — 5 de octubre de 2026
- Se traduce al español toda la prosa documental propia, incluidos los detalles del rectángulo de firma, las guías AL, las referencias OpenAPI y los README técnicos. Se conservan los identificadores, ejemplos de código, etiquetas reales de la interfaz y licencias de terceros.
- El menú muestra Changelog y el historial agrupa cada entrega en su propia versión. Los cambios documentales del 30 de septiembre quedan dentro de 0.2.14, que los incorporó.
- La corrección está en
mainy en el archivo estático de documentación actualizado de 0.2.16. No crea una versión ni imágenes nuevas; el tagv0.2.16y el paquete AL conservan su contenido. El portal alojado requiere reconstrucción independiente desde el commit corregido.
0.2.15 — 3 de octubre de 2026
Documentación y Swagger
- Swagger generado publica las descripciones de los campos de solicitud:
certificateBase64acepta solo la hoja ycertificateChainBase64es opcional. Se mantiene el contrato y la lógica de firma. - Sincronizadas las explicaciones de endpoints, OpenAPI estático y guías de integración, configuración, errores y actualización: resolución automática independiente del emisor, catálogo UANATACA incluido desde la 0.2.14 y ausencia de cambios necesarios en BC para ese caso.
- Aclarado que hay que generar un nuevo PDF tras actualizar la API, que los anteriores no se reescriben y que incluir intermedios no garantiza confianza del lector ni añade TSA, revocación o B-T/LT/LTA.
Los metadatos Swagger corregidos requieren actualizar la imagen API a 0.2.15 tras su publicación; cambiar solo los archivos de documentación no actualiza el Swagger de una API ya desplegada. El funcionamiento de resolución de emisores está disponible desde la 0.2.14. La actualización de Coolify se realiza por separado.
0.2.14 — 3 de octubre de 2026
Firmar PDF con certificado
- Corregida la generación de PDFs firmados que incluían solo el certificado hoja. La API resuelve automáticamente los certificados emisores, verifica la cadena e incorpora los intermedios al CMS; BC puede seguir enviando solo su certificado público y conserva la clave privada.
- Resolución independiente de la entidad mediante AIA HTTP(S), con soporte DER, PEM y PKCS#7. Catálogo público incluido y raíces del sistema como respaldo; UANATACA es una entidad cubierta, no una lista exclusiva de proveedores. Para entidades sin AIA accesible, el operador puede provisionar certificados públicos una vez mediante
PADES_ISSUER_CERTIFICATE_DIRECTORY. - Descargas protegidas frente a acceso a redes privadas y cambios de DNS, sin proxy ni redirecciones, con límites de tamaño, tiempo, consultas y caché.
PADES_ISSUER_HTTP_TIMEOUT_SECONDSpermite ajustar el timeout por descarga. - Cadena persistida en una instantánea versionada y validada sin red al completar. Se mantienen reintentos, contratos HTTP y preparaciones antiguas con cadenas parciales; no se requiere una migración de base de datos. Emisores no resolubles, falsificados o ajenos producen
422 CERTIFICATE_CHAIN_INVALIDantes de preparar. - Validación de rutas alternativas con certificados cruzados y del espacio reservado para CMS antes de devolver la preparación. 93 pruebas backend superadas, con cobertura de dos proveedores genéricos, flujo completo con hoja sola, PKCS#7 real y protecciones de red.
El perfil sigue siendo PAdES B-B, sin TSA, OCSP/CRL ni B-T/LT/LTA. La confianza del lector sigue dependiendo de sus autoridades/listas y configuración. Los PDFs emitidos anteriormente no se reescriben automáticamente. Esta versión incorpora también los cambios documentales del 30 de septiembre de 2026 descritos en su subsección siguiente.
El tag Git v0.2.14 activa el workflow existente para construir y publicar imágenes de API y tablet etiquetadas 0.2.14 y latest en GHCR. La actualización de una instalación se realiza por separado en Coolify.
Documentación incorporada — 30 de septiembre de 2026
Cambios documentales posteriores a la 0.2.13, incorporados al tag v0.2.14.
Reorganización de las guías
- Reorganización en tres bloques: Firma de recepción, Extraer texto de un PDF y Firmar PDF con certificado. El OCR queda como opción dentro de extracción de texto.
- Integración de certificados documentada mediante copia manual del código AL en la extensión del cliente, con el codeunit completo y sus ocho objetos auxiliares. Eliminado el recorrido de instalación de una app independiente.
- Explicación de dónde colocar el código, cómo configurar certificados y alias, qué hace
FirmarPdfy cómo llamarlo desde un proceso o una acción de página. - Guías separadas para instalación inicial, actualización en Coolify, configuración y desarrollo local.
- Instrucciones de permisos GHCR: publicación desde GitHub Actions y descarga de imágenes privadas desde el servidor de Coolify.
- Referencias, errores, estados y limitaciones reconciliados con la implementación. Se mantienen pendientes las comprobaciones en el sandbox BC y con documentos reales.
Estos cambios documentales no modificaron la API ni publicaron una imagen por separado. Se incluyen en la entrega 0.2.14. Cambios documentales del 30 de septiembre.
0.2.13 — 29 de septiembre de 2026
Corregido
- Publicación de las imágenes de API y tablet en GHCR mediante
GITHUB_TOKEN, con permisopackages: writeen ambos trabajos de GitHub Actions. - Eliminada la dependencia del secreto
CR_PATpara publicar imágenes desde el workflow.
Esta versión conserva las funcionalidades de la 0.2.12; el cambio corresponde al proceso de publicación. Los permisos de descarga de Coolify se configuran por separado.
0.2.12 — 29 de septiembre de 2026
Extraer texto de un PDF
- Nuevo
POST /v1/pdf-text-extractions: recibepdfBase64y devuelve texto plano dentro de JSON, contextyrequiresOcr. - Lectura de la capa de texto del PDF, sin imágenes ni formato visual. Si no hay texto útil, devuelve texto vacío y
requiresOcr: true; no inicia OCR automáticamente. - OCR opcional mediante
POST /v1/pdf-ocr-extractionsy consulta conGET /v1/pdf-ocr-extractions/{jobId}. - Procesamiento OCR local con Poppler y Tesseract, cola acotada, timeout y caducidad de resultados. Los trabajos viven en memoria y se pierden al reiniciar.
Firmar PDF con certificado
- Nuevo flujo PAdES: preparar el documento, firmar en Business Central, completar la firma y descargar el PDF.
- Nuevas rutas
prepare,complete, consulta de estado y descarga bajo/v1/pades-signature-requests. - Objetos AL con
FirmarPdf, configuración de conexión, almacenamiento cifrado del bearer, asignación de alias, permisos y página de prueba. - Selección del certificado por empresa, usuario y alias. Un mismo usuario puede tener varios alias autorizados.
- Clave privada, PFX y contraseña custodiados en Business Central; la API recibe el certificado público y la firma generada en BC.
- Perfil PAdES B-B con RSA de al menos 2048 bits y SHA-256/PKCS#1 v1.5. Sin TSA, validación de confianza/revocación ni firmas incrementales sobre PDFs ya firmados.
- Idempotencia y recuperación mediante
OperationId, control de completado concurrente, comprobación de integridad, retención y limpieza de archivos huérfanos. - Persistencia PAdES y nuevas migraciones de PostgreSQL.
Contrato y soporte
- OpenAPI/Swagger actualizado para extracción, OCR y firma PAdES. La versión del contrato OpenAPI pasa de
2.0.0a2.1.0. - Añadidas pruebas de extracción, firma PAdES, endpoints y almacenamiento al repositorio.
- Nuevas variables de configuración reflejadas en
.env.exampley documentación de integración y operación.
Para actualizar una instalación basada en imágenes, utiliza la 0.2.13 o una versión posterior publicada. La incorporación manual del código AL y su configuración en BC forman parte de la integración del cliente. Consulta Actualizar en Coolify y Firmar PDF con certificado.
0.2.11 — 19 de mayo de 2026
Firma de recepción
- Recarga de la tablet desde la red cuando detecta una nueva versión.
- Eliminación de registros del service worker y cachés antes de recargar, con un parámetro de URL que evita reutilizar la página anterior.
- Mensaje de actualización a la versión detectada.