Configure JS plugins
The Deephaven server supports 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 an example using the Keycloak authentication plugin, which is JS-only and works with server-slim.
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
Keycloak authentication
Here's an example installing the Keycloak authentication JS plugin:
Note
The Keycloak plugin handles only the client-side authentication UI. Using it end-to-end also requires a running Keycloak server and server-side authentication configuration in Deephaven.
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.