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.