Commit Graph
695 Commits
Author SHA1 Message Date
jokob-sk dd4fc057c8 BE: SQL refactor presence 2026-09-10 22:11:46 +10:00
jokob-sk de730e85e9 BE: conditional device import support, notification supression support during scan #1721 2026-09-10 18:41:07 +10:00
jokob-sk 44c52a3cf4 BE: conditional device import support, notification supression support during scan #1721 2026-09-10 14:27:44 +10:00
jokob-sk c3bdd92b8d BE: conditional device import support, notification supression support during scan #1721 2026-09-10 13:51:09 +10:00
jokob-sk ba0077b99d DOCS: plugins 2026-09-07 09:44:37 +10:00
jokob-sk 18092b3179 DOCS: plugins 2026-09-07 08:24:53 +10:00
jokob-sk d478deddc9 FE+DOCS: custom props icon select fix + docs cleanup 2026-09-06 11:13:21 +10:00
jokob-sk 3cd13f2f33 FE+DOCS: extract js into files , cust props clarification 2026-09-05 11:16:32 +10:00
jokob-sk 4d0175c660 BE+FE+DOCS: run plugin from custom props/actions 2026-09-05 10:54:56 +10:00
jokob-sk cddb237cd3 FE+DOCS: Wildcards in custom props #1773 2026-09-05 10:36:19 +10:00
jokob-sk b1eae18ba2 DOCS: tree docs 2026-09-02 08:43:09 +10:00
Jokob @NetAlertX df0ef6ec17 Merge pull request #1765 from mauricio-camayo/add-pihole-monitor-plugin
Add pihole_monitor plugin: combined Pi-hole device import + query anomaly detection
2026-09-01 08:31:13 +10:00
Jokob @NetAlertX 72871e23b1 Merge pull request #1768 from netalertx/next_release
PLG+DOCS: plugins dev docs for temp files + adguard export cleanup
2026-09-01 07:47:07 +10:00
Mauricio Camayo e543f14d08 fix: address round 2 of jokob-sk's maintainer review
References PR #1765.

Docs:
- Added PIHOLEMON to docs/PLUGINS.md and a new "Approach 4" section in
  docs/PIHOLE_GUIDE.md, leading with anomaly detection (the actual
  differentiator vs PIHOLEAPI) and explaining when to pick each plugin.
- README/PLUGINS.md/config.json's UI-facing description all reordered
  and shortened to lead with anomaly detection instead of device
  import, and to drop implementation detail that belongs in the
  README, not the Settings page.
- Trimmed the "Why not extend PIHOLEAPI" README section per feedback -
  useful context for a maintainer, not for an end user configuring
  the plugin.

config.json / pihole_monitor.py:
- RUN defaults to "disabled", matching every other non-core plugin.
- VERIFY_SSL split into PRIMARY_VERIFY_SSL / SECONDARY_VERIFY_SSL -
  each instance can be http/https independently. Settings reordered so
  each *_VERIFY_SSL sits right under its matching *_PASSWORD.
- GRAPHQL_TOKEN removed; graphql_token now reads the core API_TOKEN
  setting instead of a plugin-specific duplicate.
- GRAPHQL_URL replaced with a GET_OWNER boolean - the endpoint is now
  derived from this app's own GRAPHQL_PORT (single source of truth)
  instead of a URL the user had to keep in sync by hand.
- HISTORY_LENGTH (run count) replaced with HISTORY_DAYS (a real time
  window): state now stores [timestamp, delta] samples and
  trim_history() drops anything older than the window, so the
  baseline means the same thing regardless of schedule - a faster
  schedule adds more data points instead of shrinking the window.
- STATE_FILE moved from the log folder to dbFolderPath, so the rolling
  anomaly baseline survives NetAlertX upgrades instead of being wiped
  with the logs.
- netalertx_device_owner() (1 GraphQL call per device) replaced by
  netalertx_device_owners() (1 call per run, batched) - avoids N
  blocking round-trips on a large network.
- Fixed a zero-baseline bug: `bool(... and baseline and ...)` silently
  exempted a device with an all-zero blocked-query history (0.0 is
  falsy in Python) from ever being flagged, even on its first real
  spike. Now checks `baseline is not None`.
- Fixed the placeholder-MAC filter: only excluded the literal "ip-::",
  not Pi-hole's general "ip-<address>" placeholder pattern. Caught
  downstream by is_mac() either way, but now the actual placeholder
  check does what it looks like it does.
- Fixed a cumulative-counter bug: Pi-hole's /api/stats/top_clients
  returns a count that's cumulative since FTL last started, not a
  per-interval or daily-resetting one (confirmed against FTL's own
  source and long-standing user reports that it doesn't reset at
  midnight). Comparing that raw total directly against a rolling
  average made any device's ordinary growing traffic look like an
  escalating anomaly. compute_delta() now diffs each run's raw count
  against the previous run's (state gained a per-key last_raw
  reference point alongside the delta history) - None (not 0) on the
  first-ever run for a device or right after a counter reset, so
  those runs re-anchor the reference point instead of fabricating or
  swallowing a delta.
- RUN_SCHD default changed from every 6 hours to every 5 minutes now
  that the baseline window is real days, not run count, so a frequent
  schedule only adds data points instead of narrowing the window; also
  matches the default most other device-scanner plugins use.
- RUN_SCHD gained the same live cron-validity checkmark ARPSCAN and
  other scanner plugins use (a ✓/✗ icon next to the field, validated
  client-side against a regex) - reuses the existing generic
  validateRegex() widget, nothing plugin-specific to build.

