The JMAP Plugin for Horde provides JMAP support for Horde-based systems by exposing a RESTful API Endpoint which speaks the JMAP Protocol.
The following data types are currently supported by the JMAP Plugin for Horde:
- Contacts over the JMAP for Contacts protocol
- Calendars over the JMAP for Calendars protocol, built on top of the JSCalendar format
- Tasks over the JMAP for Tasks protocol, built on top of the JSCalendar format
- Run
make
to initialize the project for the default PHP version (8.1). Use other build targets (e.g.make php56_mode
ormake php70_mode
) instead, in case you are using a different version. - (optional) there are build targets that enable logging to graylog instead of a file, e.g. run
make graylog56_mode
- Run
make zip
to create a zipped package underbuild/
- Extract the resulting package the root of your Horde installation (make sure the folder is named
jmap
). - 🎉 Partytime! Help fix some issues and send us some pull requests 👍
Set up your favorite client to talk to Horde's JMAP API.
- Run step 1) from above
- Run
make update
to update depdendencies and make devtools available
To run all tests run make fulltest
. This requires Podman
(for Static Anaylsis) and Ansible (for Integration
Tests).
You can also run them separately:
- Static Analysis via
make lint
- Unit Tests via
make unit_test
For debugging purposes it makes sense to throw some cURL calls at the API. For example, this is how you tell the JMAP API to return all CalendarEvents:
curl <horde-address>/jmap/jmap.php -u <username>:<password> -d '{"using":["urn:ietf:params:jmap:calendars"],"methodCalls":[["CalendarEvent/get", {"accountId":"<username>"}, "0"]]}'