Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 11 2018 10:21

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:21

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:19

    asahd on master

    Restore nginx.conf.example (compare)

  • Sep 11 2018 10:05

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:04

    asahd on feature-symantic

    (compare)

  • Sep 11 2018 10:04

    asahd on master

    Added full document toggle to s… Added post and patch metadata. Updated Metadata to update stat… and 6 more (compare)

  • Sep 11 2018 10:04
    asahd closed #1232
  • Sep 11 2018 09:05
    asahd labeled #1232
  • Sep 11 2018 09:05
    asahd unlabeled #1232
  • Sep 11 2018 08:42
    asahd synchronize #1232
  • Sep 11 2018 08:42

    asahd on feature-symantic

    Fixes statement creations being… (compare)

  • Sep 10 2018 15:07

    happy-machine on Statement_component

    fixed default naming in Stateme… (compare)

  • Sep 10 2018 12:45
    asahd synchronize #1232
  • Sep 10 2018 12:45

    asahd on feature-symantic

    Changes Forwarding UI, updates … (compare)

  • Sep 10 2018 11:45
    ht2 synchronize #1232
  • Sep 10 2018 11:45

    ht2 on feature-symantic

    Start of shareable dashboards u… Removed filter required paramet… Added validation for shareable … and 49 more (compare)

  • Sep 04 2018 16:29
    cutz opened #1246
  • Sep 04 2018 14:20
    samjaved closed #1245
  • Aug 30 2018 22:20
    ryansmith94 assigned #1242
  • Aug 30 2018 16:43

    happy-machine on Statement_component

    working as Map (compare)

Michael Thorausch
@Scapin_gitlab
I need to move the mongodb database from a Learning Locker standard installation to an MongoDB Atlas. I think this should be possible using the Live Migration Service from Atlas MongoDB.
So my question is: when I have an exact copy of the database and use it from a new Learning Locker Installation will I run in troubles with the ids of statements, personas etc? I took a look on your migration tool from v1 to v2 and saw, that you read a statement from v1 and create a new statement in v2. Is this the way I have to do it or do you have a solution for my problem.
David Pesce
@davidpesce
Are you moving a v2 db? If so, it should be a simple backup/restore to atlas.
zandercreations
@zandercreations

Hi how do I change the X-Frame-Options in learning locker I need to embed the whole site in wordpress admin dashboard for my clients to access
Im getting a:

Refused to display 'https://My-learning-locker-site/' in a frame because it set 'X-Frame-Options' to 'sameorigin'. in my google chrome console

alt
David Pesce
@davidpesce
Check your .env file in the webapp
brahianvera
@brahianvera
Hi everyone, i tried to install LearningLocker on Centos7.8 but i coudn't do it, i have this error when i tried install pm2 using npm:
image.png
i'm following the CUSTOM INSTALLATION guide, i will apreciate your advices.
Faysal Sharif
@fxsrt10
Anyone got LL working on Azure App Service?
Haakon Meland Eriksen
@HaakonME
I have not found the documentation for LearningLocker on Docker, but I have found https://hub.docker.com/u/learninglocker and https://github.com/openfun/learninglocker-docker . From the latter, it looks as if the UI is not included in the former?
Michael Steigman
@michaelsteigman
@fxsrt10 @HaakonME i am working on a kubernetes setup. it’s currently oriented around RH’s OpenShift, which you can run on Azure. there ought not be too much involved in getting it going on Azure’s Kubernetes Service.
Haakon Meland Eriksen
@HaakonME
@michaelsteigman - thanks, we are not in production yet, but have a LL instance up and running, though not using the Docker images. URL?
Michael Steigman
@michaelsteigman
this is running in our openshift cluster but it’s also not production yet
Haakon Meland Eriksen
@HaakonME
Thank you, @michaelsteigman :-) Have you ever created a dashboard or added a widget and seen "cannot read property startedat undefined" ? I see this in our instance when trying the predefined dashboards, and they never seem to load any statements.
Michael Steigman
@michaelsteigman
are you saying general @HaakonME ? or using the resources in the repo above?
Haakon Meland Eriksen
@HaakonME
In general, @michaelsteigman . I think it may have to do with the Getting started-dashboard and the Curatr Starter-dashboard using features from the Enterprise version of LearningLocker? If I start with the Blank-dashboard this error does not immediately show. However, it does appear if I select already defined widgets. I assume these then also use Enterprise features? If I understand what @ryansmith94 wrote earlier about the startedat belonging to the the async aggregation features, and these belong to the Enterprise Journey feature, then this might be what I am experiencing? I think it would be better if dashboards and widgets using Enterprise features had a dollar sign on them to indicate these features are behind a paywall. Hopefully, I can still test LearningLocker by defining every single widget I need from scratch... jippi...
Michael Steigman
@michaelsteigman
ah… i am not that familiar with the app itself yet. have just been working on getting it running within our infra
Haakon Meland Eriksen
@HaakonME
Right, thank you for taking the time to discuss it anyway. :-) If somebody else knows what is going on, or how to work successfully around it, this would be wonderful. :-)
Haakon Meland Eriksen
@HaakonME
@michaelsteigman The answer to the widgets displaying a problem with "startedat" may be hidden in https://gitter.im/LearningLocker/learninglocker?at=5db82db210bd4128a180731c , which seems to imply it is possible to save a timestamp in the wrong format in one or more keys, e.g. store and timestamp key of the JSON xAPI statement. I am not sure what to do about this.
Haakon Meland Eriksen
@HaakonME
Right, I think we have missed the boat, @michaelsteigman . It seems we at our instance are running version 2.6.3 from January 14 2019 and version 7.0.0 was released July 22 2020. o_O I do not think I have ever seen any open source project jump 5 major versions in 18 months - impressive. :-) Here is the release log - https://github.com/LearningLocker/learninglocker/releases
Faysal Sharif
@fxsrt10
@michaelsteigman thank you so much! I've never used kubernetes(never had much of a reason to) but this will help so much!
Faysal Sharif
@fxsrt10
@michaelsteigman any chance you know how to configure a route for ingress or k8s?
Michael Steigman
@michaelsteigman
@fxsrt10 i haven’t worked with vanilla k8s but ingress was developed based on the OpenShift Route resource so it should be similar to the route example in repo above.
Adrian
@adrianvaneeden

Hi there. Whenever I try and upgrade Learning Locker I get "Cross-Origin Request Blocked errors reading the remote resource at https://my_learning_locker.../data/XAPIP/activities/state?stateId=......" [Firefox], "Access to XMLHttpRequest at... has been blocked by CORS policy: No 'Access-Control-Allow-Origin'" or similar in the browser dev tools.

The only time errors occur is when a student who has already accessed that piece of content tries to access it again. If they open content they have not seen before it works fine. If I create a new student and browse the same content, we have no problems.

We are publishing Articulate Storyline content on LearnDash LMS, using the Grassblade XAPI Companion on Wordpress to send the statements to Learning Locker. Both servers are on AWS. Both use LetsEncrypt certificates.

Learning Locker was originally installed with an LRS AMI and the default version was V4.10.0. I have tried creating a new instance form the new AMI (v6) and migrating the Mongo database, and I end up with the same result.

I tried a clean custom install using the recommended defaults (Ubuntu 18, Note 10 etc.) and get the same result.

I cloned the old EC2 instance which works, until I upgrade the Learning Locker components (under /usr/local/learninglocker...).

My understanding is that the decision to restrict of CORS calls is client-side so I enabled CORS on the Wordpress server by editing the .htaccess file, overrode HTTP_AUTHORIZATION in the Wordpress Apache config file, and cleared out browser data and cookies from my clients, as well as trying different browsers and workstations, but I get the same result.

I disabled all cache services on the Wordpress end, same result.

I then went onto the Learning Locker installation and started working through the components. I eventually figured out that the UI, Worker, Scheduler and API services seem to work fine. I can open the web portal through Nginx, and I can see store statements coming in.

