Files
calypso/docs/alpha/srs/SRS-05-Backup-Management.md
2026-01-04 13:19:40 +07:00

3.9 KiB

SRS-05: Backup Management

1. Overview

Backup Management module provides integration with Bacula/Bareos for backup job management, scheduling, and monitoring.

2. Functional Requirements

2.1 Backup Jobs

FR-BACKUP-001: System shall allow users to create backup jobs

  • Input: Job name, client, fileset, schedule, storage pool
  • Output: Created job with ID
  • Validation: Valid client, fileset, schedule

FR-BACKUP-002: System shall allow users to list backup jobs

  • Output: Job list with status, last run, next run
  • Filtering: By status, client, schedule

FR-BACKUP-003: System shall allow users to view job details

  • Output: Job configuration, history, statistics

FR-BACKUP-004: System shall allow users to run jobs manually

  • Input: Job ID
  • Action: Trigger immediate job execution

FR-BACKUP-005: System shall display job history

  • Output: Job run history with status, duration, data transferred

2.2 Clients

FR-BACKUP-006: System shall list backup clients

  • Output: Client list with status, last backup

FR-BACKUP-007: System shall display client details

  • Output: Client configuration, job history

2.3 Storage Pools

FR-BACKUP-008: System shall allow users to create storage pools

  • Input: Pool name, pool type, volume count
  • Output: Created pool with ID

FR-BACKUP-009: System shall allow users to list storage pools

  • Output: Pool list with type, volume count, usage

FR-BACKUP-010: System shall allow users to delete storage pools

  • Input: Pool ID
  • Validation: Pool must not be in use

2.4 Storage Volumes

FR-BACKUP-011: System shall allow users to create storage volumes

  • Input: Pool ID, volume name, size
  • Output: Created volume with ID

FR-BACKUP-012: System shall allow users to list storage volumes

  • Output: Volume list with status, usage, expiration

FR-BACKUP-013: System shall allow users to update storage volumes

  • Input: Volume ID, updated properties

FR-BACKUP-014: System shall allow users to delete storage volumes

  • Input: Volume ID

2.5 Media Management

FR-BACKUP-015: System shall list backup media

  • Output: Media list with label, type, status, location

FR-BACKUP-016: System shall display media details

  • Output: Media properties, job history, usage

2.6 Dashboard Statistics

FR-BACKUP-017: System shall display backup dashboard statistics

  • Output: Total jobs, running jobs, success rate, data backed up

2.7 Bconsole Integration

FR-BACKUP-018: System shall allow users to execute bconsole commands

  • Input: Command string
  • Output: Command output
  • Validation: Allowed commands only

3. User Interface Requirements

3.1 Backup Dashboard

  • Statistics cards (total jobs, running, success rate)
  • Recent job activity
  • Quick actions

3.2 Job Management

  • Job list with filtering
  • Job creation wizard
  • Job detail view with history
  • Job run controls

3.3 Storage Management

  • Storage pool list and management
  • Volume list and management
  • Media inventory

4. API Endpoints

GET    /api/v1/backup/dashboard/stats
GET    /api/v1/backup/jobs
GET    /api/v1/backup/jobs/:id
POST   /api/v1/backup/jobs

GET    /api/v1/backup/clients
GET    /api/v1/backup/storage/pools
POST   /api/v1/backup/storage/pools
DELETE /api/v1/backup/storage/pools/:id

GET    /api/v1/backup/storage/volumes
POST   /api/v1/backup/storage/volumes
PUT    /api/v1/backup/storage/volumes/:id
DELETE /api/v1/backup/storage/volumes/:id

GET    /api/v1/backup/media
GET    /api/v1/backup/storage/daemons

POST   /api/v1/backup/console/execute

5. Permissions

  • backup:read: Required for viewing jobs, clients, storage
  • backup:write: Required for creating, updating, deleting, executing

6. Error Handling

  • Bacula/Bareos connection errors
  • Invalid job configuration
  • Job execution failures
  • Storage pool/volume errors
  • Insufficient permissions