Release v6.17.0 (2025-01-30)

Published 2025-01-30 15:00:54Z

Server

New

  • Fulltext & OCR: Improved full text support for office files. Full text is now extracted using Apache Tika. It supports all office formats as well as PDF. For OCR we are deploying Tesseract. This works for most image formats and office formats (via PDF). Rendering of pages (via PDF) works now on all office formats too and is now 10 - 100 x faster than v6.16. We switched from ppmtopdf to mutools. OCR is on in the default produce config for PDF only. [20be1c15] [71b5e189]

  • File formats: Support EPUB format. This is imported as office format and offers page previews. Rendering is done with Calibre. Also support raw format CR3 from Canon. [60069b19] [844ffd5b]

  • Terms: Add # to the recognized characters for terms (like _). For normal texts, the "#" is now part of the term. So #hashtag is kept as is. With that, such terms can be search via token mode. Existing objects need to be re-saved for this change to take effect. [ce975f3a]

  • /api/db|search: Add generated_rights.owner. owner: true indicates that a resource is owned by the current session user. [1e7d4cdb]

  • System rights: New system rights for /api/system/location, /api/system/backup and /api/plugin/manage. [0106402c]

Improved

  • /inspect/objects: Default object filter to latest. Also support query language in object filter using prefix ql: [e7b2a49f] [9e61d2ea]

  • /inspect/files: Add class to the search filter. [d17c0df2] [0f60b06e]

  • /inspect/files: Improved re-sync on renditions. Before this patch, resyncing version would result in producing the version twice. By using the action sync instead of action produce this patch fixes this problem. While at it, improve handling of skipped children, now, if no children in state done or error can be found, the original state is set back to done instead of being kept in sync. Also, fixed produce versions action. The produce version action would fail to delete the versions if at least one versions used a different source version than the original. Also, support version production with empty extensions. If a version is configured to be produced for any extension it will be produced for all enabled upload extensions for the class. Fixed a bug which could cause a no source hash found error. [20be1c15] [734c410f]

  • /inspect/migration: Add email sending to backup / restore. An email field can be filled to send an email after backup or restore commands have finished. Fixed function to pre select options of dropdown menus from previous backup/restore runs. [1d38caa3] [bd7b3462]

  • fylr backup / restore: Improvements. [a229166f]

  • /api/eas: Removed children and pages_allowed. Users must now use the info.json from the pages.zip rendition to gather all necessary information. [20be1c15]

  • fylr metadata read: Omit ZIP info block from exiftool. The ZIP metadata block read from exiftool can get very big (if the ZIP has many files) and is not used by fylr. So, we skip this when reading metadata. This results in leaner metadata per pages.zip file. [20be1c15]

  • fylr metadata read: Add technical_metadata.pages to DOCX, DOC & PPTX (if set in metadata). For PPTX the number of slides is shown pages. [20be1c15]

  • fylr pdf2pages: Supports csv, doc, docx, odp, ods, odt, ppt, pptx, rtf, txt, xls, xlsx as source formats (needs soffice). Also support -v to output issued commands. Also page sizes are now for the shortest side. Default recipes: Produce pages for office documents too. [20be1c15]

  • Indexer: Use file _fulltext from children when indexing objects. If any of the rendition carries _fulltext information, objects which link to their original can now be found.

  • /inspect/datamodel: Output used custom data types and the plugins they belong to. [aa315f05]

  • Docker: Switch from Alpine Linux to Debian. Debian has more packages, better support and uses optimized compiler options which promises faster code execution at the cost of bigger binaries. The downside of this switch is bigger fylr images. Including all the new tools, we went up from 1.2G to 4.8G. [8e2717ed]

  • Postgres 17: With the switch to Debian we now also support (and recommend) Postgres 17 now. [8e2717ed]

  • fylr backup New --pretty option allows to indent JSON in output files. [e8228d02]

  • /api/search: Response with error if date_range aggregation requests unknown fields like limit and offset. [4beea2cd]

  • Login: Hide the reset password link whenever SAML is active and the preferred action. [860957cd]

  • POST /api/event: Support setting of user. If used with skipConstraints=1 (root only), the API now accepts setting of a user. This is used by fylr restore. [75388799]

  • fylr restore: Removed --limit parameter. This was a confusing parameter making restores more complicated than they should be. Now, the backup chunk size is determining the chunk size of the uploads. [4e8a2efe]

  • File worker: Make preview_watermark standard like preview. [ff82c35c]

  • Unique keys: The new unique localization key is weaker than the old. We now use all languages to build the localization key for localized values, so now, de-DE:"See",en-US:"lake" is a different entry then en-US:"lake" (without de-DE). This allows to insert more values at the cost of a weaker duplicate check. We do this to better support metadata mappings which use unpredictable values (like AI generated keywords). The new index matches how the lookup of database values currently works (exact match). Also, new in this patch, string values are trimmed, so that "word " and "word" violate the unique key index. [a5ca319b]

  • Base config: Allow all images classes as logo upload. [bb97e027]

  • fylr backup: New flag --verify. This patch adds a new --verify flag to parse an existing backup and output some information. The new code also runs the verification in parallel (up to the number of CPU). [945489da]

  • /api/search/parse: Support =@ with phrases. To use a phrase with =@ the search term needs to be enclosed in extra "...", so =@ "\"my phrase\"" will start a phrase search (intervals_ordered). Also in this patch, a new error WildcardExpandedToTooManyTerms is thrown, if the indexer errors out with expanded to too many terms. [6a59912c]

  • Indexer: Remove asset full text from global full text index. The asset full text can be searched using _linked._asset.metadata_fulltext. [29ab5eca]

  • Plugin Callbacks: The %info.json% replacement contains not only the plugin config, but now as an improvement also the languages configuration from the base config. Plugins no longer need to obtain this information separately by an API call to /api/v1/config. [5a12e266]

  • /api/objects: When called with an invalid combination of object and file, an error is thrown. Before such a case would result in a (harmless) panic appearing in the logs. [69c16c76]

  • Server client aborts: If a client aborts the connection to fylr, the log message is no longer at ERR level, but TRC. If a request is cancelled from the client side while fylr is getting request context ready, instead of using ERR / WRN level for the error, use TRC. This removes misleading error messages containing context canceled from the fylr log file. [74d2b684]

  • SAML / LDAP: When mapping groups from login systems to fylr groups, a regexp can be used for matching. This patch swaps the underlying regexp library from Go's standard to a 3rd party library which supports lookarounds. We use the library in RE2 compatibility mode. [f73dc298]

  • fylr backup: This patch separates the collection from the collection objects in backups. By doing that, we are able to backup bigger collection where the previous version timed out too easily (due to huge JSON objects). [d18046cc]

  • /api/eas/rput: Improved filename auto-detection. If no filename is given and fylr tried to determine the filename from a HEAD/GET request to the url, the guessing of an extension from the content-type was not working properly if the filename provided (or the last part from the url) contained no .. This fixes pulling ez5 urls which end in /jpeg.

