.. _webplugins: Webgui Plugins ============== Cve-Search has build in support for (custom) plugin development. Cve-Search uses in turn a Flask plugin called "Flask-Plugins" to facilitate the custom creation of plugins. Several events have been build into the templates of Cve-Search where custom plugins can listen for and attach content if needed. For a more detailed explanation of the possibilities of the Flask-Plugins library please consult `the documentation `_. General remarks ############### At this moment there are no 'out of the box' (besides a 'hello world' plugin) plugins that can be used; the old plugin repository (``_) is no longer maintained and plugins described / posted there will no longer work with the current version of Cve-Search. Newly developed plugins can be forwarded to the Cve-Search codebase via a PR; we will make them part of the main code-base of Cve-Search and no longer reside to a separate repository. Plugin location ############### The Flask-Plugins documentation described how a plugin needs to be structured (basically it follows the guidelines for a flask application); and once that is done, plugins should be stored in the web/plugins folder and after the webserver is restarted it will be visible to Cve-Search. In the admin section of Cve-Search (/admin) a new widget is created where all the discovered plugins are displayed. Within that widget plugins can be enabled or disabled. **Bear in mind that every action (enable/disable/adding or removing new plugin) will need a restart of the webserver** Supported events ################ Currently Cve-Search supports 4 different type of events (more like locations where plugins can 'hook' into): - tmpl_navigation_last; - tmpl_navigation_dropdown; - footer_tab_header; - footer_tab_content. The names of the events should be pretty self-explanatory as to where they are mapped in the webinterface.