🔴 Sécurité : IDOR sur update/delete (parole/artiste/commentaire), mass assignment non filtré sur create/update, hash de mot de passe exposé via register, secrets hardcodés en fallback dans admin.js, injection HTML dans l'email de notification
🐛 Bugs : signature cassée de parole.findOne, écrasement destructif des commentaires existants d'une parole, mauvais id/documentId, crash sur updatedBy non peuplé, cascade de renommage de slug artiste
⚙️ Fiabilité : sauvegarde hebdomadaire de la base réellement implémentée, timeout + isolation des échecs DeepL, publication non bloquée si Telegram/Revolt échoue, bulk-translate restreint aux appels API token
✅ Tests & CI : mise en place de Vitest, exécution des tests avant build et sur chaque déploiement
📏 Lint : activation d'ESLint (0 erreur)
- 🔴 Sécurité : IDOR sur update/delete (parole/artiste/commentaire), mass assignment non filtré sur create/update, hash de mot de passe exposé via `register`, secrets hardcodés en fallback dans `admin.js`, injection HTML dans l'email de notification
- 🐛 Bugs : signature cassée de `parole.findOne`, écrasement destructif des commentaires existants d'une parole, mauvais id/documentId, crash sur `updatedBy` non peuplé, cascade de renommage de slug artiste
- ⚙️ Fiabilité : sauvegarde hebdomadaire de la base réellement implémentée, timeout + isolation des échecs DeepL, publication non bloquée si Telegram/Revolt échoue, `bulk-translate` restreint aux appels API token
- 🧹 Nettoyage : dossiers legacy `extensions/`/`components/`, config `rest-cache` inutilisée, dépendance `axios` déclarée directement
- ✅ Tests & CI : mise en place de Vitest, exécution des tests avant build et sur chaque déploiement
- 📏 Lint : activation d'ESLint (0 erreur)
Installe eslint, ajoute le script lint, modernise le parser
(retrait de babel-eslint obsolète) et applique l'autofix
(points-virgules manquants sur l'ensemble du code, conformément
à la règle "semi" déjà présente dans .eslintrc mais jamais
appliquée faute d'ESLint installé et d'un script pour l'exécuter).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
register, secrets hardcodés en fallback dansadmin.js, injection HTML dans l'email de notificationparole.findOne, écrasement destructif des commentaires existants d'une parole, mauvais id/documentId, crash surupdatedBynon peuplé, cascade de renommage de slug artistebulk-translaterestreint aux appels API tokenextensions//components/, configrest-cacheinutilisée, dépendanceaxiosdéclarée directement