Hello Joris
Although I'm late with this reply, I'd also like to give my votes to Andrea's suggestion. I think it might be the best option to make the JMAP server a stand-alone service because the full integration into Roundcube might be tricky. For this you could make use of the Roundcube framework which will give you direct and simplified access to Roundcube's datastore as well as handy utilities for authentication (-> via imap), session storage and caching. Long time ago we did something comparable (although less complex) for Kolab's Freebusy API (see https://git.kolab.org/diffusion/F/).
Serving contacts and basic setting from Roundcube should be easy using the Framework and if you like fancy challenges you might even build a JAMP <> IMAP bridge using Rouncube's IMAP client classes.
Good luck, we're looking forward to see your progress. And don't hesitate to ask back if you need more help.
~Thomas
On Wed, Feb 3, 2021 at 12:02 PM Andrea Brancatelli abrancatelli@schema31.it wrote:
Hello Joris,
your idea sounds cool, but my very personal opinion a Roundcube user (and I think also Aleksander is suggesting the same in between the lines) would be to implement a basic stand-alone JMAP server (handling only the Calendar/Contacts Stuff if it's the case you need to support) and then start implementing a JMAP client plugin in round cube that's referring to the JMAP server you're building.
I see the advantage of recycling Roundcube's tables for contacts but you're basically transforming a Client into a Server - RoundCube is just a WEB "version" of lttrs... If you'd move in this direction count me as beta tester :-)
*Andrea Brancatelli
Roundcube Development discussion mailing list dev@lists.roundcube.net http://lists.roundcube.net/mailman/listinfo/dev