Releases
v0.4.4
Compare
Sorry, something went wrong.
No results found
New Features
Multi-Server Custom Field Support
Track device origin per LibreNMS server with a new JSON-based librenms_id custom field.
Migration from legacy integer format handled automatically.
Auto-Create Custom Field
The librenms_id custom field is now automatically created via post_migrate signal — no manual setup needed.
LibreNMS Sync Page Naming Preferences
use_sysname and strip_domain settings are now applied to device name matching on sync pages.
Upgrade note
Remember to run the collectstatic and the migrate command during the update process .
Enhancements
VC Import Enhancements — Improved stack VC permission enforcement before import.
Cable Sync Improvements — Match by local_port_id instead of display name; strip stale fields on cable verify POST.
VM Sync — Skip device_type check for VMs; add sync_platform to VM supported actions.
Server-Key Propagation — UI polish and view hardening across the multi-server import pipeline.
Migration Simplification — Always revert to integer; gracefully handle non-integer custom field types.
Security
URL-encode server_key in redirects to prevent injection (#254 )
Reject librenms_id <= 0 (#254 )
CSRF safety improvements (#253 )
XSS label escaping in cable verify (#242 )
Fixes
Fix VC master detection, 0-based position correction, and import propagation (#257 )
Fix VC verify view crash by using get_librenms_sync_device() in verify views (#247 )
Fix cables view caching and interface_name_field per-request (#242 )
Fix import validation, template bugs, and pagination (#259 )
Guard dt_match None on ambiguous hardware match (#244 )
Restore multi-key naming preferences and early-exit on missing name (#248 )
Handle non-integer librenms_id custom field types in migrations (#256 )
Internal / Development
Expanded test coverage with new test files and reorganized test structure (#253 )
Smoke tests, integration tests, and mock LibreNMS server (#243 )
Add pytest-cov coverage report — no gating (#241 )
Updated pre-commit hooks, ruff config, and uv Dependabot (#241 )
Bump GitHub Actions: upload-artifact, download-artifact, pypi-publish (#250 , #263 , #265
All Changes
feat: auto-create librenms_id custom field via post_migrate signal by @marcinpsk in #221
refactor: split import_utils.py into a package by @marcinpsk in #235
chore: update pre-commit hooks, ruff config, and add uv dependabot by @marcinpsk in #241
fix: cables view per-request interface_name_field, LibreNMSAPIMixin wiring, librenms_id normalization by @marcinpsk in #242
tests: add smoke tests, integration tests, and mock LibreNMS server by @marcinpsk in #243
fix: code quality, security hardening, and test coverage improvements by @marcinpsk in #244
feat: multi-server librenms_id — track device origin per LibreNMS server by @marcinpsk in #245
fix: vc verify views crash when no member has primary_ip by @bonzo81 in #247
Use naming preferences for device name matching on sync page by @bonzo81 in #248
chore(deps): bump actions/download-artifact in the github-actions group by @dependabot in #250
tests: expand test coverage (split 1/3 from #246 ) by @marcinpsk in #253
fix: security and correctness hardening (split 2/3 from #246 ) by @marcinpsk in #254
fix: server_key propagation, UI polish, and view hardening (split 3/3 from #246 ) by @marcinpsk in #255
fix(migrations): handle non-integer librenms_id custom field types by @marcinpsk in #256
fix: VC master detection, 0-based position correction, and import propagation by @bonzo81 in #257
refactor(js): extract showModal/hideModal helpers by @marcinpsk in #258
fix: code quality improvements and bug fixes by @marcinpsk in #259
Missing echo in docs - Update README.md by @sorano in #262
chore(deps): bump pypa/gh-action-pypi-publish in the github-actions group by @dependabot in #263
chore(deps): bump actions/upload-artifact in the github-actions group by @dependabot in #265
docs: update documentation for 0.4.4 release by @bonzo81 in #267
Contributors
Thanks @sorano for first contribution in #262
Thanks @marcinpsk for continued improvements and contributions
You can’t perform that action at this time.