Add Course Sources
Attach more source URLs/files to a course DURING intake, then rebuild its document digest.
The course must be awaiting_brief (409 course_not_awaiting_brief otherwise:
after launch the sources are frozen because scene generation may already be
reading them). URLs are stored as-is (create parity); files are validated by the
same validator create uses and uploaded to R2. The new refs are merged into the
course under its row lock (concurrent add-files are serialized). If the merged
source set differs from the current one, a metered digest rebuild is enqueued.
Bounds: at most SOURCE_ADD_MAX_REBUILDS metered builds per course (409
source_rebuild_cap_reached beyond it) and a per-client burst limiter (429). The
response carries the updated source lists and the digest status
(pending while a rebuild runs, ready, or failed).
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Additional source URLs to attach to the course. Stored as-is (create parity: URLs are not pre-validated; the SSRF guard is inside the scrape path).
Additional source files as {name|filename, base64, content_type}. Validated by the SAME validator create uses (type/size/page caps) and uploaded to R2.
Response
Successful Response