Dilan, Shouldn't it be '/devicemgt' instead of 'mdm-admin'? On Fri, Apr 22, 2016 at 11:24 AM, Dilan Udara Ariyaratne <dil...@wso2.com> wrote:
> Hi Ramindu, > > I have just exposed two jax-rs apis for the following gadgets of the > landing dashboard page as discussed in the last UX/UI meeting held on April > 11th. > [1] Device-overview-gadget (GET https://localhost:9443/mdm-admin > /dashboard/device-overview) : > To show device counts as TOTAL, ACTIVE, INACTIVE and REMOVED > [2] Potential-vlunerabilities (GET https://localhost:9443/mdm-admin/ > dashboard/potential-vulnerabilities) : > To show device counts as NON-COMPLIANT, UNMONITORED (NO-PASSCODE and > NO-ENCRYPTION data capturing in still under development) > > Would you be able to get a build of product-emm and try these APIs from > the portal app? > > I would be able to provide all the first-cut APIs for the landing > dashboard page by this evening. > > Cheers, > Dilan. > > > *Dilan U. Ariyaratne* > Software Engineer > WSO2 Inc. <http://wso2.com/> > Mobile: +94766405580 <%2B94766405580> > lean . enterprise . middleware > > > On Wed, Apr 20, 2016 at 12:07 PM, Ramindu De Silva <ramin...@wso2.com> > wrote: > >> Hi all, >> >> The following are the request-response structures for the IoT dashboard >> API. Please mention any suggestion or changes to the following >> >> >> 1. Retrieve connectivity status. >> >>> >>> *Request: *POST /connectivityStatus >> >> *{}* >> >> *response:* [ >>> >> { >> >> "context": "deviceInfo", >> >> "data": [ >> >> { >> >> "group": "active", >> >> "label": "active", >> >> "count": activeNo >> >> }, >> >> { >> >> "group": "all", >> >> "label": "all", >> >> "count": activeNo + inactiveNo >> >> }, >> >> { >> >> "group": "inactive", >> >> "label": "inactive", >> >> "count": inactiveNo >> >> } >> >> ] >> >> } >> >> ] >> >> 2. Retrieve vulnerabilities >> >> >>> *Request: *POST /securityConcerns >>> *{* >>> *}**response:* [ >>> >> { >> >> "context": "securityConcerns", >> >> "data": [ >> >> { >> >> "group": "no-passcode", >> >> "label": "No Passcode", >> >> "countChange": randint(100, 500), >> >> "count": randint(100, 500) >> >> }, >> >> { >> >> "group": "no-encryption", >> >> "label": "Non encrypted", >> >> "countChange": randint(100, 500), >> >> "count": randint(100, 500) >> >> }, >> >> { >> >> "group": "unmonitored", >> >> "label": "Unmonitored", >> >> "countChange": randint(100, 500), >> >> "count": randint(100, 500) >> >> } >> >> ] >> >> } >> >> ] >> >> >> 3. Retrieve non compliant features >> >> >>> *Request: *POST /nonCompliantDevices >>> *{* >> >> fromIndex: 10, >> >> count: 5 >> >> *}* >> >> *response:*[ >> >> { >> >> "context": "nonCompliantDevices", >> >> "data":[ >> >> { >> >> "group": "non-compliant-1", >> >> "label": "Non Compliant-1", >> >> "count": randint(100, 500) >> >> }, >> >> { >> >> "group": "non-compliant-2", >> >> "label": "non-compliant-2", >> >> "count": randint(100, 500) >> >> }, >> >> { >> >> "group": "non-compliant-3", >> >> "label": "non-compliant-3", >> >> "count": randint(100, 500) >> >> }, >> >> { >> >> "group": "non-compliant-4", >> >> "label": "non-compliant-4", >> >> "count": randint(100, 500) >> >> }, >> >> { >> >> "group": "non-compliant-5", >> >> "label": "non-compliant-5", >> >> "count": randint(100, 500) >> >> } >> >> ] >> >> } >> >> ] >> >> >> 4. Retrieve grouping: This has two types of requests request 1 without >> mentioning any filters and request 2 with a filter >> >> >>> *Request1: *POST /nonCompliantDevices >>> *[]* >> >> *response1:*[ >>> { >>> "context": "platforms", >>> "data": [ >>> { >>> "group": "ios", >>> "label": "iOS", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "android", >>> "label": "Android", >>> "count": randint(100, 500) >>> } >>> ] >>> }, >>> { >>> "context": "ownerships", >>> "data": [ >>> { >>> "group": "cope", >>> "label": "COPE", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "byod", >>> "label": "BYOD", >>> "count": randint(100, 500) >>> } >>> ] >>> }, >>> { >>> "context": "userGroups", >>> "data": [ >>> { >>> "group": "sales", >>> "label": "Sales", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "marketing", >>> "label": "Marketing", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "engineering", >>> "label": "Engineering", >>> "count": randint(100, 500) >>> } >>> ] >>> } >> >> ] >> >> >> >>> *Request2: *POST /nonCompliantDevices >>> { >>> "filters": [ >>> { >>> "filteringContext": "platform", >>> "filteringGroups" : ["Android"] >>> } >> >> ] >> >> } >>> >> *response2:*[ >>> { >>> "context": "platforms", >>> "data": [ >>> { >>> "group": "ios", >>> "label": "iOS", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "android", >>> "label": "Android", >>> "count": randint(100, 500) >>> } >>> ] >>> }, >>> { >>> "context": "ownerships", >>> "data": [ >>> { >>> "group": "cope", >>> "label": "COPE", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "byod", >>> "label": "BYOD", >>> "count": randint(100, 500) >>> } >>> ] >>> }, >>> { >>> "context": "userGroups", >>> "data": [ >>> { >>> "group": "sales", >>> "label": "Sales", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "marketing", >>> "label": "Marketing", >>> "count": randint(100, 500) >>> }, >>> { >>> "group": "engineering", >>> "label": "Engineering", >>> "count": randint(100, 500) >>> } >>> ] >>> } >> >> ] >> >> 5. Retrieve Device table: >> *Request:* >> >>> POST /devices >>> { >>> "filters": [ >>> { >>> "filter": "platform", >>> "selections" : ["Android", "iOS"] >>> }, >>> { >>> "filteringContext": "NonCompliantDevices", >>> "filteringGroups" : ["non-compliant-1"] >>> } >>> ], >>> } >> >> >> >> *response:* [ >> >> >> >> { >> >> "context": "devices", >> >> "data": [ >> >> { >> >> "id": "001", >> >> "label": "Nexus P", >> >> "status": "Blocked", >> >> "platform": "Android", >> >> "model": "HNP001", >> >> "actions": "Action" >> >> }, >> >> { >> >> "id": "002", >> >> "label": "Galaxy Note 5", >> >> "status": "Unmonitored", >> >> "platform": "Android", >> >> "model": "SGN002", >> >> "actions": "Action" >> >> }, >> >> { >> >> "id": "003", >> >> "label": "iPhone 6", >> >> "status": "Compliant", >> >> "platform": "iOS", >> >> "model": "AIP003", >> >> "actions": "Action" >> >> } >> >> ] >> >> } >> >> ] >> >> >> Best Regards, >> >> >> ---------- Forwarded message ---------- >> From: Grainier Perera <grain...@wso2.com> >> Date: Tue, Mar 29, 2016 at 11:59 AM >> Subject: Re: API Requirements for IoT Snapshot Dashboard >> To: WSO2 Developers' List <dev@wso2.org>, Sriskandarajah Suhothayan < >> s...@wso2.com>, Dilan Udara Ariyaratne <dil...@wso2.com>, Prabath >> Abeysekera <praba...@wso2.com>, Sumedha Rubasinghe <sume...@wso2.com> >> >> >> Hi all, >> As per offline discussion, following are the finalized request-response >> structures for IoT snapshot dashboard API; >> >> 1. Retrieve security concerns for the given filters. >> >>> >>> *Request: *POST /securityConcerns >>> *[* >>> { >>> "*filteringContext*":"connectivityStatus", >>> "*filteringGroups*":*[*"active"*]* >>> }, >>> { >>> "filteringContext":"alerts", >>> "filteringGroups":["high"] >>> } >>> *]* >>> >>> *Response:**[* >>> { >>> "*context*": "securityConcerns", >>> "*data*": *[* >>> { >>> "*group*": "non-compliant", >>> "*label*": "Non Compliant", >>> "*count*": 5 >>> }, >>> { >>> "group": "no-passcode", >>> "label": "No Passcode", >>> "count": 18 >>> }, >>> { >>> "group": "no-encryption", >>> "label": "Non encrypted", >>> "count": 23 >>> }, >>> { >>> "group": "unmonitored", >>> "label": "Unmonitored", >>> "count": 12 >>> } >>> *]* >>> } >>> *]* >> >> >> 2. Retrieve all devices. >> >>> >>> *Request:*POST /devices >>> *[]* >>> >>> *Response:**[* >>> { >>> "*context*": "devices", >>> "*data*": *[* >>> { >>> "*id*": "001", >>> "*label*": "Nexus P", >>> "*status*": "Blocked", >>> "*platform*": "Android", >>> "*model*": "HNP001", >>> "*actions*": URL, >>> }, >>> { >>> "id": "002", >>> "label": "iPad Mini", >>> "status": "Inactive", >>> "platform": "iOS", >>> "model": "IPM005", >>> "actions": URL, >>> } >>> *]* >>> } >>> *]* >> >> >> 3. Retrieve devices count for the given filters. >> >>> >>> *Request:*POST /devicesCount >>> *[* >>> { >>> "*filteringContext*":"connectivityStatus", >>> "*filteringGroups*":*[*"active"*]* >>> }, >>> { >>> "filteringContext":"alerts", >>> "filteringGroups":["high"] >>> } >>> *]* >>> >>> *Response:**[* >>> { >>> "*context*": "deviceCount", >>> "*data*": *[* >>> { >>> "*group*": "totalCount", >>> "*label*": "Total Count", >>> "*count*": 210 >>> }, >>> { >>> "group": "filteredCount", >>> "label": "Filtered Count", >>> "count": 57 >>> } >>> * ]* >>> } >>> *]* >> >> >> Regards, >> >> On Fri, Mar 11, 2016 at 2:02 PM, Grainier Perera <grain...@wso2.com> >> wrote: >> >>> Hi all, >>> >>> I'm in the process of implementing the first phase of IoT Snapshot >>> Dashboard. So far I have managed to create generic bar (both vertical & >>> horizontal), stack charts (with inter gadget communication) and a LeafletJS >>> based OSM map gadget to be used with the IoT Snapshot Dashboard. >>> >>> However, there ain't any API to get required data to populate gadgets. >>> [1] describes the API requirements for the IoT Snapshot Dashboard. >>> Furthermore, as per offline discussion had with DilanA, we decided to use >>> following request/response structure and implement the required APIs. >>> >>> WDYT? >>> >>> i.e. : all security concerns for the given filters. >>> *Request:* >>> >>>> POST /iot-analytics/securityConcerns >>>> { >>>> "filters": [ >>>> { >>>> "filter": "platform", >>>> "selections" : ["Android", "iOS"] >>>> }, >>>> { >>>> "filter": "ownership", >>>> "selections" : ["BYOD"] >>>> } >>>> ], >>>> } >>> >>> >>> *Response:* >>> >>>> { >>>> "status": "success", >>>> "message": null, >>>> "data": { >>>> [ >>>> { >>>> "filter_id":"non-compliant", >>>> "name":"Non Compliant Devices", >>>> "count":12 >>>> }, >>>> { >>>> "filter_id":"unmonitored", >>>> "name":"Unmonitored Devices", >>>> "count":15 >>>> } >>>> ] >>>> }, >>>> } >>> >>> >>> >>> [1] >>> https://docs.google.com/a/wso2.com/spreadsheets/d/1EjGCgMvo8Hgi8HQC9AjHxKVdfYYYMwwQ9Rxugk7lwIE/edit?usp=sharing >>> >>> Regards, >>> -- >>> Grainier Perera >>> Software Engineer >>> Mobile : +94716122384 >>> WSO2 Inc. | http://wso2.com >>> lean.enterprise.middleware >>> >> >> >> >> -- >> Grainier Perera >> Software Engineer >> Mobile : +94716122384 >> WSO2 Inc. | http://wso2.com >> lean.enterprise.middleware >> >> >> >> >> -- >> *Ramindu De Silva* >> Software Engineer >> WSO2 Inc.: http://wso2.com >> lean.enterprise.middleware >> >> email: ramin...@wso2.com <sanj...@wso2.com> >> mob: +94 772339350 >> mob: +94 782731766 >> > > -- /sumedha m: +94 773017743 b : bit.ly/sumedha
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev