# 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