Context

Open edX supports the concept of an “Organization” – that is, a university, business, institution, or other group that publishes content to edx.org, edge.edx.org, or any other instance.

Open edX has always had nominal level of support for tying content to Organizations. The key of every course run, content library, or block usage contains an “org slug” (i.e. organization identifier). For example, in these example keys, one can parse out the organization’s identifier as myOrg, or edX, or State_Univ, respectively.

This scheme is great, but on its own its utility is limited. Since Organizations were not defined in any central location, there was no way to:

So around 2015, database tables representing organizations and organization-course relationships were added to LMS and Studio on edx.org and stage.edx.org. Rules were added to Studio that prevented course runs from being created it their org slug did not map to an Organization in the database.

However, since its inception, the database-backed Organization feature has always been optional in Open edX. Notably, edge.edx.org, which operates as a separate Open edX instance, does not enable database-backed Organizations. This creates complexity when developing new features, as they must be written to handle both Organization-aware and Organization-unaware version of Open edX.

Decision

In 2020, while working on building the next generation of content libraries, we decided it would be best to enable database-backed Organizations on all Open edX environments, include edge.edx.org.

However, we decided not to universally enable a certain aspect of database-backed organizations on all environments: strict validation of the organization identifiers of new course runs. This validation will continue to occur on stage.edx.org and edx.org (and will be expanded to include validation for content libraries), but it will not be turned on for edge.edx.org or the default Open edX installation.

The technical details of the decision are described in this decision record.

Consequences

For edx.org , stage.edx.org, and edge.edx.org, the following changes took effect between November 2020 and January 2021. We aimed to make the changes as non-disruptive as possible.

For other Open edX instances, these changes will be part of the Lilac release (Spring 2020). Migration instructions for operators will be included in the release notes.