# SRS-00 — AtlasOS – Calypso (Main)

Version: 1.0  
Status: Draft – Baseline  
Target OS: Ubuntu Server 24.04 LTS  
Primary Use Case: Backup Appliance (Disk + Tape) + iSCSI Bridge to VM (Bacula)  
Date: 2025

---

## 1. Purpose
AtlasOS – Calypso is an enterprise-grade backup appliance platform designed to unify disk-based backup repositories and physical tape libraries under a single, auditable, and storage-centric management plane. The system is optimized for reliability, determinism, and operational safety in enterprise backup environments.

This document defines the **system-level software requirements** for AtlasOS – Calypso and acts as the parent SRS for all subsystem specifications.

---

## 2. Scope

### 2.1 In Scope
- Disk-based backup repository provisioning and management
- Physical tape library (LTO-8, SAS/FC) discovery and control
- SCST-based iSCSI target orchestration
- iSCSI bridge for tape library access by Bacula VM
- Integration with Bacula Storage Daemon
- System service management and diagnostics
- Authentication, authorization, and auditing
- Monitoring, alerting, and observability

### 2.2 Out of Scope (Version 1)
- Bacula Director configuration and job scheduling
- Multi-tenant isolation
- High Availability (active-active) appliance clustering
- Cloud object storage tiering
- Tape encryption key lifecycle management

---

## 3. System Architecture

### 3.1 Logical Architecture

Browser (React + Vite UI)  
→ HTTPS (443)  
→ Reverse Proxy (Caddy / Nginx)  
→ Calypso Core API (Go)  

Calypso Core integrates with:
- SCST (Disk and Tape iSCSI targets)
- Tape utilities (lsscsi, sg3_utils, mtx, mt)
- Bacula Storage Daemon interfaces
- PostgreSQL (IAM, audit, state)
- systemd and journald

---

## 4. User Roles
- Admin: Full system configuration and control
- Operator: Day-to-day tape operations and monitoring
- ReadOnly: Monitoring and reporting only

---

## 5. System-Level Requirements
- Provide a web-based GUI for full appliance lifecycle management
- Expose a versioned REST API and WebSocket event stream
- Ensure deterministic SCSI behavior for disk and tape devices
- Enforce strict RBAC and full auditability
- Guarantee safe recovery after reboot or service restart

---

## 6. Non-Functional Requirements
- UI response time < 300 ms for read operations
- Configuration apply time < 5 seconds
- All operations must be idempotent
- Mandatory TLS for all access
- Full compatibility with Ubuntu Server 24.04 LTS

---

## 7. Acceptance Criteria
1. Bacula VM can access disk repository via iSCSI.
2. Bacula VM can access tape changer and drives via iSCSI.
3. Tape inventory, load/unload, and write operations succeed.
4. All lifecycle operations are controllable from the GUI.
5. System survives reboot without manual intervention.
