Commit Graph

51 Commits

Author SHA1 Message Date
Pulse Monitor 244cffe3fa chore: bump version to v4.5.2-rc.1 2025-08-20 15:34:22 +00:00
Pulse Monitor d2dd97c436 chore: bump version to v4.5.1 2025-08-20 10:05:04 +00:00
Pulse Monitor a4a5a27002 chore: bump version to v4.5.0 2025-08-20 08:44:47 +00:00
Pulse Monitor 88141545b5 chore: bump version to v4.5.0-rc.3 2025-08-19 16:42:00 +00:00
Pulse Monitor 81ff5d0a1e chore: bump version to v4.5.0-rc.2 2025-08-18 22:23:21 +00:00
Pulse Monitor 976217b065 chore: bump version to v4.5.0-rc.1 2025-08-18 20:34:34 +00:00
Pulse Monitor 0a8b54ac99 chore: bump version to v4.4.1-rc.1 2025-08-18 09:58:29 +00:00
Pulse Monitor a5e5af221d chore: bump version to v4.4.0 2025-08-17 18:43:08 +00:00
Pulse Monitor 52e5000ca0 chore: bump version to v4.4.0-rc.2 2025-08-17 11:31:07 +00:00
Pulse Monitor e89f469498 chore: bump version to v4.4.0-rc.1 2025-08-17 09:47:47 +00:00
Pulse Monitor b947eb8a98 fix: improve security setup and pending restart detection
- Add pending restart detection when .env exists but not loaded
- Update frontend to show pending state instead of re-showing setup
- Fix QuickSecuritySetup to refresh security status after configuration
- Remove auto-restart attempts from security setup
- Show deployment-appropriate restart instructions
- Update documentation to reflect new update mechanism

Related to security setup issues after removing sudo/auto-restart capabilities
2025-08-15 09:35:40 +00:00
Pulse Monitor 47f5bf531b chore: bump version to v4.3.7 2025-08-14 19:37:11 +00:00
Pulse Monitor d6a2a05d95 chore: bump version to v4.3.6 2025-08-14 19:12:35 +00:00
Pulse Monitor d8536c1c75 chore: bump version to v4.3.5 2025-08-14 16:35:06 +00:00
Pulse Monitor 167a42d92a chore: update version fallback to 4.3.4 2025-08-14 13:23:58 +00:00
Pulse Monitor 0f91ee5f77 chore: bump version to v4.3.2 2025-08-14 11:41:00 +00:00
Pulse Monitor 07b33ad215 chore: bump version to v4.3.1 2025-08-14 10:39:10 +00:00
Pulse Monitor 1d23178286 fix: address critical security vulnerabilities from audit
Security Fixes:
- Fix path traversal vulnerability in tar extraction (HIGH)
  - Validate and sanitize paths from tar archives
  - Prevent directory traversal attacks via ../
  - Ensure extracted files stay within destination directory

- Remove weak SHA-256 password hashing code (MEDIUM)
  - Removed unused SHA-256 hash function from crypto package
  - All password hashing now uses bcrypt (cost 12) exclusively
  - Added warning comment about proper password hashing

- Fix error information leakage (MEDIUM)
  - Add sanitizeErrorMessage helper function
  - Log detailed errors internally while returning generic messages
  - Prevent exposure of system internals in error responses

- Change default CORS from * to restrictive (MEDIUM)
  - Default to no CORS headers (same-origin only)
  - Allow localhost origins only in development mode
  - Require explicit configuration for production CORS

These fixes address all critical and medium severity issues found
in the security audit while maintaining backward compatibility.
2025-08-13 19:46:39 +00:00
Pulse Monitor efa451ff9c feat: add RC badge to header for release candidate versions
The Pulse logo now displays an orange "RC" badge when running a release
candidate version. This helps users identify when they're testing pre-release
versions.

- Backend now detects RC versions and sets channel field accordingly
- Frontend displays RC badge next to Pulse logo when channel is "rc"
- Works for both git-based and VERSION file-based builds
2025-08-12 14:47:21 +00:00
Pulse Monitor 823f145c4d chore: bump version to v4.3.1-rc.1 2025-08-12 14:29:37 +00:00
Pulse Monitor 2504dd2996 chore: bump version to v4.3.0 2025-08-12 13:09:09 +00:00
Pulse Monitor 5d8ca038d5 fix: update systems to work with embedded frontend
- Fix auto-updater to handle single-binary structure
- Fix Docker build to copy frontend before Go compilation
- Add development script for frontend rebuilds
- Remove unnecessary frontend directory copying in updater

