{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/16"},{"label":"WWW/HTTP","url":"https://skillfed.io/packages/category/internet-www-http/5"},{"label":"Application Frameworks","url":"https://skillfed.io/packages/category/software-development-libraries-application-frameworks/4"},{"label":"Security","url":"https://skillfed.io/packages/category/security/2"},{"label":"Dynamic Content","url":"https://skillfed.io/packages/category/internet-www-http-dynamic-content/3"},{"label":"WSGI","url":"https://skillfed.io/packages/category/internet-www-http-wsgi"}],"enrichment":{"capability":"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.","skillfed_tags":["lti-integration","educational-technology","oidc-oauth2"],"use_cases":["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."],"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.\n\nYou configure the tool with issuer settings (auth endpoints, keys, deployment IDs) either via JSON files, Python dictionaries, or\u2014in Django\u2014via 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.","worth_installing":"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."},"id":"pylti1p3","links":{"html":"https://skillfed.io/packages/pylti1p3","md":"https://skillfed.io/packages/pylti1p3.md","pypi":"https://pypi.org/project/pylti1p3/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2022-11-20","license_spdx":null,"license_treatment":"permissive","name":"PyLTI1p3","python_support":"unspecified","summary":"LTI 1.3 Advantage Tool implementation in Python"},"popularity":{"monthly_downloads":189876,"position":9921,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2.0.0"}
