feat: technical release (#10174)

This commit is contained in:
Mathieu
2026-07-27 15:05:16 +02:00
committed by GitHub
parent efbfb664f7
commit 74b952be2b
34 changed files with 163 additions and 151 deletions

View File

@@ -24,7 +24,7 @@
"fuse-native": "^2.2.6",
"lru-cache": "^7.14.0",
"promise-toolbox": "^0.21.0",
"vhd-lib": "^4.16.0"
"vhd-lib": "^4.16.1"
},
"bin": {
"xo-fuse-vhd": "./cli.mjs"

View File

@@ -22,10 +22,10 @@
"@vates/async-each": "^1.0.3",
"@vates/read-chunk": "^1.2.1",
"@xen-orchestra/async-map": "^0.1.3",
"@xen-orchestra/disk-transform": "^1.3.1",
"@xen-orchestra/disk-transform": "^1.3.2",
"@xen-orchestra/log": "^0.7.2",
"promise-toolbox": "^0.21.0",
"xen-api": "^4.7.8"
"xen-api": "^4.8.0"
},
"devDependencies": {
"tap": "^18.7.0",

View File

@@ -1,7 +1,7 @@
{
"name": "@vates/types",
"private": false,
"version": "1.28.0",
"version": "1.29.0",
"main": "./dist/index.mjs",
"exports": {
".": {

View File

@@ -6,7 +6,7 @@
"main": "dist/index.mjs",
"name": "@xen-orchestra/acl",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/acl",
"version": "1.4.0",
"version": "1.5.0",
"license": "AGPL-3.0-or-later",
"private": false,
"type": "module",
@@ -30,7 +30,7 @@
},
"devDependencies": {
"@eslint/js": "^9.19.0",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"rimraf": "^6.0.1",
"typescript": "~5.6",
"typescript-eslint": "^8.61.0"

View File

@@ -1,6 +1,6 @@
{
"name": "@xen-orchestra/backup-archive",
"version": "1.0.4",
"version": "1.1.0",
"description": "Helper to handle generic backup archives",
"license": "ISC",
"author": "",
@@ -21,18 +21,18 @@
"tar-stream": "^3.1.8",
"@types/tar-stream": "^3.1.4",
"tmp": "^0.2.1",
"@vates/types": "^1.28.0"
"@vates/types": "^1.29.0"
},
"dependencies": {
"@xen-orchestra/log": "^0.7.1",
"@xen-orchestra/fs": "^4.9.2",
"@xen-orchestra/disk-transform": "^1.3.1",
"@xen-orchestra/disk-transform": "^1.3.2",
"@vates/task": "0.7.0",
"golike-defer": "0.5.1",
"uuid": "^9.0.0",
"promise-toolbox": "^0.21.0",
"@vates/async-each": "^1.0.1",
"vhd-lib": "^4.14.7"
"vhd-lib": "^4.16.1"
},
"scripts": {
"build": "yarn run clean && tsc",

View File

@@ -8,7 +8,7 @@
"dependencies": {
"@vates/async-each": "^1.0.3",
"@xen-orchestra/async-map": "^0.1.3",
"@xen-orchestra/backups": "^0.73.7",
"@xen-orchestra/backups": "^0.73.8",
"@xen-orchestra/fs": "^4.9.2",
"filenamify": "^6.0.0",
"getopts": "^2.2.5",

View File

@@ -8,7 +8,7 @@
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"version": "0.73.7",
"version": "0.73.8",
"engines": {
"node": ">=14.18"
},
@@ -30,14 +30,14 @@
"@vates/nbd-client": "^3.4.0",
"@vates/parse-duration": "^0.1.1",
"@vates/task": "^0.7.0",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"@xen-orchestra/async-map": "^0.1.3",
"@xen-orchestra/disk-transform": "^1.3.1",
"@xen-orchestra/disk-transform": "^1.3.2",
"@xen-orchestra/fs": "^4.9.2",
"@xen-orchestra/log": "^0.7.2",
"@xen-orchestra/qcow2": "^1.3.1",
"@xen-orchestra/template": "^0.1.1",
"@xen-orchestra/backup-archive": "^1.0.4",
"@xen-orchestra/backup-archive": "^1.1.0",
"app-conf": "^3.0.0",
"compare-versions": "^6.0.0",
"d3-time-format": "^4.1.0",
@@ -55,8 +55,8 @@
"tar": "^7.5.3",
"uuid": "^9.0.0",
"value-matcher": "^0.2.0",
"vhd-lib": "^4.16.0",
"xen-api": "^4.7.8",
"vhd-lib": "^4.16.1",
"xen-api": "^4.8.0",
"yazl": "^2.5.1"
},
"devDependencies": {
@@ -67,7 +67,7 @@
"typescript": "^5.9.3"
},
"peerDependencies": {
"@xen-orchestra/xapi": "^8.9.0"
"@xen-orchestra/xapi": "^8.10.0"
},
"license": "AGPL-3.0-or-later",
"author": {

View File

@@ -18,7 +18,7 @@
"preferGlobal": true,
"dependencies": {
"golike-defer": "^0.5.1",
"xen-api": "^4.7.8"
"xen-api": "^4.8.0"
},
"scripts": {
"postversion": "npm publish"

View File

@@ -1,7 +1,7 @@
{
"private": false,
"name": "@xen-orchestra/disk-cli",
"version": "2.1.2",
"version": "2.2.0",
"description": "CLI tool to inspect and manage disks in backup repositories",
"type": "module",
"bin": {
@@ -20,13 +20,13 @@
},
"dependencies": {
"@vates/async-each": "^1.0.3",
"@xen-orchestra/backups": "^0.73.7",
"@xen-orchestra/backup-archive": "^1.0.4",
"@xen-orchestra/disk-transform": "^1.3.1",
"@xen-orchestra/backups": "^0.73.8",
"@xen-orchestra/backup-archive": "^1.1.0",
"@xen-orchestra/disk-transform": "^1.3.2",
"@xen-orchestra/fs": "^4.9.2",
"@xen-orchestra/qcow2": "^1.3.1",
"promise-toolbox": "^0.21.0",
"vhd-lib": "^4.16.0"
"vhd-lib": "^4.16.1"
},
"devDependencies": {
"@types/node": "^22.3.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@xen-orchestra/disk-transform",
"version": "1.3.1",
"version": "1.3.2",
"main": "./dist/index.mjs",
"license": "MIT",
"private": false,

View File

@@ -22,7 +22,7 @@
},
"dependencies": {
"@vates/async-each": "^1.0.3",
"@xen-orchestra/backups": "^0.73.7",
"@xen-orchestra/backups": "^0.73.8",
"@xen-orchestra/log": "^0.7.2",
"app-conf": "^3.0.0",
"execa": "^5.0.0",

View File

@@ -28,13 +28,13 @@
"@types/file-saver": "^2.0.7",
"@types/lodash-es": "^4.17.12",
"@types/node": "^18.19.80",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"@vitejs/plugin-vue": "^6.0.0",
"@vue/tsconfig": "^0.9.0",
"@vueuse/core": "^14.0.0",
"@vueuse/math": "^14.0.0",
"@vueuse/shared": "^14.0.0",
"@xen-orchestra/web-core": "^0.56.0",
"@xen-orchestra/web-core": "^0.57.0",
"complex-matcher": "^1.1.1",
"d3-time-format": "^4.1.0",
"decorator-synchronized": "^0.6.0",

View File

@@ -34,7 +34,7 @@
"devDependencies": {
"@eslint/js": "^9.19.0",
"@types/node": "^22.3.0",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"rimraf": "^6.0.0",
"typescript": "~5.6.3",
"typescript-eslint": "^8.61.0"

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "@xen-orchestra/proxy",
"version": "0.31.2",
"version": "0.31.3",
"license": "AGPL-3.0-or-later",
"description": "XO Proxy used to remotely execute backup jobs",
"keywords": [
@@ -33,13 +33,13 @@
"@vates/disposable": "^0.1.6",
"@vates/task": "^0.7.0",
"@xen-orchestra/async-map": "^0.1.3",
"@xen-orchestra/backups": "^0.73.7",
"@xen-orchestra/backups": "^0.73.8",
"@xen-orchestra/fs": "^4.9.2",
"@xen-orchestra/log": "^0.7.2",
"@xen-orchestra/mixin": "^0.2.1",
"@xen-orchestra/mixins": "^0.20.1",
"@xen-orchestra/self-signed": "^0.2.1",
"@xen-orchestra/xapi": "^8.9.0",
"@xen-orchestra/xapi": "^8.10.0",
"ajv": "^8.0.3",
"app-conf": "^3.0.0",
"async-iterator-to-stream": "^1.1.0",
@@ -61,7 +61,7 @@
"source-map-support": "^0.5.16",
"stoppable": "^1.0.6",
"xdg-basedir": "^5.1.0",
"xen-api": "^4.7.8",
"xen-api": "^4.8.0",
"xo-common": "^0.10.0"
},
"devDependencies": {

View File

@@ -21,7 +21,7 @@
},
"dependencies": {
"@vates/async-each": "^1.0.3",
"@xen-orchestra/backups": "^0.73.7",
"@xen-orchestra/backups": "^0.73.8",
"@xen-orchestra/fs": "^4.9.2",
"@xen-orchestra/log": "^0.7.2",
"nodemailer": "^7.0.13",

View File

@@ -36,6 +36,6 @@
"typescript-eslint": "^8.61.0"
},
"dependencies": {
"@xen-orchestra/disk-transform": "^1.3.1"
"@xen-orchestra/disk-transform": "^1.3.2"
}
}

View File

@@ -6,7 +6,7 @@
"main": "./dist/index.mjs",
"name": "@xen-orchestra/rest-api",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/rest-api",
"version": "0.35.0",
"version": "0.36.0",
"description": "REST API to manage your XOA",
"license": "AGPL-3.0-or-later",
"private": false,
@@ -36,11 +36,11 @@
"dependencies": {
"@vates/async-each": "^1.0.3",
"@vates/task": "^0.7.0",
"@vates/types": "^1.28.0",
"@xen-orchestra/acl": "^1.4.0",
"@xen-orchestra/backups": "^0.73.7",
"@vates/types": "^1.29.0",
"@xen-orchestra/acl": "^1.5.0",
"@xen-orchestra/backups": "^0.73.8",
"@xen-orchestra/log": "^0.7.2",
"@xen-orchestra/xapi": "^8.9.0",
"@xen-orchestra/xapi": "^8.10.0",
"complex-matcher": "^1.1.1",
"golike-defer": "^0.5.1",
"inversify": "^6.2.2",

View File

@@ -12,7 +12,7 @@
"lodash": "^4.18.0",
"semver": "^7.7.2",
"undici": "^7.8.0",
"vhd-lib": "^4.16.0",
"vhd-lib": "^4.16.1",
"xml2js": "^0.6.2",
"xo-vmdk-to-vhd": "^2.5.10"
},

View File

@@ -1,7 +1,7 @@
{
"name": "@xen-orchestra/web-core",
"type": "module",
"version": "0.56.0",
"version": "0.57.0",
"private": false,
"exports": {
"./*": {

View File

@@ -1,6 +1,6 @@
{
"name": "@xen-orchestra/web",
"version": "0.55.2",
"version": "0.56.0",
"type": "module",
"scripts": {
"dev": "vite",
@@ -28,14 +28,14 @@
"@types/d3-time-format": "^4.0.3",
"@types/lodash-es": "^4.17.12",
"@types/node": "^18.19.80",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"@vitejs/plugin-vue": "^6.0.0",
"@vue/tsconfig": "^0.9.0",
"@vueuse/core": "^14.0.0",
"@vueuse/integrations": "^14.0.0",
"@vueuse/math": "^14.0.0",
"@vueuse/shared": "^14.0.0",
"@xen-orchestra/web-core": "^0.56.0",
"@xen-orchestra/web-core": "^0.57.0",
"complex-matcher": "^1.1.1",
"d3-time-format": "^4.1.0",
"human-format": "^1.2.1",

View File

@@ -1,6 +1,6 @@
{
"name": "@xen-orchestra/xapi",
"version": "8.9.0",
"version": "8.10.0",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/xapi",
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
"repository": {
@@ -16,7 +16,7 @@
},
"main": "./index.mjs",
"peerDependencies": {
"xen-api": "^4.7.8"
"xen-api": "^4.8.0"
},
"scripts": {
"postversion": "npm publish --access public",
@@ -30,7 +30,7 @@
"@vates/read-chunk": "^1.2.1",
"@vates/task": "^0.7.0",
"@xen-orchestra/async-map": "^0.1.3",
"@xen-orchestra/disk-transform": "^1.3.1",
"@xen-orchestra/disk-transform": "^1.3.2",
"@xen-orchestra/log": "^0.7.2",
"@xen-orchestra/qcow2": "^1.3.1",
"d3-time-format": "^4.1.0",
@@ -39,7 +39,7 @@
"json-rpc-protocol": "^0.13.2",
"lodash": "^4.18.0",
"promise-toolbox": "^0.21.0",
"vhd-lib": "^4.16.0",
"vhd-lib": "^4.16.1",
"xo-common": "^0.10.0"
},
"private": false,

View File

@@ -1,5 +1,96 @@
# ChangeLog
## **next**
### Security
- [XO server] Permissions were ignored for some pool functions ([#10093](https://github.com/vatesfr/xen-orchestra/pull/10093))
- [Users/Create] Removed default user's password from the logs during account creation (PR [#10094](https://github.com/vatesfr/xen-orchestra/pull/10094))
- [Security] Serve a default `Content-Security-Policy` to mitigate cross-site scripting and related attacks. It can be extended or disabled through the `http.helmet` configuration (PR [#10101](https://github.com/vatesfr/xen-orchestra/pull/10101))
### Enhancements
- [REST API] Possibility of sending `autoEnable` in the body of the `/hosts/:id/actions/disable` endpoint (PR [#10040](https://github.com/vatesfr/xen-orchestra/pull/10040))
- [REST API] `PATCH /rest/v0/vdis/{id}` to update a VDI's name, description and size (PR [#9945](https://github.com/vatesfr/xen-orchestra/pull/9945))
- [REST API] Possibility to set the HA restart priority (`high_availability`) when creating a VM (PR [#10070](https://github.com/vatesfr/xen-orchestra/pull/10070))
- [REST API] Expose `/rest/v0/acl-roles/:id/users` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [REST API] Expose `/rest/v0/acl-roles/:id/groups` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [REST API] Expose `/rest/v0/groups/:id/acl-roles` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [REST API] Add `POST /srs` REST route to create a storage repository (PR [#9990](https://github.com/vatesfr/xen-orchestra/pull/9990))
- **RBAC** check for REST API endpoints:
- `/pools/:id/actions/create_bonded_network` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891))
- `/pools/:id/actions/create_internal_network` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891))
- `/pools/:id/actions/management-reconfigure` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891))
- [XO/Pool] XO now reconnects to a surviving pool member when the master becomes unreachable (e.g. HA promoted a new master after the old one died), instead of staying stuck on the dead master, including after an XO restart (PR [#10016](https://github.com/vatesfr/xen-orchestra/pull/10016))
- [RPU] Trace rolling pool updates/reboots to disk to allow diagnosis even after xo-server restarts (PR [#10078](https://github.com/vatesfr/xen-orchestra/pull/10078))
- [RPU/RPR] Re-check that each host can still be evacuated right before evacuating it, to fail early with an explicit error (PR [#10097](https://github.com/vatesfr/xen-orchestra/pull/10097))
- [RPU] Re-enable the load balancer after a configurable safe delay (30 minutes by default) when a rolling pool update ends (PR [#10111](https://github.com/vatesfr/xen-orchestra/pull/10111))
- [vm stats] Reduce the memory consumption of the rrd stats (PR [#10039](https://github.com/vatesfr/xen-orchestra/pull/10039))
- [XO5/Hub] Recipes are now available to all plans, not just Premium (PR [#10117](https://github.com/vatesfr/xen-orchestra/pull/10117))
- [XO5/Hub] Kubernetes cluster recipe no longer requires the XOA plugin to work (PR [#10127](https://github.com/vatesfr/xen-orchestra/pull/10127))
- [XO6] Fix some design inconsistency between pages (PR [#10109](https://github.com/vatesfr/xen-orchestra/pull/10109))
- [XO6] Input fields now support prefix/suffix sections, and display validation messages ordered by severity (PR [#10009](https://github.com/vatesfr/xen-orchestra/pull/10009))
- [Users] Add Users Table (PR [#10029](https://github.com/vatesfr/xen-orchestra/pull/10029))
- [Site] Add "New VM" and "Connect pool" actions to the site infrastructure tree (PR [#10047](https://github.com/vatesfr/xen-orchestra/pull/10047))
- [Site] Add "Connect pool" action to the site infrastructure tree (PR [#10047](https://github.com/vatesfr/xen-orchestra/pull/10047))
- [Pool] Add new VM and disconnect actions to the pool infrastructure tree (PR [#10046](https://github.com/vatesfr/xen-orchestra/pull/10046))
- [Pool] Add connect/disconnect action on page Site (PR [#10075](https://github.com/vatesfr/xen-orchestra/pull/10075))
- [Host] Add possibilty to enable or disable an host (PR [#10074](https://github.com/vatesfr/xen-orchestra/pull/10074))
- [VM] Add possibility to duplicate a VM (PR [#9580](https://github.com/vatesfr/xen-orchestra/pull/9580))
- [VM] Group VM power actions in a new "Change state" submenu and isolate the Delete action (PR [#10036](https://github.com/vatesfr/xen-orchestra/pull/10036))
- [VM] Add possibility to export a VM (PR [#9989](https://github.com/vatesfr/xen-orchestra/pull/9989))
- [VM] Add "New VM" button on Host view (PR [#10048](https://github.com/vatesfr/xen-orchestra/pull/10048))
- [New VM] Add the possibility to set the HA restart priority when creating a VM (PR [#10072](https://github.com/vatesfr/xen-orchestra/pull/10072))
- [VIF] Add possibility to create VIF from network tab in VM page (PR [#9677](https://github.com/vatesfr/xen-orchestra/pull/9677))
- [Tasks] Resolve objects in tasks names [Forum#100894](https://xcp-ng.org/forum/post/100894) (PR [#9830](https://github.com/vatesfr/xen-orchestra/pull/9830))
- [Traffic rules] Show only traffic rules of VMs. Don't include vm-snapshots or vm-templates. In the VM selector, disable VMs that don't have any VIF (PR [#9977](https://github.com/vatesfr/xen-orchestra/pull/9977))
- [OpenMetrics] Add an estimated per-VM power consumption metric (`xcp_vm_power_consumption_watts`), splitting each host's IPMI power across its running VMs proportionally to CPU load (PR [#10031](https://github.com/vatesfr/xen-orchestra/pull/10031))
- [XO server] expose more metrics when doing a memory dump (PR [#10041](https://github.com/vatesfr/xen-orchestra/pull/10041))
- [XO server] Add `aclRoleIds` property to the `group` objects (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [XO server] Add `groupIds`, `userIds` and `privilegeIds` properties to the `acl-role` objects (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [Backups] Show reason when delta backup falls back to a full (PR [#10148](https://github.com/vatesfr/xen-orchestra/pull/10148))
### Bug fixes
- [XO6] Fix negative "other" value in backup repository dashboard (PR [#10044](https://github.com/vatesfr/xen-orchestra/pull/10044))
- [Host] Wrap the Network name in the PIF side panel (PR [#10155](https://github.com/vatesfr/xen-orchestra/pull/10155))
- [Host/dashboard] Switch CPU and RAM panels order to match Pool dashboard layout (PR [#10059](https://github.com/vatesfr/xen-orchestra/pull/10059))
- [RPU/RPR] Temporarily disable VMs auto power on during the run: unexpected VM starts on rebooted hosts could break the remaining host evacuations (`HOST_NOT_ENOUGH_FREE_MEMORY`) (PR [#10104](https://github.com/vatesfr/xen-orchestra/pull/10104))
- [RPU] Fix "Updating LINSTOR packages" subtask progress going over 100% (PR [#10122](https://github.com/vatesfr/xen-orchestra/pull/10122))
- [RPU] Fix `The updater plugin is busy` error making the update fail right after the "Updating LINSTOR packages" step (PR [#10115](https://github.com/vatesfr/xen-orchestra/pull/10115))
- [Plugins/Perf-alert] Update URL generation to support V6 routing (PR [#10054](https://github.com/vatesfr/xen-orchestra/pull/10054))
- [Backup/Remotes] Listing backup repositories is no longer slowed down by an unreachable one: a broken repository is now served from cache and retried in the background instead of timing out on every refresh (PR [#10025](https://github.com/vatesfr/xen-orchestra/pull/10025))
- [Backups] Fix EEXIST issue when recreating backup in VhdDirectory after crash (PR [#10139](https://github.com/vatesfr/xen-orchestra/pull/10139))
- [Backups] Fix failed status on successful retry [Forum#12366](https://xcp-ng.org/forum/topic/12366) (PR [#10129](https://github.com/vatesfr/xen-orchestra/pull/10129))
- [Backups] Fix missing transfer size (PR [#10106](https://github.com/vatesfr/xen-orchestra/pull/10106))
- [Backups] write the complete disk metadata at once to improve compatibility with immutable backup repository (PR [#10104](https://github.com/vatesfr/xen-orchestra/pull/10104))
- [Backup] Fix `unexpected number of entries in backup cache` warning not resolving automatically (PR [#10132](https://github.com/vatesfr/xen-orchestra/pull/10132))
- [Host] Successful evacuation signature fallbacks on older XAPI versions are no longer logged as warnings (PR [#10131](https://github.com/vatesfr/xen-orchestra/pull/10131))
- [XO5/About/Hub] Fix "Failed to fetch latest master commit" and the microk8s version list: the default `Content-Security-Policy` now allows the browser to reach the GitHub API (PR [#10162](https://github.com/vatesfr/xen-orchestra/pull/10162))
- [Qcow2 import] show a valid progress bar for qcow2 disk import from form , command line or V2V (PR [#10133](https://github.com/vatesfr/xen-orchestra/pull/10133))
### Released packages
- @xen-orchestra/disk-transform 1.3.2
- vhd-lib 4.16.1
- xen-api 4.8.0
- @vates/types 1.29.0
- @xen-orchestra/acl 1.5.0
- @xen-orchestra/backup-archive 1.1.0
- @xen-orchestra/xapi 8.10.0
- @xen-orchestra/backups 0.73.8
- @xen-orchestra/disk-cli 2.2.0
- @xen-orchestra/web-core 0.57.0
- @xen-orchestra/proxy 0.31.3
- @xen-orchestra/rest-api 0.36.0
- @xen-orchestra/web 0.56.0
- xapi-explore-sr 0.4.7
- xo-server 5.206.0
- xo-server-openmetrics 1.8.0
- xo-server-perf-alert 1.1.1
- xo-web 5.200.0
## **6.6.2** (2026-07-09)
<img id="latest" src="https://badgen.net/badge/channel/latest/yellow" alt="Channel: latest" />

View File

@@ -7,75 +7,14 @@
> Security fixes and new features should go in this section
- xo-server : Permissions were ignored for some pool functions ([#10093](https://github.com/vatesfr/xen-orchestra/pull/10093))
- [Users/Create] Removed default user's password from the logs during account creation (PR [#10094](https://github.com/vatesfr/xen-orchestra/pull/10094))
- [Security] Serve a default `Content-Security-Policy` to mitigate cross-site scripting and related attacks. It can be extended or disabled through the `http.helmet` configuration (PR [#10101](https://github.com/vatesfr/xen-orchestra/pull/10101))
### Enhancements
> Users must be able to say: "Nice enhancement, I'm eager to test it"
- **RBAC** check for REST API endpoints:
- `/pools/:id/actions/create_bonded_network` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891))
- `/pools/:id/actions/create_internal_network` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891))
- `/pools/:id/actions/management-reconfigure` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891))
- [REST API] Possibility of sending `autoEnable` in the body of the `/hosts/:id/actions/disable` endpoint (PR [#10040](https://github.com/vatesfr/xen-orchestra/pull/10040))
- [REST API] `PATCH /rest/v0/vdis/{id}` to update a VDI's name, description and size (PR [#9945](https://github.com/vatesfr/xen-orchestra/pull/9945))
- [Pool] XO now reconnects to a surviving pool member when the master becomes unreachable (e.g. HA promoted a new master after the old one died), instead of staying stuck on the dead master, including after an XO restart (PR [#10016](https://github.com/vatesfr/xen-orchestra/pull/10016))
- [XO6/VIF] Add possibility to create VIF from network tab in VM page (PR [#9677](https://github.com/vatesfr/xen-orchestra/pull/9677))
- [vm stats] Reduce the memory consumption of the rrd stats (PR [#10039](https://github.com/vatesfr/xen-orchestra/pull/10039))
- [XO6/Site] Add "New VM" and "Connect pool" actions to the site infrastructure tree (PR [#10047](https://github.com/vatesfr/xen-orchestra/pull/10047))
- [XO5/Hub] Recipes are now available to all plans, not just Premium (PR [#10117](https://github.com/vatesfr/xen-orchestra/pull/10117))
- [Hub] Kubernetes cluster recipe no longer requires the XOA plugin to work (PR [#10127](https://github.com/vatesfr/xen-orchestra/pull/10127))
- [XO6/Host] Add possibilty to enable or disable an host (PR [#10074](https://github.com/vatesfr/xen-orchestra/pull/10074))
- [XO6/Site] Add "Connect pool" action to the site infrastructure tree (PR [#10047](https://github.com/vatesfr/xen-orchestra/pull/10047))
- [VM]: Add possibility to duplicate a VM (PR [#9580](https://github.com/vatesfr/xen-orchestra/pull/9580))
- [RPU] Trace rolling pool updates/reboots to disk to allow diagnosis even after xo-server restarts (PR [#10078](https://github.com/vatesfr/xen-orchestra/pull/10078))
- [XO6/VM] Group VM power actions in a new "Change state" submenu and isolate the Delete action (PR [#10036](https://github.com/vatesfr/xen-orchestra/pull/10036))
- [OpenMetrics] Add an estimated per-VM power consumption metric (`xcp_vm_power_consumption_watts`), splitting each host's IPMI power across its running VMs proportionally to CPU load (PR [#10031](https://github.com/vatesfr/xen-orchestra/pull/10031))
- [XO6/VM] Add possibility to export a VM (PR [#9989](https://github.com/vatesfr/xen-orchestra/pull/9989))
- [Rolling Pool Update/Reboot] Re-check that each host can still be evacuated right before evacuating it, to fail early with an explicit error (PR [#10097](https://github.com/vatesfr/xen-orchestra/pull/10097))
- [XO6/VM] Add "New VM" button on Host view (PR [#10048](https://github.com/vatesfr/xen-orchestra/pull/10048))
- [xo-server] expose more metrics when doing a memory dump (PR [#10041](https://github.com/vatesfr/xen-orchestra/pull/10041))
- [RPU] Re-enable the load balancer after a configurable safe delay (30 minutes by default) when a rolling pool update ends (PR [#10111](https://github.com/vatesfr/xen-orchestra/pull/10111))
- [Tasks] Resolve objects in tasks names [Forum#100894](https://xcp-ng.org/forum/post/100894) (PR [#9830](https://github.com/vatesfr/xen-orchestra/pull/9830))
- [REST API] Possibility to set the HA restart priority (`high_availability`) when creating a VM (PR [#10070](https://github.com/vatesfr/xen-orchestra/pull/10070))
- [XO6/Traffic rules] Show only traffic rules of VMs. Don't include vm-snapshots or vm-templates. In the VM selector, disable VMs that don't have any VIF (PR [#9977](https://github.com/vatesfr/xen-orchestra/pull/9977))
- [Pool] Add new VM and disconnect actions to the pool infrastructure tree (PR [#10046](https://github.com/vatesfr/xen-orchestra/pull/10046))
- [REST API] Expose `/rest/v0/groups/:id/acl-roles` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [XO server] Add `aclRoleIds` property to the `group` objects (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [XO server] Add `groupIds`, `userIds` and `privilegeIds` properties to the `acl-role` objects (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [REST API] Expose `/rest/v0/acl-roles/:id/users` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [REST API] Expose `/rest/v0/acl-roles/:id/groups` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085))
- [XO6] Fix some design inconsistency between pages (PR [#10109](https://github.com/vatesfr/xen-orchestra/pull/10109))
- [XO6/Users] Add Users Table (PR [#10029](https://github.com/vatesfr/xen-orchestra/pull/10029))
- [XO6] Input fields now support prefix/suffix sections, and display validation messages ordered by severity (PR [#10009](https://github.com/vatesfr/xen-orchestra/pull/10009))
- [XO6/New VM] Add the possibility to set the HA restart priority when creating a VM (PR [#10072](https://github.com/vatesfr/xen-orchestra/pull/10072))
- [REST API] Add `POST /srs` REST route to create a storage repository (PR [#9990](https://github.com/vatesfr/xen-orchestra/pull/9990))
- [XO6/Pool] Add connect/disconnect action on page Site (PR [#10075])(https://github.com/vatesfr/xen-orchestra/pull/10075)
- [Backups] Show reason when delta backup falls back to a full (PR [#10148](https://github.com/vatesfr/xen-orchestra/pull/10148))
### Bug fixes
> Users must be able to say: "I had this issue, happy to know it's fixed"
- [Backup/Remotes] Listing backup repositories is no longer slowed down by an unreachable one: a broken repository is now served from cache and retried in the background instead of timing out on every refresh (PR [#10025](https://github.com/vatesfr/xen-orchestra/pull/10025))
- [XO6] Fix negative "other" value in backup repository dashboard (PR [#10044](https://github.com/vatesfr/xen-orchestra/pull/10044))
- [Backups] Fix missing transfer size (PR [#10106](https://github.com/vatesfr/xen-orchestra/pull/10106))
- [Host/dashboard] Switch CPU and RAM panels order to match Pool dashboard layout (PR [#10059](https://github.com/vatesfr/xen-orchestra/pull/10059))
- [RPU] Fix `The updater plugin is busy` error making the update fail right after the "Updating LINSTOR packages" step (PR [#10115](https://github.com/vatesfr/xen-orchestra/pull/10115))
- [Plugins/Perf-alert] Update URL generation to support V6 routing (PR [#10054](https://github.com/vatesfr/xen-orchestra/pull/10054))
- [Rolling Pool Update/Reboot] Temporarily disable VMs auto power on during the run: unexpected VM starts on rebooted hosts could break the remaining host evacuations (`HOST_NOT_ENOUGH_FREE_MEMORY`) (PR [#10104](https://github.com/vatesfr/xen-orchestra/pull/10104))
- [Rolling Pool Update] Fix "Updating LINSTOR packages" subtask progress going over 100% (PR [#XXXX](https://github.com/vatesfr/xen-orchestra/pull/XXXX))
- [Backups] Fix EEXIST issue when recreating backup in VhdDirectory after crash (PR [#10139](https://github.com/vatesfr/xen-orchestra/pull/10139))
- [Backups] Fix failed status on successful retry [Forum#12366](https://xcp-ng.org/forum/topic/12366) (PR [#10129](https://github.com/vatesfr/xen-orchestra/pull/10129))
- [Host] Successful evacuation signature fallbacks on older XAPI versions are no longer logged as warnings (PR [#10131](https://github.com/vatesfr/xen-orchestra/pull/10131))
- [Backups] write the complete disk metadata at once to improve compatibility with immutable backup repository (PR [#10104](https://github.com/vatesfr/xen-orchestra/pull/10104))
- [XO6/Host] Wrap the Network name in the PIF side panel (PR [#10155](https://github.com/vatesfr/xen-orchestra/pull/10155))
- [About/Hub] Fix "Failed to fetch latest master commit" and the microk8s version list: the default `Content-Security-Policy` now allows the browser to reach the GitHub API (PR [#10162](https://github.com/vatesfr/xen-orchestra/pull/10162))
- [Qcow2 import] show a valid progress bar for qcow2 disk import from form , command line or V2V (PR [#10133](https://github.com/vatesfr/xen-orchestra/pull/10133))
- [Backup] Fix `unexpected number of entries in backup cache` warning not resolving automatically (PR [#10132](https://github.com/vatesfr/xen-orchestra/pull/10132))
### Packages to release
> When modifying a package, add it here with its release type.
@@ -92,22 +31,4 @@
<!--packages-start-->
- @vates/types minor
- @xen-orchestra/acl minor
- @xen-orchestra/backup-archive minor
- @xen-orchestra/backups patch
- @xen-orchestra/disk-cli minor
- @xen-orchestra/disk-transform patch
- @xen-orchestra/rest-api minor
- @xen-orchestra/web minor
- @xen-orchestra/web-core minor
- @xen-orchestra/xapi minor
- vhd-lib patch
- xapi-explore-sr patch
- xen-api minor
- xo-server minor
- xo-server-openmetrics minor
- xo-server-perf-alert patch
- xo-web minor
<!--packages-end-->

View File

@@ -32,7 +32,7 @@
"lodash": "^4.18.0",
"promise-toolbox": "^0.21.0",
"uuid": "^9.0.0",
"vhd-lib": "^4.16.0"
"vhd-lib": "^4.16.1"
},
"scripts": {
"postversion": "npm publish",

View File

@@ -1,7 +1,7 @@
{
"private": false,
"name": "vhd-lib",
"version": "4.16.0",
"version": "4.16.1",
"license": "AGPL-3.0-or-later",
"description": "Primitives for VHD file handling",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/packages/vhd-lib",
@@ -33,7 +33,7 @@
"uuid": "^9.0.0"
},
"devDependencies": {
"@xen-orchestra/disk-transform": "^1.3.1",
"@xen-orchestra/disk-transform": "^1.3.2",
"@xen-orchestra/fs": "^4.9.2",
"execa": "^5.0.0",
"get-stream": "^6.0.0",

View File

@@ -1,7 +1,7 @@
{
"private": false,
"name": "xapi-explore-sr",
"version": "0.4.6",
"version": "0.4.7",
"license": "ISC",
"description": "Display the list of VDIs (unmanaged and snapshots included) of a SR",
"keywords": [
@@ -40,7 +40,7 @@
"human-format": "^1.0.0",
"lodash": "^4.18.0",
"pw": "^0.0.4",
"xen-api": "^4.7.8"
"xen-api": "^4.8.0"
},
"scripts": {
"postversion": "npm publish"

View File

@@ -1,7 +1,7 @@
{
"private": false,
"name": "xen-api",
"version": "4.7.8",
"version": "4.8.0",
"license": "ISC",
"description": "Connector to the Xen API",
"keywords": [
@@ -68,7 +68,7 @@
"source-map-support": "^0.5.21",
"tap": "^18.7.0",
"throttle": "^1.0.3",
"vhd-lib": "^4.16.0"
"vhd-lib": "^4.16.1"
},
"scripts": {
"plot": "gnuplot -p memory-test.gnu",

View File

@@ -28,7 +28,7 @@
},
"dependencies": {
"@isaacs/ttlcache": "^1.4.1",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"@xen-orchestra/log": "^0.7.1"
},
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "xo-server-openmetrics",
"version": "1.7.0",
"version": "1.8.0",
"license": "AGPL-3.0-or-later",
"description": "XO Server plugin exposing metrics in OpenMetrics/Prometheus format",
"type": "module",
@@ -30,7 +30,7 @@
},
"dependencies": {
"@vates/async-each": "^1.0.3",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"@xen-orchestra/log": "^0.7.2",
"json5": "^2.2.3",
"undici": "^6.2.1"

View File

@@ -1,6 +1,6 @@
{
"name": "xo-server-perf-alert",
"version": "1.1.0",
"version": "1.1.1",
"license": "AGPL-3.0-or-later",
"description": "Sends alerts based on performance criteria",
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-server-perf-alert",

View File

@@ -30,7 +30,7 @@
"dependencies": {
"@vates/async-each": "^1.0.3",
"@vates/coalesce-calls": "^0.1.0",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"@xen-orchestra/log": "^0.7.2",
"@xen-orchestra/openflow": "^0.1.4",
"ipaddr.js": "^2.0.1",

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "xo-server",
"version": "5.205.2",
"version": "5.206.0",
"license": "AGPL-3.0-or-later",
"description": "Server part of Xen-Orchestra",
"keywords": [
@@ -46,25 +46,25 @@
"@vates/predicates": "^1.1.0",
"@vates/read-chunk": "^1.2.1",
"@vates/task": "^0.7.0",
"@vates/types": "^1.28.0",
"@vates/types": "^1.29.0",
"@vates/xml": "^2.0.0",
"@vates/xml-rpc": "^1.0.0",
"@xen-orchestra/async-map": "^0.1.3",
"@xen-orchestra/backups": "^0.73.7",
"@xen-orchestra/backups": "^0.73.8",
"@xen-orchestra/cron": "^1.0.7",
"@xen-orchestra/defined": "^0.0.2",
"@xen-orchestra/disk-transform": "^1.3.1",
"@xen-orchestra/disk-transform": "^1.3.2",
"@xen-orchestra/emit-async": "^1.0.0",
"@xen-orchestra/fs": "^4.9.2",
"@xen-orchestra/log": "^0.7.2",
"@xen-orchestra/mixin": "^0.2.1",
"@xen-orchestra/mixins": "^0.20.1",
"@xen-orchestra/qcow2": "^1.3.1",
"@xen-orchestra/rest-api": "^0.35.0",
"@xen-orchestra/rest-api": "^0.36.0",
"@xen-orchestra/self-signed": "^0.2.1",
"@xen-orchestra/template": "^0.1.1",
"@xen-orchestra/vmware-explorer": "^0.14.0",
"@xen-orchestra/xapi": "^8.9.0",
"@xen-orchestra/xapi": "^8.10.0",
"@xen-orchestra/xva": "^1.0.3",
"ajv": "^8.0.3",
"app-conf": "^3.0.0",
@@ -143,10 +143,10 @@
"unzipper": "^0.10.5",
"uuid": "^9.0.0",
"value-matcher": "^0.2.0",
"vhd-lib": "^4.16.0",
"vhd-lib": "^4.16.1",
"ws": "^8.2.3",
"xdg-basedir": "^5.1.0",
"xen-api": "^4.7.8",
"xen-api": "^4.8.0",
"xo-acl-resolver": "^0.5.3",
"xo-collection": "^0.6.1",
"xo-common": "^0.10.0",
@@ -163,7 +163,7 @@
"@babel/plugin-proposal-pipeline-operator": "^7.0.0",
"@babel/plugin-proposal-throw-expressions": "^7.0.0",
"@babel/preset-env": "^7.29.0",
"@xen-orchestra/acl": "^1.4.0",
"@xen-orchestra/acl": "^1.5.0",
"babel-plugin-transform-define": "^2.1.4",
"babel-plugin-transform-dev": "^2.0.1",
"cross-env": "^7.0.2",

View File

@@ -25,7 +25,7 @@
"pako": "^2.0.4",
"promise-toolbox": "^0.21.0",
"tar-stream": "^3.1.6",
"vhd-lib": "^4.16.0",
"vhd-lib": "^4.16.1",
"xml2js": "^0.6.2"
},
"devDependencies": {

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "xo-web",
"version": "5.199.0",
"version": "5.200.0",
"license": "AGPL-3.0-or-later",
"description": "Web interface client for Xen-Orchestra",
"keywords": [