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