Documentation Index
Fetch the complete documentation index at: https://docs.snakysec.com/llms.txt
Use this file to discover all available pages before exploring further.
Report Model — Schema v3.0
Spécification du format des artefacts d’audit générés par le moteur PowerShell.Nomenclature
<framework>:cis|scuba<product-area>:entra|exchange|teams|sharepoint|defender|purview<tenantId>: GUID tenant Entra<timestamp>: ISO 8601 compact (20260414T213045Z)
artifacts/audit/cis-entra-12345678-abcd-...-20260414T213045Z.json
Structure de l’artefact
Taxonomie des statuts (v3.0 — 7 valeurs)
| Statut | Signification | Conversion GapFinding |
|---|---|---|
compliant | Contrôle évalué, conforme | Non |
finding | Contrôle évalué, non conforme | Oui (→ OPEN) |
manual | Contrôle non automatisable — nécessite validation humaine | Non (guide dans manualValidation) |
not_applicable | Contrôle non applicable (licence manquante, hybrid-only sur cloud-only, etc.) | Non |
insufficient_perms | Permissions Graph insuffisantes pour évaluer | Non (audit log) |
not_assessed | Évaluation impossible (dépendance externe, endpoint indisponible) | Non |
error | Erreur technique (throw dans le check) | Non (audit log + Sentry) |
Import pipeline
platform/src/lib/import/index.ts :
- Télécharge l’artefact depuis GitLab (via API job artifact).
- Valide le schéma v3 (Zod).
- Upsert
AuditRunavec lesummary. - Insère/update
ControlResultpar contrôle. - Pour chaque
status: "finding", crée unGapFindingen étatOPEN(ou update si existant). - Génère les alertes (score dégradé, critical finding).
Génération rapports
À partir desControlResult + GapFinding en DB :
- PDF (
/api/v1/audits/:id/report) — Score exécutif + scores domaine + table contrôles + plan remédiation - Excel (
/api/v1/audits/:id/report/excel) — 6 onglets (Summary, Domain Scores, Framework Mapping, All Controls, Failed Controls, Remediation Plan) - HTML (
/api/v1/audits/:id/report/html) — Standalone (CSS/JS inline), search + filtres temps réel
Évolution schéma
- Breaking change sur le schéma → incrémenter
schemaVersionmajeur et supporter parallèlement l’ancien dans l’import pipeline pendant ≥ 1 release. - Nouveau champ optionnel → conserver
schemaVersion3.x.