all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [QUESTION] pve-storage: intended Datastore.Audit visibility of prunebackups metadata
@ 2026-11-02  3:14 肖 宇良
  2026-11-03 15:17 ` Fiona Ebner
  0 siblings, 1 reply; 2+ messages in thread
From: 肖 宇良 @ 2026-11-02  3:14 UTC (permalink / raw)
  To: pve-devel@lists.proxmox.com

Hello,
I would like to clarify the intended permission semantics of the prunebackups dry-run API.
Tested environment:

  *
Proxmox VE 9.2.21
  *
Proxmox Backup Server storage 4.2.8-1
  *
User B with PVEVMUser on its own pool and PVEDatastoreUser on the storage; no permission on VM 124, which belongs to another pool

Observed behavior:

  1.
As B, GET /nodes/<node>/storage/<storage>/prunebackups?prune-backups=keep-last%3D1 returns backups of all five guests on the storage, including VM 124, with volid, vmid, ctime and the keep/remove mark.
  2.
Adding &type=qemu&vmid=124 also returns both backups of VM 124.
  3.
GET /nodes/<node>/storage/<storage>/content?content=backup&vmid=124 returns no entries for the same user. The same content request without vmid also returns no entries.
  4.
GET /nodes/<node>/storage/<storage>/content/<volid> returns:
     *
Permission check failed (/vms/124, VM.Backup)
  5.
As the owner of VM 124, the content listing returns both backups.

The prunebackups API explicitly permits Datastore.Audit or Datastore.AllocateSpace and does not apply check_volume_access() to its result. The content API currently does apply that per-volume check.
The original prunebackups API discussion introduced the Datastore.Audit/Datastore.AllocateSpace permission check together with the volid, ctime, mark and vmid response fields:
https://lore.proxmox.com/pve-devel/ae57fdf5-c43a-f828-0d47-8e7aceb5ea62@proxmox.com/T/
In January 2023 it was explained that Datastore.Audit alone only permits knowing about the storage, and that listing backup archives additionally requires the per-volume check: Datastore.AllocateSpace on the storage plus VM.Backup on the owning guest:
https://lore.proxmox.com/pve-devel/1672907478.qzv3ze8grn.astroid@yuna.none/T/
A July 2025 patch for bug #5492 proposed letting Datastore.Audit users list a restricted set of backup metadata for monitoring. The thread was still discussing which fields to retain, and the content API still applies check_volume_access() in Proxmox VE 9.2.21:
https://lore.proxmox.com/pve-devel/1753881023.tvgbrwck0i.astroid@yuna.none/T/
Could you clarify whether the current prunebackups behavior is intentional?

  *
If yes, would it make sense to document that Datastore.Audit includes visibility of backup IDs and timestamps through the prune preview?
  *
If not, should the dry-run result apply the same per-volume filtering as the content API?

This is a permission-model and API-consistency question. The behavior was observed only with disposable users and backups in a private lab.
Regards,
Yuliang Xiao

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [QUESTION] pve-storage: intended Datastore.Audit visibility of prunebackups metadata
  2026-11-02  3:14 [QUESTION] pve-storage: intended Datastore.Audit visibility of prunebackups metadata 肖 宇良
@ 2026-11-03 15:17 ` Fiona Ebner
  0 siblings, 0 replies; 2+ messages in thread
From: Fiona Ebner @ 2026-11-03 15:17 UTC (permalink / raw)
  To: 肖 宇良, pve-devel@lists.proxmox.com

Hello Yuliang Xiao,

Am 03.11.26 um 1:28 PM schrieb 肖 宇良:
> The prunebackups API explicitly permits Datastore.Audit or Datastore.AllocateSpace and does not apply check_volume_access() to its result. The content API currently does apply that per-volume check.
> The original prunebackups API discussion introduced the Datastore.Audit/Datastore.AllocateSpace permission check together with the volid, ctime, mark and vmid response fields:
> https://lore.proxmox.com/pve-devel/ae57fdf5-c43a-f828-0d47-8e7aceb5ea62@proxmox.com/T/
> In January 2023 it was explained that Datastore.Audit alone only permits knowing about the storage, and that listing backup archives additionally requires the per-volume check: Datastore.AllocateSpace on the storage plus VM.Backup on the owning guest:
> https://lore.proxmox.com/pve-devel/1672907478.qzv3ze8grn.astroid@yuna.none/T/
> A July 2025 patch for bug #5492 proposed letting Datastore.Audit users list a restricted set of backup metadata for monitoring. The thread was still discussing which fields to retain, and the content API still applies check_volume_access() in Proxmox VE 9.2.21:
> https://lore.proxmox.com/pve-devel/1753881023.tvgbrwck0i.astroid@yuna.none/T/
> Could you clarify whether the current prunebackups behavior is intentional?
> 
>   *
> If yes, would it make sense to document that Datastore.Audit includes visibility of backup IDs and timestamps through the prune preview?
>   *
> If not, should the dry-run result apply the same per-volume filtering as the content API?
thank you for the question! Yes, applying the same filtering as the
content endpoint is sensible. I sent a patch to do so:
https://lore.proxmox.com/pve-devel/20261103151432.197799-1-f.ebner@proxmox.com/T/

Best Regards,
Fiona




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-11-03 15:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-02  3:14 [QUESTION] pve-storage: intended Datastore.Audit visibility of prunebackups metadata 肖 宇良
2026-11-03 15:17 ` Fiona Ebner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal