plugin.json file describes the plugin. It’s a JSON file using the UTF-8 encoding.
The name of the plugin. This must match the plugin definition exactly, or the plugin will not be loaded.
It can only use
The author of the plugin. This will be displayed to the user on installation or if there is an error in the plugin.
Version number of the plugin, as an integer. When displayed to the user, it will be divided by 100. For example,
120 will be displayed as
The name of the plugin as displayed to the user.
A longer description of the plugin, for display to the user.
An optional secret used for generating the license key required when installing this application. Use the Plugin Tool to generate license keys.
If this key is omitted, the plugin will be able to be installed without supplying a license key.
The minimum version of the Haplo API required by this plugin.
An array of plugin names of the plugins on which this plugin depends. These plugins will be installed automatically when this plugin is installed, along with their dependencies.
js/ directory name.
An array of the base URLs that this plugin will respond to.
URLs must begin with
/api/, and declare only one level below that, for example,
By default, plugins will not be asked to respond to any request unless the user has logged in, or the request is made by software using an API key to authenticate (see Authentication). Set this to
true to allow anonymous requests as well.
In either case, the plugin should do it’s own authorisation checks, but the default of not allowing anonymous requests minimises the effects of a mistake.
An array of the privileges this plugin requires. The use of certain APIs is restricted to plugins which explicitly request the required privileges. These plugins will have a more careful code review, and appropriate warnings displayed on installation of the plugin.
Privileges available in the current API version are:
||Use of the relational database API.|
||Any API which sends an email.|
This key should be omitted if the plugin does not use any privileged APIs.
An integer priority value to control the load order of installed plugins. If it is not included, the priority will be a large number to load the plugin after plugins which do specify a
loadPriority. Numbers in the range 1000 to 10000 are recommended.
Only specify this value if you absolutely need to control the load order. In general, the provided Inter-plugin communication should make the use of
A dictionary of local variable names to properties of your plugin. These are added to the wrapper function generated when loading each file.