Commit Graph

23 Commits

Author SHA1 Message Date
Manus
692fbbe912 Checkpoint: Correction du runtime Docker : Vite et sa configuration sont maintenant chargés uniquement en développement via imports indirects. Le bundle serveur de production ne référence plus Vite ni ses plugins ; 31 tests, TypeScript et build validés.
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 3m22s
2026-08-22 18:22:46 +00:00
Manus
147dd6e5a0 Merge remote-tracking branch 'prod-dsi/main'
# Conflicts:
#	server/emailImportService.ts
2026-08-22 10:39:08 +00:00
Manus
d729a94a96 Checkpoint: Correction robuste des doublons de factures : empreinte SHA-256 unique des PDF sources, détection globale avant import manuel/email/dossier/web, verrou contre les vérifications IMAP concurrentes, attente réelle de fin de traitement avant marquage lu, migration et tests de non-régression. 2026-08-22 10:31:54 +00:00
Manus CI
295bb26378 CI : workflow validate.yml, manifeste ci.required:true, garde VITEST, tests isolés 2026-08-21 11:15:58 +00:00
Manus
d8b2a8fe6f Checkpoint: Correction complémentaire : normalisation stricte des valeurs OAuth de loginMethod avant insertion DB, afin d’éviter les erreurs de troncature causées par les identifiants de plateforme externes. Ajout de tests associés et validation build complète. 2026-08-17 20:25:16 +00:00
Manus
54164b1b33 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. 2026-08-17 20:21:58 +00:00
Manus
6b83361056 Checkpoint: mysqldump n'est pas disponible dans le container Node.js. Remplacement par un dump SQL généré directement via mysql2 : SHOW CREATE TABLE + SELECT * pour chaque table, avec échappement correct des valeurs. 2026-08-08 10:52:58 +00:00
Manus
d3426c1663 Checkpoint: Correction de l'erreur "non authentifié" sur /api/db-backup : utilisation de parseCookies(req.headers.cookie) au lieu de req.cookies (qui nécessitait cookie-parser non installé). 2026-08-08 10:41:01 +00:00
Manus
4ce2d2877a Checkpoint: Ajout onglet Sauvegarde DB dans ImportSettings : endpoint POST /api/db-backup (mysqldump), GET /api/db-backup/:filename, procédures tRPC backup.list et backup.delete, composant BackupSection avec liste des sauvegardes et téléchargement. 2026-08-08 10:04:57 +00:00
Manus
711ce6b83a Checkpoint: Ajout du système de connecteurs web : table webImportSources, CRUD tRPC, page WebImportSources.tsx, endpoint /api/web-import/push-invoice, script cron SFR (scripts/web-import/sfr-connector.mjs) 2026-07-30 13:53:07 +00:00
Manus
827c9ec41e Checkpoint: Ajout de Google Gemini (gemini-2.0-flash) comme 3ème moteur IA : schéma DB mis à jour (enum aiProvider + colonne geminiApiKey dans userSettings et importSettings), llm.ts mis à jour avec routing vers l'API Google AI Studio (compatible OpenAI), fenêtre de configuration IA mise à jour avec 3 cartes (Mistral / Gemini / Manus) et champ clé API Gemini. 2026-07-27 15:55:07 +00:00
Manus
8ee10602d3 Checkpoint: Ajout de la connexion OAuth2 Microsoft 365 (Azure AD) : route callback /api/auth/azure/callback, bouton Microsoft sur la page de login, variables d'environnement Azure AD configurées 2026-07-07 05:54:46 -04:00
Manus
f49eadda2b feat: warningMessage quota IA dans rapports d'import + redémarrage auto services 2026-06-09 12:15:26 -04:00
Manus
8536c9a8aa fix: corriger URL Manus Forge de forge.manus.im vers forge.manus.ai 2026-05-05 09:31:54 -04:00
Manus
62b7a61bf5 Checkpoint: Ajout de la section "Moteur IA" dans les paramètres : sélecteur Mistral/Manus, champs clé API avec affichage masqué, persistance en DB, migration VPS appliquée 2026-04-15 08:04:54 -04:00
Manus
412da0e68f Checkpoint: Ajout du téléchargement groupé ZIP dans Factures BAP, bouton Re-générer dans Historique BAP, filtres Validées BAP / En attente BAP dans Factures BAP 2026-04-12 17:53:38 -04:00
Manus
ba3392b1e4 Checkpoint: La route /api/download-bap accepte maintenant un param filename et le met dans Content-Disposition (RFC 5987). Les fonctions downloadBapPdf dans InvoicesBAP.tsx et BapHistory.tsx passent le filename formaté dans l'URL. 2026-04-12 17:42:15 -04:00
Manus
d4fe15c23d Checkpoint: Correction du bouton téléchargement BAP : la route /api/download-bap utilise maintenant un query param pdfPath pour accepter les chemins complets avec sous-dossiers (ex: /storage/2026-04/BAP_xxx.pdf). Ajout d'une route de compatibilité qui cherche dans tous les sous-dossiers. Sécurité anti-path-traversal maintenue. 2026-04-12 10:31:18 -04:00
Manus
9d71f1e34a Checkpoint: Ajout du bouton de téléchargement direct du PDF annoté BAP : route Express /api/download-bap/:filename avec Content-Disposition attachment, bouton Télécharger dans InvoicesBAP (apparaît après validation), boutons Voir + Télécharger dans l'Historique BAP. Correction du layout PDF (2 colonnes) également incluse. 2026-04-12 10:05:02 -04:00
Manus
d32359fc10 Checkpoint: Ajout de la configuration des champs obligatoires pour le score LLM
Nouvelle fonctionnalité permettant de configurer quels champs sont obligatoires ou optionnels pour atteindre un score de reconnaissance de 100%.

