edx-event-routing-backends


Nameedx-event-routing-backends JSON
Version 9.0.0 PyPI version JSON
download
home_pagehttps://github.com/openedx/event-routing-backends
SummaryVarious backends for receiving edX LMS events.
upload_time2024-04-02 20:17:20
maintainerNone
docs_urlNone
authoredX
requires_python>=3.8
licenseAGPL 3.0
keywords python edx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            event-routing-backends
=============================

|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge|

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.

.. _event-tracking: https://github.com/openedx/event-tracking
.. _OEP 26: https://open-edx-proposals.readthedocs.io/en/latest/oep-0026-arch-realtime-events.html

Documentation
-------------

Documentation for this repo is published to `Read the Docs <https://event-routing-backends.readthedocs.io/en/latest/>`_

License
-------

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

Please see `LICENSE.txt <LICENSE.txt>`_ for details.

How To Contribute
-----------------

Contributions are very welcome.
Please read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`__ 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 <.github/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 <.github/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 <https://openedx.org/getting-help>`__ page.

.. _Slack invitation: https://openedx.org/slack
.. _community Slack workspace: https://openedx.slack.com/

.. |pypi-badge| image:: https://img.shields.io/pypi/v/event-routing-backends.svg
    :target: https://pypi.python.org/pypi/event-routing-backends/
    :alt: PyPI

.. |ci-badge| image:: https://github.com/openedx/event-routing-backends/workflows/Python%20CI/badge.svg?branch=master
    :target: https://github.com/openedx/event-routing-backends/actions?query=workflow%3A%22Python+CI%22
    :alt: CI

.. |codecov-badge| image:: https://codecov.io/github/edx/event-routing-backends/coverage.svg?branch=master
    :target: https://codecov.io/github/edx/event-routing-backends?branch=master
    :alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/event-routing-backends/badge/?version=latest
    :target: https://event-routing-backends.readthedocs.io/en/latest/
    :alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/event-routing-backends.svg
    :target: https://pypi.python.org/pypi/event-routing-backends/
    :alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/edx/event-routing-backends.svg
    :target: https://github.com/openedx/event-routing-backends/blob/master/LICENSE.txt
    :alt: License


Change Log
----------

..
   All enhancements and patches to event_routing_backends will be documented
   in this file.  It adheres to the structure of https://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (https://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
~~~~~~~~~~

[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]
~~~~~~~
* Added more directions for local testing
* changed how event data is enveloped for caliper events
* changed url to point from http://purl.imsglobal.org/ctx/caliper/v1p1 to http://purl.imsglobal.org/ctx/caliper/v1p2

