Commit Graph
6798 Commits
Author SHA1 Message Date
jokob-sk 4aa2a0dddb BE+FE: System info -> Performance section 2026-09-28 14:40:11 +10:00
jokob-sk 491b60b49e DOCS: skill update 2026-09-28 13:29:00 +10:00
jokob-sk f0a833ccc8 BE: docstrings 2026-09-28 07:44:29 +10:00
jokob-sk c5081ba4c1 PLG: MQTT sanitization of input #1816 2026-09-28 07:38:33 +10:00
jokob-sk 8473fd82ee BE: fix conflict 2026-09-28 07:33:22 +10:00
jokob-sk fa5c62c9c3 BE: Stats Logging for Down Devices corrected #1818 2026-09-28 07:27:06 +10:00
jokob-sk 6d5760405b PLG: MQTT refactor 2026-09-28 07:03:55 +10:00
jokob-sk 81b28cb15e PLG: MQTT add devVLan devSSID #1816 2026-09-27 09:25:58 +10:00
jokob-sk 2b748bbcd3 DOCS: skill update 2026-09-27 08:57:35 +10:00
jokob-sk 2cb637485d FE+LANG: Add Alert Events, Can Sleep and Static IP as selectable Device columns #1815 2026-09-27 08:54:00 +10:00
Jokob @NetAlertX f6010e0c11 Merge pull request #1814 from netalertx/next_release
Next release
2026-09-27 08:39:42 +10:00
Pavel Borecki 9c97ee5cc6 Translated using Weblate (Czech)
Currently translated at 100.0% (838 of 838 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/cs/
2026-09-26 11:51:40 +00:00
jokob-sk 6d7517eb8a DOCS+PLG: skill updates, PIHOLEMON corrected source 2026-09-26 10:06:37 +10:00
jokob-sk 127e2c92ee DOCS+PLG: skill updates, ADGUARDIMP more accurate presence determination #1813 2026-09-26 09:41:20 +10:00
jokob-sk 28eced2a25 DOCS: skill updates, WIFICANARY updates 2026-09-26 08:58:46 +10:00
jokob-sk 591b1fadbe Merge branch 'next_release' of github.com:netalertx/NetAlertX into next_release 2026-09-26 07:49:26 +10:00
jokob-sk c04213eb23 PLG: FREEBOX and FRITZBOX didn't respect SET_ALWAYS due to non-matching plugin name in config #1812 2026-09-26 07:49:11 +10:00
Jokob @NetAlertX 23d2ed3612 Merge pull request #1811 from netalertx/main
sync
2026-09-25 14:31:47 +10:00
Jokob @NetAlertX d838376e9e Merge pull request #1809 from mauricio-camayo/add-wificanary-plugin
Add WIFICANARY plugin - passive WiFi rogue-AP detection
2026-09-25 14:19:37 +10:00
Mauricio CamayoandClaude Sonnet 5 41efcbc971 Address jokob-sk review: dedupe rogue detections, add iw to remaining Dockerfiles
check_trusted_aps() evaluated a rogue AP once per trusted_aps entry sharing
its SSID, so the documented main-AP+extender pattern (same SSID, two
entries) produced duplicate (bssid, motor) rows for a real clone - a
problem once next_release's per-plugin identity-hash dedup guard lands in
main, since it drops a plugin's entire batch on any internal duplicate.
Fixed by deduping once in main() after collecting from all check_*
functions. Also added iw + its setcap to Dockerfile.debian and
.devcontainer/Dockerfile, which the original PR missed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011meLPKCzVpdZyAUfv5U6mm
2026-09-24 20:10:12 -05:00
Jokob @NetAlertX eea3ac88c0 Merge pull request #1807 from netalertx/next_release
Next release
2026-09-25 08:46:22 +10:00
jokob-sk 087241274a Merge branch 'next_release' of github.com:netalertx/NetAlertX into next_release 2026-09-25 08:32:18 +10:00
jokob-sk f30d27db13 BE: plugin input improvements 2026-09-25 08:32:03 +10:00
Mauricio CamayoandClaude Sonnet 5 f7a0c5861e Address CodeRabbit review: extender false-positive + stale README section
- check_trusted_aps() was evaluating every AP sharing a protected SSID
  against every trusted entry for that SSID, not just its own. A main AP
  requiring a stricter accepted security set (e.g. wpa3-only) than a
  separately-trusted extender (e.g. wpa2) caused the extender to be
  flagged as evil_twin/absent_baseline_clone - it was being judged
  against the main AP's accepted set instead of its own. Fixed by
  excluding, from each trusted entry's evaluation, any BSSID that has its
  own separate trusted entry for the same SSID.
- README's "iw isn't in the published image yet" section was already
  stale within the same PR - this branch's own Dockerfile change adds
  iw + setcap, so the image ships it. Replaced with one sentence.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 15:01:16 -05:00
Jokob @NetAlertX 11e1227d7d Merge pull request #1808 from netalertx/main
sync
2026-09-24 10:43:22 +10:00
jokob-sk 33003a4c4d BE: plugin input improvements 2026-09-24 10:42:06 +10:00
jokob-sk d9ef76d942 BE: plugin input improvements 2026-09-24 10:26:24 +10:00
jokob-sk 6cc092f2ad BE: plugin input improvements 2026-09-24 10:01:52 +10:00
jokob-sk 1c410bf2be DOCS: skill updates 2026-09-24 09:00:08 +10:00
Jokob @NetAlertX 88cf790263 Merge pull request #1805 from netalertx/next_release
Next release
2026-09-24 07:50:23 +10:00
Mauricio CamayoandClaude Sonnet 5 d0a3a5416b Add WIFICANARY plugin - passive WiFi rogue-AP detection
Periodic iw-scan-based detection of the 6 heuristics that don't need
monitor-mode hardware (see issue #1789): pwnagotchi/Pineapple signatures,
evil-twin/open clones, baseline-AP-absent-with-clone, security downgrades,
and duplicate-SSID/different-vendor - all evaluated against a user-curated
trusted-AP baseline (WIFICANARY_trusted_aps). A detection creates a
flagged Devices entry even for BSSIDs that never associate, per the
addendum on the same issue.

- WIFICANARY_TRUSTED_SECURITY is multi-select: an observed encryption
  exactly matching any selected value is accepted; otherwise it's flagged
  if weaker than the strongest selected value (deliberate - comparing
  against the weakest would make multi-select pointless, since anything
  at/above the weakest would silently pass regardless of the rest of the
  selection).
- Added a "known device turned rogue" motor: escalate_known_devices()
  cross-references each detection's BSSID against the Devices table via
  the new DeviceInstance.getAllByMacs(). This covers the BSSID-identity
  half of the issue #1789 addendum's motor 10; the deauth/probe-source-MAC
  half still needs monitor-mode data this plugin doesn't have.
- Vendor is deliberately not looked up by this plugin - any device it
  creates gets devVendor filled in for free by core's own vendor_update
  plugin on its next pass.

43 wificanary unit tests + 10 DeviceInstance.getAllByMacs() tests, all
test_plugin_conventions.py checks pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011meLPKCzVpdZyAUfv5U6mm
2026-09-23 15:56:47 -05:00
jokob-sk 7aca7c17f3 BE: FREEBOX dual stack IP fix #1804 2026-09-23 08:17:23 +10:00
jokob-sk 24301cbdbc BE: FREEBOX dual stack IP fix #1804 2026-09-23 07:52:30 +10:00
jokob-sk a573eeb0e7 BE: FREEBOX dual stack IP fix #1804 2026-09-22 08:43:41 +10:00
jokob-sk 38866a64db BE: FREEBOX last scan fix #1804 2026-09-22 08:25:53 +10:00
jokob-sk d72aea21f5 BE: re-enable GRAPHQL_PORT #1803 2026-09-21 17:30:25 +10:00
Jokob @NetAlertX cd1d0ed11e Merge pull request #1800 from mauricio-camayo/dockerdisc-v2-import-on
DOCKERDISC v2: optional device creation for LAN-visible containers
2026-09-21 08:47:37 +10:00
Mauricio CamayoandClaude Sonnet 5 b175a3b65f Address jokob-sk review: shorten UI description, map scanSourcePlugin
Settings-UI description trimmed to one short line - implementation
detail (Socket Proxy, column mapping, CREATE_DEV behavior) already
lives in README, doesn't belong in the Settings page string.

scanSourcePlugin now maps to a static "DOCKERDISC" value (same
Dummy-column pattern arp_scan already uses), so a container device
created by this plugin gets devSourcePlugin set correctly instead of
NULL - every other CurrentScan-mapped plugin already does this.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011meLPKCzVpdZyAUfv5U6mm
2026-09-20 16:22:12 -05:00
Mauricio CamayoandClaude Sonnet 5 dea6a553fb Address CodeRabbit review: add DOCKERDISC_IMPORT_ON, docstrings
Declares DOCKERDISC_IMPORT_ON (default on) so an operator can fully opt
this plugin out of CurrentScan promotion. Needed because
DOCKERDISC_CREATE_DEV alone doesn't cover it: a macvlan/ipvlan
container's row always carries a real scanMac, so even with
CREATE_DEV off, an already-existing device for that MAC (found
independently by ARP/Nmap) still gets its presence/devLastIP/
devParentMAC updated by this plugin on every run - only IMPORT_ON can
turn that off. The two settings are independent, per jokob-sk's PR
feedback - IMPORT_ON gates promotion for the whole run, CREATE_DEV
gates device creation per row.

Also adds missing docstrings to process_host()/main() (CodeRabbit
docstring-coverage check), matching the style already used elsewhere
in this file.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011meLPKCzVpdZyAUfv5U6mm
2026-09-18 20:05:37 -05:00
jokob-sk 0fc6082c73 BE: IP ordering fixes #1797 2026-09-19 09:48:33 +10:00
Mauricio CamayoandClaude Sonnet 5 cfde00048a DOCKERDISC v2: optional device creation for LAN-visible containers
Maps DOCKERDISC to CurrentScan (scanMac/scanCreatesDevice/scanParentMAC/
scanLastIP) so a container on a macvlan/ipvlan network can opt into
creating or confirming its own device, parented to its Docker host.
Gated by a new DOCKERDISC_CREATE_DEV setting (default off). A container
without its own MAC (bridge/overlay/etc.) never creates a device either
way - the framework's blank-scanMac guard blocks the whole group
regardless of the setting.

Reuses the existing objectPrimaryId/extra column definitions (already
host MAC / container IP) to also feed scanParentMAC/scanLastIP, so every
promoted container is auto-parented to its host with no extra plugin
logic. Two new hidden columns (helpVal1/helpVal2) carry the per-container
scanMac/scanCreatesDevice values.

Tests: 33 -> 35, both DOCKERDISC_CREATE_DEV on/off paths asserted.
Live-verified end to end against a real built image (docker-socket-proxy
+ isolated macvlan/bridge test containers), since IMPORT_ON isn't in any
released NetAlertX image yet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011meLPKCzVpdZyAUfv5U6mm
2026-09-18 17:14:10 -05:00
Safeguard b882962ffe Translated using Weblate (Russian)
Currently translated at 100.0% (838 of 838 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ru/
2026-09-18 08:51:31 +02:00
Jokob @NetAlertX d03492db47 Merge pull request #1796 from netalertx/main
Sync
2026-09-18 08:55:43 +10:00
Jokob @NetAlertX b870601275 Merge pull request #1795 from netalertx/fix/notification-content-truncation
Fix/notification content truncation
2026-09-18 08:54:57 +10:00
jokob-sk 8dcd670d24 DOCS+BE: skill updates, write_notifications fix #1793 2026-09-18 08:42:42 +10:00
jokob-sk 3bf10f8378 DOCS+BE: skill updates, write_notifications fix #1793 2026-09-18 08:20:31 +10:00
jokob-sk 52d1698221 DOCS+BE: skill updates, write_notifications fix #1793 2026-09-18 08:09:22 +10:00
Jokob @NetAlertX 45e86b5646 Merge pull request #1792 from netalertx/main
sync
2026-09-16 08:14:44 +10:00
Jokob @NetAlertX 014b960159 Merge pull request #1791 from agueybanapr/patch-1
Refactor config import logic for legacy column references
2026-09-16 08:12:41 +10:00
Jokob @NetAlertX fce1c00e75 Merge pull request #1788 from mauricio-camayo/add-dockerdisc-plugin
Add DOCKERDISC plugin: enrich existing devices with their Docker containers
2026-09-16 07:54:35 +10:00