Skip to content

LTI and DynReg Update#406

Merged
LolaValente merged 3 commits intomasterfrom
LTIUpdatesandDynReg
Aug 14, 2025
Merged

LTI and DynReg Update#406
LolaValente merged 3 commits intomasterfrom
LTIUpdatesandDynReg

Conversation

@LolaValente
Copy link
Collaborator

@LolaValente LolaValente commented Aug 7, 2025

Summary by CodeRabbit

  • New Features

    • Added an "Open Student Assignments Directly from LMS" page describing LMS-passed custom parameters and fallback behavior.
  • Documentation

    • Clarified and corrected LMS integration steps and wording across platforms (Blackboard, D2L, Schoology, DynReg).
    • Added Canvas assignment-mapping methods with videos and walkthroughs; removed legacy LTI 1.x/dynamic registration content.
    • Introduced Mentor role mapping in D2L; updated Getting Started videos and Added Additional Video Resources; fixed typos/formatting.

@LolaValente LolaValente requested a review from shajason August 7, 2025 20:56
@coderabbitai
Copy link

coderabbitai bot commented Aug 7, 2025

Walkthrough

Editorial and structural updates across LMS integration docs: new "Open Student Assignments" page, navigation text fixes, removal of legacy LTI 1.x and some Dynamic Registration sections, Canvas mapping overhaul with media, video/embed updates, typo and formatting fixes.

Changes

Cohort / File(s) Change Summary
New feature: Open Student Assignments
source/instructors/admin/integration/open-student-assignments-lms.rst
Added page describing opening student assignments via LTI 1.3, custom parameters (actual_user_*), examples, compatibility notes, and contact info.
Canvas: mapping & media added, dynamic reg removed
source/instructors/admin/integration/lti1-3Canvas.rst
Removed Dynamic Registration section; added "Connecting/mapping assignments in Canvas" with four mapping methods, many images and Wistia videos, copy-link note, terminology and formatting fixes.
Blackboard: editorial fixes
source/instructors/admin/integration/lms-systems/blackboard.rst
Switched intro link to HTTPS, corrected Codio navigation wording, clarified LTI assignment UI text, fixed checkbox typo, adjusted auth reference text, removed two LTI mapping lines.
D2L (Brightspace): nav + role mapping
source/instructors/admin/integration/lms-systems/d2l.rst
Updated navigation instructions to top-right username → Organizations and added Mentor role mapping to Teacher roles table.
Removed/trimmed LTI parameter & dynamic registration docs
source/instructors/admin/integration/lti-app.rst, .../lti1-3BS-D2L.rst, .../lti1-3Blackboard.rst, .../lti1-3DynReg.rst
Deleted LTI 1.3 custom-parameters section (lti-app) and removed or simplified Dynamic Registration and legacy LTI 1.x sections; updated DynReg access-step wording and ordering.
Minor formatting (blank lines)
source/instructors/admin/integration/lms-systems/google-classroom.rst, source/instructors/admin/integration/lms-systems/schoology.rst
Added trailing blank lines only; no semantic content changes.
Toctree/navigation update
source/instructors/admin/integration/intro.rst
Added open-student-assignments-lms to the Integrating with your LMS toctree.
Get started / Howto: video and content updates
source/instructors/getstarted/howto.rst
Rewrote Codio overview intro, replaced multiple Wistia video IDs and embed code (videos start at 8s), added "Additional Video Resources" section, removed one embed, and adjusted headings/formatting.

Sequence Diagram(s)

sequenceDiagram
    participant Teacher
    participant LMS
    participant Codio

    Teacher->>LMS: Click "Open Assignment" (LTI 1.3 launch)
    LMS->>Codio: LTI 1.3 launch + custom parameters (actual_user_*)
    Codio->>Codio: Map params -> identify user & assignment context
    alt LMS supports direct student view
        Codio->>Teacher: Render requested student's assignment
    else Unsupported
        Codio->>Teacher: Fallback to teacher dashboard
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • shajason

Additional brief suggestions for reviewers:

  • Confirm removals of LTI parameter sections are intentional and that required parameter examples are present in the new open-student-assignments page.
  • Verify all updated navigation paths (top-right username → Organizations) match current UI and screenshots.
  • Check replaced Wistia video IDs and the 8s start-time initialization code for correct behavior.

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch LTIUpdatesandDynReg

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🔭 Outside diff range comments (2)
source/instructors/admin/integration/lti1-3Canvas.rst (1)

226-231: Malformed HTML tag will break the rendered page

<strong>Details<strong> is missing the closing slash. Browsers often recover, but Sphinx HTML validation will flag this.

