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

Reply via email to