But the moment I change the version of the XAPI service which was installed on the LL v 4.10.0 AMI (I don't know how to check the version) to any new version I get the error. I have three different versions of the XAPI scripts under /usr/local/learninglocker/releases and a /usr/local/learninglocker/current/xapi symlink which I change between them to test. If I switch to the oldest version, it all works so the issue must be something to do with how XAPI responds?

If I bypass CORS with a Chrome plugin, the CORS error goes away but it still doesn't work, I then get a 502 Bad Gateway error.

If I bypass Wordpress and Grassblade and use PostMan to check the API with the URI returned by the error, using the LL client keys, I get an Nginx error saying "Sorry, the page you are looking for is currently unavailable". I understand nginx proxies a Node Express server. I tried to see if there was something in the ...xapi/dist/server.js file but I don't know Express well enough, and I would rather not change server scripts as they might get overwritten with the next version.

If I bypass nginx completely with Postman and use the XAPI port 8081, I can run simple queries like https://mydomain:8081/data/xAPI/statements successfuly but the moment I use the query string for ...https://mydomain:8081/data/xAPI/**activities/state?stateId=**..... I get an error "Cannot GET /activities/state".

Even on the resources which are working, the browser dev tools show a 404 Not Found error (instead of 502) but still work. If I check these on PostMan I end up with the same "Cannot GET /activities/state" response. I cannot find any difference between headers being sent for failing calls and those which go through. And the same content on a new student will go through.

I've spent two weeks on this and I feel like I'm missing somehting obvious. I want to migrate to the managed service at some point but if I can't do a version upgrade on the open source stack I'm worried that I'll have the same problems going paid.

Thanks in advance

Agli Pançi
@aglipanci
Hi there! Out of curiosity: Is anyone running LearningLocker on Kubernetes?
Agli Pançi
@aglipanci
Hello there. Does v7 requires MongoDB 4.*? I am upgrading from v6 and I have a separate instance for the MongoDB. Is mongo upgrade required as well in this case?
Daniel P
@Mclane5_gitlab
Hi there, we are currently testing LRS systems and are wondering if Learning Locker can also run in cluster operation on vm (load-balancing) with redundant Mongo-DB instances. Unfortunately there is nothing to be found in the documentation. It would be great to get some information about this.
Michael Steigman
@michaelsteigman
@aglipanci i have a repo containing resources that have let me run it on OpenShift 3.7: https://github.com/mghlcs/openshift-learning-locker
raahulsharma347
@raahulsharma347
Hi - While installing LL , I get stuck at this stage and nothing happens after this , any clue ?
[LL] running yarn install....done!
[LL] adding pm2....done!
[LL] running yarn build-all (this can take a little while - don't worry, it's not broken)....done!
[LL] installing pm2 logrotate....done!
[LL] setting up pm2 logrotate....done!
[LL] Will now try and clone the git repo for XAPI. May take some time....
[LL] Copied example env to .env - This will need editing by hand
[LL] running yarn install....done!
[LL] running yarn build....done!
[LL] creating /tmp/.tmpdist
[LL] copying modules....done!
[LL] Copying pm2 configs
[LL] copying files (may take some time)....
It never goes futher from copying files , I tried multiple times
Agli Pançi
@aglipanci
@Mclane5_gitlab I think it does, all the server components are separated and can work independently with each other as far as I am aware so it should work just fine. On the installation guide is also mentioned as an example of a production environment on AWS: https://docs.learninglocker.net/guides-installing/
@michaelsteigman that's interesting. thanks for sharing that!
Agli Pançi
@aglipanci

Hello there. Does v7 requires MongoDB 4.*? I am upgrading from v6 and I have a separate instance for the MongoDB. Is mongo upgrade required as well in this case?

@ht2

Daniel P
@Mclane5_gitlab
@aglipanci Thanks for your answer. I wonder if the persistence of write accesses to the mongos is guaranteed when two lrs instances are running in parallel. It would be interesting if the setup is officially supported like this. Your productive example tells me that it should work, but what settings have to be made is unfortunately not documented
Agli Pançi
@aglipanci

Hello there. Does v7 requires MongoDB 4.*? I am upgrading from v6 and I have a separate instance for MongoDB. Is the mongo upgrade required as well in this case?

@ryansmith94 do you have any idea?

Ren4tus
@Ren4tus
Hi everyone, Is there a way to query the dashboard in the same way over 30 and under 50? In Visualise's UI, I can only choose between ~above or ~below.
image.png
Ian Blackburn
@Ian247
@Ren4tus you need to use the custom query builder by selecting the <> toggle and you can add in both a greater than and less than option
something like this
{
"$and": [
{
"$comment": "{\"criterionLabel\":\"A\",\"criteriaPath\":[\"statement\",\"result\",\"score\",\"raw\"]}",
"statement.result.score.raw": {
"$gt": 1,
"$lte": 2
}
}
]
}
Joe Nyzio
@joenyzio
Hey everyone, has anyone had any luck connecting learning locker to a BI tool? I'm using Redash and thought it would work to connect it to the MongoDB database but I need a connection string. Not sure yet how to format the string but would that be the right way to do this? Wondering if there's a better way to do it. Thanks for any help!
Ren4tus
@Ren4tus
@Ian247 It works fine as I thought! Thank you so much.
Mariac
@eugene.germishuizen1_gitlab
Hello everyone. Can someone please explain to me why must the ID's/ActivityType and more be in a URL format? Like why can't I just create a normal string/id. And why is the launch URL a GET and not a POST? It makes it so hard to create a launch URL when everything is in the query params. Way easier to put a JSON object in the body, than to encode everything. Or am I missing something?
nicholasostman
@nicholasostman
Hello, my team would like to leverage LL, but are noticing issues with very outdated dependencies. Any efforts to update or remove these? Specifically pkgcloud is referencing some high vulnerability packages and is no longer maintained.
Xiangen
@xiangenhu
aggregate
can we do post?
nicholasostman
@nicholasostman
I'm noticing a large drop off around March, is this repo still maintained?