Skip to main content

Documentation Index

Fetch the complete documentation index at: https://snakysec.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

DEMO_CHECKLIST — Smoke test parcours démo (J1)

Cible : dérouler le script démo de 15–20 min sans friction visible. Scope : tout ce qui se voit à l’écran pendant la démo.

Parcours testé

  1. Landing / Login SSO
  2. Dashboard (score global, KPIs, graphs)
  3. Audits (list + detail + findings + remediation)
  4. Reports (PDF + Excel + HTML download)
  5. GRC documents (PSSI, Access Policy, Incident, Remediation Plan)
  6. Portal (vue client)
  7. Alerts / notifications

Frictions relevées

Légende priorité :
  • P0 — bloquant, visible pendant la démo, fix avant RDV
  • P1 — visible mais contournable, fix si temps
  • P2 — cosmétique, différer post-RDV
#ZoneFriction observéePrioritéNotes
1Logs serveurTurbopack spam node:fs not supported in Edge Runtime à chaque requête (instrumentation.ts:123)P1✅ Fixed — variable specifier pour hide static analysis
2Reverse proxyTraefik ne peut pas contacter le Docker daemon → aucun router pour app.localhost → TLS unrecognized_name → HTTPS cassé sur tous les domaines démoP0✅ Fixed — routers statiques dans dynamic.yml (indépendant du Docker provider)
3TLSCertificat mkcert absent du dossier docker/traefik/certs/ → Traefik démarre sans cert → tout HTTPS rejetéP0✅ Fixed — self-signed OpenSSL généré pour *.localhost + *.snakysec.com (suffit pour demo via Cloudflare tunnel)
4Login pageNo client configured for this domain. affiché sur app.localhost (bouton SSO absent)P1✅ Non bloquant pour la démo: sur snakysec.com, le client est résolu en DB → bouton SSO affiché. Fallback à investiguer si besoin hors-demo.
8Login pagefavicon.ico 404P2Cosmétique
9DashboardConsole error: Unsafe attempt to load URL https://app.localhost/login?callbackUrl=%2Fdashboard from frame with URL https://snakysec.com/dashboard. Domains, protocols and ports must match. + request visible dans NetworkP0Une requête (iframe/redirect auth?) pointe encore vers app.localhost. À tracer.
10Dashboard + FindingsAudit “SnakySec 11/04/2026” affiche 50 Failed controls mais /clients/snakysec/findings = All(0) OPEN(0) IN_PROGRESS(0) REMEDIATED(0) ACCEPTED_RISK(0) → les ControlResult.status=finding ne sont pas convertis en GapFinding trackés. Démo-killer.P0Pipeline import créé les ControlResult mais ne génère pas les GapFinding associés. À fixer.
11DashboardLangue mélangée FR/EN : “Dashboard”, “Active Tenants”, “Avg. Compliance”, “Open Alerts” en EN ; sidebar “Documents > Gouvernance / Conformité & RGPD / Accès & Identités” en FR. Pas de switch langue visible.P1Prospects PME FR — incohérence flagrante.
12DashboardSidebar “Documents” trop fournie (8 sous-entrées : Vue d’ensemble, Gouvernance, Conformité & RGPD, Accès & Identités, Incidents & Réponse, Technique, Monitoring & Reporting, Onboarding Client) — à revoir/grouperP1Structure navigation à simplifier pour démo.
13DashboardPlusieurs sections encore statiques (restes du début de dev) — attendu : dynamique (création/modification/suppression)P2Structurel, pas fixable en J1. Identifier les statiques et les cacher si non démo.
14UI globaleBesoin de polish UI (embelissement)P2Post-P0/P1. Design-review skill pertinent.
15Vue clientDashboard MSSP admin ≠ vue client — il faut tester séparément l’espace client (portal) avec un compte clientP0Étape dédiée du smoke test (déjà planifiée).
16Reports ExcelDownload → erreurP0✅ Fixed — Turbopack dev server n’avait jamais compilé les routes excel/route.ts et html/route.ts (créés après le premier start). Restart app force la découverte. Post-démo: ajouter un script de warm-up au démarrage dev.
17Reports HTMLDownload → erreurP0✅ Fixed — même root cause que #16.
28Reports License filterDropdown All License ne propose que E3 + E5 — manque Business Basic/Standard/Premium (cœur cible PME), A1/A3/A5 (édu), F1/F3 (frontline), add-ons (E5 Security/Compliance, EMS E3/E5, Defender P1/P2, Entra P1/P2, Intune P1/P2)P1Étendre la liste des licenseTier dans deriveLicenseTier() + seeds. Priorité Business Premium pour cible PME.
18Reports PDFDownload OK, nom fichier cohérent, FR + EN disponibles ✓Qualité à rehausser → voir #19
19Reports qualitéAttente prospect: “qualité juridique + technique, rapport consultant senior” — plan actuel (narrative deterministe + labels FR) est sous-dimensionnéP1Scope au-delà du plan Phase 1. Nécessite: sections juridiques (RGPD/NIS2), annexes techniques détaillées par contrôle, formulations consultant senior, disclaimer légal, méthodologie.
20Documents / GRC structureSection “Gouvernance” : 1 doc dispo (PSSI) + 3 “Bientôt/Planifié” (Charte Info/BYOD, Pol. Gestion Risques, PCA/PRA). Libellé “2 en préparation” ≠ 3 items non dispo (incohérent).P2Libellé à aligner ou cacher les items non-dispo pour la démo.
21PSSI générationDownload OK (~3s), PDF uniquement (Word absent)P1Ajouter export Word (CISO veut souvent modifier).
22PSSI contenuContenu “petite base” — attente: méthodologies officielles ANSSI/Gouvernement (guides PSSI type ANSSI, référentiels SecNumCloud, etc.) comme socle. Qualité rédactionnelle faible, gap important vs attente CISO (insatisfaction anticipée). Manque de détails.P0Refonte templates GRC sur base méthodos officielles. Nicolas fournira les ref ANSSI quand on passera à l’implémentation.
23PSSI langueFR uniquement — attente: FR + EN.P1Même pattern que Reports (LABELS_FR / LABELS_EN + reportLanguage client).
24PSSI brandingBranding faibleP1Logo client + couleurs primaires + header/footer identifiables.
25GRC section complète (Conformité & RGPD, Accès & Identités, Incidents & Réponse, Technique, Monitoring & Reporting, Onboarding Client)Section “assez légère” globalement — à revoir en profondeur (contenu, structure, qualité) sans forcément supprimer. Gros chantier.P0 (scope chantier)Refonte globale post-démo. Démo: sélectionner 1-2 docs vitrine qualité senior et cacher le reste ou marquer “Roadmap” honnêtement.
26Portal client/portal redirige MSSP_ADMIN vers /dashboard → impossible de voir la vue client. Bug logique dans portal/page.tsx:63-65 : clientIds || [] transforme null(=all) en [] → redirect. MSSP admin n’a aucun moyen de prévisualiser le portail client.P0Fix: gérer le cas admin (null = all clients) + ajouter un “Impersonate” query param ?clientId=xxx pour la démo = argument commercial (“je vois ce que voit mon client”).
27AlertsPage présente, 1 alerte “Audit échoué SnakySec” (pipeline GitLab) datant 2j. Mark-as-read OK. Fonctionnalités très limitées: pas de filtres (sévérité/client/type), pas de canaux (email/Teams/SMS), pas de snooze/archive, pas de règles configurables. Peu d’intérêt démo en l’état.P1Roadmap alertes. Pour la démo: au moins peupler 2-3 alertes types variées (score dégradé, nouveau finding critique, licence expirée) pour montrer du volume.
7NextAuthsnakysec.com redirigeait vers app.localhost/login (AUTH_URL hardcodé dans app.dev.yml override trustHost:true) → démo impossible sur le vrai domaineP0✅ Fixed — AUTH_URL=https://snakysec.com via var ${AUTH_URL:-...}. trustHost:true ne récupère pas le Host à travers Cloudflare→Traefik→Next (OAuth redirect_uri partait sur localhost:3000).
5Login pageMessages en anglais (No client configured...)P1Prospects PME FR
6Login pageBranding sparse (shield icon + titre, pas de visuel SnakySec riche)P2Polish post-P0

