All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.imsglobal.lti.BasicLTIConstants Maven / Gradle / Ivy

Go to download

BasicLTI Utilities are a set of utility classes to aid in the development of BasicLTI consumers and providers. They deal with much of the heavy lifting and make the process more opaque to the developer.

The newest version!
/*
 * Copyright (c) 2008 IMS GLobal Learning Consortium
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package org.imsglobal.lti;

public class BasicLTIConstants {
	/**
	 * context_id=8213060-006f-27b2066ac545
	 * 

* This is an opaque identifier that uniquely identifies the context that * contains the link being launched. */ public static final String CONTEXT_ID = "context_id"; /** * context_label=SI182 *

* A label for the context - intended to fit in a column. */ public static final String CONTEXT_LABEL = "context_label"; /** * context_title=Design of Personal Environments *

* A title of the context - it should be about the length of a line. */ public static final String CONTEXT_TITLE = "context_title"; /** * context_type=CourseSection *

* This string is a comma-separated list of URN values that identify the type * of context. At a minimum, the list MUST include a URN value drawn from the * LIS vocabulary (see Appendix A). The assumed namespace of these URNs is the * LIS vocabulary so TCs can use the handles when the intent is to refer to an * LIS context type. If the TC wants to include a context type from another * namespace, a fully-qualified URN should be used. */ public static final String CONTEXT_TYPE = "context_type"; public static final String CONTEXT_TYPE_COURSE_OFFERING = "CourseOffering"; public static final String CONTEXT_TYPE_COURSE_SECTION = "CourseSection"; public static final String CONTEXT_TYPE_COURSE_TEMPLATE = "CourseTemplate"; public static final String CONTEXT_TYPE_GROUP = "Group"; /** * ext_param=value *

* Systems can add their own values to the launch but should prefix * any extensions with "ext_". */ public static final String EXTENSION_PREFIX = "ext_"; /** * custom_keyname=value *

* The creator of a Basic LTI link can add custom key/value parameters to a * launch which are to be included with the launch of the Basic LTI link. The * Common Cartridge section below describes how these parameters are * represented when storing custom parameters in a Common Cartridge. *

* When there are custom name / value parameters in the launch, a POST * parameter is included for each custom parameter. The parameter names are * mapped to lower case and any character that is neither a number nor letter * in a parameter name is replaced with an "underscore". So if a custom entry * was as follows: *

* Review:Chapter=1.2.56 *

* Would map to: custom_review_chapter=1.2.56 *

* Creators of Basic LTI links would be well served to limit their parameter * names to lower case and to use no punctuation other than underscores. If * these custom parameters are included in the Basic LTI link, the TC must * include them in the launch data or the TP may fail to function. */ public static final String CUSTOM_PREFIX = "custom_"; /** * Parameters with the OAuth prefix are also acceptible. */ public static final String OAUTH_PREFIX = "oauth_"; /** * launch_presentation_document_target=iframe *

* The value should be either 'frame', 'iframe' or 'window'. This field * communicates the kind of browser window/frame where the TC has launched the * tool. */ public static final String LAUNCH_PRESENTATION_DOCUMENT_TARGET = "launch_presentation_document_target"; /** * launch_presentation_height=240 *

* The height of the window or frame where the content from the tool will be * displayed. */ public static final String LAUNCH_PRESENTATION_HEIGHT = "launch_presentation_height"; /** * launch_presentation_locale=en_US_variant *

* Language, country and variant separated by underscores. Language is the * lower-case, two-letter code as defined by ISO-639 (list of codes available * at http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt). Country is the * upper-case, two-letter code as defined by ISO-3166 (list of codes available * at http://www.chemie.fu- berlin.de/diverse/doc/ISO_3166.html). Country and * variant codes are optional. */ public static final String LAUNCH_PRESENTATION_LOCALE = "launch_presentation_locale"; /** * launch_presentation_return_url=http://lmsng.school.edu/portal/123/page/988/ *

* Fully qualified URL where the TP can redirect the user back to the TC interface. This * URL can be used once the TP is finished or if the TP cannot start or has some * technical difficulty. In the case of an error, the TP may add a parameter called * lti_errormsg that includes some detail as to the nature of the error. The * lti_errormsg value should make sense if displayed to the user. If the tool has * displayed a message to the end user and only wants to give the TC a message to log, * use the parameter lti_errorlog instead of lti_errormsg. If the tool is terminating * normally, and wants a message displayed to the user it can include a text message as * the lti_msg parameter to the return URL. If the tool is terminating normally and * wants to give the TC a message to log, use the parameter lti_log. This data should be * sent on the URL as a GET - so the TP should take care to keep the overall length of * the parameters small enough to fit within the limitations of a GET request. */ public static final String LAUNCH_PRESENTATION_RETURN_URL = "launch_presentation_return_url"; /** * launch_presentation_width=320 *

* The width of the window or frame where the content from the tool will be * displayed. */ public static final String LAUNCH_PRESENTATION_WIDTH = "launch_presentation_width"; /** * launch_presentation_css_url=http://www.toolconsumer.url/path/to/lti.css *

* This points to a fully qualified URL for a CSS which can be used to style the tool. * There are no officially defined CSS classes for this file, but the Consumer can * apply styles to paragraphs, body, and the various HTML elements. It is up to the * tool as to whether this CSS is used or not, and in what order this is included relative * to the tool-specific CSS. */ public static final String LAUNCH_PRESENTATION_CSS_URL = "launch_presentation_css_url"; /** * [email protected] *

* These fields contain information about the user account that is performing * this launch. The names of these data items are taken from LIS. The precise * meaning of the content in these fields is defined by LIS. */ public static final String LIS_PERSON_CONTACT_EMAIL_PRIMARY = "lis_person_contact_email_primary"; /** * lis_person_name_family=Public *

* These fields contain information about the user account that is performing * this launch. The names of these data items are taken from LIS. The precise * meaning of the content in these fields is defined by LIS. */ public static final String LIS_PERSON_NAME_FAMILY = "lis_person_name_family"; /** * lis_person_name_full=Jane Q. Public *

* These fields contain information about the user account that is performing * this launch. The names of these data items are taken from LIS. The precise * meaning of the content in these fields is defined by LIS. */ public static final String LIS_PERSON_NAME_FULL = "lis_person_name_full"; /** * lis_person_name_given=Jane *

* These fields contain information about the user account that is performing * this launch. The names of these data items are taken from LIS. The precise * meaning of the content in these fields is defined by LIS. */ public static final String LIS_PERSON_NAME_GIVEN = "lis_person_name_given"; /** * lis_person_sourcedid=school.edu:user *

* This field contains the LIS identifier for the user account that is * performing this launch. The example syntax of "school:user" * is not the required format – lis_person_sourcedid is simply a * unique identifier (i.e., a normalized string). This field * is optional and its content and meaning are defined by LIS. */ public static final String LIS_PERSON_SOURCEDID = "lis_person_sourcedid"; /** * lis_course_offering_sourcedid=school.edu:SI182-F08 * lis_course_section_sourcedid=school.edu:SI182-001-F08 *

* These fields contain LIS course identifiers associated with the * context of this launch. These fields are optional and their * content and meaning are defined by LIS. */ public static final String LIS_COURSE_OFFERING_SOURCEDID = "lis_course_offering_sourcedid"; public static final String LIS_COURSE_SECTION_SOURCEDID = "lis_course_section_sourcedid"; /** * lis_outcome_service_url=http://lmsng.school.edu/service/ltiout/ *

* This field should be no more than 1023 characters long and the TP * should assume that the URL might change from launch to launch and * allow for the fact that a TC might change their service URL from * launch to launch and only use the most recent value for this * parameter. The service URL may support various operations / services. * The TC will respond with a response of 'unimplemented' for services * it does not support. */ public static final String LIS_OUTCOME_SERVICE_URL = "lis_outcome_service_url"; /** * lis_result_sourcedid=83873872987329873264783687634 *

* This field contains an identifier that indicates the LIS Result * Identifier (if any) associated with this launch. This field is * optional and its content and meaning is defined by LIS. */ public static final String LIS_RESULT_SOURCEDID = "lis_result_sourcedid"; /** * lti_message_type=basic-lti-launch-request *

* This indicates that this is a Basic LTI Launch Message. This allows a TP to * accept a number of different LTI message types at the same launch URL. This * parameter is required. */ public static final String LTI_MESSAGE_TYPE = "lti_message_type"; public static final String LTI_MESSAGE_TYPE_TOOLPROXYREGISTRATIONREQUEST = "ToolProxyRegistrationRequest"; public static final String LTI_MESSAGE_TYPE_TOOLPROXY_RE_REGISTRATIONREQUEST = "ToolProxyReregistrationRequest"; public static final String LTI_MESSAGE_TYPE_BASICLTILAUNCHREQUEST = "basic-lti-launch-request"; /** * lti_version=LTI-1p0 *

* This indicates which version of the specification is being used for this * particular message. This parameter is required. */ public static final String LTI_VERSION = "lti_version"; public static final String LTI_VERSION_1 = "LTI-1p0"; public static final String LTI_VERSION_2 = "LTI-2p0"; /** * tool_consumer_info_product_family_code=desire2learn *

* In order to better assist tools in using extensions and also making their user * interface fit into the TC's user interface that they are being called from, * each TC is encouraged to include the this parameter. Possible example values * for this field might be: * * learn * desire2learn * sakai * eracer * olat * webct * This parameter is optional but recommended. */ public static final String TOOL_CONSUMER_INFO_PRODUCT_FAMILY_CODE = "tool_consumer_info_product_family_code"; /** * tool_consumer_info_version=9.2.4 *

* This field should have a major release number followed by a period. The format of the minor release is flexible. Possible vaues for this field might be: * * 9.1.7081 * 2.8-01 * 7.1 * 8 * The Tool Provider should be flexible when parsing this field. This parameter is optional but recommended. */ public static final String TOOL_CONSUMER_INFO_VERSION = "tool_consumer_info_version"; /** * resource_link_id=88391-e1919-bb3456 *

* This is an opaque unique identifier that the TC guarantees will be unique * within the TC for every placement of the link. If the tool / activity is * placed multiple times in the same context, each of those placements will be * distinct. This value will also change if the item is exported from one * system or context and imported into another system or context. This * parameter is required. */ public static final String RESOURCE_LINK_ID = "resource_link_id"; /** * resource_link_title=My Weekly Wiki *

* A title for the resource. This is the clickable text that appears * in the link. This parameter is recommended. */ public static final String RESOURCE_LINK_TITLE = "resource_link_title"; /** * resource_link_description=… *

* A plain text description of the link’s destination, suitable for * display alongside the link. Typically no more than several lines * long. This parameter is optional. */ public static final String RESOURCE_LINK_DESCRIPTION = "resource_link_description"; /** * roles=Instructor,Student *

* A comma-separated list of URN values for roles. If this list is non-empty, * it should contain at least one role from the LIS System Role, LIS * Institution Role, or LIS Context Role vocabularies (See Appendix A). The * assumed namespace of these URNs is the LIS vocabulary of LIS Context Roles * so TCs can use the handles when the intent is to refer to an LIS context * role. If the TC wants to include a role from another namespace, a * fully-qualified URN should be used. Usage of roles from non-LIS * vocabularies is discouraged as it may limit interoperability. This * parameter is recommended. */ public static final String ROLES = "roles"; /** * tc_profile_url=http://... *

* This URL specifies the address where the Tool Provider can retrieve * the Tool Consumer Profile. This URL must be retrievable by a GET * request by the Tool Provider. If the URL is protected from retrieval * in general, the Tool Consumer must append the necessary parameters to * allow the Tool Provider to retrieve the URL with nothing more than * a GET request. It is legal for this URL to contain a security token * that is changed for each ToolProxyRegistrationRequest so the Tool * Provider must retrieve the tc_profile_url on each request. */ public static final String TC_PROFILE_URL = "tc_profile_url"; /** * [email protected] *

* An email contact for the TC instance. */ public static final String TOOL_CONSUMER_INSTANCE_CONTACT_EMAIL = "tool_consumer_instance_contact_email"; /** * tool_consumer_instance_description=University of School (LMSng) *

* This is a user visible field - it should be about the length of a line. */ public static final String TOOL_CONSUMER_INSTANCE_DESCRIPTION = "tool_consumer_instance_description"; // global settings /** * tool_consumer_instance_guid=lmsng.school.edu *

