diff --git a/app/recherche.py b/app/recherche.py index 0f8ba5d..3266dff 100644 --- a/app/recherche.py +++ b/app/recherche.py @@ -10,7 +10,10 @@ testables sans base ni serveur. tous projets du workspace) et la regroupe par dépôt. - La CORS bornée n'autorise que ``GET /api/search``, et seulement pour les origines sœurs officielles **prod ET dev, listées - explicitement** (``PROD_ORIGINS | DEV_ORIGINS``), **plus** les + explicitement** (``PROD_ORIGINS | DEV_ORIGINS``), **plus les + origines de la console Spark** (``AGENT_ORIGINS`` : agent prod ET + dev — fédération de la recherche depuis la console, 2026-10-28), + **plus** les origines résolues par ``app.config`` — jamais ``*``. Correctif 2026-10-28 (fusion #68/#69, matrice constatée par Bruno) : l'ancienne allowlist ne contenait que l'environnement résolu @@ -44,6 +47,12 @@ DEV_ORIGINS = frozenset({ "https://kanbante-dev.dracodev.net", }) +AGENT_ORIGINS = frozenset({ + "https://agent.dracodev.net", + "https://agent-dev.dracodev.net", +}) + + # Clés du dictionnaire rendu par render() (app/main.py). _SOEUR_KEYS = ("obsigate", "flowdeck", "tiktak", "kanbante") @@ -105,7 +114,7 @@ def sister_origins( # Correctif 2026-10-28 : prod ET dev toujours, quelle que soit # la résolution — ``resolved`` n'ajoute que des origines de # configuration sans jamais retirer une origine officielle. - return frozenset(origins) | PROD_ORIGINS | DEV_ORIGINS + return frozenset(origins) | PROD_ORIGINS | DEV_ORIGINS | AGENT_ORIGINS def cors_headers_for(