v0.4.3
New Features
- Plugin Permissions
- The plugin now strictly adheres to Netbox user permissions for the creation or updating of Netbox objects.
- New plugin-level (
view/change) access control. Allow/restrict plugin use with 'view'. Allow/restrict ability to sync data via plugin with 'change'
Please read the permission docs to ensure any regular (non superusers) users have the correct access.
- VLAN Sync
- New VLANs tab to sync device VLAN data to Netbox objects with VLAN group selection.
- Interface sync now includes VLAN data - tagged and untagged
Enhancements
- Serial Number Matching & Conflict Resolution — Import detects serial
number matches and guides users through device conflict resolution. - Per-User Preferences — Persistent user preferences for import
toggles and interface name field selection. - Device Identity Mismatch Detection — Informational modal on sync
pages when the device name differs between NetBox and LibreNMS. - SNMPv1 Support — SNMPv1 option added to the LibreNMS add-device form.
- Empty State Cards — Friendly empty states on sync tabs when no data
is available. - Naming Preferences in Validation —
use_sysnameandstrip_domain
settings are now honoured during import validation, with badge indicators.
Security
- XSS escaping, input validation, and safety improvements (#225)
- Open-redirect prevention via HTTP_REFERER validation (#213)
- VC member validation hardening (#225)
Fixes
- Fix KeyError for missing non-default server keys in LibreNMSAPI (#220)
- Fix device name mismatch blocking sync (#230)
- Restore browser credential saving on SNMP forms (#204)
- Fix device redirect URL and inaccurate docstrings (#224)
- Block import when validation issues are present; fix modal titles
Internal / Development
- Comprehensive CI workflow with GitHub Actions, pytest, ruff (#208, #232)
- GitHub Actions pinned to commit SHAs with Dependabot (#232)
- Docstrings added across models, tables, views, forms, and API (#226)
- Code deduplication and refactoring (#224)
- DevContainer refactor with proxy/MITM support and diagnostic tooling (#218, #219, #234)
All Changes
- Remove autocomplete=off from SNMP forms to restore browser credential saving by @bonzo81 in #204
- Fix/formatting by @bonzo81 in #207
- Test/ci workflow by @bonzo81 in #208
- Feature/snmpv1-support by @bonzo81 in #209
- chore: update copilot instructions with permission and background job patterns by @bonzo81 in #214
- feat: add two-tier permission system with plugin and object-level access control by @bonzo81 in #213
- docs: add docstrings to models, tables, views, forms, and API modules by @marcinpsk in #226
- fix: raise KeyError for missing non-default server keys in LibreNMSAPI by @marcinpsk in #220
- feat: add empty state cards for sync tabs by @marcinpsk in #223
- feat: add proxy/MITM support for devcontainer by @marcinpsk in #218
- feat: VLAN sync — Device VLAN sync with VLAN group selection and Interface sync VLAN data by @bonzo81 in #229
- Fix: sync view mismatch by @marcinpsk in #230
- fix: security hardening — XSS escaping, input validation, and safety … by @marcinpsk in #225
- refactor: devcontainer script improvements and alias consolidation by @marcinpsk in #219
- feat: per-user preference persistence for import toggles and interfac… by @marcinpsk in #222
- develop to master release prep by @bonzo81 in #233
- Fix/ci workflow by @marcinpsk in #232
- refactor: code deduplication and minor bug fixes by @marcinpsk in #224
- fix: devcontainer script hardening and cleanup by @marcinpsk in #234
- feat: serial number matching and device conflict resolution by @marcinpsk in #227
New Contributors
Big thanks to @marcinpsk for considerable contributions