Responsible for providing the base functionality for all plugins. Base functionality includes:
- Authentication and authorization
- Database connection
- Communication with other plugins
- Plugin discovery and management
- Logging
- List all plugins available in the main repository via GitHub API
- Upon click on the installation button, clone the repo in
pluginsdirectory - Maintain a file called
plugins.txtin the main repository, which will contain the list of path to the plugins - Have a file watcher in the dockerfile to watch the
plugins.txtfile for changes - Upon change in the
plugins.txt, restart the container - At the startup of the container, install all the plugins listed in
plugins.txt - Have a plugin discovery method in the main application
- Upon startup, mount all the routes from the installed plugins
- Check the scopes, resources and construct permissions in the DB