Report Builder
Le Report Builder produit des evidence packs personnalisés sur la même infrastructure que l’Audit Pack mensuel : JSONL.gz + PDF + .sig, signés Ed25519 avec la même hash chain. Différence : vous choisissez template, scope et plage de dates.
Dans le tableau de bord
Section intitulée « Dans le tableau de bord »- Sidebar → Reports (sous MANAGE)
- Étape 1 : choisir un des 5 templates (cards) :
- Résumé exécutif (1-2p) — vue CISO/board avec graphique Trust Score
- Audit technique (12-20p) — pour auditeur NIS2/CRA
- Par application (4-6p) — deep-dive une app : SLA + CVE + EAT
- Par groupe (6-10p) — tous les hôtes d’un groupe avec agrégés
- Handover MSP (4-8p) — ce que votre équipe MSP a fait dans un tenant
- Étape 2 : remplir scope + dates :
- Titre (facultatif, texte libre)
- Plage de dates (défaut 30 derniers jours, max 365)
- Champs de scope selon le template :
- tags (séparés par virgule)
- group_id (UUID de /groups)
- app_id (UUID de /apps)
- msp_actor (domaine email, pour msp_handover)
- agent_ids (séparés par virgule)
- Cliquez Générer le rapport → job async démarre
- Attendre 10-60 s (selon fenêtre). Apparaît dans Mes rapports avec statut “prêt”
- Téléchargement : boutons PDF / JSONL.gz / .sig par ligne
Ce qu’il y a dans chaque template
Section intitulée « Ce qu’il y a dans chaque template »| Template | Contenu |
|---|---|
| executive | Graphique tendance Trust Score 30j, 3 tuiles KPI (score / critical ouverts / CVE noyau), top 5 incidents critiques récents, 1-2p total |
| technical_audit | Cover + graphique Trust Score + table hôtes-en-scope + EATs + alertes + CVE + kernel currency + annexe verify (8 sections) |
| per_application | Cover + métadonnées app + section SLA uptime + restart EATs pour cette app + dépendances + changements d’état récents |
| per_group | Cover + tous hôtes du groupe + résumé alerte/EAT par hôte + breakdown Trust Score agrégé |
| msp_handover | Cover + toutes actions exécutées par l’équipe MSP (filtre domaine email actor) — “ce qu’on a fait ce mois-ci” |
Tous templates ont une annexe verify avec manifest_hash + signature
Ed25519 + commande verify-CLI. Vérifiable hors-ligne par auditeur
externe avec monsys-verify-eat-linux-x64 verify-pack.
Qui peut faire quoi
Section intitulée « Qui peut faire quoi »| Rôle | Peut générer | Templates disponibles |
|---|---|---|
| Viewer | seulement executive | téléchargements de ses propres rapports |
| Editor | executive, technical_audit, per_application, per_group | tous les scopes |
| Admin | les 5 templates incl. msp_handover | tous les scopes |
Graphiques dans le PDF
Section intitulée « Graphiques dans le PDF »Pas de lib externe, pas de browser headless. Dessin direct avec primitives gofpdf :
- Line chart : tendance Trust Score 30j avec ticks axe-y (0/50/100) et labels date sur axe-x
- Bar chart : volume d’alertes par jour (à venir en v1.1)
Style pixel-grid : lignes 1px, ticks monospace, pas de gridlines sauf au milieu. S’aligne sur le branding existant.
Pipeline cryptographique
Section intitulée « Pipeline cryptographique »Identique à l’Audit Pack mensuel :
- Worker stream les rows d’evidence vers
<base>.jsonl.gzavec hash chain sur chaque ligne via sha256 - Manifest JSON avec hash_chain_root + counts + range + scope
manifest_hash = sha256(manifest_json)- Sign Ed25519 avec
MONSYS_HUB_SIGNING_KEY_HEX→<base>.sig - PDF rendu depuis les mêmes données + annexe verify expliquant la chain
Pattern filename : <template_kind>-<8-char-id>.jsonl.gz/.pdf/.sig. Rapports
on-demand et set mensuel 2026-04.* cohabitent dans
/var/lib/monsys/audit-packs/<tenant_id>/.
Rétention de stockage
Section intitulée « Rétention de stockage »Les rapports ne sont pas auto-supprimés. L’Audit Pack mensuel garde minimum 12 mois (selon interprétation NIS2 Art21 §2(c)). Rapports on-demand restent jusqu’à suppression manuelle. Pour gestion du disque :
-- Trouver rapports on-demand inutilisés plus anciens que 90 joursSELECT id, template_kind, title, created_at FROM audit_packs WHERE tenant_id = $1::UUID AND template_kind <> 'monthly_full' AND created_at < NOW() - INTERVAL '90 days' ORDER BY created_at;Ou via API (avancé — pour automatisation)
Section intitulée « Ou via API (avancé — pour automatisation) »# 1. Lister templates disponiblescurl https://app.monsys.ai/api/v1/reports/templates \ -H "Authorization: Bearer $TOKEN"
# 2. Générer un rapport per-app (async)curl -X POST https://app.monsys.ai/api/v1/reports/generate \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "template_kind": "per_application", "title": "Q1 2026 review — checkout-api", "range_start": "2026-01-01", "range_end": "2026-03-31", "scope_filter": {"app_id": "<uuid>"} }'
# 3. Poll le statutcurl https://app.monsys.ai/api/v1/reports/<id> \ -H "Authorization: Bearer $TOKEN"
# 4. Télécharger quand status=readycurl -L https://app.monsys.ai/api/v1/reports/<id>/download?format=pdf \ -H "Authorization: Bearer $TOKEN" -o report.pdfAudit Pack mensuel vs Report Builder
Section intitulée « Audit Pack mensuel vs Report Builder »| Aspect | Audit Pack mensuel | Report Builder |
|---|---|---|
| Trigger | Auto, 1er du mois 02:00 UTC | Opérateur clique “Générer” |
| Scope | Tenant entier | Tenant / group / app / tag / agents / actor |
| Période | Mois calendrier précédent | Custom (max 365 jours) |
| Templates | 1 (full audit) | 5 |
| Graphiques | Non | Oui (tendance Trust Score) |
| Audience | Rapport NIS2 auditeur annuel/trimestriel | Briefing CISO ad-hoc / review per-app / handover MSP client |
Pas un remplacement — complément. Le pack mensuel reste la “baseline compliance” ; le Report Builder est pour les moments où vous voulez PAS un rapport calendaire mais une question spécifique avec evidence audit-grade.
Ce qui n’appartient PAS à cette page
Section intitulée « Ce qui n’appartient PAS à cette page »- Audit Pack mensuel (auto-généré) → voir Monthly Audit Pack
- Transparency log (log signé de chaque EAT) → voir Transparency log
- Auditor workbench (login lecture-seule pour auditeur externe) → voir Auditor