github bharathganji/pikpak-plus v3.0.0

latest releases: v17.0.3, v17.0.2, v17.0.1...
3 months ago

3.0.0 (2025-12-02)

⚠ BREAKING CHANGES

  • SchedulerJobThread now requires worker_id parameter for proper distributed lock functionality

  • refactor(tasks): consolidate duplicated Redis status update functions into shared utils

Extract the duplicated _update_redis_status function from multiple job files
(cleanup_job, statistics_job, task_status_job, webdav_job) into a new shared
app.tasks.utils.update_redis_status function to eliminate code duplication
and improve maintainability. Also refactor the scheduler's _update_scheduler_status
function by extracting helper functions for better code organization.

  • refactor(backend): enhance service health checks and infrastructure resilience
  • Add health check endpoints (/health/live, /health/ready) with Redis, Supabase, and PikPak status validation
  • Implement structured logging with correlation IDs for better observability
  • Add connection pooling for Redis client with 50 max connections
  • Integrate Flask-Limiter for API rate limiting (2000/day, 500/hour)
  • Configure Docker healthchecks with curl-based readiness probes
  • Add request timeout handling for PikPak operations (60s default)
  • Implement graceful shutdown handlers for SIGINT/SIGTERM signals
  • Optimize database queries with indexes on statistics and actions tables
  • Configure automatic container restart policies for improved uptime
  • refactor(backend): enhance service resilience with circuit breaker and multi-tier caching
  • Add circuit breaker pattern to PikPak API calls for improved fault tolerance
  • Implement exponential backoff retry logic with jitter for better error recovery
  • Create multi-tier caching system (Redis → Disk → Memory) with LRU eviction
  • Optimize Dockerfile build process with better layer caching and dependency management
  • Parallelize statistics collection API calls for improved performance
  • Add worker ID support to scheduled job threads
  • Include new dependencies: flask-limiter, flask-compress, pybreaker

These changes significantly improve backend service reliability, performance, and caching efficiency while maintaining backward compatibility.

  • refactor(backend): improve logging configuration and reduce verbosity across services
  • Add environment-based log level configuration in app factory
  • Reduce verbosity of third-party loggers (httpx, apscheduler, werkzeug)
  • Implement worker-specific log filtering for multi-worker Gunicorn deployments
  • Add Flask gzip compression support
  • Clean up duplicate logging configurations across modules
  • Set appropriate log levels for WebDAV and other components
  • Add WORKER_ID environment variable for worker identification
  • Improve error handling and cooldown logging in auth module
  • Standardize code formatting and indentation across auth module
  • refactor(auth): convert async methods to synchronous

Convert authentication methods from async to synchronous implementation and standardize login state file handling with constants.

  • refactor(health): improve health check structure with helper functions
  • Extract Redis, Supabase, and PikPak health check functions
  • Consolidate health check logic into _perform_health_checks helper
  • Add comprehensive docstrings for endpoint purposes
  • Adjust docker-compose healthcheck interval from 30s to 2m

These changes improve code maintainability by separating concerns and making the health check logic more modular and easier to test.

Features

  • Production readiness improvements - Reliability, Performance & Monitoring (#101) (9f1a036)

Don't miss a new pikpak-plus release

NewReleases is sending notifications on new releases.