> 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.0-v1.3-whats-new-july-november-2025.md).

# Libsafe v1.0–v1.3 – What's New (July–November 2025)

## Version timeline <a href="#whats-covered-at-a-glance" id="whats-covered-at-a-glance"></a>

<table><thead><tr><th width="180">Version</th><th width="179.5999755859375"></th><th>What changed</th></tr></thead><tbody><tr><td><a href="#libsafe-v1.0.0-july-2025">Libsafe v1.0.0</a></td><td>July 2025</td><td>Platform launch: Structure Editor, Advanced Search bulk operations, security hardening</td></tr><tr><td><a href="#libsafe-v1.1.0-september-2025">Libsafe v1.1.0</a></td><td>September 2025</td><td>Ingestion reliability, PREMIS event fixes, S3 permissions, security patches</td></tr><tr><td><a href="#libsafe-v1.2.0-october-2025">Libsafe v1.2.0</a></td><td>October 2025</td><td>Reporting improvements, FLV video support, SSO fixes, ingestion consistency</td></tr><tr><td><a href="#libsafe-v1.3.0-november-2025">Libsafe v1.3.0</a></td><td>November 2025</td><td>Collections Interface archiving workflow, Structure Editor UX, platform stability</td></tr></tbody></table>

## Libsafe v1.3.0 — November 2025 <a href="#libsafe-v1.3.0-november-2025" id="libsafe-v1.3.0-november-2025"></a>

**151 items closed across both teams** (20 new features, 53 bug fixes, 44 operational incidents, 34 internal tasks).

### **Collections Interface — archiving workflow (OCFL Archive)**

{% hint style="info" %}
**Who this affects:** customers using the **Collections Interface** module with the **OCFL Archive**. If your instance does not include this module, this section does not apply to you.
{% endhint %}

The Collections Interface module took a major step forward with the delivery of Phase 1 and Phase 2 of the **object submission flow from Workspace to Archive**. Administrators and managers can now initiate archiving operations through the interface with full validation before submission:

* Objects are validated for ingestion status (`ingested=1`) and URN before archiving is allowed.
* The system detects and blocks submission if an archiving process is already active on the same object.
* Paginated search over archiving processes is available for monitoring large volumes.
* Collection exports now hide the export button when there are no results, avoiding empty downloads.
* Validation of empty structure and of the `archive` metadata field before submission.

### **Structure Editor — UX improvements**

Several friction points in the Structure Editor were resolved, particularly for workflows involving large or complex structures:

* The folder tree root is now shown correctly when using **Attach File**.
* **Save & Close** now redirects correctly after saving.
* The message shown after modifying a structure is now accurate.
* Structural changes applied to the editor are now synchronised immediately without requiring a reload.
* Context menus are now correctly aligned when opened by right-click.
* Scroll no longer hides selected files in the file picker.
* Empty folder selection state is now updated correctly.

### **Platform stability (Core)**

* Critical fixes for lost versions, archiving process errors, and object synchronisation conflicts.
* The `rename` operation has been hardened against race conditions.
* Faulty object opening, incorrect PREMIS event validation, and partial read errors after ingestion failures have been corrected.
* Detailed per-object and per-event logs now provide improved traceability across backend and storage.

***

## Libsafe v1.2.0 — October 2025 <a href="#libsafe-v1.2.0-october-2025" id="libsafe-v1.2.0-october-2025"></a>

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

#### **Reporting**

* New reporting features developed; existing reports corrected to display data accurately and update content on demand.

#### **Password recovery**

* Password recovery functionality is now available and working correctly in the interface.

#### **FLV video format support**

* Files in FLV format can now be played back and previewed within the platform.

#### **ElasticSearch index auto-creation**

* New index configurations for ElasticSearch are now applied automatically, removing the need for manual setup steps during deployment or environment initialisation.

#### **SSO access in Metabase**

* Single Sign-On (SSO) access in the Metabase analytics component has been corrected. Users with SSO credentials can now log in and access their dashboards without errors.

#### **Structure Editor — Sequential Numbering integration**

* The Structure Editor now supports coherent sequential numbering, with validation of actions to prevent inconsistent states.

