Claude Agent
84629dfbcf
feat: implement Phase 6 — Software Deployment
...
Backend:
- SoftwarePackage model (Name, Version, OsType, PackageManager, PackageName, InstallerUrl, Checksum, SilentArgs)
- RmmDbContext: SoftwarePackages DbSet + unique index on (Name, Version, OsType)
- SoftwarePackagesController: full CRUD with OsType filter
- DeployController: POST /api/v1/deploy creates InstallSoftware/UninstallSoftware TaskItem
- EF Migration: AddSoftwarePackages (20260319130448)
Go Agent:
- internal/deployer/deployer.go: Install() and Uninstall() with:
- Chocolatey (Windows), apt/dnf (Linux), auto-detect
- Direct installer fallback: HTTP download + SHA256 verify + silent install
- Supports .msi, .exe (Windows) and .deb, .rpm (Linux)
- main.go: COMMAND_TYPE_INSTALL_SOFTWARE and COMMAND_TYPE_UNINSTALL_SOFTWARE routed to deployer
Frontend:
- SoftwarePage: Katalog tab (CRUD, OS filter, smart package manager select) + Deploy tab
- api/types.ts: SoftwarePackage, PackageManager, DeployRequest/Response types
- api/client.ts: softwarePackagesApi and deployApi
- App.tsx: Software nav item with Package icon
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-19 14:06:40 +01:00
Claude Agent
eb114f68e2
feat: implement Phase 5 — Alerting & Monitoring
...
Backend:
- AlertEvaluationService: evaluates metrics against AlertRules after each heartbeat
- Supports cpu_usage_percent and memory_usage_percent metric paths
- Operators: >, >=, <, <=, ==
- 15-minute dedup window to prevent alert spam
- AlertRulesController: full CRUD for alert rules (GET/POST/PUT/DELETE)
- AlertsController: list with acknowledged filter + POST acknowledge endpoint
- IRmmHubClient: added AlertTriggered push method
- Program.cs: AlertEvaluationService registered as Scoped
Frontend:
- AlertsPage: two-tab layout (active alerts + rules)
- Alerts tab: severity badges, acknowledge button, all/unack/ack filter
- Rules tab: condition display, enabled toggle, delete with confirm
- Create rule modal with MetricPath/Operator/Threshold/Severity selects
- api/types.ts: AlertRule, AlertItem, CreateAlertRuleRequest types
- api/client.ts: alertRulesApi and alertsApi
- useAgentSignalR: handles AlertTriggered → invalidates alerts query
- App.tsx: Alerts nav item with Bell icon
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-19 14:00:19 +01:00
Claude Agent
d17df20f5e
feat: implement Phase 4 — SignalR real-time updates
...
Backend:
- RmmHub with typed IRmmHubClient interface (AgentMetricsUpdated, AgentStatusChanged, CommandResultUpdated)
- JoinAgentGroup / LeaveAgentGroup for per-agent subscriptions
- AgentGrpcService now pushes to SignalR after every Heartbeat and CommandResult
- Program.cs maps /hubs/rmm
Frontend:
- useSignalR hook with exponential backoff reconnect (0s/2s/10s/30s)
- useGlobalSignalR: invalidates agents query on AgentStatusChanged
- useAgentSignalR: joins agent group, invalidates metrics/tasks on updates
- DashboardPage: live agent status updates via SignalR
- AgentDetailPage: live metrics/command results + connection status indicator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-19 13:53:40 +01:00
Claude Agent
0714961dd6
feat: add docker-compose for PostgreSQL and initial EF Core migration
2026-03-19 11:41:43 +01:00
Claude Agent
5c03c18ac7
feat: implement gRPC AgentService, Program.cs with Kestrel HTTP/2 config
2026-03-19 11:35:04 +01:00
Claude Agent
fe32c9cd88
feat: add domain models and EF Core DbContext with jsonb support
2026-03-19 11:32:04 +01:00
Claude Agent
863612e7cb
feat: define gRPC proto for agent communication
2026-03-19 11:31:33 +01:00
Claude Agent
b2b07a2808
fix: upgrade to .NET 10 and add required NuGet packages
2026-03-19 11:19:00 +01:00
Claude Agent
5b6f9ebbfd
feat: initialize .NET 8 solution with project structure
2026-03-19 10:27:37 +01:00