Commit graph

195 commits

Author SHA1 Message Date
senke
fc8bf8daa4 [FE-COMP-009] fe-comp: Add avatar upload component 2025-12-25 11:44:36 +01:00
senke
f21df0f528 [FE-COMP-008] fe-comp: Add search bar component 2025-12-25 11:41:20 +01:00
senke
9fc22bef5f [FE-COMP-007] fe-comp: Add filter and sort UI components 2025-12-25 11:38:41 +01:00
senke
972e50818f [FE-COMP-006] fe-comp: Add pagination component to all list views 2025-12-25 11:36:48 +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
3c69176eb4 [FE-PAGE-018] fe-page: Improve error pages (404, 500) 2025-12-25 11:30:50 +01:00
senke
71d8f28751 [FE-PAGE-017] fe-page: Add Admin dashboard page 2025-12-25 11:29:27 +01:00
senke
b4ca1330f2 [FE-PAGE-016] fe-page: Add Webhooks management page 2025-12-25 11:27:17 +01:00
senke
fd01047305 [FE-PAGE-015] fe-page: Add Analytics page 2025-12-25 11:25:06 +01:00
senke
300cc9130b [FE-API-007] fe-api: Add webhook service integration 2025-12-25 11:20:45 +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
39bb659a65 [DOC-007] doc: Write contributing guide 2025-12-25 11:06:54 +01:00
senke
2bed10a018 [DOC-006] doc: Write troubleshooting guide 2025-12-25 11:02:37 +01:00
senke
0efc3d5afd [DOC-005] doc: Write user guide 2025-12-25 10:56:24 +01:00
senke
82cceed173 [DOC-004] doc: Write architecture documentation 2025-12-25 02:57:10 +01:00
senke
a2443e0326 [DOC-003] doc: Write development setup guide 2025-12-25 02:54:47 +01:00
senke
032f7a198f [DOC-002] doc: Write deployment guide 2025-12-25 02:52:14 +01:00
senke
664d1e02af [DOC-001] doc: Write API documentation 2025-12-25 02:48:06 +01:00
senke
c734da9e51 [BE-TEST-025] test: Add tests for marketplace flow 2025-12-25 02:39:56 +01:00
senke
56aee34c67 [BE-TEST-024] test: Add tests for analytics endpoints 2025-12-25 02:36:50 +01:00
senke
93133e0bc5 [BE-TEST-023] test: Add tests for search functionality 2025-12-25 02:34:17 +01:00
senke
ccb352754d [BE-TEST-022] be-test: Add tests for 2FA flow
- Created comprehensive 2FA flow test suite
- Tests cover 2FA setup (secret generation, QR code, recovery codes)
- Tests cover verification and activation with TOTP codes
- Tests cover login flow with 2FA requirement
- Tests cover status checking and TOTP code validation
- Tests cover complete end-to-end flow (setup -> verify -> login)
- Tests handle SQLite compatibility (GORM for EnableTwoFactor)
- Tests verify error cases (already enabled, invalid codes)
- Tests verify recovery codes generation

Phase: PHASE-5
Priority: P2
Progress: 143/267 (53.56%)
2025-12-25 02:21:16 +01:00
senke
e5350e8798 [BE-TEST-021] be-test: Add tests for webhook delivery
- Created comprehensive webhook delivery and retry test suite
- Tests cover webhook delivery success with proper headers
- Tests cover retry logic for network errors with exponential backoff
- Tests cover max retries exceeded scenario
- Tests cover signature verification (HMAC-SHA256)
- Tests cover worker retry logic
- Tests for TriggerEvent skipped for SQLite (PostgreSQL array operators not supported)
- Tests verify webhook payload structure and headers (X-Veza-Signature, X-Veza-Event, X-Veza-Timestamp)

Phase: PHASE-5
Priority: P2
Progress: 142/267 (53.18%)
2025-12-25 02:13:27 +01:00
senke
cbd969ad3b [BE-TEST-020] be-test: Add tests for filtering and sorting
- Created comprehensive filtering and sorting test suite
- Tests cover tracks endpoints: filtering by user_id, genre, format, combined filters
- Tests cover tracks endpoints: sorting by created_at (asc/desc), title, default sort
- Tests cover users endpoints: filtering by role, is_active, is_verified, search
- Tests cover users endpoints: sorting by created_at, username
- Tests cover playlists endpoints: filtering by user_id
- Tests verify invalid sort fields and orders are handled gracefully
- Tests verify combined filtering and sorting work together
- Note: User search test skipped for SQLite (does not support ILIKE operator)

