Commit Graph
6760 Commits
Author SHA1 Message Date
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-sk 0fc6082c73 BE: IP ordering fixes #1797 2026-09-19 09:48:33 +10: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
Sylvain Pichon 726ca7b402 Translated using Weblate (French)
Currently translated at 100.0% (838 of 838 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/fr/
2026-09-15 18:51:51 +00:00
Mauricio CamayoandClaude Sonnet 5 091e648e88 Fix DOCKERDISC_HOST_MAC docs and strengthen case-insensitivity test
resolve_host_mac() returns the manually configured MAC immediately,
with no Socket Proxy /info call at all - the config.json text still
described it as a fallback used only when auto-detection fails.
Reworded both the setting's own description and the parent "Docker
hosts" description to match actual behavior.

The case-insensitivity regression test for lookup_device_mac() stubbed
DeviceInstance.getByMac() to return a fixed row regardless of input,
so it passed even without exercising real collation - functionally a
duplicate of test_lookup_device_mac_found. Replaced it with a
delegation check, and added real SQLite-backed coverage for
DeviceInstance.getByMac()'s case-insensitivity in
test/backend/test_device_instance.py. That surfaced a gap in the
shared db_test_helpers.py fixture: its Devices.devMac column was
missing the COLLATE NOCASE that the real schema declares, so it could
not have exercised this behavior. Fixed the fixture to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011meLPKCzVpdZyAUfv5U6mm
2026-09-15 12:57:04 -05:00
Mauricio Camayo d512e5d84e Add regression test for lookup_device_mac() case handling
CodeRabbit flagged a possible case-sensitivity gap in getByMac() usage.
No functional change needed - Devices.devMac is COLLATE NOCASE at the
schema level, so getByMac()'s plain equality lookup is already
case-insensitive (that's exactly why getAllByName() has to apply it
explicitly and getByMac() doesn't - devName has no column collation).
This test guards that lookup_device_mac() doesn't do anything of its
own that would undo that.
2026-09-15 12:19:30 -05:00
Mauricio Camayo b0d1776221 Trim module docstring: drop design-history attribution and verification date
Per jokob-sk's review - unnecessary details belongs in the PR/commit
history, not the docstring (matches CLAUDE.md's own convention: a
docstring describes current behavior, not a changelog of why).
2026-09-15 12:06:04 -05:00
Mauricio Camayo 776b462001 Merge remote-tracking branch 'upstream/main' into add-dockerdisc-plugin 2026-09-15 11:58:18 -05:00
Mauricio Camayo 3b83d2403b Address jokob-sk review: DeviceInstance instead of raw SQL, drop HTML entity/partial translations/dead spec-file reference
- resolve_host_mac()/lookup_device_mac() now use the new
  DeviceInstance.getAllByName()/getByMac() core methods instead of
  querying Devices directly - no more direct SQL access from the plugin.
- config.json: removed the &rarr; HTML entity from a description (plain
  ASCII ->, matching e.g. pihole_monitor's convention), and dropped the
  partial es_es/de_de translations scattered through settings/columns
  (English only now, matching e.g. rest_import) instead of leaving some
  strings translated and others not.
- script.py: removed the two remaining references to
  PLUGIN_DOCKERDISC_SPEC.md, a file that was never included in this PR.
2026-09-15 11:58:10 -05:00
Pedro Berdasco fbc9fcee7e Refactor config import logic for legacy column references
Ensure legacy column references are renamed only if the config file has changed.  Fix unnecessary config scan in importConfigs, was causing the container to run at over 80% CPU.  

QA tested locally, all test passed!
2026-09-15 08:33:48 +00:00
Jokob @NetAlertX 0794bb8ae2 Merge pull request #1790 from netalertx/next_release
Next release
2026-09-15 09:00:34 +10:00
jokob-sk e237b92657 BE+FE: plugin view fixes, skills, new core method and tests 2026-09-15 08:46:44 +10:00
Mauricio Camayo 6a26804a5e Address CodeRabbit review: request timeout budget, shape validation, ambiguous devName, README fix
- DockerHost now takes a shared run deadline instead of a per-request
  timeout duration - every _get() call is capped by whatever's left of
  that budget (and REQUEST_TIMEOUT_DEFAULT as an upper bound), so one
  slow/hanging host can't burn the whole RUN_TIMEOUT and starve every
  other configured host. config.json's hosts param now also sets
  timeoutMultiplier, scaling the outer kill-timeout by host count.
- _get() validates the parsed response's shape (dict for /info, list for
  /containers/json and /networks) before returning it, rejecting a
  malformed/unexpected payload the same as a network failure instead of
  letting a caller crash on it further down.
- resolve_host_mac()'s hostname match now detects more than one device
  sharing that name and treats it as ambiguous (falls back to manual),
  instead of silently picking an arbitrary one via LIMIT 1.
- README: the Socket Proxy is only reachable at 127.0.0.1:2375 under the
  network_mode: host case described above it, not under normal compose
  networking - fixed the doc to not imply either URL works there.
2026-09-14 10:01:40 -05:00
Mauricio Camayo 94a5cd4968 Add DOCKERDISC plugin: enrich existing devices with their Docker containers
Read-only enrichment plugin, not an import/discovery plugin. For each
configured Docker host (via Docker Socket Proxy, never /var/run/docker.sock
directly), lists that host's containers under the host device's own
Device Details -> Plugins -> DOCKERDISC tab.

- Never creates a device, for either a host or a container - matches
  against hosts already discovered the normal way (ARP/Nmap).
- Every container is listed (bridge/overlay included), not only
  macvlan/ipvlan ones - a container only gets its own MAC/IP shown when
  it has a macvlan/ipvlan network.
- Host MAC auto-detected via the Socket Proxy's /info -> Devices.devName
  match, with a manual fallback.
2026-09-14 09:11:34 -05:00
jokob-sk 6ab220fd8c BE+FE: async event execution 2026-09-14 18:17:06 +10:00
Hosted Weblate d44e9d7803 Merge branch 'origin/main' into Weblate. 2026-09-14 07:28:04 +00:00
Massimo Pissarello c86d02a8d2 Translated using Weblate (Italian)
Currently translated at 100.0% (838 of 838 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2026-09-14 07:28:03 +00:00
Jokob @NetAlertX 1b52017a42 Merge pull request #1787 from netalertx/next_release
LANG: sync
2026-09-14 17:27:49 +10:00
jokob-sk 05ac423f76 LANG: sync 2026-09-14 17:27:22 +10:00
Jokob @NetAlertX 994651926c Merge pull request #1786 from netalertx/next_release
Next release
2026-09-14 17:19:19 +10:00
jokob-sk 52ddd7f9d2 BE: review fixes 2026-09-14 16:59:49 +10:00
jokob-sk 7277a07660 BE: review fixes 2026-09-14 16:51:35 +10:00
jokob-sk e30a0ea93b BE: events, device pagination for performance 2026-09-14 14:51:43 +10:00
jokob-sk 321824db8e BE: events, device pagination for performance 2026-09-14 14:36:27 +10:00
jokob-sk dc7274a2e9 DOCS: skill cleanup, lower case mac fixes, trigger performance 2026-09-14 14:26:14 +10:00
Jokob @NetAlertX d02e40cf2a Merge pull request #1785 from netalertx/next_release
Next release
2026-09-14 10:01:50 +10:00
jokob-sk 29588c97d8 DOCS: skill cleanup 2026-09-14 09:42:03 +10:00
jokob-sk 1e2ac94496 FE+BE: skill cleanup, review fixes 2026-09-14 09:30:51 +10:00
jokob-sk f7fef5d196 FE+BE: plugins config fixes #1784 2026-09-14 08:49:15 +10:00
jokob-sk f52de6cbdc FE+BE: performance improvements 2026-09-14 08:29:02 +10:00
jokob-sk cff3ddfc38 DOCS: plugin import behavior cleanup 2026-09-12 08:53:16 +10:00
jokob-sk de48a270e9 DOCS: plugin import behavior cleanup 2026-09-12 08:33:45 +10:00
Jokob @NetAlertX f3620ab63f Merge pull request #1783 from netalertx/next_release
BE: SQL refactor presence
2026-09-12 08:03:45 +10:00
jokob-sk 38d5f5093c BE: conditional device import support, notification supression support during scan #1721 2026-09-12 07:58:57 +10:00
jokob-sk 660bddf878 BE: conditional device import support, notification supression support during scan #1721 2026-09-12 07:51:03 +10:00
jokob-sk 58930d3d1d BE: conditional device import support, notification supression support during scan #1721 2026-09-11 08:31:52 +10:00
jokob-sk 37bf86a805 BE: conditional device import support, notification supression support during scan #1721 2026-09-11 08:26:16 +10:00
jokob-sk 6dab348de2 BE: conditional device import support, notification supression support during scan #1721 2026-09-11 08:01:41 +10:00
jokob-sk dd4fc057c8 BE: SQL refactor presence 2026-09-10 22:11:46 +10:00
Jokob @NetAlertX a23c650d16 Merge pull request #1782 from netalertx/next_release
Next release
2026-09-10 21:01:06 +10:00
jokob-sk d9947a2829 BE: conditional device import support, notification supression support during scan #1721 2026-09-10 21:00:50 +10:00