Skip to content

Board API

  • Every route is scoped by path: /v1/<tenant>/<repo>/… — a board is that pair, nothing more.
  • Intake is one line: POST /tasks with { "title": "…", "requested_by": "…" } lands in Triage. A request that has not been scoped is not work in progress.
  • State only moves through /transition. PUT /tasks/:id scopes the four fields but cannot set state — the only way through the machine is the gate, or the gate becomes something you can route around.
  • Access requests, zones, events and evidence hang off the same scope, and every row carries the tenant and repo it belongs to.