Fixed

  • /api/export: Fixed export with more than 100,000 objects. In some cases, internal logging structures prevented bigger exports from working. [816d9a74]

  • POST /api/db: Fixed virtual poly hierarchy entry saving. This bug showed only when used with plugins. fylr was unable to marshal the virtual poly hierarchy root entry (which had no object type set). Fixed in the loader. [9f2a4b8a]

  • POST /api/db: Fixed plugin callbacks for <file>.lookup:_id. If an object post contains file lookups, plugin callbacks would fail (due to not found file ids). [af905b70]

  • /api/search: Fixed collection of changelog.date_created in _fields. The date_created used for the _fields collector was not the date of the first but the current version. [f9f9ec79]

  • /api/db|search: Fixed status output of file state failed. This state was wrongly indexed as error. Fixes aggregations for expert file filter in our frontend. Also, fixed display of sync status over the API. [a19de758] [b12f2e30]

  • /api/config: Base config now allows to store empty string lists with default. If a string-list like user.user_in_event_group has a default, fylr did not distinguish between unset (null) and an empty array ([]). This patch brings internal support for null for string-lists, if enabled in the baseconfig.yml. [7f26e08b]

  • fylr restore: Added skip_reverse_nested=true parameter for upload of objects. This avoids deleting reverse objects during restore (as we include them in the backup) if the reverse objects were not restored before the top level objects. [484ba112]

  • /api/export: Improve support for version names with spaces and other non letter characters. [ed1b639d]

  • Rights management: When checking versions for file json delivery (/api/db, /api/search), acknowledge that ASSET_DOWNLOAD implies ASSET_SHOW. Before ASSET_DOWNLOAD would not cause a version to show up in the object's version list causing downloadable version not to appear in the download manager of our FE. [ed1b639d]

  • DELETE /api/db: This patch fixes the unlinking of linked objects in nested as well as unlinking of linked objects if they are used multiple times inside the same object. [1456cea5]

  • OAI/PMH: Fix include parents setting. The include_parents setting only worked partially. This patch makes it work for verbs GetRecord and ListRecords. [29df346a]

  • /api/suggest: Trim linked_objecttypes search to avoid error. When suggesting linked_objecttypes with query strings like 3 and tokens_mode: ngram the error EmptyWildcardNotAllowed was thrown. [30900a7c]

  • fylr backup: Fix group reference auto generating. In case the backup used small chunks it could happen that the references set for groups were not unique. [e9829e08]

