Many aspects of VerneMQ can be extended using plugins. The standard VerneMQ package comes with several official plugins. You can show the enabled & running plugins via:
vmq-admin plugin show
The command above displays all the enabled plugins together with the hooks they implement:
the exact module and function names (M:F/A) implementing those hooks.
As an example on how to read the table: the vmq_passwd:auth_on_register/5 function is the actual implementation of the auth_on_register hook in the vmq_passwd application plugin.
In addition, you can conclude that the plugin is currently running, as it shows up in the table.
To display information on internal plugins, add the --internal flag. The table below shows you that the generic metadata application and the generic message store are actually internal plugins.
This enables the ACL plugin. Because the vmq_acl plugin is already started the above command won't succeed. In case the plugin sits in an external directory you must also to provide the --path=PathToPlugin.
Disable a plugin
vmq-admin plugin disable --name=vmq_acl
Persisting Plugin Configurations and Starts
To make a plugin start when VerneMQ boots, you need to tell VerneMQ in the main vernemq.conf file.
The general syntax to enable a plugin is to add a line like plugins.pluginname = on. Using the vmq_passwd plugin as an example:
plugins.vmq_passwd = on
If the plugin is external (all your own VerneMQ plugin will be of this category), the path can be specified like this:
plugins.myplugin = on
plugins.myplugin.path = /path/to/plugin
Plugin specific settings can be configured via myplugin.somesetting = value, like:
vmq_passwd.password_file = ./etc/vmq.passwd
Check the vernemq.conf file for additional details and examples.