Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


To enable event processing for behavior from your learning tool, the UDP endpoint will require that your Caliper events have a consistent shape, so that attributes are in the same nodes of the JSON object. We strongly urge you to:

  • Provide a standard edApp an immutable edApp value (so we know how to read the rest of your event payload)
  • Use the same event shape (JSON object structure)   across all events
  • Document your event payload shapes and attribute patterns
  • Share your documentation with Unizin. This enables us to write event processing based on your event attribute data.


Alternatively, if your identifiers are not normally IRIs, we suggest constructing them as URNs, which are useful for showing the object’s location in the app’s internal hierarchy.

For example:

Code Block
“”: “”
“”: “urn:umich:engin:leccap:session:T7Lzgsmtq0x2e1204jut6sop6”


If your tool is launched via LTI, Unizin recommends including the LTI launch parameters passed to your tool via an event’s federatedSession object. Of particular interest are the LTI parameters representing the LMS course ID and the LMS user ID corresponding to the event. These values are typically useful for modeling your event data with object data.

In the example below, the LMS course and user IDs are passed via messageParameters (this is arbitrary) and identified with the attributes lis_course_offering_sourcedid and lis_person_sourcedid, respectively.

Code Block
"federatedSession": {
  "type": "LtiSession",
  "id": "urn:session-id-localized/lti/oauth_nonce/5a81e2eb557427.65333446",
  "messageParameters": {
    "custom_canvas_course_id": "12345",
    "custom_canvas_user_id": "98765",
    "lis_course_offering_sourcedid": "test_99999003",
    "lis_person_sourcedid": "11235813",
    "resource_link_id": "a1b2c3d4e5f6g7h8i9j10"
  "user": ""