RFC: Internal API and extensions/plugins in Hot Potato
Allowing Hot Potato's functionality to be extended outside of the codebase would allow administrators to adapt it to their specific requirements, independently of us building it into Hot Potato. This could possibly include providing a means for sharing such extensions.
This would require implementing a more stable internal API, so that backward compatibility can be reasonably maintained for plugins.
This would also benefit any internally developed components of Hot Potato, as conforming to an internal API would reduce coupling between different parts of the application, reducing breakage and number of things to be changed whenever one component is modified.
Use cases for allowing extensions include the development of:
- Custom notification sending providers (outside of pager, SMS, Pushover and the Hot Potato app)
- Custom web pages and APIs
- Other additional functionality that does not require a high coupling to Hot Potato internal interfaces