Documentation: utils / newsletterService
Purpose:
Manage subscriber emails in JSON file.
Lifecycle Role:
Handles newsletter subscription endpoints.
Dependencies:
Upstream:
- validateAndSanitizeEmail
- filesystem
Downstream:
- newsletter API controllers
Data Flow:
Inputs:
raw email strings
Outputs:
promise results or errors
Side Effects:
reads/writes JSON file
Performance and Scalability:
Bottlenecks:
- writeLock contention
- filesystem latency
Concurrency:
None
Security and Stability:
Validation:
Email sanitation and validation
Vulnerabilities:
- JSON file exposed if misconfigured
- No spam/rate limiting
Architecture Assessment:
Coupling:
Tight with filesystem and validation util
Abstraction:
File-based subscriber storage
Recommendations:
- Move to database
- Rate limit subscription
- Encrypt subscriber data
- Use atomic writes