Phase: PHASE-5
Priority: P2
Progress: 141/267 (52.81%)
2025-12-25 02:09:45 +01:00
senke
90416f7343 [BE-TEST-019] be-test: Add tests for pagination
- Created comprehensive pagination test suite for all list endpoints
- Tests cover tracks, users, and playlists endpoints
- Tests verify default pagination (page=1, limit=20)
- Tests verify custom pagination parameters
- Tests verify invalid parameter validation and correction
- Tests verify pagination metadata (total, total_pages, has_next, has_prev)
- Tests verify navigation between pages
- Tests verify edge cases (empty query, large page numbers, max limit)
- Tests verify total count accuracy
- Tests verify consistency across all endpoints

Phase: PHASE-5
Priority: P2
Progress: 140/267 (52.43%)
2025-12-25 02:05:58 +01:00
senke
fe761a96fe [BE-TEST-018] be-test: Add tests for error handling
- Created comprehensive error handling test suite
- Tests verify error response format standardization
- Tests cover all error types (validation, not found, unauthorized, forbidden, internal, database, conflict, rate limit, quota)
- Tests verify error recovery and retry logic
- Tests verify validation error details
- Tests verify HTTP status code mapping
- Tests verify error response consistency

Phase: PHASE-5
Priority: P2
Progress: 139/267 (52.06%)
2025-12-25 02:02:54 +01:00
senke
c0dc7a9666 [BE-TEST-017] be-test: Add security tests for authorization
- Created comprehensive authorization test suite
- Tests verify unauthorized access is blocked (401/403)
- Tests cover: no token, invalid token, expired token
- Tests verify role-based access control (admin, creator, regular user)
- Tests verify ownership checks and admin override
- Tests verify token version mismatch protection

Phase: PHASE-5
Priority: P2
Progress: 138/267 (51.69%)
2025-12-25 02:00:56 +01:00
senke
a0be52fafa [BE-TEST-016] be-test: Add security tests for injection attacks
- Created comprehensive security test suite for SQL injection, XSS, and command injection
- Added 30+ SQL injection test payloads
- Added 50+ XSS test payloads
- Added 30+ command injection test payloads
- Tests verify GORM parameterized queries protection
- Tests verify input sanitization utilities
- Added README documentation for security tests

Phase: PHASE-5
Priority: P2
Progress: 137/267 (51.31%)
2025-12-25 01:57:59 +01:00
senke
2446417d4f [BE-TEST-015] be-test: Add load tests for upload endpoints
- Created k6 load test script for concurrent and chunked uploads
- Added Go performance tests for upload endpoints
- Updated README with usage instructions for upload load tests
- Tests cover simple upload, chunked upload (initiate/chunk/complete), and batch upload
- Performance thresholds defined for upload operations

Phase: PHASE-5
Priority: P2
Progress: 136/267 (50.94%)
2025-12-25 01:55:22 +01:00
senke
b3c1d4a1db [BE-TEST-015] test: Add load tests for upload endpoints
- Added comprehensive load tests for upload endpoints:
  * Concurrent simple uploads (20 concurrent uploads)
  * Concurrent chunked uploads (5 uploads with 10 chunks each)
  * Chunked upload stress test (10 uploads with 20 chunks each)
  * Upload status polling under load (50 concurrent polls)
- All tests measure throughput, success rates, and response times
- Tests use in-memory SQLite and Redis (if available) for fast execution
- All tests tagged with load build tag
2025-12-25 01:52:22 +01:00
senke
36a51e529b [BE-TEST-014] test: Add performance tests for critical endpoints
- Added comprehensive performance tests for critical endpoints:
  * Health check endpoints (/health, /readyz) - threshold: 10ms
  * Authentication endpoints (login: 100ms, register: 200ms)
  * Track endpoints (list: 50ms, get: 30ms, create: 500ms)
  * Playlist endpoints (list: 50ms, create: 200ms)
  * User endpoints (list: 50ms, get: 30ms)
- Includes both performance tests (measuring response times against thresholds)
- Includes benchmarks using Go benchmark framework
- All tests tagged with performance build tag
- Tests use in-memory SQLite for fast execution
2025-12-25 01:48:38 +01:00
senke
11fdcbc6f1 [BE-TEST-013] test: Add integration tests for CSRF protection
- Added comprehensive integration tests for CSRF protection middleware:
  * GET/HEAD/OPTIONS pass without token (safe methods)
  * POST/PUT/DELETE require valid CSRF token
  * Requests without token are rejected (403)
  * Requests with invalid token are rejected (403)
  * Requests with valid token pass
  * CSRF token generation endpoint
  * Unauthenticated users are not blocked by CSRF
  * Public endpoints are not blocked
  * Each user has their own token
  * Same token can be used multiple times
