78aaddb2b5
- Add frontend-foundation change (FN-005) with 46 tasks - Add deployment-config change (FN-006) with 27 tasks - Add runfusion-poc/opencode-poc change (FN-008) with 25 tasks - Add config-secrets change (FN-009) with 31 tasks - Add codeserver-spawn change (FN-010) with 38 tasks - Include project specsheet and configuration - Archive completed deployment-config change
29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: API client handles all backend endpoints
|
|
The system SHALL provide a typed HTTP client for all backend API endpoints.
|
|
|
|
#### Scenario: GET request
|
|
- **WHEN** the client calls api.get('/projects')
|
|
- **THEN** it sends a GET request to /api/v1/projects
|
|
- **AND** returns typed Project[] data
|
|
- **AND** includes the Authorization header with the current access token
|
|
|
|
#### Scenario: POST request
|
|
- **WHEN** the client calls api.post('/projects', data)
|
|
- **THEN** it sends a POST request with JSON body
|
|
- **AND** returns typed Project data
|
|
|
|
#### Scenario: Error handling
|
|
- **WHEN** a request returns 4xx or 5xx
|
|
- **THEN** the client throws an ApiError with status code and message
|
|
- **AND** the error can be caught and displayed to the user
|
|
|
|
### Requirement: API client supports request/response types
|
|
The system SHALL use TypeScript interfaces matching the backend Pydantic schemas.
|
|
|
|
#### Scenario: Type safety
|
|
- **WHEN** a developer uses the API client
|
|
- **THEN** request and response types are checked at compile time
|
|
- **AND** mismatches produce TypeScript errors
|