-21. Copy the number in the <strong>Details<strong> column (for use in Parts 2 and 3)
+21. Copy the number in the <strong>Details</strong> column (for use in Parts 2 and 3)
source/instructors/admin/integration/lms-systems/d2l.rst (1)

64-66: Update UI directions for consistency with other docs

Most updated pages instruct users to click their username in the top-right corner. D2L docs still say “bottom left”, which is outdated and will confuse readers.

-1. Click your user name in the bottom left of your dashboard.
+1. Click your username in the top-right corner of the dashboard, then select **Organizations**.
🧹 Nitpick comments (7)
source/instructors/admin/integration/lti1-3DynReg.rst (1)

30-34: Tighten wording and sentence flow in step 5

The comma-spliced sentence reads a little clumsily and can be trimmed for clarity.

-5. The **Dynamic Registration URL** is at the bottom of the list, you can copy it by clicking on the **Dynamic Registration URL** button.
+5. Scroll to the bottom of the list and click **Dynamic Registration URL** to copy it.
source/instructors/admin/integration/lti1-3Canvas.rst (1)

15-16: Mark URL as literal for correct RST rendering

Placing bare URLs in running text sometimes trips Sphinx link parsing. Wrapping the deep-linking URL in back-ticks makes it render as a literal and avoids unexpected auto-linking.

-The deep linking url is : https://apollo.codio.com/lti/resource_selection
+The deep-linking URL is ``https://apollo.codio.com/lti/resource_selection``.
source/instructors/admin/integration/lms-systems/schoology.rst (1)

135-156: Polish grammar and align example keys to parameter names

  1. “existed user” → “existing user”.
  2. Examples use the actual_user_* key prefix while the Parameter column lists plain names (id, email, …). To avoid confusion, either change the examples to the bare value ("123") or clarify in prose that the LMS will prepend actual_user_ when sending.
-This will be used for registration if                         | "actual_user_email": "lms-admin@email.com"
-custom_actual_user_id is not matched to an existed user.      |
+Used for registration if ``custom_actual_user_id`` does not match an existing user. | "actual_user_email": "lms-admin@email.com"

Also, “This should not be Student-like role.” → “This role must not be student-like.”

source/instructors/admin/integration/lms-systems/blackboard.rst (3)

9-10: Consider reference-style link to tame the very long URL

Inlining the entire Blackboard help URL makes the paragraph hard to read. A reference link keeps the prose tidy:

… which allows for an easy way to integrate and to map Codio course assignments to your LMS. See the `Blackboard LTI provider setup documentation`_ for details.

.. _Blackboard LTI provider setup documentation: https://library.blackboard.com/ref/df5b20ed-ce8d-4428-a595-a0091b23dda3/Content/_admin_app_system/admin_app_basic_lti_tool_providers.htm

29-30: Minor consistency tweaks

  1. “user name” → “username” (the single-word form is used elsewhere).
  2. Period missing after step 7 previously fixed—good catch.

110-110: Singular form reads better

Users account creation sounds plural. Changing the reference to “User account creation” improves flow without breaking the link target.

-To add students/teachers see :ref:`Users account creation <lms-users>`
+To add students/teachers see :ref:`User account creation <lms-users>`
source/instructors/admin/integration/lms-systems/d2l.rst (1)

162-188: Replicate grammar fixes from Schoology table

Same “existed user” and “Student-like role” wording appears here. Apply the same corrections to keep terminology aligned across LMS docs.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3f07d36 and cefe568.

📒 Files selected for processing (9)
  • source/instructors/admin/integration/lms-systems/blackboard.rst (4 hunks)
  • source/instructors/admin/integration/lms-systems/d2l.rst (1 hunks)
  • source/instructors/admin/integration/lms-systems/google-classroom.rst (1 hunks)
  • source/instructors/admin/integration/lms-systems/schoology.rst (1 hunks)
  • source/instructors/admin/integration/lti-app.rst (0 hunks)
  • source/instructors/admin/integration/lti1-3BS-D2L.rst (0 hunks)
  • source/instructors/admin/integration/lti1-3Blackboard.rst (0 hunks)
  • source/instructors/admin/integration/lti1-3Canvas.rst (1 hunks)
  • source/instructors/admin/integration/lti1-3DynReg.rst (1 hunks)
💤 Files with no reviewable changes (3)
  • source/instructors/admin/integration/lti1-3BS-D2L.rst
  • source/instructors/admin/integration/lti1-3Blackboard.rst
  • source/instructors/admin/integration/lti-app.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit Configuration File

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.

Files:

  • source/instructors/admin/integration/lms-systems/google-classroom.rst
  • source/instructors/admin/integration/lms-systems/schoology.rst
  • source/instructors/admin/integration/lti1-3DynReg.rst
  • source/instructors/admin/integration/lms-systems/d2l.rst
  • source/instructors/admin/integration/lms-systems/blackboard.rst
  • source/instructors/admin/integration/lti1-3Canvas.rst