- Tests use Redis for token storage and validation
- All tests tagged with integration build tag
2025-12-25 01:46:01 +01:00
senke
206afe7583 [BE-TEST-012] test: Add integration tests for rate limiting
- Added comprehensive integration tests for rate limiting middleware:
  * Global rate limiting (IP-based, 5 requests/minute)
  * Endpoint-specific rate limiting (login: 3 attempts, register: 2 attempts)
  * Different IPs have separate limits
  * Rate limit headers presence and correctness
  * Endpoint-specific headers (X-LoginLimit-*, etc.)
  * Unauthenticated rate limiting
  * Multiple endpoints with separate limits
- Tests use SimpleRateLimiter and EndpointLimiter without Redis for integration testing
- All tests tagged with integration build tag
2025-12-25 01:43:20 +01:00
senke
673db702c2 [BE-TEST-011] test: Add integration tests for ownership checks
- Added comprehensive integration tests for ownership middleware:
  * Track owner access (should succeed)
  * Track non-owner access (should be forbidden)
  * Track admin access (should succeed with override)
  * Playlist owner access (should succeed)
  * Playlist non-owner access (should be forbidden)
  * Resource not found (should return 404)
  * Unauthenticated access (should return 401)
  * Complete flow with multiple resources
- Tests use real services and in-memory database for end-to-end testing
- All tests tagged with integration build tag
2025-12-25 01:41:42 +01:00
senke
2545887319 [BE-TEST-010] test: Add integration tests for playlist collaboration
- Enhanced existing integration tests for playlist collaboration
- Added tests for CreateShareLink endpoint:
  * Create share link as owner
  * Create share link as non-owner (should fail)
  * Create share link for non-existent playlist (should fail)
  * Create share link as admin collaborator
- Existing tests already covered:
  * AddCollaborator (with different permissions)
  * RemoveCollaborator
  * UpdateCollaboratorPermission
  * GetCollaborators
  * CheckPermission
  * CompleteFlow
- All tests use real services and in-memory database for end-to-end testing
2025-12-25 01:39:43 +01:00
senke
e81e7d9488 [BE-TEST-009] test: Add integration tests for track upload flow
- Added comprehensive integration tests for complete track upload flow:
  * Simple upload (multipart form with metadata)
  * Chunked upload (Initiate -> Upload chunks -> Complete)
  * Get upload status
  * Get upload quota
  * Resume interrupted upload
- Tests use real services and in-memory database for end-to-end testing
- All tests tagged with integration build tag
2025-12-25 01:38:54 +01:00
senke
edc6a95e4b [BE-TEST-008] test: Add integration tests for auth flow
- Added comprehensive integration tests for complete authentication flow:
  * Complete flow: Register -> Login -> Refresh -> Logout
  * Email verification flow: Register -> Login fails -> Verify -> Login succeeds
  * Username availability checking
  * Resend verification email
  * Invalid refresh token handling
  * Duplicate registration handling
- Tests use real services and in-memory database for end-to-end testing
- All tests tagged with integration build tag
2025-12-25 01:35:38 +01:00
senke
3d5edd1ff2 [BE-TEST-007] test: Add unit tests for webhook handlers
- Added comprehensive unit tests for all webhook handler methods:
  * RegisterWebhook (success, invalid URL, no events, unauthorized)
  * ListWebhooks (success)
  * DeleteWebhook (success, not found, invalid ID)
  * GetWebhookStats (success)
  * TestWebhook (success, not found)
  * RegenerateAPIKey (success, not found, invalid ID)
- Fixed validation bug in BindAndValidateJSON to properly return errors for binding validation failures
- Fixed compilation errors in profile_handler_test.go and room_handler_test.go
- All tests passing
2025-12-25 01:32:54 +01:00
senke
e8e1862c86 [BE-TEST-006] test: Add unit tests for marketplace handlers
- Created marketplace_test.go with comprehensive unit tests
- Tests cover CreateProduct, ListProducts, UpdateProduct
- Tests cover CreateOrder, ListOrders, GetOrder, GetDownloadURL
- Tests include success scenarios, error cases (not found, invalid IDs, no license)
- Uses in-memory SQLite database with real services for realistic testing
- All tests compile successfully

Phase: PHASE-5
Priority: P2
Progress: 126/267 (47.2%)
2025-12-25 01:30:25 +01:00
senke
2504e57110 [BE-TEST-005] test: Add unit tests for chat handlers
- Enhanced chat_handler_test.go with comprehensive unit tests
- Added tests for GetStats endpoint (success and no messages scenarios)
- Added tests for GetToken edge cases (invalid user ID, nil user ID, user not found)
- Uses in-memory SQLite database with real services for realistic testing
- All tests compile successfully

