Integrate SCORM with S3 backend in Open edX

Hi,
Am having a open edx ironwood server in my aws account. I am trying to integrate SCORM content with open edx. For that i used RACOON GANG plugin for scorm. But, it is storing the scorm files which i uploads to the local path. Is there any way to configure the media url and root pointing to s3 bucket and server from there??

2 Likes

Hi @kiruba

I have also the same issue. have you found anything about this?

Dear @kiruba we are working on this issue to solve the problem for the community, as soon aswe have it ready on github, we will share the link here. See you soon. Stefania

Hi all,
Coming back to this topic, it is now possible to store SOCORM packages in S3 thanks to the SCORM XBlock and the S3 plugin.
However, I have found an issue. As per the S3 bucket recommendation, the bucket should be kept private and accessible only by the Open edX backend. But the SCORM package exposes CSS and JS content directly from the S3 source, causing Forbidden errors and failing SCORMs (links are not signed as in ORA for example).

I’ve found the following workaround to fix this issue, enabling public access in the bucket and adding a policy to restrict read access to the scorm folder. Doesn’t sound like a secure solution, but works for now.

Now there is another problem: SCORMs created with Storyline make a call to window.parent that triggers a CORS error:

Error grabbing 1.2 API-Security Error:Blocked a frame with origin “https://s3.amazonaws.com” from accessing a cross-origin frame.

I saw a post in Stackoverflow about this same problem, but was probably before the Tutor era. It considers configuring Nginx as a proxy to s3 storage, which sounds more logical than exposing the s3 links directly.

Did anybody face this issue? Is it a good idea to have nginx as proxy to s3? Should it be part of the s3 plugin? or the scorm plugin? or a separate one? Or is there a better solution to keep the bucket private?

Update:
I tried with a local installation in my notebook and got a similar error, now using the file system storage:

Error grabbing 1.2 API-SecurityError:Blocked a frame with origin "http://files.local.overhang.io" from accessing a cross-origin frame. Protocols, domains, and ports must match.

Looks like it is not a S3 issue, but a SCORM XBlock problem.

@regis, have you seen this before? Is it possible to add the SCORM storage to the allowed origins?

2nd update:

I’ve added http://files.local.overhang.io to the CORS whitelist, and the result is exactly the same. Tried the same with s3.

from tutor import hooks

hooks.Filters.ENV_PATCHES.add_item(
    (
        "openedx-common-settings",
        """
CORS_ORIGIN_WHITELIST.append("http://files.local.overhang.io")
CSRF_TRUSTED_ORIGINS.append("files.local.overhang.io")   
        """
    )
)

@Andres.Aulasneo can you please forward me a copy of the Scorm package, either publicly or by PM?

Sent by email. Let me know if it didn’t arrive.

Unfortunately I am unable to reproduce the issue. In my case, the Scorm package fails to load (both in the Studio, the preview LMS and the learning MFE) with the following client-side error: “Uncaught TypeError: n is not a function”

This is in Firefox.

Note that this test was performed with the MinIO plugin, and not the S3 plugin.

Error grabbing 1.2 API-Security Error: Blocked a frame with origin “https://s3.amazonaws.com” from accessing a cross-origin frame.

The above issue is what I am facing after connecting to the S3 bucket in Scorm. Has anyone fixed this issue? please reply. thanks
@Andres.Aulasneo did you fix this issue?

Hi @Hari_N! Welcome to the forum!

Did you try our tutor plugin for SCORM and S3? Note that there may still be issues in Studio but in the LMS it should fix the problem.

Thanks for replying @Andres.Aulasneo,
I tried, but it’s not working, or maybe I tried it the wrong way. Can you suggest how to use this, please? I am using the edx-platform Ironwood version of Python (2.7).

The plugin is tested in Maple and Nutmeg, not sure if it will work in Ironwood. It may need also the tutor-contrib-s3 plugin. Note that it will fix SCORM in the student experience, not in Studio.

I will try this method and inform you. Thanks @Andres.Aulasneo

Hi @Andres.Aulasneo still it’s not working. I don’t know why, for Ironwood, it may be a different