Background

Open edX is a very powerful platform and can be extended in many ways. This document describes the best practices that should be used to add new plugin entry points which allow any installed Python library to provide new capabilities.

Technical Details

Open edX uses Stevedore from Open Stack to provide support for plugins. There are a few steps necessary to declare your new entry point:

Example 1: Block Transformers

The Course Blocks API provides a plugin mechanism to allow new transformers to be added. 

Example 2: Course Tabs

The tabs shown for a course are defined as plugins, so that features can introduce new ones.

For more details, see Adding a new course tab.