feat(backend): Taiga-Proxy — vier schmale Endpunkte, Ziel-URL aus der Server-Konfiguration (D91, #trk.create.proxy)
API First: /taiga/auth, /taiga/projects, /taiga/userstories, /taiga/tasks in der OpenAPI-Spec; TaigaClient/TaigaProperties in de.werkbaum.integration.taiga. Die API-URL kommt aus WERKBAUM_TAIGA_API_URL (nie Request-Parameter — SSRF), das Token je Aufruf im Header X-Taiga-Token (Authorization muessen OpenAPI-Werkzeuge als Header-Parameter ignorieren) und geht als Bearer hinaus; der Server speichert nichts und loggt keine Request-Bodies. Taiga-4xx werden samt _error_message durchgereicht, 5xx/Netz sind 502, unkonfiguriert 503 — und GET /info meldet das Feature (taiga). Tests gegen aufgezeichnete Antwortformen auf einem JDK-HttpServer-Stub (statt WireMock: keine neue Test-Abhaengigkeit, dieselbe Zusicherung); Gegenprobe: ohne den type-Durchreich faellt genau der benannte Test. check gruen, 93 % Coverage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
5a18505571
commit
fd0e730656
@@ -176,6 +176,11 @@ if [ ! -f "$DIR/env" ]; then
|
||||
# Solange der Hash leer ist, bleibt GET /api/v1/documents gesperrt
|
||||
# (D76-Nachtrag 6).
|
||||
WERKBAUM_MASTER_PASSWORD_HASH=
|
||||
|
||||
# Taiga-Proxy (D91): Basis-URL der Taiga-API — nicht des Frontends; bei der
|
||||
# Zielinstanz liegt sie auf einem eigenen Host. Leer = Feature aus;
|
||||
# GET /api/v1/info meldet es (taiga).
|
||||
#WERKBAUM_TAIGA_API_URL=https://plan-api.hostsharing.net/api/v1
|
||||
ENV
|
||||
chmod 600 "$DIR/env"
|
||||
echo " ! $DIR/env angelegt — Master-Passwort-Hash dort eintragen,"
|
||||
|
||||
Reference in New Issue
Block a user