### 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>Forms – required field validation</td><td>Errors that prevented required fields from being validated correctly in key system forms have been resolved.</td></tr><tr><td>Report display</td><td>Reports now render data correctly; display issues that caused blank or incorrect output have been fixed.</td></tr><tr><td>Password recovery display</td><td>The password recovery interface rendered incorrectly; this is now corrected.</td></tr><tr><td>SSO login failure</td><td>Users authenticating via SSO were unable to access the platform. SSO login now works reliably.</td></tr><tr><td>Shared content access tokens</td><td>Temporary access tokens for shared content were being generated incorrectly. Token generation is now reliable.</td></tr><tr><td>Copy function — storage class not respected</td><td>The Copy function did not preserve storage type and storage class values previously set in configuration. Copied objects now retain the correct values.</td></tr><tr><td>Ingestion — files not detected after errors</td><td>Files that encountered validation errors during ingestion were not being detected correctly on retry. Detection logic has been corrected.</td></tr><tr><td>PREMIS events — UUID missing</td><td>PREMIS events for validation were being generated without a UUID. All events now include the required UUID for consistent audit tracking.</td></tr><tr><td>File indexing — names with multiple dots</td><td>Files whose names contained multiple <code>.</code> characters caused errors in the structure generated for ElasticSearch indexing. This is now handled correctly.</td></tr><tr><td>Strong Fixity Check event not generated</td><td>A critical error prevented the Strong Fixity Check event from being generated during ingestion, breaking the integrity validation chain. This is now fixed.</td></tr><tr><td>GET performance on critical endpoints</td><td>Response times for GET requests on critical endpoints have been improved.</td></tr></tbody></table>

***

## Libsafe v1.1.0 — September 2025 <a href="#libsafe-v1.1.0-september-2025" id="libsafe-v1.1.0-september-2025"></a>

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

#### **Ingestion audit trail**

New internal tables (`file_ingested`, `file_ingested_action`) now record and audit every step of the ingestion process for each file. This provides a complete, per-file history of ingestion actions that supports both monitoring and compliance reporting.

#### **Security: critical vulnerability fixes**

Several critical vulnerabilities (including CVE-2023-24540 and CVE-2022-48174) were patched across the Identifier, Auditore, and S3Agent services. Customers are encouraged to update to this version to benefit from these security improvements.

#### **S3 query performance**

SQL queries in the S3Agent component have been optimised for high-load environments. This resolves performance degradation observed in production environments under heavy concurrent usage.

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

<table><thead><tr><th width="280">Area</th><th>What was fixed</th></tr></thead><tbody><tr><td>Ingestion from web interface</td><td>SIPs submitted via the web interface were not being processed correctly (while S3-sourced submissions worked normally). Ingestion from the web interface now works reliably.</td></tr><tr><td>Database/S3 synchronisation</td><td>Files deleted from S3 continued to appear as existing in the database. Deletion is now consistently reflected in both systems.</td></tr><tr><td>OI_CREATE trigger</td><td>The OI_CREATE trigger, which should fire after a file is created, was not being activated. It now fires correctly, enabling dependent workflows to execute as expected.</td></tr><tr><td>PREMIS events — UUID not generated</td><td>PREMIS events generated via API or message queue did not include a UUID. All PREMIS events now include the required UUID.</td></tr><tr><td>PREMIS download warning</td><td>A spurious warning appeared when downloading PREMIS events from the UI. This warning no longer appears.</td></tr><tr><td>PREMIS API endpoints — error 500</td><td>Endpoints for adding PREMIS events to containers and objects were returning HTTP 500 errors. These endpoints now function correctly.</td></tr><tr><td>Audit events for successful results</td><td>Full audit events were only being registered for failures, not for successful outcomes. Audit events are now recorded for all outcomes, ensuring complete traceability.</td></tr><tr><td>S3 permissions — read-only users cannot download</td><td>Users with read-only group permissions could not download files from their assigned containers. Permission validation has been corrected.</td></tr><tr><td>S3 permissions — full-permission users cannot upload via S3 clients</td><td>Users with full permissions via the Libsafe interface were denied write access when using S3-compatible tools (such as WinSCP). The root cause (mismatch between UI-granted and S3-level permissions) has been resolved.</td></tr><tr><td>S3 permissions — multipart upload blocked</td><td>Large file uploads via multipart S3 upload were being blocked due to missing permission propagation. Multipart uploads now work correctly for users with the appropriate permissions.</td></tr><tr><td>Copy/Move — files appear incomplete after copy</td><td>Copied files sometimes appeared with incorrect sizes or missing content. Files now copy completely and consistently.</td></tr><tr><td>Copy/Move — failure when target object was previously deleted</td><td>Copy or move operations failed if the destination object had previously been deleted. This edge case is now handled correctly.</td></tr><tr><td>Copy/Move — container stuck in Busy after failure</td><td>When a copy or move operation failed, the source container could remain in <em>Busy</em> state indefinitely. Containers now return to their correct state after a failed operation.</td></tr><tr><td>DataMangler — audit event insertion failure</td><td>An unexpected enum value in audit event processing caused the DataMangler service to drop messages. The enum handling has been corrected and message processing is now reliable.</td></tr></tbody></table>

