The OpenXPort data portability framework simplifies development of an endpoint for data migration.
It should be simple for consumers to migrate from another service to your service and vice versa. OpenXPort makes it easy to expose a RESTful API Endpoint for data portability. It is built on top of the interoperable protocol JMAP, which already supports a wide variety of data types and can be extended for more.
The following data types are currently supported by OpenXPort:
- Signatures over the JMAP for Mail protocol
- Calendars over the JMAP for Calendars protocol, built on top of the JSCalendar format
- Contacts over the JMAP for Contacts protocol, built on top of the JSContact format
- Tasks over the JMAP for Tasks protocol, built on top of the JSCalendar format
- SieveScripts over the JMAP for Sieve Scripts protocol
- Files over the upcoming JMAP for Files protocol
- Preferences over the https://www.audriga.eu/jmap/preferences/ Extension
OpenXPort is built with compatibility for older systems in mind. We support all PHP versions down to 5.6 to provide data portability even for older systems.
- 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 need to build for a different version.
- Run
make
or one of the targets for old PHP versions above. - Run
make update
to update dependencies and make development tools 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
- Integration Tests via
make integration_test
(more info undertests/integration/README.md
)