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