-
CardDAV vs MacOS Contacts
In case you run Horde, NextCloud or other CalDAV/CardDAV server products, sooner or later you will encounter users who want to use the MacOS Addressbook application, “Contacts”, to access their server contacts. As of MacOS 11.5.2, the apple contacts app only supports one addressbook per principal. It will pick the first addressbook and use it
-
Can Horde’s internal API use PSR-7 Messages?
Applications call into abstract services backed by other apps, with limited coupling. This may sound a little like micro services, but predates the concept by a decade. Horde’s registry routes the call to the implementing app if present. For example, both “sam” and “ingo” applications implement some spam filter related API calls. Registry setup decides…
-
Move config out of webroot for Horde 6
These items remain in the config/ dir: default registry.php file default prefs.php file routes.php file conf.xml definition file other defaults files like backends.php, nls.php a stub for hooks (maybe we can get away without it) These items reside outside the webroot: conf.php file registry.local.php routes.local.php (if any, I have never seen it used) horde.local.php other
-
Horde Authentication: Revisited
Horde Authentication as it is today has been devised more than a decade ago and it is surprisingly complex. Use cases and requirements have evolved. In a previous article, I introduced basic authentication and authorization needs and how they can be overwhelmingly complex to get right. I will not go into details of how it
-
Authentication & Authorization is complex
Could there be any more straight forward topic than authentication & authorization? The user provides user name and password and clicks “login”, the backend checks if credentials are valid. Invalid credentials are not authorized, valid credentials are authorized and identified (authenticated). End of story. Right? Well… in many cases, it’s not that trivial. As a
-
CardDAV: What is Turba’s true data model?
Turba Addressbook imports, exports and syncs to and from many formats. I discussed all the formats in a previous article. You can even customize the addressbooks, make them contain extra fields or omit common fields. Saving and loading data from the addressbook backend is in some way one more such conversion. Turba can actually read
-
Horde’s HTTP component goes PSR
This weekend, I gave the horde/http component a some major redesign. See how things escalated. Oh my. My minimum goals were namespacing, PSR-4 (Revised Autoloading Standard) and some minor, schematic adjustments. The final result is quite different. I ended up implementing PSR-7 (HTTP Message Interface), PSR-17 (HTTP Factories) and PSR-18 (HTTP Client). The code largely
-
Maintaina Horde: Fourth Of July Additions
I packaged some more exotic horde apps and libraries for use with the composer installer and the FRAMEWORK_6_0 codebase. This was mostly formal conversion work, no actual testing was done. Some of these items might not even be very useful to most administrators. Nevertheless, I want to close the gap between what is available in
-
Composer Installer gets Horde Themes
A while back I added theme package support to the composer installer for horde (horde-installer-plugin). There are some Horde themes or theme customisations available out there, but they come as zip files you have to manually deploy to the right directories, often spanning multiple apps. The installer recognizes themes and generates appropriate symlinks in the
-
No more master branch in maintaina horde
I am changing the default branch in all maintaina-com/ horde repos to be the FRAMEWORK_6_0 branch. In a separate next step, the master branch on these repos will be removed. This is not due to any semantic discussion of technical terms like “master”. I am simply acknowledging reality. At the moment I cannot hope to