All Docs
Getting StartedCSI Teachable Replacement AppUpdated March 13, 2026

What's New in v1.0.19: Lesson Attachment Upload & Management API

What's New in v1.0.19: Lesson Attachment Upload & Management API

Version 1.0.19 ships the Lesson Attachment Upload & Management API — a complete workflow that lets instructors attach downloadable files to lessons without any manual file handling on the platform's application servers.


The Problem It Solves

Before this release, lessons could only carry text content and embedded video links. Instructors who wanted to distribute worksheets, slide decks, reference PDFs, or supplementary images had no native mechanism to do so inside the platform.


What's Included

Presigned Upload URL Generation

When an instructor wants to attach a file, the platform issues a short-lived presigned URL tied to a specific lesson and pending attachment record. The file travels directly from the instructor's client to object storage — it never passes through the application server, keeping upload performance high and server load low.

Attachment Metadata Persistence

Once the file reaches storage, the instructor confirms the upload via the API. At that point the platform records the attachment's filename, MIME type, file size, and creation timestamp, and links it to the lesson. Learners can immediately see and download the file.

Attachment Deletion

Attachments can be deleted at any time. A single API call removes both the stored file object and the metadata record — no orphaned files, no dangling references.


Supported File Types

  • PDF documents — ideal for worksheets, guides, and reading materials
  • Images — diagrams, charts, reference visuals
  • General downloadable files — templates, data files, and more

Quick Integration Guide

Integrating attachment uploads into your instructor-facing UI takes three steps:

  1. Request a presigned URL from POST /api/lessons/{lessonId}/attachments/presigned-url.
  2. Upload the file binary directly to the returned uploadUrl using an HTTP PUT.
  3. Confirm the upload at POST /api/lessons/{lessonId}/attachments/{attachmentId}/confirm.

For full request/response details see the Lesson Attachment Upload & Management feature guide.


Compatibility

  • No breaking changes to existing lesson or course endpoints.
  • Available to all instructor-scoped API tokens.

Released in v1.0.19. See the Changelog for a full version history.