- Design plugin manifest
- Design an API to expose plugin functionality - events, (routes?)
- Allow configuring which plugins to use
Description
Details
- Ticket Type
- Task
Status | Assigned | Task | ||
---|---|---|---|---|
Open | Adityab | T829 Create a plugin structure | ||
Open | Adityab | T875 Extend jmap-client to expose account capabilities |
Event Timeline
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.
I've added a way for "routed" apps to register their "main" routes during app initialization so they show up in the top-level app list for navigation.
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.