The development of Haplo was paid for by Haplo Services. We’re funded entirely by client revenue, with no external investors. This has given us the freedom and independence to build solutions which fundamentally solve some of the complex problems we’ve come across in our work, rather than having to chase immediate revenue.
Open source software has enabled us to build our business, and we’d like to give others a similar opportunity.
After six years of development, the Haplo platform is mature, stable and proven. We think it’s the right time to enable others to build solutions using this flexible platform.
We’d like to encourage even wider use of the platform, and recognise that platforms need to be open source to be trusted and adopted.
We think that open source is a positive influence in the world and we’re proud to make our contribution to the collection of open source solutions available to the community.
From the Greek “haplóos”, meaning “single” or “simple”.
Haplo has a single namespace for all the items it manages, dynamically creating subsets as required, using an information architecture which is very simple yet powerful, enabling it to express complex information in an easy to understand manner.
We aim to have feature parity between the two versions. However, we are constrained by time, so we’ve had to release the initial version with some missing features.
Here’s a list of what we’ve had to omit, and what we’re going to do about it.
|Microsoft Office / OpenOffice / LibreOffice document previewing and conversion, thumbnails, excerpts in search results.||We used Aspose.Total, a commercial library, for office document support, as it has lots of features and is really easy to deploy. We use Apache POI for text extraction, included in the open release, so searching within documents works right now.||Continue to use Apache POI for text extraction, extend use for document excerpts. Use LibreOffice in headless mode for document conversions.|
|Management system||We have some internal tools for managing a large number of hosted Haplo applications along with their installed plugins in a cluster.||The management system is overkill for any other deployment. Instead, we propose to write a REST API and a new CLI tool for managing application servers.|
|One Time Password support using hardware tokens||For high security applications, users can be required to use a hardware token to log in. Our use of tokens requires the server to be managed by our management system.||Provide an alternative implementation which uses a simple internal database of OTP tokens.|
|API for Microsoft Exchange server||We use the Microsoft EWS Java library to access mailboxes and calendars on MS Exchange servers. Unfortunately it’s buggy and we run a patched version. Previous versions had a restrictive license which prevented redistribution, and the MIT licensed version is different.||Sign the CLA, get our changes merged into the new MIT licensed version, update our code, provide instructions on getting an appropriate version built and deployed.|
master of the Haplo repository is the stable version that we run in production.
Eventually we plan to have formal LTS releases for those used to traditionally versioned software.
The open version is updated with new code as it’s deployed in the commercial version. We generally make a single commit every month which includes all the changes.
As some of our commercial clients are using the open code in their disaster recovery procedures, we’re obliged to keep this up to date.