Frontend

New

  • Metadata Mapping: Adds support in the import metadata mappings to add Custom Metadata Tags that are not listed in the server metadata tags. #72587

  • Admin Messages: Adds a new checkbox show_always for admin messages. #73639

  • Hide in Sort Manager: It is now possible to filter fields from the sort manager per mask. A new mask field option hide in sort manager makes the field invisible in the sort manager. #69995

  • Group Editor: A Cancel button has been added to the Group Editor. #74106

  • Geo Json: In preparation for the upcoming beta release of the Geo-Json Plugin, which allows the use of maps and geographic searches in fylr, we have made additions and adjustments to the frontend to support these features. #66970

  • Fylr Cross Server: Adds a new parameter when loading EAS assets to avoid CORS errors in cross-server scenarios. #74220

  • Filter Pinning: A new feature that allows pinning filters at the top of the panel so they are always shown first. The pinned filters are persisted per user. #66145

  • Hash Support: Adds support for searching terms starting with # in fylr. If the substring after # is a number, the search will look for a global object ID. Otherwise, the text will be used as a normal fulltext query. Autocomplete suggestions are also supported in this mode. #74317

  • Search Input Settings: Adds a new button to open the Search Input Settings panel. The first option is "Include fulltext from files", which allows searching the file metadata's fulltext. #74839

  • Group Editor (Single Element): Adds support for enabling the group editor for a single element. #74914

  • New System Rights: Adds new system rights for location, backup, and plugin manager. #74492

  • PDF Creator: A new option has been added to include images in the PDF header. Additionally, the Letter format has been added to the list of page sizes.

