Configure JS plugins

The Deephaven server supports custom JS plugins that extend the functionality of the server and web client UI. server:latest ships with several plugins pre-bundled, including Matplotlib, Plotly Express, and the Deephaven UI. This guide shows how to install a plugin that isn't included in the base image, using Plotly (basic) as the example.

Quickstart

Installing a JS plugin involves up to 3 steps:

The workflow above applies to the Docker application, but the general requirements are the same when 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. The server looks for manifest.json in that directory to discover plugins — this file is generated automatically by pack-plugins.sh. See configuration directory 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. This is the basic Plotly plugin, which enables rendering of raw plotly.graph_objects.Figure objects — distinct from deephaven-plugin-plotly-express, which is pre-bundled in server:latest:

Available JS plugins

Deephaven maintains a set of JS plugins in our GitHub repository deephaven/deephaven-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.