Intégration Puppeteer (Export PDF)
Puppeteer est utilisé pour générer les exports PDF des rapports d'audit depuis GovernIA. Il pilote un navigateur Chrome headless pour convertir le HTML en PDF A4.
Ce que fait l'intégration
| Fonctionnalité | Description |
|---|---|
| Export rapport PDF | Génération PDF d'un rapport d'audit complet (constats, actions, scores, métadonnées) |
| Export PDFKit | Génération PDF alternative via PDFKit (sans navigateur), pour les exports structurés |
Prérequis
Puppeteer nécessite Chrome ou Chromium installé sur le serveur. En développement local, Puppeteer télécharge automatiquement Chromium. En production (Docker), Chrome est installé lors du build du conteneur.
Aucune variable d'environnement n'est requise — Puppeteer utilise le navigateur disponible sur le système.
Configuration Docker (production)
Le Dockerfile de l'API installe Chrome au démarrage du conteneur. Assurez-vous que votre image dispose de cette étape :
RUN apt-get update && apt-get install -y \
chromium \
fonts-liberation \
libappindicator3-1 \
libasound2 \
libatk-bridge2.0-0 \
libatk1.0-0 \
libcups2 \
libdbus-1-3 \
libgdk-pixbuf2.0-0 \
libnspr4 \
libnss3 \
libx11-xcb1 \
libxcomposite1 \
libxdamage1 \
libxrandr2 \
xdg-utils \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*En environnement conteneurisé sans root, les arguments
--no-sandboxet--disable-setuid-sandboxsont passés automatiquement par GovernIA.
Options d'export PDF
Les rapports sont exportés au format A4, fond inclus (couleurs et styles CSS préservés).
| Option | Valeur |
|---|---|
| Format | A4 |
| Fond d'écran | Activé (printBackground: true) |
| Taille CSS | Respectée (preferCSSPageSize: true) |
| Attente réseau | networkidle0 (attente que toutes les ressources soient chargées) |
Contenu d'un rapport PDF exporté
Un rapport GovernIA en PDF contient :
- En-tête / pied de page avec numérotation des pages
- Métriques clés : scores, taux de progression
- Constats : findings avec badges de risque et priorité
- Plan de remédiation : actions, assignations, statuts
- Sections de rapport rédigées : périmètre, méthodologie, axes d'amélioration
- Métadonnées : nom du client, contexte, date d'export
Dépannage
| Problème | Cause probable | Solution |
|---|---|---|
Error: Could not find Chrome | Chrome non installé | Vérifier que le Dockerfile installe bien Chromium (voir ci-dessus) |
| PDF généré vide ou blanc | Contenu HTML non chargé avant capture | Vérifier les logs — le timeout peut être trop court |
| Crash Puppeteer en conteneur | Sandbox Linux manquante | Vérifier que --no-sandbox est bien passé (géré automatiquement par GovernIA) |
| PDF tronqué | Page très longue, mémoire insuffisante | Augmenter la RAM disponible pour le conteneur (recommandé : 2 Go minimum) |
Erreur Navigation timeout | Page lente à charger | Normal si le rapport est volumineux — l'export peut prendre 10-20 secondes |
Ressources mémoire recommandées
L'export PDF lance un processus Chrome complet. En production :
| Charge | RAM recommandée pour le conteneur API |
|---|---|
| Peu d'exports simultanés | 1 Go |
| Usage normal | 2 Go |
| Exports fréquents / rapports longs | 4 Go |