🔇 Additional comments (2)
source/instructors/admin/integration/lms-systems/google-classroom.rst (1)

67-69: No issues – extra trailing newlines are harmless and align with RST/POSIX conventions

Adding a blank line (or two) at the end of the file is fine; it keeps the editor happy and doesn’t affect the rendered output.

source/instructors/admin/integration/lti1-3Canvas.rst (1)

410-413: Heading level is off by one

Connecting/mapping assignments in Canvas is currently set with --- (H2) but it sits inside another H2 section, leading to skipped hierarchy (H2 ➜ H2). Consider demoting to ~~~ or promoting the parent.

Copy link
Collaborator

@shajason shajason left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coderabbit also found a couple of things that need fixing. No rush in turning this around!

+----------------------+-----------------------------------------------------------------------------------------------------+
| Mentor | TEACHER (with :ref:`read only <add-teachers>` access to the course} |
+----------------------+-----------------------------------------------------------------------------------------------------+

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did this get added here?

.. Note:: LTI and external tool materials that have grading enabled in Schoology do not trigger submission notifications, grading reminders, or overdue notifications because Schoology does not automatically detect submissions from external tools.


Open Student Assignments Directly from LMS
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did this get added here?

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🔭 Outside diff range comments (1)
source/instructors/admin/integration/lti1-3Canvas.rst (1)

110-132: Replace inline HTML buttons/scripts with copy-friendly code blocks

Embedding JavaScript copy buttons in reST can break under stricter CSPs, impair accessibility, and complicate builds. Prefer plain code blocks; Sphinx’s copybutton extension (if enabled) will add a copy UI automatically.

-    <div class="small">
-    17. Expand each of the following fields, and copy the static links below:<br><br>
-    <strong>Link Selection</strong><br>
-    Select <strong>LtiDeepLinkingRequest</strong><br>
-    <span style="color: teal;">Target Link URI:</span>
-    https://apollo.codio.com/lti/resource_selection
-    <button onclick="copyRSTUrl1()">Copy URL</button><br>
-    <script> function copyRSTUrl1() {
-    const url = "https://apollo.codio.com/lti/resource_selection";
-    navigator.clipboard.writeText(url).then(() => {
-     alert('URL copied to clipboard!'); }).catch(err => {  
-     console.error('Failed to copy: ', err); }); } </script>
-    <span style="color: teal;">Icon Url:</span><br>
-    https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png
-    <button onclick="copyRSTUrl2()">Copy URL</button><br>
-    <script> function copyRSTUrl2() {
-    const url = "https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png";
-    navigator.clipboard.writeText(url).then(() => {
-     alert('URL copied to clipboard!'); }).catch(err => {  
-     console.error('Failed to copy: ', err); }); } </script>
-    </div>
+    <div class="small">
+    17. Expand each of the following fields, and copy the static links below:<br><br>
+    <strong>Link Selection</strong><br>
+    Select <strong>LtiDeepLinkingRequest</strong><br>
+    <em>Target Link URI</em>:
+    </div>
+
+.. code-block:: none
+
+   https://apollo.codio.com/lti/resource_selection
+
+.. raw:: html
+
+    <div class="small">
+    <em>Icon URL</em>:
+    </div>
+
+.. code-block:: none
+
+   https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png
🧹 Nitpick comments (17)
source/instructors/admin/integration/open-student-assignments-lms.rst (2)

16-22: Promote “Custom parameters” to a proper subsection heading

Use a reST heading rather than bold text for consistency and navigation.

 LTI 1.3
 """""""
 
-**Custom parameters**
+Custom parameters
+~~~~~~~~~~~~~~~~~

56-57: Normalize directive case and improve clarity; add a mailto link

  • Use lowercase directive for consistency with “important”.
  • Clarify the sentence and add a mailto: link.
-.. Note:: The parameters should be set by LMS dynamically based on current user, not statically. If you need assistance contact help@codio.com
+.. note::
+   These parameters must be set dynamically by the LMS based on the current user (not configured statically).
+   If you need assistance, contact <mailto:help@codio.com>.
source/instructors/admin/integration/lms-systems/blackboard.rst (3)

29-31: Minor style polish for UI instructions (optional)

Hyphenate “top-right” (compound adjective) for consistency with similar docs.

-6. Click your username in the top right corner of your dashboard.
+6. Click your username in the top-right corner of your dashboard.

84-85: Clearer phrasing for the 3-dots UI control (optional)

Spell out “three” for readability, or reference the menu name if available.

-27.  Once the assignment has been added to the course, you should click the 3 dots to the right of that assignment and select **LTI Integration URL**.
+27.  Once the assignment has been added to the course, click the three dots to the right of that assignment and select **LTI Integration URL**.

