Marvin JS Web Services is a small, simple web service application embedding Marvin JS and providing tools for transforming, exporting, and converting chemical structures. It contains the latest webjar release of Marvin JS.
This documentation describes installation, administration and usage of Marvin JS Web Services.
The operating system dependent mjs-webservice (mjsws) installers (.exe
, .sh
, .deb
, .rpm
, .dmg
) must be run or the independent installers must be extracted (.zip
, .tar.gz
).
Required license: Marvin JS license
Put the Marvin JS license file under <userhome>/chemaxon/licenses/
(on Windows) or <userhome>/.chemaxon/licenses/
(on Linux) folder or apply any of the options listed in Installing to Servers page.
Configuration file application.properties
is available under the installed mjs-webservice/config/
folder.
In application.properties
file you can set the followings:
Option name | Default value |
---|---|
server.port | 8080 |
logging.file.name | ./logs/mjs-webservice.log |
spring.application.name | mjs-webservice |
For more settings possibilities, see the spring documentation page.
By default it is allowed to access the web services from every origin. If you want to limit which JavaScript applications can access the web services, configure the following default values in application.properties
accordingly:
endpoints.cors.allowed-headers=*
endpoints.cors.allowed-methods=*
endpoints.cors.allowed-origin-patterns=*
endpoints.cors.max-age=1800
You can set a list of values by separating the individual values with a comma. For more information, see CORS.
The following setting accepts same-origin requests only.
endpoints.cors.allowed-headers=
endpoints.cors.allowed-methods=
endpoints.cors.allowed-origin-patterns=
To enable cross origin calls from specific domains only, like origin1.com and origin2.example.com:
endpoints.cors.allowed-headers=*
endpoints.cors.allowed-methods=*
endpoints.cors.allowed-origin-patterns=http://origin1.com, http://origin2.example.com
endpoints.cors.max-age=1800
By default, the REST endpoints use plain HTTP as a transport. You can switch to HTTPS easily, by adding a certificate to your configuration. You can either create a new file, that contains the SSL configuration, for example, skipper.yml, or amend your application.properties
file with the same information.
{info} You can reference the SSL configuration file as well as the original application.properties file together by using the following parameter: --spring.config.location=skipper.yml,application.properties
server:
port: 8443 (1)
ssl:
key-alias: yourKeyAlias (2)
key-store: path/to/keystore (3)
key-store-password: yourKeyStorePassword (4)
key-password: yourKeyPassword (5)
trust-store: path/to/trust-store (6)
trust-store-password: yourTrustStorePassword (7)
Alternatively, the same information can be appended to the application.properties
configuration file:
server.port=8443 (1)
server.ssl.key-alias=yourKeyAlias (2)
server.ssl.key-store=path/to/keystore (3)
server.ssl.key-store-password=yourKeyStorePassword (4)
server.ssl.key-password=yourKeyPassword (5)
server.ssl.trust-store=path/to/trust-store (6)
server.ssl.trust-store-password=yourTrustStorePassword (7)
classpath:path/to/keystore
.classpath:path/to/trust-store
.For more details, see spring configuration-security.
Start the service application by either running run-mjs-webservice.exe or run-mjs-webservice.sh.
The service application (mjs-webservice.exe or mjs-webservice.sh) can also be set as a service, and started or stopped by the operating system.
For installing as a service in Windows, run mjs-webservice/mjs-webservice.exe --install
.
Open Marvin JS on <serverhost>:<port>
. Default: localhost:8080
.
See below how to work with the provided web service functions.
The red labeled icons below on the top toolbar of Marvin JS serve for executing structure transformations.
Click on the WebServices API icon on the right bottom corner of Marvin JS.
The opening Marvin JS Web Services page contains API examples and a link to the API documentation.
We created an example page to help you get started with Marvin JS in a container with its backend services. For more information, see the example page.