fix(draco): résolution dev/prod par l'hôte de la requête (7.82.4)
Le mode console du panneau restait une page morte sur flowdeck-dev : CSP frame-src/connect-src et DRACO_PANNEAU_CONFIG.agent_url pointaient l'agent prod (pas encore installée). Deux trous de la 7.82.3 : agent_url() sans aucune dérivation, et aucune résolution lisant l'hôte de la requête. Pour tout ce qui est rendu à une requête (barre/DRACO_URLS, iframe du panneau, CSP, boutons et redirections SSO) : explicite > hôte public de la requête (motif fermé ^(og|flowdeck|tiktak|kanbante|agent)(SUFFIXE).dracodev.net$, suffixe appliqué aux sœurs et à l'agent) > dérivation par les adresses de l'agent connues en config (élargie : agent_url() se dérive de l'URL d'événements explicite) > défaut officiel. L'hôte est posé par le middleware CSP dans un ContextVar (patron du nonce CSP) : iframe et CSP de la même réponse consomment la même origine résolue. Contextes sans requête inchangés sinon. Tests : +12 dans test_draco_urls_devprod.py (25/25) — Host dev sans aucun env → tout en -dev ; Host prod → officiels ; Host LAN → repli config/défauts ; explicite gagne sur l'hôte ; motif fermé. Suite complète : 4 failed / 26 errors identiques sur arbre propre (familles préexistantes MCP/realtime/my_tasks/gallery/sync).
This commit is contained in:
+7
-5
@@ -33,12 +33,14 @@ def get_redirect_uri(request: Request) -> str:
|
||||
return f"{scheme}://{host}/auth/callback"
|
||||
|
||||
def _sso_login_url() -> str:
|
||||
"""URL du bouton « Login with ObsiGate (SSO) », résolue par la config.
|
||||
"""URL du bouton « Login with ObsiGate (SSO) ».
|
||||
|
||||
Émettrice = DRACO_SSO_URL (défaut : nom officiel) ; retour =
|
||||
URL publique de cette instance (FLOWDECK_URL / OAUTH_REDIRECT_URI /
|
||||
APP_BASE_URL, défaut : nom officiel) + ``/auth/draco``. Aucun nom
|
||||
public figé : un dev déclare ses noms en ``-dev`` dans le .env.
|
||||
Émettrice = ``obsigate_url()`` (DRACO_SSO_URL explicite, sinon
|
||||
l'environnement de la requête — v7.82.4) ; retour = URL publique
|
||||
de cette instance résolue de la même façon (FLOWDECK_URL /
|
||||
OAUTH_REDIRECT_URI explicites, sinon hôte de la requête, le
|
||||
callback = sa propre origine résolue) + ``/auth/draco``. Aucun
|
||||
nom public figé.
|
||||
"""
|
||||
from urllib.parse import quote
|
||||
|
||||
|
||||
Reference in New Issue
Block a user