Kanbante 0.45.6 : URL ShaarIt resolue comme les soeurs + version 0.45.6 (app/config.py, app/main.py)

This commit is contained in:
Spark
2026-11-04 03:44:35 +00:00
parent ac0f15f685
commit 3b0f097d8d
3 changed files with 23 additions and 5 deletions
+2
View File
@@ -12,12 +12,14 @@ KANBANTE_PUBLIC_URL=https://kanbante.dracodev.net
DRACO_SSO_URL=https://og.dracodev.net DRACO_SSO_URL=https://og.dracodev.net
DRACO_FLOWDECK_URL=https://flowdeck.dracodev.net DRACO_FLOWDECK_URL=https://flowdeck.dracodev.net
DRACO_TIKTAK_URL=https://tiktak.dracodev.net DRACO_TIKTAK_URL=https://tiktak.dracodev.net
DRACO_SHAARIT_URL=https://shaarit.dracodev.net
AGENT_URL=https://agent.dracodev.net AGENT_URL=https://agent.dracodev.net
# Exemples dev (à décommenter sur l'hôte dev) : # Exemples dev (à décommenter sur l'hôte dev) :
# KANBANTE_PUBLIC_URL=https://kanbante-dev.dracodev.net # KANBANTE_PUBLIC_URL=https://kanbante-dev.dracodev.net
# DRACO_SSO_URL=https://og-dev.dracodev.net # DRACO_SSO_URL=https://og-dev.dracodev.net
# DRACO_FLOWDECK_URL=https://flowdeck-dev.dracodev.net # DRACO_FLOWDECK_URL=https://flowdeck-dev.dracodev.net
# DRACO_TIKTAK_URL=https://tiktak-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 # AGENT_URL=https://agent-dev.dracodev.net
# Journal d'événements du service d'agents (signé HMAC) # Journal d'événements du service d'agents (signé HMAC)
# AGENT_EVENEMENTS_URL= # vide = dérivé de AGENT_URL (/api/v1/evenements) # AGENT_EVENEMENTS_URL= # vide = dérivé de AGENT_URL (/api/v1/evenements)
+20 -5
View File
@@ -130,6 +130,10 @@ Environment variables:
DRACO_TIKTAK_URL Public base URL of TikTak for the DRACO_TIKTAK_URL Public base URL of TikTak for the
common app bar. Default (official) common app bar. Default (official)
https://tiktak.dracodev.net. 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 ObsiGate's bar link reuses DRACO_SSO_URL
(the SSO emitter IS ObsiGate). (the SSO emitter IS ObsiGate).
Résolution d'une URL rendue à une Résolution d'une URL rendue à une
@@ -139,7 +143,7 @@ Environment variables:
ci-dessus (prioritaire, contrat ci-dessus (prioritaire, contrat
inchangé) ; 2) l'hôte public de la inchangé) ; 2) l'hôte public de la
requête, motif fermé requête, motif fermé
``(og|flowdeck|tiktak|kanbante|agent) ``(og|flowdeck|tiktak|kanbante|shaarit|agent)
<SUFFIXE>.dracodev.net`` (suffixe vide <SUFFIXE>.dracodev.net`` (suffixe vide
en prod, ``-dev`` en dev) appliqué à en prod, ``-dev`` en dev) appliqué à
toutes les sœurs et à l'agent — jamais toutes les sœurs et à l'agent — jamais
@@ -152,7 +156,7 @@ Environment variables:
l'URL sœur devient l'URL sœur devient
``https://<slug><SUFFIXE>. ``https://<slug><SUFFIXE>.
dracodev.net`` (slugs : og, flowdeck, dracodev.net`` (slugs : og, flowdeck,
tiktak, kanbante, agent) ; hôte hors tiktak, kanbante, shaarit, agent) ; hôte hors
motif (autre domaine, LAN, IP) = motif (autre domaine, LAN, IP) =
aucune dérivation, jamais de lien aucune dérivation, jamais de lien
deviné ; 4) le défaut officiel (prod). deviné ; 4) le défaut officiel (prod).
@@ -177,7 +181,7 @@ from urllib.parse import urlparse
BASE_DIR = Path(__file__).resolve().parent.parent 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: 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. # 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_AGENT = re.compile(r"agent([a-z0-9-]*)\.dracodev\.net")
_MOTIF_HOTE_PUBLIC = re.compile( _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: def suffixe_environnement_requete(hote_requete: str | None) -> str | None:
"""Suffixe lu sur l'hôte public de la requête entrante. """Suffixe lu sur l'hôte public de la requête entrante.
Motif fermé ``^(og|flowdeck|tiktak|kanbante|agent)<SUFFIXE> Motif fermé ``^(og|flowdeck|tiktak|kanbante|shaarit|agent)<SUFFIXE>
\\.dracodev\\.net$`` (suffixe optionnel : vide en prod, \\.dracodev\\.net$`` (suffixe optionnel : vide en prod,
``-dev`` en dev) ; un port éventuel est toléré et retiré. ``-dev`` en dev) ; un port éventuel est toléré et retiré.
Hors motif (LAN, IP, autre domaine) : ``None`` — l'appelant 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) sso_url: str # ObsiGate (lien de barre ; explicite = DRACO_SSO_URL)
flowdeck_url: str flowdeck_url: str
tiktak_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) public_url: str # Kanbante elle-même (KANBANTE_PUBLIC_URL)
agent_url: str # base du service d'agents (panneau + CSP) 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 "DRACO_FLOWDECK_URL", "flowdeck", base.flowdeck_url
), ),
tiktak_url=resoudre("DRACO_TIKTAK_URL", "tiktak", base.tiktak_url), tiktak_url=resoudre("DRACO_TIKTAK_URL", "tiktak", base.tiktak_url),
shaarit_url=resoudre(
"DRACO_SHAARIT_URL", "shaarit", base.shaarit_url
),
public_url=resoudre( public_url=resoudre(
"KANBANTE_PUBLIC_URL", "kanbante", base.public_url "KANBANTE_PUBLIC_URL", "kanbante", base.public_url
), ),
@@ -393,6 +401,7 @@ class Settings:
public_url: str = "https://kanbante.dracodev.net" public_url: str = "https://kanbante.dracodev.net"
flowdeck_url: str = "https://flowdeck.dracodev.net" flowdeck_url: str = "https://flowdeck.dracodev.net"
tiktak_url: str = "https://tiktak.dracodev.net" tiktak_url: str = "https://tiktak.dracodev.net"
shaarit_url: str = "https://shaarit.dracodev.net"
agent_url: str = "https://agent.dracodev.net" agent_url: str = "https://agent.dracodev.net"
archive_suggest_days: int = 180 archive_suggest_days: int = 180
agent_evenements_url: str = "https://agent.dracodev.net/api/v1/evenements" agent_evenements_url: str = "https://agent.dracodev.net/api/v1/evenements"
@@ -497,6 +506,12 @@ def _env_settings() -> Settings:
"https://tiktak.dracodev.net", "https://tiktak.dracodev.net",
suffixe_agent, suffixe_agent,
), ),
shaarit_url=_url_soeur_draco(
"DRACO_SHAARIT_URL",
"shaarit",
"https://shaarit.dracodev.net",
suffixe_agent,
),
agent_url=agent_url, agent_url=agent_url,
archive_suggest_days=_env_int("KANBANTE_ARCHIVE_SUGGEST_DAYS", 180), archive_suggest_days=_env_int("KANBANTE_ARCHIVE_SUGGEST_DAYS", 180),
agent_evenements_url=agent_evenements_url, agent_evenements_url=agent_evenements_url,
+1
View File
@@ -2250,6 +2250,7 @@ def render(
"flowdeck": _urls.flowdeck_url, "flowdeck": _urls.flowdeck_url,
"tiktak": _urls.tiktak_url, "tiktak": _urls.tiktak_url,
"kanbante": _urls.public_url, "kanbante": _urls.public_url,
"shaarit": _urls.shaarit_url,
}, },
) )
context.setdefault("agent_url", _urls.agent_url) context.setdefault("agent_url", _urls.agent_url)