Files
Web_BLS_ProjectConsole/openspec/specs/command/spec.md

98 lines
2.8 KiB
Markdown
Raw Normal View History

# Command Capability Specification
## Overview
This specification defines the command capability for the BLS Project Console, which allows users to send console commands to Redis queues for other programs to read and execute.
## Requirements
### Requirement: Command Sending to Redis
The system SHALL send commands to a Redis queue.
#### Scenario: Sending a command to Redis queue
- **WHEN** the user enters a command in the console
- **AND** clicks the "Send" button
- **THEN** the command SHALL be sent to the Redis queue
- **AND** the user SHALL receive a success confirmation
### Requirement: Command Validation
The system SHALL validate commands before sending them to Redis.
#### Scenario: Validating an empty command
- **WHEN** the user tries to send an empty command
- **THEN** the system SHALL display an error message
- **AND** the command SHALL NOT be sent to Redis
#### Scenario: Validating a command with invalid characters
- **WHEN** the user tries to send a command with invalid characters
- **THEN** the system SHALL display an error message
- **AND** the command SHALL NOT be sent to Redis
### Requirement: Command History
The system SHALL maintain a history of sent commands.
#### Scenario: Viewing command history
- **WHEN** the user opens the command history
- **THEN** the system SHALL display a list of previously sent commands
- **AND** the user SHALL be able to select a command from the history to resend
### Requirement: Command Response Handling
The system SHALL handle responses from commands sent to Redis.
#### Scenario: Receiving a command response
- **WHEN** a command response is received from Redis
- **THEN** the system SHALL display the response in the console
- **AND** the response SHALL be associated with the original command
## Data Model
### Command
```json
{
"id": "string",
"content": "string",
"timestamp": "ISO-8601 string",
"status": "string" // e.g., sent, processing, completed, failed
}
```
### Command Response
```json
{
"id": "string",
"commandId": "string",
"timestamp": "ISO-8601 string",
"status": "string", // e.g., success, failure
"result": "string" // command execution result
}
```
## API Endpoints
### POST /api/commands
- **Description**: Send a command to the Redis queue
- **Request Body**:
```json
{
"content": "string" // the command to send
}
```
- **Response**:
```json
{
"success": true,
"message": "Command sent successfully",
"commandId": "string"
}
```
### GET /api/commands/history
- **Description**: Get command history
- **Query Parameters**:
- `limit`: Maximum number of commands to return (default: 50)
- `offset`: Offset for pagination (default: 0)
- **Response**: Array of command objects
### GET /api/commands/:id/response
- **Description**: Get response for a specific command
- **Response**: Command response object