+1 for this format.

Why are we removing lastUpdatedTime? isn't that important meta for an admin?

Are we not yet supporting Autherization for dashboard ( who owns, who can
edit or who can view and so on)? I thought those are parts of the dashboard
json (not the most secure place but) ...

On Wed, Aug 30, 2017 at 5:16 PM, Nisala Nanayakkara <[email protected]> wrote:

> Hi all,
>
> We had an off-line discussion regarding this with Suho,Tanya,
> SajithR,Lasantha, SajithAR and came up with following structure for
> dashboard JSON,
>
>> {
>>     "id": "2",
>>     "url": "sampledashboard",
>>     "name": "Sample Dashboard",
>>     "description": "Lorem ipsum dolor sit amet DAS",
>>     "landingPage": "page0",
>>     "parentId": "1",
>>     "content": {
>>         "pages": [
>>             {
>>                 "id": "page0",
>>                 "name": "Page 0",
>>                 "content": []
>>             },
>>             {
>>                 "id": "page1",
>>                 "name": "Page 1",
>>                 "content": [],
>>                 "pages": [
>>                     {
>>                         "id": "page2",
>>                         "name": "Page 2",
>>                         "content": [],
>>                         "pages": [
>>                             {
>>                                 "id": "page3",
>>                                 "name": "Page 3",
>>                                 "content": []
>>                             }
>>                         ]
>>                     },
>>                     {
>>                         "id": "page4",
>>                         "name": "Page 4",
>>                         "content": []
>>                     }
>>                 ]
>>             }
>>         ]
>>     }
>> }
>>
> So we keep the pageIds and its content with their hierarchy as in the
> above sample dashboard JSON. There are several reasons to follow
> above-mentioned approach,
>
>    - If we follow this we do not need to keep separate mapping between
>    pageIds and its attributes
>    - Convenience in processing the dashboard JSON, when there is a
>    modification or deletion in the pages.
>
> Moreover, we are going to remove additional attributes which were
> introduced in the UUF based dashboard component(version, lastUpdatedTime
> and etc) as Tanya mentioned.
>
>
> Thanks,
> Nisala
>
> On Wed, Aug 30, 2017 at 8:51 AM, Tanya Madurapperuma <[email protected]>
> wrote:
>
>> Hi Nisala,
>>
>> First of all I think this mail should go to architecture@ :)
>>
>> On Mon, Aug 28, 2017 at 11:26 PM, Nisala Nanayakkara <[email protected]>
>> wrote:
>>
>>> Hi all,
>>>
>>> We are in the process of re-writing dashboard component using React.
>>> Currently we have dashboard view component with following features,
>>>
>>>    - Dashboard listing (will retrieve the dashboard from the DB and
>>>    list down)
>>>    - Backend API support for dashboard CRUD activities.
>>>    - Dashboard view support (This will retrieve the selected dashboard
>>>    from DB and render using Golden Layout)
>>>    - Multiple pages support for dashboards (This will introduce
>>>    multiple pages at the same level, We need to support hierarchical page
>>>    support )
>>>    - Internal routing between dashboard listing and dashboard view
>>>
>>> Since we are using the golden layout for layouting, we keep the content
>>> of the each page with respect to page resource url. When we are going to
>>> implement the hierarchical pages support, we are going to process these
>>> page urls and display the hierarchical menu according these page urls.
>>> Please find the sample dashboard json given below,
>>>
>>>>     {
>>>>         "id": "1",
>>>>         "url": "sampledashboard",
>>>>         "name": "Sample Dashboard",
>>>>         "version": "2.0.0",
>>>
>>> As we don't have versioning support for dashboards any reason for
>> maintaining version info?
>>
>>>
>>>>         "description": "Lorem ipsum dolor sit amet DAS",
>>>>         "owner": "admin",
>>>>         "lastUpdatedBy": "admin",
>>>>         "createdTime": 1502820091111,
>>>>         "lastUpdatedTime": 1502820091112,
>>>
>>> Could you also explain the usage of lastUpdatedBy, createdTime and
>> lastUpdateTime fields?
>>
>>>
>>>>         "isShared": false,
>>>
>>> I don't think we need isShared any more since we don't have a tenancy
>> concept now. We used this attribute earlier to indicate whether a
>> particular dashboard which is in super tenant is shared between other
>> tenants.
>>
>>>
>>>>         "parentId": "1",
>>>>         "content": [
>>>>             {
>>>>                 "page0": {
>>>>                     *content of page0*
>>>>                 },
>>>>                 "page1": {
>>>>                     *content of page1*
>>>>                 }
>>>>             }
>>>>         ]
>>>>     }
>>>
>>>
>>>
>>> So we do not keep any mapping between pages and its hierarchy as in the
>>> previous versions of the dashboard component. But we may need to maintain
>>> some additional attributes such as Page title, isHidden and etc wrt page
>>> URL. In that case, I think it is better to maintain a separate mapping
>>> between these attributes and page URLs as in the previous dashboard
>>> component. Please find the sample dashboard json given below.
>>>
>>>> {
>>>>     "id": "1",
>>>>     "url": "sampledashboard",
>>>>     "name": "Sample Dashboard",
>>>>     "version": "2.0.0",
>>>>     "description": "Lorem ipsum dolor sit amet DAS",
>>>>     "owner": "admin",
>>>>     "lastUpdatedBy": "admin",
>>>>     "createdTime": 1502820091111,
>>>>     "lastUpdatedTime": 1502820091112,
>>>>     "isShared": false,
>>>>     "parentId": "1",
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> *    "menu": {        "page0": {            "ishidden": false,
>>>>     "title": "Page 0"        },        "page1": {            "ishidden":
>>>> false,            "title": "Page 1"        }    }*,
>>>>     "content": [
>>>>         {
>>>>             "page0": {},
>>>>             "page1": {}
>>>>         }
>>>>     ]
>>>> }
>>>>
>>> I am -1 to have separate menu section since it duplicates certain
>> information and also we don't have lot of meta info to go for a separation.
>> Can't we have page level meta under the page resource url as below?
>>
>>
>>    - "content":[
>>       1. {
>>          - "page0":{
>>             - "ishidden":false,
>>             - "title":"Page 0",
>>             - "content":[
>>                ]
>>          },
>>          - "page0/page1":{
>>             - "ishidden":false,
>>             - "title":"Page 1",
>>             - "content":[
>>                ]
>>          }
>>       }
>>    ]
>>
>>
>> WDYT?
>>
>> Thanks,
>> Tanya
>>
>>>
>>>> Because It will give a clear separation between dashboard content and
>>> the pages’ menu attributes. WDYT?
>>>
>>> Thanks,
>>> Nisala
>>>
>>> --
>>> *Nisala Niroshana Nanayakkara,*
>>> Software Engineer
>>> Mobile | +94 717600022
>>> WSO2 Inc | http://wso2.com/
>>>
>>
>>
>>
>> --
>> Tanya Madurapperuma
>>
>> Associate Technical Lead,
>> WSO2 Inc. : wso2.com
>> Mobile : +94718184439 <+94%2071%20818%204439>
>> Blog : http://tanyamadurapperuma.blogspot.com
>>
>
>
>
> --
> *Nisala Niroshana Nanayakkara,*
> Software Engineer
> Mobile | +94 717600022
> WSO2 Inc | http://wso2.com/
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Nipuna Marcus
*Senior Software Engineer*
WSO2 Inc.
http://wso2.com/ - "lean . enterprise . middleware"
Mobile : +94 (0) 713 667906
[email protected]
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to