Files
Priceflow/implementation_plan.md
T
Michael 6cf7f98843 feat: Optimisation performance (Async DB) et Ajout Rapport Analyse
- Passage des requêtes DB en asynchrone dans improved_search_service pour éviter le blocage de l'Event Loop.
- Ajout du Rapport d'Analyse Technique complet.
- Sécurisation CORS (best effort).
- Ajout Walkthrough et Implementation Plan.
2026-01-07 19:43:42 +01:00

48 lines
2.4 KiB
Markdown

# Plan d'Implémentation - Correctifs de Sécurité et Performance
Ce plan vise à résoudre les vulnérabilités critiques et les goulots d'étranglement de performance identifiés dans le rapport d'analyse technique.
## User Review Required
> [!IMPORTANT]
> **Action Utilisateur Requise :** Vous devrez créer un fichier `.env` à la racine du projet en copiant `.env.example` et en y insérant vos vrais secrets (API Keys, Mots de passe). Je ne peux pas connaître vos mots de passe sécurisés.
> [!WARNING]
> **Changement de Configuration :** Le fichier `docker-compose.yml` sera modifié pour ne plus contenir de secrets en clair. Le redémarrage des conteneurs sera nécessaire.
## Proposed Changes
### Configuration & Sécurité
#### [NEW] [.env.example](file:///c:/Users/Jacques/Git/Priceflow-1/.env.example)
- Création d'un modèle de fichier d'environnement documentant toutes les variables requises.
#### [MODIFY] [docker-compose.yml](file:///c:/Users/Jacques/Git/Priceflow-1/docker-compose.yml)
- Remplacement des valeurs harcodées par `${VARIABLE}`.
- Suppression de la clé API OpenRouter en clair.
- Suppression du mot de passe DB en clair.
#### [MODIFY] [app/main.py](file:///c:/Users/Jacques/Git/Priceflow-1/app/main.py)
- Restriction de la configuration CORS.
- Chargement sécurisé de la configuration.
### Efficience & Performance
#### [MODIFY] [app/services/improved_search_service.py](file:///c:/Users/Jacques/Git/Priceflow-1/app/services/improved_search_service.py)
- **Problème :** Appels DB bloquants (`db.query`) dans une fonction `async`.
- **Solution :** Mettre les appels DB dans un threadpool pour ne pas bloquer la boucle d'événements principale.
- **Détail :** Utilisation de `fastapi.concurrency.run_in_threadpool` pour encapsuler les accès DB synchrones.
#### [MODIFY] [app/routers/search.py](file:///c:/Users/Jacques/Git/Priceflow-1/app/routers/search.py)
- Adaptation de l'appel au service pour gérer correctement l'asynchronisme.
## Verification Plan
### Automated Tests
- Vérification que l'application démarre avec les variables d'environnement.
- Test de charge léger sur l'endpoint de recherche pour confirmer que l'interface ne "gèle" pas pendant le chargement (grâce au fix async).
### Manual Verification
- Vérifier que `docker-compose config` n'affiche plus de secrets.
- Vérifier les logs pour confirmer le chargement correct de la configuration.