Christians Tagebuch: owncloud

The latest posts in full-text for feed readers.


Grauphel: Seeking new maintainer or funding

In 2014 I wrote grauphel, a owncloud/Nextcloud extension that allows you to synchronize notes between Tomboy (Linux, Windows), Tomdroid (Android) and Conboy (Nokia N900 - Maemo).

I personally do not use grauphel anymore and thus have no reason to maintain it any longer. For each Nextcloud release it must be tested, updated and re-released. Big changes are necessary to make it compatible with Nextcloud 21 as well.

The last real changes to grauphel were done in 2018 (version 0.7.0), and since then the changes were only to make it compatible with Nextcloud 15...20. The application itself is complete since 4 years, but unfortunately the foundations are constantly moving.

The original grauphel was a standalone application, but I converted it to a owncloud/nextcloud extension so that I can rely on its login and user management. From today's perspective this was a mistake; a standalone version would still work today and not require unnecessary maintenance.

I'd like to hand grauphel over to a new maintainer that keeps it compatible with the latest Nextcloud versions.

Alternatively, I could make a standalone version of grauphel that works without Nextcloud if I get money to work on this task - 1000€.

Please write a comment in the issue on github if you'd like to take over the project, or how much you're willing to contribute to the standalone version's fund.

Published on 2021-04-13 in ,


grauphel available in Nextcloud app store

I finally got around publishing grauphel on the Nextcloud app store: grauphel @ Nextcloud.

This means you can install the Tomboy note syncing server on your Nextcloud instance via the normal apps menu now.

I have no plans to publish it in the ownCloud app store, nor do I plan to do fixes for ownCloud compatibility.

Published on 2018-01-17 in ,


Android: Import vCard address book file

After backing up the old Nokia C2-01 phone book into a .vcf file, I needed a way to import the data onto an Android 5.0 phone.

Since I already use ownCloud together with DAVdroid for synchronizing calendars, I tried the ownCloud contacts app.

The contacts app has an import button which opens a window in which I selected "Standard VCard", selected the file and voila - the contacts we in ownCloud. DAVdroid took care of the rest and synchronized the contacts onto the phone.

The stock android contacts app com.android.contacts in Android 6 (Cyanogenmod 13) is actually able to import vCard .vcf files: Contacts -> -> Import/Export -> Import from .vcf file.

Published on 2015-08-06 in , ,


Simple undo in HTML applications

ownCloud follows the design principle of Never Use a Warning When you Mean Undo : Instead of showing a popup dialog that you have to confirm to e.g. delete a file, the action is taken immediately. ownCloud does however show a small notice that something has been deleted. Clicking the notice will restore the deleted items.

When working on my Tomboy note sync server, I had to implement deletion of OAuth access tokens. It is possible to implement it in two ways: Full and Simple.

Full

When the user clicks "delete", a request is sent to the server and the token's database row gets the "deleted" flag set. A notification is shown, telling the user that he can restore the token by clicking on the notice.

When the user clicks "undo", another request is sent to the server and the deleted flag gets reset.

This also implies a way to clean the database of deleted tokens.

  • A possible solution is a trash view in which all deleted tokens are shown. There they can be deleted permanently.
  • Another solution is to send another request to the server after the "you deleted the token" message disappears. This is non-deterministic since the user may leave the page earlier.
  • One could run a cronjob every day to permanently remove deleted tokens.

Simple

I dubbed this "simple" because it's simple to implement, compared to the steps necessary in full deletion. It works as follows:

When the user clicks "delete", the token HTML table row is hidden. A notification is shown, telling the user that he can restore the token by clicking on the notice. A JavaScript timer is started that will send the delete request to the server in 5 seconds.

After 5 seconds, the javascript timer fades the notice out and sends the delete request to the server. The token is permanently deleted now.

If the user clicks the notification within the 5 seconds, the timer is stopped. The token row in the HTML table is made visible again.

Considerations

When the user leaves the page within the 5 seconds, the delete action requests are immediately sent to the server via an onbeforeunload event handler. You have to send the requests in synchronous mode, since the browser tab will be closed before the request reaches the server in async mode.

You also have to take care of multiple timeouts: What happens if the user deletes 2 tokens and then clicks undo? I chose to restore both tokens.

Code

The JavaScript code can be found in js/grauphel.js .

Screencast

Published on 2014-11-09 in , ,


grauphel: Tomboy notes sync server

I spent the last two months working on grauphel, an ownCloud app that implements the Tomboy REST API . With grauphel you can synchronize notes across computers and mobile devices.

With version 0.4.0 that I released yesterday, all features I wanted are implemented: Syncing, OAuth token and database management, searching and viewing notes.

The following clients work with grauphel: Conboy (Nokia N900 - Maemo), Tomboy (Linux, Windows) and Tomdroid (Android).

The source code is licensed under the AGPL v3. You can download grauphel from its homepage and get the sources from its git repository or the github mirror.

Screenshots

ownCloud app menu with grauphel grauphel start page Authorize an OAuth client List of notes in the test category Viewing a note Searching notes OAuth token management Database statistics and management

Screencast

Here is how you setup note synchronization on Android between Tomdroid and grauphel:

grauphel?

grauphel is got its name after assessing the previous official tomboy note server implementations: Snowy and Rainy.

Snowy (written in python) is dead, and Rainy requires Mono to run :/ No way I would install that on my server.

The only other alternative was Ubuntu One, which was shut down mid of 2014. Now there is grauphel to self-host on a standard PHP server.

Published on 2014-10-30 in , ,


External auth patches for ownCloud 7

I have an ownCloud installation on my server for several reasons:

  • ownCloud has desktop client applications that sync files automatically onto the server and back between multiple clients (like dropbox).
  • It provides a caldav server for calendar sharing.
  • You may share files with single or groups of people.
  • Web gallery for uploaded image files.

External user authentication

The ownCloud apps repository contains user_external which allows one to authenticate against a FTP, IMAP or SMB server. Since I run my own mail server, authentication against IMAP is my preferred choice to keep my passwords list short.

Unfortunately, users authenticated via IMAP could not login with the desktop client, and could also not get files shared - issues #301 and #302.

A patch

Since this was an unbearable situation, I wrote a patch that creates the users in the database during login. I got an immediate rejection

Determined to solve the problem once for all, I followed the hints and rewrote a large part of the external authentication plugin.

While Thomas Müller, one of the main developers, tested my patch he stumbled across another issue: A blank page without any error notice. Another patch was needed.

One and a half months later, both patches got merged in git master. With ownCloud 7 you'll be able to enjoy them, too.

Published on 2014-07-23 in , ,