Audit sécurité/qualité : corrections critiques, tests, CI et lint #4

Merged
cedric merged 28 commits from fix/audit-2026-07-04 into master 2026-07-04 17:01:30 +00:00
28 Commits
Author SHA1 Message Date
cedric 2c84ea0f25 fix: corriger les erreurs ESLint restantes après activation
Déploiement API BETA / build (push) Successful in 2m24s
Déploiement API BETA / deploy (push) Successful in 1m37s
Vérification PR / build (pull_request) Successful in 2m23s
Vérification PR / deploy-beta (pull_request) Successful in 48s
- retirer les paramètres/variables inutilisés (result, ctx/next, qs)
- corriger l'indentation tabs/espaces mélangés dans src/admin/app.js
- retirer les échappements regex inutiles dans stripMarkdown
- remplacer while(true) par for(;;) (faux positif no-constant-condition)
2026-07-04 20:01:16 +04:00
cedric 2224c8f3bb chore: activer ESLint sur le backend
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).
2026-07-04 20:00:51 +04:00
cedric 90c048a282 fix: whitelister les champs autorisés sur create/update (mass assignment) 2026-07-04 15:08:19 +04:00
cedric 1d54d287e1 fix: retirer createdBy/updatedBy du payload dans beforeUpdate 2026-07-04 15:04:18 +04:00
cedric 3b9b28d326 fix: ne plus écraser les commentaires existants d'une parole 2026-07-04 14:59:58 +04:00
cedric 4ee7ed3e5e fix: corriger la signature de parole.findOne (ctx au lieu de documentId) 2026-07-04 14:58:43 +04:00
cedric 0afa9251d6 ci: exécuter les tests dans deploy-beta et deploy-prod 2026-07-04 11:39:53 +04:00
cedric 250ae822ea chore: retirer les secrets de fallback hardcodés dans admin.js 2026-07-04 11:39:45 +04:00
cedric b36f53f022 chore: supprimer les dossiers legacy extensions/ et components/ 2026-07-04 11:39:36 +04:00
cedric e4187a697a fix: envoyer le commentaire en texte brut (éviter l'injection HTML) 2026-07-04 11:38:56 +04:00
cedric c0d6834178 feat: implémenter réellement la sauvegarde hebdomadaire de la base 2026-07-04 11:38:26 +04:00
cedric 6f77c17003 fix: valider data.user/data.artistes avant déréférencement 2026-07-04 11:38:02 +04:00
cedric c4f45f712a fix: éviter un crash sur updatedBy non peuplé 2026-07-04 11:37:40 +04:00
cedric c66c972a93 fix: réparer la cascade de renommage des slugs d'artiste 2026-07-04 11:37:20 +04:00
cedric 85ecdf3072 fix: retirer l'override register qui exposait le hash de mot de passe 2026-07-04 11:36:50 +04:00
cedric 291aa54912 fix: corriger l'IDOR sur update/delete (parole, artiste, commentaire) 2026-07-04 11:36:20 +04:00
cedric bc5d0fb498 fix: refuser par défaut is-payload-owner sans en-tête Authorization 2026-07-04 11:35:41 +04:00
cedric e515944fb9 refactor: extraire la vérification JWT/payload en policy partagée 2026-07-04 10:04:00 +04:00
cedric 1562ecd706 ci: exécuter les tests avant le build sur chaque PR 2026-07-04 09:56:26 +04:00
cedric 416032942a fix: restreindre bulk-translate aux appels par token API 2026-07-04 09:55:45 +04:00
cedric 9fa37c516c chore: retirer la config rest-cache (plugin non installé, incompatible v5) 2026-07-04 09:54:39 +04:00
cedric d87ab299c4 chore: déclarer axios comme dépendance directe 2026-07-04 09:52:36 +04:00
cedric 4c13f47156 fix: ne pas bloquer la publication si Telegram/Revolt échoue 2026-07-04 09:51:10 +04:00
cedric 36917d79b4 fix: ajouter un timeout DeepL et isoler les échecs par langue 2026-07-04 09:47:26 +04:00
cedric ddb6d3f2f0 fix: corriger les mauvais identifiants utilisés (id vs documentId) 2026-07-04 09:43:28 +04:00
cedric 8b17882d6b fix: corriger le ReferenceError dans artiste.create 2026-07-04 09:37:37 +04:00
cedric f592d4ded7 fix: stopper l'exécution après un refus d'autorisation dans parole.create 2026-07-04 09:36:17 +04:00
cedric 796b4379fd test: ajouter Vitest au backend 2026-07-04 09:36:01 +04:00