For dashboard, I think storing widget data in a separate location would be
better.

On Mon, Jan 9, 2017 at 3:23 PM, Chandana Napagoda <chand...@wso2.com> wrote:

> Hi Sajith,
>
> What is our recommendation on data which can be stored in the
> component.yaml file? As an example, widget related information can be kept
> in the component.yaml or do we need to have separate files for this?
>
> Regards,
> Chandana
>
> On Fri, Jan 6, 2017 at 3:23 PM, SajithAR Ariyarathna <sajit...@wso2.com>
> wrote:
>
>> Hi All,
>>
>> We are hoping to do $subject.
>>
>> *UUF Component:*
>>
>> Currently a UUF component has two configuration files, 'component.yaml'
>> and 'config.yaml'. 'component.yaml' contains APIs entries and bindings (see
>> mail thread [1] for more details); 'config.yaml' contains business-logic
>> related configurations e.g. page size, display name (see sample [2]). What
>> we are hoping to do is to combine these two files into a one,
>> 'component.yaml' file in order to improve the developer experience. So the
>> new 'component.yaml' file will look like following.
>>
>> # Classes of Microservices that implements UI specific REST APIs.
>> # example entry:
>> #   - className: 
>> "org.wso2.carbon.uuf.sample.pets-store.PetsStoreMicroservice"
>> #     uri: "/pets/"
>> apis:
>>   - className: "org.wso2.carbon.uuf.sample.api.HelloService"
>>     uri: "/hello-service/"
>>
>> # Binding fragments into zones.
>> # Modes:
>> #   prepend - pushes the specified fragments into the beginning of the 
>> existing pushed fragments of the zone
>> #   append - pushes the specified fragments into the end of the existing 
>> pushed fragments of the zone
>> #   overwrite - removes the existing pushed fragments of the zone and 
>> replace with specified fragments
>> # Please note that the configured order of the fragments in here, will be 
>> honored when filling the zone
>> bindings:
>>   - zoneName: "org.wso2.carbon.uuf.sample.foundation.footer"
>>     mode: "append"
>>     fragments:
>>       - "org.wso2.carbon.uuf.sample.foundation.footer"
>>   - zoneName: "org.wso2.carbon.uuf.sample.foundation.menubar"
>>     mode: "append"
>>     fragments:
>>       - "org.wso2.carbon.uuf.sample.foundation.secured-menubar"
>>   - zoneName: "org.wso2.carbon.uuf.sample.foundation.usermenu"
>>     mode: "append"
>>     fragments:
>>       - "org.wso2.carbon.uuf.sample.simple-auth.usermenu"
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *# Business logic related configurations.# In Handlebars templates, these 
>> configurations can be access using {{@config}} variable.# e.g.  
>> {{@config.appName}} will output "Pets Store"# In server-side JS 
>> 'onRequest(env)' function, these configurations cab access via 'env.config' 
>> variable.# e.g.  env.config['appName'] will give "Pets Store" valueconfig:  
>> # No of items should be displayed in a page.  pageSize: 10  # User will be 
>> redirected to following URI after logging-out successfully.  
>> loginRedirectUri: "/pets"*
>>
>>
>> *UUF App:*
>>
>> Currently an UUF app has two configuration files, 'component.yaml' and
>> 'config.yaml'. 'component.yaml' is similar to the one we have in a
>> component and it contains APIs entries and bindings. In the 'config.yaml',
>> it has some business-logic related configurations as well as some other
>> configurations that affects to the whole app and consumes by the UUF Core
>> e.g. theme name, error page URLs (see sample [3]). What we want to do is to
>> separate those app related configurations from business-logic related
>> configurations.
>>
>> Introducing 'app.yaml' helps achieve this goal. It contains app related
>> configurations only. Sample 'app.yaml' will look like following.
>>
>> # Default theme for this app.
>> theme : "org.wso2.carbon.uuf.sample.theme.default"
>>
>> # Menus in this app.
>> menus :
>>   - name: "main"
>>     items:
>>       - text: "Home"
>>         link: "#"
>>         icon: "fw-home"
>>       - text: "Pets"
>>         link: ""
>>         submenus:
>>           - text: "See all our amazing pets"
>>             link: "/pets"
>>           - text: "Add a new pets"
>>             link: "/pets/new"
>>             icon: "fw fw-add"
>>           - text: "Pet of the month"
>>             link: "/pets/snowball"
>>           - text: "Order new pets"
>>             link: "/pets/order"
>>
>> # Error pages for this app.
>> errorPages:
>>   404: "/foundation/error/404"
>>   default: "/foundation/error/default"
>>
>> # URI of the login page in this app.
>> loginPageUri: "/simple-auth/login"
>>
>> # Security related configurations for this app.
>> security:
>>   csrfPatterns:
>>     accept: []
>>     reject: []
>>   xssPatterns:
>>     accept: []
>>     reject: []
>>   responseHeaders: null
>>
>> An app can have a 'component.yaml' as well (since app is the root
>> component). In that 'component.yaml' webapp developer can define APIs,
>> bindings, and business-logic related configurations for the app. Sample
>> 'component.yaml' of a component will look like following.
>>
>> # Classes of Microservices that implements UI specific REST APIs.
>> # example entry:
>> #   - className: 
>> "org.wso2.carbon.uuf.sample.pets-store.PetsStoreMicroservice"
>> #     uri: "/pets/"
>> apis:
>>   - className: "org.wso2.carbon.uuf.sample.api.HelloService"
>>     uri: "/hello-service/"
>>
>> # Binding fragments into zones.
>> # Modes:
>> #   prepend - pushes the specified fragments into the beginning of the 
>> existing pushed fragments of the zone
>> #   append - pushes the specified fragments into the end of the existing 
>> pushed fragments of the zone
>> #   overwrite - removes the existing pushed fragments of the zone and 
>> replace with specified fragments
>> # Please note that the configured order of the fragments in here, will be 
>> honored when filling the zone
>> bindings:
>>   - zoneName: "org.wso2.carbon.uuf.sample.foundation.footer"
>>     mode: "append"
>>     fragments:
>>       - "org.wso2.carbon.uuf.sample.foundation.footer"
>>   - zoneName: "org.wso2.carbon.uuf.sample.foundation.menubar"
>>     mode: "append"
>>     fragments:
>>       - "org.wso2.carbon.uuf.sample.foundation.secured-menubar"
>>   - zoneName: "org.wso2.carbon.uuf.sample.foundation.usermenu"
>>     mode: "append"
>>     fragments:
>>       - "org.wso2.carbon.uuf.sample.simple-auth.usermenu"
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *# Business logic related configurations.# In Handlebars templates, these 
>> configurations can be access using {{@config}} variable.# e.g.  
>> {{@config.appName}} will output "Pets Store"# In server-side JS 
>> 'onRequest(env)' function, these configurations cab access via 'env.config' 
>> variable.# e.g.  env.config['appName'] will give "Pets Store" valueconfig:  
>> appName: "Pet Store"  # Overrrding 'pageSize' configuration from a 
>> dependency component.  pageSize: 10  # Overriding 'loginRedirectUri' 
>> configuration from 'simple-auth' component.  loginRedirectUri: "/pets"*
>>
>>
>> So in summery, a component has a 'component.yaml' and an app has an
>> 'app.yaml' and a 'component.yaml'. WDYT?
>>
>> [1] [UUF] Changing 'bindings.yaml' to 'component.yaml' in an UUF Component
>> [2] https://github.com/wso2/carbon-uuf/blob/v1.0.0-m8/sample
>> s/components/org.wso2.carbon.uuf.sample.foundation/src/main/config.yaml
>> [3] https://github.com/wso2/carbon-uuf/blob/v1.0.0-m8/sample
>> s/apps/org.wso2.carbon.uuf.sample.pets-store/src/main/config.yaml
>>
>> Thanks.
>> --
>> Sajith Janaprasad Ariyarathna
>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>> <https://wso2.com/signature>
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> *Chandana Napagoda*
> Associate Technical Lead
> WSO2 Inc. - http://wso2.org
>
> *Email  :  chand...@wso2.com <chand...@wso2.com>**Mobile : +94718169299
> <+94%2071%20816%209299>*
>
> *Blog  :    http://cnapagoda.blogspot.com <http://cnapagoda.blogspot.com>
> | http://chandana.napagoda.com <http://chandana.napagoda.com>*
>
> *Linkedin : http://www.linkedin.com/in/chandananapagoda
> <http://www.linkedin.com/in/chandananapagoda>*
>
>


-- 
Sajith Janaprasad Ariyarathna
Software Engineer; WSO2, Inc.;  http://wso2.com/
<https://wso2.com/signature>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to