| Metadato | Valor |
|---|---|
| Versión / Version | v1 |
| Estado / Status | Vigente desde la fase 06.5 para todo AIP nuevo cuyo paso 5 valide al menos un fichero con firma |
| URI del perfil / Profile URI | https://docs.docuten.com/earchiving/dss-validation-report/v1 |
| Dónde se cita / Where it is cited | Contenido de metadata/preservation/dss-validation-report.xml (digiprovMD[ID=digiprov-3], un solo mdRef), parte del AIP sellado |
| Implementación / Implementation | DssReportContainerBuilder y DigitalSignatureValidatedTasklet, en earchiving-ingest/.../ingest/steps/ |
| Decisiones / Decisions | D-14, D-15 (06.5-CONTEXT.md) |
| Fecha / Date | 2026-11-02 |
Un AIP con N ficheros firmados conserva N informes de validación DSS (ETSI TS 119 102-2), uno por fichero
validado, dentro de un único documento XML en la ruta de siempre. Cada entrada conserva los bytes del
informe exactos (en base64) y los enlaza con el fichero al que pertenecen y con el evento
DIGITAL_SIGNATURE_VALIDATION correspondiente. No se sintetiza ningún informe multi-documento ni se
descarta ningún informe por fichero (D-14).
La URI es un identificador, no una URL que deba resolverse.
Cambiar este formato es una versión nueva (
v2), nunca una edición: el contenedor queda dentro del AIP sellado.
An AIP with N signed files keeps N DSS validation reports (ETSI TS 119 102-2), one per validated file,
inside a single XML document at the usual path. Each entry keeps the exact report bytes (base64) and links
them to the file they belong to and to its DIGITAL_SIGNATURE_VALIDATION event. No synthetic
multi-document report is built and no per-file report is dropped. Changing the format is a new version
(v2), never an edit.
metadata/preservation/dss-validation-report.xml.amdSec/digiprovMD[ID=digiprov-3] con un solo mdRef, condicional a que el paso 5 haya
declarado informe (sin ningún fichero validado con firma, el AIP no lleva ni el fichero ni el mdRef).sip-aip-inventory-rules-v1.md) no cambian: la ruta, el ID y la
condicionalidad son los mismos; solo cambia el contenido del fichero.<?xml version="1.0" encoding="UTF-8"?>
<dss:dssValidationReports xmlns:dss="https://docs.docuten.com/earchiving/dss-validation-report/v1" version="1">
<dss:report aipPath="…/representations/rep-1/data/a/x.pdf"
fileSha256="…64 hex…"
indication="TOTAL_PASSED"
subIndication="…"
reportSha256="…64 hex…">
<dss:content encoding="base64">…bytes exactos del informe…</dss:content>
</dss:report>
<!-- una dss:report por fichero validado -->
</dss:dssValidationReports>
| Elemento / atributo | Significado |
|---|---|
dss:dssValidationReports@version |
Versión del formato: version="1" |
dss:report@aipPath |
Ruta completa del fichero firmado dentro del AIP (la misma que el evento) |
dss:report@fileSha256 |
SHA-256 hexadecimal en minúsculas del fichero firmado tal como se validó |
dss:report@indication |
Indicación DSS (hoy siempre TOTAL_PASSED: solo se conserva el informe de lo que pasó) |
dss:report@subIndication |
Subindicación DSS; se omite si no hay |
dss:report@reportSha256 |
SHA-256 hexadecimal en minúsculas de los bytes del informe, antes de codificarlos |
dss:content |
Los bytes exactos del informe en base64 (RFC 4648 §4), sin saltos de línea, con encoding="base64" |
aipPath (orden natural de cadenas), con independencia del orden de
validación y de iteración de DSS.aipPath no puede repetirse: a/x.pdf y b/x.pdf son dos entradas distintas bajo sus rutas completas.Cada evento DIGITAL_SIGNATURE_VALIDATION por fichero lleva en linkingObjectIdentifiers la pareja
(aipPath, sha256). Esa misma pareja (aipPath, fileSha256) identifica la entrada del contenedor: no
hay identificador adicional.
aipPath (y comprobar que fileSha256 coincide con el del evento).dss:content con base64.reportSha256.Fail-closed: si se rebasa una cota el paso 5 aborta y no se conserva nada a medias.
| Cota | Valor |
|---|---|
| Tamaño de un informe | 4 MiB |
| Suma de informes en un contenedor | 64 MiB |
También abortan un informe vacío y un aipPath repetido. Las cotas son una hipótesis de dimensionado
(el informe medido más grande es de ~60 KB; no se midió un PAdES-LTA real de un QTSP) y quedan muy por
debajo del techo de 256 MiB de copyFromUrl. El base64 añade ~33 % de tamaño, aceptado a cambio de
informes verificables byte a byte.
Los AIP anteriores a la fase 06.5 llevan en esta ruta el informe ETSI TS 119 102-2 de un solo fichero,
sin contenedor: el lector distingue por el elemento raíz (dss:dssValidationReports en el espacio de
nombres de esta v1 frente al elemento raíz del informe ETSI crudo).
AIPs created before phase 06.5 carry at this path the raw ETSI TS 119 102-2 report of a single file, with no container: readers tell them apart by the root element.
v2 con URI y espacio de nombres nuevos.version y rechazar lo que no reconozcan.