docs: warn about custom create controllers bypassing files.<attr>

Piège rencontré sur la publication d'annonce : ad/post/group/chat-message
lisent ctx.request.files.<attribut> directement. Envoyer files.<attribut>
n'échoue pas, les fichiers sont simplement ignorés.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 00:15:35 +02:00
parent 5be8873ad5
commit 883b827b0d
+9
View File
@@ -72,6 +72,15 @@ Vue par domaine (34 au total, liste exhaustive dans `src/api/`) :
Toute nouvelle route/action consommée par le front DOIT être ajoutée à ce Toute nouvelle route/action consommée par le front DOIT être ajoutée à ce
fichier (et jamais cochée uniquement dans l'admin, sinon elle sera signalée fichier (et jamais cochée uniquement dans l'admin, sinon elle sera signalée
comme non déclarée). comme non déclarée).
- ⚠️ **Les controllers `create` custom qui gèrent des fichiers n'utilisent PAS
la convention `files.<attribut>` de Strapi.** `ad`, `post`, `group` et
`chat-message` lisent directement `ctx.request.files.<attribut>` (donc un
champ multipart nommé `medias`, `media`… et non `files.medias`), uploadent
eux-mêmes puis rattachent les ids. Envoyer `files.<attribut>` à l'un d'eux
ne produit **aucune erreur** : l'entité est créée, les fichiers sont
ignorés en silence. Avant de brancher un formulaire avec upload, lire le
controller du content-type visé. Symptôme : « le contenu s'enregistre mais
pas l'image ».
- ⚠️ **Une relation peuplée via l'API REST exige `find` sur le content-type - ⚠️ **Une relation peuplée via l'API REST exige `find` sur le content-type
cible.** Le sanitizer de l'API REST retire silencieusement les relations cible.** Le sanitizer de l'API REST retire silencieusement les relations
peuplées vers un content-type que le rôle n'a pas le droit de lire — pas peuplées vers un content-type que le rôle n'a pas le droit de lire — pas