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

3.6 KiB

SRS-06: Object Storage

1. Overview

Object Storage module provides S3-compatible object storage service management including buckets, access policies, and user/key management.

2. Functional Requirements

2.1 Bucket Management

FR-OBJ-001: System shall allow users to create buckets

  • Input: Bucket name, access policy (private/public-read)
  • Output: Created bucket with ID
  • Validation: Bucket name uniqueness, valid S3 naming

FR-OBJ-002: System shall allow users to list buckets

  • Output: Bucket list with name, type, usage, object count
  • Filtering: By name, type, access policy

FR-OBJ-003: System shall allow users to view bucket details

  • Output: Bucket configuration, usage statistics, access policy

FR-OBJ-004: System shall allow users to delete buckets

  • Input: Bucket ID
  • Validation: Bucket must be empty or confirmation required

FR-OBJ-005: System shall display bucket usage

  • Output: Storage used, object count, last modified

2.2 Access Policy Management

FR-OBJ-006: System shall allow users to configure bucket access policies

  • Input: Bucket ID, access policy (private, public-read, public-read-write)
  • Output: Updated access policy

FR-OBJ-007: System shall display current access policy

  • Output: Policy type, policy document

2.3 User & Key Management

FR-OBJ-008: System shall allow users to create S3 users

  • Input: Username, access level
  • Output: Created user with access keys

FR-OBJ-009: System shall allow users to list S3 users

  • Output: User list with access level, key count

FR-OBJ-010: System shall allow users to generate access keys

  • Input: User ID
  • Output: Access key ID and secret key

FR-OBJ-011: System shall allow users to revoke access keys

  • Input: User ID, key ID

2.4 Service Management

FR-OBJ-012: System shall display service status

  • Output: Service status (running/stopped), uptime

FR-OBJ-013: System shall display service statistics

  • Output: Total usage, object count, endpoint URL

FR-OBJ-014: System shall display S3 endpoint URL

  • Output: Endpoint URL with copy functionality

3. User Interface Requirements

3.1 Object Storage Dashboard

  • Service status card
  • Statistics cards (total usage, object count, uptime)
  • S3 endpoint display with copy button

3.2 Bucket Management

  • Bucket list with search and filter
  • Bucket creation modal
  • Bucket detail view with tabs (Overview, Settings, Access Policy)
  • Bucket actions (delete, configure)

3.3 Tabs

  • Buckets: Main bucket management
  • Users & Keys: S3 user and access key management
  • Monitoring: Usage statistics and monitoring
  • Settings: Service configuration

4. API Endpoints

GET    /api/v1/object-storage/buckets
GET    /api/v1/object-storage/buckets/:id
POST   /api/v1/object-storage/buckets
DELETE /api/v1/object-storage/buckets/:id
PUT    /api/v1/object-storage/buckets/:id/policy

GET    /api/v1/object-storage/users
POST   /api/v1/object-storage/users
GET    /api/v1/object-storage/users/:id/keys
POST   /api/v1/object-storage/users/:id/keys
DELETE /api/v1/object-storage/users/:id/keys/:keyId

GET    /api/v1/object-storage/service/status
GET    /api/v1/object-storage/service/stats
GET    /api/v1/object-storage/service/endpoint

5. Permissions

  • object-storage:read: Required for viewing buckets, users
  • object-storage:write: Required for creating, updating, deleting

6. Error Handling

  • Invalid bucket name
  • Bucket already exists
  • Bucket not empty
  • Invalid access policy
  • Service not available
  • Insufficient permissions