Jira Link : https://project-sunbird.atlassian.net/browse/SB-10786
Overview:
Need to validate all the telemetry events of LMS service.
Points to be validate:
1 Following headers will be sent in all API calls and they should be added to the telemetry for all LOG events of type “api_access” and SEARCH event
x-device-id
x-channel-id
x-app-id
Not storing all these values, in cdata reading only
- x-channel-id stored under context
- x-app-id read as X-app-id so every time it 's giving null.
2 AUDIT events are required to be generated for all objects - For ex: User, Course, CourseBatch, Badge etc
Generating AUDIT event for all objects.
3 Object or actor types should be in upper camel case. For ex: User, Content, Resource, Collection, Group, UserLocation etc. Distinct object types are listed in this sheet https://docs.google.com/spreadsheets/d/1se19XYQf7gxb3ZuPQL-ZcmWTn2utIKiBdNg2XMXMXAc/edit?usp=sharing and should one of the entry in the above sheet. (Reach out to me if any new type needs to be added)
Sometimes sending in lower case and sometimes in upper camel case.
4 Object type should be there when object.id is not null.
Working as expected.
5 Object rollups are mandatory whenever collection type objects are interacted with like Course, Textbook, Teacher aid etc
object.rollup.l1 → should be root level id. For ex: textbook id, course id etc
object.rollup.l2 → should be level 1 unit id
object.rollup.l3 → should be level 2 unit/sub-unit id
object.rollup.l4 → should be level 3 unit/sub-unit/topic id
object.rollup.l1 is mandatory whenever events are generated in context of content objects. For ex: in ETB, any interactions in textbook view the object.id will be textbook id and object.rollup.l1 would also be textbook id. When a leaf content is opened, or downloaded or played, the object.id will be the resource id and object.rollup.l1 would be textbook id
Working as expected.
6 SEARCH events needs to be generated for all searches generated within lms
edata.type needs to be the type of search performed. for ex: location, user, org etc
Working as expected.
edata.size is mandatory - this should be the size of search results returned
size we are sending is the total doc matching that filter criteria not the total doc returned by response.
edata.topn should contain the top n (default configuration as 5) object ids returned by the search
as of now its 2 not 5 (configurable)
7 Correlation data needs to be passed wherever applicable in all audit events. For ex: If a user is enrolled into a course batch and an AUDIT event is generated with object.id as UserEnrollment, CourseId and CourseBatchId should be added as “cdata” for the same.
Working as expected.
8 Each batch created for sync should not have more than 200 events
As of now its 100 not 200 (configurable)