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.

Notifications

SeedDMS is designed to be used by many users at the same time, doing different things. Keeping track of all the changes and requests, e.g. to interact in a workflow, is hard to achieve. That’s where notifications can help. The request to approve a document, informing users about added documents or folder, or when documents where changed are such notifications. Some of those notification can explicitly be requested by each user, other are always send by the system.

Converting documents

SeedDMS is for storing documents like any other document management system (DMS). Converting documents into other formats may seem like some extra requirement not really needed. But, to make real use of a DMS, converting documents is inevitably. The most obvious use is the creation of preview images. User expect those images for each document, because they make it much easier to scan quickly through a list of documents, identifying the one searching for. Hence, there must be some conversion to turn a document into an image format known by the browser (e.g. png). User also expect to be able to search for phrases in the content of a document. Hence, there must be some conversion to extract the text from a document and feed it into an index. User may also want to print documents without much hassle. Hence, there must be some conversion to pdf, which most printers nowadays can process.

Full text index

Storing documents in a Document Management System like SeedDMS helps in organizing your scanned paper work, digital media, or any other electronic resources you would like to keep at a central place and possibly share with other people. When setting up such a system you will have to define some schema how to organize the documents. Since SeedDMS offers folders just like a regular file system, this is quite often the preffered way, taking into consideration, that users are well acquainted to such a hierachical folder structure. Not seldomly such a structure is sufficient enough to quickly find certain documents, even within several thousands of documents. Anyway, one of the key features of all DMS is searching for documents to quickly get what your are looking for. SeedDMS supports two kinds of searching

The quick way to update a SeedDMS installation

SeedDMS comes with rather detailed instructions on how to install and update the software. It’s all described in the file doc/README.Install.md which is part of the quickstart archive. This article focuses on a very special but quite regular case, when SeedDMS is updated without changing the major and minor version number. Hence, all updates within the SeedDMS 5.1.x or 6.0.x series, e.g. from 6.0.22 to 6.0.28.

SeedDMS’ folder structure on disk is designed to be secure and easily updateable. The parts to be replaced during an update are located in two directories in the base directory named pear and seeddms-5.1.x or seeddms-6.0.x. All other directories remain unchanged. This is achieved by soft links within the directory www and it enforced to run SeedDMS on a platform supporting soft links. If this in not the case, this article may still be useful to understand the update process but you will have to dereference the links yourself.

Using SeedDMS as an OAI-PMH repository

The Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) is a mechanism to expose meta data by a data provider. SeedDMS may act as such a data provider delivering meta data of those documents stored in SeedDMS.

OAI-PMH is widely used by libraries, repositories and publishers to provide meta data e.g. for discovery systems like vufind. It does not prefer a particular meta data standard, but uses Dublin Core (dc) as its bare minimum.

Using SeedDMS like a printer

Assume you have just received by email your booking confirmation for the next vacation and would like to keep a copy of it in your SeedDMS. Or you have found this wonderful recipe on how to make german schnitzel and would like to save a PDF of it in your SeedDMS. Well, you could save it to your local disk and then upload it into SeedDMS. But, how would it be if you just print it right into SeedDMS, no matter if you are using your mobile phone or your desktop PC. The SeedDMS Cups backend makes this possible. It can be downloaded as a debian package from https://github.com/SeedDMS/go-cupsbackend

LDAP Authentication

LDAP (Lightweight Directory Access Protocol) is a widely used open directory services protocol, which allows computer systems to access user directory information over a network. LDAP provides a way to organize information (often user authentication information) in a hierarchical manner. It’s been around for decades and is implemented by OpenLDAP and Active Directory.

SeedDMS has support for LDAP from it’s very beginning, but quite to often it is difficult to set up. The reasons are manifold due to the many options when setting up an LDAP server.

All about check in and out

One of the fundamental differences between SeedDMS and a regular file system is its foremost purpose to store documents and all its versions for a long time and prohibiting any manipulation by unprivileged users. There is little focus on changing the content of the documents. Actually, the DMS itself doesn’t even support editing documents. Besides that, there are way too many different file formats to be supported, which is of course not achievable.

Running scheduled tasks in SeedDMS

Whenever lots of data is managed like SeedDMS does it, there is sooner or later a need for running certain task, e.g. to do clean ups or update operations, or simply to check for data changes occurred over the past. One of the rather obvious operations in SeedDMS is checking for expired documents. But there are others, like informing users about reviews or approvals to be due or updating the full text index. None of them would ever be done without an external trigger, because a web application is not a constantly running process doing all the above at recurring intervals. A document in SeedDMS, which has expired some time ago, will not change its status to expired unless a user accesses that document and forces SeedDMS to check the expiration date again. If you were looking at the database, you would see a document remaining in its old state. In most cases this is just fine, because nobody actually cares about the status of a document unless it is being accessed. But there are other cases where it makes a difference. The full text index, which also stores the status of a document, will not be aware of the expired documents, unless it is updated regularly. That’s why the so called scheduler was added in SeedDMS 6.