Commit Graph

4415 Commits

Author SHA1 Message Date
Kyle McCormick
edfd66498b docs: update & improve instructions for GitHub-hosted deps
They have fallen out of date since we switched from Jenkins-
run upgrades to GitHub Actions -run upgrades.
2022-10-20 13:15:46 -04:00
Rebecca Graber
cc0a07d437 chore: update edx-i18n-tools (#31174)
Update edx-i18n-tools to bring in a fix for the transifex pull command.
2022-10-19 12:15:01 -04:00
Michael Roytman
d5ca1448fe Merge pull request #31166 from openedx/mroytman/bump-xblock-lti-consumer-5.0.1
fix: upgrade lti-consumer-xblock library to install LTI 1.3 launch fixes
2022-10-19 08:50:18 -04:00
Matt Hughes
6c89cf80dd chore: increment edx-enterprise version (#31167) 2022-10-18 17:17:46 -04:00
michaelroytman
193bdaf048 fix: upgrade lti-consumer-xblock library to install LTI 1.3 launch fixes
This commit upgrades the version of the lti-consumer-xblock library from version 5.0.0 to version 5.0.1. This new version contains two fixes to the LTI 1.3 launch Flow. These fixes should enable LTI 1.3 launches, which are currently broken.

Please see the CHANGELOG entry for this version for a full description of the fixes: https://github.com/openedx/xblock-lti-consumer/blob/master/CHANGELOG.rst#501---2022-10-17. The commit messages are included below for convenience.

fix: X-Frame-Options DENY response header prevents LTI 1.3 launch
This commit fixes a bug caused by the X-Frame-Options response header. The X-Frame-Options response header indicates to the browser whether a site's content can be loaded within certain tags, including the <iframe> tag. This is a form of clickjacking protection.

In Django, this response header is set by the django.middleware.clickjacking.XFrameOptionsMiddleware middleware. In the edx-platform, by default, X-Frame-Options is set to DENY (see the X_FRAME_OPTIONS Django setting), which means that the response content returned by Django views cannot be loaded within certain tags. However, this behavior can be disabled by decorating views with the django.views.decorators.clickjacking.xframe_options_exempt view decorator.

This creates a problem for LTI 1.3 launches in the edx-platform. When an LTI component is loaded, the LtiConsumerXBlock is loaded via the lms.djangoapps.courseware.views.views.render_xblock_view view. This view is called in an <iframe> tag, but the view is decorated by the xfame_options_exempt decorator, which disables clickjacking protection and communicates to the browser that the content can be loaded in the <iframe> tag.

Once the third-party login request of the LTI 1.3 launch is completed, the LTI tool directs the browser to make a request to the launch_gate_endpoint. This endpoint returns a response, which is an auto-submitting form that makes a POST request - the LTI launch request - to the tool. This view has clickjacking enabled, so the browser blocks the requests, which prevents the launch from occurring.

This commit adds the xframe_options_exempt view decorator to the launch_gate_endpoint view.

Note that LTI 1.1 does not have this bug, because the LTI launch request is handled via the lti_launch_handler. The XBlock runtime handles requests to the LTI handlers via the openedx.core.djangoapps.xblock.rest_api.views.xblock_handler view, which is also decorated by the xframe_options_exempt view decorator.

fix: LTI 1.3 launch URL should be redirect_uri provided by Tool in authentication request
This commit fixes a bug in the way we determine where to send the authentication response - the LTI 1.3 launch message - as part of an LTI 1.3 launch.

According to the 1EdTech Security Framework 1.0, during an LTI 1.3 launch, "the authentication response is sent to the redirect_uri." The redirect_uri is a query or form parameter provided by the tool when it directs the browser to make a request to the Platform's authentication endpoint. However, we currently send the authentication response to the preregistered launch URL - lti_1p3_launch_url in the LtiConsumerXBlock or the LtiConfiguration model. The difference is subtle, but it is important, because the specification indicates the Platform should respect the redirect_uri provided by the Tool, assuming it is a valid redirect_uri.

During the pregistration phase, "the Tool must provide one or multiple redirect URIs that are valid end points where the authorization response can be sent. The number of distinct redirect URIs to be supported by a platform is not specified." Currently, we do not support multiple redirect URIs, so the change is not immediately impactful. However, we should follow the specification and ensure that we return the authentication response to the correct URL.
2022-10-18 16:30:59 -04:00
Edward Zarecor
b6fb69f432 fix: Remove deprecated "rate" XBlock from requirements (#31158)
RateXBlock has been deprecated and moved to openedx-unsupported.

Co-authored-by: Edward Zarecor <ed@tcril.org>
2022-10-18 16:35:48 +00:00
Usama Sadiq
b0774c6d97 fix: remove edx-val pin (#31157)
* fix: remove edx-val pin

Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com>
2022-10-17 15:07:25 +05:00
Usama Sadiq
7296c06b49 Update docutils & Sphinx constraints (#31152)
* fix: remove sphinx and docutils constraint
* fix: pin docutils<0.19 version

Co-authored-by: edX requirements bot <devops+edx-requirements-bot@edx.org>
2022-10-14 11:44:18 +05:00
michaelroytman
6a8cdeeb43 feat: decouple LtiConsumerXBlock.location from LTI 1.3 views
This commit upgrades the version of the lti-consumer-xblock library from version 4.5.0 to version 5.0.0. This new version contains breaking changes to the public Python API published by the library, but it mainly contains code refactors that decouple the LtiConsumerXBlock.location field from the basic LTI 1.3 launches.

LTI 1.3 launches should continue to work unaltered.

The only course staff or instructor facing changes are described below. The access token and keyset URLs displayed in Studio have changed in format.

The old format was:

Access Token URL: https://courses.edx.org/api/lti_consumer/v1/token/block-v1:edX+999+2022Q3+type@lti_consumer+block@714c10a5e4df452da9d058788acb56be
Keyset URL: https://courses.edx.org/api/lti_consumer/v1/public_keysets/block-v1:edX+999+2022Q3+type@lti_consumer+block@714c10a5e4df452da9d058788acb56be

The new format is:

Access Token URL: https://courses.edx.org/api/lti_consumer/v1/token/c3f6af60-dbf2-4f85-8974-4ff870068d43
Keyset URL: https://courses.edx.org/api/lti_consumer/v1/public_keysets/c3f6af60-dbf2-4f85-8974-4ff870068d43

The difference is in the slug at the end of the URL. In the old format, the slug was the UsageKey of the XBlock associated with the LTI integration. In the new format, the slug is the config_id of the LtiConfiguration associated with the LTI integration. This is an iterative step toward decoupling the access_token_endpoint and the public_keyset_endpoint views from the XBlock location field. The XBlock location field appears as the usage_key parameter to both views. We cannot simply remove the usage_key parameter from the views, because existing LTI 1.3 integrations may have been created using the old format, and we need to maintain backwards compatibility. This change, however, prevents new integrations from being created that are coupled to the XBlock. In the future, we may address integrations that use the old format to fully decouple the XBlock from the views.
2022-10-13 12:42:29 -04:00
Kyle McCormick
66dc16c626 chore: upgrades blockstore to 1.2.4 (#31121)
and runs `make upgrade`

Blockstore changeset: https://github.com/openedx/blockstore/compare/1.2.1...openedx:blockstore:1.2.4

Co-authored-by: Jillian Vogel <jill@opencraft.com>
2022-10-13 08:45:07 -04:00
Muhammad Ammar
eb394173ff Merge pull request #31142 from openedx/iahmad/ENT-6295
chore: Update edx-enterprise version
2022-10-12 15:32:45 +05:00
Tim McCormack
fd20dfe51d chore: Unpin newrelic (Confluent Kafka instrumentation bug is fixed) (#31143)
Previously pinned in commit 71686cddb9/PR #31119.

Closes https://github.com/openedx/event-bus-kafka/issues/52
2022-10-11 14:29:16 +00:00
irfanuddinahmad
ca06675d30 chore: Update edx-enterprise version 2022-10-11 17:38:42 +05:00
Muhammad Bilal Tahir
39dd842c37 chore: upgrade learenr-pathway-progress version 2022-10-11 14:43:03 +05:00
edX requirements bot
882f3a9710 chore: Updating Python Requirements 2022-10-11 12:22:45 +05:00
Tim McCormack
71686cddb9 fix: Pin newrelic to unreleased version fixing kafka instrumentation (#31119)
This will allow us to resume producing events with edx-event-bus-kafka
and help validate NR's fix. Unpinning is be tracked in
<https://github.com/openedx/event-bus-kafka/issues/52>.
2022-10-06 16:03:59 +00:00
edX requirements bot
354f825d3e chore: Updating Python Requirements 2022-10-04 11:17:13 +05:00
Rebecca Graber
d2377d348a chore: upgrade edx-event-bus-kafka (#31081)
* chore: upgrade edx-event-bus-kafka
2022-10-03 14:06:45 -04:00
edX requirements bot
3744647bd6 chore: Updating Python Requirements 2022-10-03 17:21:24 +05:00
UsamaSadiq
69632ee702 fix: pin openedx-events version 2022-10-03 17:21:24 +05:00
UsamaSadiq
ec24b974e1 fix: pin pytz==2022.2.1 2022-10-03 17:21:24 +05:00
UsamaSadiq
24a019b0b3 fix: pin pyopenssl==22.1.0 to resolve upgrade job failure 2022-10-03 17:21:24 +05:00
Alexander Sheehan
dc0dc91c36 chore: bumping enterprise version to 3.57.1 2022-09-30 11:37:15 -04:00
Alex Dusenbery
ab011b4469 feat: edx-enterprise 3.57.0 | adds an EnterpriseCatalogQuery.include_exec_ed_2u_courses field.
https://github.com/openedx/edx-enterprise/releases/tag/3.57.0
2022-09-29 15:02:28 -04:00
Matthew Carter
121fefdadb chore: bump ORA2 version to 4.5.1 (#31064) 2022-09-29 14:26:10 -04:00
John Nagro
4bd13f3df5 feat: release edx-enterprise 3.56.16 (#31057) 2022-09-28 16:08:22 -04:00
Alexander Sheehan
044722bdd2 chore: bumping enterprise version to 3.56.15 2022-09-28 14:04:15 -04:00
Alfredo Guillem
a943d9c406 chore: bumping enterprise to version 3.56.14 2022-09-27 15:48:09 +00:00
Deimer Morales
74878ac29c feat: adding persistent grade event with test (#30916)
Adds a new Open edX Event which will be triggered when a persistent grade is created or updated.
2022-09-26 13:40:30 -04:00
Alexander Sheehan
90ac26cb80 chore: bumping enterprise to version 3.56.13 2022-09-23 09:34:26 -04:00
Alexander J Sheehan
b5d1cfce42 Merge pull request #31029 from openedx/asheehan-edx/bumping-enterprise-3.56.12
chore bumping enterprise version to 3.56.12
2022-09-22 14:12:12 -04:00
UsamaSadiq
897cb3617f refactor!: delete common/lib and related usages 2022-09-22 14:16:34 +05:00
Alexander Sheehan
83ebc35e93 chore: bumping enterprise version to 3.56.12 2022-09-21 14:27:41 -04:00
Tim McCormack
4ecd9fe683 feat!: Delete all non-legacy IP code (#31000)
The IP chain code has moved to edx-django-utils—except for the legacy-IP code,
which is now in a new module. This will allow other IDAs to use the IP code.

Commit includes some adjustments to the toggle annotation.

Part of <https://github.com/openedx/edx-django-utils/issues/241>.
2022-09-21 14:11:34 +00:00
Alexander Sheehan
2846c5bed0 chore: bumping enterprise version to 3.56.10 2022-09-20 16:42:30 -04:00
Kyle McCormick
d8442484a0 Revert "docs: update & improve instructions for GitHub-hosted deps"
This reverts commit 8bb39fa6c7.
2022-09-20 06:35:46 -04:00
Kyle McCormick
6f7ceaf80b Revert "docs: remove section headers from github.in"
This reverts commit 7ed0e8d0e9.
2022-09-20 06:35:46 -04:00
Kyle McCormick
211aa9856a Revert "style: alphabetize GitHub-based dependencies"
This reverts commit 40158f5991.
2022-09-20 06:35:46 -04:00
Kyle McCormick
2ac7a6f774 Revert "build: install GitHub-hosted dependencies as wheels"
This reverts commit 6490f5b585.
2022-09-20 06:35:46 -04:00
Kyle McCormick
29cebb7f92 Revert "chore: Updating Python Requirements"
This reverts commit 6d00e4b320.
2022-09-20 06:35:46 -04:00
Kyle McCormick
8632193b8d Revert "build: fix -e . in requirements pins"
This reverts commit f42427a1f6.
2022-09-20 06:35:46 -04:00
Tim McCormack
f6965b9555 chore: Unpin edx-event-bus-kafka and upgrade (#30966)
The producer API is stable enough now.

Make use of new topic prefixing feature for devstack (introduced in 0.6.2)
2022-09-19 19:43:34 +00:00
Kyle McCormick
f42427a1f6 build: fix -e . in requirements pins
I would expect the post-pip-compile steps in `make upgrade`
to have taken care of chaninging `-e file://...`
into `-e .`, but it didn't for some reason.

Normally I would debug this, but
https://github.com/openedx/edx-platform/pull/30890
is going to merge in a week or two and it
will remove `-e .` from the requirement pins
entirely, so I'm just going to fix it manually for now.
2022-09-19 13:54:21 -04:00
edX requirements bot
6d00e4b320 chore: Updating Python Requirements 2022-09-19 13:54:21 -04:00
Kyle McCormick
6490f5b585 build: install GitHub-hosted dependencies as wheels
We update github.in to use the proper git-based depencency
format specified in the file comment. This format installs
a package as a pre-built wheel:

    git+https://github.com/...

instead of a development-mode editable requirement:

   -e https://github.com/...

Installing packages in editable mode increases the amount of time
it takes to install edx-platform  dependencies, increases the
resulting virtual environment's size, and installs packages in a
way that has several subtle differences compared to the way
wheels are installed:
https://setuptools.pypa.io/en/latest/userguide/development_mode.html#limitations
2022-09-19 13:54:21 -04:00
Kyle McCormick
40158f5991 style: alphabetize GitHub-based dependencies 2022-09-19 13:54:21 -04:00
Kyle McCormick
7ed0e8d0e9 docs: remove section headers from github.in
They give the impression that, for example,
third-party XBlocks belong in github.in.
In reality, GitHub-hosted requirements should be avoided
in all circumstances. Third-party XBlocks are best
added to base.in as a PyPI-hosted dependency.

Furthermore, the existing section headers are not
even being followed.
2022-09-19 13:54:21 -04:00
Kyle McCormick
8bb39fa6c7 docs: update & improve instructions for GitHub-hosted deps
They have fallen out of date since we switched from Jenkins-
run upgrades to GitHub Actions -run upgrades.
2022-09-19 13:54:21 -04:00
Sandeep Dubey
51b5e624b3 feat: upgrade TinyMCE v4.0.20 to TinyMCE v5.5.1 (#30335)
Co-authored-by: Arunmozhi <arunmozhi@opencraft.com>
2022-09-19 12:43:19 +02:00
Sarina Canelake
69f0849165 fix: update path to .github workflows to read from openedx org 2022-09-15 14:52:28 -04:00