100% found this document useful (1 vote)
118 views68 pages

Adminguide 1

seeddms

Uploaded by

joelsf25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
118 views68 pages

Adminguide 1

seeddms

Uploaded by

joelsf25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 68

SeedDMS Administrator’s Manual

Author: Daniel Grutsch


Author: Uwe Steinmann
Contact: [email protected]
Revision: 72
Last change: Thu Jul 12 21:59:11 2018 +0200
Date: 2018-07-12
Copyright: © Daniel Grutsch 2015-2016, Uwe Steinmann 2015-
2017
Disclaimer: This document is for private use only. Distribution
or copying is not allowed without permission by the
authors.

Abstract
This document explains how to administrate SeedDMS. It rather
focuses on the person being in charge to run SeedDMS than the
end user.
CONTENTS 1

Contents

1 SeedDMS Administration 4

1.1 Admin-Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Users management . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.1 Add a new user . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.2 Edit an existing user . . . . . . . . . . . . . . . . . . . . . 8

1.2.3 Disable an user account . . . . . . . . . . . . . . . . . . . 8

1.2.4 Delete an existing user . . . . . . . . . . . . . . . . . . . . 9

1.2.5 Delete a user from all processes . . . . . . . . . . . . . . . 11

1.2.6 Transfering objects . . . . . . . . . . . . . . . . . . . . . . 11

1.2.7 Substitute user . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3 Groups management . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.1 Create a new group . . . . . . . . . . . . . . . . . . . . . . 12

1.3.2 Add new members to an existing group . . . . . . . . . . 13

1.3.3 Toggle the group manager . . . . . . . . . . . . . . . . . . 13

1.3.4 Remove group members . . . . . . . . . . . . . . . . . . . 13

1.4 Backup tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4.1 Versioning file creation . . . . . . . . . . . . . . . . . . . . 14

1.4.2 Archive creation . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4.3 Database dump creation . . . . . . . . . . . . . . . . . . . 15

1.4.4 Files deletion . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5 Log files management . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6 Global keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.6.1 Define keywords . . . . . . . . . . . . . . . . . . . . . . . . 19

1.6.2 Rename and/or remove keywords . . . . . . . . . . . . . 20

1.6.3 Delete a keyword category . . . . . . . . . . . . . . . . . . 20

1.7 Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
CONTENTS 2

1.7.1 Manage categories . . . . . . . . . . . . . . . . . . . . . . . 21

1.8 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.9 Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.9.1 Workflow states . . . . . . . . . . . . . . . . . . . . . . . . 22

1.9.2 Workflow actions . . . . . . . . . . . . . . . . . . . . . . . 22

1.10 Fulltext index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.10.1 Update fulltext index . . . . . . . . . . . . . . . . . . . . 22

1.10.2 Create fulltext index . . . . . . . . . . . . . . . . . . . . . 23

1.10.3 Fulltext index info . . . . . . . . . . . . . . . . . . . . . . 23

1.11 Contents overview . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.12 Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.13 Folder/Document check . . . . . . . . . . . . . . . . . . . . . . 24

1.13.1 Document missing . . . . . . . . . . . . . . . . . . . . . . 24

1.13.2 Unlinked content . . . . . . . . . . . . . . . . . . . . . . . 25

1.13.3 Missing filesize . . . . . . . . . . . . . . . . . . . . . . . . 25

1.13.4 Missing checksum . . . . . . . . . . . . . . . . . . . . . . 25

1.13.5 Duplicate Content . . . . . . . . . . . . . . . . . . . . . . 26

1.13.6 Processes without user/group . . . . . . . . . . . . . . . 26

1.14 Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.15 Manage extensions . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.16 Version information . . . . . . . . . . . . . . . . . . . . . . . . . 28

2 Adding Content 28

2.1 Access rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2 Adding folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.3 Adding Documents . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.3.1 Uploading by a form . . . . . . . . . . . . . . . . . . . . . 31

2.3.2 Drag & Drop . . . . . . . . . . . . . . . . . . . . . . . . . . 33


CONTENTS 3

2.3.3 Import from server file system . . . . . . . . . . . . . . . 34

2.3.4 WebDAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.3.5 PHP-Script . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3 Configuration 36

3.1 Site settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2 System settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.3 Advanced settings . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.4 Commands for extracting text from files . . . . . . . . . . . . . . 45

3.5 Commands for creating preview images . . . . . . . . . . . . . . 45

3.6 Commands for creating pdf previews . . . . . . . . . . . . . . . 46

4 Fulltext 46

4.1 Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.2 Fulltext engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.3 Commands for indexing . . . . . . . . . . . . . . . . . . . . . . . 49

5 Workflows 50

5.1 Do I need Workflows? . . . . . . . . . . . . . . . . . . . . . . . . 51

5.2 Choosing the right type of workflow engine . . . . . . . . . . . . 51

5.2.1 The traditional workflow engine . . . . . . . . . . . . . . 51

5.2.2 The advanced workflow engine . . . . . . . . . . . . . . . 52

5.3 Getting started with the advanced workflow engine . . . . . . . 52

5.4 Getting started with the traditional workflow engine . . . . . . 55

5.4.1 Mandatory reviewers and approvers . . . . . . . . . . . . 56

5.4.2 Access rights . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.4.3 Removing reviewers or approvers . . . . . . . . . . . . . . 56

5.4.4 Changing reviewers or approvers . . . . . . . . . . . . . . 57

5.4.5 Other pitfalls . . . . . . . . . . . . . . . . . . . . . . . . . . 57


0 1 SEEDDMS ADMINISTRATION 4

6 Notification 57

6.1 Notification types . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.2 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7 Authentication 61

7.1 Password security . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.2 Protection against login attempts . . . . . . . . . . . . . . . . . . 61

7.3 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8 Data Model 62

8.1 Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

8.1.1 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

8.1.2 Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.1.3 Attachments . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.1.4 Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.2 Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.3 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Docutils System Messages 67

1 SeedDMS Administration

After logging in to SeedDMS, you will find the link to the Admin-Tools within
the black menu bar on the very top.

Figure 1: Admin Area

The Admin-Tools are only visible if you login in as an adminstrator.


0 1 SEEDDMS ADMINISTRATION 5

1.1 Admin-Tools

The Admin-Tools are either reachable by the menu bar on the top or by using
the buttons as shown in the figure.

Figure 2: Admin-Tools Overview

Users management: Create, update and delete users.


Groups management: Create, update and delete user groups.
Backup tools: Create, manage, export and delete backups.
Log files management: View and delete the log files.
Global keywords: Create, update and delete global keywords,
which can be used by all users.
Categories: Create, update and delete document categories. Cate-
gories created here are available throughout the whole DMS.
Attributes: Create, update and delete attribute definitions for doc-
uments, folders, or versions.
Workflows: Create, update and delete workflows (only available,
if the advanced workflow is turn on).
Workflow States: Create, update and delete workflow states (only
available, if the advanced workflow is turn on).
Workflow Actions: Create, update and delete actions used within
workflows (only available, if the advanced workflow is turn
on).
0 1 SEEDDMS ADMINISTRATION 6

Update fulltext index: Update an existing fulltext index with


newly added documents.
Create fulltext index: Create a new fulltext index. This can also
be used to recreate an existing fulltext index from scratch.
Fulltext index info: Gather various information about the existing
fulltext index, like the number of terms, indexed content etc.
Contents overview: List all folders and documents in a hierarchi-
cal structure.
Charts: Various statistics, e.g. documents per user, new docu-
ments per month, etc.
Folder/Document check: Checks your documents for various er-
rors.
Timeline: Show previous operations in a time chart.
Settings: Access various settings for SeedDMS.
Manage extensions: Manage installed extensions.
Version Information: Displays the current version of SeedDMS.

1.2 Users management

Here you manage all the users who should be able to login into SeedDMS.
If you are using SeedDMS in conjunction with Active Directory or an LDAP
server you should manage the users in the Active Directory and not in Seed-
DMS.

The page is split into a left column containing a menu to select a user or to
create a new one and a right column containing a form to modify an exiting
user or to fill in new user data. If a user is selected there will also be some
additional information below the select menu.

A user can either be selected by scrolling the menu or entering the first letters
of the user name in the input field which becomes visible when the menu is
unfold.

1.2.1 Add a new user

Open the Users management and select Add new user from the dropdown
menu.

Figure 3: Add new User


0 1 SEEDDMS ADMINISTRATION 7

Now fill the appropriate information into the fields.

Figure 4: Add new user

Select the role for your user from the Role dropdown field. You can define
administrators, normal users and guests. Those roles are predefined and affect
the functions available and the access on documents. Administrators are not
restricted in any way. They always have unlimited rights on documents and
folders. Guests are very limited in using the system and accessing documents
and folders. Guest can search and browse the documents, but they will under
no circumstances have more then read access on folders and documents. If
access rights are limit further, guest won’t see the documents and folders at
all.
0 1 SEEDDMS ADMINISTRATION 8

If you already have some defined groups you can select the appropriate group
by clicking into the Groups field. If you do not yet have any groups you can
still do that later in the groups management. Groups are used for defining
access rights, notifications and workflow operation.

If you want to define a Home folder for the user, select it by either typing the
folder name to search for it or click the Folder... button to select one.

SeedDMS can restrict the maximum space on the disk used by a user by set-
ting the quota field to a value > 0. If there is already a system wide quota
this option will not be available. Only document versions will be counted
for the quota. Document attachments and comments uploaded as a file when
reviewing or approving a document are not taken into account.

If you want to hide the user from the users list, (user not visible for other
users but for admins) tick the option. Those users will not show up in any list
of users, e.g. in the search form.

If you want to have the account disabled, tick the box. Login for disabled
accounts isn’t possible anymore. A user will be automatically disabled if the
number of login failures exceeds the configured value in the configuration.
Reenabling a user will also reset the number of login failures.

If you want to assign a specific workflow to the new user, select one or more
workflows from the dropdown. Whenever the user uploads a new document
or adds a new version to an existing document, one of the configured work-
flows is mandatory. This option is only available if the advanced workflow
engine is turned on.

A user can have predefined reviewers and approvers for each document or
new version of a document uploaded by this user. This option is only available
if the traditional workflow is turn on.

Now click Add new user to create the account.

1.2.2 Edit an existing user

For editing an existing user (e.g. to update the email address) go to the Users
management and select the user you want to edit from the dropdown menu.

Change the necessary field, then click Save at the bottom to save your changes.

1.2.3 Disable an user account

If you do not want to delete a user but want to prevent him from accessing
your DMS simply go to the Users management, select the user from the drop-
down and tick the Disable account checkbox. Click Save once done. The
user will be unable to access the DMS and will not receive any notifications
0 1 SEEDDMS ADMINISTRATION 9

anymore until his account suspension is ended.

Accounts may also be disabled automatically, if the number of login failures


exceeds the maximum number as configured in the settings. Reenabling the
account will also reset the number of login failures.

1.2.4 Delete an existing user