Modifications:
- Nouvelle table llmFieldsConfig dans la base de données
- Routes tRPC pour gérer la configuration (getAll, updateField)
- Interface utilisateur dans la page Paramètres avec tableau et cases à cocher
- Modification du code d'extraction pour générer dynamiquement l'instruction de score
- Initialisation automatique des champs par défaut (supplierName, invoiceNumber, invoiceDate, totalAmount obligatoires)
- Tests unitaires pour valider la fonctionnalité

L'utilisateur peut maintenant personnaliser quels champs doivent être détectés pour qu'une facture atteigne 100% de score.
2026-02-13 03:39:41 -05:00
Manus
a56e6c58f4 Checkpoint: Correction du système d'authentification locale pour supporter le cookie auth_token.
Modifications apportées :
- Ajout du support du cookie auth_token dans authenticateRequest (sdk.ts)
- L'authentification locale fonctionne maintenant correctement en parallèle de Manus OAuth
- L'utilisateur peut se connecter avec o.pareige@itinova.org et le mot de passe Itinova69!

Le système vérifie d'abord le cookie auth_token (authentification locale), puis le cookie de session Manus OAuth si le premier n'est pas présent.
2026-01-08 08:43:05 -05:00
Manus
5a01860aba Checkpoint: Application complète de dématérialisation de facturation avec extraction IA (Mistral), authentification locale + Azure AD, stockage local, et export SFTP.
Fonctionnalités implémentées :
 Authentification locale (email/password) + Azure AD + Manus OAuth
 Upload drag-and-drop de fichiers PDF avec suivi en temps réel
 Extraction automatique avec Mistral AI (OCR + LLM)
 Détection de doublons (fournisseur, numéro, date)
 Score de qualité d'extraction (0-100)
 Tableau de bord avec statistiques
 Liste des factures avec recherche et filtres
 Paramètres utilisateur (LLM, keywords, SFTP)
 Historique des imports avec logs détaillés
 Gestion des utilisateurs (admin)
 Export SFTP manuel/automatique
 Stockage local avec organisation YYYY-MM
 Tests unitaires d'authentification

Architecture :
- Frontend : React 19 + Vite + TailwindCSS + Radix UI
- Backend : Express + tRPC + Drizzle ORM
- Base de données : MySQL (6 tables)
- IA : Mistral AI pour extraction
- Stockage : Local filesystem
- Export : SFTP

Pages :
- Login (choix local/Azure/Manus)
- Dashboard (statistiques)
- Upload (drag-and-drop)
- Invoices (liste avec recherche)
- Settings (LLM, keywords, SFTP)
- History (logs d'import)
- Users (gestion admin)
2026-01-08 06:02:07 -05:00
Manus
205b6061ef Initial project bootstrap 2026-01-08 05:47:56 -05:00