From 79f04dba83d0f33886db08f64dd2ac8299cdeab0 Mon Sep 17 00:00:00 2001 From: Alka Date: Wed, 16 Aug 2023 18:05:36 +0530 Subject: [PATCH 01/11] refactor(INJI-251): calculate event time in UTC epoch format and extract it in helper function and remove some default config values --- js/core/telemetrySyncManager.js | 4 +- js/core/telemetryV3Interface.js | 101 ++++++++++++++------------------ 2 files changed, 46 insertions(+), 59 deletions(-) diff --git a/js/core/telemetrySyncManager.js b/js/core/telemetrySyncManager.js index 9c97642..a59ca50 100644 --- a/js/core/telemetrySyncManager.js +++ b/js/core/telemetrySyncManager.js @@ -42,12 +42,12 @@ var TelemetrySyncManager = { return; } telemetryObj = { - "id": "api.sunbird.telemetry", + "id": "api.mosip.telemetry", "ver": Telemetry._version, "params": { "msgid": CryptoJS.MD5(JSON.stringify(telemetryEvents)).toString(), }, - "ets": (new Date()).getTime() + ((Telemetry.config.timeDiff*1000) || 0), + "ets": getUTCTime(), "events": telemetryEvents }; } diff --git a/js/core/telemetryV3Interface.js b/js/core/telemetryV3Interface.js index 89341e9..993c63c 100644 --- a/js/core/telemetryV3Interface.js +++ b/js/core/telemetryV3Interface.js @@ -1,10 +1,3 @@ -/** - * Telemetry V3 Library - * @author Manjunath Davanam - * @author Akash Gupta - */ - -// To support for node server environment if (typeof require === "function") { var Ajv = require('ajv') } @@ -15,6 +8,10 @@ var libraryDispatcher = { } }; +let getUTCTime = function (){ + return Date.parse(new Date().toUTCString()) +} + const EventListener = function() { const events = {}; @@ -55,28 +52,28 @@ var Telemetry = (function() { this.dispatcher.dispatch = this.dispatcher.dispatch.bind(this); this._defaultValue = { - uid: "anonymous", - authtoken: "", - batchsize: 20, - host: "https://api.ekstep.in", - endpoint: "/data/v3/telemetry", - apislug: "/action", - }, - this.telemetryEnvelop = { - "eid": "", - "ets": "", - "ver": "", - "mid": '', - "actor": {}, - "context": {}, - "object": {}, - "tags": [], - "edata": "" - } + uid: "", + authtoken: "", + batchsize: 20, + host: "", + endpoint: "", + apislug: "", + }, + this.telemetryEnvelop = { + "eid": "", + "ets": "", + "ver": "", + "mid": '', + "actor": {}, + "context": {}, + "object": {}, + "tags": [], + "edata": "" + } this._globalContext = { - "channel": 'in.ekstep', - "pdata": { id: "in.ekstep", ver: "1.0", pid: "" }, - "env": "contentplayer", + "channel": '', + "pdata": { id: "", ver: "", pid: "" }, + "env": "", "sid": "", "did": "", "cdata": [], @@ -106,7 +103,7 @@ var Telemetry = (function() { * @param {object} options [It can have `context, object, actor` can be explicitly passed in this event] */ this.telemetry.start = function(config, contentId, contentVer, data, options) { - data.duration = data.duration || (((new Date()).getTime()) * 0.001); // Converting duration miliSeconds to seconds + data.duration = data.duration || (getUTCTime() * 0.001); // Converting duration miliSeconds to seconds if (contentId && contentVer) { telemetryInstance._globalObject.id = contentId; telemetryInstance._globalObject.ver = contentVer; @@ -287,7 +284,7 @@ var Telemetry = (function() { this.telemetry.end = function(data, options) { if (telemetryInstance.startData.length) { var startEventObj = telemetryInstance.startData.pop(); - data.duration = ((new Date()).getTime() - startEventObj.ets) * 0.001; // Converting duration miliSeconds to seconds + data.duration = (getUTCTime() - startEventObj.ets) * 0.001; // Converting duration miliSeconds to seconds instance.updateValues(options); instance._dispatch(instance.getEvent('END', data)); } else { @@ -316,17 +313,16 @@ var Telemetry = (function() { * @param {object} object [Object value] */ this.telemetry.resetObject = function(object) { - telemetryInstance._currentObject = object || {}; - }, - - /** - * Which is used to reset the current actor value. - * @param {object} object [Object value] - */ - this.telemetry.resetActor = function(actor) { - telemetryInstance._currentActor = actor || {}; - } + telemetryInstance._currentObject = object || {}; + }, + /** + * Which is used to reset the current actor value. + * @param {object} object [Object value] + */ + this.telemetry.resetActor = function(actor) { + telemetryInstance._currentActor = actor || {}; + } /** * Which is used to reset the current actor value. @@ -375,7 +371,11 @@ var Telemetry = (function() { instance._dispatch = function(message) { message.mid = message.eid + ':' + CryptoJS.MD5(JSON.stringify(message)).toString(); if (telemetryInstance.enableValidation) { - var validate = ajv.getSchema('http://api.ekstep.org/telemetry/' + message.eid.toLowerCase()) + var schemaBaseUrl = 'http://api.ekstep.org/telemetry/'; + if(telemetry.config.schemaBaseUrl){ + schemaBaseUrl = telemetry.config.schemaBaseUrl; + } + var validate = ajv.getSchema(schemaBaseUrl + message.eid.toLowerCase()) var valid = validate(message) if (!valid) { console.error('Invalid ' + message.eid + ' Event: ' + ajv.errorsText(validate.errors)) @@ -383,7 +383,7 @@ var Telemetry = (function() { } } if (telemetryInstance.runningEnv === 'client') { - if (!message.context.did) { + if (!message.context.did) { if (!Telemetry.fingerPrintId) { Telemetry.getFingerPrint(function(result, components) { message.context.did = result; @@ -427,8 +427,7 @@ var Telemetry = (function() { */ instance.getEvent = function(eventId, data) { telemetryInstance.telemetryEnvelop.eid = eventId; - // timeDiff (in sec) is diff of server date and local date - telemetryInstance.telemetryEnvelop.ets = (new Date()).getTime() + ((Telemetry.config.timeDiff*1000) || 0); + telemetryInstance.telemetryEnvelop.ets = getUTCTime(); telemetryInstance.telemetryEnvelop.ver = Telemetry._version; telemetryInstance.telemetryEnvelop.mid = ''; telemetryInstance.telemetryEnvelop.actor = Object.assign({}, { "id": Telemetry.config.uid || 'anonymous', "type": 'User' }, instance.getUpdatedValue('actor')); @@ -596,18 +595,6 @@ var Telemetry = (function() { return this.telemetry; })(); -/** - * Name space which is being fallowed - * @type {[type]} - */ - EkTelemetry = $t = Telemetry; - - -/** - * To support for the node backEnd, So any node developer can import this telemetry lib. - */ -if (typeof module != 'undefined') { - module.exports = Telemetry; -} \ No newline at end of file +module.exports = Telemetry; \ No newline at end of file From c3b3e048dcec5743a12659344aec6a62accf1dc0 Mon Sep 17 00:00:00 2001 From: Alka Date: Tue, 22 Aug 2023 18:21:06 +0530 Subject: [PATCH 02/11] fix(INJI-251): add duration field in the edata of END schema --- js/schema/mosip_end.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/js/schema/mosip_end.json b/js/schema/mosip_end.json index 30188e8..8fc9e6f 100644 --- a/js/schema/mosip_end.json +++ b/js/schema/mosip_end.json @@ -18,9 +18,12 @@ "properties": { "type": { "type": "string" + }, + "duration": { + "type": "number" } }, - "required": ["type"] + "required": ["type", "duration"] } } } From 21d265f8b0ecfb42941124c4bc3433fba8ff2395 Mon Sep 17 00:00:00 2001 From: Alka Date: Fri, 25 Aug 2023 14:15:53 +0530 Subject: [PATCH 03/11] feat(INJI-251): adds device information details in each event and updates the related schema --- js/core/telemetrySyncManager.js | 16 ++++++----- js/core/telemetryV3Interface.js | 6 ++-- js/schema/mosip_common.json | 3 ++ js/schema/mosip_device_information.json | 28 +++++++++++++++++++ js/schema/mosip_tags.json | 37 ++++++++++--------------- js/schema/telemetry-spec.js | 2 +- 6 files changed, 60 insertions(+), 32 deletions(-) create mode 100644 js/schema/mosip_device_information.json diff --git a/js/core/telemetrySyncManager.js b/js/core/telemetrySyncManager.js index a59ca50..b2b82b8 100644 --- a/js/core/telemetrySyncManager.js +++ b/js/core/telemetrySyncManager.js @@ -42,13 +42,15 @@ var TelemetrySyncManager = { return; } telemetryObj = { - "id": "api.mosip.telemetry", - "ver": Telemetry._version, - "params": { - "msgid": CryptoJS.MD5(JSON.stringify(telemetryEvents)).toString(), - }, - "ets": getUTCTime(), - "events": telemetryEvents + "data": { + "id": "api.mosip.telemetry", + "ver": Telemetry._version, + "params": { + "msgid": CryptoJS.MD5(JSON.stringify(telemetryEvents)).toString(), + }, + "ets": getUTCTime(), + "events": telemetryEvents + } }; } var headersParam = {}; diff --git a/js/core/telemetryV3Interface.js b/js/core/telemetryV3Interface.js index 993c63c..b4693f6 100644 --- a/js/core/telemetryV3Interface.js +++ b/js/core/telemetryV3Interface.js @@ -67,7 +67,8 @@ var Telemetry = (function() { "actor": {}, "context": {}, "object": {}, - "tags": [], + "deviceInformation": {}, + "tags": {}, "edata": "" } this._globalContext = { @@ -433,7 +434,8 @@ var Telemetry = (function() { telemetryInstance.telemetryEnvelop.actor = Object.assign({}, { "id": Telemetry.config.uid || 'anonymous', "type": 'User' }, instance.getUpdatedValue('actor')); telemetryInstance.telemetryEnvelop.context = Object.assign({}, instance.getGlobalContext(), instance.getUpdatedValue('context')); telemetryInstance.telemetryEnvelop.object = Object.assign({}, instance.getGlobalObject(), instance.getUpdatedValue('object')); - telemetryInstance.telemetryEnvelop.tags = Object.assign([], Telemetry.config.tags, instance.getUpdatedValue('tags')); + telemetryInstance.telemetryEnvelop.tags = Object.assign({}, Telemetry.config.tags, instance.getUpdatedValue('tags')); + telemetryInstance.telemetryEnvelop.deviceInformation = Object.assign({}, Telemetry.config.deviceInformation, instance.getUpdatedValue('deviceInformation')); telemetryInstance.telemetryEnvelop.edata = data; return telemetryInstance.telemetryEnvelop; } diff --git a/js/schema/mosip_common.json b/js/schema/mosip_common.json index 874e95e..aba1c8d 100644 --- a/js/schema/mosip_common.json +++ b/js/schema/mosip_common.json @@ -26,6 +26,9 @@ }, "tags": { "$ref": "http://mosip.io/telemetry/tags" + }, + "deviceInformation": { + "$ref": "http://mosip.io/telemetry/device_information" } } } \ No newline at end of file diff --git a/js/schema/mosip_device_information.json b/js/schema/mosip_device_information.json new file mode 100644 index 0000000..d5b4098 --- /dev/null +++ b/js/schema/mosip_device_information.json @@ -0,0 +1,28 @@ +{ + "$id": "http://mosip.io/telemetry/device_information", + "type": "object", + "properties": { + "brandName": { + "type": "string", + "minLength": 1 + }, + "modelName": { + "type": "string", + "minLength": 1 + }, + "osName": { + "type": "string", + "minLength": 1 + }, + "osVersion": { + "type": "string", + "minLength": 1 + }, + "osApiLevel": { + "type": "string", + "minLength": 1 + } + + }, + "required": ["brandName", "modelName", "osName", "osVersion", "osApiLevel"] +} \ No newline at end of file diff --git a/js/schema/mosip_tags.json b/js/schema/mosip_tags.json index cafdff9..e7869f4 100644 --- a/js/schema/mosip_tags.json +++ b/js/schema/mosip_tags.json @@ -1,26 +1,19 @@ { "$id": "http://mosip.io/telemetry/tags", - "type": "array", - "items": { - "type": "object", - "properties": { - "osName": { - "type": "string", - "minLength": 1 - }, - "osVersion": { - "type": "string", - "minLength": 1 - }, - "injiVersion": { - "type": "string", - "minLength": 1 - }, - "tuvaliVersion": { - "type": "string", - "minLength": 1 - } + "type": "object", + "properties": { + "injiVersion": { + "type": "string", + "minLength": 1 }, - "required": ["osName", "osVersion", "injiVersion", "tuvaliVersion"] - } + "tuvaliVersion": { + "type": "string", + "minLength": 1 + }, + "buildNumber": { + "type": "string", + "minLength": 1 + } + }, + "required": ["injiVersion", "tuvaliVersion", "buildNumber"] } diff --git a/js/schema/telemetry-spec.js b/js/schema/telemetry-spec.js index ebcffc3..5497a1f 100644 --- a/js/schema/telemetry-spec.js +++ b/js/schema/telemetry-spec.js @@ -1 +1 @@ -var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type","id"]},{"$id":"http://mosip.io/telemetry/common","type":"object","properties":{"ets":{"type":"number","format":"date-time"},"ver":{"type":"string"},"mid":{"type":"string","minLength":1},"object":{"type":"object","properties":{},"required":[]},"actor":{"$ref":"http://mosip.io/telemetry/actor"},"context":{"$ref":"http://mosip.io/telemetry/context"},"tags":{"$ref":"http://mosip.io/telemetry/tags"}}},{"$id":"http://mosip.io/telemetry/context","type":"object","properties":{"channel":{"type":"string"},"pdata":{"$ref":"http://mosip.io/telemetry/pdata"},"env":{"type":"string"},"sid":{"type":"string"},"did":{"type":"string"},"cdata":{"type":"array","items":{}},"rollup":{"type":"object","properties":{},"required":[]}},"required":["env","sid","did"]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"properties":{"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"subtype":{"type":"string"}},"required":["type","subtype"]}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"$id":"http://mosip.io/telemetry/eid","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/pdata","type":"object","properties":{"id":{"type":"string"},"ver":{"type":"string"},"pid":{"type":"string"}},"required":[]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"duration":{"type":"number"}},"required":["type","duration"]}}}]},{"$id":"http://mosip.io/telemetry/tags","type":"array","items":{"type":"object","properties":{"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1}},"required":["osName","osVersion","injiVersion","tuvaliVersion"]}},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file +var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type","id"]},{"$id":"http://mosip.io/telemetry/common","type":"object","properties":{"ets":{"type":"number","format":"date-time"},"ver":{"type":"string"},"mid":{"type":"string","minLength":1},"object":{"type":"object","properties":{},"required":[]},"actor":{"$ref":"http://mosip.io/telemetry/actor"},"context":{"$ref":"http://mosip.io/telemetry/context"},"tags":{"$ref":"http://mosip.io/telemetry/tags"},"deviceInformation":{"$ref":"http://mosip.io/telemetry/device_information"}}},{"$id":"http://mosip.io/telemetry/context","type":"object","properties":{"channel":{"type":"string"},"pdata":{"$ref":"http://mosip.io/telemetry/pdata"},"env":{"type":"string"},"sid":{"type":"string"},"did":{"type":"string"},"cdata":{"type":"array","items":{}},"rollup":{"type":"object","properties":{},"required":[]}},"required":["env","sid","did"]},{"$id":"http://mosip.io/telemetry/device_information","type":"object","properties":{"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1}},"required":["brandName","modelName","osName","osVersion","osApiLevel"]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"duration":{"type":"number"}},"required":["type","duration"]}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"properties":{"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"subtype":{"type":"string"}},"required":["type","subtype"]}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"$id":"http://mosip.io/telemetry/eid","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/pdata","type":"object","properties":{"id":{"type":"string"},"ver":{"type":"string"},"pid":{"type":"string"}},"required":[]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"duration":{"type":"number"}},"required":["type","duration"]}}}]},{"$id":"http://mosip.io/telemetry/tags","type":"object","properties":{"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1}},"required":["injiVersion","tuvaliVersion","buildNumber"]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file From 2a5edad9fdbcfd05442f9b73ed71ec8b1b682c71 Mon Sep 17 00:00:00 2001 From: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Date: Wed, 13 Sep 2023 14:08:17 +0530 Subject: [PATCH 04/11] feat(INJI-251): add new fields in all schemas and update them --- js/schema/mosip_app_info.json | 30 ++++++++++++++ js/schema/mosip_common.json | 52 ++++++++++--------------- js/schema/mosip_device_information.json | 18 ++++++++- js/schema/mosip_edata_common.json | 13 +++++++ js/schema/mosip_end.json | 23 +++++++---- js/schema/mosip_error.json | 31 ++++++++++----- js/schema/mosip_impression.json | 11 +++--- js/schema/mosip_interact.json | 21 +++++----- js/schema/mosip_start.json | 14 +++---- js/schema/mosip_tags.json | 10 ++++- 10 files changed, 147 insertions(+), 76 deletions(-) create mode 100644 js/schema/mosip_app_info.json create mode 100644 js/schema/mosip_edata_common.json diff --git a/js/schema/mosip_app_info.json b/js/schema/mosip_app_info.json new file mode 100644 index 0000000..5a10c76 --- /dev/null +++ b/js/schema/mosip_app_info.json @@ -0,0 +1,30 @@ +{ + "$id": "http://mosip.io/telemetry/app_info", + "type": "object", + "required": ["eid", "ets", "mid", "sid", "appid", "edata"], + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/common" + }, + { + "properties": { + "eid": { + "type": "string", + "enum": ["APPINFO"] + }, + "edata": { + "type": "object", + "additionalProperties": false, + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/device_information" + }, + { + "$ref": "http://mosip.io/telemetry/tags" + } + ] + } + } + } + ] + } \ No newline at end of file diff --git a/js/schema/mosip_common.json b/js/schema/mosip_common.json index aba1c8d..e73c9f3 100644 --- a/js/schema/mosip_common.json +++ b/js/schema/mosip_common.json @@ -1,34 +1,22 @@ { - "$id": "http://mosip.io/telemetry/common", - "type": "object", - "properties": { - "ets": { - "type": "number", - "format": "date-time" - }, - "ver": { - "type": "string" - }, - "mid": { - "type": "string", - "minLength": 1 - }, - "object": { - "type": "object", - "properties": {}, - "required": [] - }, - "actor": { - "$ref": "http://mosip.io/telemetry/actor" - }, - "context": { - "$ref": "http://mosip.io/telemetry/context" - }, - "tags": { - "$ref": "http://mosip.io/telemetry/tags" - }, - "deviceInformation": { - "$ref": "http://mosip.io/telemetry/device_information" - } + "$id": "http://mosip.io/telemetry/common", + "type": "object", + "properties": { + "ets": { + "type": "number", + "format": "date-time" + }, + "mid": { + "type": "string", + "minLength": 1 + }, + "sid": { + "type": "string", + "minLength": 1 + }, + "appid": { + "type": "string", + "minLength": 1 } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/js/schema/mosip_device_information.json b/js/schema/mosip_device_information.json index d5b4098..e21acb5 100644 --- a/js/schema/mosip_device_information.json +++ b/js/schema/mosip_device_information.json @@ -21,8 +21,22 @@ "osApiLevel": { "type": "string", "minLength": 1 + }, + "isHardwareKeystoreSupported": { + "type": "string", + "minLength": 1 + }, + "dateTime": { + "type": "string", + "minLength": 1 + }, + "zone": { + "type": "string", + "minLength": 1 + }, + "offset": { + "type": "number" } - }, - "required": ["brandName", "modelName", "osName", "osVersion", "osApiLevel"] + "required": ["brandName", "modelName", "osName", "osVersion", "osApiLevel", "isHardwareKeystoreSupported", "dateTime", "zone", "offset"] } \ No newline at end of file diff --git a/js/schema/mosip_edata_common.json b/js/schema/mosip_edata_common.json new file mode 100644 index 0000000..5b6257f --- /dev/null +++ b/js/schema/mosip_edata_common.json @@ -0,0 +1,13 @@ +{ + "$id": "http://mosip.io/telemetry/edata_common", + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "additionalParameters": { + "type": "object" + } + }, + "required": ["type"] +} \ No newline at end of file diff --git a/js/schema/mosip_end.json b/js/schema/mosip_end.json index 8fc9e6f..925df66 100644 --- a/js/schema/mosip_end.json +++ b/js/schema/mosip_end.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/end", "type": "object", - "required": ["eid", "ets", "mid", "tags", "edata"], + "required": ["eid", "ets", "mid", "sid", "appid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,15 +15,22 @@ "edata": { "type": "object", "additionalProperties": false, - "properties": { - "type": { - "type": "string" + "required": ["status", "duration"], + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/edata_common" }, - "duration": { - "type": "number" + { + "properties": { + "status": { + "type": "string" + }, + "duration": { + "type": "number" + } + } } - }, - "required": ["type", "duration"] + ] } } } diff --git a/js/schema/mosip_error.json b/js/schema/mosip_error.json index 78d1e55..2913014 100644 --- a/js/schema/mosip_error.json +++ b/js/schema/mosip_error.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/error", "type": "object", - "required": ["eid", "ets", "mid", "tags","edata"], + "required": ["eid", "ets", "mid", "sid", "appid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -16,17 +16,30 @@ "type": "object", "additionalProperties": false, "required": ["errorId", "errorMessage", "stacktrace"], - "properties": { - "errorId": { - "type": "string" + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/edata_common" }, - "errorMessage": { - "type": "string" + { + "$ref": "http://mosip.io/telemetry/device_information" }, - "stacktrace": { - "type": "string" + { + "$ref": "http://mosip.io/telemetry/tags" + }, + { + "properties": { + "errorId": { + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "stacktrace": { + "type": "string" + } + } } - } + ] } } } diff --git a/js/schema/mosip_impression.json b/js/schema/mosip_impression.json index 64d8a32..e1a616a 100644 --- a/js/schema/mosip_impression.json +++ b/js/schema/mosip_impression.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/impression", "type": "object", - "required": ["eid", "ets", "mid", "tags", "edata"], + "required": ["eid", "ets", "mid", "sid", "appid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,12 +15,11 @@ "edata": { "type": "object", "additionalProperties": false, - "properties": { - "type": { - "type": "string" + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/edata_common" } - }, - "required": ["type"] + ] } } } diff --git a/js/schema/mosip_interact.json b/js/schema/mosip_interact.json index cbe5e39..867178a 100644 --- a/js/schema/mosip_interact.json +++ b/js/schema/mosip_interact.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/interact", "type": "object", - "required": ["eid", "ets", "mid", "tags", "edata"], + "required": ["eid", "ets", "mid", "sid", "appid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,16 +15,19 @@ "edata": { "type": "object", "additionalProperties": false, - "properties": { - "type": { - "type": "string" + "required": ["subtype"], + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/edata_common" }, - "subtype": { - "type": "string" + { + "properties": { + "subtype": { + "type": "string" + } + } } - - }, - "required": ["type","subtype"] + ] } } } diff --git a/js/schema/mosip_start.json b/js/schema/mosip_start.json index 337b2ee..d19b90b 100644 --- a/js/schema/mosip_start.json +++ b/js/schema/mosip_start.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/start", "type": "object", - "required": ["eid", "ets", "mid", "tags", "edata"], + "required": ["eid", "ets", "mid", "sid", "appid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,15 +15,11 @@ "edata": { "type": "object", "additionalProperties": false, - "properties": { - "type": { - "type": "string" - }, - "duration": { - "type": "number" + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/edata_common" } - }, - "required": ["type", "duration"] + ] } } } diff --git a/js/schema/mosip_tags.json b/js/schema/mosip_tags.json index e7869f4..0ec7316 100644 --- a/js/schema/mosip_tags.json +++ b/js/schema/mosip_tags.json @@ -2,6 +2,10 @@ "$id": "http://mosip.io/telemetry/tags", "type": "object", "properties": { + "env": { + "type": "string", + "minLength": 1 + }, "injiVersion": { "type": "string", "minLength": 1 @@ -13,7 +17,11 @@ "buildNumber": { "type": "string", "minLength": 1 + }, + "preferredLanguage": { + "type": "string", + "minLength": 1 } }, - "required": ["injiVersion", "tuvaliVersion", "buildNumber"] + "required": ["injiVersion", "tuvaliVersion", "buildNumber", "preferredLanguage"] } From bbe98dbcf187a8e6595e17d3e2909c9a68f40146 Mon Sep 17 00:00:00 2001 From: Alka Date: Fri, 15 Sep 2023 01:19:48 +0530 Subject: [PATCH 05/11] feat(INJI-251): updates the sdk to customize the event structure --- js/core/telemetrySyncManager.js | 18 +++++++++--------- js/core/telemetryV3Interface.js | 29 +++++++++++++---------------- js/package.json | 1 + 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/js/core/telemetrySyncManager.js b/js/core/telemetrySyncManager.js index b2b82b8..c11d4c3 100644 --- a/js/core/telemetrySyncManager.js +++ b/js/core/telemetrySyncManager.js @@ -44,7 +44,6 @@ var TelemetrySyncManager = { telemetryObj = { "data": { "id": "api.mosip.telemetry", - "ver": Telemetry._version, "params": { "msgid": CryptoJS.MD5(JSON.stringify(telemetryEvents)).toString(), }, @@ -54,18 +53,19 @@ var TelemetrySyncManager = { }; } var headersParam = {}; - if ('undefined' != typeof Telemetry.config.authtoken) - headersParam["Authorization"] = 'Bearer ' + Telemetry.config.authtoken; + /* if ('undefined' != typeof Telemetry.config.authtoken) + headersParam["Authorization"] = 'Bearer ' + Telemetry.config.authtoken; */ var fullPath = Telemetry.config.host + Telemetry.config.apislug + Telemetry.config.endpoint; headersParam['dataType'] = 'json'; headersParam["Content-Type"] = "application/json"; - headersParam['x-app-id'] = Telemetry.config.pdata.id; - headersParam['x-device-id'] = Telemetry.fingerPrintId; - headersParam['x-channel-id'] = Telemetry.config.channel; + //headersParam['x-app-id'] = Telemetry.config.pdata.id; + // headersParam['x-device-id'] = Telemetry.fingerPrintId; + //headersParam['x-channel-id'] = Telemetry.config.channel; + axios.post( fullPath, JSON.stringify(telemetryObj), - {headers: {headersParam}} + {headers: headersParam} ) .then((result) => { Telemetry.config.telemetryDebugEnabled && console.log("Telemetry API success", result); @@ -75,9 +75,9 @@ var TelemetrySyncManager = { instance._failedBatch.push(telemetryObj); } if (error.status == 403) { - console.error("Authentication error: ", error); + console.error("Authentication error: ", JSON.stringify(error)); } else { - console.log("Error while Telemetry sync to server: ", error); + console.log("Error while Telemetry sync to server: ", JSON.stringify(error)); } }); }, diff --git a/js/core/telemetryV3Interface.js b/js/core/telemetryV3Interface.js index b4693f6..75eeb41 100644 --- a/js/core/telemetryV3Interface.js +++ b/js/core/telemetryV3Interface.js @@ -45,7 +45,6 @@ var Telemetry = (function() { var telemetryInstance = this; this.telemetry.initialized = false; this.telemetry.config = {}; - this.telemetry._version = "3.0"; this.telemetry.fingerPrintId = undefined; EventListener.call(this); this.dispatcher = libraryDispatcher; @@ -62,13 +61,10 @@ var Telemetry = (function() { this.telemetryEnvelop = { "eid": "", "ets": "", - "ver": "", "mid": '', + "sid": "", + "appid":"", "actor": {}, - "context": {}, - "object": {}, - "deviceInformation": {}, - "tags": {}, "edata": "" } this._globalContext = { @@ -77,10 +73,11 @@ var Telemetry = (function() { "env": "", "sid": "", "did": "", + "appid":"", "cdata": [], "rollup": {} }; - this.runningEnv = 'client'; + //this.runningEnv = 'client'; this.enableValidation = false; this._globalObject = {}; this.startData = []; @@ -104,7 +101,7 @@ var Telemetry = (function() { * @param {object} options [It can have `context, object, actor` can be explicitly passed in this event] */ this.telemetry.start = function(config, contentId, contentVer, data, options) { - data.duration = data.duration || (getUTCTime() * 0.001); // Converting duration miliSeconds to seconds + //data.duration = data.duration || (getUTCTime() * 0.001); // Converting duration miliSeconds to seconds if (contentId && contentVer) { telemetryInstance._globalObject.id = contentId; telemetryInstance._globalObject.ver = contentVer; @@ -277,6 +274,11 @@ var Telemetry = (function() { instance._dispatch(instance.getEvent('SUMMARY', data)); } + this.telemetry.appinfo = function(data, options) { + instance.updateValues(options); + instance._dispatch(instance.getEvent('APPINFO', data)); + } + /** * Which is used to log the end telemetry event. * @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}] @@ -429,13 +431,9 @@ var Telemetry = (function() { instance.getEvent = function(eventId, data) { telemetryInstance.telemetryEnvelop.eid = eventId; telemetryInstance.telemetryEnvelop.ets = getUTCTime(); - telemetryInstance.telemetryEnvelop.ver = Telemetry._version; telemetryInstance.telemetryEnvelop.mid = ''; - telemetryInstance.telemetryEnvelop.actor = Object.assign({}, { "id": Telemetry.config.uid || 'anonymous', "type": 'User' }, instance.getUpdatedValue('actor')); - telemetryInstance.telemetryEnvelop.context = Object.assign({}, instance.getGlobalContext(), instance.getUpdatedValue('context')); - telemetryInstance.telemetryEnvelop.object = Object.assign({}, instance.getGlobalObject(), instance.getUpdatedValue('object')); - telemetryInstance.telemetryEnvelop.tags = Object.assign({}, Telemetry.config.tags, instance.getUpdatedValue('tags')); - telemetryInstance.telemetryEnvelop.deviceInformation = Object.assign({}, Telemetry.config.deviceInformation, instance.getUpdatedValue('deviceInformation')); + telemetryInstance.telemetryEnvelop.sid = Telemetry.config.sid; + telemetryInstance.telemetryEnvelop.appid = Telemetry.config.appid; telemetryInstance.telemetryEnvelop.edata = data; return telemetryInstance.telemetryEnvelop; } @@ -451,10 +449,9 @@ var Telemetry = (function() { config.rollup && (telemetryInstance._globalContext.rollup = config.rollup); config.sid && (telemetryInstance._globalContext.sid = config.sid); config.did && (telemetryInstance._globalContext.did = config.did); + config.appid && (telemetryInstance._globalContext.appid = config.appid); config.cdata && (telemetryInstance._globalContext.cdata = config.cdata); config.pdata && (telemetryInstance._globalContext.pdata = config.pdata); - - } /** diff --git a/js/package.json b/js/package.json index 4cf5f06..74c065f 100644 --- a/js/package.json +++ b/js/package.json @@ -62,6 +62,7 @@ }, "homepage": "https://github.com/project-sunbird/sunbird-telemetry-sdk/tree/master/js#readme", "dependencies": { + "axios": "^1.4.0", "grunt-karma": "^0.12.2", "karma": "^3.0.0" } From 9628fb5b4233f062795e07691a37ca51b61d10b7 Mon Sep 17 00:00:00 2001 From: Alka Date: Fri, 15 Sep 2023 01:21:19 +0530 Subject: [PATCH 06/11] refactor(INJI-251): update event schema --- js/schema/mosip_actor.json | 3 +- js/schema/mosip_app_info.json | 68 +++++++++++++++++++++---- js/schema/mosip_common.json | 42 ++++++++------- js/schema/mosip_context.json | 31 ----------- js/schema/mosip_device_information.json | 16 ++++-- js/schema/mosip_edata_common.json | 13 ----- js/schema/mosip_end.json | 26 ++++------ js/schema/mosip_error.json | 68 +++++++++++++++++++++---- js/schema/mosip_impression.json | 11 ++-- js/schema/mosip_interact.json | 18 +++---- js/schema/mosip_log.json | 2 +- js/schema/mosip_pdata.json | 16 ------ js/schema/mosip_start.json | 11 ++-- js/schema/mosip_tags.json | 11 ++-- 14 files changed, 194 insertions(+), 142 deletions(-) delete mode 100644 js/schema/mosip_context.json delete mode 100644 js/schema/mosip_edata_common.json delete mode 100644 js/schema/mosip_pdata.json diff --git a/js/schema/mosip_actor.json b/js/schema/mosip_actor.json index 6d5dc16..757b215 100644 --- a/js/schema/mosip_actor.json +++ b/js/schema/mosip_actor.json @@ -8,6 +8,5 @@ "type": { "type": "string" } - }, - "required": [ "type", "id"] + } } \ No newline at end of file diff --git a/js/schema/mosip_app_info.json b/js/schema/mosip_app_info.json index 5a10c76..541d9b6 100644 --- a/js/schema/mosip_app_info.json +++ b/js/schema/mosip_app_info.json @@ -1,7 +1,7 @@ { - "$id": "http://mosip.io/telemetry/app_info", + "$id": "http://mosip.io/telemetry/appinfo", "type": "object", - "required": ["eid", "ets", "mid", "sid", "appid", "edata"], + "required": ["eid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,14 +15,62 @@ "edata": { "type": "object", "additionalProperties": false, - "allOf": [ - { - "$ref": "http://mosip.io/telemetry/device_information" - }, - { - "$ref": "http://mosip.io/telemetry/tags" - } - ] + "properties": { + "env": { + "type": "string", + "minLength": 1 + }, + "injiVersion": { + "type": "string", + "minLength": 1 + }, + "tuvaliVersion": { + "type": "string", + "minLength": 1 + }, + "buildNumber": { + "type": "string", + "minLength": 1 + }, + "preferredLanguage": { + "type": "string" + }, + "brandName": { + "type": "string", + "minLength": 1 + }, + "modelName": { + "type": "string", + "minLength": 1 + }, + "osName": { + "type": "string", + "minLength": 1 + }, + "osVersion": { + "type": "string", + "minLength": 1 + }, + "osApiLevel": { + "type": "string", + "minLength": 1 + }, + "isHardwareKeystoreSupported": { + "type": "boolean", + "minLength": 1 + }, + "dateTime": { + "type": "number", + "minLength": 1 + }, + "zone": { + "type": "string", + "minLength": 1 + }, + "offset": { + "type": "number" + } + } } } } diff --git a/js/schema/mosip_common.json b/js/schema/mosip_common.json index e73c9f3..9abca2e 100644 --- a/js/schema/mosip_common.json +++ b/js/schema/mosip_common.json @@ -1,22 +1,30 @@ { "$id": "http://mosip.io/telemetry/common", "type": "object", - "properties": { - "ets": { - "type": "number", - "format": "date-time" + "required": ["ets", "mid", "sid", "appid", "actor"], + "allOf": [ + { + "$ref": "http://mosip.io/telemetry/actor" }, - "mid": { - "type": "string", - "minLength": 1 - }, - "sid": { - "type": "string", - "minLength": 1 - }, - "appid": { - "type": "string", - "minLength": 1 + { + "properties": { + "ets": { + "type": "number", + "format": "date-time" + }, + "mid": { + "type": "string", + "minLength": 1 + }, + "sid": { + "type": "string", + "minLength": 1 + }, + "appid": { + "type": "string", + "minLength": 1 + } + } } - } -} \ No newline at end of file + ] +} diff --git a/js/schema/mosip_context.json b/js/schema/mosip_context.json deleted file mode 100644 index b631102..0000000 --- a/js/schema/mosip_context.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$id": "http://mosip.io/telemetry/context", - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "pdata": { - "$ref": "http://mosip.io/telemetry/pdata" - }, - "env": { - "type": "string" - }, - "sid": { - "type": "string" - }, - "did": { - "type": "string" - }, - "cdata": { - "type": "array", - "items": {} - }, - "rollup": { - "type": "object", - "properties": {}, - "required": [] - } - }, - "required": ["env", "sid", "did"] -} diff --git a/js/schema/mosip_device_information.json b/js/schema/mosip_device_information.json index e21acb5..741d672 100644 --- a/js/schema/mosip_device_information.json +++ b/js/schema/mosip_device_information.json @@ -23,7 +23,7 @@ "minLength": 1 }, "isHardwareKeystoreSupported": { - "type": "string", + "type": "boolean", "minLength": 1 }, "dateTime": { @@ -38,5 +38,15 @@ "type": "number" } }, - "required": ["brandName", "modelName", "osName", "osVersion", "osApiLevel", "isHardwareKeystoreSupported", "dateTime", "zone", "offset"] -} \ No newline at end of file + "required": [ + "brandName", + "modelName", + "osName", + "osVersion", + "osApiLevel", + "isHardwareKeystoreSupported", + "dateTime", + "zone", + "offset" + ] +} diff --git a/js/schema/mosip_edata_common.json b/js/schema/mosip_edata_common.json deleted file mode 100644 index 5b6257f..0000000 --- a/js/schema/mosip_edata_common.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://mosip.io/telemetry/edata_common", - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "additionalParameters": { - "type": "object" - } - }, - "required": ["type"] -} \ No newline at end of file diff --git a/js/schema/mosip_end.json b/js/schema/mosip_end.json index 925df66..f738086 100644 --- a/js/schema/mosip_end.json +++ b/js/schema/mosip_end.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/end", "type": "object", - "required": ["eid", "ets", "mid", "sid", "appid", "edata"], + "required": ["eid", "ets", "mid", "sid", "appid", "edata", "actor"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,22 +15,18 @@ "edata": { "type": "object", "additionalProperties": false, - "required": ["status", "duration"], - "allOf": [ - { - "$ref": "http://mosip.io/telemetry/edata_common" + "required": ["type", "status", "duration"], + "properties": { + "type": { + "type": "string" }, - { - "properties": { - "status": { - "type": "string" - }, - "duration": { - "type": "number" - } - } + "status": { + "type": "string" + }, + "duration": { + "type": "number" } - ] + } } } } diff --git a/js/schema/mosip_error.json b/js/schema/mosip_error.json index 2913014..f3f824a 100644 --- a/js/schema/mosip_error.json +++ b/js/schema/mosip_error.json @@ -16,18 +16,12 @@ "type": "object", "additionalProperties": false, "required": ["errorId", "errorMessage", "stacktrace"], - "allOf": [ - { - "$ref": "http://mosip.io/telemetry/edata_common" - }, - { - "$ref": "http://mosip.io/telemetry/device_information" - }, - { - "$ref": "http://mosip.io/telemetry/tags" - }, + "allOf": [ { "properties": { + "type": { + "type": "string" + }, "errorId": { "type": "string" }, @@ -36,6 +30,60 @@ }, "stacktrace": { "type": "string" + }, + "env": { + "type": "string", + "minLength": 1 + }, + "injiVersion": { + "type": "string", + "minLength": 1 + }, + "tuvaliVersion": { + "type": "string", + "minLength": 1 + }, + "buildNumber": { + "type": "string", + "minLength": 1 + }, + "preferredLanguage": { + "type": "string" + }, + "brandName": { + "type": "string", + "minLength": 1 + }, + "modelName": { + "type": "string", + "minLength": 1 + }, + "osName": { + "type": "string", + "minLength": 1 + }, + "osVersion": { + "type": "string", + "minLength": 1 + }, + "osApiLevel": { + "type": "string", + "minLength": 1 + }, + "isHardwareKeystoreSupported": { + "type": "string", + "minLength": 1 + }, + "dateTime": { + "type": "string", + "minLength": 1 + }, + "zone": { + "type": "string", + "minLength": 1 + }, + "offset": { + "type": "number" } } } diff --git a/js/schema/mosip_impression.json b/js/schema/mosip_impression.json index e1a616a..a110b71 100644 --- a/js/schema/mosip_impression.json +++ b/js/schema/mosip_impression.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/impression", "type": "object", - "required": ["eid", "ets", "mid", "sid", "appid", "edata"], + "required": ["eid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,11 +15,12 @@ "edata": { "type": "object", "additionalProperties": false, - "allOf": [ - { - "$ref": "http://mosip.io/telemetry/edata_common" + "properties": { + "type": { + "type": "string" } - ] + }, + "required": ["type"] } } } diff --git a/js/schema/mosip_interact.json b/js/schema/mosip_interact.json index 867178a..9d39444 100644 --- a/js/schema/mosip_interact.json +++ b/js/schema/mosip_interact.json @@ -15,19 +15,15 @@ "edata": { "type": "object", "additionalProperties": false, - "required": ["subtype"], - "allOf": [ - { - "$ref": "http://mosip.io/telemetry/edata_common" + "required": ["type", "subtype"], + "properties": { + "type": { + "type": "string" }, - { - "properties": { - "subtype": { - "type": "string" - } - } + "subtype": { + "type": "string" } - ] + } } } } diff --git a/js/schema/mosip_log.json b/js/schema/mosip_log.json index 7c11fdc..3279729 100644 --- a/js/schema/mosip_log.json +++ b/js/schema/mosip_log.json @@ -9,7 +9,7 @@ { "properties": { "eid": { - "$id": "http://mosip.io/telemetry/eid", + "type": "string", "enum": ["LOG"] }, "edata": { diff --git a/js/schema/mosip_pdata.json b/js/schema/mosip_pdata.json deleted file mode 100644 index 13f2340..0000000 --- a/js/schema/mosip_pdata.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$id": "http://mosip.io/telemetry/pdata", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "ver": { - "type": "string" - }, - "pid": { - "type": "string" - } - }, - "required": [] -} \ No newline at end of file diff --git a/js/schema/mosip_start.json b/js/schema/mosip_start.json index d19b90b..822d6e7 100644 --- a/js/schema/mosip_start.json +++ b/js/schema/mosip_start.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/start", "type": "object", - "required": ["eid", "ets", "mid", "sid", "appid", "edata"], + "required": ["eid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" @@ -15,11 +15,12 @@ "edata": { "type": "object", "additionalProperties": false, - "allOf": [ - { - "$ref": "http://mosip.io/telemetry/edata_common" + "properties": { + "type": { + "type": "string" } - ] + }, + "required": ["type"] } } } diff --git a/js/schema/mosip_tags.json b/js/schema/mosip_tags.json index 0ec7316..27ed8e5 100644 --- a/js/schema/mosip_tags.json +++ b/js/schema/mosip_tags.json @@ -19,9 +19,14 @@ "minLength": 1 }, "preferredLanguage": { - "type": "string", - "minLength": 1 + "type": "string" } }, - "required": ["injiVersion", "tuvaliVersion", "buildNumber", "preferredLanguage"] + "required": [ + "injiVersion", + "tuvaliVersion", + "buildNumber", + "preferredLanguage", + "env" + ] } From 4fae4e2f1245bcc9b3f531a4c7b64673b6b7efc2 Mon Sep 17 00:00:00 2001 From: Alka Date: Fri, 15 Sep 2023 16:10:34 +0530 Subject: [PATCH 07/11] feat(INJI-251): remove any implemetation of capturing device id from the sdk --- js/core/telemetrySyncManager.js | 3 -- js/core/telemetryV3Interface.js | 78 +-------------------------------- 2 files changed, 2 insertions(+), 79 deletions(-) diff --git a/js/core/telemetrySyncManager.js b/js/core/telemetrySyncManager.js index c11d4c3..64aaec9 100644 --- a/js/core/telemetrySyncManager.js +++ b/js/core/telemetrySyncManager.js @@ -58,9 +58,6 @@ var TelemetrySyncManager = { var fullPath = Telemetry.config.host + Telemetry.config.apislug + Telemetry.config.endpoint; headersParam['dataType'] = 'json'; headersParam["Content-Type"] = "application/json"; - //headersParam['x-app-id'] = Telemetry.config.pdata.id; - // headersParam['x-device-id'] = Telemetry.fingerPrintId; - //headersParam['x-channel-id'] = Telemetry.config.channel; axios.post( fullPath, diff --git a/js/core/telemetryV3Interface.js b/js/core/telemetryV3Interface.js index 75eeb41..249dfae 100644 --- a/js/core/telemetryV3Interface.js +++ b/js/core/telemetryV3Interface.js @@ -45,7 +45,6 @@ var Telemetry = (function() { var telemetryInstance = this; this.telemetry.initialized = false; this.telemetry.config = {}; - this.telemetry.fingerPrintId = undefined; EventListener.call(this); this.dispatcher = libraryDispatcher; this.dispatcher.dispatch = this.dispatcher.dispatch.bind(this); @@ -385,27 +384,7 @@ var Telemetry = (function() { return } } - if (telemetryInstance.runningEnv === 'client') { - if (!message.context.did) { - if (!Telemetry.fingerPrintId) { - Telemetry.getFingerPrint(function(result, components) { - message.context.did = result; - message.actor.id = instance.getActorId(message.actor.id, result); - Telemetry.fingerPrintId = result; - dispatcher.dispatch(message); - }) - } else { - message.context.did = Telemetry.fingerPrintId; - message.actor.id = instance.getActorId(message.actor.id, Telemetry.fingerPrintId); - dispatcher.dispatch(message); - } - } else { - message.actor.id = instance.getActorId(message.actor.id, message.context.did); - dispatcher.dispatch(message); - } - } else { - dispatcher.dispatch(message); - } + dispatcher.dispatch(message); } /** @@ -533,60 +512,7 @@ var Telemetry = (function() { return target; } } - var FPoptions = { - audio: { - timeout: 1000, - // On iOS 11, audio context can only be used in response to user interaction. - // We require users to explicitly enable audio fingerprinting on iOS 11. - // See https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088 - excludeIOS11: true - }, - fonts: { - swfContainerId: 'fingerprintjs2', - swfPath: 'flash/compiled/FontList.swf', - userDefinedFonts: [], - extendedJsFonts: false - }, - screen: { - // To ensure consistent fingerprints when users rotate their mobile devices - detectScreenOrientation: true - }, - plugins: { - sortPluginsFor: [/palemoon/i], - excludeIE: false - }, - extraComponents: [], - excludes: { - // Unreliable on Windows, see https://github.com/Valve/fingerprintjs2/issues/375 - 'enumerateDevices': true, - // devicePixelRatio depends on browser zoom, and it's impossible to detect browser zoom - 'pixelRatio': true, - // DNT depends on incognito mode for some browsers (Chrome) and it's impossible to detect incognito mode - 'doNotTrack': true, - // uses js fonts already - 'fontsFlash': true, - 'screenResolution': true, - 'availableScreenResolution': true - }, - NOT_AVAILABLE: 'not available', - ERROR: 'error', - EXCLUDED: 'excluded' - } - this.telemetry.getFingerPrint = function (cb) { - const ver = 'v1'; - if (localStorage && localStorage.getItem(`fpDetails_${ver}`)) { - var deviceDetails = JSON.parse(localStorage.getItem(`fpDetails_${ver}`)); - if (cb) cb(deviceDetails.result, deviceDetails.components, ver); - } else { - Fingerprint2.getV18(FPoptions, function (result, components) { - if (localStorage) { - // fpDetails contains components and deviceId generated from fingerprintJs - localStorage.setItem(`fpDetails_${ver}`, JSON.stringify({result: result, components: components})) - } - if (cb) cb(result, components, ver) - }) - } - } + if (typeof Object.assign != 'function') { instance.objectAssign(); } From d60339f053c3445efdb6e0ce5663270bcef7371e Mon Sep 17 00:00:00 2001 From: Alka Date: Fri, 15 Sep 2023 16:18:32 +0530 Subject: [PATCH 08/11] feat(INJI-251): remove any implemetation of mid as deduplication is not being performed on server side --- js/core/telemetrySyncManager.js | 3 --- js/core/telemetryV3Interface.js | 3 --- js/schema/mosip_common.json | 6 +----- js/schema/mosip_end.json | 2 +- js/schema/mosip_error.json | 2 +- js/schema/mosip_interact.json | 2 +- js/schema/mosip_log.json | 2 +- js/schema/telemetry-spec.js | 2 +- 8 files changed, 6 insertions(+), 16 deletions(-) diff --git a/js/core/telemetrySyncManager.js b/js/core/telemetrySyncManager.js index 64aaec9..b2d804e 100644 --- a/js/core/telemetrySyncManager.js +++ b/js/core/telemetrySyncManager.js @@ -44,9 +44,6 @@ var TelemetrySyncManager = { telemetryObj = { "data": { "id": "api.mosip.telemetry", - "params": { - "msgid": CryptoJS.MD5(JSON.stringify(telemetryEvents)).toString(), - }, "ets": getUTCTime(), "events": telemetryEvents } diff --git a/js/core/telemetryV3Interface.js b/js/core/telemetryV3Interface.js index 249dfae..1e509a6 100644 --- a/js/core/telemetryV3Interface.js +++ b/js/core/telemetryV3Interface.js @@ -60,7 +60,6 @@ var Telemetry = (function() { this.telemetryEnvelop = { "eid": "", "ets": "", - "mid": '', "sid": "", "appid":"", "actor": {}, @@ -371,7 +370,6 @@ var Telemetry = (function() { * @param {object} message [Telemetry event object] */ instance._dispatch = function(message) { - message.mid = message.eid + ':' + CryptoJS.MD5(JSON.stringify(message)).toString(); if (telemetryInstance.enableValidation) { var schemaBaseUrl = 'http://api.ekstep.org/telemetry/'; if(telemetry.config.schemaBaseUrl){ @@ -410,7 +408,6 @@ var Telemetry = (function() { instance.getEvent = function(eventId, data) { telemetryInstance.telemetryEnvelop.eid = eventId; telemetryInstance.telemetryEnvelop.ets = getUTCTime(); - telemetryInstance.telemetryEnvelop.mid = ''; telemetryInstance.telemetryEnvelop.sid = Telemetry.config.sid; telemetryInstance.telemetryEnvelop.appid = Telemetry.config.appid; telemetryInstance.telemetryEnvelop.edata = data; diff --git a/js/schema/mosip_common.json b/js/schema/mosip_common.json index 9abca2e..fe945e3 100644 --- a/js/schema/mosip_common.json +++ b/js/schema/mosip_common.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/common", "type": "object", - "required": ["ets", "mid", "sid", "appid", "actor"], + "required": ["ets", "sid", "appid", "actor"], "allOf": [ { "$ref": "http://mosip.io/telemetry/actor" @@ -12,10 +12,6 @@ "type": "number", "format": "date-time" }, - "mid": { - "type": "string", - "minLength": 1 - }, "sid": { "type": "string", "minLength": 1 diff --git a/js/schema/mosip_end.json b/js/schema/mosip_end.json index f738086..a474209 100644 --- a/js/schema/mosip_end.json +++ b/js/schema/mosip_end.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/end", "type": "object", - "required": ["eid", "ets", "mid", "sid", "appid", "edata", "actor"], + "required": ["eid", "ets", "sid", "appid", "edata", "actor"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/mosip_error.json b/js/schema/mosip_error.json index f3f824a..ac403fa 100644 --- a/js/schema/mosip_error.json +++ b/js/schema/mosip_error.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/error", "type": "object", - "required": ["eid", "ets", "mid", "sid", "appid", "edata"], + "required": ["eid", "ets", "sid", "appid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/mosip_interact.json b/js/schema/mosip_interact.json index 9d39444..55ef40f 100644 --- a/js/schema/mosip_interact.json +++ b/js/schema/mosip_interact.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/interact", "type": "object", - "required": ["eid", "ets", "mid", "sid", "appid", "edata"], + "required": ["eid", "ets", "sid", "appid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/mosip_log.json b/js/schema/mosip_log.json index 3279729..d0c6081 100644 --- a/js/schema/mosip_log.json +++ b/js/schema/mosip_log.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/log", "type": "object", - "required": ["eid", "ets", "mid", "tags","edata"], + "required": ["eid", "ets", "tags","edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/telemetry-spec.js b/js/schema/telemetry-spec.js index 5497a1f..99f8c38 100644 --- a/js/schema/telemetry-spec.js +++ b/js/schema/telemetry-spec.js @@ -1 +1 @@ -var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type","id"]},{"$id":"http://mosip.io/telemetry/common","type":"object","properties":{"ets":{"type":"number","format":"date-time"},"ver":{"type":"string"},"mid":{"type":"string","minLength":1},"object":{"type":"object","properties":{},"required":[]},"actor":{"$ref":"http://mosip.io/telemetry/actor"},"context":{"$ref":"http://mosip.io/telemetry/context"},"tags":{"$ref":"http://mosip.io/telemetry/tags"},"deviceInformation":{"$ref":"http://mosip.io/telemetry/device_information"}}},{"$id":"http://mosip.io/telemetry/context","type":"object","properties":{"channel":{"type":"string"},"pdata":{"$ref":"http://mosip.io/telemetry/pdata"},"env":{"type":"string"},"sid":{"type":"string"},"did":{"type":"string"},"cdata":{"type":"array","items":{}},"rollup":{"type":"object","properties":{},"required":[]}},"required":["env","sid","did"]},{"$id":"http://mosip.io/telemetry/device_information","type":"object","properties":{"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1}},"required":["brandName","modelName","osName","osVersion","osApiLevel"]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"duration":{"type":"number"}},"required":["type","duration"]}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"properties":{"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"subtype":{"type":"string"}},"required":["type","subtype"]}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"$id":"http://mosip.io/telemetry/eid","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/pdata","type":"object","properties":{"id":{"type":"string"},"ver":{"type":"string"},"pid":{"type":"string"}},"required":[]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","ets","mid","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"},"duration":{"type":"number"}},"required":["type","duration"]}}}]},{"$id":"http://mosip.io/telemetry/tags","type":"object","properties":{"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1}},"required":["injiVersion","tuvaliVersion","buildNumber"]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file +var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}}},{"$id":"http://mosip.io/telemetry/appinfo","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["APPINFO"]},"edata":{"type":"object","additionalProperties":false,"properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"number","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/common","type":"object","required":["ets","sid","appid","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/actor"},{"properties":{"ets":{"type":"number","format":"date-time"},"sid":{"type":"string","minLength":1},"appid":{"type":"string","minLength":1}}}]},{"$id":"http://mosip.io/telemetry/device_information","type":"object","properties":{"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}},"required":["brandName","modelName","osName","osVersion","osApiLevel","isHardwareKeystoreSupported","dateTime","zone","offset"]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","ets","sid","appid","edata","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"required":["type","status","duration"],"properties":{"type":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","ets","sid","appid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"allOf":[{"properties":{"type":{"type":"string"},"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"},"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"string","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}]}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","ets","sid","appid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"required":["type","subtype"],"properties":{"type":{"type":"string"},"subtype":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","ets","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/tags","type":"object","properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"}},"required":["injiVersion","tuvaliVersion","buildNumber","preferredLanguage","env"]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file From d1620422522c0617ce0c59c5b218ff8e8c6e7894 Mon Sep 17 00:00:00 2001 From: Alka Date: Fri, 15 Sep 2023 16:26:54 +0530 Subject: [PATCH 09/11] refactor(INJI-251): update event json schema --- js/schema/mosip_device_information.json | 52 ------------------------- js/schema/mosip_end.json | 2 +- js/schema/mosip_error.json | 2 +- js/schema/mosip_interact.json | 2 +- js/schema/mosip_log.json | 2 +- js/schema/mosip_tags.json | 32 --------------- js/schema/telemetry-spec.js | 2 +- 7 files changed, 5 insertions(+), 89 deletions(-) delete mode 100644 js/schema/mosip_device_information.json delete mode 100644 js/schema/mosip_tags.json diff --git a/js/schema/mosip_device_information.json b/js/schema/mosip_device_information.json deleted file mode 100644 index 741d672..0000000 --- a/js/schema/mosip_device_information.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "$id": "http://mosip.io/telemetry/device_information", - "type": "object", - "properties": { - "brandName": { - "type": "string", - "minLength": 1 - }, - "modelName": { - "type": "string", - "minLength": 1 - }, - "osName": { - "type": "string", - "minLength": 1 - }, - "osVersion": { - "type": "string", - "minLength": 1 - }, - "osApiLevel": { - "type": "string", - "minLength": 1 - }, - "isHardwareKeystoreSupported": { - "type": "boolean", - "minLength": 1 - }, - "dateTime": { - "type": "string", - "minLength": 1 - }, - "zone": { - "type": "string", - "minLength": 1 - }, - "offset": { - "type": "number" - } - }, - "required": [ - "brandName", - "modelName", - "osName", - "osVersion", - "osApiLevel", - "isHardwareKeystoreSupported", - "dateTime", - "zone", - "offset" - ] -} diff --git a/js/schema/mosip_end.json b/js/schema/mosip_end.json index a474209..375fa40 100644 --- a/js/schema/mosip_end.json +++ b/js/schema/mosip_end.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/end", "type": "object", - "required": ["eid", "ets", "sid", "appid", "edata", "actor"], + "required": ["eid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/mosip_error.json b/js/schema/mosip_error.json index ac403fa..5ba1e98 100644 --- a/js/schema/mosip_error.json +++ b/js/schema/mosip_error.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/error", "type": "object", - "required": ["eid", "ets", "sid", "appid", "edata"], + "required": ["eid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/mosip_interact.json b/js/schema/mosip_interact.json index 55ef40f..60f0d4a 100644 --- a/js/schema/mosip_interact.json +++ b/js/schema/mosip_interact.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/interact", "type": "object", - "required": ["eid", "ets", "sid", "appid", "edata"], + "required": ["eid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/mosip_log.json b/js/schema/mosip_log.json index d0c6081..7b81386 100644 --- a/js/schema/mosip_log.json +++ b/js/schema/mosip_log.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/log", "type": "object", - "required": ["eid", "ets", "tags","edata"], + "required": ["eid", "edata"], "allOf": [ { "$ref": "http://mosip.io/telemetry/common" diff --git a/js/schema/mosip_tags.json b/js/schema/mosip_tags.json deleted file mode 100644 index 27ed8e5..0000000 --- a/js/schema/mosip_tags.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "$id": "http://mosip.io/telemetry/tags", - "type": "object", - "properties": { - "env": { - "type": "string", - "minLength": 1 - }, - "injiVersion": { - "type": "string", - "minLength": 1 - }, - "tuvaliVersion": { - "type": "string", - "minLength": 1 - }, - "buildNumber": { - "type": "string", - "minLength": 1 - }, - "preferredLanguage": { - "type": "string" - } - }, - "required": [ - "injiVersion", - "tuvaliVersion", - "buildNumber", - "preferredLanguage", - "env" - ] -} diff --git a/js/schema/telemetry-spec.js b/js/schema/telemetry-spec.js index 99f8c38..b7a23ee 100644 --- a/js/schema/telemetry-spec.js +++ b/js/schema/telemetry-spec.js @@ -1 +1 @@ -var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}}},{"$id":"http://mosip.io/telemetry/appinfo","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["APPINFO"]},"edata":{"type":"object","additionalProperties":false,"properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"number","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/common","type":"object","required":["ets","sid","appid","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/actor"},{"properties":{"ets":{"type":"number","format":"date-time"},"sid":{"type":"string","minLength":1},"appid":{"type":"string","minLength":1}}}]},{"$id":"http://mosip.io/telemetry/device_information","type":"object","properties":{"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}},"required":["brandName","modelName","osName","osVersion","osApiLevel","isHardwareKeystoreSupported","dateTime","zone","offset"]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","ets","sid","appid","edata","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"required":["type","status","duration"],"properties":{"type":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","ets","sid","appid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"allOf":[{"properties":{"type":{"type":"string"},"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"},"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"string","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}]}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","ets","sid","appid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"required":["type","subtype"],"properties":{"type":{"type":"string"},"subtype":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","ets","tags","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/tags","type":"object","properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"}},"required":["injiVersion","tuvaliVersion","buildNumber","preferredLanguage","env"]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file +var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}}},{"$id":"http://mosip.io/telemetry/appinfo","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["APPINFO"]},"edata":{"type":"object","additionalProperties":false,"properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"number","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/common","type":"object","required":["ets","sid","appid","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/actor"},{"properties":{"ets":{"type":"number","format":"date-time"},"sid":{"type":"string","minLength":1},"appid":{"type":"string","minLength":1}}}]},{"$id":"http://mosip.io/telemetry/device_information","type":"object","properties":{"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}},"required":["brandName","modelName","osName","osVersion","osApiLevel","isHardwareKeystoreSupported","dateTime","zone","offset"]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"required":["type","status","duration"],"properties":{"type":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"allOf":[{"properties":{"type":{"type":"string"},"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"},"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"string","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}]}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"required":["type","subtype"],"properties":{"type":{"type":"string"},"subtype":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/tags","type":"object","properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"}},"required":["injiVersion","tuvaliVersion","buildNumber","preferredLanguage","env"]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file From 3cf829e72de34cca48ff2908550806b0b9b1badd Mon Sep 17 00:00:00 2001 From: Alka Date: Mon, 18 Sep 2023 12:43:06 +0530 Subject: [PATCH 10/11] feat(INJI-251): update error event structure --- js/schema/mosip_error.json | 138 +++++++++++++++++------------------- js/schema/telemetry-spec.js | 2 +- 2 files changed, 68 insertions(+), 72 deletions(-) diff --git a/js/schema/mosip_error.json b/js/schema/mosip_error.json index 5ba1e98..0db1f1d 100644 --- a/js/schema/mosip_error.json +++ b/js/schema/mosip_error.json @@ -16,78 +16,74 @@ "type": "object", "additionalProperties": false, "required": ["errorId", "errorMessage", "stacktrace"], - "allOf": [ - { - "properties": { - "type": { - "type": "string" - }, - "errorId": { - "type": "string" - }, - "errorMessage": { - "type": "string" - }, - "stacktrace": { - "type": "string" - }, - "env": { - "type": "string", - "minLength": 1 - }, - "injiVersion": { - "type": "string", - "minLength": 1 - }, - "tuvaliVersion": { - "type": "string", - "minLength": 1 - }, - "buildNumber": { - "type": "string", - "minLength": 1 - }, - "preferredLanguage": { - "type": "string" - }, - "brandName": { - "type": "string", - "minLength": 1 - }, - "modelName": { - "type": "string", - "minLength": 1 - }, - "osName": { - "type": "string", - "minLength": 1 - }, - "osVersion": { - "type": "string", - "minLength": 1 - }, - "osApiLevel": { - "type": "string", - "minLength": 1 - }, - "isHardwareKeystoreSupported": { - "type": "string", - "minLength": 1 - }, - "dateTime": { - "type": "string", - "minLength": 1 - }, - "zone": { - "type": "string", - "minLength": 1 - }, - "offset": { - "type": "number" - } - } + "properties": { + "type": { + "type": "string" + }, + "errorId": { + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "stacktrace": { + "type": "string" + }, + "env": { + "type": "string", + "minLength": 1 + }, + "injiVersion": { + "type": "string", + "minLength": 1 + }, + "tuvaliVersion": { + "type": "string", + "minLength": 1 + }, + "buildNumber": { + "type": "string", + "minLength": 1 + }, + "preferredLanguage": { + "type": "string" + }, + "brandName": { + "type": "string", + "minLength": 1 + }, + "modelName": { + "type": "string", + "minLength": 1 + }, + "osName": { + "type": "string", + "minLength": 1 + }, + "osVersion": { + "type": "string", + "minLength": 1 + }, + "osApiLevel": { + "type": "string", + "minLength": 1 + }, + "isHardwareKeystoreSupported": { + "type": "string", + "minLength": 1 + }, + "dateTime": { + "type": "string", + "minLength": 1 + }, + "zone": { + "type": "string", + "minLength": 1 + }, + "offset": { + "type": "number" } - ] + } } } } diff --git a/js/schema/telemetry-spec.js b/js/schema/telemetry-spec.js index b7a23ee..fe75f98 100644 --- a/js/schema/telemetry-spec.js +++ b/js/schema/telemetry-spec.js @@ -1 +1 @@ -var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}}},{"$id":"http://mosip.io/telemetry/appinfo","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["APPINFO"]},"edata":{"type":"object","additionalProperties":false,"properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"number","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/common","type":"object","required":["ets","sid","appid","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/actor"},{"properties":{"ets":{"type":"number","format":"date-time"},"sid":{"type":"string","minLength":1},"appid":{"type":"string","minLength":1}}}]},{"$id":"http://mosip.io/telemetry/device_information","type":"object","properties":{"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}},"required":["brandName","modelName","osName","osVersion","osApiLevel","isHardwareKeystoreSupported","dateTime","zone","offset"]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"required":["type","status","duration"],"properties":{"type":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"allOf":[{"properties":{"type":{"type":"string"},"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"},"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"string","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}]}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"required":["type","subtype"],"properties":{"type":{"type":"string"},"subtype":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/tags","type":"object","properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"}},"required":["injiVersion","tuvaliVersion","buildNumber","preferredLanguage","env"]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file +var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}}},{"$id":"http://mosip.io/telemetry/appinfo","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["APPINFO"]},"edata":{"type":"object","additionalProperties":false,"properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"number","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/common","type":"object","required":["ets","sid","appid","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/actor"},{"properties":{"ets":{"type":"number","format":"date-time"},"sid":{"type":"string","minLength":1},"appid":{"type":"string","minLength":1}}}]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"required":["type","status","duration"],"properties":{"type":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"properties":{"type":{"type":"string"},"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"},"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"string","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"required":["type","subtype"],"properties":{"type":{"type":"string"},"subtype":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file From 51a0f94d92d7e0acee7ca269078bac95cc16a63b Mon Sep 17 00:00:00 2001 From: Alka Date: Mon, 18 Sep 2023 13:13:35 +0530 Subject: [PATCH 11/11] feat(INJI-251): bring back mid implementation --- js/core/telemetrySyncManager.js | 3 +++ js/core/telemetryV3Interface.js | 3 +++ js/schema/mosip_common.json | 6 +++++- js/schema/telemetry-spec.js | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/js/core/telemetrySyncManager.js b/js/core/telemetrySyncManager.js index b2d804e..64aaec9 100644 --- a/js/core/telemetrySyncManager.js +++ b/js/core/telemetrySyncManager.js @@ -44,6 +44,9 @@ var TelemetrySyncManager = { telemetryObj = { "data": { "id": "api.mosip.telemetry", + "params": { + "msgid": CryptoJS.MD5(JSON.stringify(telemetryEvents)).toString(), + }, "ets": getUTCTime(), "events": telemetryEvents } diff --git a/js/core/telemetryV3Interface.js b/js/core/telemetryV3Interface.js index 1e509a6..33448ff 100644 --- a/js/core/telemetryV3Interface.js +++ b/js/core/telemetryV3Interface.js @@ -60,6 +60,7 @@ var Telemetry = (function() { this.telemetryEnvelop = { "eid": "", "ets": "", + "mid": "", "sid": "", "appid":"", "actor": {}, @@ -370,6 +371,7 @@ var Telemetry = (function() { * @param {object} message [Telemetry event object] */ instance._dispatch = function(message) { + message.mid = message.eid + ':' + CryptoJS.MD5(JSON.stringify(message)).toString(); if (telemetryInstance.enableValidation) { var schemaBaseUrl = 'http://api.ekstep.org/telemetry/'; if(telemetry.config.schemaBaseUrl){ @@ -409,6 +411,7 @@ var Telemetry = (function() { telemetryInstance.telemetryEnvelop.eid = eventId; telemetryInstance.telemetryEnvelop.ets = getUTCTime(); telemetryInstance.telemetryEnvelop.sid = Telemetry.config.sid; + telemetryInstance.telemetryEnvelop.mid = ''; telemetryInstance.telemetryEnvelop.appid = Telemetry.config.appid; telemetryInstance.telemetryEnvelop.edata = data; return telemetryInstance.telemetryEnvelop; diff --git a/js/schema/mosip_common.json b/js/schema/mosip_common.json index fe945e3..ce51364 100644 --- a/js/schema/mosip_common.json +++ b/js/schema/mosip_common.json @@ -1,7 +1,7 @@ { "$id": "http://mosip.io/telemetry/common", "type": "object", - "required": ["ets", "sid", "appid", "actor"], + "required": ["ets", "sid", "mid", "appid", "actor"], "allOf": [ { "$ref": "http://mosip.io/telemetry/actor" @@ -12,6 +12,10 @@ "type": "number", "format": "date-time" }, + "mid": { + "type": "string", + "minLength": 1 + }, "sid": { "type": "string", "minLength": 1 diff --git a/js/schema/telemetry-spec.js b/js/schema/telemetry-spec.js index fe75f98..2ae3f79 100644 --- a/js/schema/telemetry-spec.js +++ b/js/schema/telemetry-spec.js @@ -1 +1 @@ -var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}}},{"$id":"http://mosip.io/telemetry/appinfo","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["APPINFO"]},"edata":{"type":"object","additionalProperties":false,"properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"number","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/common","type":"object","required":["ets","sid","appid","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/actor"},{"properties":{"ets":{"type":"number","format":"date-time"},"sid":{"type":"string","minLength":1},"appid":{"type":"string","minLength":1}}}]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"required":["type","status","duration"],"properties":{"type":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"properties":{"type":{"type":"string"},"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"},"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"string","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"required":["type","subtype"],"properties":{"type":{"type":"string"},"subtype":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file +var telemetrySchema = [{"$id":"http://api.ekstep.org/telemetry/actor","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/actor/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/actor/type","type":"string"}},"required":["type","id"]},{"$id":"http://api.ekstep.org/telemetry/assess","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ASSESS"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["item","pass","score","resvalues","duration"],"properties":{"item":{"$ref":"http://api.ekstep.org/telemetry/question"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/index","type":"number"},"pass":{"$id":"http://api.ekstep.org/telemetry/edata/pass","type":"string"},"score":{"$id":"http://api.ekstep.org/telemetry/edata/score","type":"number"},"resvalues":{"$id":"http://api.ekstep.org/telemetry/edata/resvalues","type":"array","items":{"type":"object"}},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/audit","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["AUDIT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"props":{"$id":"http://api.ekstep.org/telemetry/edata/props","type":"array","items":{"type":"string"}},"state":{"$id":"http://api.ekstep.org/telemetry/edata/state","type":"string"},"prevstate":{"$id":"http://api.ekstep.org/telemetry/edata/prevstate","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/cdata","type":"array","items":{"type":"object","properties":{"type":{"$id":"http://api.ekstep.org/telemetry/cdata/type","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/cdata/id","type":"string"}},"additionalProperties":false,"required":["type","id"]}},{"$id":"http://api.ekstep.org/telemetry/common","type":"object","properties":{"ets":{"$id":"http://api.ekstep.org/telemetry/ets","type":"number","format":"date-time"},"ver":{"$id":"http://api.ekstep.org/telemetry/ver","type":"string","enum":["3.0"]},"mid":{"$id":"http://api.ekstep.org/telemetry/mid","type":"string","minLength":1},"actor":{"$ref":"http://api.ekstep.org/telemetry/actor"},"context":{"$ref":"http://api.ekstep.org/telemetry/context"},"object":{"$ref":"http://api.ekstep.org/telemetry/object"},"tags":{"type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/context","type":"object","properties":{"channel":{"$id":"http://api.ekstep.org/telemetry/context/channel","type":"string","minLength":1},"pdata":{"$ref":"http://api.ekstep.org/telemetry/pdata"},"env":{"$id":"http://api.ekstep.org/telemetry/context/env","type":"string"},"sid":{"$id":"http://api.ekstep.org/telemetry/context/sid","type":"string"},"did":{"$id":"http://api.ekstep.org/telemetry/context/did","type":"string"},"cdata":{"$ref":"http://api.ekstep.org/telemetry/cdata"}},"required":["channel","env","pdata"]},{"$id":"http://api.ekstep.org/telemetry/dspec","type":"object","properties":{"os":{"$id":"http://api.ekstep.org/telemetry/dspec/os","type":"string"},"make":{"$id":"http://api.ekstep.org/telemetry/dspec/make","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/dspec/id","type":"string"},"mem":{"$id":"http://api.ekstep.org/telemetry/dspec/mem","type":"number","minimum":-1},"idisk":{"$id":"http://api.ekstep.org/telemetry/dspec/idisk","type":"number","minimum":-1},"edisk":{"$id":"http://api.ekstep.org/telemetry/dspec/edisk","type":"number","minimum":-1},"scrn":{"$id":"http://api.ekstep.org/telemetry/dspec/scrn","type":"number","minimum":-1},"camera":{"$id":"http://api.ekstep.org/telemetry/dspec/camera","type":"string"},"cpu":{"$id":"http://api.ekstep.org/telemetry/dspec/cpu","type":"string"},"sims":{"$id":"http://api.ekstep.org/telemetry/dspec/sims","type":"number","minimum":-1},"cap":{"$id":"http://api.ekstep.org/telemetry/dspec/cap","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/end","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["END"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"summary":{"$id":"http://api.ekstep.org/telemetry/edata/summary","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/error","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["ERROR"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["err","errtype","stacktrace"],"properties":{"err":{"$id":"http://api.ekstep.org/telemetry/edata/err","type":"string"},"errtype":{"$id":"http://api.ekstep.org/telemetry/edata/errtype","type":"string"},"stacktrace":{"$id":"http://api.ekstep.org/telemetry/edata/stacktrace","type":"string"},"traceid":{"$id":"http://api.ekstep.org/telemetry/edata/traceid","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"object":{"$ref":"http://api.ekstep.org/telemetry/inlineobject"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/exdata","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["EXDATA"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"data":{"$id":"http://api.ekstep.org/telemetry/edata/data","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/feedback","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["FEEDBACK"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"properties":{"rating":{"$id":"http://api.ekstep.org/telemetry/edata/rating","type":"number"},"comments":{"$id":"http://api.ekstep.org/telemetry/edata/comments","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/heartbeat","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["HEARTBEAT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object"}}}]},{"$id":"http://api.ekstep.org/telemetry/impression","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["IMPRESSION"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","pageid","uri"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"uri":{"$id":"http://api.ekstep.org/telemetry/edata/uri","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"visits":{"$id":"http://api.ekstep.org/telemetry/edata/visits","type":"array","items":{"type":"object","properties":{"objid":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objid","type":"string"},"objtype":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objtype","type":"string"},"objver":{"$id":"http://api.ekstep.org/telemetry/edata/visits/objver","type":"string"},"section":{"$id":"http://api.ekstep.org/telemetry/edata/visits/section","type":"string"},"index":{"$id":"http://api.ekstep.org/telemetry/edata/visits/index","type":"number"}},"additionalProperties":false,"required":["objid","objtype"]}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/inlineobject","type":"object","additionalProperties":false,"required":["id","type","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/inlineobject/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/inlineobject/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/inlineobject/ver","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/inlineobject/subtype","type":"string"},"name":{"$id":"http://api.ekstep.org/telemetry/inlineobject/name","type":"string"},"code":{"$id":"http://api.ekstep.org/telemetry/inlineobject/code","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/interact","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERACT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"subtype":{"$id":"http://api.ekstep.org/telemetry/edata/subtype","type":"string"},"id":{"$id":"http://api.ekstep.org/telemetry/edata/id","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"plugin":{"$ref":"http://api.ekstep.org/telemetry/plugin"},"extra":{"$id":"http://api.ekstep.org/telemetry/edata/extra","type":"object"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/interrupt","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["INTERRUPT"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/items","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/items/ver","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/items/params","type":"array","items":{"type":"object"}},"origin":{"$id":"http://api.ekstep.org/telemetry/items/origin","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/origin/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/origin/type","type":"string"}}},"to":{"$id":"http://api.ekstep.org/telemetry/items/to","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/items/to/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/items/to/type","type":"string"}}}}}},{"$id":"http://api.ekstep.org/telemetry/log","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["LOG"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"level":{"$id":"http://api.ekstep.org/telemetry/edata/level","type":"string"},"message":{"$id":"http://api.ekstep.org/telemetry/edata/message","type":"string"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"},"params":{"$id":"http://api.ekstep.org/telemetry/edata/params","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/actor","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}}},{"$id":"http://mosip.io/telemetry/appinfo","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["APPINFO"]},"edata":{"type":"object","additionalProperties":false,"properties":{"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"boolean","minLength":1},"dateTime":{"type":"number","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/common","type":"object","required":["ets","sid","mid","appid","actor"],"allOf":[{"$ref":"http://mosip.io/telemetry/actor"},{"properties":{"ets":{"type":"number","format":"date-time"},"mid":{"type":"string","minLength":1},"sid":{"type":"string","minLength":1},"appid":{"type":"string","minLength":1}}}]},{"$id":"http://mosip.io/telemetry/end","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["END"]},"edata":{"type":"object","additionalProperties":false,"required":["type","status","duration"],"properties":{"type":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/error","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["ERROR"]},"edata":{"type":"object","additionalProperties":false,"required":["errorId","errorMessage","stacktrace"],"properties":{"type":{"type":"string"},"errorId":{"type":"string"},"errorMessage":{"type":"string"},"stacktrace":{"type":"string"},"env":{"type":"string","minLength":1},"injiVersion":{"type":"string","minLength":1},"tuvaliVersion":{"type":"string","minLength":1},"buildNumber":{"type":"string","minLength":1},"preferredLanguage":{"type":"string"},"brandName":{"type":"string","minLength":1},"modelName":{"type":"string","minLength":1},"osName":{"type":"string","minLength":1},"osVersion":{"type":"string","minLength":1},"osApiLevel":{"type":"string","minLength":1},"isHardwareKeystoreSupported":{"type":"string","minLength":1},"dateTime":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1},"offset":{"type":"number"}}}}}]},{"$id":"http://mosip.io/telemetry/impression","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["IMPRESSION"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://mosip.io/telemetry/interact","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["INTERACT"]},"edata":{"type":"object","additionalProperties":false,"required":["type","subtype"],"properties":{"type":{"type":"string"},"subtype":{"type":"string"}}}}}]},{"$id":"http://mosip.io/telemetry/log","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["LOG"]},"edata":{"type":"object","additionalProperties":false,"required":["type","level","message"],"properties":{"type":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"},"additionalParameters":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://mosip.io/telemetry/start","type":"object","required":["eid","edata"],"allOf":[{"$ref":"http://mosip.io/telemetry/common"},{"properties":{"eid":{"type":"string","enum":["START"]},"edata":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string"}},"required":["type"]}}}]},{"$id":"http://api.ekstep.org/telemetry/object","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/object/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/object/type","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/object/ver","type":"string"},"rollup":{"$ref":"http://api.ekstep.org/telemetry/rollup"}}},{"$id":"http://api.ekstep.org/telemetry/parent","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/parent/id","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/parent/type","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/pdata","type":"object","properties":{"id":{"$id":"http://api.ekstep.org/telemetry/pdata/id","type":"string"},"pid":{"$id":"http://api.ekstep.org/telemetry/pdata/pid","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/pdata/ver","type":"string"}},"required":["id"]},{"$id":"http://api.ekstep.org/telemetry/plugin","type":"object","additionalProperties":false,"required":["id","ver"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/plugin/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/plugin/ver","type":"string"},"category":{"$id":"http://api.ekstep.org/telemetry/plugin/category","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/question","type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/question/id","type":"string"},"maxscore":{"$id":"http://api.ekstep.org/telemetry/question/maxscore","type":"number"},"exlength":{"$id":"http://api.ekstep.org/telemetry/question/exlength","type":"number"},"params":{"$id":"http://api.ekstep.org/telemetry/question/params","type":"array","items":{"type":"object"}},"uri":{"$id":"http://api.ekstep.org/telemetry/question/uri","type":"string"},"desc":{"$id":"http://api.ekstep.org/telemetry/question/desc","type":"string"},"title":{"$id":"http://api.ekstep.org/telemetry/question/title","type":"string"},"mmc":{"$id":"http://api.ekstep.org/telemetry/question/mmc","type":"array","items":{"type":"string"}},"mc":{"$id":"http://api.ekstep.org/telemetry/question/mc","type":"array","items":{"type":"string"}}}},{"$id":"http://api.ekstep.org/telemetry/response","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["RESPONSE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["target","type","values"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/type","type":"string"},"target":{"$ref":"http://api.ekstep.org/telemetry/target"},"values":{"type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/rollup","type":"object","properties":{"l1":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l1","type":"string"},"l2":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l2","type":"string"},"l3":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l3","type":"string"},"l4":{"$id":"http://api.ekstep.org/telemetry/context/rollup/l4","type":"string"}}},{"$id":"http://api.ekstep.org/telemetry/search","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SEARCH"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["query","size","topn"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"query":{"$id":"http://api.ekstep.org/telemetry/edata/query","type":"string"},"filters":{"$id":"http://api.ekstep.org/telemetry/edata/filters","type":"object"},"sort":{"$id":"http://api.ekstep.org/telemetry/edata/sort","type":"object"},"correlationid":{"$id":"http://api.ekstep.org/telemetry/edata/correlationid","type":"string"},"size":{"$id":"http://api.ekstep.org/telemetry/edata/size","type":"number"},"topn":{"$id":"http://api.ekstep.org/telemetry/edata/topn","type":"array","items":{"type":"object"}}}}}}]},{"$id":"http://api.ekstep.org/telemetry/share","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["SHARE"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["items"],"properties":{"dir":{"$id":"http://api.ekstep.org/telemetry/edata/dir","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"items":{"$ref":"http://api.ekstep.org/telemetry/items"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/start","type":"object","required":["eid","ets","ver","mid","actor","context","edata"],"allOf":[{"$ref":"http://api.ekstep.org/telemetry/common"},{"properties":{"eid":{"$id":"http://api.ekstep.org/telemetry/eid","enum":["START"]},"edata":{"$id":"http://api.ekstep.org/telemetry/edata","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"$id":"http://api.ekstep.org/telemetry/edata/type","type":"string"},"dspec":{"$ref":"http://api.ekstep.org/telemetry/dspec"},"uaspec":{"$ref":"http://api.ekstep.org/telemetry/uaspec"},"loc":{"$id":"http://api.ekstep.org/telemetry/edata/loc","type":"string"},"mode":{"$id":"http://api.ekstep.org/telemetry/edata/mode","type":"string"},"duration":{"$id":"http://api.ekstep.org/telemetry/edata/duration","type":"number"},"pageid":{"$id":"http://api.ekstep.org/telemetry/edata/pageid","type":"string"}}}}}]},{"$id":"http://api.ekstep.org/telemetry/target","type":"object","additionalProperties":false,"required":["id","ver","type"],"properties":{"id":{"$id":"http://api.ekstep.org/telemetry/target/id","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/target/ver","type":"string"},"type":{"$id":"http://api.ekstep.org/telemetry/target/type","type":"string"},"parent":{"$ref":"http://api.ekstep.org/telemetry/parent"}}},{"$id":"http://api.ekstep.org/telemetry/uaspec","type":"object","properties":{"agent":{"$id":"http://api.ekstep.org/telemetry/uaspec/agent","type":"string"},"ver":{"$id":"http://api.ekstep.org/telemetry/uaspec/ver","type":"string"},"system":{"$id":"http://api.ekstep.org/telemetry/uaspec/system","type":"string"},"platform":{"$id":"http://api.ekstep.org/telemetry/uaspec/platform","type":"string"},"raw":{"$id":"http://api.ekstep.org/telemetry/uaspec/raw","type":"string"}}}] \ No newline at end of file