Skip to main content

event-routing-backends

PyPI CI Codecov Documentation Supported Python versions License

Various backends for retransmitting edX LMS events to external services.

Overview

event-routing-backends contains plugins for the event-tracking app that is installed as a part of edx-platform. It provides a backend that can take events and re-transmit them to external services. It also provides some new processers that can convert edx-platform events into other formats.

Currently work to support xAPI and Caliper event formats is in progress.

See OEP 26 for background; the xAPI and Caliper subdocuments in particular include a specification of how LMS events will be translated to the format of the respective protocols.

Documentation

Documentation for this repo is published to Read the Docs

License

The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome. Please read How To Contribute for details. should be followed for all Open edX projects.

The pull request description template should be automatically applied if you are creating a pull request from GitHub. Otherwise you can find it at PULL_REQUEST_TEMPLATE.md.

The issue report template should be automatically applied if you are creating an issue on GitHub as well. Otherwise you can find it at ISSUE_TEMPLATE.md.

Reporting Security Issues

Please do not report security issues in public. Please email security@openedx.org.

Getting Help

If you’re having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.

Our real-time conversations are on Slack. You can request a Slack invitation, then join our community Slack workspace.

For more information about these options, see the Getting Help page.

Change Log

[9.3.6]

  • Fixes issues where the context user is not the same as the data user, such as enrolling uses via the Instructor Dashboard

[9.3.5]

  • Adding django52 support.

[9.3.3]

  • Fixes bad decoding of unicode characrters during json dumps

[9.3.2]

  • Fixes issues with gzip files and duplicated events

[9.3.0]

  • Support use of ERB for transforming non-openedx events

[9.2.1]

  • Add support for either ‘whitelist’ or ‘registry.mapping’ options (whitelist introduced in v9.0.0)

[9.2.0]

  • Add discussion reference to comments and responses xAPI events

[9.1.0]

  • Add python 3.11 and 3.12 support

[9.0.1]

  • Fix an issue with the event routing backend async task to not find the event-tracking backend.

[9.0.0]

  • BREAKING CHANGE: Use a single entry point for all event routing backends. which allows to easily switch bettwen celery and the event bus for the backends.

[8.3.0]

  • Allow to use any configured engine to replay tracking logs

[8.2.0]

  • Add support for batching for EventsRouter.

[8.1.2]

  • Add grade.now_* events to the xAPI supported events list.

[8.1.1]

  • Dinamically get the xblock version from the event.

[8.1.0]

  • Add support to consume tracking logs from the event bus.

[8.0.0]

  • BREAKING CHANGE: Add transformer argument to openedx dynamic filter.

[7.2.0]

  • Add support for usernames that are numeric.

[7.1.0]

  • Add support for openedx-filter that basically allows to extend or change the standard behavior

[7.0.2]

  • Ensure lists of answers in problem_check are properly serialized to JSON so they can be parsed downstream

    Note: Old events cannot be updated, the log must be replayed (if possible).

[7.0.1]

  • Do not send events for unknown courses

[7.0.0]

  • Multi-question problem_check tracking log statements will now be split into one xAPI statement for each question

[6.2.0]

  • Add support for completion events

[6.1.0]

  • Add support for exam attempts events

[6.0.0]

  • Do not send events for unknown users

[5.5.6]

  • upgrading deprecated djfernet with django-fernet-fields-v2

[5.4.0]

  • Add support for the edx.course.enrollment.mode_changed event

[5.3.1]

  • Allow External ID type to fall back to LTI on older versions of edx-platform to preserve backward compatibility

[5.3.0]

  • Use proper externalId types XAPI and CALIPER instead of LTI

  • Make user identifier in xAPI events configurable

  • Switch from edx-sphinx-theme to sphinx-book-theme since the former is deprecated

  • Make id of xAPI statements idempotent

[5.2.2]

  • Rename toggle_warnings to toggle_warning for consistency with setting_warning.

  • Added session id to all events

  • add support for video interaction events.

  • Replaced eventVersion with transformerVersion to include semantic version of event-routing-backend package.