110-110: Add comma and end punctuation for clarity

Small grammar fix.

-To add students/teachers see :ref:`User account creation <lms-users>`
+To add students/teachers, see :ref:`User account creation <lms-users>`.
source/instructors/admin/integration/lti1-3Canvas.rst (7)

99-101: Important note is clear; consider broadening accessibility guidance (optional)

Given the heavy use of copy buttons later, add a brief accessibility hint to also show the raw URLs for keyboard-only users.

 .. important::
-   When copying links, please use the copy button adjacent to each link to ensure accuracy and prevent linking errors.
+   When copying links, use the copy button adjacent to each link to ensure accuracy and prevent linking errors.
+   For accessibility, the full URLs are also shown so they can be copied manually.

121-123: Standardize “URL” capitalization

Use “URL” (all caps) for consistency.

-    <span style="color: teal;">Icon Url:</span><br>
+    <span style="color: teal;">Icon URL:</span><br>

Also applies to: 152-154, 182-183, 211-212


312-315: Clarify placeholder example and casing

Avoid capitalized hostnames; use a neutral placeholder domain.

-    <strong>Note: replace [CANVAS DOMAIN] with your institution’s
-      domain in steps 5-7. Make sure to remove the brackets. Example:
-      https://Codio.instructure.com/api/lti/security/jwks      </strong><br><br>
+    <strong>Note: replace [CANVAS DOMAIN] with your institution’s
+      domain in steps 5–7. Remove the brackets. Example:
+      https://yourinstitution.instructure.com/api/lti/security/jwks</strong><br><br>

324-327: Use “ID” consistently

Standard capitalization for acronyms.

-      4. <strong>Deployment Id:</strong> copied in Part 2<br><br>
+      4. <strong>Deployment ID:</strong> copied in Part 2<br><br>

378-384: Resolve potential contradiction about using the LTI Integration URL

This note warns against using the LTI Integration URL, while later sections describe mapping “by LTI integration URL.” Clarify the context (e.g., not using it directly in the External Tool field vs. using it in Codio mapping).

-  <strong>Note: Do not use LTI Integration URL to assign an assignment</strong><br><br>
+  <strong>Note:</strong> Do not paste the LTI Integration URL directly into the Canvas
+  External Tool URL field when creating an assignment. Instead, use the deep link
+  “Find” flow (recommended) or follow the “Connect by LTI Integration URL” method
+  described below.

Would you like me to adjust the later “How to connect…” section to cross-reference this note explicitly?


393-393: Remove unnecessary article

Minor grammar improvement.

-You can customize the width and height of the Codio window embedded in the Canvas. The default width is 1000 pixels and height is 800 pixels, change those values if you need and press **Save Changes**.
+You can customize the width and height of the Codio window embedded in Canvas. The default width is 1000 pixels and height is 800 pixels; change those values if needed and press **Save Changes**.

416-443: Improve capitalization/grammar of mapping section headings

Use consistent title case and clarify phrasing.

-How to connect assignment by lti integration url of assignment
+How to Connect an Assignment by LTI Integration URL

-How to connect assignment by resource selection preview
+How to Connect an Assignment via Resource Selection Preview

-How to connect assignment by endpoint url
+How to Connect an Assignment by Endpoint URL

-How to connect assignment with custom param
+How to Connect an Assignment with a Custom Parameter
source/instructors/getstarted/howto.rst (5)

11-12: Remove stray line-block marker

A standalone “|” can render unexpectedly; use a blank line for spacing.

-|
+

34-35: Tighten heading wording

Singular “Guide” reads better here.

-Editing Existing Guides Content
+Editing Existing Guide Content

60-61: Remove stray line-block marker

Same spacing issue as above.

-|
+

69-72: Polish link text grammar (optional)

Add an article and use plural for clarity.

-     - | `Editable, Interactive Course Resources for Intro CS in Python, Java, C++ <https://codio.wistia.com/medias/yhjwxe1cgp>`_
-       | `Assigning Codio Resource <https://codio.wistia.com/medias/kpwbszlupk>`_
+     - | `Editable, Interactive Course Resources for Intro CS in Python, Java, and C++ <https://codio.wistia.com/medias/yhjwxe1cgp>`_
+       | `Assigning a Codio Resource <https://codio.wistia.com/medias/kpwbszlupk>`_

77-80: Refine link text for consistency

Drop “video” from the link text.

-       | `Student Codio IDE Overview video <https://codio.wistia.com/medias/7aevzapmtp>`_
+       | `Student Codio IDE Overview <https://codio.wistia.com/medias/7aevzapmtp>`_
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cefe568 and 2ca4c0a.

