Skip to main content

Maintainance Status GitHub Actions Workflow Test Status PyPI - Version

Eox-core is an openedx plugin for the edx-platform, and part of the Edunext Open edX Extensions (aka EOX), that adds multiple API endpoints to extend its functionality and avoid changing the base code directly. These API endpoints include bulk creation of pre-activated users (for example, skip sending an activation email), enrollments, and pre-enrollment operations.

Installation

  1. Add this plugin in your Tutor config.yml with the OPENEDX_EXTRA_PIP_REQUIREMENTS setting.

    OPENEDX_EXTRA_PIP_REQUIREMENTS:
       - eox-core=={{version}} # basic installation
       - eox-core{{requirements}}=={{version}} # requeriments e.g. [sentry,tpa]. Useful for integration with third-party applications.
  2. Save the configuration with tutor config save.

  3. Build an open edx image with tutor images build openedx.

  4. Launch your platform with tutor local launch.

Note: To use all the features, you need to have the tutor-forum plugin and the eox-tenant plugin.

Features

  • Support redirections with middleware.

  • Add pipelines for authentication.

  • Add a group of APIs.

    Eox-core APIs

Usage

See the How to section for guidance on middleware, pipeline and API usage.

Compatibility Notes

Open edX Release

Version

Ironwood

< 4.0

Juniper

>= 3.0 < 5.0

Koa

>= 4.9 < 6.0

Lilac

>= 4.9 < 6.0

Maple

>= 6.0 < 11.0

Nutmeg

>= 7.0 < 11.0

Olive

>= 8.0 < 11.0

Palm

>= 9.0 < 11.0

Quince

>= 10.0 < 12.0

Redwood

>= 10.5.1

Sumac

>= 11.1.0

Teak

>= 12.0.0

Ulmo

>= 12.2.0

Verawood

>= 12.4.0

The plugin is configured for the latest release (Teak). The following changes in the plugin settings should be applied in order to be used for previous releases.

Maple

EOX_CORE_PRE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.pre_enrollment_l_v1"
EOX_CORE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.enrollment_l_v1"

Nutmeg

EOX_CORE_PRE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.pre_enrollment_l_v1"
EOX_CORE_ENROLLMENT_BACKEND: "eox_core.edxapp_wrapper.backends.enrollment_l_v1"

These settings can be changed in eox_core/settings/common.py or, in the instance settings.

🚨 If the release you are looking for is not listed, please note:

  • If the Open edX release is compatible with the current eox-core version (see Compatibility Notes), the default configuration is sufficient.

  • If incompatible, you can refer to the README from the relevant version tag for configuration details (e.g., v6.2.1 README).

Integrations with third-party services

The plugin offers some integrations listed below:

  1. Sentry: This service allows tracking the errors generated on edx-platform. Check more details at https://sentry.io/welcome/.

    To enable the integration, follow the steps below:

    • Install the plugin with Sentry support (extras_require [sentry]).

    • Sign up/in your sentry account and create a new Django application integration.

    • Get the DSN for your integration. This is a unique identifier for your application.

    • Setup the following configuration values for edx-platform:

      EOX_CORE_SENTRY_INTEGRATION_DSN: <your DSN value>
      EOX_CORE_SENTRY_IGNORED_ERRORS: [] # optional
      EOX_CORE_SENTRY_EXTRA_OPTIONS: {} # optional
      • EOX_CORE_SENTRY_INTEGRATION_DSN: By default the setting is None, which disables the sentry integration.

      • EOX_CORE_SENTRY_IGNORED_ERRORS: List of the exceptions you want to ignore (see below for a reference).

      • EOX_CORE_SENTRY_EXTRA_OPTIONS Dictionary with extra options to be passed to the sentry client. For instance, it can be defined as:

      EOX_CORE_SENTRY_IGNORED_ERRORS: [
        'xmodule.exceptions.NotFoundError',
        'openedx.core.djangoapps.user_authn.exceptions.AuthFailedError',
      ]
      EOX_CORE_SENTRY_EXTRA_OPTIONS:
          experiments:
             profiles_sample_rate: 0.5
          another_client_parameter: 'value'

Auditing Django views

Most views in eox-core use an auditing decorator, defined in our custom library, eox-audit-model, that helps save relevant information about non-idempotent operations. By default, this functionality is turned on. To check your auditing records go to Django sysadmin and find DJANGO EDUNEXT AUDIT MODEL.

You can check the eox-audit-model documentation for more information.

Development

You can find more information about testing in the Help for devs doc.

How to Contribute

Contributions are welcome! See our CONTRIBUTING file for more information – it also contains guidelines for how to maintain high code quality, which will make your contribution more likely to be accepted.

License

This software is licensed under the terms of the AGPLv3. See the LICENSE file for details.

Metadata

Release files for eox-core 12.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eox-core 12.4.0
File Size Uploaded
eox_core-12.4.0.tar.gz 119.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eox-core 12.4.0
File Interpreter ABI Platform
eox_core-12.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 288.2 kB

Release files / eox_core-12.4.0.tar.gz

Download URL eox_core-12.4.0.tar.gz
Size 119.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c9ca2b1f8864e8692d624e413cc0d4d349fe782fdffa25fd8b43e3dbf689a42a
BLAKE2b-256 checksum
How to use checksums
bfd35e9a039323027fee6a3e9881f6a594f7978b5ec10c9c74778ce5593c1de9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / eox_core-12.4.0-py3-none-any.whl

Download URL eox_core-12.4.0-py3-none-any.whl
Size 168.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51561ca0f58ee090ef497be71a6cb21e071ea78ae7ec8611cc0b3d375fd51b5f
BLAKE2b-256 checksum
How to use checksums
f056b124a1a2dada247ffe236715eee498fa3defc9f7f3110d9c29e11932ef6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

12.4.0 This release

2 release files

12.0.0

2 release files

11.1.0

2 release files

11.0.0

2 release files

10.6.0

2 release files

10.5.1

2 release files

10.3.0

2 release files

10.2.0

2 release files

9.1.1

2 release files

9.1.0

2 release files

9.0.0

2 release files

8.1.0

2 release files

8.0.0

2 release files

7.2.3

2 release files

7.2.2

2 release files

7.2.1

2 release files

7.0.0

2 release files

6.2.1

2 release files

6.1.1

2 release files

6.1.0

2 release files

6.0.2

2 release files

6.0.1

2 release files

5.1.1

2 release files

5.1.0

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

4.17.0

2 release files

4.16.2

2 release files

4.16.1

2 release files

4.16.0

2 release files

4.15.1

2 release files

4.14.0

2 release files

4.13.2

2 release files

4.13.1

2 release files

4.13.0

2 release files

4.12.0

2 release files

4.11.0

2 release files

4.10.0

2 release files

4.9.0

2 release files

4.8.0

2 release files

4.7.0

2 release files

4.6.0

2 release files

4.5.1

2 release files

4.5.0

2 release files

4.4.1

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.14.0

2 release files

2.13.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page