On 01.02.2021 17:00, Joris Baum wrote:
We at audriga are working on a JMAP PHP library which we plan on using in Roundcube. The main use-case we have in mind is to expose Roundcube's Contact and Calendar data over a JMAP API.
What do you mean expose? Are you up to a JMAP server or client?
should of course be extensible for Mail as well. We already managed to implement a PoC for Roundcube to read and write data over JMAP and want to contribute our changes upstream. Since will be our first time contributing to Roundcube, it would be great to get some initial feedback or guidance.
Considering there were some thoughts put into JMAP support in the past (for Roundcube Next concepts): Do you have any advice on extending Roundcube with this feature? Could a Roundcube plugin be the way to go?
Yes, plugin is the way to go, but a lot of core changes might be needed.
If it was for replacing IMAP store with JMAP store for mail, I'd suggest using undocumented storage_driver option. This would require writing a storage handler class that inherits from rcube_storage. By default rcube_imap is doing this. Of course this will be only a start. The core is not really prepared to work with different engine. All data structures are imap-based and not really standardized.
If you're up to using JMAP server as a source of contacts or calendar, then it would be separate plugins, I suppose. They could use/require the common "jmap_storage" plugin you create. For contacts this should be reasonably easy. For calendar you'd have to integrate into an existing calendar plugin (I assume) which will require some changes in that plugin's code.