Jason Staack
23d6b38a4d
feat(12-01): add per-client wireless registration collector and signal parser
...
- RegistrationEntry struct for per-client wireless data (MAC, signal, CCQ, rates, distance)
- ParseSignalStrength handles all RouterOS format variations (-67, -67@5GHz, -67@HT40)
- CollectRegistrations with v6/v7 RouterOS version routing
- Unit tests for ParseSignalStrength covering 10 cases
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-19 05:36:08 -05:00
Jason Staack
e19745c1ba
fix(ci): resolve Go lint and test failures in poller
...
- Add .golangci.yml to configure golangci-lint (disables errcheck which
fires excessively on idiomatic defer Close() patterns; suppresses SA1019
and ST1000 staticcheck rules)
- Fix testutil devicesSchema missing columns: certificate_authorities table,
encrypted_credentials_transit, tls_mode, ssh_port, ssh_host_key_fingerprint
— all required by FetchDevices/GetDevice LEFT JOIN queries
- Remove dead collectHealthError function from device/health.go (unused)
- Fix S1009 staticcheck: remove redundant nil check before len() in vault/cache.go
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-14 22:22:53 -05:00
Jason Staack
f1abb75cab
feat(02-01): add SSH executor with TOFU host key verification and config normalizer
...
- SSH RunCommand with typed error classification (auth, hostkey, timeout, connection refused, truncated)
- TOFU host key callback: accept-on-first-connect, verify-on-subsequent, reject-on-mismatch
- NormalizeConfig strips timestamps, normalizes line endings, trims whitespace, collapses blanks
- HashConfig returns 64-char lowercase hex SHA256 of normalized config
- 22 unit tests covering all error kinds, TOFU flows, normalization edge cases, idempotency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 20:46:04 -05:00