Actions suivantes

  • Fixer tous les P0
  • Re-smoke test complet
  • Répétition chronométrée

Synthèse priorisée

P0 — à fixer avant la démo (blockers visibles sur le parcours)

#ZoneAction
10FindingsAjouter la création de GapFinding dans le pipeline d’import (lib/import/index.ts) + backfill sur l’audit existant. Fixe aussi les sections downstream (Reports PDF, GRC Remediation Plan, dashboard KPIs, portal).
16Reports ExcelReproduire l’erreur côté serveur/client, diagnostiquer, fixer.
17Reports HTMLIdem.
26Portal admin viewportal/page.tsx:63-65 : gérer clientIds === null (admin) + ajouter ?clientId=xxx impersonation pour la démo.
22PSSI qualitéGros chantier contenu — refondre sur méthodos ANSSI/Gouvernement. Pour la démo: soigner la PSSI (unique doc vitrine “Disponible”) + marquer les autres honnêtement “Roadmap”.
25Documents autres sectionsDémo: cacher les sous-sections non présentables ou flagger “Roadmap” clairement.

P1 — visible mais contournable (fix si temps, sinon à mentionner dans le pitch)

#ZoneAction
11Dashboard langueLabels FR/EN mixtes + pas de switch. Aligner sur la règle reportLanguage du plan.
12Sidebar Documents8 sous-entrées → grouper/simplifier.
19Reports qualité “senior”Scope au-delà du plan Phase 1. Phase 2 post-démo.
21PSSI exportAjouter export Word (attente CISO pour modifier).
23PSSI langue FR+ENMême pattern que Reports.
24PSSI brandingLogo client + couleurs primaires + header/footer.
27AlertsPeupler 2-3 alertes types variées pour la démo (score dégradé, nouveau finding critique, licence expirée).
4Login fallback app.localhostNon-bloquant démo (sur snakysec.com le client matche). Investiguer si besoin hors-demo.
5Login EN messagesTraduire les messages d’erreur.