Phase: PHASE-5
Priority: P2
Progress: 125/267 (46.8%)
2025-12-25 01:28:36 +01:00
senke
774d78a05d [BE-TEST-004] test: Add unit tests for user/profile handlers
- Created profile_handler_test.go with comprehensive unit tests
- Tests cover GetProfile, GetProfileByUsername, ListUsers, SearchUsers
- Tests cover UpdateProfile, DeleteUser, GetProfileCompletion
- Tests cover FollowUser, UnfollowUser, BlockUser, UnblockUser
- Uses in-memory SQLite database with real services for realistic testing
- All tests compile successfully

Phase: PHASE-5
Priority: P2
Progress: 124/267 (46.4%)
2025-12-25 01:27:38 +01:00
senke
6fafd99e5b [BE-TEST-003] test: Add unit tests for playlist handlers
- Created playlist_handler_test.go with comprehensive unit tests
- Tests cover CreatePlaylist, GetPlaylist, GetPlaylists, UpdatePlaylist, DeletePlaylist
- Tests cover AddTrack, RemoveTrack, AddCollaborator, GetCollaborators, RemoveCollaborator
- Uses in-memory SQLite database with real services for realistic testing
- All tests compile successfully

Phase: PHASE-5
Priority: P2
Progress: 123/267 (46.1%)
2025-12-25 01:25:33 +01:00
senke
0e5a76f8b8 [BE-TEST-002] test: Add unit tests for track handlers
- Created handler_test.go with comprehensive unit tests
- Tests cover GetTrack, ListTracks, UpdateTrack, DeleteTrack, LikeTrack, SearchTracks
- Uses in-memory SQLite database with real services for realistic testing
- All tests pass successfully

Phase: PHASE-5
Priority: P2
Progress: 122/267 (45.7%)
2025-12-24 18:19:34 +01:00
senke
e961744fdc [BE-TEST-001] be-test: Add unit tests for auth handlers
- Created comprehensive unit tests for all authentication handlers
- Tests cover Login, Register, Refresh, Logout, VerifyEmail, ResendVerification, CheckUsername, and GetMe
- Tests use real AuthService with in-memory SQLite database for realistic testing
- All handlers tested with success cases, error cases, and edge cases
- Fixed ExpiresIn calculation in Login and Refresh handlers to handle TokenPair.ExpiresIn
- Test coverage includes:
  - Login: success, invalid credentials, email not verified, requires 2FA, invalid request
  - Register: success, user already exists, invalid email, weak password, invalid request
  - Refresh: invalid request (token validation tested via integration tests)
  - Logout: success, unauthorized
  - VerifyEmail: missing token
  - ResendVerification: success
  - CheckUsername: available, taken, missing username
  - GetMe: success, unauthorized

Phase: PHASE-5
Priority: P2
Progress: 121/267 (45.32%)
2025-12-24 18:14:31 +01:00
senke
02c1554cac [BE-SEC-015] be-sec: Implement dependency vulnerability scanning
- Verified existing vulnerability scanning implementation
- Workflow .github/workflows/vulnerability-scan.yml uses govulncheck for Go dependencies
- Workflow uses Trivy for Docker image scanning
- Makefile includes vulncheck target for local scanning
- System automatically blocks PRs if HIGH/CRITICAL vulnerabilities found
- Documentation exists in docs/VULNERABILITY_SCANNING.md
- Scanning works correctly (verified with make vulncheck)

Phase: PHASE-4
Priority: P2
Progress: 120/267 (44.94%)
2025-12-24 18:05:15 +01:00
senke
e8bde438aa [BE-SEC-012] be-sec: Implement API key authentication for webhooks
- Added APIKey field to Webhook model with unique index
- Implemented GenerateAPIKey() method using crypto/rand for secure key generation
- Implemented ValidateAPIKey() method to authenticate webhook requests
- Implemented RegenerateAPIKey() method to rotate API keys
- Created WebhookAPIKeyMiddleware for validating API keys in requests
- Middleware supports X-API-Key header and Authorization: Bearer format
- Added endpoint POST /api/v1/webhooks/:id/regenerate-key
- API keys are prefixed with 'whk_' for identification
- Comprehensive unit tests for all API key functionality
- Inactive webhooks cannot authenticate with their API keys

Phase: PHASE-4
Priority: P2
Progress: 119/267 (44.57%)
2025-12-24 18:03:52 +01:00
senke
dc693082f4 [BE-SVC-022] be-svc: Implement data export service
- Created DataExportService for comprehensive user data export (GDPR compliance)
- Exports all user data: profile, settings, tracks, playlists, comments, likes, analytics, federated identities, roles
- Added ExportUserData method to retrieve all user data from database
- Added ExportUserDataAsJSON method to export as downloadable JSON file
- Added endpoint GET /api/v1/users/me/export that returns JSON file download
- Comprehensive unit tests for export service
- Proper error handling and logging

Phase: PHASE-6
Priority: P2
Progress: 118/267 (44.19%)
2025-12-24 18:01:00 +01:00