Commit graph

30 commits

Author SHA1 Message Date
senke
546bc9fba3 [INT-AUTH-003] Verify refresh token flow handles edge cases 2025-12-26 09:13:36 +01:00
senke
11b61b14a7 [INT-API-005] Add retry logic for 429 rate limit responses 2025-12-26 09:10:26 +01:00
senke
2fd5b3935f [INT-API-004] Add request timeout configuration per endpoint type 2025-12-25 22:42:56 +01:00
senke
64b56b5e56 [INT-API-002] Verify response unwrapping in interceptor 2025-12-25 22:40:59 +01:00
senke
b0557335d5 [INT-TYPE-008] Validate AuthResponse matches backend exactly 2025-12-25 22:39:41 +01:00
senke
89928e186a [INT-AUTH-001] Ensure CSRF protection active in production 2025-12-25 22:28:46 +01:00
senke
291d779fa2 [INT-016] int: Add authentication token refresh flow
- Added proactive token refresh mechanism (5 minutes before expiration)
- Implemented JWT decoding to check token expiration
- Added seamless refresh integration with login/logout flows
- Improved error handling and cleanup
- Integrated with auth store and API client

Files modified:
- apps/web/src/services/tokenRefresh.ts
- apps/web/src/services/api/auth.ts
- apps/web/src/stores/auth.ts
- VEZA_COMPLETE_MVP_TODOLIST.json
2025-12-25 15:45:30 +01:00
senke
8e5826d2ca [FE-TYPE-010] fe-type: Add type safety for API client
- Created fully typed API client wrapper (typedClient.ts):
  * TypedApiClient interface with fully typed methods
  * typedApiClient implementation wrapping apiClient
  * TypedRequestConfig extending InternalAxiosRequestConfig
  * TypedApiRequestBuilder class for type-safe requests
- Added helper types:
  * ApiResponseData: Extract data from ApiResponse
  * UnwrappedApiResponse: Remove ApiResponse wrapper
- Added helper functions:
  * createTypedRequest: Create typed request builder
  * isApiResponseWrapper: Type guard for ApiResponse
  * extractApiData: Extract data from response
- Ensures full type safety for all API client methods
2025-12-25 14:48:35 +01:00
senke
e5f842c527 [FE-TYPE-003] fe-type: Add Zod schemas for all API requests
- Created comprehensive Zod schemas (apiRequestSchemas.ts) for:
  * LoginRequest, RegisterRequest, CreateUserRequest
  * UpdateUserRequest, UpdateProfileRequest
  * SendMessageRequest, UpdateMessageRequest
  * CreateConversationRequest, UpdateConversationRequest
  * UploadTrackRequest, UpdateTrackRequest
  * PaginationParams and list/search request types
- Added validation utilities:
  * validateApiRequest: Validate requests before sending
  * safeValidateApiRequest: Safe validation with error handling
  * validateApiRequestWithError: Validation with custom error handler
- Integrated validation into API client request interceptor
- Enhanced validatedApiClient with request validation support
- Automatic validation prevents invalid requests from being sent
- Comprehensive test suite (19 tests, all passing)
- Ensures runtime type safety for all API requests
2025-12-25 14:36:32 +01:00
senke
8f49ef8215 [FE-TYPE-002] fix: Remove unused strict parameter from validation functions 2025-12-25 14:33:19 +01:00
senke
bf27c3916e [FE-TYPE-002] fix: Resolve TypeScript errors in Zod schemas
- Removed strict() and passthrough() calls (not available on all Zod types)
- Simplified validation to use parse() directly
- Fixed type issues in clientWithValidation.ts
2025-12-25 14:32:30 +01:00
senke
5d4ac95356 [FE-TYPE-002] fe-type: Add Zod schemas for all API responses
- Created comprehensive Zod schemas (apiSchemas.ts) for:
  * User, Track, Playlist, Conversation, Message
  * Session, AuditLog, Notification
  * PaginationData, ApiError, ApiResponse
- Added validation utilities:
  * validateApiResponse: Validate and normalize responses
  * safeValidateApiResponse: Safe validation with error handling
  * validateApiResponseArray: Validate arrays of items
  * validatePaginatedResponse: Validate paginated responses
- Integrated validation into API client interceptor
- Created validatedApiClient for type-safe API calls
- Automatic ID normalization during validation
- Comprehensive test suite (13 tests, all passing)
- Ensures runtime type safety for all API responses
2025-12-25 14:30:55 +01:00
senke
a6895e7115 [FE-STATE-004] fe-state: Add state invalidation 2025-12-25 13:45:49 +01:00
senke
a059dc82cc [FE-API-017] fe-api: Add request caching 2025-12-25 13:29:43 +01:00
senke
f296df29fd [FE-API-016] fe-api: Add request deduplication 2025-12-25 13:26:27 +01:00
senke
7d0c9f45a3 [FE-API-015] fe-api: Add offline support 2025-12-25 13:24:19 +01:00
senke
da30a89e21 [FE-API-014] fe-api: Add request timeout handling 2025-12-25 13:22:15 +01:00
senke
03e013a6b7 [FE-COMP-005] fe-comp: Add toast notifications for all user actions 2025-12-25 11:32:53 +01:00
senke
7af0743ad7 [FE-API-006] fe-api: Add API request/response logging 2025-12-25 11:18:27 +01:00
senke
1561d9982a [FE-API-005] fe-api: Add request cancellation support 2025-12-25 11:14:03 +01:00
senke
9802637fa2 [FE-API-004] fe-api: Add retry logic to API client 2025-12-25 11:11:54 +01:00
senke
a259ecd65d [FE-API-003] fe-api: Fix API client response unwrapping 2025-12-25 11:09:19 +01:00
senke
f808d0323c fix(MVP-013): Add error correlation with request IDs in logs 2025-12-22 23:13:49 +01:00
senke
3b09d15e93 fix(MVP-012): Add retry logic with exponential backoff for 502/503 errors 2025-12-22 23:10:52 +01:00
senke
4d8c019abf fix(MVP-006): Standardize environment variable names (VITE_API_BASE_URL → VITE_API_URL) 2025-12-22 22:56:37 +01:00
senke
6d036133ca batch 1 2025-12-22 22:00:50 +01:00
senke
463109c4e0 fix(INT-000002): Multiple Auth Storage Mechanisms
- Unified token storage to use TokenStorage service
- Removed deprecated token-manager.ts
- Removed fallback storage logic in API client
- Updated tests and feature components to use TokenStorage

Resolves: INT-000002
Severity: P0
2025-12-22 09:53:47 -05:00
senke
3f7bf2e2d3 stabilizing apps/web: SITUATION AWARENESS 2025-12-16 14:40:16 -05:00
senke
d33c351ac6 refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
okinrev
f88d4740f3 BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00