The embedded frontend change simplifies deployment but required
updates to various build and update systems.
2025-08-12 12:52:27 +00:00
Pulse Monitor 1cdc6a011c chore: bump version to v4.2.1 2025-08-12 10:52:51 +00:00
Pulse Monitor c111738825 chore: bump version to v4.2.0 2025-08-11 16:05:09 +00:00
Pulse Monitor c7a96f9d39 chore: bump version to v4.1.8 2025-08-11 07:57:50 +00:00
Pulse Monitor 256d168d54 fix: update hardcoded fallback version to 4.1.7
The binary was using 4.1.6 as the fallback version when VERSION file
wasn't found, causing version mismatches in some installations
2025-08-10 20:49:29 +00:00
Pulse Monitor ba6bf68acc fix: update system to handle new tarball structure and permission issues
- Support both old (root) and new (bin/) tarball structures
- Use writable directories for temp and backup files (data dir instead of /tmp)
- Fixes update failures for users on v4.1.5 and earlier
2025-08-10 19:38:40 +00:00
Pulse Monitor eef3ebf354 fix: critical bugs in v4.1.5
- Fixed hardcoded version fallback showing 4.1.1 instead of current version
- Fixed install script syntax error that prevented fresh installations
- Identified root cause of Docker persistence issue (notification UI not saving)
- Identified missing save functionality in frontend notification settings

Issues addressed: #277, #278, #282
2025-08-10 18:49:51 +00:00
Pulse Monitor bb3f783b59 refactor: implement directory-based auto-update approach
Replaced sudo-based updater with a cleaner directory-based approach:
- Pulse binary now installs to /opt/pulse/bin/pulse (owned by pulse user)
- Symlink created at /usr/local/bin/pulse for PATH convenience
- Pulse user has full write access to /opt/pulse, enabling self-updates
- Removed sudo dependency and security risks
- Simplified update logic - no special scripts or permissions needed

This is more secure, simpler, and works in all environments (containers, VMs, bare metal)
2025-08-10 09:48:53 +00:00
Pulse Monitor aafa90f9db fix: enable PBS backup monitoring by default
- PBS instances now have MonitorBackups enabled by default
- Fixes issue where PBS backups weren't showing in the UI
- Bump version to v4.1.1
2025-08-10 08:27:20 +00:00
Pulse Monitor 6d633aa486 fix: correct hardcoded fallback version to 4.1.0 2025-08-10 07:44:40 +00:00
Pulse Monitor 3f897f42fa fix: clear user instructions for manual refresh after updates 2025-08-09 21:43:17 +00:00
Pulse Monitor 4c8094e4ac fix: auto-restart after update using clean exit strategy 2025-08-09 20:57:00 +00:00
Pulse Monitor fbb6e14721 fix: update channel logic for RC releases
- Fix bug where RC channel always returned first release without proper comparison
- Ensure RC channel returns the latest release (newest by creation date)
- Stable channel correctly returns first non-prerelease
- Add manual update instructions for users stuck on rc.1
2025-08-08 23:10:50 +00:00
Pulse Monitor 93ea43a7c7 Add Updates UI to Settings page
- Add System tab with Performance, Network, and Updates sections
- Implement Check for Updates and Apply Update functionality
- Add support for PULSE_UPDATE_SERVER environment variable for testing
- Fix Settings tab navigation issues
- Version bump to v4.1.0-rc.1
2025-08-07 18:17:13 +00:00
Pulse Monitor f7018debc4 fix: complete update system improvements
- Use background context for update downloads to prevent cancellation
- Detect actual binary location and update correct file
- Support both 'pulse' and 'pulse-backend' service names
- Copy VERSION file to multiple locations for compatibility
- Handle flat tarball structure from GitHub releases
2025-08-07 11:43:40 +00:00
Pulse Monitor 1c0d131cae fix: update UI channel selection and apply update file extraction
- Frontend now passes currently selected channel when checking for updates
- Backend accepts channel parameter to check specific channel without saving
- Fixed applyUpdateFiles to handle flat tarball structure (not nested in pulse-* directory)
- Fixed extraction logic to properly copy pulse binary, frontend, and VERSION file
- Users no longer need to toggle channels and save to see update button
2025-08-07 11:16:02 +00:00
Pulse Monitor 28f9d9db53 feat: add comprehensive security system for API protection
Security Features Added:
- Secure-by-default configuration export/import with ALLOW_UNPROTECTED_EXPORT environment variable
- Rate limiting (5 attempts/minute) to prevent brute force attacks on sensitive endpoints
- Comprehensive audit logging for all export/import attempts with IP tracking
- Frontend Security tab showing API protection status and configuration guidance
- Frontend now shows when export is blocked and disables buttons appropriately
- Strong passphrase requirement (minimum 12 characters) for exports

