Add soft delete for revoked devices

Admins could only revoke devices, so never-enrolled and revoked
inventory rows piled up with no way to remove them. Soft-delete
is limited to REVOKED devices (revoke first), and ITAM GC now
hard-deletes PENDING/REVOKED orphans with no API key, postures,
or valid enrollment token—including user tombstones without
history.

Signed-off-by: Ludovic Vielle <ludovic@probo.com>
This commit is contained in:
Ludovic Vielle
2026-07-30 10:11:08 +02:00
parent 41da4bbad1
commit 7731566c68
23 changed files with 773 additions and 61 deletions

View File

@@ -5958,7 +5958,8 @@
"add": "Ajouter un appareil",
"new": "Nouvel appareil",
"reassign": "Réattribuer",
"revoke": "Révoquer"
"revoke": "Révoquer",
"delete": "Supprimer"
},
"fields": {
"organization": "Organisation",
@@ -5980,15 +5981,18 @@
},
"messages": {
"ownerUpdated": "Propriétaire de l’appareil mis à jour",
"revoked": "Appareil révoqué"
"revoked": "Appareil révoqué",
"deleted": "Appareil supprimé"
},
"errors": {
"create": "Échec de la création de l’appareil",
"reassign": "Échec de la réattribution de l’appareil",
"revoke": "Échec de la révocation de l’appareil"
"revoke": "Échec de la révocation de l’appareil",
"delete": "Échec de la suppression de l’appareil"
},
"confirmations": {
"revoke": "Révoquer l’appareil « {{hostname}} » ? L’agent sur l’appareil arrêtera de transmettre des données et devra être réenrôlé."
"revoke": "Révoquer l’appareil « {{hostname}} » ? L’agent sur l’appareil arrêtera de transmettre des données et devra être réenrôlé.",
"delete": "Supprimer l’appareil « {{hostname}} » ? Il sera retiré de l’inventaire."
},
"postures": {
"currentTitle": "Postures actuelles",