# Xopero ONE 2.2.0

### 🆕 **NEW FEATURES**

#### <mark style="background-color:blue;">Improved user experience</mark>

Updated the onboarding process for SaaS environments to simplify the initial setup, highlight key features of the solution (e.g., a custom encryption key), and guide users through the entire backup process.

#### <mark style="background-color:blue;">Visual improvements of the system dashboard</mark>

Redesigned the **Xopero ONE Management Service** main dashboard. The improved dashboard provides the same information as before, along with a quick storage overview. The refreshed interface features a modern color palette and a cleaner, more visually appealing layout. This updated view helps users better understand the displayed data and quickly assess the overall status of environment protection at a glance.

#### <mark style="background-color:blue;">Backup & recovery for GitHub Enterprise Cloud with data residency</mark>&#xD;

Backup and recovery of repositories and metadata stored in **GitHub Enterprise Cloud** with data residency are now available.

#### <mark style="background-color:blue;">AES-GCM encryption algorithm support</mark>

Added support for AES-GCM (Advanced Encryption Standard – Galois/Counter Mode) encryption, a modern standard used in security protocols.

***

### **🔨 IMPROVEMENTS**

#### <mark style="background-color:blue;">VMware disk consolidation</mark>

Added the **Enforce disk consolidation** option to **VMware** backup plan settings (disabled by default), allowing consolidation of source machine disks on the **VMware** side before snapshot creation.

#### <mark style="background-color:blue;">VMware backup reliability</mark>

Implemented fixes and improvements to enhance **VMware** backup reliability and performance: added retries to improve resilience against virtual machine disk connection and read errors, extended handling of additional **VMware** errors, and introduced a new datastore access mode configurable via the appsettings.json file.

#### <mark style="background-color:blue;">REST API for Azure DevOps</mark>

Extended the public API to support creation and management of **Azure DevOps** backup plans, consistent with other **Git** providers.

#### <mark style="background-color:blue;">Backup and recovery of related work links for Azure DevOps work items</mark>

Added support for backing up and restoring related work links between **Azure DevOps** work items. During restore, these relationships are recreated wherever **Azure DevOps** allows, preserving work item context and navigation. If some links cannot be restored due to **Azure DevOps** limitations, the system reports which links were skipped and why, helping administrators quickly assess restore completeness.

#### <mark style="background-color:blue;">Option to skip corrupted attachments in Jira granular backup</mark>

Added an option in **Jira** granular backup plan settings to skip corrupted issue attachments during backup. Corrupted attachments are no longer treated as failed resources and do not affect the overall backup status. A warning in the backup summary indicates when attachments are corrupted.

#### <mark style="background-color:blue;">Unified progress view for Jira granular backup</mark>

Improved the **Jira** granular backup progress view so that processed elements are displayed under the current step instead of as a long list, consistent with other backup types.

#### <mark style="background-color:blue;">Xopero Cloud Storage location</mark>

The exact geographical location of **Xopero Cloud Storage** is now displayed in the location column of the storage list, providing administrators with information about data residency.

#### <mark style="background-color:blue;">Updated Docker images</mark>

**Docker** container base images have been upgraded to **Ubuntu** 24.04 to ensure long-term support and improved security.

#### <mark style="background-color:blue;">Azure DevOps work items recovery</mark>

Improved the reliability of restoring **Azure DevOps** work items.

#### <mark style="background-color:blue;">Recovery of Azure DevOps pipelines</mark>

Added a warning message that is displayed when restoring an unsupported pipeline.

#### <mark style="background-color:blue;">Jira work items recovery</mark>

Added support for preserving the original tab name in recovered work items.

#### <mark style="background-color:blue;">Backup of Jira spaces with restricted access</mark>

Backups of **Jira** spaces with restricted access now complete with a clear warning instead of an unhandled error.

#### <mark style="background-color:blue;">Restored Jira comment authors</mark>

During work item comment recovery, comments are created on behalf of a **Jira** user used for integration with **Xopero ONE**, making this user the author of all restored comments. With the updated **Jira** comment restore mechanism, each restored comment now includes information about its original author in its content.

#### <mark style="background-color:blue;">Exclude closed pull requests and issues from GitHub backup</mark>

Users can now exclude closed pull requests and issues from **GitHub** organization backup plans.

#### <mark style="background-color:blue;">GitLab backup reliability</mark>

Improved handling of internal server errors during **GitLab** backups by adding additional retries for LFS uploads.

#### <mark style="background-color:blue;">Improved Microsoft 365 event logs</mark>

Added missing **Microsoft 365** logs for events related to adding and removing tenants in **GitProtect**.

#### <mark style="background-color:blue;">Preview of email messages during Microsoft 365 restore</mark>

Improved logging for email message previews during **Microsoft 365** restore operations. Event logs now clearly display the email subject, making it easier for administrators to identify which message was viewed.

#### <mark style="background-color:blue;">Cleanup of deduplication data</mark>

Improved cleanup of incomplete deduplication backups by removing temporary invalid blocks, reducing storage usage and improving efficiency.

#### <mark style="background-color:blue;">Improved backup summary</mark>

Added information about the agent (worker) to all backup summary types.

***

### &#x20;**🐛 BUGFIXES**

#### <mark style="background-color:blue;">Visibility of Hyper-V virtual machines in a cluster with multiple VMs in the same cluster group</mark>

Enhanced handling of **Hyper-V** clusters with multiple virtual machines in the same cluster group. **Xopero ONE** now correctly discovers all VMs, ensuring reliable backup and restoration.

