Files
incus-backup-ui/docs/issues.md
T
Philipp 87682a777f Issue 1: finaler Agent-Job-Status
Management pollt jetzt offene Agent-Jobs und aktualisiert job_history mit:

  - finalem success / failed
  - Fehlertext
  - aktuellem/finalem Step
  - finishedAt
  - durationMs
  - Snapshot-ID aus den Agent-Logs, wenn ein Backup erfolgreich war

  Die Operations-Seite zeigt jetzt Dauer und Snapshot-ID.

  Issue 2: erweiterte Agent-Healthchecks
  /api/health am Agent prüft jetzt strukturiert:

  - fehlende Env-Konfiguration
  - Commands: incus, zfs, zpool, restic, udevadm, dd
  - ZFS Pool Existenz
  - ZFS Pool Capacity/Freespace via zpool list
  - /dev/zvol Zugriff
  - Restic Repository Zugriff
2026-05-21 10:27:04 +02:00

5.1 KiB

Issue Backlog

1. Persist final agent job status in management

Management currently records when a backup or restore was accepted by an agent, but it does not persist the final agent job result.

Goal

Persist reliable end-to-end job status in the management database.

Tasks

  • Add polling for accepted agent jobs from management.
  • Store final success or failed status in job_history.
  • Store duration, finished timestamp, error message, and agent job logs summary.
  • Store created Restic snapshot ID for successful backup jobs when available.
  • Surface final status in the Operations page.

Acceptance Criteria

  • A backup started through management eventually shows success or failed.
  • A restore started through management eventually shows success or failed.
  • Agent restart or management restart does not lose already persisted history.

2. Expand node-agent health checks

The current health endpoint should provide deeper operational checks for backup readiness.

Goal

Make /api/health useful for diagnosing whether a node can actually run backup and restore operations.

Tasks

  • Check that required commands exist: incus, zfs, zpool, restic, udevadm, dd.
  • Check that configured ZFS pool exists.
  • Check that /dev/zvol is accessible.
  • Check Restic repository access.
  • Check S3/Restic credentials by running a safe Restic command.
  • Include ZFS pool capacity and free space.
  • Return structured check names and messages.

Acceptance Criteria

  • Management UI shows degraded node health with actionable check names.
  • A missing command, wrong pool, or wrong Restic credentials is visible in health output.

3. Add per-VM backup policy

Retention and schedule behavior is currently broad. Per-VM policies would make production usage more flexible.

Goal

Allow each VM to define its own backup policy.

Tasks

  • Add management database table for VM backup policies.
  • Support per-VM retention values: hourly, daily, weekly, monthly.
  • Support per-VM schedule enablement, interval, and time.
  • Add optional policy flag: backup only when VM is running.
  • Update Scheduler UI to edit policies per node and VM.
  • Send policy retention to the agent backup request or apply it in management scheduling.

Acceptance Criteria

  • Two VMs on the same node can have different schedules.
  • Two VMs on the same node can have different retention policies.
  • Disabled policies do not trigger backups.

4. Improve restore safety workflow

Restore is destructive and should be guarded with a clearer preflight and confirmation flow.

Goal

Reduce the risk of accidental or unsafe restores.

Tasks

  • Add restore preflight endpoint.
  • Validate node health before restore.
  • Show selected snapshot metadata before restore.
  • Show target VM status and disk size before restore.
  • Require explicit typed confirmation including VM name.
  • Optionally offer “create backup before restore” when the VM is accessible.
  • Log restore intent in audit log before dispatch.

Acceptance Criteria

  • UI displays a restore plan before the final confirmation.
  • Restore is blocked when required preflight checks fail.
  • Audit log records restore attempts and results.

5. Add failure notifications

Operators need to know when scheduled backups or restores fail.

Goal

Send notifications for failed or degraded operations.

Tasks

  • Add notification settings in management.
  • Support webhook notifications first.
  • Include node, VM, job type, error, and timestamp.
  • Trigger notifications for failed scheduled backups.
  • Trigger notifications for failed manual backups/restores.
  • Add a “send test notification” action.

Acceptance Criteria

  • A failed scheduled backup sends one notification.
  • A test notification can be triggered from the UI.
  • Notification failures are visible in Operations or audit logs.

6. Implement real snapshot file browsing

Current snapshot browsing shows Restic contents, which for block-level backups is usually only /vm.raw.

Goal

Allow browsing files inside a backed-up VM disk image.

Tasks

  • Design a safe read-only raw image inspection workflow.
  • Restore or mount raw image read-only in a temporary workspace.
  • Detect partitions and filesystems.
  • Browse directories through management UI.
  • Allow downloading a single file.
  • Ensure cleanup of mounts and temporary files.

Acceptance Criteria

  • User can browse a Linux VM filesystem from a snapshot without restoring the VM.
  • Mounted/temporary resources are cleaned up after use.
  • The workflow refuses unsupported or unsafe disk images with a clear error.

7. Add agent and management version reporting

Multi-node setups need version visibility.

Goal

Show software version and compatibility state for management and each agent.

Tasks

  • Add version field to management API.
  • Add version field to agent health response.
  • Show agent version in Nodes page.
  • Flag unsupported or outdated agents.
  • Document compatibility expectations.

Acceptance Criteria

  • Nodes page displays agent version.
  • Management can identify incompatible agents.
  • Health output includes version information.