Aller au contenu

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.

  1. Sidebar → Reports (sous MANAGE)
  2. É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
  3. É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)
  4. Cliquez Générer le rapport → job async démarre
  5. Attendre 10-60 s (selon fenêtre). Apparaît dans Mes rapports avec statut “prêt”
  6. Téléchargement : boutons PDF / JSONL.gz / .sig par ligne
TemplateContenu
executiveGraphique tendance Trust Score 30j, 3 tuiles KPI (score / critical ouverts / CVE noyau), top 5 incidents critiques récents, 1-2p total
technical_auditCover + graphique Trust Score + table hôtes-en-scope + EATs + alertes + CVE + kernel currency + annexe verify (8 sections)
per_applicationCover + métadonnées app + section SLA uptime + restart EATs pour cette app + dépendances + changements d’état récents
per_groupCover + tous hôtes du groupe + résumé alerte/EAT par hôte + breakdown Trust Score agrégé
msp_handoverCover + 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.

RôlePeut générerTemplates disponibles
Viewerseulement executivetéléchargements de ses propres rapports
Editorexecutive, technical_audit, per_application, per_grouptous les scopes
Adminles 5 templates incl. msp_handovertous les scopes

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.

Identique à l’Audit Pack mensuel :

  1. Worker stream les rows d’evidence vers <base>.jsonl.gz avec hash chain sur chaque ligne via sha256
  2. Manifest JSON avec hash_chain_root + counts + range + scope
  3. manifest_hash = sha256(manifest_json)
  4. Sign Ed25519 avec MONSYS_HUB_SIGNING_KEY_HEX<base>.sig
  5. 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>/.

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 jours
SELECT 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;
Fenêtre de terminal
# 1. Lister templates disponibles
curl 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 statut
curl https://app.monsys.ai/api/v1/reports/<id> \
-H "Authorization: Bearer $TOKEN"
# 4. Télécharger quand status=ready
curl -L https://app.monsys.ai/api/v1/reports/<id>/download?format=pdf \
-H "Authorization: Bearer $TOKEN" -o report.pdf
AspectAudit Pack mensuelReport Builder
TriggerAuto, 1er du mois 02:00 UTCOpérateur clique “Générer”
ScopeTenant entierTenant / group / app / tag / agents / actor
PériodeMois calendrier précédentCustom (max 365 jours)
Templates1 (full audit)5
GraphiquesNonOui (tendance Trust Score)
AudienceRapport NIS2 auditeur annuel/trimestrielBriefing 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.

  • 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