To remove an existing user, go to the Users management, select the user you
want to delete and click Remove this user. This will delete the user from
all user groups he/she has been a member of. A deleted user cannot be
recovered. Before the deletion you will be asked to select a user who will take
over the documents and folders of the users.

Figure 5: Delete a user

Deleting a user has various consequences:

• all personal keywords and keyword categories will be deleted


• all notifications will be deleted

• private document links will be deleted and public document links will
be transferred to the replacement user
0 1 SEEDDMS ADMINISTRATION 10

• all document attachments will be transferred to the replacement user


• all documents locked by the user will be unlocked
• all individual access rights will deleted
• the users is removed from all workflows (review/approval)

Before the deletion you will be asked which user shall take over the docu-
ments of the user to be deleted. If the user is still in any (traditional and ad-
vanced) workflow process, then he/she will be deleted from each workflow
first, by adding another log message to that process indicating the deletion.
This happens for any review/approval regardless of its current state. So even
if the user has already approved/reviewed the document it will be marked
as ’user deleted from the process’. You need to check the review/approval
log to find out about the user’s previous actions. Be aware that removing a
user may have consequences for the review or approval of a document. Docu-
ments just having this user as a reviewer or approver will lose it, and therefore
will finish its current workflow step. The same is true, if the user is the last
approver/reviewer missing to enter the next state. As the review/approval
itself will not be deleted, it will still contain the user id which cannot be re-
solved anymore once the user has been deleted. The listing of reviewers and
approvers will therefore contain just a message that the user with id ’xx’ has
been removed. Removing users which are part of an advanced workflow can
possibly leave a transition without a user triggering that transition. If that
workflow is in use, it may never leave a certain state because the linking tran-
sition to the next state is not triggered anymore.

Figure 6: Information about a user

The figure shows information of a user who still needs to review four docu-
ments and to approve two documents. If the user is deleted those documents
0 1 SEEDDMS ADMINISTRATION 11

may enter the next state (either being released or waiting for approval). The
user also has a personal keyword list. Deleting it is not crucial because key-
words are just copied over into a text field of the document. Documents
having a keyword from that list will retain it, even if the list is deleted.

Certain users can be protected from deletion in the configuration by specifying


their user id. This is useful for an admin account to make sure there is at least
one administrator left, even if all other users are deleted.

1.2.5 Delete a user from all processes

Instead of completely deleting a user, which leaves open references to the user
in the review and approval log, a user can only be deleted from the processes
he/she is involved in. This includes all reviews and approvals where the user
is assigned as an individual, but not as a member of a group, even if the user is
the only member of that group. It ensures that there is no document left wait-
ing for the review/approval by the user. Combining this with disabling the
account is often sufficient to keep the user from using the DMS, without run-
ning the risk of having documents which will never be reviewed or approved.
Keep in mind that the user may still be a mandatory reviewer/approver of
a user or is part of an advanded workflow. If the user is a mandatory re-
viewer/approver of another user, and if that user uploads a new document
version, the user will be added to a process again even if the user is disabled.

You may discover a difference between the number of documents to re-


view/approve and the number of pending reviews/approvals listed in the
user info. This is due to reviews/approvals of previous document versions
which are counted in the second case but not in the first case. Deleting a user
from all process will also cover previous versions, even though the user will
not be able to review/approve them anymore.

Before executing the deletion you can pick from a more fine grained list of
reviews/approvals to be actually deleted. Usually, it is sufficient to delete
only those reviews/approvals which has not been touched by the user, as
they are the only ones which stop a review/approval from finishing. But you
also remove the user from processes where he/she has already been active.

1.2.6 Transfering objects

Disabling an account and possibly removing a user from all processes still
leaves documents, folders and attachment belonging to the user. This could
complicate further modifications, due to insufficient access rights by other
users. A simple way out is to transfer all objects to another user by chang-
ing the ownership. This covers all documents, folders, attachments, public
document links and calendar entries.
0 1 SEEDDMS ADMINISTRATION 12

1.2.7 Substitute user

Substitution of a user is a concept for acting as a different user than the user
currently logged in. It is inspired by the similar concept on Unix/Linux sys-
tems and it is only available to administrators. Once a user substitution has
been activated all operations are executed like if that user was logged in. There
will be later no way to tell if an operation was done after a user substitution
or a regular login. During an active user substitution the main menu will be
colored red. User substitution can be initiated either from the user manager
or the right most menu item in the main menu. User substitution also works
for disabled users which is often the only way to finish remaining tasks of that
user without reactivating the account. Leaving the substitution mode is like a
regular logout, but the button in the menu is labeled as ’Sign out user’.

1.3 Groups management

If you plan to add several users to your DMS it makes sense to put them into
groups. This saves you a lot of work afterwards when defining user actions
(e.g. in workflows) or access rights where you can just add the group instead
of having to add each single user.

1.3.1 Create a new group

Select Groups management, in there select Add new group from the dropw-
down.

Figure 7: Add new group

Define a name for your group and if required, write a description. Click Add
new group to create the group. Now you can define the members of the group
if you already created the users previously. Otherwise you can add the users
later once you created them.

To add a member to your group select the appropriate name from the drop-
down. If you want the user to be this group’s manager, tick the Manager
checkbox. There is currently no particular function behind a group manager.
Click Add once you’re done.
0 1 SEEDDMS ADMINISTRATION 13

Figure 8: Add group members

1.3.2 Add new members to an existing group

Before you can add a user to a group, first select the group you want to add
a member. Now go to Add a member, select the user, decide if you want to
make her the group manager (you can have more than one group manager)
and click the Add button.

Figure 9: Add a member

1.3.3 Toggle the group manager

Within Groups management select the group you want to edit. Find the user
from where you want to remove the group administrator right and click the
Toggle manager button. The change becomes active immediately.

The group manager is able to add or remove users to the group he/she is the
manager of. This is only possible, if the Enable Users View is turned on in
the settings. In that case the MyAccount page has a subpage Groups which
lists all groups and its members in which the currently logged in user is a
member of. As a manager there will be buttons to remove and add users.

1.3.4 Remove group members

Within Group management select the group you want to edit. Find the user
you want to remove and click the Delete button. This will only remove the
user from the group, the user will still be able to log on to your DMS.
0 1 SEEDDMS ADMINISTRATION 14

1.4 Backup tools

The Backup tools provide a variety of possibilities to create a backup of your


DMS data. Those tools are not necessarily required to backup the DMS. You
can as well just backup the database and the content directory with regular
system tools like tar and mysqldump. In case your are using an sqlite database,
it is even enough to backup the content directory. The tools described here are
mostly for those cases where you cannot operate directly on the filesystem.

It is strongly recommended to use regular backup tools provided by your


operating system.

1.4.1 Versioning file creation

This option creates a versioning file inside each document folder in the content
store on the hard disk. Select the folder you want to create the versioning file
for it and click the Versioning file creation button. Versioning files will be
created for each document within the selected folder. Versioning files are a
left over from the predecessors of SeedDMS and are kept for compatibility
reasons. They contain some meta data stored in the database.

Figure 10: Versioning file creation

1.4.2 Archive creation

With this option you can create archives containing the files of the entire DMS.
You have the possibility to select single folders or backup the whole DMS in
one single archive. The archive only contains the files and not the database.
All backup files will be placed within the data folder of your DMS.

Two types of backup archives are available:

Standard archive: Can be used in combination with a database dump to re-


store the DMS as it contains exactly the same structure as the data folder
of your DMS.
0 1 SEEDDMS ADMINISTRATION 15

Human readable archive: Archive containing only the documents without


the corresponding folders. Warning: Human readable archives cannot
be used to restore the DMS. Their purpose is rather to export certain
parts of the DMS and pass it somebody else who does not have access
to the DMS.
Due to a limitation on how the archive is created, file names longer than
100 characters will not be exported propperly.

Figure 11: Archive file creation

To create a backup, either type the folder name into the search and hit the tab
key or click the Folder button to select the desired folder from the folder tree.
If you want to create a human readable archive tick the checkbox, otherwise
leave the box empty. Once done click Archive creation to start.

Depending on the size of your DMS and the power of your server it can take
several minutes to complete a backup.

Once the backup is completed it will appear within the Existing backup list.
By clicking the name of the backup you can download the file to your com-
puter.

If you want do delete a backup just click the Remove backup file button. Once
done you have to confirm the removal of the backup file.

1.4.3 Database dump creation

A DB dump contains the complete database of your DMS. It is recommended


that you create a DB dump once you created a standard backup archive. You
will only be able to restore a complete previous state of your DMS if you have
both available.
0 1 SEEDDMS ADMINISTRATION 16

To create a DB dump just hit the DB dump creation button.

Figure 12: Create a DB dump

Existing dumps will be shown in the Existing dump files section. To down-
load a file click it’s name, to delete a dump hit the Remove dump button.
Once you confirmed the removal of the dump you can’t undo it.

1.4.4 Files deletion

This option should only be used with care as it deletes all files within the
folder you choose.

Figure 13: Files deletion

Select the folder for which you want to delete the files either by searching
for it by typing it’s name and hit the tab key on your keyboard or click the
Folder. . . * button to select the folder from the folder tree. Once you are ready
click the Files Deletion button to proceed.

You will be prompted to confirm the operation.


0 1 SEEDDMS ADMINISTRATION 17

Figure 14: Prompt before file deletion

Click on Accept to delete all the files from the chosen folder. If you do not
want to proceed simply click the back button in your browser.

Newer versions of SeedDMS do not have this function anymore, as it causes


more harms than it helps.

1.5 Log files management

The log file manager is quite simple and straightforward, allowing you to
monitor several activities within the DMS and helps to track errors or events.

The logs are rotated hourly, daily, or weekly. For each period one file is being
created. Log files will only be created if in the given period any activity has
happened.

Logs are created for the web frontend and the webdav part of the DMS. No
other log files will be created by SeedDMS.

Figure 15: The log manager

To remove a single file, click the Remove file button on the same line, to
delete multiple file tick the checkboxes of the files you want to delete, then
0 1 SEEDDMS ADMINISTRATION 18

click Remove marked files at the very bottom of the page.

If you click on Download you will get a file with .log extension.

To view a log you can either simply click it’s name to show it’s content directly
in the browser window or you can click the View button to the right to open
the file within the integrated viewer.

Figure 16: The log viewer

1.6 Global keywords

Global keywords allow to specify keyword sets available throughout the


whole DMS for every user. Using global keywords help to define standard
keywords preventing different ways of writing (e.g. singular/plural) of the
same word. The keywords itself are organized in categories which belong to
the user, who has created that category. Those keywords in categories cre-
ated by an administrator will automatically become global keywords, visible
by all users. They are still just editable by the user who has created them.
That means, that not even admins see keywords of other admins when edit-
ing them. Hence, if there is more than one admin, there can be several global
keyword lists. If this is not desired it is up to the operator of the DMS to set
up internal rules who is in charge for creating the global keyword list.

Keyword categories should not be mixed up with document categories. There


