Release v6.19.0 (2025-03-27)

Published 2025-03-27 15:17:13Z

Important

This release forces a blocking re-index. Make sure to plan enough time for this update as your users will not be able to access the database while the re-index is running.

Server

New

  • Startup: New fylr.yml config fylr.elastic.startupConnectTimeSec. This new config allows to configure the seconds fylr tries to reach the indexer at startup. Defaults to 50.

  • Export / OAI/PMH: Add option to embed linked objects which are in main search. We already had embed linked object if not in main search, this adds the variant to embed linked objects if they are in main search. [493502db]

  • Custom Versions: Support WEBP for custom downloads and exports. Also adds a new parameter --webp-quality to fylr convert. [62bc077f]

  • /api/collection: Added _count_recursive as a new property sibling to _count. The new property contains the number of objects links in the collection and all its descendants. [fb0c3539]

  • XSLT 3.0 support: Migrated the XSLT processor from xsltproc to saxon. We use Saxon-HE in the fylr Docker image. Contact us if you need streaming support for Saxon-EE. [d9787d68]

Improved

  • /api/db: Performance improvements for huge databases. [31ad5110] [72894b6e] [d1f03b6c]

  • /api/db: Speed up loading reverse objects, improved loading of objects in GET /api/db, GET /api/db[list], after POST /api/db. The improved loading contexts skip reverse and other flags if not needed by the format. Also, skip reverse loading with url parameter skip_reverse_nested (in POST, was already like that for GET). [2737c17c]

  • /api/export|eas/download: Support quality in custom versions. Support for parameter quality was missing from easydb 5. This patch adds this back. In easydb 5 it was named jpeg_quality. [b1d831e2] [214b6788] [cd15f7d9]

  • /api/search: Added .range_year|month subfields for daterange, date & datetime. Enable range support for date & datetime. We had this for daterange already. [fe26104f]

  • /api/search: Added support for system field in reverse nested. Requires a re-index. [7d3de23d]

  • /api/search[type=event]: This is now only allowed with system right system.api.event[get]. [9290459d]

  • /api/search: The filename without extension was added to the full text index (required re-index). [a9f655da]

  • Notifications: The notification cleanup can cover more cases now. The case is that a transition action has been removed before a notification caused by it was sent out. [46862bd8] [77b7dca4]

  • Startup: Output error message if plugin glob path could be found. Before this was silently ignored. [79473b04]

  • Page: Service Unavailable: Removed link to home. [45450339]

  • File worker: New recipe parameters for more compatible MP4 renditions. This will be applied to new uploads or if file renditions are re-produced using /inspect/files. [ae2d5f45]

  • File worker: Recognize webdvd.zip extension (to enable client support). There is no webdvd.zip support in fylr, but with this patch, the extension is recognized (in class office), so that we can support the existing frontend WebDVD player. [4cf13eb7]

  • Reverse Proxy: The reverse proxy will now set x-forwarded-* headers as described here. [d655f3fa]

  • WebDAV Hotfolder & PUT /api/eas?collection: Support nested create_version and improve update match. With create_version uploaded assets can be appended to an existing nested. Also, the matching for filenames is now word based for the value, so a filename like bergsee.jpg will match in bergsee.jpg; another.jpg. The separators are comma, semicolon and newline. Spaces are trimmed. [46537e6a]

  • CSV Export: Render hierarchy standard info into _path. Before this was only including ids. [fa740966] [ee50a52d]

  • Extension Plugins: Relax error parsing for improved statuscode detection. If a plugin returned {"code": "some.error", "err": "custom error", "statuscode": 400}, the statuscode response would be 500, because the error was parsed as api error in strict mode and api error has no err property but error. This patch relaxes the strict parsing, so whatever is found in the responded error json is parsed into api error and, if statuscode is set, returned to the caller. Also, the X-Fylr-Error and X-Fylr-Error-Code headers are set if an api error is found in the response json with properties code and error, resp. [0c7823ce]

  • fylr convert: Support capitalized extensions. [a99a9d07]

  • fylr backup / restore: Various improvements & fixed. [f9b52617] [34966ba3] [c2a28539] [05c1f085] [4ec96cb1] [ce882db8] [944aa1cb] [2b65a076] [50f7de7e] [aa0c31ef]

Fixed

  • /api/db: Fix crash bug in reverse self linking case. In a specific case where a reverse linked object would be used together with a bidi linked objects linking to itself, fylr would crash. Also improved detected of illegal paths in hierarchies. [f67de25c] [5ad30714]

  • /api/db: Fixed a case where saving wasn't possible because of missing mask system rights. [16a54b5f]

  • /api/db: Fixed importing object types without mask. [8ac1ab92]

  • /api/right: Don't output rights from disabled plugins. [ca1f62e3]

  • /api/export: Write FILE_DOWNLOAD events if files are downloaded via ZIP or TAR files. [e2e121aa]

  • **/api/export: Prevent recursion in XML export. Cases using bidirectional nested, could lead to fylr crashing (stack overflow). [a2c29611]

  • Event listener: This patch fixes a problem in event broadcasting which could lead to contention and made fylr unresponsive to POST /api/db. [ed7874de]

  • Janitor: Fix removing remote addresses from events. The base config event_remote_addr_expire_days was never properly read from the config system and thus no remote address ever got deleted by the janitor on any fylr. [27e9d682]

