From e4da00cf17cc129af91b1bed777211ebaeca20ac Mon Sep 17 00:00:00 2001 From: bruno Date: Wed, 28 Oct 2026 14:45:13 -0400 Subject: [PATCH] recherche: jeton URL_AGENT + connect-src agent pour la page /recherche --- backend/main.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/backend/main.py b/backend/main.py index b236bf3..68d1855 100644 --- a/backend/main.py +++ b/backend/main.py @@ -966,12 +966,15 @@ if FRONTEND_DIR.exists(): frontend/recherche.html est servi avec les jetons {{URL_*}} remplacés par urls_publiques() (même contrat que le fragment - de barre) et le nonce CSP frais ; la réponse pose sa propre - CSP (préservée par SecurityHeadersMiddleware, qui ne la pose - que si elle est absente) dont le connect-src autorise les - origines sœurs — sinon le navigateur bloquerait les appels - sœurs avant même CORS. La CSP par défaut (same-origin) reste - inchangée pour toutes les autres pages. + de barre, jeton {{URL_AGENT}} inclus pour l'onglet Console + Spark de la barre re-vendangée) et le nonce CSP frais ; la + réponse pose sa propre CSP (préservée par + SecurityHeadersMiddleware, qui ne la pose que si elle est + absente) dont le connect-src autorise les origines sœurs ET + l'origine de l'agent — sinon le navigateur bloquerait les + appels sœurs et l'appel console (onglet Console Spark, + GET /api/v1/recherche) avant même CORS. La CSP par défaut + (same-origin) reste inchangée pour toutes les autres pages. """ import json as _json @@ -989,6 +992,7 @@ if FRONTEND_DIR.exists(): ("{{URL_FLOWDECK}}", "flowdeck"), ("{{URL_TIKTAK}}", "tiktak"), ("{{URL_KANBANTE}}", "kanbante"), + ("{{URL_AGENT}}", "agent"), ): html = html.replace(jeton, urls.get(cle, "")) script = ( @@ -1003,7 +1007,8 @@ if FRONTEND_DIR.exists(): html = inject_csp_nonce(html, request.state.csp_nonce) soeurs = " ".join(sorted({ origin_of(urls.get(cle, "")) or "" - for cle in ("obsigate", "flowdeck", "tiktak", "kanbante") + for cle in ("obsigate", "flowdeck", "tiktak", "kanbante", + "agent") } - {""})) csp = ( "default-src 'self'; "