Page History
...
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 immutableedApp
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 | ||
---|---|---|
| ||
“edApp.id”: “http://unizin.instructure.com/” “session.id”: “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": "https://university.edu/#profile:smith" } |
...