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

7.2 KiB

Software Requirements Specification (SRS)

AtlasOS - Calypso Backup Appliance

Alpha Release

Version: 1.0.0-alpha
Date: 2025-01-XX
Status: In Development


1. Introduction

1.1 Purpose

This document provides a comprehensive Software Requirements Specification (SRS) for AtlasOS - Calypso, an enterprise-grade backup appliance management system. The system provides unified management for storage, backup, tape libraries, and system administration through a modern web-based interface.

1.2 Scope

Calypso is designed to manage:

  • ZFS storage pools and datasets
  • File sharing (SMB/CIFS and NFS)
  • iSCSI block storage targets
  • Physical and Virtual Tape Libraries (VTL)
  • Backup job management (Bacula/Bareos integration)
  • System monitoring and alerting
  • User and access management (IAM)
  • Object storage services
  • Snapshot and replication management

1.3 Definitions, Acronyms, and Abbreviations

  • ZFS: Zettabyte File System
  • SMB/CIFS: Server Message Block / Common Internet File System
  • NFS: Network File System
  • iSCSI: Internet Small Computer Systems Interface
  • VTL: Virtual Tape Library
  • IAM: Identity and Access Management
  • RBAC: Role-Based Access Control
  • API: Application Programming Interface
  • REST: Representational State Transfer
  • JWT: JSON Web Token
  • SNMP: Simple Network Management Protocol
  • NTP: Network Time Protocol

1.4 References

1.5 Overview

This SRS is organized into the following sections:

  • SRS-01: Storage Management
  • SRS-02: File Sharing (SMB/NFS)
  • SRS-03: iSCSI Management
  • SRS-04: Tape Library Management
  • SRS-05: Backup Management
  • SRS-06: Object Storage
  • SRS-07: Snapshot & Replication
  • SRS-08: System Management
  • SRS-09: Monitoring & Alerting
  • SRS-10: Identity & Access Management
  • SRS-11: User Interface & Experience

2. System Overview

2.1 System Architecture

Calypso follows a client-server architecture:

  • Frontend: React-based Single Page Application (SPA)
  • Backend: Go-based REST API server
  • Database: PostgreSQL for persistent storage
  • External Services: ZFS, SCST, Bacula/Bareos, MHVTL

2.2 Technology Stack

Frontend

  • React 18 with TypeScript
  • Vite for build tooling
  • TailwindCSS for styling
  • TanStack Query for data fetching
  • React Router for navigation
  • Zustand for state management
  • Axios for HTTP requests
  • Lucide React for icons

Backend

  • Go 1.21+
  • Gin web framework
  • PostgreSQL database
  • JWT for authentication
  • Structured logging (zerolog)

2.3 Deployment Model

  • Single-server deployment
  • Systemd service management
  • Reverse proxy support (nginx/caddy)
  • WebSocket support for real-time updates

3. Functional Requirements

3.1 Authentication & Authorization

  • User login/logout
  • JWT-based session management
  • Role-based access control (Admin, Operator, ReadOnly)
  • Permission-based feature access
  • Session timeout and refresh

3.2 Storage Management

  • ZFS pool creation, deletion, and monitoring
  • Dataset management (filesystems and volumes)
  • Disk discovery and monitoring
  • Storage repository management
  • ARC statistics monitoring

3.3 File Sharing

  • SMB/CIFS share creation and configuration
  • NFS share creation and client management
  • Share access control
  • Mount point management

3.4 iSCSI Management

  • iSCSI target creation and management
  • LUN mapping and configuration
  • Initiator access control
  • Portal configuration
  • Extent management

3.5 Tape Library Management

  • Physical tape library discovery
  • Virtual Tape Library (VTL) management
  • Tape drive and slot management
  • Media inventory

3.6 Backup Management

  • Backup job creation and scheduling
  • Bacula/Bareos integration
  • Storage pool and volume management
  • Job history and monitoring
  • Client management

3.7 Object Storage

  • S3-compatible bucket management
  • Access policy configuration
  • User and key management
  • Usage monitoring

3.8 Snapshot & Replication

  • ZFS snapshot creation and management
  • Snapshot rollback and cloning
  • Replication task configuration
  • Remote replication management

3.9 System Management

  • Network interface configuration
  • Service management (start/stop/restart)
  • NTP configuration
  • SNMP configuration
  • System logs viewing
  • Terminal console access
  • Feature license management

3.10 Monitoring & Alerting

  • Real-time system metrics
  • Storage health monitoring
  • Network throughput monitoring
  • Alert rule configuration
  • Alert history and management

3.11 Identity & Access Management

  • User account management
  • Role management
  • Permission assignment
  • Group management
  • User profile management

4. Non-Functional Requirements

4.1 Performance

  • API response time < 200ms for read operations
  • API response time < 1s for write operations
  • Support for 100+ concurrent users
  • Real-time metrics update every 5-30 seconds

4.2 Security

  • HTTPS support
  • JWT token expiration and refresh
  • Password hashing (bcrypt)
  • SQL injection prevention
  • XSS protection
  • CSRF protection
  • Rate limiting
  • Audit logging

4.3 Reliability

  • Database transaction support
  • Error handling and recovery
  • Health check endpoints
  • Graceful shutdown

4.4 Usability

  • Responsive web design
  • Dark theme support
  • Intuitive navigation
  • Real-time feedback
  • Loading states
  • Error messages

4.5 Maintainability

  • Clean code architecture
  • Comprehensive logging
  • API documentation
  • Code comments
  • Modular design

5. System Constraints

5.1 Hardware Requirements

  • Minimum: 4GB RAM, 2 CPU cores, 100GB storage
  • Recommended: 8GB+ RAM, 4+ CPU cores, 500GB+ storage

5.2 Software Requirements

  • Linux-based operating system (Ubuntu 24.04+)
  • PostgreSQL 14+
  • ZFS support
  • SCST installed and configured
  • Bacula/Bareos (optional, for backup features)

5.3 Network Requirements

  • Network connectivity for remote access
  • SSH access for system management
  • Port 8080 (API) and 3000 (Frontend) accessible

6. Assumptions and Dependencies

6.1 Assumptions

  • System has root/sudo access for ZFS and system operations
  • Network interfaces are properly configured
  • External services (Bacula, SCST) are installed and accessible
  • Users have basic understanding of storage and backup concepts

6.2 Dependencies

  • PostgreSQL database
  • ZFS kernel module and tools
  • SCST kernel module and tools
  • Bacula/Bareos (for backup features)
  • MHVTL (for VTL features)

7. Future Enhancements

7.1 Planned Features

  • LDAP/Active Directory integration
  • Multi-site replication
  • Cloud backup integration
  • Advanced encryption at rest
  • WebSocket real-time updates
  • Mobile responsive improvements
  • Advanced reporting and analytics

7.2 Potential Enhancements

  • Multi-tenant support
  • API rate limiting per user
  • Advanced backup scheduling
  • Disaster recovery features
  • Performance optimization tools

Document History

Version Date Author Changes
1.0.0-alpha 2025-01-XX Development Team Initial SRS document