Commit graph

29 commits

Author SHA1 Message Date
senke
df426df2c6 [INT-CORS-002] Add preflight request handling validation 2025-12-25 22:27:05 +01:00
senke
a9ff0b81be [INT-021] int: Add API monitoring and alerting
- Created APIMonitoringMiddleware to track API failures (5xx errors), slow requests, and timeouts
- Created HealthCheckMonitoring middleware for health check endpoints
- Integrated MonitoringAlertingService into router with automatic initialization
- Service starts monitoring in background with default alert rules
- Provides comprehensive monitoring and alerting for API health and failures
- Monitoring activates when PROMETHEUS_URL is configured

Files modified:
- veza-backend-api/internal/middleware/monitoring.go (new)
- veza-backend-api/internal/api/router.go
- VEZA_COMPLETE_MVP_TODOLIST.json
2025-12-25 15:53:13 +01:00
senke
1b743b0be0 [INT-020] int: Add API endpoint deprecation strategy
- Created DeprecationInfo structure for managing deprecation metadata
- Enhanced DeprecationWarning middleware with custom deprecation information support
- Added standardized deprecation headers (Deprecated, Sunset, Link per RFC 8594)
- Added X-API-* custom headers for compatibility
- Created MarkEndpointDeprecated helper for easy endpoint deprecation
- System provides clear warnings, sunset dates, and migration guidance

Files modified:
- veza-backend-api/internal/middleware/general.go
- VEZA_COMPLETE_MVP_TODOLIST.json
2025-12-25 15:51:14 +01:00
senke
e132714ae2 [INT-018] int: Add CORS configuration validation
- Enhanced ValidateCORSConfiguration to accept environment parameter
- Enforce strict validation in production (fail-fast on wildcard or empty CORS)
- In production, startup fails if CORS is misconfigured
- In development/staging, warnings are logged but startup continues
- Updated router to use environment-aware validation

Files modified:
- veza-backend-api/internal/middleware/cors.go
- veza-backend-api/internal/api/router.go
- VEZA_COMPLETE_MVP_TODOLIST.json
2025-12-25 15:48:48 +01:00
senke
502c0485d7 [INT-013] int: Add API rate limiting communication 2025-12-25 15:30:01 +01:00
senke
80f7987e47 [INT-006] int: Standardize error response format 2025-12-25 15:11:24 +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
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
0303d0f02c [BE-SVC-020] be-svc: Implement request validation improvements
- Enhanced error messages in validator with more descriptive and contextual messages
- Added custom validations: slug, phone, date_iso, not_empty
- Created QueryParamValidation middleware for query parameter validation
- Support for validation rules: numeric, integer, min, max, oneof, email, uuid, url
- Improved error messages for all validation tags (40+ tags supported)
- Comprehensive unit tests for query parameter validation
- Better error context and user-friendly messages

Phase: PHASE-6
Priority: P2
Progress: 116/267 (43.45%)
2025-12-24 17:09:54 +01:00
senke
8edc5fa0b4 [BE-SVC-018] be-svc: Implement request tracing
- Created TraceContext struct for distributed tracing
- Implemented W3C Trace Context format support (traceparent header)
- Added backward compatibility with legacy X-Trace-ID and X-Span-ID headers
- Created HTTPClientWithTracing for automatic trace propagation in outgoing requests
- Enhanced Tracing middleware to use new trace context system
- Added context propagation helpers (WithTraceContext, FromContext)
- Added child span creation for nested operations
- Comprehensive unit tests for trace context and HTTP client