are usually just a bunch of document categories while there may be hundreds
of keywords. Document categories often form groups of documents with a
common property, e.g. Formular, Invoice, Contract. Keywords rather depict
the contents of a document to support searching.

Keyword lists are just an aid for entering keywords of documents. Even key-
words in none of the keyword lists can be assigned to a document by simply
0 1 SEEDDMS ADMINISTRATION 19

entering it into the keyword field when adding a new document.

1.6.1 Define keywords

After you installed SeedDMS, the keywords section is empty, there are no
keyword sets delivered by default.

To add a new category select Add category from the dropdown menu.

Figure 17: Add a new category

Type the desired name for the new category and click the Add category button
to continue.

Figure 18: Choose category name

In the next step you can add the keywords to your keyword category. At
the time of writing you can only add one keyword at once, if you finished
entering click Add keywords to save and continue.

Figure 19: Add keywords


0 1 SEEDDMS ADMINISTRATION 20

1.6.2 Rename and/or remove keywords

From time to time you may need to update your keywords or delete obsolete
ones. From the dropdown menu select the keyword category you want to
update.

Figure 20: Update keywords

Now you have the possibility to update or delete the keywords in the chosen
category. If you want to update the keywords keep in mind that you can only
change one keyword at the same time. Once you updated the keyword click
Save to write the value to the database.

To delete a keyword just hit the Delete button beside the keyword. Warning:
If you click on Delete the keyword will be deleted immediately. This can’t be
undone.

Figure 21: Update keywords

Updating or deleting keywords has no effect on the keywords already used


for documents. They remain unchanged.

1.6.3 Delete a keyword category

To delete a keyword category, repeat the steps above, but instead of deleting
a single keyword press the Remove category button to get rid of the category.
0 1 SEEDDMS ADMINISTRATION 21

All keywords within this category will be deleted as well. There will be no
warning message, once you click on Remove category, the category will be
removed immediately.

1.7 Categories

Categories help you to keep your documents organized. Unlike keywords,


categories are referenced by documents. Any change to the category name
will visible in all documents linked to this category. There is just one set of
categories which can only be managed by an administrator.

1.7.1 Manage categories

From the dropdown choose Add category, the input field appears to the right.
Enter the desired name of your category and click on Add category.

Figure 22: Add category

To rename or remove a category, select the category name from the dropdown
menu. To rename it, change the name and click the Save button, to remove it
click on Remove category to delete it. The change will take effect immediately
and can’t be undone.

Figure 23: Delete category

A category cannot be deleted if there are still documents linked to this cate-
gory.
0 1 SEEDDMS ADMINISTRATION 22

1.8 Attributes

Attributes are like tags which can be attached to folders, documents, and
document content. The attribute definition determines

• to which object the attribute may be added (folder, document, content)


• the type of the attribute
• whether the attribute has one or more values
• the minimum and maximum number of values
• a set of allowed values
• a regular expression that must match the attribute value

1.9 Workflows

Administration of workflows is only available for the advanced workflow en-


gine. The workflow administration sets up the workflows. It requires to first
create workflow states and actions which will then be assembled into a work-
flow. You can find more detailed information about workflows in section
‘Workflows‘_.

1.9.1 Workflow states

Workflow states are part of the advanced workflow. It is an intermediate state


taken by a document version while running through a workflow. Here you
can set up a pool of workflow states which may not necessarily be used by
a workflow. Possible states are Waiting for legal approval, Approved by user,
Completed, etc.

1.9.2 Workflow actions

Workflow actions represent the action executed by a user on a document ver-


sion. The action is like a trigger which transfers a document version from one
state to the next state. Possible actions could be complete, review, etc.

1.10 Fulltext index

1.10.1 Update fulltext index

This will update an already existing fulltext index. Depending on the size
of your DMS it can take several minutes to complete. Once completed, a
0 1 SEEDDMS ADMINISTRATION 23

summary will be displayed:

Figure 24: Update fulltext index

1.10.2 Create fulltext index

This button can be used to create a new fulltext index (if you never had one be-
fore) or to re-create the already existing fulltext. Once completed a summary
will be displayed (see picture above).

1.10.3 Fulltext index info

Clicking on this button will display the information gathered from the fulltext
index. If the index is out of date, the number of documents or terms may not
match the current state of your DMS. Therefore it’s recommended that you
update the fulltext index prior to using the fulltext index info.

The fulltext index info displays the following information: Number of docu-
ments and their names, number of terms and the terms themselves, splitted in
categories comment, document_id, keywords, mimetype, origfilename, owner
and title.

1.11 Contents overview

This tool displays information of all folders and documents in your DMS.
A tree view is shown on the left hand side while information about access
rights (user and group rights are shown) and statistical data is shown at the
right hand side. Depending on the size of your DMS it can take some time to
calculate the tree.
0 1 SEEDDMS ADMINISTRATION 24

Figure 25: Content overview as tree

1.12 Charts

Here you can gather various statistical data, prepared in nice graphs. Cur-
rently the following charts are available: Documents per user, Diskspace per
user, Documents per mime-type, Documents per category, Documents per
status, New documents per month and Number of documents.

1.13 Folder/Document check

This utility is to track down damaged documents or other inconsistencies. If


errors have been found and an automatic fix is possible, SeedDMS offers to fix
the errors for you. The following issues are checked by the Folder/Document
check:

1.13.1 Document missing

Figure 26: Document missing

This error occurs if a database entry for a document is present, but no docu-
ment has been found in the document content directory on disk. This error
0 1 SEEDDMS ADMINISTRATION 25

cannot be fixed automatically. You need to check the file system for the docu-
ment. If it is there you should check if the permissions are set propperly.

1.13.2 Unlinked content

This is just the opposite of the previous check. It checks if all files in the
content directory on disk have a reference in the database.

1.13.3 Missing filesize

This error occurs if the file size entry within the database is missing or wrong.

Figure 27: Filesize missing

Click on Set file size to repair this problem. SeedDMS will search the docu-
ment in the data folder and write the size into the database.

Figure 28: Filesize repaired

1.13.4 Missing checksum

This error occurs if the documents checksum entry in the database is missing.

Figure 29: Missing checksum

Click on Set checksum to calculate the documents checksum and populate it


into the database.
0 1 SEEDDMS ADMINISTRATION 26

Figure 30: Checksum repaired

1.13.5 Duplicate Content

Documents listed in this section has content with the same checksum as con-
tent belonging to another document. This is not necessarily an error.

1.13.6 Processes without user/group

Users or groups can be assigned as reviewers and approvers. If such a user


is being deleted (and not just removed as a reviewer or approver), the re-
view/approval still exists and is listed just like the user/group was removed
as a reviewer or approver. The review/approval record still contains the id
of the removed user/group which cannot be resolved anymore. SeedDMS
keeps this record in order to report any changes to a review/approval pro-
cess. This check will list all of these records and offers to remove them per-
manetly. It does not have impact on the review/approval process, because the
user/group has been removed from the process already.

1.14 Timeline

The timeline creates a graphical representation of all changes to documents.


It does it only for a given period of time, but also shows those changes of
documents modified within that date range which are further in the past.
0 1 SEEDDMS ADMINISTRATION 27

Figure 31: The timeline and its filter options

If many document changes occured in the selected date range, then the dia-
gram can become very crowdy. In such a case just exclude some of the changes
by checking one or more of the check boxes below the date range.

Clicking on one of the boxes in the diagram will show additional information
about the affected document.

1.15 Manage extensions

Extensions have been introduced to SeedDMS in version 5.0.0. There can


extend the features of SeedDMS in various ways. Extensions are located on
the disk in the directory ext. Each extension has its own subdirectory. After
a new extension has been added the list of extensions must be refreshed,
otherwise the extension will be available.
0 2 ADDING CONTENT 28

Figure 32: The SeedDMS extension manager with the demo extension in-
stalled.

Extension listed with a green background are enabled. Extensions with a


yellow background are disabled but could be enabled. Extensions with a
red background are disabled because of a dependency problem and therefore
cannot be enabled.

1.16 Version information

This feature shows you the installed version of SeedDMS. If you have Internet
connection (through the browser, not the DMS server), it checks if there is a
more current version available and notifies you with a yellow bar as shown in
the example below.

Figure 33: Version information

2 Adding Content

SeedDMS is for managing documents in various versions in a hierarchical


folder structure, controlled by access rights. The typical way to add docu-
ments and folders is by uploading or creating them with the web user inter-
face. But there are various other ways to add content into the dms.

• Drag & Drop from a local file manager


• importing from the file system on the server
• copying files via WebDAV
0 2 ADDING CONTENT 29

• PHP-Scripts which upload documents and create folders

The following sections will first discuss the different access rights and after-
wards introduce the various ways to fill SeedDMS with content.

2.1 Access rights

Any operation in SeedDMS is controlled by access rights which are either


related to the documents and folders or the functionality of the user interface.
This section will just cover access rights based on documents and folders.

The access rights on documents and folders in SeedDMS are very similar to
those found in most regular file systems on Linux system. There four access
rights are

• no access
• read access
• read and write access

• unlimited access

They can be granted to a user or group for each document or folder individ-
ually. Beyond this, some user roles have special access rights which always
apply and cannot be changed.

• administrators have unlimited access on all documents/folders


• the owner of a document or folder has unlimited access

• guests have at most read access

Depending on the operation a user is going to execute, a minimum access


right has to be explicitly granted or set by the user’s role. The minimal access
right depends on how much impact an operation on the document or folder
has.

Operations which require unlimited access are

• removing a document, version, document attachment or folder


• changing the access rights of a document or folder
• unlocking a document locked by somebody else
• overriding the document status
0 2 ADDING CONTENT 30

• setting a reviewer, approver


• updating or editing a document if it is locked

All other modifications to a document or folder just need read and write
access.

• editing the meta data


• moving documents and folders around
• adding a notification
• etc.

2.2 Adding folders

SeedDMS is shipped with a minimal database containing already the root


folder for the whole dms. All other folders are subfolders of this root folder.

Folders can be added by clicking on the ’Add Subfolder’ menu item in ’Folder
menu’.

Figure 34: Menu when showing a folder

This will open a page containing a form with input fields for the name, com-
ment and position of the new folder.
0 2 ADDING CONTENT 31

Figure 35: Adding a subfolder

The only required field in this form is the name of the folder. The field Se-
quence sets the position of the new folder relative to existing subfolders, which
would be listed if there were any. In this particular case, there is no other sub-
folder and the only option is At the end. The warning below the select menu
is due to the fact, that the current sort method in the folder and document
listings is not set to sequence. So setting a position is possible but will have no
effect until the sort method is changed.

Once you have added user defined attributes the formular will contain more
input fields.

2.3 Adding Documents

Adding documents is much more complex than adding folders. Creating a


new document means to create a first version and wrap this version with a
container. The container is called document while the version is often called
version or content. The version contains the actual file, e.g. the pdf or office
file. Some ways of adding documents to the dms hide the complexity and
make assumptions about naming, positioning, etc..

2.3.1 Uploading by a form

