Kepler WebView

Install

Prerequisites

  • ant 1.82 or newer

  • git

  • java 8 or newer

  • maven 3.03 or newer

  • svn 1.6 or newer

First, install Kepler development trunk from svn:

mkdir kepler.modules
cd kepler.modules
svn co https://code.kepler-project.org/code/kepler/trunk/modules/build-area
cd build-area
ant change-to -Dsuite=reporting
ant compile

WebView is part of the reporting suite, so if you install this suite, you can run WebView. You can also add WebView to another suite by adding the following to modules.txt:

web-view https://github.com/Kepler-Project/web-view.git

Configuration

The configuration file is in web-view/resources/configurations/configuration.xml. This section describes the configuration parameters in this file.

Configuration Parameters

daemon

If true, then Kepler does not launch GUI editor but waits for REST and websocket requests. Otherwise (false), Kepler starts normally.

port

Port to listen on for requsts.

startServer

true or false: if WebView should be started.

Default config file

  1<?xml version="1.0"?>
  2<config>
  3
  4    <server>
  5        <startServer>false</startServer>
  6        <daemon>false</daemon>
  7        <port>9122</port>
  8        <rootDir></rootDir>
  9        <logPath></logPath>
 10        <instances>1</instances>
 11        <appendIndexHtml>true</appendIndexHtml>
 12        <workerThreads>20</workerThreads>
 13        <allowWorkflowDownloads>false</allowWorkflowDownloads>
 14        <metadataFile></metadataFile>
 15         
 16        <!-- session timeout if not accessed in milliseconds -->
 17        <sessionTimeout>86400000</sessionTimeout>
 18        
 19        <!-- workflow execution timeout -->
 20        <workflowTimeout>600000</workflowTimeout>
 21        
 22        <apps>
 23            <app>
 24                <name>echo</name>
 25                <class>org.kepler.webview.server.app.Echo</class>
 26            </app>
 27            <app>
 28                <name>GetURL</name>
 29                <class>org.kepler.webview.server.app.GetURL</class>
 30                <!--
 31                <allowed>
 32                    <site>data.neonscience.org</site>
 33                </allowed>
 34                -->
 35            </app>
 36            <app>
 37                <name>CreateRO</name>
 38                <class>org.kepler.webview.server.app.ro.CreateRO</class>
 39            </app>
 40        </apps>
 41
 42        <proxies>
 43            <!--
 44            <proxy>
 45                <path>/path</path>
 46                <dest>wss://host:port</dest>
 47                <apikey>12345</apikey>
 48            </proxy>
 49            -->
 50        </proxies>
 51
 52        <ssl>
 53            <enable>false</enable>
 54            <port>8443</port>
 55            <key></key>
 56            <cert></cert>
 57
 58            <redirectHttp>
 59                <enable>false</enable>
 60                <status>302</status>
 61                <hostname>localhost</hostname>
 62                <port>8443</port>
 63            </redirectHttp>
 64        </ssl>
 65
 66        <auth>
 67            <type>none</type>
 68            <!--<type>simple</type>-->
 69            <!--<type>drupal</type>-->
 70
 71            <entity>
 72                <user>username</user>
 73                <password>password</password>
 74                <group>group name</group>
 75            </entity>
 76
 77            <!--
 78            <drupal>
 79                <host>drupal host</host>
 80                <service>path name of service</service>
 81                <role>user role</role>
 82                <groupField>name of field containing group name</groupField>
 83                <fullNameField>name of field containing user's full name</fullNameField>
 84            </drupal>
 85            -->
 86        </auth>
 87
 88        <cors>
 89            <enable>false</enable>
 90            <allowOrigin>*</allowOrigin>
 91        </cors>
 92
 93        <!-- set of directories that can be indexed. -->
 94        <directoryIndex>
 95            <!--<dir></dir>-->
 96            <!--<dir></dir>-->
 97            <!--<dir></dir>-->
 98        </directoryIndex>
 99
100        <tableOfContents>
101            <enable>true</enable>
102            <pathRegex>^(?:/wf){0,1}/*$</pathRegex>
103            <!-- TODO <openWorkflows>true</openWorkflows> -->
104            <!-- TODO <recentWorkflows>true</recentWorkflows> -->
105            <!-- TODO <demoWorkflows>true</demoWorkflows> -->
106        </tableOfContents>
107
108        <preload>
109            <!--<model>Foo.kar</model>-->
110        </preload>
111
112        <roHub>
113            <authToken></authToken>
114            <uri>http://sandbox.rohub.org/rodl/ROs/</uri>
115        </roHub>
116
117        <cluster>
118            <type>none</type>
119            <!--<type>hazelcast</type>-->
120            <deployInKubernetes>false</deployInKubernetes>
121            <hazelcastDiscoveryK8sDnsService></hazelcastDiscoveryK8sDnsService>
122        </cluster>
123    </server>
124
125</config>

Running

WebView can be run from the command line, e.g,:

./kepler.sh -wvport 10151 -wvd

The command line arguments are:

-wvport         Web-view server port number. (default = 9122)
-wvroot         Web-view server root directory. (default = web-view/resources/html)
-wvnum          Number of web-view server instances. (default = 1)
-wv             Start web-view server.
-wvd            Run web-view server as daemon.

REST API