Commit Graph

416 Commits

Author SHA1 Message Date
Louis King fb6913ac3d Merge branch 'feat/meshcore-packet-capture-receiver' of github.com:ipnet-mesh/meshcore-hub into feat/meshcore-packet-capture-receiver 2026-04-12 18:04:18 +01:00
Louis King bf6b86696c Migrate from Node.js meshcore-decoder CLI to native Python meshcoredecoder library
Replace subprocess-based packet decoding with native Python meshcoredecoder>=0.3.2.
The decoder is now always enabled (no toggle), removing ENABLED/COMMAND/TIMEOUT
config vars. Adds _enrich_payload_decoded() to compensate for payload classes that
lack to_dict() overrides in the library. Removes Node.js/npm from Dockerfile and
deletes the patches/ directory. Adds parenthesized exception rule to AGENTS.md.
2026-04-12 18:03:20 +01:00
JingleManSweep 397084eff5 Merge branch 'main' into feat/meshcore-packet-capture-receiver 2026-04-12 14:23:10 +01:00
Louis King 8b54228c94 Merge branch 'main' of github.com:ipnet-mesh/meshcore-hub into feat/meshcore-packet-capture-receiver 2026-04-12 14:22:45 +01:00
Louis King 58499c420b Replace native interface with external packet capture and rename receiver to observer
Remove the meshcore_interface component in favor of external
meshcore-packet-capture for data ingestion. Rename receiver_node_id
to observer_node_id across all models, schemas, handlers, and API
routes. Add Alembic migration for the column/table renames. Fix
frontend JS property name mismatch that prevented the Receiver column
from displaying observer data.
2026-04-12 14:07:14 +01:00
Louis King c7655b5242 Add external packet capture receiver to Docker Compose
Integrate the meshcore-packet-capture image as an alternative to the
native interface-receiver, reorganize compose profiles so the receiver
profile uses packet capture while native-receiver covers the built-in
and mock receivers, and switch the default collector ingest mode to
letsmesh_upload.
2026-04-11 18:37:32 +01:00
Louis King 9664d4ee76 Fix Starlette 1.0 incompatibility and bump to Python 3.14
Pin starlette<1.0.0 to avoid TemplateResponse breaking change, update
the TemplateResponse call to new-style request-first signature, and
bump Python version to 3.14 across Dockerfile, pyproject.toml, and
pre-commit hooks.
2026-04-11 18:33:26 +01:00
JingleManSweep 92ff1ab306 Merge pull request #146 from ipnet-mesh/chore/codecov-tests
Add Test upload
2026-03-18 12:05:17 +00:00
JingleManSweep 0e2a24caa6 Upgrade Codecov action and specify report type
Updated Codecov action to version 5 and added report type.
2026-03-18 12:03:05 +00:00
JingleManSweep ff36a991af Update ci.yml 2026-03-18 11:57:23 +00:00
JingleManSweep fa1a2ecc17 Add Codecov badge to README
Added Codecov badge to README for coverage tracking.
2026-03-18 11:55:06 +00:00
JingleManSweep 9099ffb0cb Merge pull request #145 from ipnet-mesh/fix/codecov-default
Add push trigger for CI on main branch
2026-03-18 11:42:37 +00:00
JingleManSweep f8219b4626 Add push trigger for CI on main branch 2026-03-18 11:39:42 +00:00
JingleManSweep 27b78d6904 Merge pull request #144 from ipnet-mesh/chore/add-codecov
Add CODECOV_TOKEN to CI workflow
2026-03-18 11:32:45 +00:00
JingleManSweep d4c3e127a2 Add CODECOV_TOKEN to CI workflow 2026-03-18 11:23:32 +00:00
JingleManSweep 92e9ccdbfa Merge pull request #143 from ipnet-mesh/feature/multibyte-support
feat: support multibyte path hashes for MeshCore firmware v1.14+
v0.8.2
2026-03-17 23:02:51 +00:00
Louis King 29b5820ed1 feat: support multibyte path hashes for MeshCore firmware v1.14+
Update path hash handling to accept variable-length hex-encoded hashes
(e.g. "4a" for single-byte, "b3fa" for multibyte) instead of requiring
exactly 2-character hashes. Bump meshcore dependency to >=2.3.0.

- Update normalizer to accept even-length hex strings >= 2 chars
- Update schemas and model docstrings for variable-length hashes
- Add tests for multibyte and mixed-length path hash round-trips
- Fix web test flakiness from local .env datetime locale leaking
2026-03-17 22:59:29 +00:00
JingleManSweep 889aa32e3a Merge pull request #142 from ipnet-mesh/fix/security-fixes
fix: harden security across auth, XSS, and proxy trust
v0.8.1
2026-03-09 22:57:33 +00:00
Louis King 3c3873951d chore: add agentmap and security fixes planning files 2026-03-09 22:54:53 +00:00
Louis King 4b58160f31 fix: harden security across auth, XSS, and proxy trust
- Use hmac.compare_digest for constant-time API key comparison in auth
  and metrics endpoints to prevent timing attacks
- Escape user-controlled data in admin JS templates (members, node-tags)
  to prevent XSS via innerHTML
- Escape </script> sequences in embedded JSON config to prevent XSS
  breakout from <script> blocks
