Documentation: utils / diskSpaceMonitor
Purpose:
Monitor disk space usage of log directory, auto-clean old logs/session data per thresholds.
Lifecycle Role:
Runs asynchronously independent of request/response; provides middleware and API endpoints.
Dependencies:
Upstream:
Downstream:
- admin routes/middleware needing disk space status
- API handlers for status and cleanup
- main app initialization
Data Flow:
Inputs:
- configured log directory path
- cleanup thresholds and retention policies
- HTTP requests for status/manual cleanup
- admin route requests for middleware
Outputs:
- JSON responses with disk status or cleanup results
Side Effects:
- reads filesystem stats
- deletes old log files and session data
- logs cleanup actions
- sets timers for periodic monitoring
Performance and Scalability:
Bottlenecks:
- slow filesystem access or permission errors
- recursive directory size calc and deletion overhead on large/deep dirs
- potential race conditions if multiple cleanups overlap
Concurrency:
None; no explicit Concurrency control
Security and Stability:
Validation:
Deletes based on mod date; config must prevent unintended data loss
Vulnerabilities:
- risk of deleting critical data if misconfigured
- needs correct permissions without excessive privileges
- long async ops may block event loop if unmanaged
- lacks Concurrency control risking inconsistencies
Architecture Assessment:
Coupling:
Low; internal fs dependency, exposed middleware and API
Abstraction:
Encapsulates disk space monitoring and cleanup
Recommendations:
- add Concurrency controls (mutex/flags)
- optimize size calc with caching or sampling
- enhance logging for audits
- expose config via env or external files
- add alerting/integration for admin notifications
- validate directory paths to prevent injection
- limit cleanup scope to safe dirs/file types
- offload heavy IO to worker threads/processes