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

org.tsugi.basiclti.BasicLTIConstants Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2008-2016 Charles R. Severance
 *
 * 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.tsugi.basiclti;

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 LTI link can add custom key/value parameters to a * launch which are to be included with the launch of the 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 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 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 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_BASICLTILAUNCHREQUEST = "basic-lti-launch-request"; public static final String LTI_MESSAGE_TYPE_CONTENTITEMSELECTIONREQUEST = "ContentItemSelectionRequest"; public static final String LTI_MESSAGE_TYPE_CONTENTITEMSELECTION = "ContentItemSelection"; /** * 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"; /** * 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"; /** * accept_media_types=application/vnd.ims.lti.v1.ltilink,image/*,text/html (Required) * * A comma-separated list of MIME types which can be accepted on the return URL. * A MIME type of application/vnd.ims.lti.v1.ltilink is used to represent an LTI launch * request to a TP. This parameter should use the same format as the Accept header in * HTTP requests [HTTP, 14]. For example, a value of “image/*; q=0.5, image/png” * indicates that a PNG image is preferred, but any type of image will be accepted if * one is not available. To accept any media type except an LTI link, * a header of “application/vnd.ims.lti.v1.ltilink; q=0, * /*” could be used. */ public static final String ACCEPT_MEDIA_TYPES = "accept_media_types"; /** * accept_presentation_document_targets=embed,frame,iframe,window,popup,overlay (Required) * * A comma-separated list of ways in which the selected content item(s) * can be requested to be opened (via the presentationDocumentTarget element for * a returned content item). The possible values for this parameter are: * embed – insert the item at the current insertion point (for example, using an img tag or an object tag); * frame – open the item in the same frame as the link; * iframe – open the item within an iframe within the same page/frame as the link; * window – open the item in a new window (or tab); * popup – open the item in a popup window (using the dimensions provided, if any); * overlay – open the item over the top of the page where the link exists (for example, using a lightbox). * none – the item is not intended for display but for storing or processing * (for example, an assignment submission may just be stored without a link to * it being added to the course). */ public static final String ACCEPT_PRESENTATION_DOCUMENT_TARGETS = "accept_presentation_document_targets"; /** * content_item_return_url=http://lmsng.school.edu/portal/123/page/988/item/261 (Required) * * Fully qualified URL where the TP redirects 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. */ public static final String CONTENT_ITEM_RETURN_URL = "content_item_return_url"; /** * accept_unsigned=false | true (Optional) * * This indicates whether the TC is willing to accept an unsigned return * message, or not. A signed message should always be required when the * content item is being created automatically in the Tool Consumer without * further interaction from the user. This parameter is optional; when omitted * a value of false should be assumed (i.e. the return message should be signed). */ public static final String ACCEPT_UNSIGNED = "accept_unsigned"; /** * accept_multiple=false | true (Optional) * * This indicates whether the user should be permitted to select more than * one item. This parameter is optional; when omitted a value of false * should be assumed (i.e. only a single item may be returned). */ public static final String ACCEPT_MULTIPLE = "accept_multiple"; /** * accept_copy_advice=false | true (Optional) * * This indicates whether the TC is able and willing to make a local copy * of a content item. The return message may include a expiresAt parameter * to indicate that the URL provided will expire and so a copy of the content * item should be stored locally before the expiry time passes. Use a value * of false (the default) to indicate that the TC has no capacity for storing * local copies of content items. */ public static final String ACCEPT_COPY_ADVICE = "accept_copy_advice"; /** * auto_create=false | true (Optional) * * This indicates whether any content items returned by the TP would be automatically * persisted without any option for the user to cancel the operation. This * parameter is optional; when omitted a value of false should be assumed * (i.e. items returned may not be persisted at the TC end). */ public static final String AUTO_CREATE = "auto_create"; /** * can_confirm=false | true (Optional) * * This indicates whether the TC supports the feature for confirming the * persistence of content items received. When a value of true is passed, * the TP may include a confirm_url parameter in its return message containing * the endpoint to which a confirmation request should be sent (see below). * If the TP does not support this feature or does not wish to receive a confirmation * it may just omit the confirm_url parameter from its return message. * This option may be used even when the auto_create parameter is set to true * if a TC is willing to offer the additional reassurance that items have been * persisted, or to allow a TP to be notified of resource link IDs for any * LTI links which have been created. */ public static final String CAN_CONFIRM = "can_confirm"; /** * title=... (Optional) * * Default text to be used as the title or alt text for the content item returned * by the TP. This value should normally be short in length, for example, * suitable for use as a heading. */ public static final String TITLE = "title"; /** * text=... (Optional) * * Default text to be used as the visible text for the content item returned by the * TP. If no text is returned by the TP, the TC may use the value of the title * parameter instead (if any). This value may be a long description of the * content item. */ public static final String TEXT = "text"; /** * data=... (Optional) * * An opaque value which should be returned by the TP in its response. */ public static final String DATA = "data"; /** * 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 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 LTI provider. */ public static final String EXT_SAKAI_PROVIDER_DISPLAYID = "ext_sakai_provider_displayid"; /** * 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"; // Pulled in from thre LTI 2 Removal public static final String GRAPH = "@graph"; public static final String TYPE = "@type"; public static final String BASIC_LTI_LAUNCH_REQUEST = "basic-lti-launch-request"; public static final String CONTENT_ITEM_SELECTION_REQUEST = "ContentItemSelectionRequest"; /** * MEMBERSHIP_ROLE * * A comma separated list of roles that the Person has within the * organizational unit. In the LIS Database, this value corresponds to * membershipRecord/membership/member/role/roleType */ public static final String MEMBERSHIP_ROLE = "Membership.role"; public static final String MEMBERSHIP_ROLE_LEARNER = "Learner"; public static final String MEMBERSHIP_ROLE_INSTRUCTOR = "Instructor"; public static final String MEMBERSHIP_ROLE_CONTEXT_ADMIN = "Administrator"; public static final String MEMBERSHIP_ROLE_SYSTEM_ADMIN = "urn:lti:sysrole:ims/lis/Administrator"; public static final String MEMBERSHIP_ROLE_INSTITUTION_ADMIN = "urn:lti:instrole:ims/lis/Administrator"; /** * MESSAGE_LOCALE * * The locale of this launch */ public static final String MESSAGE_LOCALE = "Message.locale"; /** * TOOLCONSUMERINFO_PRODUCTFAMILYCODE * * The code for the product (i.e. like "sakai" or "learn") */ public static final String TOOLCONSUMERINFO_PRODUCTFAMILYCODE = "ToolConsumerInfo.productFamilyCode"; /** * TOOLCONSUMERINFO_VERSION * * The code for the product (i.e. like "sakai" or "learn") */ public static final String TOOLCONSUMERINFO_VERSION = "ToolConsumerInfo.version"; /** * SAKAI_USER_PROPERTY access to a user's properties, which can contain additional * information about the user. */ public static final String SAKAI_USER_PROPERTY = "Sakai.user.property"; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy