github RunOnFlux/flux v7.0.0

latest releases: v7.0.4, v7.0.3, v7.0.2...
2 days ago

Summary

This major release (v7.0.0) represents a significant architectural refactoring of FluxOS's application management system. The PR modularizes the previously monolithic appsService into specialized, domain-focused
service modules while introducing new capabilities for dynamic configuration, enhanced application naming, and improved Syncthing integration.

Changes: 126 files changed (+22,760 additions, −9,626 deletions)Test Coverage: Improved from 44.52% to 51.26% (+6.73%)


Architectural Refactoring

Service Modularization

The monolithic appsService.js has been decomposed into specialized modules organized by domain:

Application Lifecycle Services:

  • appInstaller.js - Handles application installation workflows
  • appSpawner.js - Manages application spawning logic
  • appUninstaller.js - Controls application removal processes
  • advancedWorkflows.js - Orchestrates complex multi-step workflows

Monitoring & Health Services:

  • syncthingMonitor.js - Refactored syncthing synchronization monitoring
  • syncthingFolderStateMachine.js - NEW: State machine for folder lifecycle management
  • syncthingMonitorHelpers.js - NEW: Helper utilities for monitoring operations
  • syncthingMonitorConstants.js - NEW: Centralized configuration constants
  • nodeStatusMonitor.js - Node health and availability tracking
  • monitoringOrchestrator.js - Coordinates monitoring activities across services
  • availabilityChecker.js - Validates service availability and readiness

Application Management:

  • appInspector.js - Application inspection and diagnostics
  • dockerOperations.js - Abstracted Docker daemon interactions
  • portManager.js - Port allocation and conflict resolution
  • imageManager.js - Container image lifecycle management
  • registryManager.js - Application registry database operations

Query Services:

  • appQueryService.js - Application data retrieval APIs
  • deploymentInfoService.js - Deployment state information
  • fileQueryService.js - Filesystem query operations
  • resourceQueryService.js - Resource usage metrics

Messaging & Synchronization:

  • peerNotification.js - Inter-node communication for app events
  • appHashSyncService.js - Application state hash synchronization

This modular approach improves maintainability, testability, and separation of concerns across the codebase.


New Features

  1. Extended Application Naming
  • Application name regex expanded to support up to 63 characters
  • Improved validation for application naming conventions
  • Better error messaging for invalid names
  1. Syncthing 2.0.10 Upgrade
  • Upgraded Syncthing integration to version 2.0.10
  • Implemented comprehensive folder state machine for tracking sync lifecycle
  • Enhanced monitoring with dedicated helper functions and constants
  • Improved handling of soft vs. hard redeployment scenarios
  1. DockerHub API Caching
  • Implemented TTL-based caching for DockerHub API calls
  • Reduces external API requests and improves performance
  • Better error handling for rate limiting scenarios

Improvements & Bug Fixes

Application Management

  • Fixed syncthing synchronization issues during soft application redeployments
  • Improved version update handling for running applications
  • Enhanced masterSlaveApps and syncthingApps implementations
  • Better validation for repository and port conflicts during registration

Performance Optimizations

  • Disabled API endpoint caching for the Manage Flux page to ensure fresh data
  • Optimized Docker container operations with improved error checking
  • Better cache initialization and setup procedures

Code Quality

  • Eliminated code duplication through shared utility functions
  • Consistent error handling patterns across service modules
  • Improved logging and debugging capabilities
  • Enhanced code documentation and comments

Testing

Comprehensive Test Suite Expansion

Added 40+ new unit test files covering:

  • All newly modularized service modules
  • Workflow and lifecycle function testing
  • Syncthing state machine and monitoring logic
  • Docker operations and system interactions
  • Security validation and authentication functions
  • Edge cases and error scenarios

Test Infrastructure:

  • All existing tests passing
  • Improved test coverage across backend services
  • Enhanced mocking for external dependencies

Breaking Changes

None - This release maintains backward compatibility with existing configurations and deployments. No migration steps required.


Migration Notes

No action required for existing FluxOS installations. The refactored architecture is fully compatible with existing application deployments and configuration files.

Don't miss a new flux release

NewReleases is sending notifications on new releases.