Skip to content

v0.4.4

Choose a tag to compare

@bonzo81 bonzo81 released this 15 Apr 10:54
· 1483 commits to master since this release
565eba1

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