New files_external application (Tahoe-LAFS) showing up as read-only when mounted

I have written a new files-external application for the Tahoe-LAFS distributed filesystem. I have almost everything working now, but there is one issue that I have not been able to figure out.
When I navigate into the filesystem, the top level of the directory structure (the Tahoe root directory) shows up as read-only (You don’t have permission to upload or create files here). Any level of the directory structure below the root is correctly displayed as having create capabilities.

When I checked in the code with phpStorm, it looks like the read-only property is coming from a Nextcloud database entry associated with the mount point. The cache entry is being read in nextcloud/lib/private/Files/Cache/Cache.php: line 144.

Here is the code that does the database read in Cache.php:
$sql = 'SELECT fileid, storage, path, path_hash, parent, name, mimetype, mimepart, size, mtime, storage_mtime, encrypted, etag, permissions, checksum
FROM *PREFIX*filecache ’ . $where;
$result = $this->connection->executeQuery($sql, $params);
$data = $result->fetch();

The permissions column for this database entry does not have the:
const PERMISSION_CREATE = 4;
bit set. I am sure this is why the root directory shows up as non-writable.

I assume this database entry is somehow created when the filesystem is mounted. However, I have no idea why the database entry that is created for the filesystem mounts for my files_external application does not have the PERMISSION_CREATE bit set. I cannot find anything in other files_external applications where this bit is specifically set.

What am I missing in order to get the mount point of these filesystems show up as read/write?

1 Like

@ChristophWurst

j-ed,

I have developed a fairly large new application for Nextcloud with essentially no support from the Nextcloud community.

You have responded to my question with a link to a Nextcloud developer that has not responded to me or this thread.

You have marked this as a “solution” in your response.

Is there any support in this community for developers? If so, what process should I use to ask questions and actually get a response?

Bruce T

Maybe IRC? There is a #nextcloud-dev channel there. :grinning:

Hi @brucet,

Awesome to hear you’ve released a Tahoe-LAFS external plugin! Please share a link if you have the source available on Github, etc. Sounds like a great addition to the app store.

@brucet I’ve only CCed a developer so that your information gets the required attention from a developer. Normally he should check his inbox and come back to you on this. Unfortunately I cannot tell you how long this will take because he’s most likely working on other tasks. Please give him some time to answer.

1 Like

The plugin is not released. I am still testing it.

OK. I will wait for a reply.

OK. I will wait for a reply.

IRC is what you are looking for. It is the developer support channel.

Thanks for the info. I just tried #nextcloud-dev. No response.

As far as I can tell, this is a closed development community. I am on my own.

I wouldn’t say it’s closed, it’s just rather small and few people have the expertise required to help you, I suspect.

2 Likes

Good news. Looks like I figured out the issue.

Thanks to the community for all the support (not).

Yes, the developer community is rather small and most of them do not interact much especially on this forum.

If the app is released to a public repo it will make it much easier to test and give feedback on. Hopefully we can all test and enjoy it!