mhoeher / opentodolist

A simple Todo and task management application - Mirror of https://gitlab.com/rpdev/opentodolist
https://opentodolist.rpdev.net
GNU General Public License v3.0
161 stars 12 forks source link

Can't connect to Fruux.com (WebDAV) #79

Closed MagicFab closed 1 year ago

MagicFab commented 1 year ago

I can't connect to WebDAV on Fruux.com.

I am using credentials that work fine in other software (Thunderbird on Ubuntu/Debia, Tasks on Android, etc.).

The error message is:

"Failed to connect to the server. Please check your username, password and the server address and retry".

mhoeher commented 1 year ago

Hi @MagicFab,

thanks for raising this issue!

I had a look at the Fruux website. Unfortunately, I think the service is not suitable to be used with OpenTodoList, though...

From what I saw, Fruux is focusing on calendaring/contacts. For that, they use SabreDAV as a backed. According to their website, these are the API endpoints client applications can use: https://fruux.com/api/

As you can see, they provide only calendars and address books as resources.

However, OpenTodoList does not use calendars to store its information. This was a deliberate decision years back - I initially considered building the app on top of the CalDAV standard as well, however, that standard lacks certain capabilities that I wanted the app to have. For example, there is no standardised way to store sub-tasks. Yes, this is possible - however, every client/app implements this slightly differently and hence, the sub-tasks that would be created by OpenTodoList would not necessarily be compatible with other apps (and vice versa).

For this reason, I opted not to use WebDAV at all but instead OpenTodoList has its own format and basically stores its data as plain files on the server. This has the big advantage that the app does not need a calendar server but any (generic) file store will work (e.g. OpenTodoList can be used with Dropbox as a backend as well).

Unfortunately, it seems that Fruux is not providing WebDAV at all (at least judging from their API documentation). Bottom line: That would mean the service is not usable with OpenTodoList.

I don't have an account there, but maybe you could ask them if WebDAV is in fact available (and just not documented properly). However, if your intent was using OpenTodoList as a client to the tasks/calendaring data stored there, this anyway wouldn't work - sorry for that!

By the way: Technically, it would be possible to add CalDAV support in OpenTodoList as well. However, this would be quite some work and - given the edge cases of WebDAV above - I am currently not sure if this is what I really want. In fact, I already receive blames that the app is not working with some WebDAV servers out there even though it is the server that does not implement the necessary parts of the WebDAV standard - I am afraid that the same would happen with CalDAV (like "I created a todo with some sub-tasks on the server, but they do not show up in OpenTodoList!"). Instead of reporting issues these people encounter, they just leave some nonsense 1-star rating in the app stores and be done with it. Given that I make no money with the app and already put quite some time and resources into its development, I'd rather not have this kind of feedback. Hope you can bear with me in that regard 😉

MagicFab commented 1 year ago

Thanks for your detailed explanation - I am not sure what I was thinking when I confused CalDAV and WebDAV. Your design/implementation decisions make much more sense when focusing on tasks. It's unfortunate apps do implement some stuff differenty (subtasks). I use many more clients than Thunderbird and Android to check tasks as entered in CalDAV so I somehow assumed you supported it too. Perhaps this is worth mentioning in a FAQ or Features page for people like me, meanwhile I trust some people will land here and see your excellent reply. Cheers!

mhoeher commented 1 year ago

Hi @MagicFab,

no problem. I cannot count how many times I already quickly skipped through a text and missed the key points 😅

Anyway, yes, it is exactly the WebDAV vs CalDAV thing. This question arose also in the past. I have a task open for finally writing some proper user manual/documentation, so I guess stuff like that definitely should make it there (plus, some links from the app to the documentation so users quickly can find this kind of information).