Skip to main content
Version: Python

How to configure JS plug-ins

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

Quickstart

Installing a JS plug-in 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 native application. See pack-plugins.sh for more information on the JS plugin packaging logic.

Configuration

The JS plug-ins 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 config-directory for information about the configuration directory for other setups.

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

Examples

Plotly

Here's an example installing the Plotly JS plug-in:

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 plug-ins:

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 Plug-ins

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 plug-ins, or can reach out to suggest new plugins that Deephaven should develop.