Version 3.3

Post Reply
User avatar
Posts: 546
Joined: Tue Aug 21, 2018 3:28 am
Location: Puerto Rico

Version 3.3

Post by rosarior »

Released: December 3, 2019


Three new apps are included in this release.

This app now handles filesystem caching in a reusable way. Each file cache collection also has a maximum size limit. Once this limit is reached the file cache will automatically delete the oldest entries. This ensure file caches don’t grow infinitely.

The web links app allows creating links from documents to external resources. These links are defined using the template language for variable substitution.

The document redactions app allows censoring private document information in a non destructive way. Once applied, the area will be obscured to every other part of the system. This includes the preview and OCR systems.


Support was added for checking in and out multiple documents at a time.


The numeric dashboard widget was updated to display numbers in local format. This applies to decimal and thousands separators.


The command installjavascript was been renamed to installdependencies.

The package djcelery was replaced by the package django-celery-beat.

Celery was updated to version 4.3.0. This changes some settings:



The dropzone widget is now used for the document version upload form.

The document trashed event was added.


The included Redis server was removed from the Docker image. A separate Redis container must now be deployed.

Celery Flower was added to the Docker image. This is Celery’s recommended task monitor tool.

Several entrypoint commands were added. These are run_celery, run_frontend, run_tests, run_worker. These commands allow running containers with a specific purpose. Adding more containers with the run_worker command is a simple way to scale up an existing installation.

All Docker scripts were updated to use the Alpine Linux versions of PostgreSQL and Redis.

Added a run_command to the Docker entrypoint to run arbitrary Mayan management commands.

It is now possible to specify the queue list for the run_worker Docker command. The command accepts one of two environment variables: MAYAN_WORKER_NAME or MAYAN_QUEUE_LIST. These environment variables are only read by the run_worker command. They are not used by the rest of the image or other commands.

The installation procedure was updated to use two Redis databases. One for the message broker, and the other to store task results.

The default fast and medium worker concurrency was set to 0 (auto scaling).

File metadata

Support was added for wildcard MIME type associations for the file metadata drivers.

The EXIFTOOL driver was updated to run for all documents regardless of MIME type. Even with non image documents, this driver still provides some useful file information.


An index reset tool was added. This tool erases the entire index instance, and allows user to then rebuild a clean index from scratch.

A document template sandbox feature was added. This new feature allow testing templates against a specify document.

Lock manager

A distributed Redis lock backend was added to the lock manager app. This lock helps keep multiple Mayan EDMS instances synchronized, even if they are running on different hosts. This new lock requires one argument: redis_url.

The redis_url argument must be added to the new LOCK_MANAGER_BACKEND_ARGUMENTS setting.


Code: Select all

LOCK_MANAGER_BACKEND_ARGUMENTS='{"redis_url": "redis://"}'

The permission “Execute document tools” can now be granted via ACL. This allows giving access to roles to document tools without granting the permission globally.

Python 3

The Docker image was updated to use Python 3. The documentation was also updated to use Python 3.


API endpoints were added to the document signatures app.

An API endpoint to the a document’s type was added.

The OCR API submit endpoint URL was changed from:

Code: Select all


Code: Select all


It is now possible to disable the simple search via the new SEARCH_DISABLE_SIMPLE_SEARCH setting.


Support for setting migrations was added. This feature will reduce the number of manual configuration file updates needed between upgrades.

Support for quoted configuration entries was removed. Quoted settings must now be specified as normal nested dictionaries. Settings affected:


However migrations were added for these settings and most users will not notice any change.

Support was added to allow user-specified location for the configuration file with the CONFIGURATION_FILEPATH (MAYAN_CONFIGURATION_FILEPATH environment variable), and CONFIGURATION_LAST_GOOD_FILEPATH (MAYAN_CONFIGURATION_LAST_GOOD_FILEPATH environment variable) settings. This allows setting the location of the configuration file independently of the MEDIA_ROOT setting.

Multi database configuration is now supported. To specify multiple databases, use the new MAYAN_DATABASES environment variable.


Code: Select all

This is the same as passing the environment variables:

Code: Select all


The IMAP source was updated to work using message UIDs instead of message index. This makes the IMAP email source for resilient and its email processing order predictable.

Support was also added for custom IMAP search criteria. By default NOT DELETED is used to process non-deleted messages.

The IMAP source can now also execute custom IMAP STORE commands on processed messages. The command defaults to +FLAGS (\\Deleted).

After processing IMAP message it is now possible to specify a destination mailbox. This allows keeping processed email instead of just deleting them.

The IMAP expunge command can now be turned on or off.

User interface

A new vertical main menu was added. The previous main menu is now split into two menus. One located on the left side for document related links and a new top bar menu for system and user links. The vertical main menu remain open even when clicking on items for faster access. Upon a browser refresh, the menu will also restore its state to match the selected view.

Support was added to display help texts for view columns. By default the help text of the corresponding model field is used and shown as a tool tip.

Is is now possible to change the system messages position using the new DEFAULT_MESSAGE_POSITION setting. The default value is top-right.


The workflow preview was improved to provide bigger, more readable previews. The workflow state actions are now included in the preview.

Support was added for workflow context. Workflow context allows adding variable and values to a running workflow. These variables can then be used by the different workflow state actions.

Fields support was added to the workflow transitions. These allow adding extra fields to capture user input. The value of the extra fields is added to the workflow context and it is available to the workflow state actions.

A new workflow action to send automated emails was added.

The HTTP POST action received several updates. The first, add authentication and headers support. The timeout field now supports template for dynamic timeouts. It also now supports integers, floats, or empty values.

Another workflow action added is the document sign action. This action will perform detached or embedded signing of a document.

Docker image available at:

Python packages available at: and installable via:

Code: Select all

pip install mayan-edms==3.3
Release notes:
Post Reply