eikek / docspell

Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.
https://docspell.org
GNU Affero General Public License v3.0
1.5k stars 116 forks source link

Idea: Fuse filesystem #2270

Open madduck opened 9 months ago

madduck commented 9 months ago

Just leaving this idea here so it has a place in the ether:

How about a FUSE-based filesystem that can be used to browse the DMS content? There are a number of such approaches out there already, either trying to avoid a database, or abusing the filesystem for metadata storage. But we already have a database, and an API that can be used.

The filesystem would be somewhat magic, i.e. you can chdir() into folders that lsdir() doesn't show. That way, while /tags only contains the set of all tags, and you can e.g. view all documents tagged foo in /tags/foo, you could also go to /tags/foo/bar to view all documents tagged foo and bar, and also /tags/foo|bar for all documents with either tag.

You could combine this with other types of metadata, e.g. /correspondents/John has all the files corresponding to John, and /correspondents/John/tags:foo|bar would give access to those of John with either tag.

Let me know if you're keen to dive further into this. Getting a beta-level FUSE filesystem written in Python isn't that hard, really…

eikek commented 9 months ago

I think that was coming up in #717 already 😄 I started once (few years back) with a ssh server, where a session has docspell as the file backend. I think the idea is nice. if it is possible to map that to the current api, whiy not? (obviously, if something else is needed, let's see what it is perhaps it can be implemented at the server).

madduck commented 9 months ago

I am sorry I missed the existing issue.