Phase: PHASE-6
Priority: P2
Progress: 114/267 (42.70%)
2025-12-24 17:05:32 +01:00
senke
e2fd27e78d [BE-SVC-002] be-svc: Implement rate limiting per user 2025-12-24 16:04:36 +01:00
senke
5f886b58d5 [FE-PAGE-001] fe-page: Complete Dashboard page implementation
- Created dashboardService.ts to fetch real stats and activity from API
- Created useDashboard hook for managing dashboard data
- Updated DashboardPage to use real data instead of hardcoded values
- Added loading states and skeletons for better UX
- Made quick actions functional with navigation
- Added activity timeline with real timestamps
- Formatted numbers with K/M suffixes for readability
- Added relative time formatting using date-fns
2025-12-24 12:35:38 +01:00
senke
bddde37f73 [BE-SEC-011] be-sec: Implement security headers
- Enhanced security headers middleware with additional headers
- Added X-Permitted-Cross-Domain-Policies: none
- Added Cross-Origin-Embedder-Policy: require-corp
- Added Cross-Origin-Opener-Policy: same-origin
- Added Cross-Origin-Resource-Policy: same-origin
- Enhanced Permissions-Policy with additional restrictions
- Enhanced CSP with frame-ancestors directive
- HSTS now only set in production (not in development)
- Updated tests to verify all new headers
2025-12-24 12:24:54 +01:00
senke
fb2caa6706 [BE-SEC-008] be-sec: Implement session timeout and refresh
- Added automatic session refresh mechanism in auth middleware
- Sessions are refreshed when they reach 25% of lifetime remaining
- Refresh happens asynchronously to avoid blocking requests
- Applied to both RequireAuth and OptionalAuth middlewares
- Session timeout enforced through ValidateSession checks
2025-12-24 12:12:29 +01:00
senke
8722344aba [BE-SEC-005] security: Implement rate limiting for authentication endpoints
- Applied RegisterRateLimit to POST /auth/register (3 attempts/hour)
- Applied PasswordResetRateLimit to password reset endpoints (3 attempts/hour)
- Added VerifyEmailRateLimit for POST /auth/verify-email (5 attempts/hour)
- Added ResendVerificationRateLimit for POST /auth/resend-verification (3 attempts/hour)
- Login endpoint already had rate limiting (5 attempts/15min)
- All rate limits are IP-based and use Redis for persistence
- Rate limiting disabled in test/e2e environments

Phase: PHASE-4
Priority: P1
Progress: 7/267 (2.6%)
2025-12-24 12:05:35 +01:00
senke
f52fb0b289 fix(MVP-014): Add CORS credentials configuration validation 2025-12-22 23:17:24 +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
d50832ca42 stabilizing apps/web: THIRD BATCH - FIXED Playwright 2025-12-21 18:55:51 -05:00
senke
c65563863a stabilizing apps/web: SECOND BATCH - FIXING Playwright 2025-12-17 12:20:42 -05:00
senke
83e4463b4b stabilizing veza-backend-api: P0 2025-12-16 11:59:56 -05:00
senke
d0fe8c8ad7 stabilizing veza-backend-api: phase 1 2025-12-16 11:23:49 -05:00
senke
d33c351ac6 refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
okinrev
8d6ce72bb2 report generation and future tasks selection 2025-12-08 19:57:54 +01:00
okinrev
8caa2fd7ca STABILISATION: phase 3–5 – API contract, tests & chat-server hardening 2025-12-06 17:21:59 +01:00
okinrev
a47464509a fix(backend-tests): enable room_handler_test and resolve metric collisions 2025-12-06 12:53:15 +01:00
okinrev
5ffcd50e0a P0: stabilisation backend/chat/stream + nouvelle base migrations v1
Backend Go:
- Remplacement complet des anciennes migrations par la base V1 alignée sur ORIGIN.
- Durcissement global du parsing JSON (BindAndValidateJSON + RespondWithAppError).
- Sécurisation de config.go, CORS, statuts de santé et monitoring.
- Implémentation des transactions P0 (RBAC, duplication de playlists, social toggles).
- Ajout d’un job worker structuré (emails, analytics, thumbnails) + tests associés.
- Nouvelle doc backend : AUDIT_CONFIG, BACKEND_CONFIG, AUTH_PASSWORD_RESET, JOB_WORKER_*.

Chat server (Rust):
- Refonte du pipeline JWT + sécurité, audit et rate limiting avancé.
- Implémentation complète du cycle de message (read receipts, delivered, edit/delete, typing).
- Nettoyage des panics, gestion d’erreurs robuste, logs structurés.
- Migrations chat alignées sur le schéma UUID et nouvelles features.

Stream server (Rust):
- Refonte du moteur de streaming (encoding pipeline + HLS) et des modules core.
- Transactions P0 pour les jobs et segments, garanties d’atomicité.
- Documentation détaillée de la pipeline (AUDIT_STREAM_*, DESIGN_STREAM_PIPELINE, TRANSACTIONS_P0_IMPLEMENTATION).

Documentation & audits:
- TRIAGE.md et AUDIT_STABILITY.md à jour avec l’état réel des 3 services.
- Cartographie complète des migrations et des transactions (DB_MIGRATIONS_*, DB_TRANSACTION_PLAN, AUDIT_DB_TRANSACTIONS, TRANSACTION_TESTS_PHASE3).
- Scripts de reset et de cleanup pour la lab DB et la V1.

Ce commit fige l’ensemble du travail de stabilisation P0 (UUID, backend, chat et stream) avant les phases suivantes (Coherence Guardian, WS hardening, etc.).
2025-12-06 11:14:38 +01:00
okinrev
2425c15b09 adding initial backend API (Go) 2025-12-03 20:29:37 +01:00