Add SNMP profile mapping and fix asset cleanup

This commit is contained in:
Keith Smith
2026-05-26 16:34:10 -06:00
parent fe7157fdad
commit e59733d331
15 changed files with 676 additions and 35 deletions
+10 -7
View File
@@ -1,6 +1,6 @@
# Agent Handoff Notes
Last updated: 2026-05-24
Last updated: 2026-05-26
## Current Identity
@@ -38,16 +38,19 @@ OrbitalWard is a secure monitoring appliance focused on the v0.1 vertical slice:
- Guided SNMP device discovery with friendly device, interface, and monitorable item results.
- Asset setup supports creating, selecting, and deleting assets, plus attaching ping, TCP, website, and SNMP monitors without creating alert rules automatically.
- Worker collects configured SNMP uptime, interface status, traffic counter, error, and discard monitors.
- SNMP profile mapping exposes friendly capability flags plus CPU, memory, storage, and standard sensor monitorable items when supported.
- Worker collects configured SNMP CPU load, memory usage, storage usage, and standard sensor value/status monitors.
## Verification State
Recent Docker checks:
- `docker compose -f docker-compose.dev.yml exec -T backend python -m pytest tests`
- `docker compose -f docker-compose.dev.yml exec -T frontend npm run typecheck`
- `docker compose -f docker-compose.dev.yml exec -T frontend npm run build`
- `docker compose -f docker-compose.dev.yml exec -T worker python -m unittest discover -s tests`
- `docker compose -f docker-compose.dev.yml exec -T worker python -m compileall app`
- `docker compose -f docker-compose.dev.yml run --rm backend sh -c "pip install -e '.[test]' && python -m pytest tests/test_discovery.py tests/test_monitors.py"`
- `docker compose -f docker-compose.dev.yml run --rm frontend npm run typecheck`
- `docker compose -f docker-compose.dev.yml run --rm frontend npm run build`
- `docker compose -f docker-compose.dev.yml run --rm worker python -m unittest discover -s tests`
- `docker compose -f docker-compose.dev.yml run --rm worker python -m compileall app`
- `docker compose -f docker-compose.dev.yml run --rm backend sh -c "pip install -e '.[test]' >/dev/null && python -m compileall app"`
Earlier rename and monitor work also verified:
@@ -84,7 +87,7 @@ Issue source docs:
- `docs/progress.md`
- `docs/roadmap.md`
Current completed items include TLS expiry monitor support, HTTP/website checks, ping and TCP port checks, basic alert evaluation, alert rule editing UI, incident actions, webhook notification channels, SNMPv2c credential profiles, the SNMP device discovery API, guided SNMP discovery UI, asset-based monitor setup, and initial SNMP collection for uptime plus interface counters/status. The next recommended implementation work is SNMP profile mapping and expanded CPU, memory, storage, and sensor collection.
Current completed items include TLS expiry monitor support, HTTP/website checks, ping and TCP port checks, basic alert evaluation, alert rule editing UI, incident actions, webhook notification channels, SNMPv2c credential profiles, the SNMP device discovery API, guided SNMP discovery UI, asset-based monitor setup, initial SNMP collection for uptime plus interface counters/status, and SNMP profile mapping for standard CPU, memory, storage, and sensor health items. The next recommended implementation work is notification routing/policies or email/SMTP notifications.
## Guardrails
+6
View File
@@ -53,6 +53,12 @@
39. Create monitors from SNMP discovery selections
40. Add SNMP interface status and traffic collection
41. Add SNMP profile mapping for friendly metric names
42. Add vendor-private SNMP profile mappings from real device examples
43. Fix asset deletion cleanup for attached monitors
44. Show and graph SNMP interface throughput
45. Build asset detail UI for monitors, metrics, and context
46. Refine metric-only monitor status semantics
47. Rename product from OrbitalWard to OrbitWard
## Current Implementation Snapshot
+20 -12
View File
@@ -1,6 +1,6 @@
# OrbitalWard Progress
Last updated: 2026-05-24
Last updated: 2026-05-26
## Current State
@@ -99,6 +99,15 @@ Implemented initial SNMP collection slice:
- SNMP interface traffic checks collect inbound/outbound octet counters and store metrics.
- SNMP interface error checks collect inbound/outbound errors and discards and store metrics.
Implemented SNMP profile mapping slice:
- SNMP discovery selects an internal friendly profile such as Generic SNMP, Net-SNMP Host Resources, Cisco IOS SNMP, or MikroTik RouterOS SNMP from system identity details.
- Discovery reports capability flags for system identity, interfaces, CPU, memory, storage, and sensors.
- Standard HOST-RESOURCES CPU load, memory usage, and disk/storage usage are exposed as friendly monitorable items when supported.
- Standard ENTITY-SENSOR environmental readings are exposed as friendly monitorable items when supported.
- Worker collection supports CPU load, memory usage, storage usage, and sensor value/status monitors created from discovery.
- Raw SNMP implementation details remain internal to profiles and are not returned in the normal discovery UI/API response.
## Known Gaps
- General credential vault workflows beyond SNMP profiles are not complete.
@@ -106,7 +115,7 @@ Implemented initial SNMP collection slice:
- User management UI is not implemented.
- Role management is basic and needs full admin flows.
- Richer alert condition editing is not implemented yet.
- SNMP collection is implemented for uptime, interface status, traffic counters, errors, and discards, but CPU, memory, storage, sensor, and vendor-specific profile mappings are not implemented yet.
- SNMP collection now covers uptime, interface status, traffic counters, errors, discards, CPU load, memory usage, storage usage, and standard sensor value/status data. Vendor-private profile mappings beyond common standard MIBs are not implemented yet.
- Notification routing/policies are not implemented; all enabled webhook channels receive incident notifications.
- Email/SMTP notifications are not implemented yet.
- Graphing exists only as placeholders; metric visualization is not implemented.
@@ -116,16 +125,15 @@ Implemented initial SNMP collection slice:
## Recommended Next Work
1. Add SNMP profile mapping for friendly metric names across common vendors.
2. Add SNMP CPU, memory, storage, and sensor collection where supported by profiles.
3. Add notification policy/routing controls.
4. Add email/SMTP notification channel.
5. Add audit event writes for auth, monitor, credential, notification, and incident actions.
6. Build general credential vault workflows with masked secret handling.
7. Add user administration UI.
8. Add graphs for website response time and monitor status history.
9. Add richer alert condition editing.
10. Add frontend coverage for monitor, alert, and notification workflows.
1. Add notification policy/routing controls.
2. Add email/SMTP notification channel.
3. Add audit event writes for auth, monitor, credential, notification, and incident actions.
4. Build general credential vault workflows with masked secret handling.
5. Add user administration UI.
6. Add graphs for website response time and monitor status history.
7. Add richer alert condition editing.
8. Add vendor-private SNMP profile mappings for specific common devices after real device examples are available.
9. Add frontend coverage for monitor, alert, and notification workflows.
## Operational Notes