The share route joined the file name and subfolder of the selected output, both taken from the request, onto the output or temp directory and uploaded that file to the Matrix homeserver named in the same request. A name such as "../../file" left the directory, so a request could have any file that ComfyUI can read uploaded. The route runs the upload only where matrix-nio is installed, which Manager does not install. - Refuse, with 400 and the error shape the share dialog shows, a path that is not inside the directory, in the glob and the legacy copy - Compare the normalized path without resolving symlinks, as ComfyUI's /view does, and open that same path, so an image that the dialog previews through a symlink in the directory can still be shared - Refuse a path on another Windows drive, for which commonpath raises ValueError - Add tests that run the real route of both copies against a recording Matrix client - Add a CHANGELOG entry The same change for main is #3427. The other upload that #3427 first changed was removed from v4 in #3500.
ComfyUI-Manager: Core Backend (glob)
This directory contains the Python backend modules that power ComfyUI-Manager, handling the core functionality of node management, downloading, security, and server operations.
Directory Structure
- glob/ - code for new cacheless ComfyUI-Manager
- legacy/ - code for legacy ComfyUI-Manager
Core Modules
- manager_core.py: The central implementation of management functions, handling configuration, installation, updates, and node management.
- manager_server.py: Implements server functionality and API endpoints for the web interface to interact with the backend.
Specialized Modules
- share_3rdparty.py: Manages integration with third-party sharing platforms.
Architecture
The backend follows a modular design pattern with clear separation of concerns:
- Core Layer: Manager modules provide the primary API and business logic
- Utility Layer: Helper modules provide specialized functionality
- Integration Layer: Modules that connect to external systems
Security Model
The system implements a comprehensive security framework with multiple levels:
- Block: Highest security - blocks most remote operations
- High: Allows only specific trusted operations
- Middle: Standard security for most users
- Normal-: More permissive for advanced users
- Weak: Lowest security for development environments
Implementation Details
- The backend is designed to work seamlessly with ComfyUI
- Asynchronous task queuing is implemented for background operations
- The system supports multiple installation modes
- Error handling and risk assessment are integrated throughout the codebase
API Integration
The backend exposes a REST API via manager_server.py that enables:
- Custom node management (install, update, disable, remove)
- Model downloading and organization
- System configuration
- Snapshot management
- Workflow component handling