Good morning, all.
OK, SOGo is the only working CalDAV / CardDAV server with an acceptable
level of quality, at least to me, in the standard Debian repository.
The two absolute requirements for me are LDAP authentication and a
working user interface over https. So I have to use it, fair enough.
By the way, if right now, when reading this, your mind comes up with
nice repositories on GitHub or somewhere else, where I can download xxx
or yyy, just stop and read again. I want to stick to a standard Debian
compatible repository, this is not negotiable.
Unfortunately, every time I have a look into the database schema, it is
a shame, and I don't see any improvements over the years.
First, the tables prefixes - seriously, what is the point of this,
remove it. The tables should not be named sogo_xxx ? We are not any more
in the 80s, when you were only able to use one database on a hosting
provider. At least, make this an option, and not the default case.
Second, the column prefixes - Why all the columns are called c_xxx,
there is no point behind this except it is annoying and reduce queries
readability. Do you have a dinosaur programmer in your team that
advertise this as a poor way to avoid errors ?
For these two "features", trust unit test, static code analysis and
continuous integration to detect errors, not programming practices from
the 70s.
Third, why the table sogo_folder_info replicates the credentials of the
database in each record ? (columns c_location, c_quick_location,
c_acl_location) Even if you wanted to have multiple database, the
credentials should not be stored in clear text in the database. This is
both a security issue and the worst database design I have seen so
far...just remove this feature.
Fourth, in the same table, what are the columns c_path1, c_path2,
c_path3 ??? If your database was properly designed, you wouldn't need
these artefacts.
For 2022, can you hire a database administrator to redesign your
database schema ?
Otherwise, I wish the whole team a happy new year.
Andre Rodier.
--
[email protected]
https://inverse.ca/sogo/lists