amidaware / tacticalrmm

A remote monitoring & management tool, built with Django, Vue and Go.
https://docs.tacticalrmm.com
Other
2.92k stars 422 forks source link

Feature Request: Plugin Architecture #1850

Open SoarinFerret opened 2 months ago

SoarinFerret commented 2 months ago

Is your feature request related to a problem? Please describe. Lots of us have ideas on ways we would like to extend Tactical RMM. However, things that are useful for one user may not be useful for another. For example, an integration with an external monitoring system like Zabbix or PRTG.

Describe the solution you'd like It would be nice if we could build plugins to extend the functionality of TacticalRMM. For example, lets say I wanted a plugin for Zabbix. It could add an additional tab to the UI for each host, then allow me to view all the metrics in relation to that host from Zabbix. Same thing for something like PRTG. Another would be I have a plugin I built for Rundeck to access all my hosts. It would be nice if I could execute those rundeck jobs from Tactical RMM. Another nice item would be integration with a ticketing system.

Describe alternatives you've considered Building a system that integrates all the services I use, and integrating this RMM with that as well.

Additional context For other Django applications that have built a plugin architecture, you could look at Netbox.

Essentially, any data for a plugin would exist in a separate table from the rest of the RMM (starting with plugin_), to ensure a clean uninstall. Additionally, plugins should not affect Core UI elements, only add on. For example, adding on new tabs to the Host View, maybe an additional dropdown in the right click menu, etc. Plugins should also be able to be enabled / disabled from the GUI.

I would be happy to help build out this functionality if its considered useful, while providing some example plugins that would help my use case.

silversword411 commented 2 months ago

It's on a long-term wish list.

The main concerns are making sure any extension with a security vulnerability or bugs can't adversely compromise TRMM.

If you think you have a viable start keep it small and simple. Do a PR so it can be evaluated for integration.