Improved

  • Expert Search: System Fields are now placed inside a collapsible panel, making the Expert Search interface cleaner. #74013

  • Collapse Header: The collapsed header state is now persisted in the user preferences. #72760

  • PDF View: If an asset has a valid PDF version and its original version is not a PDF, the PDF version will be used to display the PDF Viewer in the asset detail browser. #74610

  • Sort Manager: System fields are now placed in a collapsible panel in the Sort Manager, making the interface more organized. #74626

  • Localization Fallback: If an error occurs while loading the instance and translations are not yet loaded, preloaded translations will now be used to display error messages.

  • Pool Selector: Improved the behavior of the pool selector field. #71604, #70786

  • EAS Status Selector in Expert Search: Now includes statuses sent by the server that are not in the known list of statuses, allowing new statuses to appear as they become available in the EAS search API. #74163

  • ChangeLogColumn: Now follows the same visibility rules in Sort Manager as in Expert Search. The ChangeLog column will not be visible if the user does not have access to it. #74664

  • Pages Viewer: Various improvements have been made to the Paged Viewer in fylr.

  • App Header: An error style has been added when the image resource for the app logo is not available. #74728

  • Workflow Manager: Column width and resizeability have been adjusted in the Workflow list-view. #68701

  • Video Upload: Video assets will now show the original file for playback when its status is sync, allowing the video player to appear faster during the upload process. #71209

  • Metadata Mapping Poller: The metadata poller will now check for status='sync' or 'done' instead of checking if the asset hash is ready, improving the metadata mapping process. ee #71209

  • New Filters Layout: The layout of the Filter Panel has been changed to use collapsible panels. Each filter can be collapsed, making the layout clearer and more concise. The collapse state is persisted per device. #66145

  • Nested Popover Editor: Improved the layout of nested fields in the popover. If the user has configured a specific width for the fields, it will now be applied to nested fields as well. #74571

  • Image Loading in Standard Result View: Improved the image loading process in the main search when scrolling. #74060

  • Shared/User Editor Templates: The template manager has been significantly improved:

    • A bug has been fixed where the Customize button did not appear if the user only had Shared Templates.

    • Shared Templates have been enhanced to support system groups.

    • User templates and shared templates now store their creation date. This date is displayed in the template's tooltip in the editor.

    • Shared templates now store the user ID of the user who creates the shared template.

    • Root users can now create/manage templates in all groups, not just the groups they belong to.

    • A new "Comment" field has been added to templates, allowing administrators to add useful notes for easier identification of templates. These comments will be shown in the Template Manager and as a tooltip in the buttons to apply templates in the editor.

    • The Template Manager has received the following improvements:

    • The list of templates now displays data in read-only mode, preventing accidental edits.

    • A new button has been added to safely edit a template's information.

    • It is now possible to apply a template directly from the Template Manager via a new button.

    • Additional information has been included in the templates table to facilitate management.

    • A new button allows users to easily view the content of a template in a popover.

    • The new "Comment" field has been added to the template creation popup.

    • Now it is possible to use the name of an already created template for a new one. The frontend will ask the user if the template should be overwritten with the new data.

Fixed

  • Sharing Records: Fixed an error when checking user permissions to share a record. #74341

  • Date Ranges: Fixed the date range validation checks. Each field (from and to) is now correctly validated, and error messages accurately indicate which field is invalid. See #73960

  • Main Search: Fixed a bug where the "no results" label was shown incorrectly when changing the result view mode. #74300

  • Default Tags: Fixed an issue that occurred when using default tags in the editor's template object if the user lacked permissions to use those tags.

  • Export Manager Templates: Fixed a bug where new export templates were not saved correctly in the Export Manager. #73346

  • Nested Table Check Values: Fixed a bug triggered by dateTimes checkValue inside a nested table. DateTimes with ranges could produce multiple errors for from and to; nested tables were not prepared for that. See #73960

  • Date Columns: Added the correct timestamp format in the validation hint for date columns, fixing a previous inconsistency. #73960

  • Date Facets: Fixed the order of the Date Filters when using the "Sort by count" and "Sort by term" modes.

  • Facet Request: Removed unsupported limit and sort properties from facet aggregations based on bucket aggregations, preventing request errors with the fylr server. #72687

  • Linked Object Field: Fixed an issue with the mask used in the linked object field within editor mode. Previously, the best_mask was used instead of the specifically configured linkmask. #74718

  • Mask Selection in Pools: Fixed an error that prevented masks from being moved correctly in the Pool configuration. #70781

  • Search: Fixed several errors when using wildcards in searches.

  • Logo: Fixed an error when using EPS or SVG formats for the fylr logo.

  • Autocomplete Popup: Fixed the focus behavior when pressing the up arrow key on the first element in the autocomplete list. The input field now regains focus correctly. #74317

  • Tag Rendering: Fixed a critical error caused when a tag did not have a displayType property set. #74897

  • Reverse Linked Tables Listener: Fixed an issue where the poll listener in reverse-linked fields was not cleaned up when the editor was reloaded, causing false positives for external changes. #74907

  • File Worker: Fixed multiple errors in the File Worker panel within the base config. Also includes layout enhancements and improvements to the version editor. #74609

Plugins

fylr-plugin-fjc

The plugin fjc has been renamed from fylr-plugin-ejc. This better reflects its purpose which is to support the Fylr Java Classes. A database migration step is included in the update to automatically rename all base config from ejc to fjc. All FJC-based applications must be upgraded to at least 25.1.5. [a6f86875]

Last updated