***

## Libsafe v1.0.0 — July 2025 <a href="#libsafe-v1.0.0-july-2025" id="libsafe-v1.0.0-july-2025"></a>

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

#### **Structure Editor — full release**

The Structure Editor is now fully available. It provides a dedicated interface for creating and managing archival structures, allowing users to organise content into nodes and pages, define hierarchies, and export structure definitions as JSON. It supports node editing, attaching files to pages, and saving structures that can be archived and returned to the Workspace for further editing.

#### **GitHub App as function source**

Functions can now use a **GitHub App** as their source for automated workflows. This allows organisations to connect their GitHub repositories directly to Libsafe functions using secure, app-based authentication.

#### **Python 3.11 runtime for functions**

Python 3.11 is now available as a configurable runtime when creating functions. This provides access to the latest Python language features and performance improvements.

#### **Advanced Search — bulk ingestion operations**

The following ingestion operations, previously available only in automated pipelines, can now be applied on-demand to sets of files selected from Advanced Search results:

* **Re-characterization and format identification** — determine or re-determine the format of each selected file using the Siegfried identifier.
* **File format validation** — verify that selected files conform to their declared format.
* **Virus scanning** — scan selected files for malware.
* **File hashing** — calculate and store cryptographic hashes for integrity verification.
* **Text extraction** — extract and index full-text content from document files.
* **Embedded metadata extraction** — extract internal metadata from files in supported formats.
* **Bulk metadata editor** — modify metadata fields for multiple files simultaneously.
* **Bulk PREMIS Rights editor** — manage PREMIS rights information for multiple files in a single operation.

#### **Strong Fixity Check — improved interface**

The Strong Fixity Check process now has dedicated metric displays and a detail view with collapsible sections. The consistent name "Strong fixity check" is used throughout all screens. Excel export of results and logs is now available.

#### **TikaServer updated to Apache Tika 3.1.0**

The text and metadata extraction service has been upgraded to Apache Tika 3.1.0, bringing security patches and improved parsing stability across a wider range of file formats.

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

<table><thead><tr><th width="280">Area</th><th>What was fixed</th></tr></thead><tbody><tr><td>Structure Editor — cannot add files to pages</td><td>Users could not add files to pages within the Structure Editor due to missing context propagation. This is now resolved.</td></tr><tr><td>Structure Editor — cannot delete nodes without containers</td><td>Nodes that had no container assigned could not be deleted despite being structurally valid. Deletion now works for all valid nodes.</td></tr><tr><td>Structure Editor — cannot delete container descriptors with no values</td><td>Container descriptors that had no values defined could not be deleted. They can now be removed correctly.</td></tr><tr><td>Metadata — visibility and editability issues</td><td>Certain metadata elements were not visible or editable in editing views. Visibility and editability are now consistent with the configured permissions.</td></tr><tr><td>Metadata — PREMIS and metadata editors blocked for Glacier objects</td><td>PREMIS event and metadata editing actions could not be applied to objects in Glacier (Cold) storage. These actions now work for objects in all storage classes.</td></tr><tr><td>Object versions not displayed</td><td>New versions of objects were not appearing in the version history panel. The versions panel now updates correctly when new versions are added.</td></tr><tr><td>Archival nodes — child nodes not visible</td><td>Users could not see child nodes under specific archival nodes. All child nodes are now displayed correctly.</td></tr><tr><td>Deleted by request — error 404 on soft delete</td><td>Applying the "Deleted by request" soft-delete function returned a 404 error. The function now executes correctly.</td></tr><tr><td>Pipelines — special characters in BagIt Mover</td><td>The BagIt Mover function displayed corrupt links and failed when file or folder names contained special characters. Special characters are now handled correctly.</td></tr><tr><td>Pipelines — mirroring runs on non-preserved folders</td><td>The mirroring process was executing on folders marked as "not preserved". Mirroring now respects the preservation flag and skips folders accordingly.</td></tr><tr><td>Pipelines — on-demand search validation message persists</td><td>The validation message in on-demand search views did not disappear after the progress bar completed. The message now clears correctly.</td></tr><tr><td>Pipelines — job log table sorting errors</td><td>Sorting by columns such as Step Name, Container ID, Start Date, End Date, and Status in pipeline job log tables did not work correctly. Sorting is now fully functional.</td></tr><tr><td>API — GET /api/file unintended side effects</td><td>The GET /api/file endpoint had unintended changes that caused missing file listings. The endpoint has been reverted to the correct behaviour.</td></tr><tr><td>Search — folders with special characters return no results</td><td>Searching for folders whose names contained special characters returned no results. Special character search now works correctly.</td></tr><tr><td>Mirroring — mirroring policy "value" field not required</td><td>The "value" field in mirroring policy configuration was not marked as required, allowing invalid policies to be saved. The field is now enforced as mandatory.</td></tr><tr><td>S3 — multipart upload permission error</td><td>Users were blocked from uploading large files via multipart S3 upload due to missing permission propagation. Multipart uploads now work correctly.</td></tr><tr><td>S3 — S3-compatible clients unable to upload</td><td>Users with full permissions via the Libsafe interface could not upload via S3-compatible tools (WinSCP). Permission handling is now consistent between the UI and S3-level policies.</td></tr><tr><td>S3 — read-only users cannot download</td><td>Users with read-only permissions could not download objects from their assigned containers. Download permissions are now correctly applied.</td></tr><tr><td>Copy/Move — files incomplete after copy</td><td>File copy operations sometimes produced copies with incorrect sizes or missing content. Copies now complete correctly and preserve file integrity.</td></tr></tbody></table>

