--- id: pylti1p3 version: "2.0.0" license: MIT license_treatment: permissive maintenance: dormant --- # PyLTI1p3 — LTI 1.3 Advantage Tool implementation in Python License: permissive · Maintenance: dormant · Downloads: 189.9K/mo ## What it is and what it does PyLTI1p3 is a Python library that implements the LTI 1.3 Advantage standard, allowing you to build learning tools that integrate with educational platforms like Canvas. It handles the two-step LTI launch flow: first an OIDC login request to the platform, then a signed message launch back to your tool. The library provides ready-made adapters for Django and Flask, abstracting away the cryptographic validation and OIDC protocol details. You configure the tool with issuer settings (auth endpoints, keys, deployment IDs) either via JSON files, Python dictionaries, or—in Django—via the admin UI. Once configured, you instantiate OIDCLogin or MessageLaunch objects bound to the incoming request, call redirect() or get_launch_data(), and the library handles JWT validation, key fetching, and claim extraction. It also provides convenience methods to check launch type and access to LTI services like Assignments & Grades and Names & Roles. Use it for: - Build a custom learning tool that launches from Canvas or other LTI-compliant platforms with automatic user authentication. - Integrate grade passback and assignment submission handling via LTI Advantage services without implementing the protocol yourself. - Deploy the same tool across multiple LMS instances by configuring multiple issuers and client IDs in a single application. - Validate and extract user/course context from LTI launch messages to personalize tool behavior per institution. - Implement deep linking to allow instructors to select and embed tool content directly into course materials. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Implements the LTI 1.3 Advantage specification for Python web applications, providing OIDC login and message launch handling with built-in adapters for Django and Flask. Yes, if you are building an LTI 1.3 tool for Django or Flask and can accept dormant maintenance. The library is production-stable, has no known vulnerabilities, and handles the complex LTI protocol correctly. However, verify compatibility with your target LMS versions and be prepared to fork or patch if critical issues arise post-2022, since the original maintainer is not actively releasing updates. ## Install pip install pylti1p3 uv add pylti1p3 poetry add pylti1p3 ## Installing PyLTI1p3 Before you install: Low install friction with only four runtime dependencies (jwcrypto, pyjwt, requests, typing-extensions). However, the package is dormant—last release was 2022-11-20 and last commit 2024-08-18—so it receives no active maintenance despite being marked Production/Stable. License in practice: MIT license (permissive) means you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions. Quickstart: # Install pip install PyLTI1p3 # Django example from pylti1p3.contrib.django import DjangoOIDCLogin, DjangoMessageLaunch from pylti1p3.tool_config import ToolConfDict tool_conf = ToolConfDict(settings) oidc_login = DjangoOIDCLogin(request, tool_conf) oidc_login.redirect(launch_url) message_launch = DjangoMessageLaunch(request, tool_conf) launch_data = message_launch.get_launch_data() Requires Django or Flask web framework; LTI platform must be pre-configured with tool's public/private keys and deployment IDs. Verify before relying: - Whether the package works with LMS platforms released after 2022-11-20 without issues. - Current compatibility with Python 3.12+ (classifiers list only up to 3.11). - Whether dormant status means security patches will be applied if vulnerabilities are discovered. ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: low - Maintenance: dormant - Downloads: 189.9K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags lti 1.3 tool implementation, learning tools interoperability python, oidc login lti platform, django flask lti integration, lti message launch validation, lti advantage service access, canvas lms integration python, lti-integration, educational-technology, oidc-oauth2 [View on SkillFed](https://skillfed.io/packages/pylti1p3) · [View on PyPI](https://pypi.org/project/pylti1p3/)