LTI and juniper

While testing a new server with a fresh copy of juniper.alpha1 taken directly from the edX branch, I encountered a problem with LTI. Let me explain.

I exported and imported a course that previously worked in ironwood with LTI. A simple question I can access through LTI.

I replaced “lti” with “lti_consumer” in Studio for that course.

I even created new keys in Djando Admin.

I enabled “ENABLE_LTI_PROVIDER” in /edx/etc/lms.yml

I restarted the services.

All I get are these error messages when I try my course with http://ltiapps.net/test/tc.php :

Feb 10 11:23:55 ip-10-0-0-82 [service_variant=lms][oauthlib.oauth1.rfc5849.endpoints.signature_only][env:sandbox] INFO [ip-10-0-0-82 2621] [user None] [signature_only.py:81] - [Failure] request verification failed.
Feb 10 11:23:55 ip-10-0-0-82 [service_variant=lms][oauthlib.oauth1.rfc5849.endpoints.signature_only][env:sandbox] INFO [ip-10-0-0-82 2621] [user None] [signature_only.py:82] - Valid client: True
Feb 10 11:23:55 ip-10-0-0-82 [service_variant=lms][oauthlib.oauth1.rfc5849.endpoints.signature_only][env:sandbox] INFO [ip-10-0-0-82 2621] [user None] [signature_only.py:83] - Valid signature: False

The same course configuration with ironwood works perfectly while testing with http://ltiapps.net/test/tc.php. I am wondering if something changed with LTI between Ironwood and Juniper.

Any ideas?

Because I couldn’t find anything, I decided to install a new single server instance of ironwood.master. Just to check something.

I was surprised to discover that LTI wasn’t working either on that instance.

Did any of the libraries installed for oauth or LTI under /edx/app/edxapp/venvs/edxapp changed versions recently? I am comparing my test system and production system where LTI works under ironwood and there does not seem to be any change. Did I miss something obvious?

I would like to thank @jill of OpenCraft who installed another instance of juniper.alpha1 in order to test the LTI bug I discovered while testing.

Jill wasn’t able to get the grade back from LTI either.

So, I asked for the key, the secret and the URL to access in order to give it a try using http://ltiapps.net/test/tc.php as a tool.

I wasn’t able to get the grade back in the gradebook either.

@nedbat Bug now confirmed independently for https://openedx.atlassian.net/browse/CRI-174 under juniper.alpha1

2 Likes

@sambapete CC @nedbat We found this note in 12.7.4. Grading Remote Content that indicates maybe grading was never formally supported in LTI?

Note: This feature was a closed pilot experiment. This feature is not supported for new users.

@jill The section refers to the “edx-partner-course-staff” documentation. I always try to avoid it because we are running the Open edX version.

The same section for Ironwood https://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/open-release-ironwood.master/course_features/lti/lti_grade_content.html does not mention this change yet because it still works on Ironwood.

@nedbat is this something that will carry on to Juniper and should we expect it to “break” our LTI components used by courses accessing our Open edX instance through LTI? We have a few courses where our internal Moodle systems are accessing LTI exercises in our Open edX site and expecting a grade to be returned to Moodle. This would be a serious game changer for courses who have developped ressources in Open edX and want to leverage them in Moodle. We have a few courses like that here at Université de Montréal and École Polytechnique de Montréal that reach out to https://cours.edulib.org to access a few LTI components.