PD-252 — Expression de besoin : Politique formats de préservation¶
1. Contexte¶
ProbatioVault est un système d'archivage électronique (SAE) conforme ISO 14641 et NF Z42-013. L'audit de conformité PD-244 a identifié le gap GAP-FINAL-004 (ISO 14641 §10.1.1) : les formats de fichiers acceptés sont définis techniquement (validation MIME par catégorie dans le backend) mais la politique de préservation long terme n'est pas formalisée dans un document de référence.
État actuel¶
- Backend : Validation MIME par catégorie (entité
DocumentCategoryConfig) : DEFAULT:*/*(tous formats, max 500 MB — relevé de 100 MB par PD-285)B2C_EVIDENCE_MINOR: 7 formats restreints (image/png, image/jpeg, audio/mp4, audio/mpeg, audio/wav, video/mp4, video/quicktime)- Manuel SAE : PDF/A et JSON cités (ch06 cycle de vie, ch07 traçabilité, ch08 conformité) sans spécification formelle
- Format d'export :
.pvproof(RFC-PV-PACK.md) — container ZIP signé
Gap identifié¶
| Gap | Norme | Exigence | Statut | Sévérité |
|---|---|---|---|---|
| GAP-FINAL-004 | ISO 14641 §10.1.1 | Formats de fichier standardisés | PARTIEL | LOW |
2. Objectif¶
Produire un document de politique de formats de préservation (preservation-format-policy.md) intégré au manuel SAE, qui formalise :
- Les formats acceptés pour l'archivage long terme et leur niveau de préservation
- Les règles de conversion à l'ingestion
- Les critères de validation technique à l'entrée du SAE
- La matrice formats × durées de conservation
3. Périmètre fonctionnel¶
3.1 Formats de préservation acceptés¶
Définir la liste exhaustive des formats acceptés pour la préservation long terme, classés par catégorie :
| Catégorie | Formats | Niveau de préservation |
|---|---|---|
| Documents textuels | PDF/A-1b, PDF/A-2b, PDF/A-3b | Complète (structure + contenu) |
| Images | JPEG, PNG, TIFF | Bitstream (intégrité binaire) |
| Données structurées | JSON, XML | Complète (structure + schéma) |
| Texte brut | TXT, CSV | Bitstream |
| Audio/Vidéo | MP4 (H.264/AAC), WAV, MOV | Bitstream |
3.2 Niveaux de préservation¶
Formaliser deux niveaux :
- Préservation complète : le format garantit la lisibilité et l'interprétation du contenu à long terme (structure, métadonnées, rendu). Exemple : PDF/A.
- Préservation bitstream : le SAE garantit l'intégrité binaire du fichier (hash SHA3-384, Object Lock WORM) sans garantie de lisibilité future du format. Exemple : formats propriétaires acceptés en
DEFAULT.
3.3 Règles de conversion à l'ingestion¶
Définir les conversions recommandées (non bloquantes en v1) :
| Format d'entrée | Format de préservation | Conversion | Priorité |
|---|---|---|---|
| DOCX, DOC | PDF/A-2b | Recommandée | P2 (story séparée) |
| XLSX, XLS | PDF/A-2b | Recommandée | P2 (story séparée) |
| PPTX | PDF/A-2b | Recommandée | P2 (story séparée) |
| HTML | PDF/A-2b | Recommandée | P2 (story séparée) |
| PDF (non-A) | PDF/A-1b | Recommandée | P1 (story séparée) |
Note : L'implémentation technique des conversions est hors périmètre de PD-252.
3.4 Critères de validation à l'ingestion¶
Définir les validations techniques appliquées à chaque document entrant :
- Validation MIME : vérification du type MIME déclaré vs contenu réel (magic bytes)
- Validation PDF/A : conformité PDF/A vérifiée par outil de validation (VeraPDF ou équivalent)
- Validation intégrité : hash SHA3-384 calculé et stocké dès l'ingestion
- Validation taille : respect des limites par catégorie (DocumentCategoryConfig)
- Détection malware : scan antivirus avant stockage (ClamAV ou équivalent)
3.5 Matrice formats × durées de conservation¶
Aligner les formats sur les durées de conservation légales :
| Type de document | Durée légale | Formats acceptés | Niveau |
|---|---|---|---|
| Contrats commerciaux | 10 ans | PDF/A-1b, PDF/A-2b | Complète |
| Factures | 10 ans | PDF/A-1b, PDF/A-2b, JSON (Factur-X) | Complète |
| Documents probatoires | 30 ans | PDF/A-1b, PDF/A-2b | Complète |
| Preuves numériques (mineurs) | Jusqu'à majorité + 5 ans | Image, Audio, Vidéo | Bitstream |
| Données techniques (logs, métadonnées) | 5 ans | JSON, XML, CSV | Complète/Bitstream |
3.6 Références normatives¶
Le document DOIT explicitement référencer :
- ISO 14641:2018 §10.1.1 — Formats de fichier standardisés
- NF Z42-013:2020 §6.2.4 — Formats de conservation
- ISO 19005 (PDF/A) — parties 1, 2, 3
- RFC-PV-PACK (interne) — Format d'export
.pvproof
4. Hors périmètre¶
- Implémentation technique des conversions de format (stories séparées)
- Modification du code backend (validation MIME déjà implémentée)
- Achat ou déploiement d'outils de validation (VeraPDF, ClamAV)
- Migration des documents existants vers des formats de préservation
5. Critères d'acceptation¶
- CA-01 : Le document
preservation-format-policy.mdexiste dans le manuel SAE - CA-02 : Le tableau des formats acceptés est exhaustif (toutes catégories couvertes)
- CA-03 : Les deux niveaux de préservation (complète/bitstream) sont formellement définis
- CA-04 : Les règles de conversion sont documentées avec priorité et story de destination
- CA-05 : Les critères de validation à l'ingestion sont listés et décrits
- CA-06 : La matrice formats × durées de conservation est alignée sur les durées légales
- CA-07 : Les références normatives (ISO 14641, NF Z42-013, ISO 19005) sont citées
- CA-08 : Le chapitre ch08 du manuel SAE référence le nouveau document
- CA-09 : Le gap GAP-FINAL-004 est traçable vers ce document (lien explicite)
6. Formats et contraintes de données¶
| Champ / Élément | Format | Contrainte |
|---|---|---|
| Nom de format | String | Nom canonique (ex: "PDF/A-1b", pas "pdf/a") |
| Type MIME | String RFC 6838 | Format type/subtype (ex: application/pdf) |
| Niveau de préservation | Enum | COMPLETE | BITSTREAM |
| Durée de conservation | ISO 8601 duration | Ex: P10Y (10 ans), P30Y (30 ans) |
| Priorité conversion | Enum | P1 | P2 | P3 |
| Référence normative | String | Format NORME §section (ex: "ISO 14641 §10.1.1") |
7. Learnings injectés¶
- IM-02 : L'absence de tableau formats/contraintes en spec v1 cause systématiquement NON_CONFORME Gate 3. Section 6 ajoutée proactivement.
- PD-250 : Modéliser les états formels de document. Applicable ici pour les niveaux de préservation (COMPLETE vs BITSTREAM).