- Add configurable WEB_TRUSTED_PROXY_HOSTS setting instead of trusting
  all proxy headers unconditionally
- Warn on startup when admin is enabled with default trust-all proxy
- Remove legacy HTML dashboard endpoint (unused, superseded by SPA)
- Add comprehensive auth and dashboard test coverage
2026-03-09 22:53:53 +00:00
JingleManSweep a32255e110 fix: support monochrome custom logos via logo-invert.svg filename convention (#141)
Custom logos were hardcoded as full-color, making white/monochrome logos
invisible in light mode. Adds logo-invert.svg as a higher-priority
candidate that enables the brightness filter in light mode.
v0.8.0
2026-03-09 17:30:40 +00:00
JingleManSweep 59a1898824 Merge pull request #139 from ipnet-mesh/renovate/docker-metadata-action-6.x
Update docker/metadata-action action to v6
2026-03-06 21:21:14 +00:00
renovate[bot] 9256f8375d Update docker/metadata-action action to v6 2026-03-06 19:03:36 +00:00
JingleManSweep e9b25c1ca7 Merge pull request #140 from ipnet-mesh/renovate/docker-build-push-action-7.x
Update docker/build-push-action action to v7
2026-03-06 19:03:03 +00:00
renovate[bot] 749bed6d5b Update docker/build-push-action action to v7 2026-03-06 18:04:06 +00:00
JingleManSweep 97539cb960 Merge pull request #128 from yellowcooln/main
LetsMesh Compatibility Mode: Decoder-Backed Messaging, Admin Proxy Auth, and Branding/Timezone Improvements
2026-03-06 18:03:32 +00:00
yellowcooln c418959e5d Use patch-package file for meshcore-decoder Docker compatibility patch 2026-03-06 12:35:47 -05:00
JingleManSweep 14fac89f49 Merge branch 'main' into main 2026-03-05 12:00:36 +00:00
JingleManSweep 8201be5a39 Merge pull request #137 from ipnet-mesh/renovate/docker-setup-buildx-action-4.x
Update docker/setup-buildx-action action to v4
2026-03-05 11:47:19 +00:00
renovate[bot] 17fa2f1005 Update docker/setup-buildx-action action to v4 2026-03-05 11:44:58 +00:00
JingleManSweep 535186efb1 Merge pull request #138 from ipnet-mesh/renovate/docker-setup-qemu-action-4.x
Update docker/setup-qemu-action action to v4
2026-03-05 11:44:36 +00:00
JingleManSweep fa1db5e709 Merge branch 'main' into renovate/docker-setup-qemu-action-4.x 2026-03-05 11:42:14 +00:00
JingleManSweep 840b8636a2 Merge pull request #136 from ipnet-mesh/renovate/docker-login-action-4.x
Update docker/login-action action to v4
2026-03-05 11:42:00 +00:00
renovate[bot] cb305083e7 Update docker/setup-qemu-action action to v4 2026-03-05 11:38:49 +00:00
renovate[bot] d475a12292 Update docker/login-action action to v4 2026-03-05 11:38:41 +00:00
JingleManSweep 53f0ce7225 Merge pull request #135 from ipnet-mesh/chore/fix-actions
Updates
2026-03-05 11:36:55 +00:00
Louis King 90268e9b98 Updates 2026-03-05 11:34:18 +00:00
yellowcooln 18edcfe9bf Extract LetsMesh normalization from subscriber into dedicated module 2026-03-04 20:21:49 -05:00
yellowcooln 2a380f88b4 Fix review items 001/003/005 for decoder, channel labels, and node filters 2026-03-04 20:07:37 -05:00
yellowcooln c22274c4e5 Add LetsMesh structured event parity mappings 2026-03-03 16:18:54 -05:00
Yellowcooln 54449aa5fb Delete agent.md 2026-03-03 16:18:54 -05:00
yellowcooln 15556c3eb9 Document NPM admin proxy configuration and auth troubleshooting 2026-03-03 16:18:54 -05:00
yellowcooln 6a66eab663 Refine LetsMesh status ingest and custom logo behavior 2026-03-03 16:18:54 -05:00
yellowcooln 2f40b4a730 Add LetsMesh compatibility ingest, decoder integration, and admin auth updates 2026-03-03 16:18:54 -05:00
JingleManSweep 3eff7f03db Merge pull request #130 from shiqual/main
Add Dutch localization file nl.json
v0.7.5
2026-03-02 23:38:37 +00:00
JingleManSweep 905ea0190b Merge branch 'main' into main 2026-03-02 23:35:45 +00:00
JingleManSweep 86cc7edca3 Merge pull request #129 from ipnet-mesh/renovate/major-github-artifact-actions
Update actions/upload-artifact action to v7
2026-03-02 23:30:39 +00:00
shiqual eb3f8508b7 Add Dutch localization file nl.json
Dutch translation
2026-03-02 00:13:46 +01:00
renovate[bot] 74a34fdcba Update actions/upload-artifact action to v7 2026-02-26 20:53:07 +00:00
JingleManSweep 175fc8c524 Merge pull request #127 from ipnet-mesh/chore/fix-metrics-labels
Add role label to node last seen metric and filter alerts by role
v0.7.4
2026-02-19 00:05:08 +00:00