For the complete documentation index, see llms.txt. This page is also available as Markdown.

Libsafe v1.10.0 – What's New (June 2026)

This page describes what is new and improved in Libsafe v1.10.0. It covers new features you will see in the interface, behaviour changes that affect your daily work, and issues that have been fixed.

Release date
Version

9 Jun 2026

v1.10.0

What's new at a glance

Area
What changed

Search results now show archived objects with version history, letting you see all versions of an object at a glance.

A dedicated view now shows individual files and folders within archived objects, with path, size, and version chip indicators.

You can now search the archive by OCFL object identifier, including partial matches.

Search results now show where a match was found (path, metadata, full-text content) and highlight the matching text fragment.

PREMIS events are now stored alongside the archived object in the OCFL store and restored together with it.

The restore process now resumes automatically after a service restart or update, without losing progress.

Files and folders are now restored with their original names and directory structure.

Administrators can now configure a custom name and header title for the login page and the application header.

The destination picker in copy and move operations now lists only Standard containers, preventing accidental operations on non-standard containers.

All dropdown selectors in the Configuration section and Bulk Metadata Editor now meet full keyboard and screen-reader requirements.

HTTP security headers are now correctly set and JavaScript on the login page is minified, closing two previously identified vulnerabilities.

Thirteen issues fixed across search, content operations, PREMIS events, mirroring, reports, and shared content.


New features and improvements

OCFL Archive search – Objects view with version history

Who this affects: customers using the OCFL Archive module (long-term preservation storage). If your instance does not include the OCFL Archive, this section does not apply to you.

The Archive search now has a dedicated Objects view that shows each archived object together with its complete version history.

What you see in each result

  • The Object ID (URN or UUID) as the main identifier.

  • A label showing the total number of versions: for example, Object • 5 Versions.

  • Version chips (V1, V2, V3…) showing all available versions; the most recent is labelled Latest.

Results are ordered by object creation date (newest first) and then by version number descending.

How to access the Objects view

  1. Go to Content SearchArchive.

  2. In the left panel, select Objects.

  3. Enter your search terms and run the search.


OCFL Archive search – Files & Folders view

Who this affects: customers using the OCFL Archive module.

A second search view, Files & Folders, lets you search for individual files and directories within archived objects — not just the top-level objects themselves.

What each result shows

  • Name — file or folder name (bold).

  • Path — the original path within the object.

  • Type — File or Folder.

  • Size — file size in human-readable format (files only).

  • Object ID — the OCFL object this file or folder belongs to.

  • Version chips — all versions in which this file exists within the parent object.

How to access the Files & Folders view

  1. Go to Content SearchArchive.

  2. In the left panel, select Files & Folders.

  3. Enter your search terms and run the search.


OCFL Archive search – search by Object ID

Who this affects: customers using the OCFL Archive module.

You can now search the archive using an OCFL object identifier as the search criterion. The field accepts both exact identifiers and partial matches, so you can find related objects or files quickly even if you only know part of the identifier.

How to search by Object ID

  1. Go to Content SearchArchive.

  2. In the search form, select Object ID as the search field.

  3. Enter a full or partial identifier and run the search.

  4. The criterion can be combined with other available filters without affecting their behaviour.


OCFL Archive search – match origin and highlighted snippet

Who this affects: customers using the OCFL Archive module.

Search results now tell you where a match was found and show the matching text in context. For each result, the system indicates whether the term was found in:

  • Source path — the file or folder name or path.

  • Administrative metadata — a descriptive metadata field, with the field name identified.

  • Embedded (technical) metadata — an extracted technical metadata field.

  • Full-text content — the text content of the file.

When a term appears in multiple locations within the same result, all matches are reported so you have the full picture without the system arbitrarily choosing one.

This feature is additive and backward-compatible. Existing integrations that consume the Archive search endpoint are unaffected — new fields in the response are optional extras.


OCFL Archive – PREMIS events stored and restored with archived objects

