Requirements

Plugins must be Node.js modules

Kuzzle loads plugins as Node.js requirable modules.

This means that a plugin directory must contain either:

  • an index.js file

and/or:

  • a valid package.json file. If the plugin's entrypoint is not the index.js file in the plugin's root directory, then the "main" property must be filled

Plugins must expose a manifest.json file

Kuzzle needs a few informations to make your plugin work properly. These informations must be provided in a manifest.json file, in the plugin directory.

The following properties can be defined in this manifest.json file:

  • name (required): Plugin unique identifier. Names can only contain lowercase letters, numbers, hyphens and underscores.
  • kuzzleVersion: a non-empty string describing a semver range, limiting the range of Kuzzle versions supported by this Plugin. If not set, a warning is displayed on the console, and Kuzzle assumes that the Plugin is only compatible with Kuzzle v1.x

Deprecated since Kuzzle 1.5.0

Kuzzle still allows plugins to be loaded without a `manifest.json` file, for backward compatibility reasons, falling back to [the `package.json` file](https://docs.npmjs.com/files/package.json#name) to retrieve a plugin's name. This will change in next major releases of Kuzzle.