📒 Files selected for processing (8)
  • source/instructors/admin/integration/intro.rst (1 hunks)
  • source/instructors/admin/integration/lms-systems/blackboard.rst (4 hunks)
  • source/instructors/admin/integration/lms-systems/d2l.rst (2 hunks)
  • source/instructors/admin/integration/lms-systems/schoology.rst (1 hunks)
  • source/instructors/admin/integration/lti1-3Canvas.rst (4 hunks)
  • source/instructors/admin/integration/lti1-3DynReg.rst (1 hunks)
  • source/instructors/admin/integration/open-student-assignments-lms.rst (1 hunks)
  • source/instructors/getstarted/howto.rst (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • source/instructors/admin/integration/lms-systems/schoology.rst
  • source/instructors/admin/integration/lti1-3DynReg.rst
  • source/instructors/admin/integration/lms-systems/d2l.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit Configuration File

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.

Files:

  • source/instructors/admin/integration/intro.rst
  • source/instructors/admin/integration/open-student-assignments-lms.rst
  • source/instructors/admin/integration/lms-systems/blackboard.rst
  • source/instructors/getstarted/howto.rst
  • source/instructors/admin/integration/lti1-3Canvas.rst
🔇 Additional comments (6)
source/instructors/admin/integration/intro.rst (1)

17-17: Expose new page in navigation: looks good

The toctree entry correctly references the new page in the same directory and will build the nav item.

source/instructors/admin/integration/lms-systems/blackboard.rst (2)

9-9: Switch to HTTPS: good catch

Updating the Blackboard link to HTTPS improves security and avoids mixed content issues.


102-103: Corrected checkbox label: looks good

Matches the Blackboard UI label and fixes the typo.

source/instructors/admin/integration/lti1-3Canvas.rst (1)

15-15: Deep-linking URL formatting: good

Inline code formatting improves readability and avoids link auto-detection issues.

source/instructors/getstarted/howto.rst (2)

9-10: Intro sentence reads well; approved

Clear, concise, and sets expectations.


89-90: Note directive: approved

Clear and helpful global note about start time.

Comment on lines +13 to +15
.. important::
Not all LMS systems support this direct integration feature. Please verify that your specific LMS platform is compatible with this functionality before relying on it for your workflow. If your LMS doesn't support direct assignment access, you'll need to use the traditional method of accessing assignments through the teacher dashboard.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fix directive indentation and tighten the Important note wording

The leading space before the directive may break rendering. Also, split the long sentence for readability.

- .. important::
-    Not all LMS systems support this direct integration feature. Please verify that your specific LMS platform is compatible with this functionality before relying on it for your workflow. If your LMS doesn't support direct assignment access, you'll need to use the traditional method of accessing assignments through the teacher dashboard.
+.. important::
+   Not all LMS platforms support this direct integration feature.
+   Please verify that your LMS is compatible before relying on it for your workflow.
+   If your LMS doesn't support direct assignment access, use the traditional method of accessing assignments through the teacher dashboard.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
.. important::
Not all LMS systems support this direct integration feature. Please verify that your specific LMS platform is compatible with this functionality before relying on it for your workflow. If your LMS doesn't support direct assignment access, you'll need to use the traditional method of accessing assignments through the teacher dashboard.
.. important::
Not all LMS platforms support this direct integration feature.
Please verify that your LMS is compatible before relying on it for your workflow.
If your LMS doesn't support direct assignment access, use the traditional method of accessing assignments through the teacher dashboard.
🤖 Prompt for AI Agents
In source/instructors/admin/integration/open-student-assignments-lms.rst around
lines 13 to 15, the ".. important::" directive has a leading space that can
break rendering and the note is a long run-on sentence; remove the leading space
so the directive is flush with the left margin and rephrase/split the content
into two shorter sentences with tightened wording (e.g., state that not all LMS
platforms support direct integration and tell the reader to verify
compatibility, and add a second sentence explaining to use the teacher dashboard
if direct access is not available).

Comment on lines +27 to +54
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| Parameter | Description | Example |
+==================+===============================================================+==================================================+
| id | id= lms user identification | "actual_user_id": "123" |
| | | |
| | This is equivalent of sub when the request is executed | |
| | without changing the current user. | |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| email | email= actual user email | |
| | | |
| | Used for registration if ``custom_actual_user_id`` | "actual_user_email": "lms-admin@email.com" |
| | does not match an existing user. | |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| role | role= actual user role | |
| | | |
| | This role must not be student-like. | "actual_user_role": "Instructor" |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| given_name | given_name= actual user given name | "actual_user_given_name": "Name" |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| family_name | family_name= actual user family name | "actual_user_family_name": "Family" |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| full_name | full_name= actual user full name | |
| | | |
| | This could be omitted if | "actual_user_full_name": "Name Family" |
| | custom_actual_user_name_family and | |
| | custom_actual_user_name_given passed. | |
+------------------+---------------------------------------------------------------+--------------------------------------------------+

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Clarify and standardize the grid table content (grammar, consistency, and code formatting)

  • Wrap parameter names and keys in code literals.
  • Use consistent terminology (e.g., “identifier,” “equivalent to”).
  • Ensure the Example column only contains example values.
  • Align “full_name” guidance with earlier given/family name parameters and fix inconsistent names.
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| Parameter        | Description                                                   | Example                                          |
-+==================+===============================================================+==================================================+
-| id               | id= lms user identification                                   | "actual_user_id": "123"                          |
-|                  |                                                               |                                                  |
-|                  | This is equivalent of sub when the request is executed        |                                                  |
-|                  | without changing the current user.                            |                                                  |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| email            | email= actual user email                                      |                                                  |
-|                  |                                                               |                                                  |
-|                  | Used for registration if ``custom_actual_user_id``            | "actual_user_email": "lms-admin@email.com"       |
-|                  | does not match an existing user.                              |                                                  |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| role             | role= actual user role                                        |                                                  |
-|                  |                                                               |                                                  |
-|                  | This role must not be student-like.                           | "actual_user_role": "Instructor"                 |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| given_name       | given_name= actual user given name                            | "actual_user_given_name": "Name"                 |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| family_name      | family_name= actual user family name                          | "actual_user_family_name": "Family"              |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| full_name        | full_name= actual user full name                              |                                                  |
-|                  |                                                               |                                                  |
-|                  | This could be omitted if                                      | "actual_user_full_name": "Name Family"           |
-|                  | custom_actual_user_name_family and                            |                                                  |
-|                  | custom_actual_user_name_given passed.                         |                                                  |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| Parameter        | Description                                                           | Example                                      |
++==================+=======================================================================+==============================================+
+| ``id``           | LMS user identifier.                                                  | ``"actual_user_id": "123"``                  |
+|                  | Equivalent to the ``sub`` claim when the request is executed          |                                              |
+|                  | without changing the current user.                                    |                                              |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``email``        | Actual user email. Used for registration if                           | ``"actual_user_email": "lms-admin@email.com"`` |
+|                  | ``custom_actual_user_id`` does not match an existing user.            |                                              |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``role``         | Actual user role. Must not be student-like (e.g., use Instructor,     | ``"actual_user_role": "Instructor"``         |
+|                  | TA, or Admin).                                                        |                                              |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``given_name``   | Actual user given name.                                               | ``"actual_user_given_name": "Name"``         |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``family_name``  | Actual user family name.                                              | ``"actual_user_family_name": "Family"``      |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``full_name``    | Actual user full name. Optional if                                    | ``"actual_user_full_name": "Name Family"``   |
+|                  | ``custom_actual_user_given_name`` and                                 |                                              |
+|                  | ``custom_actual_user_family_name`` are passed.                        |                                              |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| Parameter | Description | Example |
+==================+===============================================================+==================================================+
| id | id= lms user identification | "actual_user_id": "123" |
| | | |
| | This is equivalent of sub when the request is executed | |
| | without changing the current user. | |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| email | email= actual user email | |
| | | |
| | Used for registration if ``custom_actual_user_id`` | "actual_user_email": "lms-admin@email.com" |
| | does not match an existing user. | |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| role | role= actual user role | |
| | | |
| | This role must not be student-like. | "actual_user_role": "Instructor" |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| given_name | given_name= actual user given name | "actual_user_given_name": "Name" |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| family_name | family_name= actual user family name | "actual_user_family_name": "Family" |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
| full_name | full_name= actual user full name | |
| | | |
| | This could be omitted if | "actual_user_full_name": "Name Family" |
| | custom_actual_user_name_family and | |
| | custom_actual_user_name_given passed. | |
+------------------+---------------------------------------------------------------+--------------------------------------------------+
+------------------+-----------------------------------------------------------------------+----------------------------------------------+
| Parameter | Description | Example |
+==================+=======================================================================+==============================================+
| ``id`` | LMS user identifier. | ``"actual_user_id": "123"`` |
| | Equivalent to the ``sub`` claim when the request is executed | |
| | without changing the current user. | |
+------------------+-----------------------------------------------------------------------+----------------------------------------------+
| ``email`` | Actual user email. Used for registration if | ``"actual_user_email": "lms-admin@email.com"`` |
| | ``custom_actual_user_id`` does not match an existing user. | |
+------------------+-----------------------------------------------------------------------+----------------------------------------------+
| ``role`` | Actual user role. Must not be student-like (e.g., use Instructor, | ``"actual_user_role": "Instructor"`` |
| | TA, or Admin). | |
+------------------+-----------------------------------------------------------------------+----------------------------------------------+
| ``given_name`` | Actual user given name. | ``"actual_user_given_name": "Name"`` |
+------------------+-----------------------------------------------------------------------+----------------------------------------------+
| ``family_name`` | Actual user family name. | ``"actual_user_family_name": "Family"`` |
+------------------+-----------------------------------------------------------------------+----------------------------------------------+
| ``full_name`` | Actual user full name. Optional if | ``"actual_user_full_name": "Name Family"`` |
| | ``custom_actual_user_given_name`` and | |
| | ``custom_actual_user_family_name`` are passed. | |
+------------------+-----------------------------------------------------------------------+----------------------------------------------+
🤖 Prompt for AI Agents
In source/instructors/admin/integration/open-student-assignments-lms.rst lines
27-54, the parameter table needs grammar, formatting and consistency fixes: wrap
all parameter names and example keys as inline code, change "id"
label/description to "identifier" and reword “equivalent of” to “equivalent to”,
ensure the Example column contains only example values (remove labels like id=
or email= and the explanatory text), standardize wording for role to "must not
be a student or student-like role", and make the full_name guidance consistent
with given_name/family_name by correcting and ordering the custom field names
(use custom_actual_user_name_given and custom_actual_user_name_family) and
remove duplicated explanatory lines so examples are just the sample values.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🔭 Outside diff range comments (1)
source/instructors/admin/integration/lti1-3Canvas.rst (1)

111-122: Use code blocks (+sphinx-copybutton) instead of inline JS copy buttons

Inline <script>/onclick buttons can be blocked by CSP and reduce accessibility/localization. Replace them with literal code blocks and enable the Sphinx copybutton extension if you want a one-click copy affordance.

Files to update / findings:

  • source/instructors/admin/integration/lti1-3Canvas.rst — replace the inline JS copy button (snippet at ~lines 111–122).
  • source/conf.py — checked; no copybutton (sphinx_copybutton) entry found.
  • student-source/conf.py — checked; no copybutton (sphinx_copybutton) entry found.

Suggested replacement (example diff):

-     <span style="color: teal;">Target Link URI:</span>
-     https://apollo.codio.com/lti/resource_selection
-     <button onclick="copyRSTUrl1()">Copy URL</button><br>
-     <script> function copyRSTUrl1() { const url = "https://apollo.codio.com/lti/resource_selection"; navigator.clipboard.writeText(url).then(() => { alert('URL copied to clipboard!'); }).catch(err => { console.error('Failed to copy: ', err); }); } </script>
+     <span style="color: teal;">Target Link URI:</span>
+
+     .. code-block:: text
+
+        https://apollo.codio.com/lti/resource_selection

If you want copy buttons for literal blocks, add 'sphinx_copybutton' to the extensions list in the relevant conf.py (and install the package). Apply the same replacement pattern for other copy buttons on the page.

🧹 Nitpick comments (12)
source/instructors/admin/integration/lti1-3BS-D2L.rst (1)

26-28: Streamline the important note and align wording with other pages.

Recommend tightening the language and using “next to” instead of “adjacent to” for clarity and consistency with Canvas docs.

Apply this diff:

- .. important::
-    When copying links, please use the copy button adjacent to each link to ensure accuracy and prevent linking errors.
+ .. important::
+    When copying links, use the copy button next to each link to ensure accuracy and prevent linking errors.
source/instructors/admin/integration/lti1-3Canvas.rst (11)

15-15: Standardize “Deep Linking” capitalization and hyphenation.

Use the LTI term “Deep Linking” (capitalized, no hyphen) for consistency.

-The deep-linking URL is ``https://apollo.codio.com/lti/resource_selection``.
+The Deep Linking URL is ``https://apollo.codio.com/lti/resource_selection``.

22-24: Tighten the important note wording.

Drop “please” and prefer “next to” over “adjacent to” for plain, direct language.

- .. important::
-    When copying links, please use the copy button adjacent to each link to ensure accuracy and prevent linking errors.
+ .. important::
+    When copying links, use the copy button next to each link to ensure accuracy and prevent linking errors.

153-163: Use “Icon URL” (not “Icon Url”).

Align capitalization across the page.

-     <span style="color: teal;">Icon Url:</span><br>
+     <span style="color: teal;">Icon URL:</span><br>

183-191: Use “Icon URL” (not “Icon Url”).

Same capitalization fix as above for consistency.

-     <span style="color: teal;">Icon Url:</span><br>
+     <span style="color: teal;">Icon URL:</span><br>

211-221: Use “Icon URL” (not “Icon Url”).

Apply the consistent capitalization here as well.

-     <span style="color: teal;">Icon Url:</span><br>
+     <span style="color: teal;">Icon URL:</span><br>

314-316: Clarify the bracket note and reduce redundancy.

Reword for flow and to avoid repeating “replace”.

-     <strong>Note: replace [CANVAS DOMAIN] with your institution’s
-       domain in steps 5–7. Remove the brackets. Example:
-       https://yourinstitution.instructure.com/api/lti/security/jwks</strong><br><br>
+     <strong>Note: In steps 5–7, replace [CANVAS DOMAIN] with your institution’s
+       domain (omit the brackets). For example:
+       https://yourinstitution.instructure.com/api/lti/security/jwks</strong><br><br>

379-383: Convert the inline HTML “Note” to a proper rst admonition outside the table.

Admonitions inside grid-table cells are brittle and less accessible. Place a rst admonition below the table for consistent rendering.

Replace the inline HTML note:

-  <strong>Note:</strong> Do not paste the LTI Integration URL directly into the Canvas
-           External Tool URL field when creating an assignment. Instead, use the deep link
-          “Find” flow (recommended) or follow the “Connect by LTI Integration URL” method
-           described below. <br><br>

Then add this admonition immediately after the table block:

.. warning::
   Do not paste the LTI Integration URL directly into the Canvas External Tool URL field
   when creating an assignment. Use the Deep Linking “Find” flow (recommended), or follow
   the “Connect by LTI Integration URL” method below.

386-388: End the recommendation with a period.

Minor punctuation for completeness.

-          <li> Recommended: Select Load in a new tab</li></ul><br>
+          <li> Recommended: Select Load in a new tab.</li></ul><br>

400-401: Polish the iframe guidance and terminology.

Prefer “iframe” and tighten phrasing.

-You can customize the width and height of the Codio window embedded in Canvas. The default width is 1000 pixels and height is 800 pixels; change those values if needed and press **Save Changes**.
+You can customize the width and height of the Codio iframe embedded in Canvas. The default width is 1000 pixels and the default height is 800 pixels; change these values as needed and click **Save Changes**.

423-424: Make the “How to Connect” headings parallel.

Use a consistent preposition across all four headings. “Using” reads naturally in each case.

-How to Connect an Assignment by LTI Integration URL
+How to Connect an Assignment using an LTI Integration URL
@@
-How to Connect an Assignment via Resource Selection Preview
+How to Connect an Assignment using Resource Selection Preview
@@
-How to Connect an Assignment by Endpoint URL
+How to Connect an Assignment using an Endpoint URL
@@
-How to Connect an Assignment with a Custom Parameter
+How to Connect an Assignment using a Custom Parameter

Also applies to: 430-431, 437-438, 444-445


426-449: Add accessible alternatives for video embeds.

Provide text links to the videos and/or transcripts below each embed to support users with blocked scripts, screen readers, or low bandwidth.

Example (add after each embed):

If the video does not load, view it at: https://fast.wistia.com/embed/medias/bzowzoyfz1
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these settings in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 2ca4c0a and 66eda89.

📒 Files selected for processing (6)
  • source/instructors/admin/integration/lms-systems/blackboard.rst (4 hunks)
  • source/instructors/admin/integration/lti1-3BS-D2L.rst (1 hunks)
  • source/instructors/admin/integration/lti1-3Canvas.rst (8 hunks)
  • source/instructors/admin/integration/lti1-3DynReg.rst (1 hunks)
  • source/instructors/admin/integration/open-student-assignments-lms.rst (1 hunks)
  • source/instructors/getstarted/howto.rst (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
  • source/instructors/getstarted/howto.rst
  • source/instructors/admin/integration/open-student-assignments-lms.rst
  • source/instructors/admin/integration/lti1-3DynReg.rst
  • source/instructors/admin/integration/lms-systems/blackboard.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit Configuration File

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.

Files:

  • source/instructors/admin/integration/lti1-3Canvas.rst
  • source/instructors/admin/integration/lti1-3BS-D2L.rst
🔇 Additional comments (2)
source/instructors/admin/integration/lti1-3Canvas.rst (2)

232-232: Good clarification on “Details” column usage.

Clear instruction and correct capitalization. No changes needed.


393-394: Good use of a formal rst note directive.

Clear, concise, and correctly formatted admonition.

@LolaValente LolaValente merged commit e53f939 into master Aug 14, 2025
1 check passed
@LolaValente LolaValente deleted the LTIUpdatesandDynReg branch August 14, 2025 15:55
This was referenced Oct 16, 2025
@coderabbitai coderabbitai bot mentioned this pull request Nov 5, 2025
@coderabbitai coderabbitai bot mentioned this pull request Nov 18, 2025
@coderabbitai coderabbitai bot mentioned this pull request Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants