Standalone Open edX plugin for admin-only course deletion from Studio.
backend/Django app (delete_course_plugin) exposing API + admin modelfrontend/reusable Authoring MFE widget package (@openedx/frontend-component-delete-course)tutor/Tutor plugin that injects backend/frontend into Open edX and Authoring MFE builds
POST /delete_course_plugin/v1/courses/<course_key>/delete/
Body:
{
"reason": "optional"
}DeletedCourseRecord- Admin label:
Deleted course records
Install the Tutor plugin package:
pip install tutor-contrib-delete-courseEnable plugin:
tutor plugins enable delete-courseRebuild images so backend + authoring frontend package are injected:
tutor images build openedx mfeApply migrations in CMS:
tutor local run cms ./manage.py cms migrate delete_course_pluginRestart services:
tutor local restart cms lms mfeFor local development from this repo root:
git clone git@github.com:Abstract-Tech/tutor-contrib-delete-course.git
cd tutor-contrib-delete-course
pip install -e .
tutor plugins enable delete-course
tutor images build openedx-dev mfe
tutor mounts add cms:/path/to/tutor-contrib-delete-course/backend:/openedx/delete-course-plugin-backendIf you are using a locally mounted mfe/frontend-app-authoring, local env.config.jsx can still be used for dev.
For staging/production, use the Tutor plugin integration in tutor/ instead of manual env config edits.
- Add a soft-delete/archive backup flow for deleted courses so staff/admin can restore a deleted course within a configurable retention window (for example, 30 days), after which the course is permanently deleted.