[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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/openedx/event-routing-backends",
    "name": "edx-event-routing-backends",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Python edx",
    "author": "edX",
    "author_email": "oscm@edx.org",
    "download_url": "https://files.pythonhosted.org/packages/be/5f/ff667e9e674234b87630dd4d8868708405fe3867df24537462d6247bbf6f/edx-event-routing-backends-9.0.0.tar.gz",
    "platform": null,
    "description": "event-routing-backends\n=============================\n\n|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|\n|license-badge|\n\nVarious backends for retransmitting edX LMS events to external services.\n\nOverview\n--------\n\nevent-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.\n\nCurrently work to support xAPI and Caliper event formats is in progress.\n\nSee `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.\n\n.. _event-tracking: https://github.com/openedx/event-tracking\n.. _OEP 26: https://open-edx-proposals.readthedocs.io/en/latest/oep-0026-arch-realtime-events.html\n\nDocumentation\n-------------\n\nDocumentation for this repo is published to `Read the Docs <https://event-routing-backends.readthedocs.io/en/latest/>`_\n\nLicense\n-------\n\nThe code in this repository is licensed under the AGPL 3.0 unless\notherwise noted.\n\nPlease see `LICENSE.txt <LICENSE.txt>`_ for details.\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\nPlease read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`__ for details.\nshould be followed for all Open edX projects.\n\nThe pull request description template should be automatically applied if you are creating a pull request from GitHub. Otherwise you\ncan find it at `PULL_REQUEST_TEMPLATE.md <.github/PULL_REQUEST_TEMPLATE.md>`_.\n\nThe issue report template should be automatically applied if you are creating an issue on GitHub as well. Otherwise you\ncan find it at `ISSUE_TEMPLATE.md <.github/ISSUE_TEMPLATE.md>`_.\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\nGetting Help\n------------\n\nIf you're having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.\n\nOur real-time conversations are on Slack. You can request a `Slack invitation`_, then join our `community Slack workspace`_.\n\nFor more information about these options, see the `Getting Help <https://openedx.org/getting-help>`__ page.\n\n.. _Slack invitation: https://openedx.org/slack\n.. _community Slack workspace: https://openedx.slack.com/\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/event-routing-backends.svg\n    :target: https://pypi.python.org/pypi/event-routing-backends/\n    :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/openedx/event-routing-backends/workflows/Python%20CI/badge.svg?branch=master\n    :target: https://github.com/openedx/event-routing-backends/actions?query=workflow%3A%22Python+CI%22\n    :alt: CI\n\n.. |codecov-badge| image:: https://codecov.io/github/edx/event-routing-backends/coverage.svg?branch=master\n    :target: https://codecov.io/github/edx/event-routing-backends?branch=master\n    :alt: Codecov\n\n.. |doc-badge| image:: https://readthedocs.org/projects/event-routing-backends/badge/?version=latest\n    :target: https://event-routing-backends.readthedocs.io/en/latest/\n    :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/event-routing-backends.svg\n    :target: https://pypi.python.org/pypi/event-routing-backends/\n    :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/edx/event-routing-backends.svg\n    :target: https://github.com/openedx/event-routing-backends/blob/master/LICENSE.txt\n    :alt: License\n\n\nChange Log\n----------\n\n..\n   All enhancements and patches to event_routing_backends will be documented\n   in this file.  It adheres to the structure of https://keepachangelog.com/ ,\n   but in reStructuredText instead of Markdown (for ease of incorporation into\n   Sphinx documentation and the PyPI description).\n\n   This project adheres to Semantic Versioning (https://semver.org/).\n\n.. There should always be an \"Unreleased\" section for changes pending release.\n\nUnreleased\n~~~~~~~~~~\n\n[9.0.0]\n~~~~~~~\n\n* **BREAKING CHANGE**: Use a single entry point for all event routing backends.\n  which allows to easily switch bettwen celery and the event bus for the backends.\n\n[8.3.0]\n\n* Allow to use any configured engine to replay tracking logs\n\n[8.2.0]\n\n* Add support for batching for EventsRouter.\n\n[8.1.2]\n\n* Add grade.now_* events to the xAPI supported events list.\n\n[8.1.1]\n\n* Dinamically get the xblock version from the event.\n\n[8.1.0]\n~~~~~~~\n\n* Add support to consume tracking logs from the event bus.\n\n[8.0.0]\n~~~~~~~\n\n* **BREAKING CHANGE**: Add transformer argument to openedx dynamic filter.\n\n[7.2.0]\n~~~~~~~\n\n* Add support for usernames that are numeric.\n\n[7.1.0]\n~~~~~~~\n\n* Add support for openedx-filter that basically allows to extend or change the standard behavior\n\n[7.0.2]\n~~~~~~~\n\n* Ensure lists of answers in problem_check are properly serialized to JSON so they\n  can be parsed downstream\n\n  **Note: Old events cannot be updated, the log must be replayed (if possible).**\n\n[7.0.1]\n~~~~~~~\n\n* Do not send events for unknown courses\n\n[7.0.0]\n~~~~~~~\n\n* Multi-question problem_check tracking log statements will now be split into one xAPI statement for each question\n\n[6.2.0]\n~~~~~~~\n\n* Add support for completion events\n\n[6.1.0]\n~~~~~~~\n\n* Add support for exam attempts events\n\n[6.0.0]\n~~~~~~~\n\n* Do not send events for unknown users\n\n[5.5.6]\n~~~~~~~\n\n* upgrading deprecated `djfernet` with `django-fernet-fields-v2`\n\n[5.4.0]\n~~~~~~~\n\n* Add support for the ``edx.course.enrollment.mode_changed`` event\n\n[5.3.1]\n~~~~~~~\n\n* Allow External ID type to fall back to LTI on older versions of edx-platform\n  to preserve backward compatibility\n\n[5.3.0]\n~~~~~~~\n\n* Use proper externalId types XAPI and CALIPER instead of LTI\n* Make user identifier in xAPI events configurable\n* Switch from ``edx-sphinx-theme`` to ``sphinx-book-theme`` since the former is\n  deprecated\n* Make id of xAPI statements idempotent\n\n[5.2.2]\n~~~~~~~\n\n* Rename toggle_warnings to toggle_warning for consistency with setting_warning.\n* Added session id to all events\n* add support for video interaction events.\n* Replaced eventVersion with transformerVersion to include semantic version of event-routing-backend package.\n\n[5.2.1]\n~~~~~~~\n\n* Added `video_complete` event to xAPI backend and fixed broken links in documentation\n\n[5.2.0]\n~~~~~~~\n\n* Added Support for Django4 and used djfernet instead of django-fernet-fields\n* Removed Django22, 30 and 31 support\n* Constrained \"click\" to 7.1.2 as edx-celeryutils constraints the version to this package\n\n\n[4.1.1]\n~~~~~~~\n\n* Switched from jsonfield2 to jsonfield as the earlier one has archived and merged back in the latter one.\n\n[4.1.0]\n~~~~~~~\n\n* Added support for django3.0, 3.1 and 3.2\n\n[4.0.1]\n~~~~~~~\n\n* Change a noisy INFO log message in ``TransformerRegistry.register()`` to DEBUG and fix two logging typos.\n\n[4.0.0]\n~~~~~~~\n\n* **Breaking change**: Rename ``CaliperEnvelopProcessor`` to ``CaliperEnvelopeProcessor`` and rename module accordingly (typo fix)\n\n[3.0.2]\n~~~~~~~\n* Added more directions for local testing\n* changed how event data is enveloped for caliper events\n* changed url to point from http://purl.imsglobal.org/ctx/caliper/v1p1 to http://purl.imsglobal.org/ctx/caliper/v1p2\n\n[3.0.1]\n~~~~~~~\n\nThis tag is a re-release of version 3.0.0. (Failed to bump internal version, though.)\n\n[3.0.0]\n~~~~~~~\n\n* **Breaking change**: Caliper and xAPI processors will reject events unless the ``CALIPER_EVENTS_ENABLED`` and ``XAPI_EVENTS_ENABLED`` Django settings are enabled, respectively.\n\n\n[2.0.0]\n~~~~~~~\n\n(no changelog recorded)\n\n[1.0.0] - 2020-11-09\n~~~~~~~~~~~~~~~~~~~~\n\n* Dropped support for Python 3.5\n\n[0.2.0] - 2020-11-06\n~~~~~~~~~~~~~~~~~~~~\n\n* caliper transformer backend\n* event routing backend\n\n[0.1.0] - 2020-09-22\n~~~~~~~~~~~~~~~~~~~~\n\n* First release on PyPI.\n",
    "bugtrack_url": null,
    "license": "AGPL 3.0",
    "summary": "Various backends for receiving edX LMS events.",
    "version": "9.0.0",
    "project_urls": {
        "Homepage": "https://github.com/openedx/event-routing-backends"
    },
    "split_keywords": [
        "python",
        "edx"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "377e130b581661443c5390e0771de60138c8bf787bb3e31ba0db12bd7a2cc05a",
                "md5": "63dcc2e1b65e0ea7c23b3f3e08cfa29f",
                "sha256": "33bec75be57a95096a5f2fad28101efd3f84662aff1feb9c6b82fad0dccdb884"
            },
            "downloads": -1,
            "filename": "edx_event_routing_backends-9.0.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "63dcc2e1b65e0ea7c23b3f3e08cfa29f",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.8",
            "size": 115041,
            "upload_time": "2024-04-02T20:17:17",
            "upload_time_iso_8601": "2024-04-02T20:17:17.278194Z",
            "url": "https://files.pythonhosted.org/packages/37/7e/130b581661443c5390e0771de60138c8bf787bb3e31ba0db12bd7a2cc05a/edx_event_routing_backends-9.0.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "be5fff667e9e674234b87630dd4d8868708405fe3867df24537462d6247bbf6f",
                "md5": "848aa818e03ffae9490b0cbc97f670d7",
                "sha256": "db3cc88b2d682ac68cd26e4f5f256f753c2833a76ecf3a5f31f1a47008990042"
            },
            "downloads": -1,
            "filename": "edx-event-routing-backends-9.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "848aa818e03ffae9490b0cbc97f670d7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 86225,
            "upload_time": "2024-04-02T20:17:20",
            "upload_time_iso_8601": "2024-04-02T20:17:20.369159Z",
            "url": "https://files.pythonhosted.org/packages/be/5f/ff667e9e674234b87630dd4d8868708405fe3867df24537462d6247bbf6f/edx-event-routing-backends-9.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-02 20:17:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "openedx",
    "github_project": "event-routing-backends",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "edx-event-routing-backends"
}
        
edX
Elapsed time: 0.25894s