Files
werkregie/doc/prs/2026-10-11-PR#23-taiga-api.md
claude-code 801c9109d1
werkator build succeeded after 00:39
Taiga's API address from its conf.json (#23)
Co-authored-by: claude-code <claude-code@javagil.de>
2026-10-11 12:33:50 +02:00

75 lines
2.6 KiB
Markdown

# PR#23: Taiga's API Address from Its conf.json
> **WARNING:** This document describes only the change applied in this PR.
> It may already be outdated once the next PR is merged.
> Historic PR documentation is not maintained along with new PRs; treat it as a snapshot.
## Related Links
- [werkregie PR#21](https://git.javagil.de/mi/werkregie/pulls/21): the Taiga source.
## Problem
werkregie PR#21 assumed Taiga's API below the web address, at `<url>/api/v1`.
The user's Taiga serves its API from a host of its own;
below the web address it answers every path with the page of its web app.
Taiga's own web app finds its API in `<url>/conf.json`, field `api`.
## Non-Goals
- No other change of the Taiga source.
## Specification
### Feature: the address of Taiga's API
#### Scenario#23.01: the API where conf.json says
&hellip; so that a Taiga with its API on a host of its own works with its web address alone.
- **Given** a Taiga whose `conf.json` names its API at another address
- **When** the dashboard reads it
- **Then** login and reading go to that address
##### Verified by
- [TaigaSourceTest](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSourceTest.kt): "the API lies where Taiga's conf.json says, e.g. on a host of its own".
#### Scenario#23.02: a configured apiUrl wins
&hellip; so that the user can name the API where `conf.json` is wrong or missing.
- **Given** a task board with `apiUrl`
- **When** the dashboard reads it
- **Then** login and reading go to `apiUrl`, whatever `conf.json` says
##### Verified by
- [TaigaSourceTest](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSourceTest.kt): "a configured apiUrl wins over conf.json".
#### Scenario#23.03: without a usable conf.json the API lies below the pages
&hellip; so that a Taiga with its API at `<url>/api/v1` still works.
- **Given** a Taiga without `conf.json`, or one that answers it with its web page
- **When** the dashboard reads it
- **Then** login and reading go to `<url>/api/v1`
##### Verified by
- [TaigaSourceTest](../../dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSourceTest.kt): "a conf.json that is a web page leaves the API below the pages";
the older tests run against a fake without `conf.json`.
## Solution
- `TaigaSource` asks `<url>/conf.json` once for the field `api`;
a 404 or a web page leads to `<url>/api/v1`, a network error is not cached.
- `apiUrl` in the task board overrides it.
- A missing user, password or project is reported before any request.
- The example configurations, `dashboard/README.md` and the Werkbaum name it.
- Version 0.9.2.
## Open Questions
None.