fix(0.32.2): résolution par requête des URL dracodev, base agent dérivée et CSP du panneau
CI / test (push) Successful in 2m21s
CI / test (push) Successful in 2m21s
La dérivation 0.32.1 ne couvrait que les URL sœurs depuis AGENT_EVENEMENTS_URL, jamais agent_url : sur la dev, le panneau visait le défaut prod (agent injoignable, prod non installée), console morte. Désormais, pour tout rendu à une requête (barre, iframe du panneau, CSP frame-src) : explicite > hôte public au motif fermé dracodev > dérivation élargie (événements ou base du service) > défaut officiel. Contextes sans requête inchangés sinon ; aucun SSO ajouté.
This commit is contained in:
@@ -1,5 +1,64 @@
|
||||
# Changelog
|
||||
|
||||
## 0.32.2 — 2026-10-25
|
||||
|
||||
### Corrigé — console du panneau morte et liens pas tous en dev : résolution par requête
|
||||
|
||||
Sur kanbante-dev, le mode console du panneau était une page morte
|
||||
et les liens inter-apps n'étaient pas tous en dev. Couche fautive
|
||||
trouvée dans `app/config.py` : la dérivation de la 0.32.1 ne
|
||||
couvrait que les URL sœurs depuis `AGENT_EVENEMENTS_URL` — jamais
|
||||
`agent_url` lui-même. Sur la dev, où seul le journal est déclaré
|
||||
en `-dev`, le panneau recevait donc le défaut prod
|
||||
`https://agent.dracodev.net` : iframe de console pointant un agent
|
||||
prod pas encore installé, donc injoignable. Et aucune résolution
|
||||
ne tenait compte de la requête : sans variable d'environnement,
|
||||
un hôte public en `-dev` retombait entièrement sur la prod.
|
||||
Enfin, aucune CSP n'existait : l'origine de l'agent n'était
|
||||
énoncée nulle part.
|
||||
|
||||
- **Résolution par requête** (`resoudre_urls_draco` dans
|
||||
`app/config.py`, consommée par `render()` dans `app/main.py`)
|
||||
pour tout ce qui est rendu à une requête — liens de la barre
|
||||
(`draco_urls`), source de l'iframe du panneau
|
||||
(`DRACO_PANNEAU_CONFIG.api`) et origine agent de la CSP — dans
|
||||
l'ordre : 1) la variable explicite de l'installation,
|
||||
prioritaire et inchangée (`DRACO_SSO_URL` pour ObsiGate,
|
||||
`DRACO_FLOWDECK_URL`, `DRACO_TIKTAK_URL`,
|
||||
`KANBANTE_PUBLIC_URL` pour Kanbante elle-même, `AGENT_URL`
|
||||
pour l'agent) ; 2) l'hôte public de la requête, motif fermé
|
||||
`^(og|flowdeck|tiktak|kanbante|agent)<SUFFIXE>\.dracodev\.net$`
|
||||
(suffixe optionnel : vide en prod, `-dev` en dev), appliqué à
|
||||
toutes les sœurs et à l'agent — jamais de suffixe inventé
|
||||
depuis un hôte arbitraire ; hors motif (LAN, IP), étape
|
||||
suivante ; 3) la dérivation par les adresses de l'agent connues
|
||||
en configuration, **élargie** : URL d'événements **ou** base du
|
||||
service, selon ce que l'installation déclare ; 4) le défaut
|
||||
officiel.
|
||||
- **Base de l'agent dérivée** (contextes sans requête aussi) :
|
||||
sans `AGENT_URL` explicite, si l'adresse connue de l'agent
|
||||
(événements ou base) suit `agent<SUFFIXE>.dracodev.net`,
|
||||
`agent_url` devient `https://agent<SUFFIXE>.dracodev.net` au
|
||||
lieu de rester au défaut prod.
|
||||
- **CSP nouvelle** : chaque page rendue énonce
|
||||
`Content-Security-Policy: frame-src 'self' <origine agent>` —
|
||||
exactement l'origine résolue pour cette même réponse, celle de
|
||||
l'iframe de la console (seule iframe de l'application).
|
||||
- Les contextes sans requête gardent la résolution par
|
||||
configuration, inchangée sinon. Aucun SSO ajouté : Kanbante
|
||||
n'en a pas par conception ; périmètre limité à ses liens et à
|
||||
son panneau.
|
||||
- Tests : requête `Host: kanbante-dev.dracodev.net` sans aucune
|
||||
variable → barre, iframe et CSP entièrement en `-dev` ; hôte
|
||||
prod → noms officiels ; hôte LAN → repli configuration/défauts ;
|
||||
explicite gagne sur l'hôte ; base de l'agent dérivée du seul
|
||||
journal et dérivation élargie à la base du service ; contextes
|
||||
sans requête inchangés. Suite complète : 278 tests réussis.
|
||||
- **Déploiement** : cette version part avec le prochain
|
||||
redéploiement Docker (la 0.32.1 n'a jamais été redéployée) —
|
||||
preuve en direct **en attente du redéploiement Docker de
|
||||
Bruno**, la version vivante sur kanbante-dev reste l'ancienne.
|
||||
|
||||
## 0.32.1 — 2026-10-25
|
||||
|
||||
### Corrigé — URL sœurs de la barre dérivées de l'environnement de l'agent
|
||||
|
||||
Reference in New Issue
Block a user