4.0 KiB
SRS-02: File Sharing (SMB/NFS)
1. Overview
File Sharing module provides management of SMB/CIFS and NFS shares for network file access.
2. Functional Requirements
2.1 Share Management
FR-FS-001: System shall allow users to create shares
- Input: Dataset ID, share type (SMB/NFS/Both), share name, mount point
- Output: Created share with UUID
- Validation: Dataset exists, share name uniqueness
FR-FS-002: System shall allow users to list all shares
- Output: Share list with type, dataset, status
- Filtering: By protocol, dataset, status
FR-FS-003: System shall allow users to view share details
- Output: Share configuration, protocol settings, access control
FR-FS-004: System shall allow users to update shares
- Input: Share ID, updated configuration
- Validation: Valid configuration values
FR-FS-005: System shall allow users to delete shares
- Validation: Share must not be actively accessed
2.2 SMB/CIFS Configuration
FR-FS-006: System shall allow users to configure SMB share name
- Input: Share ID, SMB share name
- Validation: Valid SMB share name format
FR-FS-007: System shall allow users to configure SMB path
- Input: Share ID, SMB path
- Validation: Path exists and is accessible
FR-FS-008: System shall allow users to configure SMB comment
- Input: Share ID, comment text
FR-FS-009: System shall allow users to enable/disable guest access
- Input: Share ID, guest access flag
FR-FS-010: System shall allow users to configure read-only access
- Input: Share ID, read-only flag
FR-FS-011: System shall allow users to configure browseable option
- Input: Share ID, browseable flag
2.3 NFS Configuration
FR-FS-012: System shall allow users to configure NFS clients
- Input: Share ID, client list (IP addresses or hostnames)
- Validation: Valid IP/hostname format
FR-FS-013: System shall allow users to add NFS clients
- Input: Share ID, client address
- Validation: Client not already in list
FR-FS-014: System shall allow users to remove NFS clients
- Input: Share ID, client address
FR-FS-015: System shall allow users to configure NFS options
- Input: Share ID, NFS options (ro, rw, sync, async, etc.)
2.4 Share Status
FR-FS-016: System shall display share status (enabled/disabled)
- Output: Current status for each protocol
FR-FS-017: System shall allow users to enable/disable SMB protocol
- Input: Share ID, enabled flag
FR-FS-018: System shall allow users to enable/disable NFS protocol
- Input: Share ID, enabled flag
3. User Interface Requirements
3.1 Share List View
- Master-detail layout
- Search and filter functionality
- Protocol indicators (SMB/NFS badges)
- Status indicators
3.2 Share Detail View
- Protocol tabs (SMB, NFS)
- Configuration forms
- Client management (for NFS)
- Quick actions (enable/disable protocols)
3.3 Create Share Modal
- Dataset selection
- Share name input
- Protocol selection
- Initial configuration
4. API Endpoints
GET /api/v1/shares
GET /api/v1/shares/:id
POST /api/v1/shares
PUT /api/v1/shares/:id
DELETE /api/v1/shares/:id
5. Data Model
Share Object
{
"id": "uuid",
"dataset_id": "uuid",
"dataset_name": "string",
"mount_point": "string",
"share_type": "smb|nfs|both",
"smb_enabled": boolean,
"smb_share_name": "string",
"smb_path": "string",
"smb_comment": "string",
"smb_guest_ok": boolean,
"smb_read_only": boolean,
"smb_browseable": boolean,
"nfs_enabled": boolean,
"nfs_clients": ["string"],
"nfs_options": "string",
"is_active": boolean,
"created_at": "timestamp",
"updated_at": "timestamp",
"created_by": "uuid"
}
6. Permissions
- storage:read: Required for viewing shares
- storage:write: Required for creating, updating, deleting shares
7. Error Handling
- Invalid dataset ID
- Duplicate share name
- Invalid client address format
- Share in use
- Insufficient permissions