P2 — cosmétique / post-démo

#ZoneAction
6Login brandingPolish visuel.
8Favicon 404Ajouter un favicon.
13Dashboard statiqueSections “restes début dev” — cacher les non-dynamiques pour la démo.
14UI polish globalDesign review post-P0.
20Label “2 en préparation”Aligner avec le nb réel de docs “Bientôt/Planifié”.

Bilan smoke test

  • P0 résolus pendant le smoke test : #1 logs Turbopack, #2 Traefik routers, #3 TLS cert, #7 AUTH_URL redirect.
  • P0 restants à fixer : 6 items (findings pipeline, Reports Excel/HTML, Portal admin, PSSI qualité, GRC scope, cohérence docs).
  • Démo-killers identifiés : #10 (findings = 0 alors que 50 échecs visibles), #16/#17 (Excel/HTML cassés), #26 (portal invisible pour l’admin).
  • Attentes qualité explicites (Nicolas) :
    • Rapports = qualité consultant senior juridique + technique (pas dump technique).
    • Documents GRC = base méthodos officielles ANSSI/Gouvernement (PSSI, SecNumCloud, EBIOS, NIS2, LPM). Nicolas fournira les refs à l’implémentation.
  • Scope chantier > plan Phase 1 : la refonte GRC + la qualité “senior” des rapports excèdent le plan jazzy-sauteeing-babbage.md actuel. À replanifier.
  • Stack dev : Docker Desktop Windows workarounds OK temporairement ; pré-prod future = MacBook Pro, prod = VPS. Ne pas sur-optimiser l’env actuel.