Category: First Page
-
Horde/Log Rewrite goes PSR-3
I have rewritten Horde/Log based on the PSR-3 Logging standard published by PHP-FIG. Why? It had to been done at some point. The current wave of Corona pandemic has cancelled some joyful other activities planned for this weekend and I had been looking into PSR-3 loggers for quite some time. Most importantly, I wanted to…
-
October Review: TOTP in Horde
I have been working on multiple things recently. Kronolith Web UI: Appointment Cancellation Bug Fix an annoying bug where internal user attendees get cancellation mails when an appointment is updated by the owner. This only seems to happen from the Web UI, not from CalDAV. I already analysed how this is happening. The fix is…
-
Developer Introduction to Maintaina Horde
This introduction is targeted at developers with little or outdated prior Horde knowledge. Having worked with any Backend Development Framework in any language can help. While a lot of these facts can be found in Wikis or previous article, others are fairly new or only relevant to the developments in the version of horde delivered…
-
Custom iCalendar data in Kronolith & Nag
The iCalendar exchange format is everywhere in Horde’s calendar (kronolith) and tasks (nag) apps. It is offered for manual import/export. It is the centerpiece of the CalDAV synchronisation protocol and various APIs of these apps. The format also plays a role in email invitiations and updates sent via iTip. It is a very powerful and…
-
Maintaina Horde switches to openSUSE LEAP
Our Horde docker images have switched over from Tumbleweed to openSUSE LEAP once again. Recently our container build CI job in github.com broke down unexpectedly. An investigation showed that Tumbleweed’s core libraries, especially libc, were too new for the CI’s build system, based on Ubuntu LTS. This is the second time we abandoned the Tumbleweed…
-
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…