Feature #1258
openAutoriser tous les types de fichiers en pièces jointes des factures avec limite de taille
0%
conversation:90
Description
### Problème
Actuellement, la plateforme Scobby n'accepte que les images (JPG, PNG, etc.) en pièces jointes lors de l'ajout d'une facture. Les utilisateurs ne peuvent pas déposer des fichiers PDF ou d'autres formats, ce qui limite leur capacité à joindre des documents pertinents.
### Contexte
- **Localisation** : La restriction se situe dans la section « Ajout de pièces jointes » d'une facture, accessible depuis la page dédiée aux factures.
- **Demande client** : Autoriser **tous les types de fichiers** sans restriction de format, avec une **taille maximale de 10 Mo par fichier**, pour tous les rôles utilisateurs.
- **Contraintes de sécurité** : Le ticket #228 met en évidence une vulnérabilité liée à la bibliothèque `pdfjs-dist`, nécessitant une mise à jour. Cependant, la demande client priorise la flexibilité, ce qui implique de gérer les risques potentiels (ex. : fichiers malveillants) en arrière-plan.
### Comportement proposé
- Permettre le téléversement de **n'importe quel type de fichier** (PDF, Word, Excel, ZIP, etc.) en pièce jointe d'une facture.
- Appliquer une **limite de taille de 10 Mo par fichier** et afficher un message d'erreur clair si cette limite est dépassée (*ex. : « Le fichier dépasse la limite de 10 Mo »*).
- **Aucune confirmation supplémentaire** ne sera demandée à l'utilisateur pour les formats non standard (contrairement à l'Option 2 proposée initialement).
- **Tous les rôles** (administrateurs, comptables, etc.) doivent avoir accès à cette fonctionnalité.
## Acceptance criteria
["- [ ] Un utilisateur peut téléverser un fichier PDF, Word, Excel, ZIP ou tout autre format en pièce jointe d'une facture.", "- [ ] Un message d'erreur s'affiche si le fichier dépasse **10 Mo** (*ex. : « Le fichier dépasse la limite de 10 Mo »*).", '- [ ] La fonctionnalité est accessible à **tous les rôles** utilisateurs (vérification via un compte test pour chaque rôle).', "- [ ] Les fichiers téléversés sont correctement enregistrés et associés à la facture correspondante (vérification dans la base de données et l'interface utilisateur).", "- [ ] Aucun avertissement ou confirmation supplémentaire n'est affiché pour les formats non standard (ex. : pas de popup pour les fichiers ZIP).", "- [ ] Les tests de sécurité (ex. : analyse des fichiers malveillants) sont documentés et intégrés au processus de téléversement, même si non visibles par l'utilisateur."]
## Classification
- feature
## Complexity
- 7/10 — La complexité est élevée en raison des ajustements de sécurité nécessaires pour gérer tous les types de fichiers sans restriction, tout en maintenant une limite de taille et une expérience utilisateur fluide.
RA Updated by Redmine Admin about 1 month ago
- Status changed from Submitted to In development
- branch set to feat/1258-invoice-attachments-any-type
- pr_url set to https://github.com/Scobby-organisation/scobby/pull/104
Implémenté et fusionné sur `dev` (PR #104, CI verte). Tous formats autorisés en PJ de facture + limite 10 Mo sur les 3 points d'upload (helper partagé `src/lib/invoiceAttachments.js` + test). Backend inchangé (accepte déjà tout type/taille). En attente de promotion vers preprod.
RA Updated by Redmine Admin about 1 month ago
- Status changed from In development to Preprod
- deploy_status set to deployed
- preprod_url set to https://preprod-scobby.omdev.tech
- deployed_at set to 07/01/2026
Déployé sur preprod (PR de promotion #107). Fonctionnalité live : tous formats en PJ de facture + limite 10 Mo. Vérifié : conteneur web/api redéployés, https 200.
RA Updated by Redmine Admin about 1 month ago
- Status changed from Preprod to Ready to ship
Fusionné sur master (#109) et **déployé en PROD** le 2026-07-01, vérifié en live (API healthy, scobby.fr 200). PJ factures tous formats + 10 Mo actives en prod.