metalfrom.eu/apps/api
Nicolas FRYDER da24d2a8a1 fix(admin): XSS stocké dans l'activité, timeout des requêtes, déblocage manuel
activitySummary() injectait crawl_run.error en innerHTML sans échappement. Ce
message provient d'exceptions du crawler, qui contiennent du contenu scrapé sur
Metal Archives — donc influençable depuis l'extérieur.

api() n'avait aucun timeout : une API muette (pool DB saturé, upstream nginx
silencieux) laissait la vue bloquée sur « Chargement… » indéfiniment.

reset-errors vise désormais aussi les lignes coincées en 'processing', en
forçage manuel du mécanisme d'auto-réparation du worker.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 16:44:07 +02:00
..
migrations fix(crawler): boucle de ré-enrichissement infinie, politesse et résilience 2026-08-20 16:43:48 +02:00
src fix(admin): XSS stocké dans l'activité, timeout des requêtes, déblocage manuel 2026-08-20 16:44:07 +02:00
test fix: sync du point principal + verrou de migration, redis mort retiré, tests par propriétés 2026-08-18 21:03:17 +02:00
.dockerignore feat(qualité): outillage de test complet, CI locale, annulation réelle des runs 2026-08-18 10:05:40 +02:00
Dockerfile feat: i18n front-end (11 langues), centre de commandes admin, remerciements légaux 2026-07-01 20:41:41 +02:00
package-lock.json feat(admin): dashboard admin complet (auth forte, API, monitoring) 2026-06-30 22:15:13 +02:00
package.json feat(admin): dashboard admin complet (auth forte, API, monitoring) 2026-06-30 22:15:13 +02:00