Plugins#
Plugins allow a developer to create an independent page in Arches that is accessible from the main navigation menu. For example, you may need a customized way of visualizing your resource data. A plugin would enable you to design such an interface. Plugins, like widgets and card components rely only on front-end code. Ajax queries, generally calls to the API, must be used to access any server side data.
Registering your Plugin#
To register your Plugin, you’ll need a JSON configuration file looking a lot like this sample:
{
"pluginid": "b122ede7-24a6-4fc5-a3cc-f95bfa28b1cf",
"name": "Sample Plugin",
"icon": "fa fa-share-alt",
"component": "views/components/plugins/sample-plugin",
"componentname": "sample-plugin",
"config": {},
"slug": "sample-plugin",
"sortorder": 0
}
- pluginid:
Optional A UUID4 for your Plugin. Feel free to generate one in advance if that fits your workflow; if not, Arches will generate one for you and print it to STDOUT when you register the Plugin.
- name:
Required The name of your new Plugin, visible when a user hovers over the main navigation menu
- icon:
Required The icon visible in the main navigation menu.
- component:
Required The path to the component view you have developed. Example:
views/components/plugins/sample-plugin
- componentname:
Required Set this to the last part of
component
above.- config:
Required You can provide user-defined default configuration here. Make it a JSON dictionary of keys and values. An empty dictionary is acceptable.
- slug:
Required The string that will be used in the url to access your plugin
- sortorder:
Required The order in which your plugin will be listed if there are multiple plugins
Plugin Commands#
To register your Plugin, use this command:
python manage.py plugin register --source /Documents/projects/mynewproject/mynewproject/plugins/sample-plugin.json
The command will confirm your Plugin has been registered, and you can also see it with:
python manage.py plugin list
If you make an update to your Plugin, you can load the changes to Arches with:
python manage.py plugin update --source /Documents/projects/mynewproject/mynewproject/plugins/sample-plugin.json