Une CSP de production qui bloquait silencieusement deux fonctionnalités
A production CSP with default-src 'self' and no frame-src or connect-src blocked an R2-hosted PDF iframe and Sentry error reporting. Prod-only, invisible in dev.
Ça disait que ça marchait
Vert, 200, enregistré, « déjà géré » — et faux. Aucune erreur sur laquelle s'appuyer.
security_headers_prod définissait default-src 'self' et ne déclarait aucun frame-src, donc il héritait de 'self' et bloquait l'iframe PDF hébergée sur R2 dont dépend le visualiseur. Aucun connect-src pour Sentry non plus, donc le reporting d'erreurs était bloqué dans le seul environnement où ça compte.
Les deux sont uniquement en prod, invisibles en local, et aucun ne fait échouer un test. Le visualiseur avait été vérifié comme fonctionnel en dev ; la capture réseau du navigateur en prod est ce qui a dit la vérité. Tout ce qui n'existe que dans la config edge de production doit être vérifié contre la config edge de production.