Who this affects: customers using the OCFL Archive module.

When an object is archived to the OCFL store, the PREMIS events associated with the object and all its files and folders are now stored alongside it — in a dedicated /premis/events/ path within the OCFL object. Previously, PREMIS events were not included in the archival package.

This means that when you restore an archived object, the PREMIS event history comes back with it, giving you the full provenance chain of the preserved content.

This applies to objects archived from v1.10.0 onwards. Objects archived in previous versions do not include PREMIS events in their OCFL packages unless re-archived.


OCFL Archive – restoration stability improvements

Who this affects: customers using the OCFL Archive module.

The restoration process is now significantly more resilient to interruptions. If the restoration service restarts or is updated while a restore operation is in progress, it automatically picks up from where it stopped. You no longer need to re-submit or manually monitor restoration jobs when a service interruption occurs.


OCFL Archive – restored files and folders keep original paths

Who this affects: customers using the OCFL Archive module.

When an archived object is restored to the Workspace, all files and folders now appear with their original names and directory structure — exactly as they were before the object was archived.

In previous versions, paths could be altered during the copy from staging to Workspace, requiring manual correction after restoration.


Instance branding – customisable application name and header

Who this affects: system administrators. Regular users and non-administrator roles cannot change these settings.

Administrators can now configure a custom name for both the login page and the application header, allowing each Libsafe instance to display its own institutional branding.

What you can customise

  • Login page title — the name shown on the login screen (setting key: ui.login.header).

  • Application header name — the name shown in the top navigation bar while using the application (setting key: ui.app.header).

How to configure the instance name

  1. Go to Configuration Settings.

  2. Locate the setting key ui.login.header (for the login page name) or ui.app.header (for the header name).

  3. Edit the value and save. The login page name updates on the next login screen load; the application header name updates immediately.

These settings are visible to all users but can only be edited by system administrators.


Copy / Move – destination selector shows only Standard containers

When using the Copy or Move function to select a destination, the container picker now shows only Standard containers. Non-standard containers (such as migrated external storage containers) are no longer listed as possible destinations, preventing accidental operations that could cause data inconsistencies.

If you try to move or copy a file and the expected destination does not appear in the list, check whether that container is of Standard type. Contact your administrator if you need assistance identifying container types.


Accessibility improvements (WCAG 2.1 AA) – Configuration section and Bulk Metadata Editor

With this release, all dropdown selectors in the Configuration section and in the Bulk Metadata Editor have been replaced with a fully accessible component. This completes the accessibility upgrade of all main selection controls across Libsafe.

What changed

Every selector in Configuration and in the Bulk Metadata Editor now:

  • Can be operated with a keyboard (Tab to focus, Enter or arrows to open/navigate, Enter or Space to select, Escape to close).

  • Announces its state, options, and selected value to screen readers.

  • Shows a visible focus indicator.

  • Supports type-ahead search within the options list.

  • Preserves its selected state correctly after interaction.

Screens affected include all sections and sub-sections of Configuration (Users, Containers, Functions, Pipelines, Archival Structure, Metadata, and all others) and the Bulk Metadata Editor function.

This update follows the accessibility improvements delivered in v1.8.0 (tables, tabs, pagination, charts, navigation menus) and v1.9.0 (dropdowns and permission trees across Containers, Content Processing, and Administration). With v1.10.0, all primary interactive controls in Libsafe meet WCAG 2.1 Level AA requirements.


Security hardening – HTTP headers and login page JavaScript

Two previously identified security findings have been resolved in this release:

Secure HTTP response headers

The platform now sends the following security headers on all responses, protecting against common web vulnerabilities:

  • X-Frame-Options — prevents the application from being embedded in external frames (Clickjacking protection).

  • X-Content-Type-Options — prevents browsers from interpreting files as a different MIME type (MIME sniffing protection).

  • Strict-Transport-Security (HSTS) — enforces HTTPS connections.

  • Referrer-Policy — controls what referrer information is sent with requests.

  • Content-Security-Policy (CSP) — restricts which resources the browser can load.

