Repository navigation
v0.0.9
Breaking upstream change — this release is required. Loomio moved API-key authentication to an HTTP bearer header and now rejects keys passed in the query string. Every request from v0.0.8 and earlier fails against an updated Loomio instance.
What changed
- Bearer authentication. b2 and b3 now send
Authorization: Bearer <key>; URLs carry no credential. Auth injection moved frombuildUrl()into a single newauthHeaders()insrc/loomio/client.ts. - No configuration change.
LOOMIO_API_KEYandLOOMIO_B3_API_KEYare unchanged — upgrade and restart.
Why it looked like a permissions bug
Loomio answers a query-string key with 403 {"error":"You are not authorized to access this page."} — byte-identical to its response for an invalid key or a missing group role. A rejected auth scheme is therefore indistinguishable from a permissions problem, which sends you hunting for a lost membership. Verified on a live instance:
| scheme | result |
|---|---|
?api_key= |
403 |
Authorization: Bearer |
200 |
| no credential | 403 (same body as ?api_key=) |
tests/loomio-auth.test.ts now pins the scheme so a regression fails in CI instead.
Note
b3 bearer support follows Loomio's published note but is untested here — it needs a server-instance B3_API_KEY, which only Loomio instance operators hold.
See CHANGELOG.md.