* This is a key to be used when setting a TC-wide password. The TP uses this * as a key to look up the TC-wide secret when validating a message. A common * practice is to use the DNS of the organization or the DNS of the TC * instance. If the organization has multiple TC instances, then the best * practice is to prefix the domain name with a locally unique identifier for * the TC instance. This parameter is recommended. */ public static final String TOOL_CONSUMER_INSTANCE_GUID = "tool_consumer_instance_guid"; /** * tool_consumer_instance_name=SchoolU *

* This is a user visible field - it should be about the length of a column. */ public static final String TOOL_CONSUMER_INSTANCE_NAME = "tool_consumer_instance_name"; /** * Missing from implementation guide. Needs documentation. Not required, but * "tasty". */ public static final String TOOL_CONSUMER_INSTANCE_URL = "tool_consumer_instance_url"; /** * user_id=0ae836b9-7fc9-4060-006f-27b2066ac545 *

* Uniquely identifies the user. This should not contain any identifying * information for the user. Best practice is that this field should be a * TC-generated long-term "primary key" to the user record - not the logical * key. This parameter is recommended. */ public static final String USER_ID = "user_id"; /** * user_image=http://my.sakai.org/direct/profile/0ae836b9-7fc9-4060-006f-27b2066ac545/image *

* This attribute specifies the URI for an image of the user who launched this request. * This image is suitable for use as a "profile picture" or an avatar representing the user. * It is expected to be a relatively small graphic image file using a widely supported image * format (i.e. PNG, JPG, or GIF) with a square aspect ratio. This parameter is optional. */ public static final String USER_IMAGE = "user_image"; /** * ext_sakai_provider_eid=jsmith26 *

* If set, this will signal that the external application has provided an eid which * should be used preferentially. Many external applications will not have access to a user's uuid * in Sakai, so this allows integrations with those systems. * This parameter is optional and is unique to the Sakai Basic LTI provider. */ public static final String EXT_SAKAI_PROVIDER_EID = "ext_sakai_provider_eid"; /** * ext_sakai_provider_displayid=john.smith *

* If set, this will indicate to an external application that the user is normally * known by this ID and when displaying the ID to the user this ID should be used instead of the * user_id and ext_sakai_provider_eid. * This parameter is optional and is unique to the Sakai Basic LTI provider. */ public static final String EXT_SAKAI_PROVIDER_DISPLAYID = "ext_sakai_provider_displayid"; /** * Utility array useful for validating property names when building launch * data. */ public static final String[] validPropertyNames = { CONTEXT_ID, CONTEXT_LABEL, CONTEXT_TITLE, CONTEXT_TYPE, LAUNCH_PRESENTATION_DOCUMENT_TARGET, LAUNCH_PRESENTATION_HEIGHT, LAUNCH_PRESENTATION_LOCALE, LAUNCH_PRESENTATION_RETURN_URL, LAUNCH_PRESENTATION_WIDTH, LIS_PERSON_CONTACT_EMAIL_PRIMARY, LAUNCH_PRESENTATION_CSS_URL, TOOL_CONSUMER_INFO_PRODUCT_FAMILY_CODE, TOOL_CONSUMER_INFO_VERSION, LIS_PERSON_NAME_FAMILY, LIS_PERSON_NAME_FULL, LIS_PERSON_NAME_GIVEN, LIS_PERSON_SOURCEDID, LIS_COURSE_OFFERING_SOURCEDID, LIS_COURSE_SECTION_SOURCEDID, LIS_OUTCOME_SERVICE_URL, LIS_RESULT_SOURCEDID, LTI_MESSAGE_TYPE, LTI_VERSION, RESOURCE_LINK_ID, RESOURCE_LINK_TITLE, RESOURCE_LINK_DESCRIPTION, ROLES, TC_PROFILE_URL, TOOL_CONSUMER_INSTANCE_CONTACT_EMAIL, TOOL_CONSUMER_INSTANCE_DESCRIPTION, TOOL_CONSUMER_INSTANCE_GUID, TOOL_CONSUMER_INSTANCE_NAME, TOOL_CONSUMER_INSTANCE_URL, USER_ID, USER_IMAGE }; /** * The default site type to use if a site needs to be created. Can be overriden in sakai.properties or as part of the launch. * This contains a number of preconfigured roles, so that the IMS role vocabulary can be used. * See BLTI-151 */ public static final String NEW_SITE_TYPE = "lti"; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy