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
@@ -206,7 +206,7 @@
|
||||
- [ ] #trk.resolve.map: Map the workflow onto the states (S)
|
||||
- [?] #trk.write: Write the status back (M) :#trk.resolve
|
||||
- [ ] #trk.create: Create tickets from nodes (XL)
|
||||
- [ ] #trk.create.proxy: Backend proxy with named endpoints (M)
|
||||
- [x] #trk.create.proxy: Backend proxy with named endpoints (M)
|
||||
- [ ] #trk.create.login: Log in to Taiga, token stays in the browser (S) :#trk.create.proxy
|
||||
- [ ] #trk.create.project: The project comes from the inherited tag (S) :#not.tag.project
|
||||
- [ ] #trk.create.story: A "create story" action in the node window (S) :#trk.create.login
|
||||
|
||||
Reference in New Issue
Block a user