Files
AuditShield/CLAUDE.md
Vincent 1ff3c15ea9
Some checks failed
Deploy / deploy (push) Failing after 9s
docs: initialize CLAUDE.md for AuditShield
2026-03-21 17:06:45 +01:00

2.9 KiB

AuditShield

Projet

Outil d'audit infrastructure et sécurité pour clients MSP. Permet de lancer des scans réseau, vulnérabilités et pentest automatisés, avec suivi des actions et génération de rapports exportables (PDF + dashboard web) compréhensibles pour des clients non-techniques.

Stack

  • Frontend : Next.js 14 + Tailwind + shadcn/ui
  • Backend : FastAPI (Python 3.11)
  • Base de données : PostgreSQL
  • ORM : SQLAlchemy + Alembic (migrations)
  • Auth : JWT + bcrypt
  • PDF : WeasyPrint
  • Déploiement : Docker → Synology NAS ou VPS (rigolet.tech)

Structure

frontend/
  app/              # Next.js App Router
  components/       # Composants réutilisables
  lib/              # Utilitaires, API client
backend/
  api/              # Routes FastAPI
  scanners/         # Orchestration Nmap, OpenVAS, Metasploit, AD
  models/           # Modèles SQLAlchemy
  reports/          # Génération PDF
docker/
  docker-compose.yml
  docker-compose.prod.yml

Commandes

# Frontend
cd frontend && npm install && npm run dev

# Backend
cd backend && pip install -r requirements.txt && uvicorn main:app --reload

# Docker complet
docker compose -f docker/docker-compose.yml up -d

# Migrations BDD
cd backend && alembic upgrade head

# Tests
pytest backend/tests/

Modèle de données

  • Client : id, nom, contact, créé_le
  • Audit : id, client_id, statut, date_début, date_fin, score_global
  • Cible : id, audit_id, type (IP/domaine/subnet), valeur
  • Vulnérabilité : id, audit_id, criticité (critique/important/modéré/faible), titre, description, recommandation
  • Action : id, vulnérabilité_id, statut (ouvert/en_cours/résolu), assigné_à, note

Sécurité IMPORTANT

  • Jamais de credentials dans le code, toujours via .env
  • Les scans ne se lancent QUE sur des cibles validées par l'utilisateur
  • Logs de toutes les actions de scan en BDD
  • Rate limiting sur toutes les routes API

Code style

  • ES modules (import/export), jamais CommonJS
  • Functional components + hooks uniquement
  • TypeScript strict sur le frontend
  • Type hints Python obligatoires sur le backend
  • IMPORTANT : typecheck après chaque série de modifications

Git

  • Branches : main (prod) → dev → feature/xxx
  • Commits : feat: / fix: / docs: / refactor: / chore:
  • IMPORTANT : toujours créer une branche pour chaque tâche
  • IMPORTANT : ne jamais pusher directement sur main

Déploiement

Gitea Actions → Docker → NAS ou VPS selon le client Voir @docker/docker-compose.yml et @.gitea/workflows/deploy.yml

Ce que Claude doit savoir sur CE projet

  • Les scans sont des opérations longues → utiliser des jobs asynchrones (Celery ou BackgroundTasks FastAPI)
  • Le rapport PDF doit être compréhensible par un dirigeant non-technique
  • Toujours traduire les CVE en langage clair dans les rapports
  • La BDD utilise snake_case, le frontend TypeScript utilise camelCase
  • Les criticités : critique (CVSS 9-10), important (7-8.9), modéré (4-6.9), faible (0-3.9)