Release 6.24.0 (2025-09-11)

Published 2025-09-11 09:44:48Z

Server

New

  • GET /api/db: Render historic versions. If a specific version is requested, this patch delivers the actual version of the object at the specific time of when it was saved. With this, linked and reverse objects are rendered in the version which was current when the historic object was saved. To restore the old behavior latest_linked=1 can be used as URL parameter. This patch also stores the microseconds of the create date of new objects. [d23538b7b] [a09727a93]

  • /inspect/files: Add action to map remote stored files to locale storage. This also sets a X-Fylr-Storage-Location header to /api/eas output. This patch also removes the unused support for the remote delete url. It was meant to be used for eas in place migrations, but we now use a different concept for that (storage location which uses the EAS file layout). Also, when restoring easydb5 EAS urls using fylr restore, remove the mimetype from the URL and set it via _technical_metadata. This enabled the action map_to_locale_storage work on such remote files. [2d176e49f] [6b56cda26] [39da9a75b]

  • File renditions: Support Kodak Photo CD PCD format. The default format for renditions is JPEG although PCD is lossless, but PCD is so good at compressing, a 5 MB PCD file would blow up to 20 MB PNG taking too much space. The same image is only 1.8 MB as JPEG. Already existing PCD files can be re-synced to produce renditions using /inspect/files. [ae97a70b9]

Improved

  • fylr backup/restore: Improvements & Bugfixes. [33fb6867a] [1bfe749cf] [72531a6c4] [9dc4e3209] [9eed16d92]

  • /api/db|search: For deferred linked objects, output the _system_object_id along with the _uuid. Before we only had _uuid showing up for such ghost objects. Improved the output of such deferred objects in inspect/object render. Also, improved the database constraint check to make sure the linked system object id is 0 if the uuid is given. This was the intention of case TYPE_LINKED: linked_object_uuid WITHOUT FK but failed to work because the way Postgres ignores such checks if partial matches are NULL. Since this wasn't a problem with current systems, we are not creating a migration step for this. [2cc54c1c0]

  • Go 1.25: Update build system to use Go 1.25. The new JSON implementation is turned on, it promises faster decoding. [dd384db50]

  • Task Module metadata: Force metadata requests. This forces requesting metadata for images, even if the metadata h ad already been produced. With this patch, ChatGPT requests can be repeated. [d5c3dc3fe]

  • /api/search[type=message]: Support search for message._id. [c5c7a32d4]

  • /eas/rput[/bulk]: Support to set technical_metadata.mime_type. This patch allows to set the mimetype in "file" by setting _technical_metadata.mime_type in rput[/bulk] request. [6b56cda26]

  • POST /api/db: Don't allow to link deleted objects. Also, improved checks for deferred linked objects. [37b972f34] [37b972f34]

  • /api/db: Add OBJECT_UNDELETE and OBJECT_PURGE events. These events are clearer than OBJECT_DELETE with info.policy as it was before. Already written OBJECT_DELETE events are not changed. [8ce2e5135]

  • /api/config: Support default values for bool. This change switches boolean to a 3-state system internally. "unset", false and true. With this change, setting a default for a boolean in the config becomes possible. [78a50ebfa]

  • Plugin Updater: Use Etag in addition to Last Modified to check if an plugin installed by URL needs an update. [2b0bece67]

Fixed

  • Custom Datatype Updater: Fix panic when used with custom_types.TYPE.update.plugin_user.reference. [af9146073]

  • Dockerfile: Use init program S6 to start fylr. With this zombie processes are avoided. Such zombies would be created if a sub process started by fylr didn't clean up all further sub processes it had created (like "tesseract" when killed by fylr due to a timeout). [1293d5f86] [ac71dc16c]

  • Export XLSX/CSV: Export thumbnails (XLSX) even if custom fields skip _standard. Also, skip _standard_parent in that case. [7cbdfc6d5071]

  • ZIP file delivery: Set correct Content-Type in HTTP response for file streamed out of ZIP files. Before, no Content-Type was set, which caused problems in Firefox when trying to load css from plugins. [ae6dc5093] [77382cd85]

Plugins

  • Typo3 Plugin: The Typo3 Plugin version 3.1.2 was released and now supports version 13.

Frontend

