doc: update lti manual with new test tools

why:
* the currently listed 1.1 test tool is defunct
* we don't have a good production 1.3 test tool

closes INTEROP-7798
flag=none

test plan:
* none

Change-Id: I54aaae3bf44cf1cdde4c941195b27c71d64d63e5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305053
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Steve Mcgee <steve.mcgee@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
This commit is contained in:
Xander Moffatt 2022-11-09 12:18:20 -05:00
parent 90fe0e6789
commit fc20eaa3cb
2 changed files with 46 additions and 15 deletions

View File

@ -1,12 +1,14 @@
# The Canvas LTI Manual
**Audience:**
- new developers on the Interoperability team
- other Canvas developers who are interested in LTI
- anyone who is curious about how Canvas supports LTI
- not really customers
**Goal:**
- Provide a code-focused overview of the way that Canvas implements the LTI standard
- Help readers make an informed decision on where in the code to make changes
- Allow readers to discover existing LTI documentation, whether Canvas-specific or not
@ -14,36 +16,39 @@
- Provide explanation for design decisions and why things are The Way They Are
**Contents**
- [LTI Overview](./01_lti_overview.md)
- [Tool Installation](./02_tool_installation.md)
- [Example Tools](./10_example_tools.md)
- [Example Tools](./10_example_tools.md)
- [LTI Launches](./03_lti_launches.md)
- [1.1 Launches](./05_lti_1_1_launches.md)
- [2.0 Launches](./06_lti_2_0_launches.md)
- [1.3 Launches](./07_lti_1_3_launches.md)
- [1.1 Launches](./05_lti_1_1_launches.md)
- [2.0 Launches](./06_lti_2_0_launches.md)
- [1.3 Launches](./07_lti_1_3_launches.md)
- [Plagiarism Platform](./04_plagiarism_detection_platform.md)
- [Custom Parameters](./08_custom_parameters.md)
- [1.1 Implementation](./09_lti_1_1_implementation.md)
- [Common Testing Scenarios](./11_testing.md)
- [Deep Linking](./12_deep_linking.md)
- [Basic Outcomes](./13_basic_outcomes.md)
- [Placements] (./14_placements.md)
- [Plagiarism] (./15_plagiarism.md)
- [Placements](./14_placements.md)
- [Plagiarism](./15_plagiarism.md)
**Other Docs**
- [External Tools Introduction - Canvas LMS REST API Documentation (instructure.com)](https://canvas.instructure.com/doc/api/file.tools_intro.html)
- the Canvas API docs have lots of reference-level specifics about installing tools, placements, variable substitutions, deep linking, etc
- the Canvas API docs have lots of reference-level specifics about installing tools, placements, variable substitutions, deep linking, etc
- [LTI from scratch (ruby) (instructure.com)](https://canvas.instructure.com/courses/913512)
- a community Canvas course written by an unknown Platform team member years ago about LTI 1.1
- a community Canvas course written by an unknown Platform team member years ago about LTI 1.1
---
More topics to write about:
- PostMessage
- list of placements and the postmessages and variable substitutions that work for each of them - probably also worth making customer facing
- variable expansion and custom fields
- custom params
- Services (implementation specifics)
- AGS 1.3
- Plagiarism Platform 2.0
- Data Services/Subscriptions
- AGS 1.3
- Plagiarism Platform 2.0
- Data Services/Subscriptions

View File

@ -4,6 +4,16 @@ Here is a sample list of some of the LTI tools that exist in the Canvas ecosyste
## LTI 1.1
### "The Vercel Tool"
[Deployed 1.1 Tool](https://lti-1p1-test-tool.vercel.app/)
[Code](https://github.com/xandroxygen/lti_1p1_test_tool)
This tool is extremely simple but allows you to configure any placements you need. It displays launch parameters and allows the passing back of Content Items, both File-type and LtiLink-type. In addition, this tool also has a bare-bones 1.3 implementation to facilitate testing the 1.1 -> 1.3 migration process. More details on
the 1.3 side of this tool are found on its home page and in the 1.3 section below.
Installation instructions are found on the tool's home page, and it's also possible to run and develop this locally following the instructions in the README.
### Outcome Service Example
[Code](https://github.com/instructure/lti_example)
@ -11,16 +21,20 @@ Here is a sample list of some of the LTI tools that exist in the Canvas ecosyste
This is a very simple tool that allows you to test 1.1 Grade Passback (also called Basic Outcomes). Manipulating the XML that gets passed from the tool to Canvas is also very easy.
Installation instructions are found in the repository's README file, and should still work with only a couple of small changes:
- omit the `-rubygems` from the start up command
- you may need to point your dockerized canvas at your computer's localhost, but this worked out of the box for me.
- the Canvas screenshots for configuring are out of date but the instructions still work.
### "The Heroku App"
### "The Heroku App" (dead, do not use plz)
[1.1 Config Builder](https://wkd-lti-test.herokuapp.com/xml_builder)
[Code](https://github.com/instructure/lti_tool_provider_example)
This tool is suitable for testing 1.1 launches from pretty much everywhere, and displays the parameters it was given on launch. It is a legacy app and lives in Weston Dransfield's Heroku account. Note that this is also a functioning LTI 2.0 tool! It is also totally possible to set this up locally, following the instructions in the README.
This tool is suitable for testing 1.1 launches from pretty much everywhere, and displays the parameters it was given on launch. It is a legacy app and lives in Weston Dransfield's Heroku account. Note that this is also a functioning LTI 2.0 tool!
Note that this tool is currently not functioning, since its ruby version is too old to run on ARM computers, and the Ruby 2.6 Heroku runtime is EOL. It's possible to run this locally, but not if you have an ARM chip. This tool is still listed here since
it is helpful to have, but it's not recommended to use.
### In the Wild
@ -44,6 +58,15 @@ This tool is capable of testing 1.3 launches from all supported placements, and
This is a deployed-to-production tool that has a fairly simple Ruby implementation, and has been used as a reference for other internally-developed 1.3 tools. Note that it has other dependencies for it to fully work locally, but can be installed as a standalone way to test 1.3 launches.
### "The Vercel Tool"
[Deployed 1.3 Tool](https://lti-1p1-test-tool.vercel.app/1_3)
[Code](https://github.com/xandroxygen/lti_1p1_test_tool)
This tool is extremely simple and was originally only a 1.1 tool. It now includes a 1.3 implementation to facilitate the testing of the 1.1 -> 1.3 migration process.
Locally, this tool can be configured to run against your local Canvas by editing the `.env` file. In production, there currently only exists one (1) registration/developer key for this tool, in Site Admin. To install this tool in your sandbox or other contexts, follow the instructions on the tool's home page linked above.
### In the Wild
Other 1.3 tools in the Canvas ecosystem:
@ -54,13 +77,16 @@ Other 1.3 tools in the Canvas ecosystem:
## LTI 2.0
### "The Heroku App"
### "The Heroku App" (dead, do not use plz)
[Home Page](https://wkd-lti-test.herokuapp.com/)
[Code](https://github.com/instructure/lti_tool_provider_example)
This tool is suitable for testing 2.0 launches from pretty much everywhere, and displays the parameters it was given on launch. It is a legacy app and lives in Weston Dransfield's Heroku account. Note that this is also a functioning LTI 1.1 tool! It is also totally possible to set this up locally, following the instructions in the README. The home page has a registration link for pasting into Canvas.
Note that this tool is currently not functioning, since its ruby version is too old to run on ARM computers, and the Ruby 2.6 Heroku runtime is EOL. It's possible to run this locally, but not if you have an ARM chip. This tool is still listed here since
it is helpful to have, but it's not recommended to use.
### Similarity Detection Reference Tool
[Code](https://github.com/instructure/lti_originality_report_example)
@ -69,4 +95,4 @@ This tool is particularly helpful when testing or troubleshooting the [Plagiaris
### In the Wild
About the only current use case for LTI 2.0 tools is the Plagiarism Platform, which is used by external tool providers like TurnItIn.
About the only current use case for LTI 2.0 tools is the Plagiarism Platform, which is used by external tool providers like TurnItIn.