The most common way to add a document is by uploading a file from your
local computer.
0 2 ADDING CONTENT 32

Figure 36: Adding a document

The form for uploading a document is split into several sections. For now,
only the upper two sections Document information and Version information are
of interest. The document information will be displayed in all lists and de-
picts all versions of the document. The version information is only related
to the particular file, that is going to be uploaded. Documents have a name,
comment and position just like folders. Additionally a document can have
keywords, an expiration date and can be assigned to predefined categories.
The version has its own comment and a version number which is preset to 1.
The only required field to be set is the local file. Not even the document name
is required. It is taken from the uploaded file if not set explicitly.

If you set a comment, then keep in mind that document comments should be
applicable to all futher versions of the document. Comments like ’added more
info on how to install software’ is likely to be version specific and should be
stored in the version comment. A reasonable document comment would be
’Official Handbook for storing documents in SeedDMS’.

The expiration date of a document defines when the document becomes in-
valid. This will not have any influence on the accessibility of the document,
0 2 ADDING CONTENT 33

but will change the internal status.

2.3.2 Drag & Drop

A convinient way to upload one or more files into the dms is the so called
’Fast upload’ option, which must be turned on in the configuration. It will
add a new section, next to the folder informationon on the folder view page.
Dragging one or more files from your local computer and dropping it onto
the yellow area, will upload each file as a new document into the current
folder. As there is no way to set any of the document nor version attributes,
the document name will be taken from the file name and the document will
be released right away.

Figure 37: View of folder if fast upload is turned on

After successful upload, a button with a link to the Edit document page will be
shown.
0 2 ADDING CONTENT 34

Figure 38: Uploading a document by fast upload

2.3.3 Import from server file system

Uploading files by web formulars is often a tedious work and takes a con-
siderable amount of time if lots of documents or large documents have to be
added. In such situation it is often easier to upload the documents on the
server first (e.g. by rsync, ftp, nfs) and import them from there into SeedDMS.
It may even the case that the documents are already on server because, e.g. a
scanner has placed them there. The requirement for this to function to work,
is a folder on the servers file system, which is called Drop folder by SeedDMS
and must be configured in the configuration. The drop folder must have sub
directory with the same identical to the login name of those users, who are
allowed to use the drop folder. If that is the case, the upload form will have a
new field for choosing a file from the drop folder instead of uploading it.

Figure 39: Input field for uploading a file from the drop folder

The file from the drop folder will only be used, if the Local file field remains
empty. Clicking on the Choose file button is going to open a list of files within
the drop folder.
0 2 ADDING CONTENT 35

Figure 40: Dialog for choosing a file from the drop folder

For more than one file or possibly a complete file system structure containing
not just documents but also folders, there is second way to import files, which
also uses the drop folder. As this can be used to import massive amounts of
data, its use is restricted to administrators only. It can be found in the Misc
menu item on the Admin-Tool page.

Figure 41: Formular for importing files from the file system on the server

As the target folder in SeedDMS is not implicitly set, it must be set in the
first input field. The second field is similar to the file chooser on the Add
document page, but chooses a directory instead of a file from the drop folder.
The content of the selected directory is imported recursively into the target
folder.

2.3.4 WebDAV

Another way of adding documents to the dms is via WebDAV. WebDAV is a


HTTP based protocol to access file systems on a remote server. SeedDMS has
0 3 CONFIGURATION 36

a buildin WebDAV Server which provides access to all folders and documents.
All common operating systems and some applications (e.g. LibreOffice) have
client implementations of WebDAV.

2.3.5 PHP-Script

SeedDMS uses a very modular structure which seperates the database and file
operations (SeedDMS_Core) from the web application, the WebDAV Server
and the REST Api. Based on SeedDMS_Core other applications are possible.
Command line PHP scripts are one way to automate many processes and
can be used to import files into SeedDMS. The utils directory shipped with
SeedDMS contains some examples for adding documents and creating folders.

3 Configuration

This part of the documentation describes the various settings which can be
configured within SeedDMS. Advanced users can as well adapt the settings
in the file settings.xml with a regular editor. The configuration is split into
three sections.

3.1 Site settings

Setting Name Description Default value


Site Name Name of site used in the page titles. SeedDMS
Foot Note Message to display at the bottom of SeedDMS free
every page system docu-
ment management
system - <a href=’
http://www.seeddms.
org’>www.seeddms.org
</a> - please do-
nate if you like
SeedDMS!
Print Disclaimer If enabled, the disclaimer message Enabled
will be printed at the bottom of ev-
ery page
Available lan- List of languages which are shown
guages in the language selector. If none is
selected, then all languages will be
available.
0 3 CONFIGURATION 37

Default language Language use for the user interface. English (GB)
If the language selector is enabled,
users can choose a different lan-
guage for their account.
Default theme The default style of the user interface bootstrap
If Theme selection is enabled, users
can change the used style for their
account.
Width of preview Define the width of preview images 40
images (list) used in lists.
Width of preview Define the width of preview images 100
images (detail) used in detail view.
Show complete Shows a full preview on the details Disabled
document page. This will only work for some
mimetypes which can be displayed
by the browser
Convert docu- Documents which cannot be pre- Disabled
ment to PDF for viewed will will be converted to pdf.
preview This is only implemented for some
office documents.
Strict Form check If enabled, then all fields in the Disabled
form will be checked for a value.
If unchecked, then (most) comments
and keyword fields become op-
tional. Comments are always re-
quired when submitting a review or
overriding document status
View Online File Define the file extensions which can .txt;.text;.html;
Types be viewed directly in the DMS with- .htm;.xml.pdf;.gif;
out prior download. .png;.jpg;.jpeg
Edit Online File Define the file extensions which can
Types be edited online. Only lower case
characters are accepted for exten-
sions.
Enable Convert- Enable or disable the conversion of Enabled
ing files. (not used anymore)
Enable E-mail Enables or disables the automated Enabled
email notifications.
Enable Users If checked, users can see users and Enabled
View groups set up within the DMS.
Enable Full text Enables or disables the full text Disabled
search search engine.
0 3 CONFIGURATION 38

Maximum file- If this has a value > 0, then files up 0


size for instant to this size will be indexed by the
indexing full text engine right after upload. In
all other cases on the meta data will
indexed
Fulltext Engine If Fulltext search is enabled, the Zend Lucence
engine used can be defined here.
Choices are Zend Lucene and
SQLiteFTS.
Default search Defines which search method is Database
method used by default, e.g. when search is
initiated by by the search field in the
main menu header
Jump right to a If set, the search result not be shown Disabled
single search hit as a list on the search page, if just
one Instead the document itself will
be shown
Path to stop Defines the path to the file con- None
words file taining words which should not be
picked up by the fulltext indexer.
This setting is only effective if full
text search is enabled.
Enable Clipboard Enables or disables the clipboard on Disabled
the view folder page.
Enable Fast Up- Enables or disables the drop area on Disabled
load the ’View Folder’ page for upload-
ing files by Drag & Drop.
Enable Folder Enables or disables the folder tree on Enabled
Tree the view folder page.
Expand Folder Define if the folder tree should start start with tree
Tree expanded or collapsed. shown and first
level expanded
Enable recursive If enabled, the number of documents Disabled
document/folder and folders in the folder view will be
count determined by counting all objects
by recursively processing the folders
and counting those documents and
folders the user is allowed to access.
Max. number of This is the maximum number of 0
recursive doc- documents or folders that will be
ument/folder checked for access rights, when re-
count cursively counting objects. If this
number is exceeded, the number of
documents and folders in the folder
view will be estimated.
0 3 CONFIGURATION 39

Enable Language Allows the user to change the lan- Enabled


Selector guage after login. If disabled, users
can’t change the language.
Enable Help If set, the link to the help page will Disabled
be shown in the main menu
Theme selection Enables or disables the theme selec- Disabled
tor at login.
Sort users in list Define if the user list should be Sort by login
sorted by login or full name
Default sort Sets the sort method of documents by sequence
method and folders in the folder view.
Enable Calendar Enable or disable the integrated cal- Enabled
endar
Calendar Default Define the view used when opening Year View
View the calendar.
First day of the Define the day which should be Sunday
week shown as first day of the week.

3.2 System settings

Setting Name Description Default value


Root Directory Path to where the SeedDMS applica- None
tion files are located.
Http Root The relative path in the URL, after None
the domain part. Do not include the
http:// prefix. If your URL is http:
//www.domain.com/seeddms you
should set /seeddms/
Content directory Path where the files uploaded to the None
DMS are stored. Best is to choose a
directory which is not directly acces-
sible through your web-server.
Cache directory Path where the preview images are None
stored. Best is to choose a direc-
tory which is not directly accessible
through your web-server.
Directory for par- Path where jumploader stores parts None
tial uploads of a file upload before it’s being put
together.
Directory for full Path to where the fulltext index in- None
text index formation is stored.
0 3 CONFIGURATION 40

Directory for The path defined here can be used None


drop folder to drop files on the server’s file sys-
tem instead of uploading them via
browser. The directory must contain
a subdirectory for each user who is
allowed to upload files this way.
Log File Enable Enables or disables the log file. Enabled
Log File Rotation Choose how often a new log file Daily
will be created. Possible values are
Hourly, Daily and Weekly.
Enable large file If enabled, file upload is also avail- Enabled
upload able through a java applet called
jumploader without a file size limit
set by the browser. It also allows to
upload several files at once. If this
setting has been enabled, http-only
cookies are disabled.
The java applet has been aban-
ndoned in version 4.3.33, 5.0.10 and
5.1.0 and will no longer be sup-
ported.
Partial filesize Size of partial files uploaded by the 2000000
jumploader in bytes. Do not set a
value larger than the maximum up-
load size configured on the server.
Maximum size Maximum size for an uploaded file.
for uploaded files This should be lower than the max_-
upload_size set in php’s configura-
tion. If not set the file size is only
restricted by max_upload_size The
parameter is currently only used if
’Large file upload’ is enabled.
Enable Guest Lo- Enables or disables the login of any- Disabled
gin body as guest. Should only be used
in a trusted environment.
Enable auto login If set, a user not explicity calling the Disabled
for guest login page will automatically logged
in as guest user
Restricted access If enabled, only users having an en- Enabled
try in the local database (irrespective
of successful LDAP authentication)
can login.
Enable User Im- Enables or disables user profile im- Disabled
age ages (Avatars).
Disable Self Edit If enabled, users can’t edit their pro- Disabled
files.
0 3 CONFIGURATION 41

Enable Password If enabled, users can set and email a Disabled


