opencollection: 1.0.0 info: name: Bookhoard config: proxy: inherit: true config: protocol: http hostname: "" port: "" auth: username: "" password: "" bypassProxy: "" request: auth: type: bearer token: "{{token}}" docs: content: |- # Bookhoard API — executable verification (OpenCollection / Bruno) Every request in this collection is GENERATED from the canonical API docs (docs/developer/api/**). Do not hand-edit request files — edit the doc, then regenerate: go test ./internal/docs -run TestBrunoMirrorsDocs -update Hand-authored exceptions (not generated): - NewDevDBSetup/ — ordered dev-database bootstrap sequence - */scenarios/, media-items/filters, media-items/search — edge-case suites - environments/Bookhoard.yml — variables Run order: NewDevDBSetup (RegisterUser captures {{token}}), then any request. Device-token routes (kobo/koreader/opds) need {{device_token}} or {{kobo_device_token}} in the environment. The docs site (Developer → API) is the single source of truth for shapes; internal/docs/drift_test.go enforces docs-to-routes and docs-to-Bruno parity. type: text/markdown bundled: false extensions: {}