2e6d1a67dd
Implement GuruRMM Phase 1: Real-time tunnel infrastructure
...
Complete bidirectional tunnel communication between server and agents,
enabling persistent secure channels for future command execution and
file operations. Agents transition from heartbeat mode to tunnel mode
on-demand while maintaining WebSocket connection.
Server Implementation:
- Database layer (db/tunnel.rs): Session CRUD, ownership validation,
cleanup on disconnect (prevents orphaned sessions)
- API endpoints (api/tunnel.rs): POST /open, POST /close, GET /status
with JWT auth, UUID validation, proper HTTP status codes
- Protocol extension (ws/mod.rs): TunnelOpen/Close/Data messages,
agent response handlers (TunnelReady/Data/Error)
- Migration (006_tunnel_sessions.sql): tech_sessions table with
partial unique constraint, foreign keys with CASCADE, audit table
Agent Implementation:
- State machine (tunnel/mod.rs): AgentMode (Heartbeat ↔ Tunnel),
channel multiplexing, concurrent session prevention
- WebSocket handlers (transport/websocket.rs): Open/close tunnel,
mode switching without dropping connection, cleanup on disconnect
- Protocol extension (transport/mod.rs): TunnelReady/Data/Error
messages matching server definitions
- Unit tests: Lifecycle and channel management coverage
Key Features:
- Security: JWT auth, session ownership verification, SQL injection
prevention, constraint-based duplicate session blocking
- Cleanup: Automatic session closure on agent disconnect (both sides),
channel cleanup, graceful state transitions
- Error handling: Proper HTTP status codes (400/403/404/409/500),
comprehensive Result types, detailed logging
- Extensibility: Channel types ready (Terminal/File/Registry/Service),
TunnelDataPayload enum for Phase 2+ expansion
Phase 1 Scope (Implemented):
- Tunnel session lifecycle management
- Mode switching (heartbeat ↔ tunnel)
- Protocol message routing
- Database session tracking
Phase 2 Next Steps:
- Terminal command execution (tokio::process::Command)
- Client WebSocket connections for output streaming
- Command audit logging
- File transfer operations
Verification:
- Server compiles successfully (0 errors)
- Agent unit tests pass (tunnel lifecycle, channel management)
- Code review approved (protocol alignment verified)
- Database constraints enforce referential integrity
- Cleanup tested (session closure on disconnect)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-04-14 07:10:09 -07:00
9940faf34a
Add GuruRMM real-time tunnel architecture and planning
...
Comprehensive design for transforming agents from 30s heartbeat mode to
persistent tunnel mode, enabling Claude Code to execute commands on remote
machines through secure multiplexed WebSocket channels.
Additions:
- Complete implementation plan with 5-phase roadmap (5-7 weeks to GA)
- Detailed architecture document covering protocol, security, and MCP integration
- Database migration for tech_sessions and tunnel_audit tables
Key architectural decisions:
- Hybrid lifecycle: WebSocket persistent, tunnel is operational state
- Channel multiplexing over single WebSocket (terminal, file ops, etc.)
- Three-layer security: JWT auth, session authorization, command validation
- Custom MCP server for Claude Code integration
Next: Phase 1 implementation (tunnel open/close endpoints, agent mode state machine)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-04-14 06:32:16 -07:00
bff7d9dbbf
sync: Auto-sync from DESKTOP-0O8A1RL at 2026-04-02 19:20:43
...
Synced files:
- Session logs updated
- Latest context and credentials
- Command/directive updates
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-04-02 19:20:43
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-04-02 19:20:43 -07:00
8b6f0bcc96
sync: Multi-project updates - SolverBot, GuruRMM, Dataforth
...
SolverBot:
- Inject active project path into agent system prompts so agents
know which directory to scope file operations to
GuruRMM:
- Bump agent version to 0.6.0
- Add serde aliases for PowerShell/ClaudeTask command types
- Add typed CommandType enum on server for proper serialization
- Support claude_task command type in send_command API
Dataforth:
- Fix SCP space-escaping in Sync-FromNAS.ps1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 16:16:18 -07:00
b298a8aa17
fix: Implement Phase 2 major fixes
...
Database:
- Add missing indexes for api_key_hash, status, metrics queries
- New migration: 005_add_missing_indexes.sql
Server:
- Fix WebSocket Ping/Pong protocol (RFC 6455 compliance)
- Use separate channel for Pong responses
Agent:
- Replace format!() path construction with PathBuf::join()
- Replace todo!() macros with proper errors for macOS support
Dashboard:
- Fix duplicate filter values in Agents page (__unassigned__ sentinel)
- Add onError handlers to all mutations in Agents, Clients, Sites pages
All changes reviewed and approved.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-20 21:23:36 -07:00
65086f4407
fix(security): Implement Phase 1 critical security fixes
...
CORS:
- Restrict CORS to DASHBOARD_URL environment variable
- Default to production dashboard domain
Authentication:
- Add AuthUser requirement to all agent management endpoints
- Add AuthUser requirement to all command endpoints
- Add AuthUser requirement to all metrics endpoints
- Add audit logging for command execution (user_id tracked)
Agent Security:
- Replace Unicode characters with ASCII markers [OK]/[ERROR]/[WARNING]
- Add certificate pinning for update downloads (allowlist domains)
- Fix insecure temp file creation (use /var/run/gururmm with 0700 perms)
- Fix rollback script backgrounding (use setsid instead of literal &)
Dashboard Security:
- Move token storage from localStorage to sessionStorage
- Add proper TypeScript types (remove 'any' from error handlers)
- Centralize token management functions
Legacy Agent:
- Add -AllowInsecureTLS parameter (opt-in required)
- Add Windows Event Log audit trail when insecure mode used
- Update documentation with security warnings
Closes: Phase 1 items in issue #1
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-20 21:16:24 -07:00
6c316aa701
Add VPN configuration tools and agent documentation
...
Created comprehensive VPN setup tooling for Peaceful Spirit L2TP/IPsec connection
and enhanced agent documentation framework.
VPN Configuration (PST-NW-VPN):
- Setup-PST-L2TP-VPN.ps1: Automated L2TP/IPsec setup with split-tunnel and DNS
- Connect-PST-VPN.ps1: Connection helper with PPP adapter detection, DNS (192.168.0.2), and route config (192.168.0.0/24)
- Connect-PST-VPN-Standalone.ps1: Self-contained connection script for remote deployment
- Fix-PST-VPN-Auth.ps1: Authentication troubleshooting for CHAP/MSChapv2
- Diagnose-VPN-Interface.ps1: Comprehensive VPN interface and routing diagnostic
- Quick-Test-VPN.ps1: Fast connectivity verification (DNS/router/routes)
- Add-PST-VPN-Route-Manual.ps1: Manual route configuration helper
- vpn-connect.bat, vpn-disconnect.bat: Simple batch file shortcuts
- OpenVPN config files (Windows-compatible, abandoned for L2TP)
Key VPN Implementation Details:
- L2TP creates PPP adapter with connection name as interface description
- UniFi auto-configures DNS (192.168.0.2) but requires manual route to 192.168.0.0/24
- Split-tunnel enabled (only remote traffic through VPN)
- All-user connection for pre-login auto-connect via scheduled task
- Authentication: CHAP + MSChapv2 for UniFi compatibility
Agent Documentation:
- AGENT_QUICK_REFERENCE.md: Quick reference for all specialized agents
- documentation-squire.md: Documentation and task management specialist agent
- Updated all agent markdown files with standardized formatting
Project Organization:
- Moved conversation logs to dedicated directories (guru-connect-conversation-logs, guru-rmm-conversation-logs)
- Cleaned up old session JSONL files from projects/msp-tools/
- Added guru-connect infrastructure (agent, dashboard, proto, scripts, .gitea workflows)
- Added guru-rmm server components and deployment configs
Technical Notes:
- VPN IP pool: 192.168.4.x (client gets 192.168.4.6)
- Remote network: 192.168.0.0/24 (router at 192.168.0.10)
- PSK: rrClvnmUeXEFo90Ol+z7tfsAZHeSK6w7
- Credentials: pst-admin / 24Hearts$
Files: 15 VPN scripts, 2 agent docs, conversation log reorganization,
guru-connect/guru-rmm infrastructure additions
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-18 11:51:47 -07:00