Commit graph

181 commits

Author SHA1 Message Date
8824eb1ddb
Remove hostname sending 2026-02-10 09:49:15 -06:00
58d53cab1e
Remove TUI feature and all related code
Drop ratatui, crossterm, hostname dependencies and the tui feature flag.
Delete src/tui/ directory, remove event bus plumbing from websocket client,
and simplify connect/init_logger to single implementations.

-1,979 lines of conditional compilation removed.
2026-02-10 09:31:39 -06:00
dd29a783db
Update all dependencies to latest compatible versions 2026-02-10 08:58:22 -06:00
ded4aba536
Add stickydisk caching for cargo git deps and Rust toolchain
- Cache ~/.cargo/git for git-sourced dependencies
- Cache ~/.rustup to avoid re-downloading toolchain each run
- Move format check before cargo check (fail fast on formatting)
2026-02-10 08:55:47 -06:00
da7d7fcba0
Update anyhow 1.0.101, clap 4.5.57, crossterm 0.29.0 2026-02-10 08:55:47 -06:00
Graham McIntire
ea372a8aa1
Merge pull request #11 from towerops-app/dependabot/cargo/regex-1.12.3
Bump regex from 1.12.2 to 1.12.3
2026-02-10 08:55:43 -06:00
dependabot[bot]
22bbf94d25
Bump regex from 1.12.2 to 1.12.3
Bumps [regex](https://github.com/rust-lang/regex) from 1.12.2 to 1.12.3.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.12.2...1.12.3)

---
updated-dependencies:
- dependency-name: regex
  dependency-version: 1.12.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 14:49:39 +00:00
dba1c6a79c
Fix arm64 build: use c_char instead of i8 in FFI declarations
On ARM64 Linux, c_char is u8 (unsigned), not i8 (signed).
Using the platform-correct std::ffi::c_char type fixes the
cross-compilation error.
2026-02-10 08:40:15 -06:00
7882e6b726
Fix test compilation: make device_id field public 2026-02-10 08:33:18 -06:00
2850f4f68f
Use iterator instead of index loop in walk result parsing 2026-02-10 08:31:07 -06:00
36f89ddef3
Remove dead code: unused functions, constants, methods, and enum variant 2026-02-10 08:30:11 -06:00
23ccd24210
Fix SNMP client tests for Linux CI environment
- Map "Failed to parse OID" C library errors to InvalidOid variant
- Walk to unreachable host may return empty results instead of error
  on some Linux configurations
2026-02-10 08:26:19 -06:00
62f0e1572a
Add libsnmp-dev to CI test dependencies
The test job needs net-snmp headers to compile the native snmp_helper.c
2026-02-10 08:21:38 -06:00
1192774e30
Use build timestamp version in TUI display
The TUI agent state was using CARGO_PKG_VERSION (0.1.0) instead of
version::current_version() which returns the RFC 3339 build timestamp.
2026-02-10 07:51:52 -06:00
65fbf3bb31
use datestamp instead of creating a version 2026-02-09 13:49:19 -06:00
bd08bb3aad
Remove TOWEROPS_API_URL from docker-compose example 2026-02-09 13:36:29 -06:00
45cea92f8d
Use full path to towerops-agent binary in Procfile 2026-02-09 13:32:40 -06:00
3fa0943ed0
Disable TUI in Dokku (Procfile only, docker-compose unaffected) 2026-02-09 13:31:17 -06:00
2d94f82832
Change Dockerfile to use CMD instead of ENTRYPOINT for Dokku compatibility 2026-02-09 13:29:55 -06:00
1f73dc2d46
Add Procfile with exec and DOKKU_SCALE for worker process 2026-02-09 13:29:14 -06:00
2a1bd414be
Remove Procfile - use Dockerfile ENTRYPOINT directly 2026-02-09 13:27:40 -06:00
37c4fd1d78
Fix Procfile to work with Dockerfile ENTRYPOINT 2026-02-09 13:27:08 -06:00
8ff34d08a6
Remove app.json - use Procfile only for worker process 2026-02-09 13:25:22 -06:00
3bf7d9484a
More dokku testing 2026-02-09 13:25:00 -06:00
47b6c3611b
Morke dokku testing 2026-02-09 13:24:23 -06:00
bf166a123e
add Procfile for dokku staging 2026-02-09 13:21:50 -06:00
71489a709a
copy new native code in to docker build 2026-02-09 12:46:34 -06:00
792825f682
major overhaul to use more C for snmp, may not be stable 2026-02-09 12:31:41 -06:00
cd45e9ff51
feat: add agent-side ICMP ping health monitoring
Implements health monitoring in the agent using ICMP ping, allowing
devices assigned to local (non-cloud) agents to be monitored.

Changes:
- Add surge-ping library for async ICMP ping operations
- Create ping.rs module with ping_device() function (5s timeout)
- Rename JobType::MONITOR to JobType::PING in protobuf
- Add monitoring_check channels for result communication
- Implement execute_ping_job() to handle PING jobs
- Update TUI to display ping result events

The agent now receives PING jobs from Phoenix, executes ICMP pings,
and sends MonitoringCheck results back for storage in the database.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-08 13:44:09 -06:00
b29a38edb5
fix security vuln in lru package 2026-02-07 11:55:54 -06:00
cee0788300
format 2026-02-07 11:43:50 -06:00
f5b7e589f2
fix: implement agent IP detection and remove dead poller code
- Implement get_local_ip() using UDP socket trick to resolve local
  interface address without sending traffic, so heartbeat reports
  actual agent IP instead of "unknown"
- Remove dead poller/scheduler/executor and api_client modules that
  referenced non-existent modules and were never compiled
2026-02-07 09:17:47 -06:00
2111453653
Fix TUI 2026-02-06 13:18:23 -06:00
6275562f35
Resolve issues from TUI implementation 2026-02-06 13:08:06 -06:00
a2cef243ee
Handle discovered ip addresses 2026-02-06 12:20:53 -06:00
8c969401fb
fix live and scheduled polling 2026-02-05 12:45:13 -06:00
d44682ce9c
fix: increase SNMP timeout to 120s for SNMPv3 discovery
Discovery with SNMPv3 was completing in 52 seconds, dangerously close
to the 60s timeout. Increasing to 120s provides comfortable headroom
for complete MikroTik OID tree traversal with encryption overhead.
2026-02-05 09:02:05 -06:00
357d1711be
fix: increase SNMP timeout to 60s for SNMPv3 operations
SNMPv3 has significant encryption and authentication overhead compared to
v2c. MikroTik enterprise tree walks (1.3.6.1.4.1.14988) can take 16+
seconds with SNMPv3, causing timeouts with the previous 30s limit.

Increased timeout from 30s to 60s in both client.rs and device_poller.rs
to accommodate SNMPv3's additional latency.
2026-02-05 08:45:20 -06:00
c62330bf40
handle other encryption methods 2026-02-04 17:46:09 -06:00
55d55a2c86
fix tests 2026-02-04 17:29:19 -06:00
f454a1f7ea
experimental tcp snmp handling 2026-02-04 17:25:39 -06:00
df334e4db8
Security hardening and performance improvements 2026-02-04 16:50:36 -06:00
91913bd6e4
Implement snmp v3 support 2026-02-04 12:02:10 -06:00
Graham McIntire
86b2eb70be
Merge pull request #10 from towerops-app/deps-update
bump rust version and crates
2026-02-04 08:07:55 -06:00
5811bed1b1
Add needed packages to Dockerfile 2026-02-04 08:02:59 -06:00
6f1261b0ce
bump rust version and crates 2026-02-04 07:54:12 -06:00
Graham McIntire
e688260ab5
Merge pull request #9 from towerops-app/dependabot/cargo/bytes-1.11.1
Bump bytes from 1.11.0 to 1.11.1
2026-02-04 07:47:48 -06:00
dependabot[bot]
cf84c2db16
Bump bytes from 1.11.0 to 1.11.1
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.11.0...v1.11.1)

---
updated-dependencies:
- dependency-name: bytes
  dependency-version: 1.11.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-04 13:45:53 +00:00
1be76b0049
show partially redacted snmp community 2026-02-03 16:50:11 -06:00
0f19518065
snmpv3 first stab 2026-02-03 16:46:19 -06:00