This a feature release of the app potato-mesh v0.2.0. It contains new features, improved design, some tweaks for small screens, and security hardening.
- Web app with chat window and map view showing nodes and messages.
- API to POST (authenticated) and to GET nodes and messages.
- Supplemental Python ingestor to feed the POST APIs of the Web app with data remotely.
- Shows new node notifications (first seen) in chat.
- Allows searching and filtering for nodes in map and table view.
What's Changed
- feat: add dark mode toggle by @l5yth in #54
- feat: parameterize community info by @l5yth in #55
- Add message ingestion API and stricter auth by @l5yth in #56
- Use packet id as message primary key by @l5yth in #58
- Convert boolean flags for SQLite binding by @l5yth in #59
- Send mesh data to Potatomesh API by @l5yth in #60
- Initialize database on startup by @l5yth in #61
- Log node object on snapshot update failure by @l5yth in #62
- Fix nested dataclass serialization for node snapshots by @l5yth in #63
- Log debug details for messages without sender by @l5yth in #64
- style: condense node table by @l5yth in #65
- Normalize message sender IDs using node numbers by @l5yth in #67
- Improve mobile layout by @l5yth in #68
- Align refresh controls with status text by @l5yth in #72
- Add RSpec smoke tests for app boot and database init by @l5yth in #73
- create ruby workflow by @l5yth in #74
- docs: update for 0.2.0 release by @l5yth in #75
- Add integration specs for node and message APIs by @l5yth in #76
- Add Apache license headers to source files by @l5yth in #77
- Add Codecov upload step to Ruby workflow by @l5yth in #78
- fix readme badges by @l5yth in #79
- update codecov job by @l5yth in #80
- Configure SimpleCov reporting for Codecov by @l5yth in #81
- Add JUnit test reporting to Ruby CI by @l5yth in #82
- Add coverage for API authentication and payload edge cases by @l5yth in #83
- Fix ingestion mapping for message sender IDs by @l5yth in #84
- Handle concurrent node snapshot updates by @l5yth in #85
- Add coverage for debug logging on messages without sender by @l5yth in #86
- Add unit tests for mesh ingestor script by @l5yth in #89
- create python yml ga by @l5yth in #90
- Skip null identifiers when selecting packet fields by @l5yth in #88
- Add Codecov reporting to Python CI by @l5yth in #91
- fix py code cov by @l5yth in #92
- Add tests covering mesh helper edge cases by @l5yth in #93
- Document Python and Ruby source modules by @l5yth in #94
- Add penetration tests for authentication and SQL injection by @l5yth in #95
- Configure Sinatra logging level from DEBUG flag by @l5yth in #97
- Handle SQLite busy errors when upserting nodes by @l5yth in #100
- chore: clean up repository by @l5yth in #96
- Ensure node numeric aliases are derived from canonical IDs by @l5yth in #101
- Add long name tooltip to short name badge by @l5yth in #102
- Add site info overlay by @l5yth in #103
- Adjust Leaflet popup styling for dark mode by @l5yth in #104
- Add auto-refresh toggle to UI by @l5yth in #105
- Prioritize node posts in queued API updates by @l5yth in #107
- Handle message updates based on sender info by @l5yth in #108
- Hide location columns on medium screens by @l5yth in #109
- Adjust python ingestor interval to 60 seconds by @l5yth in #112
- Add short name overlay for node details by @l5yth in #111
- Add client-side sorting to node table by @l5yth in #114
- Harden API auth and request limits by @l5yth in #116
- Add PotatoMesh logo to header and favicon by @l5yth in #117
- update readme for 0.2 by @l5yth in #118
Full Changelog: v0.1.0...v0.2.0