Commit Graph

854 Commits

Author SHA1 Message Date
Nathan Jacobson
93e534cef5 refactor: use DeviceInstance model instead of direct SQLite query
Replaces the raw sqlite3 query in get_netalertx_devices() with
DeviceInstance().getAll() as suggested in code review, applying the
archived/offline/new filters in Python. Removes the sqlite3 and
fullDbPath imports. Updates tests to mock DeviceInstance.getAll().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 22:03:14 -04:00
Nathan Jacobson
ca7a699ce3 fix: address PR review feedback on adguard_export plugin
- config.json: add show:true to all visible column definitions so they
  render in the plugin output table
- script.py: fix managed_names adoption bug — update/skip branches no
  longer add unowned clients to managed state; rename tracking now
  scoped to plugin-created clients only
- README.md: fix ADGUARDEXP_URL default (localhost:3000, not local IP),
  add language tags to fenced code blocks, normalise metadata block to
  Other info / Maintainer / DD-Mon-YYYY format
- test_adguard_export.py: add regression test for manual client matched
  by ID not being adopted into managed state

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 14:22:58 -04:00
Nathan Jacobson
197e3a3cb6 feat: add adguard_export plugin and tests
Adds a new NetAlertX plugin that syncs known devices from the NetAlertX
database to AdGuard Home as persistent clients, keeping names, MACs, IP
addresses, and device-type tags in sync.

Also fixes the adguard_import config.json description placeholder and a
minor indentation inconsistency in that file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 16:27:25 -04:00
Jokob @NetAlertX
f75c53fc5d Implement notification text templates and update related settings for customizable notifications 2026-03-14 23:27:29 +00:00
Jokob @NetAlertX
d49abd9d02 Enhance code standards, update contributing guidelines, and add tests for SYNC plugin functionality 2026-03-07 21:34:38 +00:00
Jokob @NetAlertX
8e6efc3008 sleeping devices status #1519 2026-03-02 04:35:07 +00:00
Jokob @NetAlertX
ea5585a8ef Add database cleanup for Sessions and optimize queries
- Implemented deletion of Sessions older than DAYS_TO_KEEP_EVENTS.
- Added index for Plugins_History to improve query performance.
- Introduced unit tests for Sessions trimming and database analysis.
2026-03-01 06:07:57 +00:00
jokob-sk
f5e411d5d5 chore: jokob-sk->netalertx
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-28 16:00:37 +11:00
Jokob @NetAlertX
b74b803d6c feat: Add devFlapping attribute to device management and update related UI components 2026-02-27 23:29:55 +00:00
jokob-sk
686a713aa8 FE: lower case MAC issues #1538
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-27 14:35:35 +11:00
jokob-sk
2559702a6a BE+FE: better VLAN/SSID handling
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-22 08:08:48 +11:00
jokob-sk
6bbfc0637c BE+FE: better VLAN/SSID handling
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-21 23:55:53 +11:00
jokob-sk
12b0d911ff DOCS: UNIFIAPI
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-19 14:10:47 +11:00
jokob-sk
04884a264b DOCS: bug #1524
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-19 09:09:31 +11:00
jokob-sk
c1e6a69e05 BE+FE: legacy sync endpoint removal - see release notes
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-15 16:20:34 +11:00
jokob-sk
3587169791 BE+FE: refactor timezone UTC additional work #1506
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-15 16:13:53 +11:00
jokob-sk
9676111ceb BE: Events deduplication and uniqueness
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-15 13:59:15 +11:00
Jokob @NetAlertX
45157b6156 timestamp cleanup 2026-02-11 01:55:02 +00:00
jokob-sk
e899f657c5 BE+FE: refactor totals retrieval + LUCIRPC old field name
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-10 07:39:11 +11:00
jokob-sk
827b5d2ad3 FIX: lowercase MAC normalization across project v0.2
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-07 14:02:54 +11:00
jokob-sk
946ad00253 FIX: lowercase MAC normalization across project v0.1
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-07 13:44:50 +11:00
jokob-sk
81202ce07e name resolution config clean up, authoritative fields fixes for none values, css fixes
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-03 20:40:11 +11:00
jokob-sk
8a5d3b1548 PLG: NAME_CLEANUP_REGEX . behavior in names
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-03 08:26:26 +11:00
jokob-sk
f726820883 PLG: fix ICMP configuration - it should not supply devName for mapping
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-02-02 16:15:58 +11:00
jokob-sk
17e563aa29 BE+FE: new fields handling in views and filters
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-30 08:34:55 +11:00
jokob-sk
229ea770cb feat: authoritative plugin fields - fix devFQDN + docs + allow filters and columns on new fields
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-30 07:50:21 +11:00
jokob-sk
c3d3826448 PLG: add PIHOLEAPI_CONSIDER_ONLINE #1436
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-26 10:35:35 +11:00
jokob-sk
108c26440a feat: authoritative plugin fields - more options
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-25 18:21:49 +11:00
jokob-sk
d24411fa53 BE: CurrentScan table leanup - column rename
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-25 16:38:45 +11:00
jokob-sk
f173325b7b FE: more default icons #1448
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-25 15:47:17 +11:00
jokob-sk
ff206b8fc7 PLG: add online option only via PIHOLEAPI_GET_OFFLINE #1436
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-25 12:43:51 +11:00
Jokob @NetAlertX
3109b5d253 feat: Update plugin descriptions for authoritative column handling and overwrite conditions 2026-01-21 09:38:53 +00:00
Jokob @NetAlertX
fcbe4ae88a feat: Implement forced device status updates and enhance related tests 2026-01-21 09:21:55 +00:00
Jokob @NetAlertX
9f1d04bcd4 feat: Update plugin configurations to include additional SET_EMPTY options 2026-01-21 08:48:47 +00:00
Jokob @NetAlertX
54d01f0a65 feat: Enhance authoritative field handling with new locking mechanisms and update tests 2026-01-21 04:46:07 +00:00
Jokob @NetAlertX
478b018fa5 feat: Enhance plugin configurations and improve MAC normalization 2026-01-21 01:58:52 +00:00
Jokob @NetAlertX
3ee21ac830 review fixes 2026-01-21 00:17:54 +00:00
Jokob @NetAlertX
3b203536b8 ALL:Authoritative plugin fields 2026-01-19 11:28:37 +00:00
Adam Outler
ecea1d1fbd feat(api): MCP, OpenAPI & Dynamic Introspection
New Features:
- API endpoints now support comprehensive input validation with detailed error responses via Pydantic models.
- OpenAPI specification endpoint (/openapi.json) and interactive Swagger UI documentation (/docs) now available for API discovery.
- Enhanced MCP session lifecycle management with create, retrieve, and delete operations.
- Network diagnostic tools: traceroute, nslookup, NMAP scanning, and network topology viewing exposed via API.
- Device search, filtering by status (including 'offline'), and bulk operations (copy, delete, update).
- Wake-on-LAN functionality for remote device management.
- Added dynamic tool disablement and status reporting.

