Storing additional data for/about a user in Accounts

Using IAccount::setProperty() turned out to be a no-go for storing some additional/custom account information for a user. The comment for that method says “$property Must be one of the PROPERTY_ prefixed constants of \OCP\Accounts\IAccountManager”, effectively meaning that the information stored in the accounts table by this interface is meant only for the specific fields of the profile information for a user in Nextcloud and that you can’t add whatever property name you want.

Seeing as there is pretty much no documentation about these things and many other architectural/design related things for Nextcloud development, I am unable to find any other place where it would make some (some) sense to store information, other than IConfig::setUserValue(). The problem with storing it here though (effectively in the preferences table) is that the information is not a piece of configuration or preference, but rather contact-like information. So it doesn’t feel right. But what can you do, if the only other option is to create your own tables for this silly small need. Better to be pragmatic in this case.

EDIT: There is still the properties table in the database though, that I do’t know how it’s being used or by what. I will try to find out, maybe it’s a possibility.

EDIT EDIT: Looking in the code, the properties table is only used by CustomPropertiesBackend in the OCA\DAV\DAV, which makes me think it is a table specific to this app, that is used for DAV properties and should not be used for other things. It should probably have been better named to avoid confusion.