9.8 KiB
Aniworld Server Tasks
Controller Usage Analysis
Tasks to Complete
API Controllers
-
Auth Controller: Implement simple master password authentication
- ✅ Single master password check (no email/user system)
- ✅ JWT token generation and validation
- ✅ Token verification endpoint
- ✅ Logout endpoint (client-side token clearing)
- ✅ Proper error handling for invalid credentials
- ✅ Environment-based password hash configuration
-
Anime Controller: Improve anime data handling
- Fix anime search functionality - currently returns empty results
- Implement proper pagination for anime list endpoints
- Add caching for frequently requested anime data
-
Episode Controller: Complete episode management
- Missing episode progress tracking
- Need to implement episode streaming URL validation
- Add episode download status tracking
Service Layer Issues
- Database Service: Fix connection pooling
- Current implementation creates too many connections
- Add proper connection timeout handling
- Implement database health check endpoint
Repository Pattern Implementation
- Anime Repository: Optimize database queries
- Replace N+1 query issues with proper joins
- Add database indexing for search queries
- Implement query result caching
Configuration & Security
-
Authentication Configuration: Simple master password system
- ✅ No email or user management required
- ✅ Single master password stored as hash in environment
- ✅ JWT tokens for session management
- ✅ Configurable token expiry
- ✅ Secure password hashing with salt
-
Environment Configuration: Secure sensitive data
- ✅ Master password hash in environment variables
- Add API key validation middleware (if needed for external APIs)
- Implement rate limiting for public endpoints
-
Error Handling: Centralize error responses
- Create consistent error response format
- Add proper HTTP status codes
- Implement global exception handling middleware
Testing & Documentation
-
Unit Tests: Add missing test coverage
- ✅ Auth controller tests for master password validation
- Missing integration tests for API endpoints
- Add performance tests for streaming endpoints
-
API Documentation: Complete OpenAPI specifications
- ✅ Auth endpoints documented (login, verify, logout)
- Missing request/response schemas for other endpoints
- Add example requests and responses
Performance Optimizations
-
Caching Strategy: Implement Redis caching
- Add caching for anime metadata
- Implement session caching (JWT tokens are stateless)
- Add cache invalidation strategy
-
Async Operations: Convert blocking operations
- Database queries should use async/await pattern
- File I/O operations need async implementation
- Add background job processing for heavy operations
API Implementation Review & Bug Fixes
Critical API Issues to Address
API Structure & Organization
-
FastAPI Application Setup: Review main application configuration
- Check if CORS is properly configured for web client access
- Verify middleware order and configuration
- Ensure proper exception handlers are registered
- Validate API versioning strategy (if applicable)
-
Dependency Injection: Review service dependencies
- Check if database connections are properly injected
- Verify repository pattern implementation consistency
- Ensure proper scope management for dependencies
- Validate session management in DI container
Request/Response Handling
-
Pydantic Models: Validate data models
- Check if all request/response models use proper type hints
- Verify field validation rules are comprehensive
- Ensure proper error messages for validation failures
- Review nested model relationships and serialization
-
HTTP Status Codes: Review response status codes
- Verify correct status codes for different scenarios (200, 201, 400, 401, 404, 500)
- Check if error responses follow consistent format
- Ensure proper status codes for authentication failures
- Validate status codes for resource not found scenarios
Security Vulnerabilities
-
Input Validation: Review security measures
- Check for SQL injection prevention in database queries
- Verify all user inputs are properly sanitized
- Ensure file upload endpoints have proper validation
- Review path traversal prevention for file operations
-
JWT Token Security: Review token implementation
- Verify JWT secret is properly configured from environment
- Check token expiration handling
- Ensure proper token refresh mechanism (if implemented)
- Review token blacklisting strategy for logout
Database Integration Issues
-
Connection Management: Fix database connection issues
- Check for proper connection pooling configuration
- Verify connection timeout and retry logic
- Ensure proper transaction management
- Review database migration strategy
-
Query Optimization: Address performance issues
- Identify and fix N+1 query problems
- Review slow queries and add proper indexing
- Check for unnecessary database calls in loops
- Validate pagination implementation efficiency
API Endpoint Issues
-
Route Definitions: Review endpoint configurations
- Check for duplicate route definitions
- Verify proper HTTP methods for each endpoint
- Ensure consistent URL patterns and naming
- Review parameter validation in path and query parameters
-
Error Handling: Improve error responses
- Check if all endpoints have proper try-catch blocks
- Verify consistent error response format across all endpoints
- Ensure sensitive information is not leaked in error messages
- Review logging of errors for debugging purposes
Content Type & Serialization
-
JSON Handling: Review JSON serialization
- Check if datetime fields are properly serialized
- Verify proper handling of null values
- Ensure circular reference prevention in nested objects
- Review custom serializers for complex data types
-
File Handling: Review file upload/download endpoints
- Check file size limits and validation
- Verify proper content-type headers
- Ensure secure file storage and access
- Review streaming implementation for large files
Testing & Monitoring Issues
-
Health Checks: Implement application monitoring
- Add health check endpoint for application status
- Implement database connectivity checks
- Add memory and performance monitoring
- Review logging configuration and levels
-
Integration Testing: Add missing test coverage
- Test complete request/response cycles
- Verify authentication flow end-to-end
- Test error scenarios and edge cases
- Add load testing for critical endpoints
Common Bug Patterns to Check
FastAPI Specific Issues
-
Async/Await Usage: Review asynchronous implementation
- Check if async endpoints are properly awaited
- Verify database operations use async patterns
- Ensure proper async context management
- Review thread safety in async operations
-
Dependency Scope: Review dependency lifecycles
- Check if singleton services are properly configured
- Verify database connections are not leaked
- Ensure proper cleanup in dependency teardown
- Review request-scoped vs application-scoped dependencies
Data Consistency Issues
-
Race Conditions: Check for concurrent access issues
- Review critical sections that modify shared data
- Check for proper locking mechanisms
- Verify atomic operations for data updates
- Review transaction isolation levels
-
Data Validation: Comprehensive input validation
- Check for missing required field validation
- Verify proper format validation (email, URL, etc.)
- Ensure proper range validation for numeric fields
- Review business logic validation rules
Authentication System Design
Simple Master Password Authentication
- No User Registration: Single master password for the entire application
- No Email System: No email verification or password reset via email
- Environment Configuration: Master password hash stored securely in .env
- JWT Tokens: Stateless authentication using JWT for API access
- Session Management: Client-side token storage and management
Authentication Flow
- Login: POST
/auth/loginwith master password - Token: Receive JWT token for subsequent requests
- Authorization: Include token in Authorization header for protected endpoints
- Verification: Use
/auth/verifyto check token validity - Logout: Client removes token (stateless logout)
Security Features
- Password hashing with SHA-256 and salt
- Configurable token expiry
- JWT secret from environment variables
- No sensitive data in source code
Priority Order
- Critical Priority: Fix API implementation bugs and security vulnerabilities
- High Priority: Complete core functionality (Anime Controller, Episode Controller)
- Medium Priority: Performance optimizations (Database Service, Caching)
- Low Priority: Enhanced features and testing
Notes
- ✅ Authentication system uses simple master password (no email/user management)
- Follow the repository pattern consistently across all data access
- Use dependency injection for all service dependencies
- Implement proper logging for all controller actions
- Add input validation using Pydantic models for all endpoints
- Use the
get_current_userdependency for protecting endpoints that require authentication - All API endpoints should follow RESTful conventions
- Implement proper OpenAPI documentation for all endpoints
- Use environment variables for all configuration values
- Follow Python typing best practices with proper type hints