[5.2.1]

  • Added video_complete event to xAPI backend and fixed broken links in documentation

[5.2.0]

  • Added Support for Django4 and used djfernet instead of django-fernet-fields

  • Removed Django22, 30 and 31 support

  • Constrained “click” to 7.1.2 as edx-celeryutils constraints the version to this package

[4.1.1]

  • Switched from jsonfield2 to jsonfield as the earlier one has archived and merged back in the latter one.

[4.1.0]

  • Added support for django3.0, 3.1 and 3.2

[4.0.1]

  • Change a noisy INFO log message in TransformerRegistry.register() to DEBUG and fix two logging typos.

[4.0.0]

  • Breaking change: Rename CaliperEnvelopProcessor to CaliperEnvelopeProcessor and rename module accordingly (typo fix)

[3.0.2]

[3.0.1]

This tag is a re-release of version 3.0.0. (Failed to bump internal version, though.)

[3.0.0]

  • Breaking change: Caliper and xAPI processors will reject events unless the CALIPER_EVENTS_ENABLED and XAPI_EVENTS_ENABLED Django settings are enabled, respectively.

[2.0.0]

(no changelog recorded)

[1.0.0] - 2020-11-09

  • Dropped support for Python 3.5

[0.2.0] - 2020-11-06

  • caliper transformer backend

  • event routing backend

[0.1.0] - 2020-09-22

  • First release on PyPI.

Metadata

Release files for edx-event-routing-backends 10.1.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 edx-event-routing-backends 10.1.0
File Size Uploaded
edx_event_routing_backends-10.1.0.tar.gz 270.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for edx-event-routing-backends 10.1.0
File Interpreter ABI Platform
edx_event_routing_backends-10.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 364.4 kB

Release files / edx_event_routing_backends-10.1.0.tar.gz

Download URL edx_event_routing_backends-10.1.0.tar.gz
Size 270.8 kB
Tags Source
SHA-256 checksum
How to use checksums
11e375c1051a28b3126046fe2a6793b1773022c77a14c606e5d077a17cc6907c
BLAKE2b-256 checksum
How to use checksums
35f5b44fbda438f8c302b4573acc3e8c69e758cc1a79be99464b6e4822cb4357
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / edx_event_routing_backends-10.1.0-py3-none-any.whl

Download URL edx_event_routing_backends-10.1.0-py3-none-any.whl
Size 93.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b7c0df70904e116943a2ebeba6713271c0a94b4ea48a5df05def81e3640bac23
BLAKE2b-256 checksum
How to use checksums
7e30121990c90edb64474f7506f491a8d92f96307fc06ca24e7f30b98c21f048
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

10.1.0 This release

2 release files

10.0.0

2 release files

9.3.8

2 release files

9.3.6

2 release files

9.3.5

2 release files

9.3.4

2 release files

9.3.3

2 release files

9.3.2

2 release files

9.3.1

2 release files

9.3.0

2 release files

9.2.1

2 release files

9.2.0

2 release files

9.1.0

2 release files

9.0.1

2 release files

9.0.0

2 release files

8.3.1

2 release files

8.3.0

2 release files

8.2.0

2 release files

8.1.2

2 release files

8.1.1

2 release files

8.1.0

2 release files

8.0.0

2 release files

7.2.0

2 release files

7.1.0

2 release files

7.0.2

2 release files

7.0.1

2 release files

7.0.0

2 release files

6.2.0

2 release files

6.1.0

2 release files

6.0.0

2 release files

5.6.0

2 release files

5.5.6

2 release files

5.5.5

2 release files

5.5.4

2 release files

5.5.3

2 release files

5.5.2

2 release files

5.5.0

2 release files

5.4.0

2 release files

5.3.1

2 release files

5.3.0

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.0.2

2 release files

3.0.0

2 release files

2.0.0

2 release files

1.0.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

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