Skip to main content
Version: Java (Groovy)

Configure JS plugins

The Deephaven server has the ability to work with custom JS plugins that extend the functionality of the server and web client UI. This guide shows you how to install JS plugins and provides examples for two specific plugins, Plotly and Matplotlib.

Quickstart

Installing a JS plugin involves up to 3 steps:

Dockerfile
FROM ghcr.io/deephaven/web-plugin-packager:latest as js-plugins
# 1. Package the NPM deephaven-js-plugin(s)
RUN ./pack-plugins.sh <plugins>

FROM ghcr.io/deephaven/server:latest
# 2. Install the python js-plugin(s) if necessary (some plugins may be JS only)
RUN pip install --no-cache-dir <packages>
# 3. Copy the js-plugins/ directory
COPY --from=js-plugins js-plugins/ /opt/deephaven/config/js-plugins/
docker build -t my-deephaven-image .
docker run --rm -p 10000:10000 my-deephaven-image

The workflow above is shown in relationship to the Docker application, but the general requirements are the same if one is deploying the production application. See pack-plugins.sh for more information on the JS plugin packaging logic.

Configuration

The JS plugins are automatically sourced from the <configDir>/js-plugins/ directory if present. In the case of the Docker example above, /opt/deephaven/config/ is the configuration directory. See here for information about the configuration directory for other setups.

The JS plugins directory can also be set explicitly through the configuration property deephaven.jsPlugins.resourceBase.

Examples

Plotly

Here's an example installing the Plotly JS plugin:

Dockerfile
FROM ghcr.io/deephaven/web-plugin-packager:latest as js-plugins
RUN ./pack-plugins.sh @deephaven/js-plugin-plotly

FROM ghcr.io/deephaven/server:latest
RUN pip install --no-cache-dir deephaven-plugin-plotly
COPY --from=js-plugins js-plugins/ /opt/deephaven/config/js-plugins/

Plotly + Matplotlib

Here's an example installing the Plotly and Matplotlib JS plugins:

Dockerfile
FROM ghcr.io/deephaven/web-plugin-packager:latest as js-plugins
RUN ./pack-plugins.sh @deephaven/js-plugin-plotly @deephaven/js-plugin-matplotlib

FROM ghcr.io/deephaven/server:latest
RUN pip install --no-cache-dir deephaven-plugin-plotly deephaven-plugin-matplotlib
COPY --from=js-plugins js-plugins/ /opt/deephaven/config/js-plugins/

Available JS Plugins

Deephaven maintains a set of JS plugins in our GitHub repository deephaven/deephaven-js-plugins.

These plugins have the keyword deephaven-js-plugin on NPM, and can easily be searched.

Third-parties are welcome to develop their own JS plugins, or can reach out to suggest new plugins that Deephaven should develop.