From 3b0f097d8d51ae4fc6e6165f2da81cbf631c24cc Mon Sep 17 00:00:00 2001 From: Spark Date: Wed, 4 Nov 2026 03:44:35 +0000 Subject: [PATCH] Kanbante 0.45.6 : URL ShaarIt resolue comme les soeurs + version 0.45.6 (app/config.py, app/main.py) --- .env.example | 2 ++ app/config.py | 25 ++++++++++++++++++++----- app/main.py | 1 + 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index 8eb765c..ba139b4 100644 --- a/.env.example +++ b/.env.example @@ -12,12 +12,14 @@ KANBANTE_PUBLIC_URL=https://kanbante.dracodev.net DRACO_SSO_URL=https://og.dracodev.net DRACO_FLOWDECK_URL=https://flowdeck.dracodev.net DRACO_TIKTAK_URL=https://tiktak.dracodev.net +DRACO_SHAARIT_URL=https://shaarit.dracodev.net AGENT_URL=https://agent.dracodev.net # Exemples dev (à décommenter sur l'hôte dev) : # KANBANTE_PUBLIC_URL=https://kanbante-dev.dracodev.net # DRACO_SSO_URL=https://og-dev.dracodev.net # DRACO_FLOWDECK_URL=https://flowdeck-dev.dracodev.net # DRACO_TIKTAK_URL=https://tiktak-dev.dracodev.net +# DRACO_SHAARIT_URL=https://shaarit-dev.dracodev.net # AGENT_URL=https://agent-dev.dracodev.net # Journal d'événements du service d'agents (signé HMAC) # AGENT_EVENEMENTS_URL= # vide = dérivé de AGENT_URL (/api/v1/evenements) diff --git a/app/config.py b/app/config.py index 615fdf6..65e1a43 100644 --- a/app/config.py +++ b/app/config.py @@ -130,6 +130,10 @@ Environment variables: DRACO_TIKTAK_URL Public base URL of TikTak for the common app bar. Default (official) https://tiktak.dracodev.net. + DRACO_SHAARIT_URL Public base URL of ShaarIt for the + common app bar (barre v0.2.0). + Default (official) + https://shaarit.dracodev.net. ObsiGate's bar link reuses DRACO_SSO_URL (the SSO emitter IS ObsiGate). Résolution d'une URL rendue à une @@ -139,7 +143,7 @@ Environment variables: ci-dessus (prioritaire, contrat inchangé) ; 2) l'hôte public de la requête, motif fermé - ``(og|flowdeck|tiktak|kanbante|agent) + ``(og|flowdeck|tiktak|kanbante|shaarit|agent) .dracodev.net`` (suffixe vide en prod, ``-dev`` en dev) appliqué à toutes les sœurs et à l'agent — jamais @@ -152,7 +156,7 @@ Environment variables: l'URL sœur devient ``https://. dracodev.net`` (slugs : og, flowdeck, - tiktak, kanbante, agent) ; hôte hors + tiktak, kanbante, shaarit, agent) ; hôte hors motif (autre domaine, LAN, IP) = aucune dérivation, jamais de lien deviné ; 4) le défaut officiel (prod). @@ -177,7 +181,7 @@ from urllib.parse import urlparse BASE_DIR = Path(__file__).resolve().parent.parent -APP_VERSION = "0.45.5" +APP_VERSION = "0.45.6" def _env_bool(name: str, default: bool) -> bool: @@ -232,7 +236,7 @@ def _env_wip_limits(name: str) -> dict[str, int]: # du service (élargie en 0.32.2) ; 4) défaut officiel. _MOTIF_HOTE_AGENT = re.compile(r"agent([a-z0-9-]*)\.dracodev\.net") _MOTIF_HOTE_PUBLIC = re.compile( - r"(?:og|flowdeck|tiktak|kanbante|agent)([a-z0-9-]*)\.dracodev\.net" + r"(?:og|flowdeck|tiktak|kanbante|shaarit|agent)([a-z0-9-]*)\.dracodev\.net" ) @@ -265,7 +269,7 @@ def _suffixe_environnement_agent(url_agent: str) -> str | None: def suffixe_environnement_requete(hote_requete: str | None) -> str | None: """Suffixe lu sur l'hôte public de la requête entrante. - Motif fermé ``^(og|flowdeck|tiktak|kanbante|agent) + Motif fermé ``^(og|flowdeck|tiktak|kanbante|shaarit|agent) \\.dracodev\\.net$`` (suffixe optionnel : vide en prod, ``-dev`` en dev) ; un port éventuel est toléré et retiré. Hors motif (LAN, IP, autre domaine) : ``None`` — l'appelant @@ -306,6 +310,7 @@ class UrlsDraco: sso_url: str # ObsiGate (lien de barre ; explicite = DRACO_SSO_URL) flowdeck_url: str tiktak_url: str + shaarit_url: str # ShaarIt (barre v0.2.0 ; explicite = DRACO_SHAARIT_URL) public_url: str # Kanbante elle-même (KANBANTE_PUBLIC_URL) agent_url: str # base du service d'agents (panneau + CSP) @@ -344,6 +349,9 @@ def resoudre_urls_draco( "DRACO_FLOWDECK_URL", "flowdeck", base.flowdeck_url ), tiktak_url=resoudre("DRACO_TIKTAK_URL", "tiktak", base.tiktak_url), + shaarit_url=resoudre( + "DRACO_SHAARIT_URL", "shaarit", base.shaarit_url + ), public_url=resoudre( "KANBANTE_PUBLIC_URL", "kanbante", base.public_url ), @@ -393,6 +401,7 @@ class Settings: public_url: str = "https://kanbante.dracodev.net" flowdeck_url: str = "https://flowdeck.dracodev.net" tiktak_url: str = "https://tiktak.dracodev.net" + shaarit_url: str = "https://shaarit.dracodev.net" agent_url: str = "https://agent.dracodev.net" archive_suggest_days: int = 180 agent_evenements_url: str = "https://agent.dracodev.net/api/v1/evenements" @@ -497,6 +506,12 @@ def _env_settings() -> Settings: "https://tiktak.dracodev.net", suffixe_agent, ), + shaarit_url=_url_soeur_draco( + "DRACO_SHAARIT_URL", + "shaarit", + "https://shaarit.dracodev.net", + suffixe_agent, + ), agent_url=agent_url, archive_suggest_days=_env_int("KANBANTE_ARCHIVE_SUGGEST_DAYS", 180), agent_evenements_url=agent_evenements_url, diff --git a/app/main.py b/app/main.py index 124a365..1b894dc 100644 --- a/app/main.py +++ b/app/main.py @@ -2250,6 +2250,7 @@ def render( "flowdeck": _urls.flowdeck_url, "tiktak": _urls.tiktak_url, "kanbante": _urls.public_url, + "shaarit": _urls.shaarit_url, }, ) context.setdefault("agent_url", _urls.agent_url)