docs: initialize CLAUDE.md for AuditShield
Some checks failed
Deploy / deploy (push) Failing after 9s

This commit is contained in:
2026-03-21 17:06:45 +01:00
parent 080952129b
commit 1ff3c15ea9

View File

@@ -1,60 +1,84 @@
# [NOM DU PROJET] # AuditShield
## Projet ## Projet
[Une phrase : ce que fait l'app, pour qui, pourquoi.] 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 ## Stack
- Runtime : Node 20 / Python 3.11 / ... - Frontend : Next.js 14 + Tailwind + shadcn/ui
- Framework : ... - Backend : FastAPI (Python 3.11)
- Base de données : MariaDB / PostgreSQL / SQLite - Base de données : PostgreSQL
- Déploiement : Docker → Synology NAS (rigolet.tech) - ORM : SQLAlchemy + Alembic (migrations)
- Auth : JWT + bcrypt
- PDF : WeasyPrint
- Déploiement : Docker → Synology NAS ou VPS (rigolet.tech)
## Structure ## Structure
``` ```
src/ frontend/
components/ # Exemple de composant : src/components/UserCard.tsx app/ # Next.js App Router
api/ # Exemple de route : src/api/users/route.ts components/ # Composants réutilisables
stores/ # State management 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/
docker-compose.yml docker-compose.yml
.gitea/ docker-compose.prod.yml
workflows/
deploy.yml
``` ```
## Commandes ## Commandes
```bash ```bash
npm install # Installer les dépendances # Frontend
npm run dev # Lancer en développement cd frontend && npm install && npm run dev
npm run build # Build production
npm test # Lancer UN test ciblé, pas toute la suite # Backend
npm run typecheck # IMPORTANT : lancer après chaque série de modifications 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 ## Code style
- ES modules (import/export), jamais CommonJS (require) - ES modules (import/export), jamais CommonJS
- Functional components + hooks uniquement, jamais de class components - Functional components + hooks uniquement
- TypeScript strict activé - TypeScript strict sur le frontend
- Destructure les imports quand possible - Type hints Python obligatoires sur le backend
- IMPORTANT : ne jamais considérer une tâche terminée sans typecheck qui passe - IMPORTANT : typecheck après chaque série de modifications
## Git ## Git
- Branches : main (prod) → dev (dev) - Branches : main (prod) → dev → feature/xxx
- Commits : feat: / fix: / docs: / refactor: / chore: - Commits : feat: / fix: / docs: / refactor: / chore:
- IMPORTANT : toujours créer une nouvelle branche pour chaque tâche - IMPORTANT : toujours créer une branche pour chaque tâche
- IMPORTANT : ne jamais pusher directement sur main - IMPORTANT : ne jamais pusher directement sur main
## Déploiement ## Déploiement
Pipeline automatique via Gitea Actions. Gitea Actions → Docker → NAS ou VPS selon le client
Chaque push sur develop déclenche un déploiement sur le NAS. Voir @docker/docker-compose.yml et @.gitea/workflows/deploy.yml
Voir @.gitea/workflows/deploy.yml pour le détail du pipeline.
## Références
- Vue d'ensemble du projet : @README.md
- Variables d'environnement : @.env.example
## Ce que Claude doit savoir sur CE projet ## Ce que Claude doit savoir sur CE projet
- [Ajoute ici les erreurs que Claude répète spécifiquement sur ce projet] - Les scans sont des opérations longues → utiliser des jobs asynchrones (Celery ou BackgroundTasks FastAPI)
- [Ex : "ne pas utiliser axios, on utilise fetch natif"] - Le rapport PDF doit être compréhensible par un dirigeant non-technique
- [Ex : "la BDD utilise snake_case, le code TypeScript utilise camelCase"] - Toujours traduire les CVE en langage clair dans les rapports
- [Ex : "les tests sont dans __tests__/, pas dans src/"] - 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)