# 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 ```bash # 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)