Files
netbox-librenms-plugin/docs/development/structure.md
Vlastislav Svatek 673e67106e
Some checks failed
ci / deploy (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
first commit
2026-06-05 10:39:05 +02:00

1.8 KiB

Project Structure

This document provides an overview of the NetBox LibreNMS Plugin's codebase organization.

Main Directories

  • netbox_librenms_plugin/ — Main plugin code
    • views/ — Custom views for devices, mappings, VMs, etc.
      • base/ — Abstract base views for shared logic (interfaces, cables, IP addresses, VLANs)
      • object_sync/ — Per-model sync views registered as tabs on Device/VM detail pages
      • sync/ — POST-only views that apply sync changes (interfaces, cables, IP addresses, VLANs, devices)
    • models.py — Database models
    • forms.py — Custom forms
    • tables/ — Table definitions for UI
    • templates/ — Custom templates
      • netbox_librenms_plugin/ — Main template directory
        • inc/ — Shared template fragments (e.g., paginator)
    • api/ — API serializers, views, and URLs
    • import_utils/ — Import pipeline logic, split into focused modules
      • device_operations.py — Device validation, single-device import, filtered fetch
      • vm_operations.py — VM creation and import logic
      • bulk_import.py — Multi-device / bulk import orchestration
      • filters.py — LibreNMS device filtering and retrieval
      • permissions.py — User permission checking helpers
      • cache.py — Cache key generation
      • virtual_chassis.py — Virtual chassis data helpers
    • import_validation_helpers.py — Validation state mutation during import (role/cluster/rack assignment, issue removal, status recalculation)
    • migrations/ — Django migrations
    • utils.py — Utility functions
    • navigation.py — Menu/navigation integration
    • static/ — Static assets (JS, CSS)
      • netbox_librenms_plugin/ — Plugin-specific static files
        • js/ — JavaScript files
  • tests/ — Test suite
  • docs/ — Documentation