#### <mark style="background-color:blue;">Leftover snapshots after cancelled Hyper-V backups</mark>

Fixed an issue with **Hyper-V** backups where cancelling a backup job could leave orphaned snapshot files on the VM datastore. Snapshots are now properly cleaned up after cancelled jobs, preventing leftover files and simplifying environment maintenance for administrators.

#### <mark style="background-color:blue;">Missing information about failed checkpoint merge for Hyper-V backups</mark>

The improved **Hyper-V** backup summary now clearly reports failed checkpoint and incremental disk merges for specific virtual machines.

#### <mark style="background-color:blue;">GitHub backup plan based on custom properties didn’t start under some conditions</mark>

Resolved an issue where **GitHub** backup plans based on custom property rules could fail to start with specific rule configurations. The system now correctly validates and processes custom property-based selection rules, ensuring that repositories matching the configured criteria are consistently included and that the plan runs as expected.

#### <mark style="background-color:blue;">Latest status for releases on a non-default branch after GitHub restore</mark>

Fixed an issue where **GitHub** releases created on a non-default branch could lose their latest status after restore. Restored repositories now retain the same latest release designation as the source repository.

#### <mark style="background-color:blue;">GitHub issues restored to a different organization are in the wrong order</mark>

Fixed an issue where **GitHub** issues restored to another organization could appear in a different order than in the original repository, affecting both closed and open issues. Restores now preserve the original issue order consistently, regardless of whether the organization is connected via OAuth or a personal access token, and regardless of whether the restore is performed from the **DevOps** view or from storage.

#### <mark style="background-color:blue;">Incorrect resource counters in GitHub restore operations</mark>

Fixed an issue where **GitHub** restores could display an incorrect number of failed items, especially for pull requests restored under limited token permissions. The restore process now correctly reports which **GitHub** resources were successfully recovered and which were not.

#### <mark style="background-color:blue;">Excluding GitHub and Azure DevOps repositories from a backup plan based on repository exclusion</mark>

Fixed an issue where backup plans for **Azure DevOps** and **GitHub** ignored excluded repositories and still protected all repositories in the selected organization. Backup scope and the number of backup subtasks now correctly reflect only the repositories selected by the user, making backup configuration more predictable and easier to control.

#### <mark style="background-color:blue;">Restoring pull request with a long description between GitLab and GitHub</mark>

When restoring **GitLab** repositories to **GitHub**, **Xopero ONE** now automatically shortens long merge request descriptions to comply with **GitHub** API limits.

#### <mark style="background-color:blue;">Restoring Azure DevOps project with a dot ('.') in its name</mark>

Fixed an issue that prevented restoring **Azure DevOps Server** projects whose names contained a dot ('.'). Backups of such projects can now be fully restored without requiring additional name changes.

#### <mark style="background-color:blue;">Recovering Azure DevOps projects with custom controls from the Microsoft Marketplace</mark>

Fixed an issue where **Azure DevOps** projects using custom controls from the **Microsoft Visual Studio Marketplace** (such as the **Multivalue control**) were not fully restored from backup. After this change, if the original extension is installed in the target organization, restored work items correctly include all associated custom controls.

#### <mark style="background-color:blue;">Incorrect information about the Jira space’s last backup time in the organization view</mark>

Fixed an issue where the last backup time for **Jira** spaces (projects) in the organization view was updated for all spaces after backing up a single **Jira** space. The last backup time is now displayed correctly for each space.

#### <mark style="background-color:blue;">Deleted Jira spaces are visible when creating a Jira granular backup plan</mark>

When configuring **Jira** granular backup plans by spaces (projects), deleted **Jira** spaces are no longer available for selection.

#### <mark style="background-color:blue;">Incorrect resource counts in a Jira granular backup summary</mark>

Fixed an issue where **Jira** organization metadata backup summaries showed incorrect counts of protected and restored items, including incorrectly counted directories.

#### <mark style="background-color:blue;">Missing attachments in incremental Jira granular backup</mark>

Fixed an issue where some **Jira** issue attachments were missing from incremental backup restore points, despite being correctly captured in full backups.

#### <mark style="background-color:blue;">Missing warning about corrupted attachments in Jira granular backup</mark>

When a **Jira** space backup encounters corrupted attachments, the backup summary now clearly displays a warning with details on which work items and how many attachments could not be protected.

#### <mark style="background-color:blue;">Missing field values for restored Jira team-managed spaces</mark>

Resolved an issue where **Jira** team-managed spaces' work items restored from backup could lose values in some custom and system fields. Work items restored from team-managed spaces now retain the same field data as the originals, improving data consistency and eliminating the need for manual corrections after a restore.

#### <mark style="background-color:blue;">Data deletion tasks stuck in the queue</mark>

Data deletion tasks no longer remain stuck in the queued state after long-running backup jobs. Once running backups complete, queued deletion jobs now start and finish as expected, ensuring that backup plans and their data are removed in a timely and reliable manner.

#### <mark style="background-color:blue;">Backup plans scheduled for after 11 PM with an active time window didn't start</mark>

Backups scheduled between 23:00 and 00:00 with an active backup window now start correctly according to the plan schedule. If a backup plan fails to start, the interface clearly informs the user of the failed execution, improving visibility for administrators when scheduled backups do not run.

#### <mark style="background-color:blue;">Backup agent update on Linux</mark>

The remote update of **Linux** agents (workers) has been improved so that the first update attempt now completes successfully instead of failing and requiring a manual retry.

***

<p align="center"><a href="https://xopero.com/product-changelogs">ALL XOPERO ONE SOFTWARE RELEASES</a></p>
