A file exchange solution based on SeedDMS

SeedDMS is a great Document Management System, but quickly exchanging documents is somewhat cumbersome. It requires any involved party to have an account, be able to upload files, and setup permission, so any receiver can access and download the files. This can be complicated, error-prone and possbily does not comply with security rules - not to mention technical restrictions, e.g. when you run SeedDMS behind a firewall. There are other applications which are much better suited and there is a solution for SeedDMS.

Filebin is a web application that facilitates convenient file sharing over the web. There are no accounts, no access restrictions, and no folder hierarchy, but just an Url with a secret hash in it. Anybody knowing the hash can upload and download files. Such a hash identifies a so called bin which is basically a container for files. Bins are created on the fly by making up a hash and accessing the Url with your browser. This Url is auto generated when you enter the start page of Filebin. SeedDMS can be turned into a similar system by an extension also named ‘filebin’. The filebin extension can be downloaded from codeberg at https://codeberg.org/SeedDMS/filebin

After installation of the extension you have the choice on how to use the extension. There are two modes of operation:

  1. Client mode
  2. Server mode

Both are independent from each other and can be used simultanously.

Client mode

In client mode SeedDMS accesses a remote Filebin server. SeedDMS can download files from the remote server and use them to create or update a document in your SeedDMS installation. This is similar to uploading a file from the local disc. SeedDMS can also upload single files to a remote Filebin server to share them with other users who do not have access to your SeedDMS. Basically, you are using a bin on a Filebin server for exchanging files with super simple access from your SeedDMS.

For client mode you need to set the Url of the Filebin server, e.g. https://filebin.net. When you add a new document or update an existing document, you will notice a new input field (below the usual file selection field) with the label Filebin:. Enter the name of the bin and the file seperated by a colon. Once you start typing, and have at least 8 characters entered, SeedDMS will check for a bin of that name. If one is found, the files will be listed in a drop down menu below the input field. You need to end the bin name with a colon and continue entering parts of the filename to further reduce the list of files. Just select one of the files in the menu and continue with the usual upload (setting attributes, approver, reviewer, etc.).

In client mode you can as well upload a file in SeedDMS onto a Filebin server. Each version of a document has an extra button Upload to Filebin. Clicking on it will open a dialog box for entering the name of the bin. This must be either an existing bin or a new one is created if the checkbox Create bin is marked. Hit the Upload button and the file will be placed into the bin. SeedDMS imposes some restrictions on which files may be uploaded. By default it is

  • not allowed to upload previous versions of a document, and
  • allowed to upload files of documents in any status, even obsolete and rejected documents.

This can be configured in the settings.

Server mode

In server mode SeedDMS acts as a Filebin server itself, including the web UI and the API. Server mode must be explicitly turned on and configured in the settings.

In server mode the Rest Api is extended by additional endpoints, all starting with /filebin. Those endpoints which can be accessed with a browser are:

  • /filebin: show a welcome html page with a link to a random bin
  • /filebin/{binname} show the bin’s html page with all its files (if accessed with a browser, otherwise returns json data)
  • /filebin/{binname}/{filename} get the file from the bin

There are more endpoints, which we will not be covered here. The first two endpoints will deliver a html page, which contains an upload button and an area for dropping files. If a bin does not exist, it will be created when the first file is uploaded. Each file is actually a document in SeedDMS with the name of the file. If a document with the same name already exists, a new version of that document will be created.

Bins have a predefined life time which can be configured. It starts from the creation of the bin or the last upload/update of a file. Hence, adding new files to a bin will extend its life time. A bin which has not been touched within its life time will be deleted, including all its files. This is done by the scheduler, if the task filebin::cleanup is set up, which is strongly recommended.

All bins are created in a dedicated root folder and are owned by a dedicated user. Both must be configured in the settings of the extension. You should add an extra user with just enough access rights, to create folders and documents below the configured root folder. This user can even be disabled and hidden in user lists, which is highly recommended to minimize the risk of unauthorized access on other documents. You could even consider to setup a dedicated SeedDMS as a Filebin server.

Conclusion

Sharing documents with external users without an account in SeedDMS can be cumbersome. The filebin extension opens a convenient way for sharing files, without the risk of making a file publically available and without the hazzle to save them first on your local computer and share it later, e.g. by email or a messenger. Either trust a public Filebin server or run your own, e.g. based on SeedDMS.

There is a demo of the extension at https://filebin.seeddms.org/filebin