feat(backend): /info meldet die Taiga-Web-Basis für Ticket-Links (D91)

WERKBAUM_TAIGA_WEB_URL (das Taiga-Frontend, nicht aus der API-URL
ableitbar) kommt als taigaWeb in GET /api/v1/info — ohne Schrägstrich am
Ende, fehlt unkonfiguriert. deploy-backend.sh zieht die Zeile aus der
lokalen .env idempotent in die Server-Umgebung nach.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-27 17:19:02 +02:00
co-authored by Claude Fable 5
parent 83eb6ff77f
commit 55cade1a65
8 changed files with 50 additions and 3 deletions
@@ -65,6 +65,9 @@ class DocumentsController(
// Feature-Meldung des Taiga-Proxys (D91): Der Editor zeigt die
// Ticket-Aktionen nur, wo ein konfiguriertes Backend antwortet.
taiga = taigaProperties.configured,
// Für die Ticket-Links des Editors (D91-Nachtrag 5); ohne
// abschließenden Schrägstrich, damit der Client schlicht anhängt.
taigaWeb = taigaProperties.webUrl.trimEnd('/').ifBlank { null },
)
)
@@ -21,6 +21,15 @@ data class TaigaProperties(
*/
val apiUrl: String = "",
/**
* Basis-URL des Taiga-**Frontends** (`https://plan.hostsharing.net`) —
* nicht aus der API-URL ableitbar, bei der Zielinstanz liegen beide auf
* verschiedenen Hosts. Nur für die Links des Editors (`GET /info` meldet
* sie als `taigaWeb`); leer heißt: keine Links, die Anlage funktioniert
* trotzdem.
*/
val webUrl: String = "",
/**
* Login-Typ für `POST /auth`: `ldap` (LDAP-Plugin, so die Zielinstanz)
* oder `normal`. Nur der Auth-Endpunkt braucht ihn; bei der angekündigten
@@ -56,6 +56,9 @@ werkbaum:
# bei der Zielinstanz z. B. https://plan-api.hostsharing.net/api/v1
taiga:
api-url: ${WERKBAUM_TAIGA_API_URL:}
# Basis-URL des Taiga-FRONTENDS (z. B. https://plan.hostsharing.net) -
# nicht aus der API-URL ableitbar. Nur fuer die Ticket-Links des Editors.
web-url: ${WERKBAUM_TAIGA_WEB_URL:}
# Login-Typ der Instanz fuer POST /taiga/auth: "ldap" (LDAP-Plugin,
# plan.hostsharing.net) oder "normal".
auth-type: ${WERKBAUM_TAIGA_AUTH_TYPE:ldap}
@@ -872,6 +872,14 @@ components:
true, wenn eine Taiga-Instanz konfiguriert ist
(`werkbaum.taiga.api-url`) - der Editor zeigt die Ticket-Aktionen
im Knoten-Fenster nur dann (D91).
taigaWeb:
type: string
description: >
Basis-URL des Taiga-Frontends (`werkbaum.taiga.web-url`), ohne
abschliessenden Schraegstrich - der Editor baut daraus die Links
zum Oeffnen einer Ticket-Referenz
(`<web>/project/<slug>/us/<ref>` bzw. `.../task/<ref>`).
Fehlt, wenn nicht konfiguriert; das Oeffnen entfaellt dann.
TaigaAuthRequest:
type: object