- Design plugin manifest
- Design an API to expose plugin functionality - events, (routes?)
- Allow configuring which plugins to use
- Ticket Type
We have a plugin 'structure' now, in the sense that you can create a Roundcube app in another repository and 'enable' it within the Shell.
A way to expose routes will come with the Mail app - some of these patterns should just emerge as we build more.
We also discussed a cleaner way to enable/disable apps, which is via the capabilities, hasMail, etc properties.
Now that we have roundcube-server, we should be able to mix our own properties in to the JMAP proxy's response, and let the administrator change some flags to advertise which apps are available; all of this without requiring a rebuild of the roundcube client.
This requires extending the jmap-client library's Account model to expose these properties.