Documentation

Panoptic audite un site sur sa production et, si vous connectez le dépôt, sur son code source. Chaque constat est vérifié, chiffré en euros et priorisé. Cette page couvre le scan gratuit, le CLI, le MCP, l'action GitHub, l'API et l'auto-hébergement.

Démarrer

Le plus rapide : ouvrez la console et collez l'URL de votre site.

# scan gratuit, sans compte
https://panopticaudit.com/console/

Le scan gratuit analyse une page en boîte noire (production, sans accès au code) sur les 15 domaines et renvoie un score de santé et les constats. Les correctifs détaillés font partie de l'audit complet.

Gratuit vs complet

CapacitéScan gratuitAudit complet
Périmètre1 page, productionMulti-pages + code source
Agents actifs~11 (prod)15 (dont sécurité code, dépendances, archi, données)
Rendu JS (SPA)nonoui (Chromium)
axe-core / Lighthouse réelsnonoui
Scan authentifié (derrière login)nonoui
Correctifs détaillés + PRnonoui

CLI

Auditez depuis le terminal ou une CI. Le CLI exécute le moteur localement.

node cli/panoptic.mjs scan https://exemple.fr
node cli/panoptic.mjs scan https://exemple.fr --pages 10
node cli/panoptic.mjs scan https://exemple.fr --repo . --json > audit.json
node cli/panoptic.mjs scan https://exemple.fr --fail-on high   # exit 1 si finding >= high
OptionEffet
--pages NCrawl multi-pages (1-30). >1 active axe-core / Lighthouse.
--repo <chemin>Audite aussi le code source local (secrets, CVE, architecture).
--cookie / --bearerScan authentifié (session derrière un login).
--jsonSortie JSON brute (pour scripts ou pipe vers un agent IA).
--fail-on <sev>Code de sortie ≠ 0 si un finding atteint la sévérité (casse le build en CI).
--quietSans progression.

MCP — Claude Code, Cursor

Panoptic s'expose comme outil MCP : votre agent de code lance l'audit puis corrige les constats lui-même. Le moteur reste déterministe — votre code n'est jamais envoyé à un LLM tiers.

# Claude Code
claude mcp add panoptic -- node /chemin/panoptic-audit/mcp/server.mjs

L'agent dispose alors de l'outil panoptic_scan :

panoptic_scan({
  url: "https://exemple.fr",
  maxPages: 10,          // optionnel
  repoPath: ".",         // optionnel: audite le code
  failOn: "high"         // optionnel: renvoie shouldFail
})

Il reçoit les constats vérifiés (sévérité, localisation, correctif) au format texte et structuré, puis peut appliquer les corrections.

Action GitHub

Auditez à chaque déploiement et cassez le build sur régression.

- uses: Chakirbader13/panoptic@main
  with:
    url: https://mon-site.fr
    pages: 10
    fail-on: high

Slack & Jira

Sur l'offre continue, une régression (finding ≥ medium apparu depuis le dernier déploiement) déclenche une alerte Slack et/ou un ticket Jira — uniquement les régressions, pas tout l'audit. Configuration côté serveur via notify dans la requête d'audit, ou les variables d'environnement SLACK_WEBHOOK / JIRA_*.

Audit complet (code + production)

Connectez un dépôt Git : Panoptic le clone en lecture seule, l'analyse le temps de l'audit, puis le supprime. Il relie alors un symptôme en production à sa cause dans le code (fichier:ligne).

# via l'API (voir Référence API)
POST /api/audits
{ "target": "https://exemple.fr", "repoUrl": "https://github.com/org/repo", "maxPages": 10 }

Les agents supplémentaires activés avec le code : sécurité applicative (semgrep + secrets), dépendances (CVE via OSV), architecture, données.

Comptes & équipe

Le dashboard (offre payante) utilise un compte : créez-le avec un email et un mot de passe, puis vos audits et tendances y sont rattachés et isolés.

  • Rôles : owner (gère l'équipe et les clés), member (lance des audits), viewer (lecture seule).
  • Clés d'API : un owner peut générer des clés (pour le CLI/CI) avec un rôle. Envoyées via l'en-tête x-api-key.
  • Session : le token utilisateur voyage dans l'en-tête Authorization: Bearer.

Référence API

Base : https://panoptic-audit.onrender.com. Authentification : Authorization: Bearer <token> (compte) ou x-api-key: <clé> (CLI/CI).

MéthodeRouteRôle
POST/api/auth/signup · /api/auth/loginpublic
GET/api/metous
POST/api/audits — lance un audit {target, repoUrl?, maxPages?, auth?, businessParams?}member+
GET/api/audits — liste les audits du comptetous
GET/api/audits/:id — un audit complettous
GET/api/audits/:id/events — progression live (SSE)tous
GET/api/audits/:id/report — rapport HTML/PDFtous
GET/api/audits/:id/fixbundle — correctifs (md)tous
POST/api/audits/:id/pr — ouvre une pull requestmember+
GET/api/trends?target= — tendances par déploiementtous
GET/api/team · POST /api/team/members · /api/team/keysowner
# exemple: lancer un audit puis suivre la progression
curl -X POST https://panoptic-audit.onrender.com/api/audits \
  -H "authorization: Bearer $TOKEN" -H "content-type: application/json" \
  -d '{"target":"https://exemple.fr","maxPages":10}'

Auto-hébergement

Le backend est un serveur Node sans framework (server/server.mjs), déployable via le Dockerfile et render.yaml fournis. Le scan gratuit tourne en fonction serverless (Netlify).

VariableRôle
SUPABASE_URL · SUPABASE_SERVICE_KEYPersistance + comptes (sinon stockage local éphémère).
PANOPTIC_BROWSERoff coupe axe-core/Lighthouse/rendu JS (coupe-circuit coût).
GITHUB_TOKENOuverture réelle des pull requests (sinon dry-run).
SLACK_WEBHOOK · JIRA_*Alertes de régression.
AGENT_CONCURRENCYConcurrence du fan-out des agents (défaut 3).
Le clone de dépôt est éphémère (git clone --depth 1, HTTPS, supprimé après l'audit). Aucun secret client n'est stocké. Voir la page Sécurité.

Les 15 agents

FamilleAgents
TechniqueSécurité applicative · Code & architecture · Infra/DevOps · Données & BDD · Dépendances/supply-chain · Performance/CWV
VisibilitéSEO technique · GEO (visibilité IA) · Analytics · Email/délivrabilité
HumainAccessibilité (WCAG) · UX/parcours · Contenu/i18n
RisqueJuridique/RGPD · CRO/conversion

Sans dépôt connecté, les agents qui nécessitent le code (dépendances, architecture, données, sécurité complète) ne peuvent pas tout évaluer : ils sont marqués « non évalué » dans le rapport plutôt que notés à tort.

Lire un constat

Chaque constat porte une sévérité (critique, élevé, moyen, faible, info), une localisation (fichier:ligne ou URL), une preuve, un correctif, un effort et un verdict de vérification :

  • confirmé — reproduit indépendamment depuis la reconnaissance, ou observé en live avec preuve.
  • plausible — affirmé mais non reproductible ici : à confirmer (priorité pondérée à la baisse).
  • rejeté — la reconnaissance contredit le constat (faux positif) : exclu du score et du rapport.

Les montants en euros sont des estimations, toujours étiquetées comme telles : fourchette par gravité, ou calibrées sur votre trafic et la valeur d'une conversion si vous les fournissez.