Checkpoint: Audit technique : suppression des composants, scripts et dépendances inutilisés ; chargement différé des pages ; génération de sauvegardes SQL robuste par lots ; centralisation des contrôles d’accès ; sécurisation des cookies Azure et imports web ; documentation de maintenance et 5 tests de non-régression ajoutés.

This commit is contained in:
Manus
2026-08-17 20:21:58 +00:00
parent 6b83361056
commit 54164b1b33
27 changed files with 371 additions and 4369 deletions

27
docs/maintenance.md Normal file
View File

@@ -0,0 +1,27 @@
# Notes de maintenance
## Stockage et sauvegardes
Les fichiers PDF et les exports de sauvegarde sont des **données dexécution**. Ils sont volontairement exclus de Git par `storage/` et `backups/` afin quaucune facture ni sauvegarde ne soit envoyée au dépôt source. En recette et en production, ces dossiers doivent être montés sur des volumes Docker persistants.
Le module `server/databaseBackup.ts` produit un dump SQL autonome sans dépendre de `mysqldump`. Il exporte la structure de chaque table puis ses données par lots de 500 lignes. Il conserve au plus dix fichiers `.sql` locaux ; une sauvegarde est également téléchargée immédiatement depuis linterface.
## Authentification et accès
Les routes de téléchargement BAP, de sauvegarde DB et de récupération de sauvegardes vérifient désormais la session JWT `auth_token`. Les sauvegardes DB sont strictement réservées aux administrateurs. Les cookies utilisent `Secure; SameSite=None` derrière HTTPS et basculent vers `SameSite=Lax` en HTTP local pour rester compatibles avec les navigateurs.
## Imports web
Lendpoint dimport web accepte uniquement des PDF de 20 Mo maximum, valide len-tête `%PDF`, normalise le nom du fichier et sauvegarde le document dans le stockage persistant avant analyse IA. Les erreurs détaillées restent dans les logs du serveur ; lAPI retourne un message générique pour ne pas exposer de secret ou de détail dinfrastructure.
## Contrôles avant livraison
Avant chaque livraison, exécuter les commandes suivantes depuis la racine du projet :
```bash
pnpm test
pnpm run check
pnpm run build
```
Les scripts ponctuels dexploitation ou contenant des identifiants ne doivent jamais rester dans le répertoire du projet ni être ajoutés au dépôt.