{"id":5595,"date":"2018-09-18T10:21:22","date_gmt":"2018-09-18T14:21:22","guid":{"rendered":"https:\/\/www.dr-chuck.com\/csev-blog\/?p=5595"},"modified":"2018-09-18T10:21:22","modified_gmt":"2018-09-18T14:21:22","slug":"progress-on-lti-1-3-and-lti-advantage-in-sakai-and-tsugi","status":"publish","type":"post","link":"https:\/\/www.dr-chuck.com\/csev-blog\/2018\/09\/progress-on-lti-1-3-and-lti-advantage-in-sakai-and-tsugi\/","title":{"rendered":"Progress on LTI 1.3 and LTI Advantage in Sakai and Tsugi"},"content":{"rendered":"<p class=\"p1\"><span class=\"s1\">I have been making good progress towards LTI Advantage in Sakai &#8211; the following have initial implementations and are in Master:<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">&#8211; LTI 1.3 Core<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">&#8211; LTI 1.3 Basic Outcomes<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">&#8211; LTI 1.3 Lineitem<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">&#8211; LTI 1.3 Names and Roles (with a Groups extension available)<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">The specs are still somewhat in flux so as we clean up bits here and there the code will evolve but the major work is in place. \u00a0<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">Like I have mentioned before, \u00a0I have a nice set of utility routines in to handle OAuth 2.0, Access Tokens, Java Web Tokens, and PKI message signing. \u00a0The speed at which I can roll out new web services using the LTI 1.3 security model is pretty amazing. \u00a0 I adapted the old Sakai memberships extension to become LTI 1.3 Names and Roles with the OAuth 2.0 security model in less than two days because of the nice OAuth 2.0 infrastructure I have built.<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">As Sakai evolves, so does Tsugi. \u00a0I use Tsugi to test all the Sakai LTI 1.3 implementations. \u00a0I have built an LTI 1.3 test harness in Tsugi that exercises the LTI 1.3 APIs:<\/span><\/p>\n<p class=\"p3\"><span class=\"s2\"><a href=\"https:\/\/github.com\/tsugicontrib\/lmstest\">https:\/\/github.com\/tsugicontrib\/lmstest<\/a><\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">I will get this into production on one of my Tsugi servers so when I write LTI 1.3 QA documentation we will have a ready made server to work with.<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">You can track activity this by watching the JIRAs connected to this JIRA:<\/span><\/p>\n<p class=\"p3\"><span class=\"s2\"><a href=\"https:\/\/jira.sakaiproject.org\/browse\/SAK-40533\">https:\/\/jira.sakaiproject.org\/browse\/SAK-40533<\/a><\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">Up next for LTI Advantage:<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">&#8211; LTI 1.3 ContentItem &#8211; Should be &lt; 1 week<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">&#8211; LTI 1.3 Assignments and Grades &#8211; ???<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">The Assignments and Grades is the most intricate spec so I will leave its implementation as my last task.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have been making good progress towards LTI Advantage in Sakai &#8211; the following have initial implementations and are in Master: &#8211; LTI 1.3 Core &#8211; LTI 1.3 Basic Outcomes &#8211; LTI 1.3 Lineitem &#8211; LTI 1.3 Names and Roles (with a Groups extension available) The specs are still somewhat in flux so as we [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5595","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/5595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/comments?post=5595"}],"version-history":[{"count":1,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/5595\/revisions"}],"predecessor-version":[{"id":5596,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/5595\/revisions\/5596"}],"wp:attachment":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/media?parent=5595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/categories?post=5595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/tags?post=5595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}