> For the complete documentation index, see [llms.txt](https://docs.libnova.com/libnova/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.libnova.com/libnova/what-changed-recently/libsafe-v1.9.0-whats-new-may-2026.md).

# Libsafe v1.9.0 – What's New (May 2026)

<table><thead><tr><th width="280">Release date</th><th>Version</th></tr></thead><tbody><tr><td>22 / May / 2026</td><td>v.1.9.0</td></tr></tbody></table>

## What's new at a glance <a href="#whats-new-at-a-glance" id="whats-new-at-a-glance"></a>

<table><thead><tr><th width="280">Area</th><th>What changed</th></tr></thead><tbody><tr><td><a href="#id-1.-ocfl-archive-object-restoration-now-recovers-full-metadata">Object restoration (OCFL Archive)</a></td><td>Restored objects now come back with all their original metadata intact and fully searchable.</td></tr><tr><td><a href="#id-2.-functions-user-account-shown-in-onfileingested-job-list">Functions – job audit trail</a></td><td>The job list now shows the user account linked to each OnFileIngested function job.</td></tr><tr><td><a href="#id-3.-cold-hot-storage-new-migrations-view">Cold/Hot Storage</a></td><td>A new Migrations view lets you see and manage storage transitions for each container.</td></tr><tr><td><a href="#id-4.-accessibility-improvements">Accessibility</a></td><td>All dropdowns and permission controls can now be used with a keyboard and screen reader.</td></tr><tr><td><a href="#id-5.-archivesspace-integration-seven-new-subject-field-types">ArchivesSpace integration</a></td><td>Seven additional metadata field types from ArchivesSpace are now available for mapping.</td></tr><tr><td><a href="#bug-fixes">Bug fixes</a></td><td>Nine issues fixed across storage, content operations, reports, and user management.</td></tr></tbody></table>

***

## New features and improvements <a href="#new-features-and-improvements" id="new-features-and-improvements"></a>

### OCFL Archive – object restoration now recovers full metadata <a href="#id-1.-ocfl-archive-object-restoration-now-recovers-full-metadata" id="id-1.-ocfl-archive-object-restoration-now-recovers-full-metadata"></a>

{% hint style="info" %}
**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.
{% endhint %}

When you restore an archived OCFL object back to your Workspace, the restored version now includes all the information the object had before it was archived:

* All descriptive and administrative metadata fields are restored, so the object looks exactly as it did before archiving.
* Technical details (file format, checksum, and other automatically extracted properties) are also recovered, so the object appears correctly in search results and reports.

In previous versions, some of this information was missing after a restoration, requiring manual corrections. This is no longer the case.

{% hint style="info" icon="memo" %}
**More resilient restoration process.** If the system restarts or is updated while an archive or restore operation is running, the process now picks up automatically from where it stopped. You do not need to re-submit or monitor the job manually.
{% endhint %}

***

### Functions – user account shown in OnFileIngested job list <a href="#id-2.-functions-user-account-shown-in-onfileingested-job-list" id="id-2.-functions-user-account-shown-in-onfileingested-job-list"></a>

{% hint style="info" %}
**Who this affects:** administrators and operations staff who monitor **function jobs** triggered by the **OnFileIngested** event.
{% endhint %}

When a function is triggered by the **OnFileIngested** event, the job list now shows the user account associated with that trigger — previously all such jobs appeared under a generic system account.

**How to see it**

1. Go to **Content Processing → Functions** and open any function that uses an *OnFileIngested* trigger.
2. Open the **Jobs** tab for that function.
3. The **User** column now displays the account linked to each job execution.

{% hint style="info" %}
This information is shown only for jobs triggered by the **OnFileIngested** event. It does not provide a general log of who uploaded which file — that information is not currently available in this view.
{% endhint %}

***

### Cold/Hot Storage – new Migrations view <a href="#id-3.-cold-hot-storage-new-migrations-view" id="id-3.-cold-hot-storage-new-migrations-view"></a>

{% hint style="info" %}
**Who this affects:** administrators managing containers with **Cold/Hot Storage** (AWS Glacier or equivalent) enabled.
{% endhint %}

A new **Migrations** tab is now available under **Container → Storage**. It gives administrators visibility into all storage class transitions for a container, and the ability to act on them.

**How to access it**

1. Open a container and go to the **Storage** tab.
2. Select the **Migrations** sub-tab.

**What you can do in the Migrations view**

* See all storage migrations for the container (past and in progress).
* Filter by status, storage class direction (Standard → Glacier or Glacier → Standard temporarily: The file can be viewed and downloaded through the interface, similar to HOT storage. However, its actual class remains Glacier Deep Archive (COLD), and after 15 days, it will automatically transition back to COLD storage without requiring manual intervention), date range, and file path.
* Sort results by scheduled date, request date, or completion date.

**Resetting pending migrations**

The **Reset** button on the Storage tab reschedules all pending migrations for the container. Keep in mind:

* Files that are already in the target storage class are skipped automatically.
* If any file has a migration currently running, the reset will be blocked and an error message will appear. Wait for the in-progress migration to finish before retrying.

**Storage transitions are now tracked when changed outside Libsafe**

If a file's storage class is changed directly in S3 (outside of Libsafe), Libsafe now detects the change and updates the storage class shown in the interface. Previously, the displayed class could remain out of date.

**Queue monitoring in Diagnostics**

The Diagnostics and Performance Diagnostics dashboards include two new metrics related to storage migrations:

* **Migrations pending execution** – how many transitions are waiting to be processed.
* **Migrations created** – how many transition requests have been queued.

***

### Accessibility improvements <a href="#id-4.-accessibility-improvements" id="id-4.-accessibility-improvements"></a>

All dropdown menus and selection controls across the interface have been rebuilt with full keyboard and screen-reader support. This affects the following areas:

* All sections within **Containers** (except Bulk Metadata Editor).
* All sections within **Content Processing**.
* **Data Analytics → Reports**.
* All sections within **Administration**.
* **Content Search**.

Permission trees in these screens are now also fully operable with a keyboard:

* Containers → *selected container* → Permissions tab.
* Configuration → Archival Structure.
* Configuration → Users.
* Configuration → Groups.
* Configuration → Containers over Quota Policy.

**Keyboard navigation quick reference**

<table><thead><tr><th width="280.00006103515625">Keys</th><th>Action</th></tr></thead><tbody><tr><td><code>Tab</code> / <code>Shift</code>+<code>Tab</code></td><td>Move between controls on the page.</td></tr><tr><td><code>↑</code> / <code>↓</code></td><td>Navigate options within a list or tree.</td></tr><tr><td><code>←</code> / <code>→</code></td><td>Collapse or expand a tree node.</td></tr><tr><td><code>Enter</code> / <code>Space</code></td><td>Select or toggle an option.</td></tr></tbody></table>

{% hint style="info" %}
Permission trees shown in read-only tables are for display only and are not interactive. To test keyboard navigation, open the **Add** or **Edit** views where permissions can be changed.
{% endhint %}

***

### ArchivesSpace integration – seven new Subject field types <a href="#id-5.-archivesspace-integration-seven-new-subject-field-types" id="id-5.-archivesspace-integration-seven-new-subject-field-types"></a>

{% hint style="info" %}
**Who this affects:** customers using the **ArchivesSpace integration**. If your instance does not connect to ArchivesSpace, this section does not apply to you.
{% endhint %}

Seven additional Subject descriptor types are now available when configuring the Incoming Metadata Crosswalk for Resources. You can now create mapping rules for:

<table><thead><tr><th width="280">Subject type in ArchivesSpace</th><th>Field name in Libsafe crosswalk</th></tr></thead><tbody><tr><td>Genre/Form</td><td>Resource/Subjects/Genre-Form</td></tr><tr><td>Topical</td><td>Resource/Subjects/Topical</td></tr><tr><td>Occupation</td><td>Resource/Subjects/Occupation</td></tr><tr><td>Geographic</td><td>Resource/Subjects/Geographic</td></tr><tr><td>Cultural Context</td><td>Resource/Subjects/Cultural-Context</td></tr><tr><td>Uniform Title</td><td>Resource/Subjects/Uniform-Title</td></tr><tr><td>Function</td><td>Resource/Subjects/Function</td></tr></tbody></table>

Each mapping rule imports the subject title from ArchivesSpace and assigns it to the corresponding metadata field in Libsafe, with no manual transformation needed.

**How to add a mapping for the new fields**

1. Go to **Configuration → Integrations** and open the ArchivesSpace integration.
2. Navigate to **Incoming Metadata Crosswalk → Resources**.
3. In the *Available source fields* list, find the Subject type you want to map.
4. Create a rule for each Subject type you wish to import.
5. Run the integration to pull the data from ArchivesSpace into Libsafe.

{% hint style="info" %}
We recommend creating one rule per Subject type. This way you import only the categories you need, rather than all subjects at once.
{% endhint %}

***

## Bug fixes <a href="#bug-fixes" id="bug-fixes"></a>

<table><thead><tr><th width="280">Area</th><th>What was fixed</th></tr></thead><tbody><tr><td>Bulk PREMIS Rights Editor</td><td>The <em>Type</em> field was not being saved when adding new rights from Advanced Search, causing the action to fail. This is now fixed.</td></tr><tr><td>Functions</td><td>When a function had a parameter of type Folder, File, Folder &#x26; File, or Container, results were sometimes not displayed when running the function from a container. This is now fixed.</td></tr><tr><td>Administration – Users</td><td>Creating a user via the API returned an empty response, and the web interface showed an error message even though the user had been created. Both issues are resolved.</td></tr><tr><td>Cold/Hot Storage – migrations</td><td>Cold-to-Hot migrations could remain stuck in <em>Running</em> status for several days. Migrations now complete correctly.</td></tr><tr><td>PREMIS events</td><td>The PREMIS <em>create</em> event was recorded with incorrect data after a copy/move operation. It is now registered correctly.</td></tr><tr><td>Copy/Move</td><td>Files were occasionally moved to a different container than the one specified when a new folder path was typed in the copy/move dialog. The destination is now applied correctly.</td></tr><tr><td>Cold/Hot Storage – Change Storage Class</td><td>The <em>Change Storage Class</em> action failed intermittently. The underlying cause has been resolved.</td></tr><tr><td>OCFL Restoration</td><td>During restoration, newly ingested files were incorrectly treated as copies of existing files, causing data inconsistencies. Ingestion during restoration now follows the correct flow.</td></tr><tr><td>Reports – Container Metadata</td><td>The <em>Container Metadata</em> report was generated empty even when metadata was present. This is fixed starting from v1.9.0.</td></tr></tbody></table>

***

## Summary of changes by role <a href="#summary-of-changes-by-role" id="summary-of-changes-by-role"></a>

<table><thead><tr><th width="280">Role</th><th>Key changes to be aware of</th></tr></thead><tbody><tr><td><strong>End user</strong></td><td>OCFL Archive restorations now recover all metadata; dropdowns and permission trees are keyboard-accessible.</td></tr><tr><td><strong>Administrator</strong></td><td>New Migrations view for Cold/Hot Storage containers; ArchivesSpace crosswalk has 7 new Subject types; user creation via API is fixed.</td></tr><tr><td><strong>Compliance / Audit</strong></td><td>PREMIS create event now records correct data after copy/move; Container Metadata report fixed.</td></tr><tr><td><strong>Operations</strong></td><td>OnFileIngested function jobs now show the associated user account in the job list; S3 storage class changes are now tracked automatically.</td></tr></tbody></table>