Login page JavaScript minification

JavaScript files served on the login page are now minified and externalised. Previously, JavaScript was served in unobfuscated, inline form — a finding identified in security audits. The change does not affect the behaviour of the login page for users.

These changes close two findings from the platform's security audit and advance compliance with OWASP best practices and ENS (Esquema Nacional de Seguridad) certification requirements.


Bug fixes

Area
What was fixed

Move function – ghost files left in source storage

After a Move operation, residual delete markers were left in the source S3 location instead of being cleaned up. These are now removed correctly, ensuring storage integrity after every move.

Content Search – deleted tags shown in search filters

Tags that had been deleted continued to appear as available filter options in Content Search. Deleted tags no longer appear in search filters.

Advanced Search – download button returns 404

Clicking the download button in Advanced Search results returned a 404 error instead of downloading the file. Downloads from Advanced Search now work correctly.

Container Events – date filter cannot be cleared

Once a date filter was applied in the Container Events view, it could not be cleared to show all events. The Clear button now works correctly and shows all events without a date restriction.

Metadata – Search Container/File dialog unresponsive

When adding a value to a Link-type metadata field via the Properties panel, the Search Container/File dialog did not respond to clicks and the Archival Structure selector was empty. The dialog now works correctly for Link-type field assignment.

Search index inconsistency

Metadata updates were not always reflected in the search index promptly, causing search results to show outdated or missing metadata values. Indexing is now applied consistently after metadata writes.

Selector search limited by result cap

Dropdown selectors across the interface (for example, when selecting an archival structure in a copy/move operation) imposed a hard limit on the number of options shown, preventing items beyond that limit from appearing even when searched. The search now queries all available options regardless of the list size.

Shared content – files with special characters in name blocked

Sharing or downloading files whose names contained special characters (such as + or %) failed due to URL handling conflicts with the CDN layer. Files with special characters in their names can now be shared and downloaded correctly.

Mirroring – preserved metadata selector not saved

When configuring a boolean metadata field as the "mirroring active" indicator in Configuration → Content Mirroring → Metadata Descriptors, the selected value appeared to save but was lost on page reload. The setting is now persisted correctly.

PREMIS events – integrity check failure recorded as INFO instead of ERROR

When a fixity check failed, the corresponding PREMIS event was recorded with severity INFO instead of ERROR, making failures indistinguishable from successes in the event log. Failed integrity checks now generate a PREMIS event with severity ERROR.

PREMIS events – XML download returns empty file without date filter

Downloading PREMIS events as XML without applying a date filter returned an empty file, even though events were visible on screen. The XML download now includes all visible events regardless of whether a date filter is active.

Reports – Format Discrepancies Report fails to load

The Format Discrepancies Report incorrectly reported "No files have been hashed yet" even for containers with fully hashed files, due to a data synchronisation issue. The report now correctly reflects the hashed state of files in the container.

OCFL Archive search – search index isolation

An incorrectly hardcoded environment variable caused the OCFL search index to be shared across different instances, so searches on one instance could return results from another. Each instance now uses its own isolated search index.


Summary of changes by role

Role
Key changes to be aware of

End user

Archive search now shows objects, files, and folders with version history and match highlighting; download from Advanced Search works; deleted tags no longer appear in search filters; files with special characters in names can be shared and downloaded.

Administrator

Instance name and header are now customisable via Configuration → Settings; mirroring metadata selector saves correctly; HTTP security headers deployed; copy/move selector limited to Standard containers.

Compliance / Audit

PREMIS events are now stored with archived OCFL objects and restored with them; failed integrity checks now generate ERROR-level PREMIS events; PREMIS XML download now exports all events correctly.

Operations

Move operation no longer leaves ghost files in source storage; OCFL restoration resumes automatically after service interruptions; restored files keep original paths; OCFL search index is now isolated per instance; security vulnerabilities (headers, JS) resolved.

Last updated