Bug Fixes:
- Fixed get_tools_status in registry to correctly return boolean values instead of None for enabled tools.
- Improved error handling for invalid API inputs with standardized validation responses.
- Fixed OPTIONS request handling for cross-origin requests.

Refactoring:
- Significant refactoring of api_server_start.py to use decorator-based validation (@validate_request).
2026-01-18 18:16:18 +00:00
jokob-sk
1010a81b15 BE: ensure not empty SYNC_node_name
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-17 14:41:09 +11:00
jokob-sk
9cff96ed62 PLG: ARPSCAN remove debug output
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-15 10:07:06 +11:00
jokob-sk
5eaeffca04 DOCS: new URL https://docs.netalertx.com/
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-13 20:16:43 +11:00
Jokob @NetAlertX
6dc30bb7dd FE: enhance settings tests to verify API persistence of PLUGINS_KEEP_HIST setting 2026-01-11 03:56:59 +00:00
Jokob @NetAlertX
206c2e76d0 FE: replace write_notification calls with displayInAppNoti for consistent notification handling 2026-01-11 03:39:48 +00:00
jokob-sk
75ee015864 DOCS+PLG: ICMP defaults, community docs disclaimer
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-11 12:34:21 +11:00
jokob-sk
a1a90daf19 FE: better Device fields docs, fix comments field input in multi-edit
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-11 11:49:00 +11:00
jokob-sk
19f4d3e34e PLG: MQTT linting fixes
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-11 10:39:50 +11:00
jokob-sk
07277985b1 FE: refactor apiBase
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-10 08:46:16 +11:00
jokob-sk
44dc5fa280 PLG: ARPSCAN debug #1376
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-08 09:03:33 +11:00
jokob-sk
307d39be8b PLG: ARPSCAN debug, NEWDEVNEWDEV_NAME_CLEANUP_REGEX new addition #1383
Signed-off-by: jokob-sk <jokob.sk@gmail.com>
2026-01-06 07:44:48 +11:00