Hi Jo, On Tue, Sep 12, 2017 at 10:59 AM, Joseph Fonseka <[email protected]> wrote:
> Hi Sajith > > +1 For the server, would like to propose adding gzip support as well. > > Does the web-server enforce the web-app structure ? If so IMHO it would be > best not to do that. > > Initial thought was to enforce the directory structure for any web app. But I understand that for web apps like the Composer, the whole directory structure won't be necessary. So we can make configuration.yaml, extensions, i18n, and themes directories optional. Thanks. > Thanks & Regards > Jo > > > > > > > On Tue, Sep 12, 2017 at 10:13 AM, Chanaka Jayasena <[email protected]> > wrote: > >> Hi Sajith, >> >> +1 for the web server. We will be able to replace the MS4J service inside >> carbon-apimgt with this one when it's available. >> >> Following are some of my suggestions and thoughts. >> >> Can we put the public/images/logo.png and public/css/styles.css in the >> default theme ? >> >> I believe the extensions are stand alone js files. In APIM case it will >> be useful to add a new page to the store app. But we will have to write the >> react app client side routing to pick the extension as a new route. >> >> >> thanks, >> Chanaka >> >> On Mon, Sep 11, 2017 at 3:35 PM, SajithAR Ariyarathna <[email protected]> >> wrote: >> >>> Hi All, >>> >>> We are in the process of developing $subject. Tentatively this webapp >>> server is named as "Carbon UI Server". >>> >>> # Major goals of this webapp server are following: >>> >>> - Enforcing security measures. >>> - Setting proper cache headers >>> - Setting recommended security related HTTP headers >>> - Protection against file system navigation through URLs >>> - Defining a structure for webapps. >>> - Requirement is to properly define places to put page(s), >>> themes, UI extensions, and internalization language files in the >>> webapp. >>> - Proper routeing for SPA apps. >>> - For SPA apps, index.html should be served for any request for a >>> page. >>> >>> # Proposing directory structure: >>> >>> - Webapps will be placed in <carbon_home>/wso2/<runtime>/d >>> eployments/reactapps/ >>> >>> - Structure of a webapp: >>> >>> <app_name> >>> ├── configuration.yaml >>> │ >>> ├── extensions >>> │ ├── widgets >>> │ │ ├── line-chart/ >>> │ │ ├── bar-chart/ >>> │ │ └── calendar/ >>> │ │ ├── bundle.js >>> │ │ ├── styles.css >>> │ │ └── widget.json >>> │ │ >>> │ └── device-types >>> │ ├── andoid/ >>> │ ├── ios/ >>> │ └── ardino/ >>> │ └── ports.json >>> ├── i18n >>> │ ├── fr.properties >>> │ └── en.properties >>> │ >>> ├── pages >>> │ └── index.html >>> │ >>> ├── public >>> │ ├── images >>> │ │ └── logo.png >>> │ ├── css >>> │ │ └── styles.css >>> │ └── js >>> │ └── bundle.js >>> │ >>> └── themes >>> ├── dark/ >>> └── light >>> ├── js >>> │ └── some.js >>> └── css >>> └── styles.css >>> >>> >>> - configuration.yaml will contain configurations of the web app (e.g. >>> app context path, custom security headers). These configurations should be >>> able to add/override through the deployment.yaml file. >>> >>> - extensions directory contains UI extensions. There can be multiple >>> types of extensions and they are categorized accordingly into >>> sub-directories inside the extensions directory. Each extension should >>> be wrapped with a directory (the name of the directory will be the name of >>> the extension), and placed inside the relevant type. Thus, the fully >>> qualified name of an extension will be <type>:<name> (e.g. >>> widgets:line-chart) >>> >>> - i18n directory will bear the internalization language files. >>> >>> - public directory contains any client-side resources of the app. >>> >>> - themes directory contains the themes of the app. Each theme should be >>> put inside a sub-directory. >>> >>> >>> # URL patterns: >>> >>> - Pages >>> - <app_context_path>/path/to/page (e.g. >>> https://localhost:9292/pets-store/home >>> <https://localhost:9292/pets-store/home>) >>> - Resources of the app >>> - <app_context_path>/public/app/<path-relative-to-public-directory> >>> (e.g. https://localhost:9292/pets-store/public/app/images/logo.png >>> ) >>> - Resources of an extension >>> - >>> <app_context_path>/public/extensions/<type>/<name>/<path-relative-to-extension-directory> >>> (e.g. https://localhost:9292/pets-store/public/extensions/widgets/ >>> calendar/styles.css) >>> - Resources of a theme >>> - >>> <app_context_path>/public/themes/<name>/<path-relative-to-theme-directory> >>> (e.g. https://localhost:9292/pets-store/public/themes/light/css/st >>> yles.css) >>> >>> >>> WDYT? >>> >>> Thanks. >>> -- >>> Sajith Janaprasad Ariyarathna >>> Senior Software Engineer; WSO2, Inc.; http://wso2.com/ >>> <https://wso2.com/signature> >>> >> >> >> >> -- >> Chanaka Jayasena >> Associate Tech Lead, >> email: [email protected]; cell: +94 77 4464006 <+94%2077%20446%204006> >> blog: http://chanaka3d.blogspot.com >> > > > > -- > > -- > *Joseph Fonseka* > WSO2 Inc.; http://wso2.com > lean.enterprise.middleware > > mobile: +94 772 512 430 > skype: jpfonseka > > * <http://lk.linkedin.com/in/rumeshbandara>* > > -- Sajith Janaprasad Ariyarathna Senior Software Engineer; WSO2, Inc.; http://wso2.com/ <https://wso2.com/signature>
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
