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:
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 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:
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 js-plugins/ /opt/deephaven/config/js-plugins/
Plotly + Matplotlib
Here's an example installing the Plotly and Matplotlib JS plugins:
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 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.