***

## Earlier: NSW 2025.02.0 — March 2025 <a href="#earlier-nsw-2025.02.0-march-2025" id="earlier-nsw-2025.02.0-march-2025"></a>

This release was specific to the NSW (New South Wales) deployment. It is included here for completeness.

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

Operations previously available only in automated pipelines were made available in **Advanced Search**, allowing users to apply ingestion processes on-demand to selected file sets:

* Re-characterization and format identification
* File format validation
* Virus scanning
* File hashing
* Text extraction
* Embedded metadata extraction

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

* Advanced Search — queries with file size filters (Greater or Equal) returned no results. Fixed.
* Advanced Search — saved query functionality was not working. Fixed.
* Folder deletion — folders with unusual characters in their names could not be deleted. Fixed.
* Large file downloads were being blocked. Fixed.
* Virus scanning during ingestion was not completing correctly. Fixed.
* Platform Processing and Performance page was showing only functions, not the full processing picture. Fixed.
* File Registry — category of entries in File Formats configuration could not be changed. Fixed.
* Search text boxes behaved inconsistently across different parts of the UI. Fixed.
* Pipeline — automatic trigger for scheduled massive ingestion was not firing. Fixed.
* Mirroring — log errors during mirroring process. Fixed.
* Metadata extraction event during ingestion was failing. Fixed.

***

## Summary of changes by role (v1.0 – v1.3) <a href="#summary-of-changes-by-role-v1.0-v1.3" id="summary-of-changes-by-role-v1.0-v1.3"></a>

<table><thead><tr><th width="280">Role</th><th>Key changes across all four versions</th></tr></thead><tbody><tr><td><strong>End user</strong></td><td>Structure Editor fully released; Advanced Search bulk operations available; PREMIS events display reliably; copy/move operations fixed; thumbnail and file version display corrected.</td></tr><tr><td><strong>Administrator</strong></td><td>Collections Interface archiving workflow operational (OCFL Archive module); S3 permissions correctly scoped for read-only and full-permission users; SSO login fixed; containers no longer stuck in Busy state; mirroring respects preservation flag.</td></tr><tr><td><strong>Compliance / Audit</strong></td><td>Complete PREMIS event audit trail (UUID always present); audit events recorded for all outcomes including successes; per-file ingestion history available; Strong Fixity Check improved UI and export.</td></tr><tr><td><strong>Operations</strong></td><td>Critical security vulnerabilities patched (v1.1); TikaServer upgraded to Apache Tika 3.1.0; ingestion pipeline reliability improved; S3 multipart upload permissions fixed; ElasticSearch index auto-creation.</td></tr></tbody></table>