forgotten new password for their account.
Min. password Set the minimum password length 0
strength required. Values can be between 0
and 100. If set to 0, checking of the
minimum password length is dis-
abled
Algorithm If set to simple, only the length of simple
for password the password is being validated. If
strength set to advanced, the password is
checked if it contains a lowercase let-
ter, a uppercase letter, a number and
a special character.
Password expira- Number of days after which a pass- 0
tion word expires and must be reset. A
value of 0 turns the password expi-
ration off.
Password history The number of passwords a user 0
must have used before a password
can be reused. A value of 0 turns
the password history off.
Login failure Define the number of failed logins 0
after which an account will be dis-
abled. A value of 0 disables this fea-
ture.
User’s quota The maximum number of bytes a 0
user may use on disk. Set this to 0
for unlimited disk space. The value
here can be overwritten by setting a
quota in each user’s profile.
Undeletable User Comma separated list of user ids None
IDs which cannot be deleted
Encryption key The string is being used to create a
unique identifier that is being added
as a hidden field to a form in order
to prevent CSRF attacks.
Cookie Life time The life time of the DMS’ cookie in 0
seconds. If set to 0 the cookie will be
removed when the browser is closed
Database Type This field is populated during the in-
stallation process. Do not change it
unless you have to migrate to a dif-
ferent type of database. For sup-
ported database types see adodb-
readme.
0 3 CONFIGURATION 42

Server name The name of the host where your


database is running on. Do not
change unless you have to migrate
or transfer the database to a new
host.
Database name The name of the database entered
during the installation process. Do
not edit this field unless necessary,
e.g. if the database has been moved.
Username The username used to access the
database entered during the instal-
lation process. Do not edit this filed
unless necessary, e.g. if the database
has been transferred to a new host.
Password The password of the database user
entered during the installation pro-
cess.
SMTP Server The hostname of the SMTP server
hostname used to send email notifications.
SMTP Server The port used to connect to the 25
port SMTP server. Common ports are 25
and 587.
Send from The email address to be used as seeddms@localhost
sender address.
SMTP server user The user name used to authenticate empty
with the SMTP server.
SMTP server The password to authenticate with empty
password the SMTP server.

3.3 Advanced settings

Setting Name Description Default value


Site Default Page Default page on login. Defaults to Empty
out/out.ViewFolder.php if empty.
Root Folder ID The ID of the root folder. Mostly no 1
need to change.
Title Display Workaround for page titles using Enabled
Hack more than 2 lines (not used any-
more).
0 3 CONFIGURATION 43

Show missing Lists all missing translation on a Disabled


translations page at the bottom of the page.
The user logged on will be able to
submit a proposal for the missing
translations. The proposals will be
saved in a CSV file. Do not enable
this in a productive environment.
Guest ID ID of guest-user used when logged 2
in as guest. Mostly no need to
change.
Admin IP If set, admin can only login from|
Empty specified IP. Use only if you
have a static IP or control over the
network, leave empty to avoid los-
ing control.
Workflow mode The advanced workflow mode al- traditional
lows to specify your own release
workflow for document versions.
Versioning File The name of the versioning info file versioning_info.txt
Name created by the backup tool.
Preset expiration If set, all new uploaded documents Empty
date will have an expiration date set to
this value. The date specified can
be entered as understood by PHP’s
strotime() function, e.g. +5 weeks.
Allow re- Enable this if you want admin- Disabled
view/approval istrators to be listed as review-
for admins ers/approvers and for workflow
transitions.
Allow re- Enable this if you want the owner Disabled
view/approval of a document to be listed as re-
for owner viewer/approvers and for work-
flow transition.
Allow re- Enable this if you want the cur- traditional
view/approval rently logged in user to be listed as
for logged in reviewers/approvers and for work-
user flow transition.
Enable deletion Enable this if you want to allow reg- Enabled
of previous ver- ular users to delete previous docu-
sions ment versions. Admins may always
delete old versions.
Enable modifica- Enable this if you want to allow reg- Enabled
tion of versions ular users to modify a document af-
ter a version was uploaded. Admin
may always modify the version af-
ter upload.
0 3 CONFIGURATION 44

Allow duplicate If enabled, duplicate document Enabled


document names names in a folder are allowed.
Override Mime- Override the MimeType submitted Disabled
Type by the browser. The new MimeType
is determined by SeedDMS itself.
Remove file from If set, a file which was uploaded Disabled
drop folder af- from the drop folder will be deleted
ter successful up- afterwards
load
Enable owner Enable this if you want to auto- Disabled
notification by matically add a notification for the
default owner to the document.
Enable re- If enabled, reviewers/approvers are Enabled
viewer/approver being notified if a new document
notification has been added or updated.
Send notification If enabled, users and groups which Disabled
to users in the need to take action in the next
next workflow workflow transition will be notified.
transition Notification will be sent even if they
not added a notification for the doc-
ument.
Core SeedDMS Path to SeedDMS_Core (optional). Empty
directory Leave this empty if your Seed-
DMS_Core directory is located at a
place where it can be found by PHP
(e.g. Extra PHP include-path).
Lucene Seed- Path to SeedDMS_Lucene (op- Empty
DMS directory tional). Leave this empty if your
SeedDMS_Lucene directory is lo-
cated at a place where it can be
found by PHP (e.g. Extra PHP
include-path).
Extra PHP in- Path to additional software. This Empty
clude Path is the directory containing e.g.
the adodb directory or additional
pear packages. This path will be
added to any already existing PHP
include-paths.
Content Offset To work around limitations in the 1048576
Directory underlying file system, a new direc-
tory structure has been devised that
exists within the content directory.
This requires a base directory from
which to begin. Usually leave this
to the default setting, 1048576, but
can be any number or string that
does not already exist.
0 3 CONFIGURATION 45

Max Directory Maximum number of sub- 32700


ID directories per parent.
Update Notify Users are notified about document 86400
Time changes that took place within the
last ’Update notify time’ seconds.
Max Execution This sets the maximum time in sec- 240
time (s) onds a script is allowed to run be-
fore it’s being terminated by the
parser.
Timeout for This duration in seconds deter- 0
external com- mines when an external command
mands (e.g. for creating the full text index)
will be terminated.

3.4 Commands for extracting text from files

SeedDMS depends on the help of external commands which are used to ex-
tract the text from a file with a given mimetype for feeding it into the full text
search engine. The commands are usually predefined in the configuration
shipped with SeedDMS but can all be changed or removed. Each command
must be able to read the document file and write a textual representation in
utf-8 format to stdout. That output data can be the content of the file, meta
data extracted from the document, the result of a character or speech recogni-
tion process. The input file is represented by the placeholder ’%s’. Only the
text of the latest document version will be fed into the full text search engine.