Tests: 48 tests (up from 37), 99% line+branch coverage. Every fix
above verified via mutation testing (deliberately broken, confirmed
the relevant test fails, then restored).
2026-08-31 11:49:02 -05:00
jokob-sk d155633164 better scaffolding, robustness 2026-08-31 13:45:30 +10:00
jokob-sk 81202afa31 PLG+DOCS: better scaffolding 2026-08-31 11:27:25 +10:00
jokob-sk e44b17faa7 PLG+DOCS: better scaffolding 2026-08-31 10:01:09 +10:00
jokob-sk 72729d8624 PLG+DOCS: plugins dev docs for temp files + adguard export cleanup 2026-08-31 08:50:30 +10:00
Vaibhav Srivastava 18b8f74563 docs: fix typo shoudl -> should
Signed-off-by: Vaibhav Srivastava <vaibhavsri1712@gmail.com>
2026-08-29 14:11:58 +05:30
jokob-sk 457281c0c5 PLG: UNIFIAPI devVlan removal #1741 + v bump 2026-08-19 08:15:03 +10:00
Jokob @NetAlertX a06dc259a8 Refactor plugin paths in scripts and tests to ensure consistent directory structure 2026-08-10 03:51:23 +00:00
Jokob @NetAlertX 9e38cfd8b4 Add website monitoring plugin and update workflows configuration
- Introduced a new plugin for monitoring website health, including functionality to check URLs and log results.
- Created README and configuration files for the workflows plugin, detailing its purpose and settings.
- Updated import paths in various test files to reflect the new directory structure.
- Ensured compatibility of test cases with the updated plugin architecture.
2026-08-10 02:32:49 +00:00
jokob-sk 05e7ef0f6f DOCS: sample docker run 2026-08-05 11:15:51 +10:00
jokob-sk ffd5dbbaac DOCS: grafana sample #1723 2026-07-30 07:38:07 +10:00
jokob-sk 1aea4e8216 DOCS: email 2026-07-25 10:25:33 +10:00
jokob-sk 6aad4a41cf DOCS: nics 2026-07-25 10:12:26 +10:00
jokob-sk 2396bb610a DOCS: email update 2026-07-25 08:11:08 +10:00
jokob-sk 887de65eb9 BE+FE: change log 2026-07-06 13:03:38 +10:00
jokob-sk e0449bed8e BE+FE: change log 2026-07-05 22:38:29 +10:00
Jokob @NetAlertX 18ec0ce96c feat: Implement DevicesHistory feature with triggers and history tracking
- Added db_history.py to manage DevicesHistory table and triggers for INSERT and UPDATE operations.
- Created device_history_instance.py for querying and grouping DevicesHistory records.
- Developed change_history.php for displaying device change history with filtering and pagination.
- Introduced skel_device_details_tab_history.php for skeleton loading state in device details tab.
- Added unit tests in test_device_history.py to validate trigger functionality and history management.
- Implemented filter population and pagination in the change history UI.
2026-07-04 23:34:52 +00:00
Jokob @NetAlertX 636b0d9ca7 Add 'not_equals' and 'not_contains' operators; enhance workflow examples and tests 2026-07-01 08:14:00 +00:00
jokob-sk cd0bb8ae6a FE + docs 2026-06-30 17:43:34 +10:00
jokob-sk 20ac84078f FE: skeleton uplift + docs 2026-06-29 11:23:32 +10:00
jokob-sk 155081dc31 DOCS: remote networks 2026-06-24 13:11:04 +10:00
jokob-sk ac83fcc39d DOCS: remote networks 2026-06-24 12:08:05 +10:00
jokob-sk b1fe24300a FE: skeleton uplift 2026-06-21 10:45:56 +10:00
jokob-sk 553ed6ec2b FE: skeleton uplift, table fixes in systeminfo 2026-06-21 09:46:44 +10:00
jokob-sk b6c8f9be5d Merge branch 'next_release' of github.com:netalertx/NetAlertX into next_release 2026-06-21 08:04:18 +10:00
jokob-sk 691a57dcd9 DOCS: hero image fix and reorganising 2026-06-21 08:04:05 +10:00
Mike Salzman 5885b41bfa Corrected step numbering in REST_IMPORT.md 2026-06-20 09:24:31 -04:00
Mike Salzman 489463efc3 Added RSTIMPRT plugin OPNsense/Dnsmasq setup doc and supporting images 2026-06-20 09:10:48 -04:00
jokob-sk e7f0be30e9 typos 2026-06-19 22:50:27 +00:00
jokob-sk 7630608583 docs 2026-06-19 22:39:09 +00:00
jokob-sk 65dc689679 BE: css + docs for WF 2026-06-17 16:04:16 +10:00
jokob-sk 5ee3a04598 WF: docs 2026-06-16 23:31:36 +10:00
jokob-sk 76e7cc7b3d BE: Removal of stdout.log 2026-06-14 10:35:08 +10:00
jokob-sk 995fcab2ad DOCS: performance logs cleanup 2026-06-04 06:41:22 +10:00
jokob-sk 41ccff5f1c DOCS: formatting 2026-06-03 09:15:21 +10:00
jokob-sk f1a9109697 BE+DOCS: ICMP, IPNEIGH handling VLANS #1662 2026-06-02 07:49:06 +10:00
jokob-sk f9b413d172 PLG: ICMP handling VLANS #1662 2026-05-31 08:51:48 +10:00