Commit Graph

81 Commits

Author SHA1 Message Date
Daniel Pupius
4817d31d39 More cleanup to the node details page 2025-04-25 14:42:30 -07:00
Daniel Pupius
acaeeaf495 Fix map view on node details 2025-04-25 10:27:44 -07:00
Daniel Pupius
5b5dad7a68 Fixes for gateway display 2025-04-25 09:54:36 -07:00
Daniel Pupius
4a41b0062d Cleanup error handling 2025-04-25 09:34:51 -07:00
Daniel Pupius
86e6f45d5e Fixes for node links and early stream connection 2025-04-25 08:46:30 -07:00
Daniel Pupius
0184cba1ef Updates to node details 2025-04-24 20:10:56 -07:00
Daniel Pupius
33fcc87f41 Add channel page 2025-04-24 18:01:29 -07:00
Daniel Pupius
69b0ea6615 Make sure to count packets once per node/channel, even if received by multiple gateways 2025-04-24 12:58:20 -07:00
Daniel Pupius
28cb7072f7 Fix double loading of data 2025-04-24 10:51:50 -07:00
Daniel Pupius
5ba6899c94 Consolidate MeshCard 2025-04-24 10:35:59 -07:00
Daniel Pupius
d04f52d379 Add a dashboard showing observed nodes and gateways 2025-04-24 09:59:06 -07:00
Daniel Pupius
07299d892c More stream tweaks 2025-04-23 15:19:32 -07:00
Daniel Pupius
489f995433 Track rx time 2025-04-23 13:59:54 -07:00
Daniel Pupius
6c891198b5 Show more data 2025-04-23 13:17:19 -07:00
Daniel Pupius
4f33866ce3 Update visualization of Telemetry Packets 2025-04-23 13:07:26 -07:00
Daniel Pupius
8ca47fba44 Show Node Info in more compressed form 2025-04-23 10:57:28 -07:00
Daniel Pupius
0361594291 More layout tweaks 2025-04-23 10:46:04 -07:00
Daniel Pupius
249cecfda2 Card rendering and maps 2025-04-23 10:38:58 -07:00
Daniel Pupius
77ea38ae19 Demo page for working on components 2025-04-23 09:59:30 -07:00
Daniel Pupius
7c46944fb6 Shell styling 2025-04-23 09:38:07 -07:00
Daniel Pupius
05a9f2e461 More UI tweaks 2025-04-22 22:08:49 -07:00
Daniel Pupius
d522985d1e Add PacketCard 2025-04-22 22:03:10 -07:00
Daniel Pupius
13187eb520 Packet formatting changes 2025-04-22 21:13:30 -07:00
Daniel Pupius
f4504c4cd5 Fix types and render packets in a custom style 2025-04-22 19:48:24 -07:00
Daniel Pupius
648a5c601e Further work on web design 2025-04-22 17:17:25 -07:00
Daniel Pupius
095ff560b0 Working on UI 2025-04-22 16:42:22 -07:00
Daniel Pupius
60c8878436 Typescript types for payloads 2025-04-22 14:56:41 -07:00
Daniel Pupius
71e914b05d Fixing wireformat for SSE 2025-04-22 13:37:07 -07:00
Daniel Pupius
6844d575c4 Initial skeleton for web application 2025-04-22 13:26:35 -07:00
Daniel Pupius
c6de28aacb Create web directory with test fixtures
- Added new web/ directory for frontend development
- Created fixtures/ subdirectory with JSON test data
- Added samples for all major packet types (text, position, nodeinfo, etc.)
- Added README files with documentation
- Added placeholder package.json

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-22 12:43:30 -07:00
Daniel Pupius
2d61d369b0 Update MQTT packet handling to use protobuf structures directly
- Refactored decoder to use protobuf-defined Packet, TopicInfo, and Data structures
- Updated MQTT client and broker to work with protobuf structures directly
- Improved logging to properly serialize protobuf messages for structured output
- Optimized .logista.yaml template for cleaner, more compact log display

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-22 10:30:39 -07:00
Daniel Pupius
0784ccb958 Simplify packet construction 2025-04-21 22:34:49 -07:00
Daniel Pupius
f580249162 Another checkpoint moving to proto defined packets 2025-04-21 18:27:55 -07:00
Daniel Pupius
86380cccf9 Refactor protos 2025-04-21 15:40:10 -07:00
Daniel Pupius
41ee61b59a Updated logging configuration for dev and json for prod 2025-04-21 14:16:35 -07:00
Daniel Pupius
35cefa9981 Update .logista.yaml to match the actual log structure
- Fix timestamp field from timestamp to ts
- Add proper packet structure parsing based on sample logs
- Add special visualization for Node Info packets
- Add special visualization for Telemetry packets with DeviceMetrics
- Format uptime in human-readable hours
- Add fallback for unknown packet types with pretty printing
- Handle both packet and non-packet log entries
2025-04-21 12:43:23 -07:00
Daniel Pupius
1c96f0b9f4 Add Logista for JSON log processing
- Add .logista.yaml configuration for prettier log output
- Add github.com/dpup/logista as a go tool
- Update Makefile run target to pipe output through logista
- Configure the format to show timestamp, level, and message with colors
- Add special formatting for different message types
- Display telemetry and position data in readable format
- Add table display for remaining structured fields
2025-04-21 11:56:31 -07:00
Daniel Pupius
0f151c31b9 Improve structured logging for better log aggregation
- Add message type prefix in brief mode for quick identification
- Include GatewayID in brief mode summary
- Remove formatted output from structured fields
- Use proper structured fields for each message type
- Add common fields like hopLimit and ID for all messages
- Extract specific data for position, telemetry, and text messages
- Format structured data for better log aggregation compatibility
2025-04-21 11:52:40 -07:00
Daniel Pupius
56a14fff61 Simplify MessageLogger to use structured logging only
- Remove file-based logging completely
- Add brief mode for concise log output
- Add full mode with complete message details
- Use structured logging fields for all information
- Keep console output option for readability
- Add intelligent summary handling for different message types
2025-04-21 11:19:53 -07:00
Daniel Pupius
3fe611e094 Update tests to inject loggers
- Add logger injection in client_test.go
- Add logger injection in broker_test.go
- Add test logger with appropriate test namespace
- Fix all tests to work with updated constructor signatures
2025-04-21 11:13:08 -07:00
Daniel Pupius
c6d94b10d1 Inject loggers from main.go instead of creating them locally
- Update all components to accept a logger parameter
- Add default fallbacks when logger is not provided
- Ensure consistent logger naming with parent.Named() pattern
- Create a proper logger hierarchy originating from main.go
- Update MessageLogger to pass logger to BaseSubscriber
2025-04-21 11:09:27 -07:00
Daniel Pupius
b7cec0feff Update MessageStats to use structured logging
- Replace fmt.Println with structured logging
- Use structured fields for better filtering and analysis
- Group related data into logical clusters
- Improve readability of statistics in logs
- Keep consistent style with rest of the application
2025-04-21 11:05:01 -07:00
Daniel Pupius
9447f44139 Update logging to use prefab/logging package
- Replace standard log package with prefab/logging
- Add context-aware logging in HTTP handlers
- Add structured logging with fields and levels
- Improve logging hierarchy and namespaces
- Implement named loggers for components
2025-04-21 11:01:45 -07:00
Daniel Pupius
9c438713de Add graceful shutdown for SSE connections
Add atomic shutdown flag and shutdown channel to handle graceful
termination of Server-Sent Events connections. This ensures:

1. New connections are rejected with a proper status code during shutdown
2. Existing connections receive a notification before being closed
3. All subscriber channels are properly unsubscribed from the broker

This implementation safely handles multiple in-flight requests during
shutdown by using an atomic flag to track server state.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-21 10:38:59 -07:00
Daniel Pupius
9b73057103 Remove RawEnvelope, RawPacket, and RawData from DecodedPacket struct
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-21 10:30:15 -07:00
Daniel Pupius
52ed85ed23 Send complete packet object to SSE clients 2025-04-21 10:13:30 -07:00
Daniel Pupius
ed1e719bca Add SSE endpoint for streaming MQTT messages to web browsers 2025-04-21 10:01:05 -07:00
Daniel Pupius
758aaa0dc0 Add web server using prefab framework 2025-04-21 09:53:04 -07:00
Daniel Pupius
4f4f927d54 Enhance error display with raw data for packets with decode errors 2025-04-21 09:35:19 -07:00
Daniel Pupius
7c311b3386 Remove unnecessary Close() overrides from subscribers 2025-04-21 09:18:16 -07:00