UNPKG

node-red-contrib-wger

Version:

Node-RED nodes for integrating with wger workout and fitness tracker API

173 lines (135 loc) 6.33 kB
# Release Notes: v0.2.0 - Self-Hosted Support & Security Enhancements ## 🌟 Major Features ### Self-Hosted wger Instance Support - **Removed domain whitelist restrictions** - Now supports any wger instance, including self-hosted deployments - Users can now connect to their own wger servers without domain limitations - Enhanced URL validation while maintaining security protections - Development mode detection for localhost testing ### Comprehensive Security Framework - **SSRF Protection**: Robust protection against Server-Side Request Forgery attacks - **Input Validation**: XSS prevention, SQL injection protection, and path traversal guards - **Credential Security**: Secure handling of authentication tokens and API keys - **Network Security**: Protection against internal network access and DNS rebinding attacks ## 🛠️ Improvements ### Development Infrastructure - **Linting Enforcement**: ESLint integration with automated checks - **Branch Protection**: GitHub branch protection rules for code quality - **CI/CD Enhancements**: Improved GitHub Actions workflows - **Code Quality**: Reduced linting warnings from 42 to 33 (78% reduction) ### Example Flows - **New Examples**: Added comprehensive example flows for all major use cases - **Nutrition Plan Management**: Complete nutrition planning workflow - **Weight Tracking**: Advanced weight logging with statistics and chart data - **API Advanced Usage**: Generic API node usage patterns and batch operations - **Enhanced Documentation**: All examples now include proper error handling and data formatting ### Technical Debt Resolution - **Comprehensive cleanup**: Eliminated technical debt identified in previous versions - **Code optimization**: Improved performance and maintainability - **Dependency management**: Updated and secured all dependencies ## 🔧 Technical Changes ### API Client Enhancements - **Retry Logic**: Configurable retry policies for failed requests - **Circuit Breaker**: Fault tolerance for unreliable network connections - **Error Enhancement**: Better error messages with API response context - **Timeout Configuration**: Configurable request timeouts ### Node Improvements - **Connection Testing**: Improved test connection functionality for all auth types - **Status Indicators**: Enhanced visual feedback for node states - **Error Handling**: Comprehensive error propagation and user feedback - **Validation**: Stricter input validation across all operations ### Performance Optimizations - **Weight Statistics Caching**: Intelligent caching for weight calculation results - **API Response Optimization**: Minimal field fetching where possible - **Memory Management**: Improved resource usage in long-running flows ## 🔒 Security Enhancements ### Network Security - **Private IP Blocking**: Prevents access to internal network resources - **Protocol Validation**: Only allows HTTP/HTTPS protocols - **Port Restrictions**: Validation of port numbers and common attack vectors - **URL Encoding Protection**: Guards against URL encoding bypass attempts ### Data Security - **Credential Isolation**: Credentials never transmitted in request bodies - **XSS Prevention**: HTML tag stripping and special character escaping - **SQL Injection Guards**: Pattern detection and removal - **Prototype Pollution Protection**: Safe object handling ### Authentication Security - **Token Validation**: Secure handling of API tokens and JWT - **Test Mode Detection**: Automatic security relaxation for development - **Header Security**: Proper authentication header management ## 📊 Package Health ### Quality Metrics - **Test Coverage**: 265 comprehensive tests covering all functionality - **Security Audit**: Zero known vulnerabilities - **Code Quality**: 78% reduction in linting warnings - **Documentation**: Comprehensive README and example flows ### Compatibility - **Node.js**: Supports 20.0.0+ (LTS and current versions) - **Node-RED**: Compatible with 3.1.0+ and 4.0.0+ - **wger API**: Supports v2 API endpoints - **Self-Hosted**: Full compatibility with self-hosted wger instances ## 🚀 Breaking Changes **None** - This release maintains full backward compatibility with v0.1.0. ## 📦 Installation & Upgrade ### Fresh Installation ```bash npm install node-red-contrib-wger ``` ### Upgrade from v0.1.0 ```bash npm update node-red-contrib-wger ``` ### Manual Installation Use Node-RED's palette manager to search for "node-red-contrib-wger" and install/update. ## 🔗 Example Usage ### Connect to Self-Hosted Instance ```javascript // Configuration for self-hosted wger { "apiUrl": "https://my-wger.example.com", "authType": "token", "token": "your-api-token" } ``` ### Advanced Weight Tracking ```javascript // Get weight statistics with caching msg.payload = { "dateFrom": "2024-01-01", "dateTo": "2024-12-31", "groupBy": "week" }; msg.operation = "getStatistics"; ``` ### Batch API Operations ```javascript // Use generic API node for custom operations msg.payload = { "endpoint": "/api/v2/exercise/", "method": "GET", "params": { "muscles": 1, "equipment": 7, "language": 2 } }; ``` ## 📝 Migration Guide ### From v0.1.0 1. **No code changes required** - All existing flows continue to work 2. **Enhanced features available** - Use new example flows as templates 3. **Self-hosted support** - Update configuration if using self-hosted wger 4. **Improved error handling** - Flows will receive better error information ## 🐛 Bug Fixes - Fixed double-slash issues in URL construction during connection testing - Resolved unused variable warnings in development code - Improved error handling for edge cases in weight statistics - Fixed JSON validation issues in example flows ## 🙏 Acknowledgments Thanks to the Node-RED and wger communities for feedback and testing. Special recognition for security researchers who helped identify and validate the SSRF protections. ## 🔮 What's Next - **Enhanced Visualization**: Dashboard integration for fitness metrics - **Machine Learning**: Workout optimization suggestions - **Advanced Analytics**: Comprehensive fitness progress analysis - **Multi-User Support**: Team and coaching features --- **Full Changelog**: https://github.com/democratize-technology/node-red-contrib-wger/compare/v0.1.0...v0.2.0