All Versions
125
Latest Version
Avg Release Cycle
21 days
Latest Release
282 days ago

Changelog History
Page 2

  • v4.2.2 Changes

    March 21, 2022
    • Ensure the object copy permission is required for the object copy link.
    • Migrate old workflow EmailAction instances instead of sub-classing for backwards compatibility. Improves commit b522dac80f7f6cfb8c5db8a74d6d2d22bc8b281a and avoids a double entry in the workflow state action selection downdown list.
    • Ensure new document and file links access works like their respective views. The links will be active when the access is granted for the source as well as the document/document type.
    • Filter unread message count badge by message read permission.
    • πŸ“‡ Update document metadata model field label from "Metadata type value" to "Metadata value".
    • πŸ›  Fix document file signature serializer label.
  • v4.2.1 Changes

    February 16, 2022
    • πŸ”€ Merge improvements from version 4.1.6.

      • Append the text "signed" to the label of a signed document file instead of using the temporary filename used during signing.
      • Ensure the signed document file is used when the file downloaded is requested and when calculating the signed document file checksum. Solves issue in forum post 6149. Thanks to forum user @qra for the report and debug information.
      • Update IMAP source store commands to be optional.
      • Update email sources SSL checkbox to be optional.
      • Undo POP3 source context manager changes from commit c19040491e20c9a783ae6191613bc8c5f7acb038. It seems Python's email libraries do not have feature parity. imaplib was updated to support context managers but poplib was not.
    • ⚑️ Update requirements to specify Python version 3.6 to 3.9.

    • ⚑️ Update Django version 3.2.11 to 3.2.12.

  • v4.2 Changes

    February 12, 2022
    • ⚑️ Update Django to version 3.2.11.
    • ⚑️ Update django-widget-tweaks from version 1.4.8 to 1.4.9.
    • ⚑️ File staging sources updates:

      • Use StreamingHttpResponse to serve previews.
      • Support office document files for preview.
      • Fix extra brackets in the encoded and cached filenames.
      • Simplify image generation.
      • Use context manager to ensure preview images are always closed.
    • Hide all links that depend on users being authenticated.

    • βž• Add support for return binary content in batch API requests as a base64 string.

    • βž• Add support for dynamic field API serialization. This feature adds the URL query keys _fields_only and _fields_exclude. Nested serializers are supported using the double underscore (__) separator.

    • πŸ”¨ Refactor ResolverRelatedManager.

    • 🐳 Move Docker templates to their own folder.

    • ⚑️ Move the docker-dockerfile-update target to the Docker makefile.

    • ⚑️ Update Docker image tags:

      • Postgresq from 10.18-alpine to 12.9-alpine.
      • Python from 3.8-slim to 3.11-slim.
    • ⚑️ Update psycopg2 from version 2.8.6 to 2.9.2.

    • ⚑️ Update redis client from version 3.5.3 to 4.0.2.

    • Reduce the Sentry client default traces_sample_rate from 0.25 to 0.05.

    • πŸŽ‰ Add the run_initialsetup_or_performupgrade command to the Docker entrypoint.

    • ⚑️ Docker Compose updates:

      • Add a Redis profile.
      • Default to RabbitMQ a broker.
      • Change default RabbitMQ image from 3.9-alpine to 3.9-management-alpine.
      • Improve Traefik configuration.
      • Add a dedicated network for Traefik.
    • 0️⃣ Completed the Whoosh backend and made it the default search backend.

      • Ensure all test models are deleted, including intermediate many to many models created automatically.
      • Update DetailForm usage for the new interface.
      • Move flatten_list to the common app.
      • ResolverPipeline updates:
        • Support resolver_extra_kwargs.
        • Add queryset exclusion support to ResolverRelatedManager.
      • Update related field resolution using pure Django
      • Solve all search indexing edge cases.
      • Models are indexed using smaller tasks to improve scalability.
      • Refactor ResolverRelatedManager. Use Django's internal get_fields_from_path for related field introspection. Support more related field cases.
      • Trigger indexing on related model changes
      • Fix lock manager management command test.
      • Don't index None values in lists.
      • Unify the search test mixins.
      • Use TemporaryDirectory for test search backend. Do automatic clean up of the temporary index directory.
      • Remove the separate related model index signal handlers.
      • Make Whoosh the default search backend.
      • Support reverse many to many indexing.
      • Add indexing optimizations.
      • Rename methods for clarity.
      • Move the any_to_bool function to the common app.
    • ⚑️ Update base image from Debian 10.10-slim to 11.1-slim.

    • 🚚 Move the parse_range utility from the documents app to the common app.

    • πŸ‘» Retry Whoosh LockErrors by encapsulating then in the general app exception DynamicSearchRetry.

    • Added the search_index_objects management command to trigger the queuing of search models from the CLI.

    • βž• Added the search_status management command to show indexing status of the search backend.

    • 🚚 Move SQLite check to the databases app.

    • βž• Add support for inclusion and exclusion regular expressions for watch folders. Closes GitLab issue #965. Thanks to Sven Gaechter (@sgaechter) for the request.

    • ⚑️ MIME type app updates:

      • Add support for MIME type detection backends.
      • Add PERL mimetype backend.
      • Add Linux file command backend.
      • Rename mimetype app to mime_types.
    • βž• Add a search backend for Elastic Search.

    • ⚑️ Search app updates:

      • Support initializing the search backends.
      • Add method to reset backends.
      • Moved get_resolved_field_map and get_search_model_fields to the SearchBackend class.
      • Normalize true values for scope 0 match_all.
      • Added a new task task_reindex_backend to abstract backend reindexing.
      • Add constant maximum retries value to the task_deindex_instance and task_index_instance tasks.
      • Add ranged search model indexing.
      • Add the search_slow queue for long running search tasks.
      • Support backend initialization, reset, and tear down.
      • Automatically add the id field as a search field for all search models.
      • Separate backend initialization from app initialization.
    • βž• Add Elasticsearch test container makefile targets.

    • Unify the files .env and env_file.

    • Switch all standalone containers to use a prefetch-multiplier of 1.

    • πŸ”„ Change the Docker Compose network name from bridge to mayan.

    • πŸŽ‰ Add the search_initialize and search_upgrade management commands. These are called automatically after the initial setup and after upgrades.

    • Add new search settings called SEARCH_INDEXING_CHUNK_SIZE to set the number of objects to prepare when performing bulk indexing.

    • πŸ“‡ Metadata validation and parsing updates:

      • Expand the parser and validator path fields to 224 characters.
      • Add automatic registration of parsers and validators.
      • Add support for passing arguments to parsers and validators.
      • Add a regular expression parser to replace values and a regular expression validator.
    • πŸ”¨ Authentication refactor:

      • Subclass Django's authentication views to add multi form and multi factor authentication.
      • Add support for authentication backends. Authentication backends are able to control and customize the entire login process, including the forms presented to the user. Authentication backends can use mixins and can be subclassed to mix and expand their capabilities. Included authentication mixins: AuthenticationBackendRememberMeMixin Included authentication backends: AuthenticationBackendModelDjangoDefault, AuthenticationBackendModelEmailPassword, AuthenticationBackendModelUsernamePassword. Apps define authentication backends in the module authentication_backends.py.
      • Removed the now unused EmailAuthBackend class.
      • New settings:
      • AUTHENTICATION_BACKEND which must be the dotted path to the backend used to process user authentication.
      • AUTHENTICATION_BACKEND_ARGUMENTS which is an optional YAML structure to pass to the authentication backend.
    • βž• Add Time based One Time Password (TOTP) support. To enable set the setting AUTHENTICATION_BACKEND to mayan.apps.authentication_otp.authentication_backends.AuthenticationBackendModelUsernamePasswordTOTP for username and TOTP login. For email and TOTP logins use mayan.apps.authentication_otp.authentication_backends.AuthenticationBackendModelEmailPasswordTOTP. New management commands to support OTP:

      • authentication_otp_disable: disables OTP for a user
      • authentication_otp_initialize: initializes the OTP state data for all users. This command is for debuging and maintenance in case the database migration does not correctly initialize the OTP state data for existing users.
      • authentication_otp_status: display the OTP status for a user
    • βž• Add URL links to the document file and document version first pages to the document serializer in the API.

    • Convert the download file deletion interval into a setting named DOWNLOAD_FILE_EXPIRATION_INTERVAL which defaults to 2 days.

    • Convert the shared uploaded file deletion interval into a setting named SHARED_UPLOADED_FILE_EXPIRATION_INTERVAL which defaults to 7 days.

    • Don't display API URL links to indexing instance and template parents that are also root nodes as these are not accessible.

    • Register more models using DynamicSerializerField to display the canonical serializer of the model when referenced by other objects.

    • πŸ‘ For object that have children objects or that support nesting, the parent object ID is now added to the serializer. The layout is {parent object name}_id. A few objects already provided the parent ID but with a different schema. These objects also now have the parent ID field with the new schema even if it displays a duplicate value. The old ID field is now deprecated and will be removed in version 5.0.

    • βž• Added a workflow state column displaying all created actions labels separated by a comma.

    • βž• Added the mailing profile created and edited events.

    • ⚑️ User menu and views updates:

      • Reorganize all user links under a single "User details" link.
      • Allow editing the locale profile of users.
      • Allow editing the theme settings of users.
      • Unify user data related views.
      • Add "User theme edited" and "User locale profile edited" events.
    • ⚑️ Update the Django debug view CSS and layout to match Django's original appearance.

    • πŸ‘Œ Support Django debug JavaScript code.

    • Minor CSS optimization to the Django debug view.

    • βž• Add Docker Compose password randomizer.

    • Include LDAP libraries and Python modules.

    • ⚑️ Events app updates:

      • Use the correct attribute for fetching event types. Use id instead of name.
      • Cache the event type instance in the StoredEvent model.
      • An incorrect event type ID will now return a KeyError instead of masking the exception and returning an error message. It is now up to the calling code which action to take when the event type ID is not correct.
      • The previous unknown event error message is now available as a literal named literals.TEXT_UNKNOWN_EVENT_ID.
    • βž• Add workflow template transition trigger API. Closes GitLab issue #1044. Thanks to Ludovic Anterieur (@lanterieur) for the request and research.

    • Fine tune workflow template permissions to require the view permission instead of the edit permission when applicable.

    • ⚑️ Error log updates:

      • Added a global error log list to the tools menu.
      • Error log partitions now link to their underline object via content type too.
      • Error log partitions are now retrieve or created on demand.
      • Added cascade permission support to error log partitions and entries.
    • ⚑️ Update the ObjectActionAPIView view to allow passing extra context to serializers.

    • βž• Add support for launching workflows from the API.

    • πŸ”¨ Refactor language activation to work with Django 3.2.

    • βž• Added the mailing profile created and edited events.

    • βœ‚ Remove workflow instance exception usage. Current state property is now inspected.

    • βœ‚ Remove menu proxy inclusions. Model proxies are now included by default.

    • βž• Add menu proxy exclusions.

    • ⚑️ Update the subject and body fields of the document email workflow action to be optional.

    • Redirect to current user to user detail view after password change.

    • πŸ‘Œ Support two different psycopg2 versions for upgrade testing.

  • v4.1.9 Changes

    April 24, 2022
    • βœ‚ Remove hardcoded search model variable name from search_box.html template.
  • v4.1.8 Changes

    April 23, 2022
    • πŸ›  Fix the search model API URL reference. Closes GitLab issue #1098. Thanks to Bastian (@Basti-Fantasti) for the report.
    • Use the SEARCH_MODEL_NAME_KWARG instead of hard coding the search model API URL reference.
    • πŸ”€ Merged changes from version 4.0.22:

      • Remove usage of flat values list in document checkout manager.
      • Remove usage of flat values_list queryset in metadata managers module.
      • Cleanup markup of the confirmation form.
      • Remove redundant modal close button.
      • Fix search proxies method decorator.
      • Reorganize converter office MIME type list.
      • Improve metadata validation error message.
      • Don't display API URL links to indexing instance and template parents that are also root nodes as these are not accessible.
      • Remove repeated partition file close call.
      • Update Django version 2.2.24 to 2.2.28.
    • Reduce the Sentry client default traces_sample_rate from 0.25 to 0.05.

    • βž• Add keyword argument to self.stderr and self.stdout usage.

    • In FilteredRelatedFieldMixin, split retrieval of the queryset to avoid the exception handler from capturing an AttributeError that it shouldn't.

    • ⚑️ Updated the subject and body fields of the document email workflow action to be optional.

    • Migrate old workflow EmailAction instances instead of sub-classing for backwards compatibility. Improves commit b522dac80f7f6cfb8c5db8a74d6d2d22bc8b281a and avoids a double entry in the workflow state action selection dropbox.

    • ⚑️ Partials navigation updates:

      • Streamline JavaScript partials navigation code.
      • Make the AJAX response redirect code configurable. New setting APPEARANCE_AJAX_REDIRECTION_CODE added.
      • Remove repeated AJAX redirection middleware.
    • βž• Add keyword arguments to zip file calls.

    • PartialNavigation.js improvements.

      • Clean URL query on form submit and use form data as the URL query.
      • Remove dead code.
      • Use constants where appropriate.
    • Backport new document link condition logic. Ensure new document and file links access works like their respective views. The links will be active when the access is granted for the source as well as the document/document type. Closes GitLab issue #1102. Thanks to Julian MariΓ© (@Angelfs) for the report and debug information.

    • πŸ‘Œ Improve logic of the new document file link

      • Access the view user in a more reliable way.
      • Test the new file permission of the document and not of the document type.
      • If no document is present in the view exit fast.
      • Update tests.
  • v4.1.7 Changes

    April 01, 2022
    • πŸ›  Backport fixes from version 4.2.3

      • Add restart policy to the Traefik container definition.
      • Remove duplicated Document.get_label method.
      • Fix an issue where a staging folder would not tag uploaded documents.
      • Fix document file signature serializer label.
      • Update document metadata model field label from "Metadata type value" to "Metadata value".
      • Filter unread message count badge by message read permission.
      • Update signature view permission label from "View details of document signatures" to "View document signature".
      • Ensure the object copy permission is required for the object copy link.
      • Fix GUNICORN_REQUESTS_JITTER documentation setting name reference.
  • v4.1.6 Changes

    February 15, 2022
    • Append the text "signed" to the label of a signed document file instead of using the temporary filename used during signing.
    • Ensure the signed document file is used when the file downloaded is requested and when calculating the signed document file checksum. Solves issue in forum post 6149. Thanks to forum user @qra for the report and debug information.
    • ⚑️ Update IMAP source store commands to be optional.
    • ⚑️ Update email sources SSL checkbox to be optional.
    • Undo POP3 source context manager changes from commit c19040491e20c9a783ae6191613bc8c5f7acb038. It seems Python's email libraries do not have feature parity. imaplib was updated to support context managers but poplib was not.
    • ⚑️ Update requirements to specify Python version 3.5 to 3.9.
    • ⚑️ Update Django version 2.2.24 to 2.2.27.
  • v4.1.5 Changes

    February 03, 2022
    • πŸ›  Fix CAA document links. Closes GitLab issue #1068. Thanks to Matthias LΓΆblich (@startmat) for the report.
    • βœ‚ Remove superfluous apostrophe character in sort heading markup.
    • πŸ›  Fix email sources processing a single message but performing cleanup on multiple messages. The intended behavior is restore which processed one message and cleans up the processed message only.
    • Fix reference to shared_uploaded_files before the variable being available.
    • 🚚 Use context managers for the IMAP and POP3 sources to remove the possibility of orphaned descriptors.
    • 🌲 Create error log entries for objects that existed before the last error log changes. Fix GitLab issue #1069. Thanks to Will Wright (@fireatwill) for the report.
    • πŸ”¦ Expose the workflow template auto_launch field via the REST API. Thanks to forum user @qra for the request.
    • βž• Add EmailAction subclass for backwards compatibility with existing workflow state actions.
    • πŸ”¦ Expose the checkout datetime, expiration datetime and user fields via the REST API. Thanks to forum user @qra for the request.
    • πŸ”§ Print configuration path value when failing to access error is raised.
    • πŸ›  Fix references to the SourceBackendSANEScanner source backend class.
    • βœ… Reorganize the testing setting modules.
    • βœ‚ Remove unused MySQL testing setting module.
  • v4.1.4 Changes

    December 01, 2021
    • πŸ”„ Changes merged from versions 4.0.20 and 4.0.21.

      • Perform more strict cleanup of test models.
      • Clean up the test model app config cache after the test end not before the test model is created.
      • Improve lock manager test cases.
      • Add standalone Celery beat container.
    • πŸ›  Fix document version first page thumbnail image resolution. Closes GitLab issue #1063. Thanks to Will Wright (@fireatwill) for the report and the patch.

    • βž• Add libjpeg and libpng to the dev setup target.

    • πŸ›  Fix editing OCR content via the API.

    • πŸ›  Fix the AdvancedSearchViewTestCaseMixin class. It had GenericViewTestCase as a base class when it is supposed to be a mixin and not have any.

    • βž• Add AutoHelpTextLabelFieldMixin. This mixin tries to extract the label and help text from the model field when the serializer field does not specify any.

    • βž• Add filtering to the parent field of the index template node serializers. Restrict options to the current index template and allows removing the now redundant validation.

    • Add index_template_root_node_id field to the index template serializer. Closes GitLab issue #1061. Thanks to Ludovic Anterieur(@lanterieur) for the report and initial implementation.

    • πŸ›  Fix responsive menu close button triggering home navigation. Closes GitLab issue #1057. Thanks to Raimar Sandner (@PiQuer) for the report and debug information.

    • JavaScript optimizations:

      • Cache argument length when in .fn.hasAnyClass.
      • Configure fancybox just once.
      • Set converter image functions as async.
      • Remove jQuery's one usage.
    • βœ‚ Remove the error logger model locking and cache the model value instead at the time of registration. Closes GitLab issue #1065. Thanks to Will Wright (@fireatwill) for the report and debug information.

    • πŸ“‡ Rename ErrorLog model to StoredErrorLog. This change follow the normal paradigm when a service is provided by a model and a runtime class.

    • Make the StoredErrorLog name field unique to ensure get_or_create works in an atomic way.

    • 🌲 Create the error log partition when the model instance is created.

    • 🌲 Normalize the error log partition name format using a static method.

    • βœ‚ Delete the error log partition on model instance deletion and not just the error log partition entries.

    • βœ… Ensure a memory database is used when running the tests.

  • v4.1.3 Changes

    November 02, 2021
    • ⚑️ Vagrant updates

      • Load installation value from config.env file.
      • Update supervisord during installation.
      • Setup the APT proxy during installation.
      • Change how APT and PIP proxies are defined to match the Docker build target.
      • Add makefile for vagrant.
      • Move devpi targets to the main makefile.
    • ⚑️ Sentry client backend updates:

      • Add more SDK options.
      • Add typecasting to options.
      • Add debug logging.
      • Add Celery integration.
      • Add Redis Integration.
      • Lower the default value of traces_sample_rate from 1 to 0.25. This value is better suited for production deployments. Increase to 1 for full debug information capture during development or testing.
    • ⚑️ File staging sources updates:

      • Use StreamingHttpResponse to serve previews.
      • Support previews for office document files.
      • Fix extra brackets in the encoded and cached filenames.
      • Simplify image generation.
      • Use context manager to ensure preview images are always closed.
    • ⚑️ Sources app updates:

      • Don't assume all source backends provide an upload form.
      • Improve SANE scanner error handling.
      • Fix logging of non interactive source errors.
      • Show interactive source processing as a message.
    • πŸ›  Fix the copying of the bootstrap alert style.

    • πŸ’… Optimize the copying of the boostrap alert style by executing it only in the root template. This runs the code just once instead of running it on each page refresh. The element #div-javascript-dynamic-content was also remove and it is now created and destroyed dynamically once just.

    • Ensure that the resolved_object is injected into the context before passing the context to the link's check_condition method. Suspected cause of the GitLab issue #1052 and #1049. Thanks to Ludovic Anterieur (@lanterieur) and Johannes Bornhold (@joh5) for the reports and debug information.

    • ⚑️ Converter updates:

      • Fix duplicate asset display. Closes GitLab issue #1053. Thanks to Ryan Showalter (@ryanshow) for the report.
      • Split the transformation cache_hash method to allow subclasses to modify how the cache hash is calculated.
      • Include the asset image hash into the asset transformation hash calculation. This change invalidates all cached page images that use an asset if the asset image is modified.
      • Improve the way the absolute coordinates of the percentage asset paste transformation are calculated.
    • πŸ‘‰ Use redirection instead of the output_file argument to allow the SANE scanner source to work with more SANE scanner versions.