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

131 lines
3.9 KiB
Markdown

# 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