> For the complete documentation index, see [llms.txt](https://docs.fylr.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fylr.io/releases/2025/v6.18.0.md).

# Release v6.18.0 (2025-02-26)

Published 2025-02-26 12:56:10Z

* [fylr\_checksums.txt](https://s3.eu-central-1.wasabisys.com/fylr-releases/v6.18.0/fylr_checksums.txt)
* [fylr\_v6.18.0\_darwin\_amd64.tar.gz](https://s3.eu-central-1.wasabisys.com/fylr-releases/v6.18.0/fylr_v6.18.0_darwin_amd64.tar.gz)
* [fylr\_v6.18.0\_darwin\_arm64.tar.gz](https://s3.eu-central-1.wasabisys.com/fylr-releases/v6.18.0/fylr_v6.18.0_darwin_arm64.tar.gz)
* [fylr\_v6.18.0\_linux\_amd64.tar.gz](https://s3.eu-central-1.wasabisys.com/fylr-releases/v6.18.0/fylr_v6.18.0_linux_amd64.tar.gz)
* [fylr\_v6.18.0\_windows\_amd64.zip](https://s3.eu-central-1.wasabisys.com/fylr-releases/v6.18.0/fylr_v6.18.0_windows_amd64.zip)

## Server

### 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. This is to support the new sorting by `_level` and `<object>._parent_child_idx` (see below).

A new index will be created on the `value` table. This can take a while, if you database is big (see below).

### New

* **/api/config**: New setting to hide fields in user manager. The new `register.form.use_in_user_manager` can be used to hide fields in the user manager. \[a220f3bf]
* **/api/rput/bulk**: New endpoint to support bulk remote file uploads. Also added `skip_duplicate_reference` as new parameter for `/api/rput` and `/api/rput/bulk` to ignore duplicate references and load the file if the reference already exists. \[c3ad997b] \[083d689c]
* **/api/system/mail**: New endpoint to send custom mails. \[51ca2960]
* **/api/search**: Support term sorting. `order` is now supported for sort types `term` and `count` in agg type `term`, `term_stats` and `linked_object`. \[1aa632d5]
* **Read-Only mode**: This patch brings the **Read-Only** mode to **fylr**. It can be set in the base config and avoids write operations to the **fylr** db. It should be used during migrations where the source data must remain in a consistent state. Not everything is read-only though, e.g. running exports is still possible as well as user record updates (from the user himself). Also, event and message POSTs are allowed. This adds a http header `X-Fylr-Read-Only-Mode: true` in case fylr is in read only mode. \[fde76db5] \[af77e54a]
* **/api/group**: New columns `category_a`, `category_b`, `category_c`. The new columns category\_a, category\_b, category\_c can be used to categorize group for easier filtering. \[df58e8b2] \[3303489c]

### Improved

* **fylr backup/restore**: Support `--max-parallel` to run backups and restore in parallel chunks to save time. Also robuster connection retry. Also includes better filename generation as needed. \[ba68ea9a] \[a83f7217] \[1332bb7e]
* **/inspect/migration**: Support new parallel settings, minor improvements of form loading. \[5215c0d3]
* **POST /api/db**: New dedicated `VersionMismatch` error. This helps the restore tool to detect already uploaded payloads. \[ea582508]
* **/api/rput**: Use only one database transaction instead of 3 to make the endpoint more robust. \[c3ad997b]
* **/api/settings**: Output number of CPU. \[083d689c]
* **Dockerfile**: Integrate `Chromium` instead of `chrome-headless-shell`. With this we are in-sync with regular Chrome releases. \[579b5f81]
* **/api/search|db**: Add `_best_mask` to response. This was supported in ez5 but missing in **fylr**. \[5883571d]
* **fylr backup**: Added `--max-parallel`, renamed cmd line params. Renamed `--chunk` to `--chunk-size` (also for restore). Renamed `--limit` to `--maximum-count`. Verify payloads only with `--verify` or if `--maximum-count` > 0. Use payload file names to determine if a payload can be skipped with `--continue`. \[8fab1106]
* **Register Page**: Support `info` with Markdown. \[0c6f853c]
* **/api/xmlmapping**: Added `limited_extensions`, improved import. The import into collections has been improved if metadata mapping requires a recipe which doesn't support the extension of the file uploaded. In this case, the file is still accepted into the collection, just without an applied metadata mapping. Also, add `limited_extension` to the mapping response of `api/xmlmapping`. This can be used by frontend to check beforehand if a file metadata check will be supported or not. Also, improve the error message in case a metadata mapping on an unsupported file extension is requested. \[d77c40f7]
* **Go 1.24**: **fylr** is now built using the latest [Go version 1.24](https://tip.golang.org/doc/go1.24). \[7521968a]
* **/inspect/customdata**: Added offset + limit for detail view. \[f30a8d06]
* **OAI/PMH**: Added missing schema and namespace declarations for `metadataFormat=oai_dc`. \[fcc84aed]
* **/api/search**: Support sorting and querying of `_level` and `<object>._parent_child_idx`. This requires a re-index. \[b9f7ef60]
* **/api/db**: Numbering is now limited to reverse hierarchies only. This limitation existed before but was not enforced by the **fylr** API. \[b9f7ef60]
* **POST /api/db**: Speed-up for huge databases during object injection. A new index on table `value` helps to faster find pending linked object relations which have been inserted with `_allow_defer: true`. \[e17a0a08] \[b6ce5174]
* **File worker**: Log requeueable errors in `Warn` level (before there was no logging). \[079c0d51]
* **Notifications**: Remove unreachable entries from job list. Detect some errors about not found objects for notifications. This patch removes the notifications. Before we had zombie left-overs in our database which were retried over and over with every **fylr** start. With the new code old zombies will be removed too. \[fdd29c69]
* **GET /api/saml/metadata**: Set `NameIDFormat` to `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`. \[c751722b]

### Fixed

* **/inspect/apidocs/**: Fixed on Windows. \[9c95a23d]
* **/inspect/system/commands/**: Fixed `stop` for restores. \[3ff3d3f5]
* **OAI/PMH**: Fixed resumption token to follow spec. The resumptionToken implementation was not implemented as defined by the spec. This patch fixes that. The token now includes all relevant info from the initial request. Also, we now use search point in time to snapshot the index for reliable paging using the resumptionToken. \[b5f33e5b]
* **/api/eas?mapping=ID**: Fixed reading text lists. If the xml search path yields complex XML nodes, the previous implementation would collect all text as one string from these nodes resulting in a list of keywords appearing as "keyakeybkeyc". This patch fixes this by explicitly collecting the text nodes underneath the xml search path from the mapping. This is the same as ez5 does it. fylr uses "//text()" for that (appended to the search) patch, so all text nodes are found recursively. \[cec3ffcd]
* **POST /api/db**: Fixed update of objects using `lookup:_id_parent`. This was ignored and this lookup was only working for inserts. \[b9f7ef60]
* **POST /api/pool**: Fixed system root pool update for non `system.root` users. \[87260d9c]

## Frontend

### New

* **Group Categories**: Added three new fields in the **group configuration**: **Category A|B|C**. These fields allow groups to be categorized and filtered using these categories. See #70031
* **Add Collection to Search Tool**: Introduced a new tool to append the **collection query search** to the end of the **search input**, instead of overriding the entire search input. This enables users to combine **collection queries** with other query elements. See #75012
* **Color and Icon Inputs**: Added two new field types in the **base config** and **configuration panels** that allow previewing **colors** and **icons**. See #74630
* **Hidden User Fields**: The **user manager** now hides fields configured to be hidden in the **base config**. See #74422
* **Shared Templates - Group Manager**: Added a new tab in the **group manager** when a group has **shared\_templates**. This new manager, similar to the **shared\_templates editor customize menu** but more comprehensive, displays extra info like the **username** who shared the template, the **mask**, and allows editors to view all templates for all **object types** in one place. See #70030
* **Collection Views**: Added the **result views** from the **main search** to the available **result views** for **collections**. This means **collections** can now be visualized using the **Text View** and **Table View**. See #74417
* **Pool Rights**: Added **valid\_from** and **valid\_to** options to the **ACL Manager** of the **pools**, allowing users to set rights in **pools** for a specific timeframe. See #75099
* **Sort of Pinned Filters**: **Pinned filters** can now be sorted by the user.
* **Pool: Tag records from other users**: A new feature has been added to pools allowing users to tag objects that do not belong to them. This new function defines a custom virtual tag that will be displayed if the object being viewed does not belong to the current user. #74447
* **Pool: Sharing Deep Links settings**: A new feature has been added to pools allowing users to configure whether defined users/groups can share an object they do not own. #74447

### Improved

* **Search Autocomplete Suggestions**: Enhanced the **autocomplete speed** in the **search input** to improve the user experience. See #71227
* **Main Search and Deep Links**: Improved the execution order when a **deep link** is present in the URL in the **main search**. Now, the **deep link search** runs within the **main search**, saving resources and enhancing the startup flow. See #74067
* **CSV Importer**: Added a **warning text** for numbers that will be converted from **decimal formats** to **integers** in the **CSV importer**. This warning is included in the corresponding `warning_text` column during import preparation. See #72903
* **Search Reset Tool**: The **reset button** now also resets the **Search Type Selector Manager**, enabling all options in the **Resources panel**. See #73009
* **Filter Panel**: Improved the **settings** of the **filter panel**, making it possible to change the order (**ascending** or **descending**) of the filters. See #75213
* **Detail Hierarchy List**: Enabled sorting by `parend_child_idx` in the **detail hierarchy view** for **reverse hierarchy objects**. This displays objects sorted by the manual sort configured in the **reverse field**. See #66187
* **Preset Manager**: The **active tab** in the **preset manager** is now persisted between saves. See #72901
* **Base Config**: The **base config** now remembers the last item selected in the **listview section** when saving, allowing the user to continue editing the same settings if no reload is selected. See #72901
* **Hierarchy Detail**: The **hierarchy detail** now uses the same sorting as the **search** that opens the **detail panel**, syncing the sort of objects shown in the **search** and the **detail hierarchy list**. See #75183
* **Metadata Mapping Process**: Improved the **modal** that indicates the **metadata mapping process** when importing new resources.
* **Search Input**: If the user inputs **"and"**, **"or"**, **"not"**, **"&&"**, **"||"**, or **"!"**, the **autocomplete popup** will now include **boolean operators** as suggestions.
* **Date Filters**: Added new **subfilters** in **date filters** for filtering by **month** and **dates**. See #73482
* **Exact Token**: Added support in the **search input** to search **exact tokens** by wrapping the search term between backticks (\`). Previously, using the **Exact Token suggestion** was the only way to add this type of search. See #74317

### Fixed

* **Nested Popups**: Fixed errors in **nested popups**. See #75280
* **Result Objects**: Fixed an issue where **pointer events** were not reaching other elements in selected **result objects**. See #75276
* **Collection Properties**: Resolved an issue that prevented the correct display of a **collection's properties** if the instance had an **object type** without **masks**. See #75275
* **Read-Only Mode**: Corrected the display of the **read-only message** in **read-only mode**. See #67975
* **CSV Importer**: Fixed support for **zero values** when importing numbers in the **CSV importer**. See #72902
* **Detail Sidebar**: Resolved a bug where the **detail sidebar** opened without a `global_object_id` after the server informed the frontend that the user lacks permission to create an object. See #75016
* **Search Tokens**: Fixed a bug where exact **token suggestions** were not clickable. See #75153
* **Metadata Mapping**: Corrected a bug that caused the **"Deep Link URL" tag** to be added in **easydb**, which is only supported in **fylr**. See #74149
* **Search Input**: Fixed a bug where the **search input** became unusable after an empty call. The **placeholder token** was not re-added after the empty call, preventing user input. See #75215
* **CSV Importer**: Resolved an issue that prevented finding all **parent objects** in an import with more than 100 objects. See #74944
* **Metadata Mapping**: Fixed a bug where the **copy button** for **metadata fields** was activated for all fields. This button should only be enabled for **custom metadata fields**. See #75154
* **EZ5 Paged Viewer**: Corrected an error in the **paged viewer**. See #75701
* **Autocomplete in Search Input**: Fixed the cleanup of items when the **autocomplete popup** is displayed. Previously, results from prior searches lingered for a few milliseconds, making the UI less fluid when loading new results. See #74868
* **Editor Templates**: Resolved a bug when merging **editor templates** in a record with **linked objects** created by **metadata mapping**. See #67699
* **Default Tags in New Editor**: **Default tags** are now properly set in `dbinfo` when creating a new object in the **editor**. See #75016
* **Mask Editor**: Fixed the offset of the **customize button** for **mask splitters** in the **mask editor**. See #75214
* **Filter Panel**: **Facet manager**: Prevented **facet count numbers** from breaking onto a new line.
* **Lists Deep Links**: Fixed the **deep linking** of lists containing **object types** available in **main search**. Before this patch, if the **object type** was available in the **main search**, the **main search** loaded instead of the **list search**, even when the list/location was explicitly used in the **deep link**.
