Version 4.5.9

Released: February 5, 2024

Status: Stable

Changes

This version includes the changes from version 4.4.12 plus the following:

Appearance

Don’t raise an error if a form view has no form defined. This can be the case for dynamic forms based on ACL where the current user has no access for any of the fields.

Dependencies

Updated dependency versions:

  • django-test-migrations from 1.1.0 to 1.3.0.

  • pypdf from 3.14.0 to 3.17.4 due to CVE-2023-46250.

  • safety from 3.0.1 to 2.3.5.

Docker

Updated the Docker image tags:

  • debian from 12.2-slim to 12.4-slim.

  • elastic from 7.17.9 to 7.17.17.

  • keycloak from 20.0.1 to 20.0.5-0.

  • postgresql from 13.11-alpine to 13.13-alpine.

  • python from 3.11.4-slim to 3.11.7-slim.

  • rabbitmq from 3.12.2-alpine to 3.12.12-alpine.

  • redis from 7.0.12-alpine to 7.0.15-alpine.

User interface

Completed the changes started in version 4.5 to normalize how the project/installation title and URL are calculated.

The deprecated setting COMMON_PROJECT_URL has been removed as its intended purpose is now performed by the settings ORGANIZATIONS_INSTALLATION_URL and ORGANIZATIONS_URL_BASE_PATH.

This change also fixes the title of the REST API documentation showing the text ‘None’ when the COMMON_PROJECT_TITLE setting was left to its default value.

Other

  • Minor query optimizations.

Removals

Dependencies

PyPDF2 is replaced with the original pypdf.

Documents

The queue named uploads has been split into multiple new queues. Ensure

Removal the unused signal signal_post_document_created. Use the signal_post_document_file_upload instead of Django’s default post_save signal for the Document sender.

Sources

Removal of the email metadata attachment support. Removal of the email message attribute to metadata support. These are replaced with the new source metadata feature.

Task manager

Tools” queue was removed Each app is now responsible of defining its own queue for slow tasks.

Removal of unused sources_fast queue.

Backward incompatible changes

Docker

Renamed all environment variables containing POSTGRES to use the full name POSTGRESQL. These are: MAYAN_DOCKER_KEYCLOAK_POSTGRES_TAG, MAYAN_KEYCLOAK_POSTGRES_VOLUME, MAYAN_DOCKER_POSTGRES_IMAGE, MAYAN_POSTGRES_VOLUME.

Rename any usage of these variables in your .env file.

Documents

Removal of the setting DOCUMENTS_STUB_EXPIRATION_INTERVAL. Document stub expiration interval is now configure on a per document type basis via the user interface or API.

Removal of the unused signal signal_post_document_created. Use Django’s default post_save signal for documents or signal_post_document_file_upload to handle new file uploads.

Search fields removed:

  • Cabinet membership of document removed from:

    • Document file

    • Document file page

    • Document version

    • Document version page

  • Document comments removed from:

    • Document file

    • Document file page

    • Document version

    • Document version page

  • Workflow transition comments removed from:

    • Document file

    • Document file page

    • Document version

    • Document version page

  • Document description removed from:

    • Document file page

    • Document version page

  • Document file MIME type removed from:

    • Document file page

  • Document version comment removed from:

    • Document version page

  • Metadata removed from:

    • Document file

    • Document file page

    • Document version

    • Document version page

  • Tags removed from:

    • Document file

    • Document file page

    • Document version

    • Document version page

Deleting a document file is now a background task and not an immediate operation. The document file view and API view are updated to reflect this. The result code of the document file deletion API view has changed from 204 (No content) to 202 (Accepted).

Document file actions now use a short name instead of a non descriptive number. The new action names are as follow:

1 is now ‘replace’ 2 is now ‘append’ 3 is now ‘keep’

Likewise the API field has changed from ‘action’ to ‘action_name’.

The queue named uploads has been split into multiple new queues. Ensure that the uploads queue is empty (there are no pending uploads or uploads in progress) before performing the upgrade. Failure to do so will cause pending uploads to be ignored and then deleted at the next garbage collection cycle.

Sources

Removal of YAML metadata attachments in email sources.

Removal of sender, subject, and message ID metadata collection.

Staging folder and watch folder now only work with real files and ignore symlinks.

Task manager

Removal of the “Tools” queue. Each app must now define its own queue for slow, long lived operations.

Workflows

The WorkflowTemplateStateActionSerializer field action_path is now called backend_path, and the field action_data is now called backend_data.

The workflow template state action template no longer has direct access to the document to which the workflow is attached via the variable {{ document }}. To access the document, do so indirectly via the {{ workflow_instance }} variable with {{ workflow_instance.document }}.

Deprecations

  • The Cabinet API serializer field named parent, will be removed in version 5.0. Use the parent_id instead which is functionally identical.

  • The IndexTemplateNodeSerializer serializer fields parent and index will be removed in version 5.0. Use fields parent_id and index_id which are functionally identical.

  • The WorkflowInstanceSerializer field named workflow_template_url will be removed in version 5.0. Use the url attribute of the workflow_template instead.

Issues closed

  • None