The two empty fields at the end of the list are for defining commands for
further mimetypes. Deleting a command will remove the complete definition
from the list. The string for the mimetype may either be the exact name of the
mimetype, or just the part of the mimetype left to the / suffixed with /* (e.g.
image/*), or just a *. The * stands for any string. Mimetypes are checked from
top to bottom and the command of the first matching mimetype will be used.
Hence, place mimetypes with wildcards at the end of the list.

The section about the fulltext Indexing contains a list of commonly used com-
mands for indexing various file formats.

3.5 Commands for creating preview images

SeedDMS cannot create preview images by itself but calls external programs
which create a png image from the document, which is cached by SeedDMS.
Preview images are currently created in two sizes. One size for document lists
and another size for the document details page. Usually the preview for the
document details page is larger than for the document list, but this does not
have to be so. The width of each preview image can be set in the settings as
well.
0 4 FULLTEXT 46

The command for creating the preview contains three mandatory placeholders
and one optional placeholder which are filled out by SeedDMS before the
command is executed.

%w: The desired width of the preview image in pixel


%m: The mimetype of the document. This is useful for a generic
conversion program which needs to take the mimetype of the
document into account (optional).
%f: The name of the document file for which a preview images is
to be created
%o: The name of the created preview image

The mimetype may contain a wildcard * which has the same meaning as
already described in the section Commands for extracting text from files.

3.6 Commands for creating pdf previews

SeedDMS can use external programs to convert a document into pdf and show
the result on the document’s details page, if Convert document to pdf for preview
is turned on. The resulting pdf document is cached just like preview images.
The overall process is similar to the creation of preview images, except for the
output format (which is pdf) and the placeholder %w, which is not available.

4 Fulltext

Finding a document in SeedDMS can be done either by searching the database


or the fulltext index. The fulltext index is created from meta data of the
document and the document content which is converted into plain text by
configurable conversion programs. The fulltext search is only available to
the users if it is turned on in the settings. SeedDMS only creates or updates
the fulltext index automatically, if the size of the document version does not
exceed the configured files size as specified in the configuration (Maximum
filesize for instant indexing). Though it always adds some initial meta data of a
new document after it has been uploaded. The fulltext index must be updated
or recreated either manually by the administrator or by a cron job running
utils/indexer.php. There is a practical reason for it. If a users uploads a
large document, it could take several minutes to index the document content
depending on how fast the conversion program runs. It may even fail because
the maximum execution time of a php script is exceeded.

Basically, SeedDMS can index any document type as long as there is a piece of
software that converts the content into a plain text. The command to execute
this conversion process must be configured in the settings per mime type.
The command expects a filename and must output the text to stdout. The
0 4 FULLTEXT 47

command may use a placeholder %s which is replaced by the filename. The


most simple example on unix/linux systems for converting plain text files is
just cat %s. This rather generic way allows to add documents without textual
information to the fulltext engine by use of OCR software or even speech
recognition software.

SeedDMS has support for two different kinds of fulltext index.

• The older one is based on lucene and is provided by the Zend Frame-
work

• The newer one is based on sqlite

The one to be used must be configured in the settings. While the lucene
based indexing is quite mature and stable it is also quite slow when indexing
documents. The sqlite based indexing is available since version 4.3.20 and is
much faster.

4.1 Indexing

Full text indexing is only available if it is turned on in the configuration (Enable


Full text search). There is also a menu for selecting the full text engine as
described above.

The indexing of documents covers two parts

• the document’s meta data and

• the documnte’s content.

When a document is uploaded only its meta data is indexed by default. The
indexing of the content must done later, either by running the indexer as a
cron job or in the admin tools. Consequently, a document can be found after
upload only by its meta data. This behaviour can be changed by setting the
configuration variable ’Maximum filesize for instant indexing’. Documents
with a size below this integer value will also be indexed by content right after
upload. Keep in mind, that indexing large documents may take some time
which will delay the upload process. Setting this configuration variable to 0
turns off the instant indexing of the document content.

When a document is deleted it will also be removed from the fulltext engine.

The management of the full index itself is done by three function in the admin
tools

• Create fulltext index


0 4 FULLTEXT 48

• Update fulltext index


• Fulltext index info

Creating a fulltext index will remove an existing one and indexes all docu-
ments again. The may take some time and should not be necessary unless
you change the fulltext engine or want to make sure that your fulltext index
is in any case up to date. The indexing will in any case only read the latest
version of a document. Previous versions will not be indexed.

Once you start indexing documents, you will see a page with a hierachical list
of all documents and two progress bars on top of that page. The list contains
the names and the current status of all documents. Possible states are

• document unchanged
• Pending
• Processing ...

• Done

Figure 42: Creating the fulltext index

A document with status ’document unchanged’ will not be indexed again, be-
cause it has not been updated since the last indexing. If a document needs to
0 4 FULLTEXT 49

be updated in the index, it will first be in state ’Pending’, when it is indexed


it has the state ’Processing ...’ and once that is ready, it will change to ’Done’.
The progress bars show the overall progress and the currently in parallel pro-
cessed documents which may be 5 at most. The parallelization is done by the
browser which retains a queue and spawns a new indexing progress if there
is a free slot in the queue. If fulltext indexing is turned on, there will also
be another item in the folder menu for indexing just that folder including all
subfolders. This comes handy if a new document was just uploaded and shall
be visible in the fulltext index.

The admin tools contain besides updating and creating a fulltext index a third
function to list the current data in the fulltext index. It is helpful to check
whether the indexing is working at all. Once more documents are being in-
dexed the page gets quite large and may take some to fully load. There are
several sections on the page containing the terms which were indexed in the
meta data fields and the content. The by far largest section is titled ’content’.
It lists all terms found in the document’s content.

4.2 Fulltext engine

SeedDMS supports two variants of fulltext indexes

• Zend Lucene
• SQLiteFS

Zend Lucene is available since version 3.2.0 of SeedDMS. SQLiteFS has been
introduced in version 4.3.20. Both work well, thought SQLiteFS is faster and
does not depend on the Zend Framework which is only part of the distribution
because of the Zend Lucene fulltext engine. Hence, if you use SQLiteFS, you
will not need the Zend Framework for SeedDMS anymore.

4.3 Commands for indexing

The fulltext index can only index plain text content and reads it from the
standard output of a program. Hence, SeedDMS relies on external programs
which do the conversion of arbitrary file formats and provide an utf-8 encod-
ing output stream. Those commands need to be configured for each mimetype
in the configuration of SeedDMS. The command may contain the placeholder
%s which stands for the name of the file to be indexed. SeedDMS will fill in
the name, call the external program and index the text written to standard
out. This rather generic process allows to index almost any kind of file if
appropriate software is available, e.g. optical character recognition or speech
recognition software.

The following table contains some common commands which can be used on
a Linux/Unix system, if the required software is installed. If the programs are
0 5 WORKFLOWS 50

not installed within your search path, you might specify the complete path to
the program.

application/pdf pdftotext -enc UTF-8 -nopgbrk %s - | sed -e


’s/ [a-zA-Z0-9.] {1} / /g’ -e ’s/[0-9.]//g’
application/msword catdoc ’%s’
application/vnd. xls2csv ’%s’
msexcel
all office formats unoconv -d document -f text --stdout ’%s’
audio/mp3 id3 -l -R %s | egrep ’(Title|Artist|Album)’ |
sed ’s/^[^:]*: //g’
audio/mpeg id3 -l -R %s | egrep ’(Title|Artist|Album)’ |
sed ’s/^[^:]*: //g’
text/plain cat %s

5 Workflows

This part of the documentation covers the different implementations of work-


flows in SeedDMS. There are two different kinds of a workflow engines.

Traditional workflow engine The traditional workflow is named like this, be-
cause it exists in SeedDMS (and its predecessors) for quite some time
and has been proven to cover many real world workflows. The tradi-
tional workflow has only one or two steps but a very flexible assignment
of users and groups to each step.
Advanced workflow engine The advanced workflow has been introduced in
version 4.0.0 of SeedDMS. It allows to have any number of steps and
even branching into subworkflows. Each step, the actions taken and the
users or groups involved can be defined and stored for later assignment
to a document.

A frequent misunderstanding of workflows in SeedDMS is its lifetime and


what is does with the document. Because workflows are linked to document
versions, changes to the document version during a workflow are not allowed,
as this would create a new version. The workflow itself will not modify the
version, it just marks the version with a new state. A common real world
workflow, which puts a document into a cycle of reviewing and modifying
the document until is has reached its final state, cannot be modelled with
workflows in SeedDMS. It is rather a sequence of workflows for each new
version. In such a case, and if further editing of the document is required,
the current version first has to be rejected and second a new modified ver-
sion has to uploaded and put under the same (or a different) workflow again.
0 5 WORKFLOWS 51

This must continuously happen until the document is accepted and can be re-
leased. It is up to the person or group in charge for the document to keep this
cycle running. SeedDMS will support the user in finding document version
that has been rejected.

5.1 Do I need Workflows?

The idea of workflows in general is to start a process which will end in a


document being released or rejected. Which status is finally reached depends
on the users involved in the process and their decision in each step of the
workflow. Workflows are always attached to document version. With each
new version of a document a new workflow can be started. They may even be
different from version to version.

The workflow engine in SeedDMS allows you to define automatic document


status changes based on pre-defined actions. While a workflow makes sense
in a multi-user environment, where various persons and groups has to be
involved into the document approval process, it may not be useful if you are
the only user in charge. Furthermore you need to consider your organisational
structure to find out if a workflow based document management makes sense
in your case. Even if you decide to not create any workflows, SeedDMS offers
lots of usefull functionality.

5.2 Choosing the right type of workflow engine

Whether you use the traditional or the advanced workflow engine mostly de-
pends on the complexity of your workflow. The decision is done globally for
all documents. There is no way to choose a workflow engine on document
basis. This can impose problems, if you start with one worklfow engine and
switch to the other one later. All documents still in the middle of the work-
flow cannot be finished, because the user interface will not allow it. Those
documents will remain in their last status until you switch back to the work-
flow engine used before and finish them. The easiest way to find out, whether
there are still documents within a workflow, is by searching for them.

Though, if you decide at some point to switch the workflow engine (e.g. for
testing purposes), then this will be possible. The switch itself does do any
modifications to the documents. Just take the above in mind, if you intend to
make a permanent switch.

5.2.1 The traditional workflow engine

Two very common workflows are the review/approve-workflow and the sim-
pler approve-workflow. Both can be done with the traditional workflow en-
gine. The approve-workflow is actually a review/approve-workflow without
0 5 WORKFLOWS 52

the review step. The decision on which one to use can either be done globally,
by configuring a traditional workflow engine without review in the settings or by
simply not assigning any reviewers to the document. If globally configured,
SeedDMS will not even provide input fields for entering reviewers, which
may be less confusing for users. No matter whether you use choose the one
or two step workflow, the persons assigned as approvers/reviewers have to
decide if a document may reach the next step or not. Technically both steps
are identical, they just use a different wording. Initiating a workflow is done
by setting approvers/reviewers when a document or a new document version
is added.

The main properties of the traditional workflow are:

• one or two step process


• users/groups involved in the workflow are set when assigning the work-
flow to the document version

5.2.2 The advanced workflow engine

For more complex workflows the advanced workflow engine must be used. It
enables the user to define workflows with any number of steps, self defined
states and actions, and even sub workflows. The users involved in the work-
flow has to be set when defining the workflow, which is a major difference to
the traditional workflow engine, where the users doing the approval/review
are set when the document version is created. This makes the advanced work-
flow much more controlled by the administrator, who also defines the work-
flow. The users will not be able to add any users or groups to the workflow,
they just select one of the predefined workflows when adding a document or
a new document version.

The main properties of the advanced workflow are:

• arbitrary number of workflow steps


• sub workflows are possible
• users and groups are assigned when the workflow is defined

5.3 Getting started with the advanced workflow engine

In order to understand how workflows in SeedDMS work, one has to un-


derstand how a workflow is modelled. Let’s start with a definition of some
terms.

workflow: A workflow consists of workflow states and transitions. A work-


flow starts in a predefined initial state and traverses along the transitions
0 5 WORKFLOWS 53

into other states until no more transitions are possible. A final state in
the workflow is reached, when the state is associated with a document
status.

state: The current status of the workflow. A state can be for example ’rejected’,
’legally approved’, ’waiting for qm’. The workflow traverses from state
to state when transitions are executed. A workflow state is not to be
confused with a document state. Technically speaking, states are the
nodes in the workflow graph.

transition: A transition is the change from one state to the next state. Tran-
sitions are the edges of the workflow graph. A transition can only be
triggered by a given list of users and groups, when a defined action is
run. Such an action can be ’approve’, ’revise’, ’reject’, etc. transitions
may need more than one trigger to execute, e.g. if several users have to
approve a document.
trigger versus execute a transition: If a user runs an action on a document
version which possibly changes the state, then this is called triggering a
transition. If the workflow state changes, than this is called executing a
transition. Currently, triggering means that the user clicks on a button
and comments the action. Such a trigger may or may not be sufficient
to execute the transition, because there could be other users which also
have to trigger the transition. After each trigger of a transition it will
be checked whether all conditions are met to execute the transition and
whether to proceed to the next workflow state. Triggers are currently
only implemented for user interaction, but other triggers may be added
in the future.
action: the actual operation run on the document version. Each transition has
an action which when run, triggers the transition. Actions just have a
name and are basically for giving the trigger a contextual meaning.
sub workflow: The modelling of a sub workflow is identical to a regular
workflow. Any workflow can be used as a sub workflow. Branching
into a sub workflow is only possible if the current state is equal to the
initial state of the sub workflow and the user is allowed to trigger the
next transition in the current workflow.

A workflow and a sub workflow are just a list of transitions and an initial
state. There is no principal difference between the two and they are equally
modelled. Starting from an initial state there are a number of possible transi-
tions ending in a new state. Each transition can only be triggered if the user
has the right to do so.

The purpose of sub workflows is to replace a transition with more states in


between. Such a case can happen, if approval or rejection of a document is
put in charge of a group of persons, e.g. a department. If the department
head decides to set up its own workflow within his department, he can run a
sub workflow. During the lifetime of the sub workflow, the former workflow
(parent workflow) is paused. Sub workflows can only be started if the current
0 5 WORKFLOWS 54

workflow state is equal to the initial state of the sub workflow. In order to
return to the parent workflow two conditions must be met:

1. the state of the sub workflow must be a valid state in the parent work-
flow
2. the person initiating the return to the parent workflow must be allowed
to trigger the transition which was replaced by the sub workflow

The second condition requires all end states in the sub workflow, also being a
state in the parent workflow. Currently this is not checked before entering the
sub workflow.

A workflow can be assigned to a document version just like any other attribute
if the user has sufficient rights. Once a workflow is assigned, the document
version will change its document status to in workflow. As long as the work-
flow has not left its initial state, it can be removed from the document version
by any users with write permission on the document. Once it has left the
initial state it cannot be removed without rewinding the workflow to its initial
state. Rewinding the workflow will remove the log of triggered transitions
and set the document status on the initial state of the workflow. Rewinding
can only be done by administrators. The same procedure is true for sub work-
flows as well. Once a sub workflow has started it can only be left as long as it
is in its initial state or has reached a state in the parent workflow. Leaving a
workflow in between will required to rewind it to the beginning and dismiss
all transitions done so far.

A workflow is finished if a workflow state is reached, which also defines a


document status. Such a document status is either ’rejected’ or ’released’.

While traversing the workflow, various users and groups are put in charge
to trigger a workflow transition. This requires at least read access on the
document, otherwise the user will not be able to access the document at all.
As there is no way to ensure read access for all involved users and groups
when the workflow is started, it will be checked whenever a new workflow
state is reached. All users and groups involved in the next transition will get
read access on the document, if it is missing. This read access will remain,
even after the document has left the workflow.

Creating a workflow can be very error prone, because various conditions have
to be met for a working workflow. The workflow manager tries to detect most
errors when creating the workflow. Errors which are being detected are:

• A missing initial state.


• Missing final states, one for releasing and one for rejecting the docu-
ment.
• A missing assignment of a user or group to a transition for triggering
the transition.
0 5 WORKFLOWS 55

• Workflows with cycles, if a workflow state can be reached again which


was already entered before.

SeedDMS does not keep you from using a workflow with one of the above
errors. The last condition may sound restrictive as there are real world work-
flows, which for example require to recheck a document once it was modified.
SeedDMS will not handle this in a single workflow, because editing a docu-
ment will result in a new document version which will start a new workflow.

5.4 Getting started with the traditional workflow engine

For understanding the traditional workflow it is helpful to have a look at the


internal operations involved. The traditional workflow engine has two steps
which are very similar. Actually, they just differ by their name.

• Review of the document


• Approval of the document

Internally both steps are modelled with a list of users or groups (reviewers
or approvers), each having a list of operations done. Those lists are called
the review or approval log. Each entry in the log has a status, a comment,
and a user who has initiated the operation. Such a user can be the person
in charge for approving or rejecting the workflow step or any user allowed to
manipulate the workflow. Such an operation is for example the initial setup of
the workflow step, the deletion of the user from the workflow or the approval
or rejection of a workflow step. The document status is recalculated from the
last entries in the approval or review logs, whenever a new entry is added. In
the traditional workflow the workflow steps reflects the document status. This
differs from the advanced workflow where all workflow states are mapped
onto the document status ’in workflow’.

In a very simple example with just one user having to approve a document
there will be accordingly just one entry in the list of approvers and initially
also just one entry in the approval log indicating the start of the workflow and
also that there has been no action by the user so far. Once the user has ap-
proved the document the approval log will contain a second entry indicating
the approval and also containing the user’s comment. As this is the only user
in charge for approving the document, the document status will imediately
change to ’approved’. Keep in mind, that document status actually means the
status of the latest version. Be aware, that the same could happen if that only
user was removed, either as a approver or by deleting the whole user. In that
case the last log entry indicates the removal of that user, but that also means
there is no user in charge anymore for approving the document, just like the
approver has never been added. The document will be released.

Document review or approval is always done by users, though it is possible


to assign groups for review or approval. Assigning of a group means that any
0 5 WORKFLOWS 56

user being a member of that group may review or approve the document and
it is sufficient if just one member of that group does the review or approval to
finish the workflow step.

5.4.1 Mandatory reviewers and approvers

A mandatory reviewer/approver is either a user or group which is always


set if a certain user uploads a document. The user can add further review-
ers/approvers but he/she will not be able to remove the mandatory review-
ers/approvers.

5.4.2 Access rights

Review and approval is only possible if the user/group has at least read ac-
cess rights on the document. For that reason the list of users/groups be-
ing selectable when adding a reviewer or approver is possibly missing some
users/groups. It is also imaginable that a user/group has been taken away
read access or the user being disabled after the user/group was assigned
as a reviewer/approver. In that case the document version can not be re-
view/approved anymore by that user/group, though the user will still have
that document counted on the my documents page. It is up to the admin-
istrator to resolve this issue either by granting read access or by replac-
ing/removing the user/group as an reviewer/approver. The list of review-
ers/approvers will also have a warning if a certain user cannot fullfil his/her
task.

5.4.3 Removing reviewers or approvers

Removing a user may also effect the workflow of a document. First of all
the removal of the user will remove him/her from all workflows, by adding
a log entry indicating that the user has been removed. Second the user will
be removed as a mandatory reviewer/approver from all other users, which
allows them to upload documents without review/approval, if this was the
only mandatory user.

The first case may lead to undesired review/approval of a document, if the


deleted user was the only or last one in charge for the workflow steps. Re-
moving that user will leave the document without a reviewer/approver which
is equal to not having set one in the first place, leading to instant approval of
that document version.

The second case may allow users which previously had a mandatory re-
viewer/approver to upload documents without additional review/approval.
0 6 NOTIFICATION 57

5.4.4 Changing reviewers or approvers

Changing reviewers or approvers after a document has been uploaded is


somewhat crucial as users have been informed already and some may have
even done their review/approval. Therefore, it is only allowed for users with
unrestricted access on the document (usually the owner of the document and
administrators) and if the workflow is still in its initial state.

5.4.5 Other pitfalls

Another cause of confusion can be groups assigned as a reviewer/approver


without any members. SeedDMS will not keep you from assigning such a
group nor does it warn you if a group previously assigned has lost its mem-
bers, but is still in charge for review/approval of a document. Though it will
issue a warning in the list of reviewers/approvers if a group has no members
anymore. Those documents will stay in its current state until the review-
ers/approvers are changed or the group gets a new member.

6 Notification

Notifications in SeedDMS are for monitoring documents or folders. Any user


can add a notification for himself or one of the groups he or she is a member
of. Notifications are being triggered when the document or folder changes or
is deleted. Though there are various triggers for notifications, the user may
not select certain triggers and discard others. Setting a notification will always
include all notification triggers. Notifications are send by email. Sending of
notifications can be completely turned off in the configuration by unchecking
’Enable E-mail’.

In order to add a notification the user must have read access on the document
or folder. Each folder and document may have any number of notifications,
which is called the notification list of that document or folder. The notification
list will be cleaned up, whenn the access rights of the folder or document
change. Users or groups who loose read access will automatically be removed
from the notification list.

Notification must be explicitly set, but there is one exception. If ’Enable re-
viewer/approver notification’ or ’Send notification to users in next workflow
transition’ is set in the configuration then all users and groups involved in
the next workflow step will be notified. There is no way to turn this off for
individual documents, because the notification is rather implizit and cannot
be removed from the document.

Another option in the configuration is ’Enable owner notification by default’.


Though it appears similar to ’Enable reviewer/approver notification’ it has
a major difference. If set, a notification for the owner will be automatically
0 6 NOTIFICATION 58

added to the new document, just like it was added manually. This can be re-
moved at any time later and it will be removed automatically if the user looses
read access on the document. But, if the owner of the document changes, the
original owner will keep the notification. There is no way to tell later if the
notification was added automatically or manually.

SeedDMS distinguishes between the action that triggers a notification and the
type of notification. Actions can trigger several notifications and a certain type
of notification can be triggered by different actions.

6.1 Notification types


Document added: Informs about a new document.
Folder added: Informs about a new folder.
Document deleted: Informs about deletion of a document.
Folder deleted: Informs about deletion of a folder.
Document moved: Informs about moving of a document.
Folder moved: Informs about moving of a folder.
Document status changed: Informs about a status change of a document, e.g.
when an approval was submitted and the document was either released
or rejected.
Document name changed: Informs about a name change of a document.
Folder name changed: Informs about a name change of a folder.
Document comment changed: Informs about a comment change of a docu-
ment.
Folder comment changed: Informs about a comment change of a folder.
Document expiration date changed: Informs about a expiration date change
of a document.
Approval submitted: Informs about an approval submitted for a document
Review submitted: Informs about a review submitted for a document
Document owner changed: Informs about a new owner of a document
Folder owner changed: Informs about a new owner of a folder
Document access permission changed: Informs about changed access per-
missions of a document
Folder access permission changed: Informs about changed access permis-
sions of a folder
Document updated: Informs about an updated document
0 6 NOTIFICATION 59

Notification added: Informs about a new notification of a folder or document.


Notification deleted: Informs about deletion of a notification of a folder or
document.
Attributes of document version changed Informs about a single attribute of
a document version which has changed
Request approval: Informs about the need to approve a document.

Request review: Informs about the need to review a document.


Request workflow action: Informs about the need to take action in the next
workflow step.
Workflow transition triggered: Informs about triggered transition in the
workflow.

Approver deleted: Informs, that a user has been removed as an approver


Reviewer deleted: Informs, that a user has been removed as a reviewer

6.2 Actions

Notification are send for the following occurences.

Document added: Notifications are send to all users and groups watching
the new document and its parent folder. If ’Enable owner notification
by default’ is turned on, the owner of the document will automatically
be added to the list of notifications of the new document. If ’Enable
reviewer/approver notification’ and the traditional workflow mode is
turned on the reviewer will be notified or if there is not reviewer the
approver will be notified. If ’Send notification to users in next work-
flow transition’ and the advanced workflow is turned on, the users and
groups involved in the first workflow step will be notified.
Folder added: Notifications are send to all users and groups watching the
new folder and its parent folder.

Folder deleted: Notifications are send to all users and groups watching the
folder to be deleted.
Document deleted: Notifications are send to all users and groups watching
the document to be deleted and its parent folder.

Document moved: Notifications are send to all users and groups watching
the document to be moved, the old folder and the new folder.
Folder moved: Notifications are send to all users and groups watching the
folder to be moved, the old folder and the new folder.
0 6 NOTIFICATION 60

Document attributes changed Notifications are send to all users (plus the
owner of the document, if he or she is not currently logged in) and
groups watching the document. This action can trigger the notifications
’Document name changed’, ’Document comment changed’ and ’Docu-
ment expiration date changed’
Folder attributes changed Notifications are send to all users (plus the owner
of the folder, if he or she is not currently logged in) and groups watch-
ing the folder. This action can trigger the notifications ’Folder name
changed’, ’Folder comment changed’
Document owner changed Notifications are send to all users and groups
watching the document.
Folder owner changed Notifications are send to all users and groups watch-
ing the folder.
Document access permission changed Notifications are send to all users and
groups watching the document.
Folder access permission changed Notifications are send to all users and
groups watching the folder.

Document updated A ’Document updated’ notification is send to all users


and groups watching the document. A ’Document expiration date
changed’ notification is send to all users and groups watching the doc-
ument, if the expiration date has also changed. ’Request approval’, ’Re-
quest review’ or ’Request workflow action’ will be send if needed.

Document expiration date changed Notifications are send to all users (plus
the owner of the document, if he or she is not currently logged in) and
groups watching the document.
Document approved Notifications are send to all users and groups watching
the document. This may result in two notifications. One for submitting
an approval and one for a possible document status change.
Document reviewed Notifications are send to all users and groups watching
the document and the user who as uploaded the document version. This
may result in two notifications. One for submitting a review and one for
a possible document status change.

Approver/Reviewer changed Notifications are send to those users and


groups who have been affected by the change, either because they have
been added as a new reviewer/approver or because the have been re-
moved as a reviewer/approver.

Workflow set Notifications are send to those users and groups who are in-
volved in the first workflow step.
Workflow transition triggered Notifications of type ’Request workflow ac-
tion’ are send to those users and groups who are involved in the next
workflow step. Notifications of type ’Workflow transition triggered’ are
send to all users and groups watching the document.
0 7 AUTHENTICATION 61

Attributes of document version changed Notifications are send to all users


and groups watching the document. The will be for each changed at-
tribute.

Notification added An initial Notification is send to the user or group just


added a notification. Other users or groups watching the document or
folder will not be notified.
Notification deleted One last notification will either be send to the user or
groups whose notification was deleted. Other users or groups watching
the document or folder will not be notified.

7 Authentication

Authentication in SeedDMS is either accomplished by an external service


(namely LDAP or ADS) or by the internal user database. Either way, there
must be an entry for the user in the internal database to be able to log in.
The LDAP authentication service of SeedDMS can create an user in the in-
ternal database if one is missing and if this is allowed in the configuration
(’Restrict access’ must be disabled). In that case the initial user data is taken
from LDAP. Once an user account is created, it will not be updated with data
from the LDAP Server.

7.1 Password security

SeedDMS has various mechanism to ensure passwords are save and hard to
compromise. SeedDMS can keep track on how old a password is and whether
a password has been used before, when the user is forced to choose a new
one. Passwords can be forced to have at least a given strength. There are two
possible strength algorithms. A rather simple one that takes the length and
the used chars into account, and thh advanced algorithm, which takes various
aspects into account, like the length, the use of special chars, the entropy of
the password, etc.

Password can be forced to expire after a configurable number of days. The


user will than still be able to log in but be redirected to a page for changing
the password. For even more security the new password can be checked
against the last n passwords to ensure a new password has been chosen. Both
can be configured in the section ’Authentication settings’ on the ’System’ tab.

7.2 Protection against login attempts

Brute-force attacks try to login with possible user/password combinations.


SeedDMS can detect this by counting the number of login failures. If the
number exceeds a configurable limit, the account will be disabled until an
0 8 DATA MODEL 62

administrator reenables it. The counter is reset on a successful login. Accounts


of administrators will never be disabled due to failed logins, as it would allow
attackers to disable certain accounts. Therefore, administrator logins can be
restricted to a given list of IP numbers. This all must explicitly be configured
in the settings.

7.3 Roles

Users in SeedDMS have one of the predefined roles ’Administrator’, ’User’ or


’Guest’. Administrators have unlimited access to all documents, folders and
functions. Users are restricted by access rights and will only be able to use
those functions, which affect their own data but cannot do an adminstrative
tasks. Guest will never have more than read access on documents and folders
and cannot use any of the functions except for changing the users interface
language.

Guest logins have a password, just like any other account, but it is also possi-
ble to specify a guest login, which can be used to login without a password. A
guest login is only possible if explicitly allowed in the configuration. The login
page will then contain a link ’Login as guest’, which will login the configured
guest user without asking for a password. You can even allow automatic lo-
gin, if any other page of SeedDMS is accessed and there is currently no user
logged in. Turn this on by checking ’Enable auto login for guest’ in the con-
figuration.

8 Data Model

The underlying data model of SeedDMS is very similar to a regular file system
with documents and folders being organized in a hierarchical structure. Fold-
ers can contain subfolders and documents. Both are owned by a certain user
and have access restrictions for reading and writing. Besides that, SeedDMS
offers more features not regularly found in a file system:

• Documents can have different versions


• Documents and folders can have user defined attributes
• Each document version has a status
• Document versions can be reviewed and approved
• Files can be attached to documents
• Documents can refer to other documents

The data model is fully implemented in what is called the SeedDMS Core. It
does all the database operations. Quite often the core provides a very basic
0 8 DATA MODEL 63

access on the data in general and puts no meaning to concepts like a document
status or access rights. It is up to the web application and the user interface
to provide reasonable operations by taking e.g. a document status or access
rights into account.

8.1 Document

What is called in SeedDMS a document is actually a container for an unlimited


number of versions. Because the name version can easily be confused with
the version number it is often called content of the document. The content
of a document represents the actual file behind the document. There can be
various versions of a document and SeedDMS will keep them all until they
are deleted. Both, the document and the version have some given attributes.
For documents these are:

• Name
• Comment
• Owner
• Keywords
• Access rights
• Date of creation
• Date of expiration

Versions contain a file and have the following attributes:

• Version number
• Comment
• Creator
• Mimetype
• Original filename
• File size
• Checksum
• Date of creation

Creating a document implies the creation of a version and putting it into a


document. This version is also called the latest content or latest version. Updat-
ing a document can be either the modification of the document attributes or
0 8 DATA MODEL 64

adding a new version. Versions will automatically be numbered starting with


1, though one can choose any other version number as long as it is not smaller
than the last version number.

Both, document and version have its own comment. For a document with just
one version, which is also unlikely to be updated in the future, the document
comment is more reasonable to be used. If there are more versions to come,
then choose a comment for the document that is unrelated to a specific ver-
sion and put those additional information related to the version itself into the
version comment.

Keywords can only be added to a document. In the data model this can be
any text, but SeedDMS provides a user interface to select keywords from a
predefined list and stores them comma separated into this attribute. Remov-
ing a keyword from one of the predefined lists will not remove the keyword
from the document.

The owner of the document is initially set by SeedDMS to the currently logged
in user, when a new document is created. The owner can be changed later
by the administrator. The owner is always somebody from the list of user
accounts. Being the owner of a document means to have full access on the
document. If other users are allowed to modify the document, they will also
be able to add new versions. The creator of such a version will be set to the
user adding the version. There are no access rights derived from the creator.
It is just for an informational purpose. The owner of the document remains
the user having done the initial creation of the document unless the owner is
changed afterwards.

Access rights will be discussed in detail later on. Just one note: access right
do not take the version into account. If a user has a particular access right on
a document, it has it for each version as well, regardless on who added that
version.

The date of creation is something stored for both documents and versions. For
the first version the date of creation is identical to the date of creation of the
document (though in theory they could differ because of minimal time lack
between the creation of the two). Later versions will have the current time.
The document creation date will never be updated.

A document has another date which specifies the point in time when the doc-
ument expires. Thought this date is a property of a document it has influence
on the status of the last version (see below for more information on the doc-
ument status). The way SeedDMS handles this is mostly driven by the user
interface and not the underlying core of SeedDMS. The core just provides
methods to set the expiration date and to recalculate the status of the latest
version. It is the user interface which calls those methods when needed.

Whenever a document is accessed through the user interface the expiration


date is checked against the current time. If the expiration date is in the past
and the latest version is still set to be released, it will change its status to
expired. This is somewhat confusing, because the expiration date is a property
0 8 DATA MODEL 65

of the document but the status is actually a property of a version (though


it is often referred as document status). So in theory adding a version to a
document with an expiration in the past, will set the status of that new version
immediately to expired. Actually, SeedDMS’ user interface will by default
unset the expiration date of the document when a new version is uploaded.
So, new versions will not be expired right away.

A version has some more specific properties which are related to the actual
file being stored. The mimetype, file size and checksum could be derived
from the file itself but are also stored in the database for better performance,
security and redundancy. The original file name is the name provided by the
browser when the file was uploaded. It would get lost, if it was not stored in
the database, because SeedDMS renames the file when put into the data store.
The mimetype is either provided by the browser or determined on the server
when a new version of a document is uploaded. In general it is good advice to
let the server determine the mimetype, because browsers often deliver slightly
different mimetypes for the same file format which complicates the generation
of the preview images and fulltext index. The checksum of an uploaded file
is always calculated on the server. It is used to discover modifications of a
document content.

8.1.1 Status

As mentioned previously, the document status is not as easily understood


as expected. This status should actually be called version status because it is
stored per version. The document status as occasionally mentioned in the user
interface of SeedDMS is the status of the latest version. If this document uses
the term document status it will exactly use it in that notion.

The version status can be one of the following values:

• released
• expired
• obsolete
• waiting for review
• waiting for approval
• in workflow
• rejected

The first three values are possible for any document, the other values are only
possible for documents in the traditional or advanced workflow.

The status is not stored as a single value but as a list of status changes. Each
change will add a new entry containing the date of change, the new status, a
0 8 DATA MODEL 66

comment and the user in charge for the change. The core of SeedDMS pro-
vides methods for modifying this list of changes directly, but most of the time
this is done by a method which checks various parameters and recalculates a
new status, e.g. reviewing a document version. The core just keeps track of
the document status but does not interpret it in any way. This means for ex-
ample, that expired or obsolete document versions can still be altered at will.
It is completely up to the application to give the document status a meaning
and possibly restrict certain operations on a document.

8.1.2 Links

Documents can be linked together in the sense of a hyperlink in the WWW.


Except that the link is not placed in the document content itself but attached
to the document. The target is also just another document. The user interface
calls this related document. Those links can either be public or only visible to
the user creating the link. There is no further meaning in the link.

8.1.3 Attachments

Attachments are very much like attachments known from emails. It can be
any file associated with the document. Attachments have a name, a comment
and are always public if the document is readable by the user. All other
regular users will see the attachment only if it is explicitly marked public.
Since SeedDMS 5.1.0 attachments can be either linked to the document or a
specific version of the document. Files attached to a version of a document
will be deleted when the version itself is deleted.

8.1.4 Categories

Categories are a rather simple concept of attaching predefined tags to a doc-


ument. Categories can only be defined by an administrator, but can be used
by all users when adding or modifying a document. Categories are linked to
documents only. Compared to keywords they are linked on the database level,
which means, that a category cannot be deleted if is still used by a document.
Categories are often used to classify a small number of document types (like
order, invoice, contract) or to associate a document to a certain domain, depart-
ment, etc. SeedDMS can filter documents by category in the search result.
User defined attributes can to some extend be used to achieve a similar user
experience.

8.2 Folder

Folders are containers for other folders (subfolders) and documents. Folders
have a very similar set of attributes like documents:
0 DOCUTILS SYSTEM MESSAGES 67

• Name
• Comment
• Owner
• Access rights
• Date of creation

There meaning matches those of the document attributes.

8.3 Attributes

Beside some already described hard coded attributes - folder, documents and
versions can have user defined attributes. These attributes are key/value pairs
complying with an attribute definition previously set up by the administrator.
Attribute definitions declare various properties of an attribute:

• the object type it can be used for (folder, document, or version)


• the type of the value (string, integer, float, email, date, ...)
• an optional set of allowed values
• a minimum and maximum number of values
• a regular expression the value must match to be valid

The object type can limit the scope of where an attribute may be used. If it
is not set, it may be used for folders, documents and versions. The minimum
value determines whether an attribute is required. Any value greater then 0
will make the attribute mandatory. The maximum number of values is only
usable if a set of values is given. The regular expression is only used for
attributes of type string. SeedDMS core will not enforce any of the restrictions
mentioned above. The database will store the attribute value always as a
string. A given value set must be in the form <sep><value><sep><value>...
with <sep> (separator) being any character not used in a value itself. Any
white space right after and before a separator will be removed, when the
attribute definition is saved.

Docutils System Messages

system-message
ERROR/3 in administration.txt, line 630
Duplicate target name, cannot be used as a unique reference: "work-
flows".

You might also like