Commit graph

12 commits

Author SHA1 Message Date
Pulse Monitor
378ebcb250 Major improvements to security, alerts, and ease of use
Security enhancements:
- Fixed critical issue: PBS tokens no longer logged in plaintext
- PVE tokens now properly masked in all log outputs
- Enhanced token security documentation

Alert system fixes:
- Fixed storage alerts not working due to threshold being 0
- Added automatic defaults preservation for alert thresholds
- Storage alerts now properly trigger at 85% usage

Node management improvements:
- Fixed node deletion causing 'Node not found' errors
- Added instant discovery refresh when nodes are deleted
- Added manual refresh buttons for discovery
- Fixed PBS token cleanup in auto-registration scripts
- Fixed /dev/tty errors when running scripts in Docker containers

Bug fixes:
- Fixed CPU MHz field type mismatch causing JSON unmarshal errors
- Suppressed non-critical container snapshot API errors
- Fixed auto-registration using Docker internal IPs instead of actual host IPs

Documentation updates:
- Added comprehensive security documentation
- Streamlined setup documentation focusing on ease of use
- Removed marketing language and consolidated repetitive content

Frontend improvements:
- Added WebSocket support for real-time node updates
- Added discovery refresh buttons in Settings
- Improved node deletion feedback
2025-08-11 13:59:58 +00:00
Pulse Monitor
dd5ee8120f fix: critical bugs and add .env configuration support
- Fix Export/Import API token authentication (wasn't sending X-API-Token header)
- Add client-side passphrase validation (12+ chars with visual feedback)
- Fix settings persistence for AllowedOrigins field
- Fix hardcoded port display in diagnostics (now shows actual port)
- Add .env file support for non-sensitive configuration (ports, logging, etc)
- Keep sensitive data (API tokens, passwords) using secure methods (systemd env vars)
- Update documentation with configuration guide and latest features
- Document auto-discovery, cluster detection, and export/import features
2025-08-08 22:37:02 +00:00
Pulse Monitor
efefe4e4e5 docs: generalize documentation guidelines and restore useful encryption details 2025-08-06 21:47:27 +00:00
Pulse Monitor
10843b6735 docs: simplify security documentation to essentials only 2025-08-06 21:44:47 +00:00
Pulse Monitor
a32afed1d5 docs: remove unnecessary checklist and placeholder email from security docs 2025-08-06 21:44:19 +00:00
Pulse Monitor
294f132181 docs: comprehensive security documentation for v4 security features 2025-08-06 21:42:49 +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
7bfa6d3e4a Fix documentation to reflect encrypted UI-only configuration
- Completely rewrite README.md configuration section
  - Remove all references to manual pulse.yml editing
  - Emphasize UI-only configuration like Radarr/Sonarr
  - Simplify Docker examples
- Rewrite SECURITY.md from scratch
  - Explain automatic encryption system
  - Document how AES-256-GCM encryption works
  - Add security architecture diagram
  - Remove outdated manual config references
- Move CONFIGURATION.md to dev-docs (outdated)
- Documentation now correctly reflects that:
  - All configuration is done through the web UI
  - Credentials are automatically encrypted
  - No manual file editing is needed or supported
2025-08-03 15:51:45 +00:00
Pulse Monitor
326355b2cf Major documentation overhaul for Go rewrite
- Complete rewrite of README.md in the style of original Pulse
- Add comprehensive user-facing documentation:
  - FAQ.md with common questions and troubleshooting
  - PBS-AGENT.md for push mode monitoring
  - SCREENSHOTS.md placeholder for visual guide
- Update SECURITY.md intro to match new style
- Move internal dev docs to separate dev-docs folder
- Documentation now properly reflects Go/SolidJS architecture
2025-08-03 15:46:07 +00:00
Pulse Monitor
17329fd027 Critical security fix: remove exposed Gmail app password
- Replace real Gmail app password with placeholder in all test files
- Fix remaining production node name references in documentation
- Ensure no sensitive credentials remain in codebase

IMPORTANT: The exposed Gmail app password should be revoked immediately
2025-08-03 15:00:35 +00:00
Pulse Monitor
76eba06031 Remove sensitive and personal information from codebase
- Replace personal email with generic test@example.com
- Replace production node names (delly, pimox) with generic examples
- Replace specific security tokens with placeholder values
- Update IP addresses to use localhost or generic examples
- Sanitize all testing files and documentation
2025-08-03 14:50:23 +00:00
Pulse Monitor
0824e22338 Fix all TypeScript 'any' types and ensure strict typing
- Replace all 'any' types with proper TypeScript types throughout the codebase
- Fix Record<string, any> to use specific types (AlertThresholds, unknown)
- Update logger methods to use 'unknown' instead of 'any' for parameters
- Fix type assertions to use proper types instead of 'as any'
- Update generic type defaults from 'any' to 'unknown'
- Fix WebSocket message types to use 'unknown' for optional data
- Move global Toast declaration to top level to fix TypeScript errors
- Comment out legacy PBS backup code that referenced non-existent fields
- Ensure all code follows TypeScript standards as documented in CLAUDE.md

All TypeScript compilation errors have been resolved and the codebase now
adheres to strict typing standards with no 'any' types remaining.
2025-07-30 14:08:06 +00:00