Ignis FHIR server — Bruno collection
Bruno requests for poking at a running Ignis FHIR API by hand.
Setup
- Open Collection → this
eng/brunofolder, then select the ignis-local environment. - Fill in
clientSecretin the environment editor. It's a Bruno secret variable (never committed); the dev value matchesignis-clientinappsettings.json. - Disable TLS verification for the collection (self-signed dev cert).
- Run the API, then run Auth → Get token: it stores
accessToken, which every request sends as a Bearer header. Re-run it on 401.
Scoped operations
Most requests need no scope. Exceptions:
| Request | Scope | Also needs |
|---|---|---|
| Maintenance → Rebuild index | maintenance/database.write | — |
| Maintenance → Clear store | maintenance/database.destructive | AllowClearStore flag |
| Import → Archive import (+ limits) | operations.import | AllowImport flag |
The default token has no scopes, so these return 403. To fix: add the scopes
to the ignis-client entry's AllowedScopes in appsettings.local.json
(otherwise the token request fails with invalid_scope), then add a
space-separated scope field to the Get token body and re-run it. A missing
feature flag returns 404/503.
Gotchas
- Keep
baseUrlandtokenUrlon the samehttps://localhost:5201origin — an http→https redirect drops theAuthorizationheader (→ 401). - Bruno's built-in collection OAuth2 didn't attach the token reliably, hence the explicit Get token request + Bearer variable.