Récit de vie composant
Le récit de vie d’un composant est la restitution audit complète exigée par M.A.305 EASA Part-145 / EMAR-FR M : tout ce qui doit être présenté à l’autorité (DGAC, DSAÉ) sur réquisition pour un composant donné — son identification, l’historique de ses installations, ses snapshots compteurs à la réception, ses documents attachés et la chaîne d’audit hashchain SHA-256 qui les protège.
L’API expose deux formats parallèles à partir du même service d’agrégation :
- PDF — restitution lisible humain, archive long terme
- JSON — restitution machine, intégration BI / export XML
L’interface web rend ce JSON dans un onglet dédié de la fiche article, afin de permettre une consultation immédiate sans téléchargement (cf. § Consultation en ligne ci-dessous).
Contenu agrégé (V2 — aligné Formulaire 1 EMAR/FR)
Le PDF V2 reprend le style visuel du Formulaire 1 EMAR/FR Ed. 3.2 publié par la DSAé :
- En-tête centré bilingue FR (gras) / EN (italique)
- 8 cases numérotées sur la page de garde (autorité, régime, n° de traçage, instance, PN/NCAGE, SN/Lot, désignation, fabricant)
- Pied de page avec édition + génération + pagination
- Verso « Responsabilités du lecteur » bilingue
| Section | Source |
|---|---|
| Cases 1-8 identification | StockItem + PartNumber + Manufacturer + Instance.regulatoryFramework |
| Configuration actuelle | Installation active (si posé) OU storage courant (si en stock) |
| Identification technique R2 | Condition, manufactureDate, modLevel, softwareVersion, easaForm1Document |
| Historique installations | Installation (pose/dépose sur aéronef ou container, avec EmploymentPoint si Vague D) |
| Snapshots compteurs R2 | StockItemMeterSnapshot (TSN/TSO/CSN saisis par le technicien navigabilité) |
| Plans de maintenance applicables | StockItemPlanAssignment (PEA assignés au composant) |
| Compliance AD (placeholder honnête) | Gap V1 — Envergure ne modélise pas encore les AD |
| Information dimensionnelle (placeholder honnête) | Gap V1 — pas de champ mesures sur StockItem |
| Documents attachés | DocumentAttachment polymorphique sur resourceType=stock_item |
| Audit events | AuditEvent filtré sur ce StockItem (hashchain SHA-256 vérifiable) |
| Numéro de traçage | ENV-LFC-<sha256 court> déterministe (component.id + generatedAt) |
| Tip hash de chaîne | Dernier event de l’instance — permet vérification a posteriori |
Endpoints API
| Méthode | Chemin | Effet |
|---|---|---|
| GET | GET/stock-items/:id/lifecycle.json |
Restitution machine (auditeur XML/JSON, BI, intégrations). Auth X-Admin-Secret. |
| GET | GET/stock-items/:id/lifecycle.pdf |
Restitution humaine PDF/A. Content-Disposition: attachment avec nom basé sur PN + SN. |
Les deux endpoints sont protégés par AdminSecretGuard (V1 — basculera sur
RBAC Keycloak quand le module sera livré).
Exemple curl
# JSON
curl -H "X-Instance-Id: $INSTANCE_ID" \
-H "X-Admin-Secret: $ADMIN_SECRET" \
http://localhost:3000/stock-items/$STOCK_ITEM_ID/lifecycle.json
# PDF (téléchargement)
curl -o lifecycle.pdf \
-H "X-Instance-Id: $INSTANCE_ID" \
-H "X-Admin-Secret: $ADMIN_SECRET" \
http://localhost:3000/stock-items/$STOCK_ITEM_ID/lifecycle.pdf
Consultation en ligne (onglet « Récit de vie »)
La fiche article — /admin/stock-items/:id — embarque un onglet Récit de
vie disponible pour tout composant sérialisé. Il consomme directement
GET /stock-items/:id/lifecycle.json et affiche les mêmes données que le PDF,
organisées en sections lisibles :
- bandeau métadonnées (date de génération, numéro de traçage, cadre réglementaire, tip hash de chaîne)
- identification du composant (PN, SN, NCAGE, lot, condition, dates, document EASA Form 1 attaché)
- localisation actuelle (posé sur aéronef/conteneur ou en stock)
- historique des poses / déposes (tri chronologique inverse, installation active surlignée)
- snapshots compteurs (TSN/TSO/CSN saisis en R2)
- documents attachés (taille, type MIME, qui les a attachés)
- plans de maintenance applicables (PEA assignés)
- événements d’audit (5 plus récents par défaut, expansible)
Un bouton Régénérer force une nouvelle agrégation côté backend (le numéro
de traçage change car il dépend de l’instant generatedAt). Le bouton Récit
de vie dans le bandeau d’actions reste disponible en parallèle pour
télécharger le PDF d’archive.
Conformité PDF/A
La V1 produit un PDF standard (polices Helvetica embarquées, metadata
title/author/subject/producer). Une conformité PDF/A-3 stricte (metadata
XMP xmpMM:DocumentID, OutputIntent, ICC profiles) sera ajoutée en V2 quand
un partenaire pilote auditeur DGAC ou DSAÉ aura validé le rendu attendu.
Cadre réglementaire
Couvre la décision structurante D5 — flag regulatoryFramework exploité
runtime des décisions réglementaires Envergure.
Le rendu inclut un bandeau régime dans l’en-tête pour traçabilité de
l’instance ayant émis le récit (Part-145 civil, EMAR-FR défense, mixte).