Frontend

New

  • Core Event Manager: Moved the Admin Event Manager code from the event-manager-plugin to the core app. The manager it is now available without requiring an additional plugin. See #75531

  • Recursive Count in Collections: Collections now display the total number of items (including children) when collapsed and the exact count when expanded. See #75057

  • Expert Query Editor: Added a new functionality in the query element fields (input search) that allows users to click and edit query content without deleting and recreating them. See #72671

  • Date Filter Enhancements: Introduced new .range_year and .range_month subfields for date-based columns to improve date-range filters and expert searches. See #75418

Improved

  • Admin Event Manager: Added support for the right system.api.event[get] in the admin event manager. See #75531

  • Export Custom Version Quality: Added a new “keep” option to the quality selector (JPEG/WebP) so the original quality remains unchanged. See #75439

  • QueryElementGeoBoundingBox: Added support for storing bounding box search data so such searches can be saved and restored. See #33713

  • Pinned Facets: Added a secondary label in pinned filters to display the object type, helping distinguish filters with the same name. See #70863

  • result-Card-Path: Switched truncate style when there are four or more path elements and limited the “one-line” style to standard result cards (search) and used a multi-line style elsewhere. See #75625

  • Collection Upload Settings: Strengthened validation of the update_policy field in the collection upload settings. See #74790

  • Plugin Manager (Install Form): The plugin install form was enhanced to avoid sending both zip_file and url simultaneously and to only show the relevant field (URL or ZIP) depending on the chosen mode. See #75617

  • Message Types: Changed the order of message types for improved clarity in the messaging interface. See #72818

  • Plugins Manager: Page now auto-reloads after a plugin is installed and enabled, streamlining the setup process. See #75305

  • Search Execution: Allowed the search manager to run without triggering a “wait” block, preventing flicker (especially useful in map- based searches). See #33713

  • ResultDynamic Rendering: Improved how dynamic objects render inResultDynamic, so the DOM only updates when new data is ready, reducing flickering. See #33713

  • Editor-Templates-Customize: Optimized data table views inside smaller pop-ups. See #75423

  • Tag Filters Popup: Centered checkboxes, removed unnecessary scrollbars, and allowed the popup to grow if table labels get wider. See #75428

  • Asset Download Confirmation: Admin Messages now include asset IDs and classes for all requested downloads in confirmation events. See #74668

  • Plugin Manager (Add Plugin Form): Added an “Enable” checkbox in the Add Plugin form so plugins can be enabled immediately upon upload. See #75305

  • GeoJSON Column: Added a new combo box to the geoJSON field editor, allowing for faster feature creation (e.g., parsing points in multiple formats). See #33713

  • Metadata Browser: Added support for a multiline label with “read more/less” in the metadata table for asset info. See #74937

  • Standard Path Tooltip: Added a tooltip showing the full path in the standard path element. See #75625

Fixed

  • Admin Event Manager: Fixed the display logic for the remove event button by verifying the system.api.event[delete] right. See #75531

  • Fylr – Export Manager Color Profile: Corrected behavior for unset color profile values, aligning it with server expectations (empty instead of null). See #75439

  • Nested Popup: Fixed an issue where EAS fields were not correctly processed in nested table pop-ups. See #75600

  • Download Manager: Fixed missing field info when creating download managers, corrected the title when downloading a single asset, and improved handling of filtered assets. See #75604

  • Change History: Fixed loading of the latest object version in comparison mode to ensure consistent diff structures. See #75017

  • Expert Search: Fixed errors when opening the expert search if certain parent fields were not initially visible. See #75489

  • Date Filters: Removed a duplicate day aggregation that led to unexpected hierarchies. See #75418

  • Admin Messages: Corrected the handling of min/max checked fields in confirmation messages. See #75490

  • Restoring Nested Fields: Addressed a bug preventing nested field input queries from being restored in stored searches. See #75471

  • Detail Asset Browser: Resolved an overflow issue in the “File Variants” (Versions) tab. See #75434

  • Search Result Card: Fixed the text color inheritance in result- card-path so it correctly follows the parent’s foreground. See #75431

  • GeoJSON Field Restore: Fixed an issue where geoJSON fields failed to restore from stored searches if the Turf library was not yet loaded. See #33713

Plugins

  • Geo-JSON Plugin: We've released the first beta version of the Geo-JSON plugin for fylr, enabling visualization, editing, and interaction with geographic data using "Geographic" type fields.

Last updated