All Classes and Interfaces
Class
Description
Wraps calls to an external REST API (GitHub, PrairieLearn) with three defenses:
Pacing: consecutive calls are kept at least
paceMs apart, to stay under rate
limits in the first place.Thrown when the API is still failing after all retries; carries a clean one-line message.
A MongoDB document representing a single BibTeX bibliography entry, indexed by the id of the
(SQL) Project it belongs to.
Mongo repository ("collection") for
BibTexEntry documents.Thrown when a request is refused for a reason the client can fix (e.g. a missing PAT or a repo
the stored PAT cannot reach).
Bridge between the lib-jobs library and this app's notion of "current user"; lib-jobs uses it to
stamp createdById/createdByEmail on Job records.
Production MongoDB configuration.
Non-production MongoDB configuration, backed by an embedded in-memory MongoDB instance, similar
to how H2 is used as an in-memory SQL database for these profiles.
The `OpenAPIConfig` class is annotated with OpenAPI definitions including information about the
API and server configuration.
Reloads a user's security context on each request so that role changes (admin/researcher added or
removed in the database) take effect without requiring re-login.
Seeds the admins table from ADMIN_EMAILS on every startup, so that users listed there get
ROLE_ADMIN on login without first needing to be added manually through the Admins page.
Registers a YAML HttpMessageConverter so that endpoints can accept
application/yaml
request bodies (e.g.