Technical Implementation:
- New RateLimiter component with automatic cleanup and middleware support
- Security status API endpoint showing protection state
- Enhanced error messaging with specific guidance for homelab vs production use
- Proper authentication flow with API token validation
- Updated documentation reflecting new security model

Breaking Changes:
- Export/import now requires API_TOKEN unless ALLOW_UNPROTECTED_EXPORT=true is set
- Minimum passphrase length increased from none to 12 characters

Additional Improvements:
- Fixed architecture-specific updates for better cross-platform support
- Removed RC label from UI header
- Updated security documentation with clear setup instructions
2025-08-06 21:39:52 +00:00
Pulse Monitor 9bc050371b fix: Docker persistence actually fixed this time
The ConfigHandlers were calling config.SaveConfig() which uses
globalPersistence initialized at startup with potentially wrong path.
Now handlers use their own persistence instance directly which is
initialized with the correct DataPath.

This was causing Docker configurations to still save to /etc/pulse
even though we thought we fixed it in v4.0.6.

Fixes #253 (for real this time)
2025-08-06 17:14:34 +00:00
Pulse Monitor 9c77f6e7db fix: Docker persistence and Windows VM memory reporting
- Fix Docker persistence bug where config was saved to /etc/pulse instead of /data
- Fix Windows VM memory reporting with balloon drivers
- Add GetVMStatus method to get detailed VM info including balloon memory
- Update diagnostics endpoint to use correct config paths

Fixes #253 (Docker persistence)
Fixes #258 (Windows VM memory reporting)
2025-08-06 16:00:22 +00:00
Pulse Monitor ad625a9237 chore: bump version to v4.0.5
- Fix version detection for community script installs
- Fix orange uptime highlighting for recent boots
- Fix cpulimit JSON parsing issue
- Improve PVE 9 compatibility
2025-08-06 12:32:31 +00:00
Pulse Monitor f380f4a717 fix: version detection and display
- Fix hardcoded fallback version (was 4.0.3, now 4.0.4)
- Look for VERSION file in multiple locations (/opt/pulse/VERSION)
- Fixes version display when installed via community script
2025-08-06 12:29:41 +00:00
Pulse Monitor eeefee1d72 chore: bump version to v4.0.3 2025-08-05 21:15:16 +00:00
Pulse Monitor 78945dce16 chore: bump version to v4.0.2 2025-08-05 20:34:45 +00:00
Pulse Monitor e25a0993a5 fix: update fallback version to 4.0.1 to fix Docker tag issue (#253) 2025-08-05 20:20:20 +00:00
Pulse Monitor 18bbd2f0b8 fix: improve RC channel handling in update manager 2025-08-04 17:37:35 +00:00
Pulse Monitor 8a40db959c feat: add pre-v4 installation detection and migration blocking
- Detect Node.js based installations (any version before v4)
- Block auto-update with migration required message
- Add detailed migration instructions to install.sh
- Check for .env, node_modules, old services, etc.
- Direct users to create fresh installation for v4
2025-08-04 08:09:30 +00:00
Pulse Monitor e673b41084 fix: revert update manager to use public repository
- Remove private repo references from update validation
- Change GitHub API URL back to public repo (rcourtman/Pulse)
- This reverts the test changes made for private repo update testing
2025-08-04 07:48:31 +00:00
Pulse Monitor 68e4295de2 test: modify update manager to use private repo for testing 2025-08-04 07:20:17 +00:00
Pulse Monitor 89e43fc1d9 fix: update to serve on port 7655 and fix version handling 2025-08-03 21:16:05 +00:00