New

  • Editor Persistence: A new functionality has been added to the editor. Now, when saving, the exact scroll position within the editor will be remembered. Additionally, tab and panel type mask splitters will also retain their state. This ensures that the user remains in the same position within the editor after saving.

  • Mask Memory Manager: Implemented a new manager in the editor that stores information about the last mask used between editor and detail mode. This allows the mask selection to be maintained when switching between modes and objects.

  • Keyboard Events: Keyboard events have been added to improve the usability of the application. Now it is possible to use shortcuts such as CTRL+A to select all objects in the search, navigate using arrow keys, use CTRL+S in editors to save, CTRL+N to open a new editor, etc.

  • Ghost Linked Objects: Support has been added to display linked objects that have been permanently deleted, for example in the change history. If a linked object no longer exists in the application, it will be displayed correctly with minimal information (object type and mask), indicating to the user that it is a deleted object.

  • Relative Date Ranges for Search: A new feature has been added to Date Fields, allowing the definition of relative date ranges based on the current date when executing a search. This new mode enables configuration of direction, unit, and range value. For example: "From now to 30 days in the future" or "From 30 years ago to now." This allows for more dynamic searches, useful for background tasks.

Improved

  • Validations in Nested Popovers: Data validation within nested popovers has been improved, and validation error messages will now be displayed inside the popover.

  • Linked Objects in Filters: Improvements have been made in how linked objects are displayed in filters. This is related to how we render the filter group header for linked objects.

  • Query Elements: Support has been added for copying, cutting, and pasting query elements in the search input, making manipulation of query element groups much easier.

  • Linked Objects: Added the ability to define custom placeholders for linked object fields in the Mask Editor.

  • Nested Table: The delete row button behavior in nested tables has been improved. In cases where the nested table always contains a row, pressing the delete button will now clear the row content instead of being disabled.

  • Editor Reload Prompt: The reload prompt behavior has been improved when an object has been updated externally or a reverse field has been modified. Now, multiple stacked prompts will no longer appear, and both object data and reverse objects will reload correctly.

  • Change History: Versions in change history that contain reverse records will now display a snapshot of the reverse records at the time the version was created.

  • User Frontend Prefs: Improved the design of the new user preferences panel for the frontend.

Fixed

  • Trashbin: Fixed the purge alert description.

  • Field REGEXP Validation: Fixed the REGEXP validation label for fields in the editor.

  • Export Manager: Fixed validation in the export manager when only the XLSX format was selected.

  • Editor: Fixed the getBestMask method when called from a new object not retrieved from the server.

  • Search: Icons for audio, video, and office assets are now displayed in Overlay View as well.

  • Hierarchy Manager: Fixed the hierarchy indicator in the new standard and text result views in lists.

  • Detail Fullscreen: Refactored dark theme styles for the hierarchy browser in fullscreen mode.

  • Hierarchy Manager: Fixed the hierarchy path issue where it became unresponsive when changing the result view in search.

  • Collection Upload: Fixed Collection Upload settings; the frontend was sending an incorrect linked_pool_id value in cases where this data was not needed.

  • Shared Collections: Fixed the recursive count in shared collections, and also improved filtering to exclude non-allowed collections.

  • Location Manager: Added a new field remote_url_prefix to the form of filesystem locations.

  • Popovers: Fixed an issue where popovers did not resize correctly when opened for the first time.

  • Query Elements Selection: Fixed an issue preventing the use of shift+A in the search input, which incorrectly triggered the select-all event.

  • Main Search: Fixed an issue where main search results were not updated after adding new objects when the "hide newly created records" option was enabled.

  • Collections: Fixed a bug that displayed the compatibility alert with EasyDB4 multiple times in instances migrated to Fylr.

  • Date Ranges: Fixed a bug in expert search where date ranges did not correctly trigger the apply button update.

  • Print Manager: Fixed a bug preventing images from loading correctly in very large PDFs due to the lazy_loading property. Additionally, Print Manager now ensures that all images are fully loaded before invoking the print library.

  • Nested and Reverse Nested Tables: Fixed a bug that prevented nested and reverse nested table rows from being saved correctly when configured as readonly in the mask.

  • Tag Fields: Fixed a bug where tag fields were not rendered correctly in the detail view.

  • GeoJSON Column: Fixed methods that retrieve the custom OT map center or zoom when the GeoJSON column is inside a reverse linked object.

  • Editor Reload Prompt: Fixed a bug that prevented saving when the reload prompt appeared after a reverse linked object was modified.

  • Polyhierarchy Parent Field: Fixed the behavior of the polyhierarchy parent field in expert search and in the query element editor.

  • Has Value Filter: Fixed the use of has_value with the AND operator.

  • Background Tasks: Fixed the scheduler for background tasks to send the correct time format to the server.

  • Data Tree Construct: Fixed an edge case where the tree build process could get stuck in an infinite loop due to recursive copyObject calls. The legacy function was replaced by the modern implementation that uses a safer approach.

  • Nested Popovers: Fixed an issue preventing nested popovers from opening when a separator mask splitter was used in the nested configuration.

  • Table View: Fixed an error causing some fields not to display in the table when those fields were not visible in certain object type masks.

  • Asset Browser: Fixed the default height of the asset browser in the sidebar.

  • No Rights Popup: Fixed a bug that displayed multiple "no rights" popups in the editor for limited rights linked objects.

Last updated