Add Learning Record Store (LRS) support to Sakai (SAK-39523)

[SAK-39565] Create tincanapi implementation of LRS API Created: 27-Mar-2013  Updated: 25-Apr-2018  Resolved: 02-May-2013

Status: RESOLVED
Project: Sakai
Component/s: Kernel
Affects Version/s: 10.0
Fix Version/s: 10.0

Type: Sub-task Priority: Major
Reporter: Alan Berg Assignee: Aaron Zeckoski (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depend
is depended on by SAK-39566 Make events tracking and crosscuts ca... RESOLVED
is depended on by SAK-39567 Nice to haves and verification of the... CLOSED
depends on SAK-39564 Create a general LRS API for Sakai RESOLVED

 Description   

Use the LRS API and create an implementation which is compatible with tincanapi compatible servers
http://tincanapi.com/wp-content/assets/spec/Tin-Can-API-Releasev095.pdf

Goal is to create an internal integration with the experience API (http://tincanapi.com/overview) which is suitable for inclusion in the Sakai trunk and future releases. The integration will focus on using core aspects of Sakai like the events system and flexible industry tech such as AOP to allow for a high level of data capture. Must support Basic Auth API authentication or OAuth (rfc5849) security (with HMAC-SHA1) and SSL for statement requests.
On startup, the Sakai servers will verify they can connect to the LRS (probably using the activities/state portion of the API). If they cannot connect then they will register error messages in the log and IDEALLY notify a system admin via email. Also, all incoming activity statements will be logged out with a warning while the LRS cannot connect (this may not be desirable).

The provider should handle checking it's configuration values (lrs.tincanapi....) for:
A) API URL
B) Security parameters (consumer key, secret, username:password, etc.)
C) Version of the API (support for 0.95 or the most current version at time of development)



 Comments   
Comment by Aaron Zeckoski (Inactive) [ 02-May-2013 ]

Implementation for this is located here:
https://source.sakaiproject.org/svn/msub/unicon.net/tincanapi-provider/trunk

Comment by Aaron Zeckoski (Inactive) [ 06-May-2013 ]

README and install instructions here:
https://source.sakaiproject.org/svn/msub/unicon.net/tincanapi-provider/trunk/README

Comment by Aaron Zeckoski (Inactive) [ 06-May-2013 ]

Config settings

    1. TinCanAPI specific config settings
  1. URL to the tincan server
  2. Default: https://cloud.scorm.com/ScormEngineInterface/TCAPI/50ZLHZXM0Q/statements (this is a test account)
    lrs.tincanapi.url=https://url/to/your/tincan/server/api/path
  3. Timeout for requests to the tincan server (in ms)
  4. Default: 5000 (5 seconds)
    #lrs.tincanapi.request.timeout=10000
    1. LRS Authentication
  5. This will use OAuth if configured OR Basic Auth if OAuth is not setup,
  6. the Auth config is required so if these are both blank then the provider will fail to startup
  7. Basic Auth header value: base64(username + ":" + password)
  8. Default: 50ZLHZXM0Q:crCPCRQCoqiQN9rkliIJlLiVzk0CjsuDc52mik29 (matches the default URL above)
    lrs.tincanapi.basicAuthUserPass=UUUUUU:PPPPPP
  9. OAuth settings (no defaults)
  10. OAuth shared (consumer) key
    #lrs.tincanapi.consumer.key=XXXXXX
  11. OAuth secret
    #lrs.tincanapi.consumer.secret=YYYYY
  12. OAuth realm
    #lrs.tincanapi.realm=ZZZZZ
Generated at Sun Sep 22 20:38:32 CDT 2019 using Jira 8.0.3#800011-sha1:073e8b433c2c0e389c609c14a045ffa7abaca10d.