{"id":23123,"library":"lti-consumer-xblock","title":"LTI Consumer XBlock","description":"An XBlock for Open edX that implements the consumer side of the LTI 1.1 and LTI 1.3 Advantage specifications, enabling embedding of external tools (e.g., lab platforms, publishers) into courseware. Current version 11.2.0, released June 2025. Active development under the Open edX project with regular releases.","status":"active","version":"11.2.0","language":"python","source_language":"en","source_url":"https://github.com/openedx/xblock-lti-consumer","tags":["xblock","lti","openedx","education"],"install":[{"cmd":"pip install lti-consumer-xblock","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Runtime dependency; requires xblock package for XBlock base classes.","package":"XBlock","optional":false},{"reason":"Used for web framework integration; required for Open edX installations.","package":"Django","optional":false},{"reason":"Used for LTI 1.3 key handling (JWKS).","package":"pyjwkest","optional":false},{"reason":"Used for LTI 1.1 OAuth signing.","package":"oauthlib","optional":false}],"imports":[{"note":"The package is lti-consumer-xblock but the import module is lti_consumer.","wrong":"from lti_consumer_xblock import LtiConsumerXBlock","symbol":"LtiConsumerXBlock","correct":"from lti_consumer import LtiConsumerXBlock"},{"note":"The model is named LtiConfiguration, not LtiConsumerConfiguration.","wrong":"from lti_consumer.models import LtiConsumerConfiguration","symbol":"LtiConfiguration","correct":"from lti_consumer.models import LtiConfiguration"}],"quickstart":{"code":"from lti_consumer import LtiConsumerXBlock\n\n# The XBlock is typically used within Open edX courseware.\n# Minimal standalone usage example:\nblock = LtiConsumerXBlock()\nblock.location = 'block-v1:org+course+run+type@lti_consumer+block@lti1'\nblock.display_name = 'My LTI Tool'\nblock.lti_id = 'tool_id'\nblock.lti_version = 'lti_1p3'\nblock.lti_1p3_launch_url = 'https://example.com/lti/launch'\nprint('LTI Consumer XBlock instantiated successfully.')","lang":"python","description":"Basic instantiation of the LTI Consumer XBlock."},"warnings":[{"fix":"Use Python 3.8, 3.9, or 3.10.","message":"From v11.0.0, Python 3.11 support was dropped. Only Python 3.8-3.10 are supported.","severity":"breaking","affected_versions":">=11.0.0"},{"fix":"Ensure Django version >= 3.2 is installed.","message":"From v10.0.0, Python 3.11 support was dropped, and the library now requires Django >= 3.2.","severity":"breaking","affected_versions":">=10.0.0"},{"fix":"Migrate to LTI 1.3 configuration using lti_1p3_* fields.","message":"LTI 1.1 (lti_version='lti_1p1') is considered deprecated; LTI 1.3 is recommended.","severity":"deprecated","affected_versions":"all"},{"fix":"Use 'from lti_consumer import LtiConsumerXBlock'.","message":"The xblock import module is `lti_consumer`, not `lti_consumer_xblock`. Mistaking the import path leads to ModuleNotFoundError.","severity":"gotcha","affected_versions":"all"},{"fix":"Use 'from lti_consumer.models import LtiConfiguration'.","message":"The LtiConfiguration model is in `lti_consumer.models`, but there is no 'LtiConsumerConfiguration' model.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from lti_consumer import LtiConsumerXBlock' instead.","cause":"Incorrect import path; the package name differs from the module name.","error":"ModuleNotFoundError: No module named 'lti_consumer_xblock'"},{"fix":"Use 'from lti_consumer.models import LtiConfiguration'.","cause":"Attempting to import a non-existent model; the correct model is LtiConfiguration.","error":"ImportError: cannot import name 'LtiConsumerConfiguration' from 'lti_consumer.models'"},{"fix":"Provide a location string (e.g., 'block-v1:...') when constructing the XBlock.","cause":"LtiConsumerXBlock requires a 'location' field when instantiated outside of Open edX runtime.","error":"TypeError: __init__() missing 1 required positional argument: 'location'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}