Skip to content

Technical Stack & Architecture

Understanding these technical details helps guide contribution decisions and ensures consistency with the project's design.

🏗️ Architecture Principles

Core Design Patterns

Platform-Based Commands: All commands are tied to NetBox platforms (see netbox_toolkit_plugin/models.py)

Service Layer Architecture: Business logic isolated in dedicated service classes (see services/ directory)

Connector Abstraction: Uniform interface for all device connections (see connectors/ directory)

Permission Integration: Leverages NetBox's ObjectPermission system for access control

Secure Credentials: NetBox API authentication + encrypted credential tokens for enhanced security

🔧 Technical Stack

Primary Network Libraries

  • Scrapli: Primary connection library (SSH/Telnet/NETCONF)
  • Scrapli-Community: Extended platform support
  • Netmiko: SSH fallback for legacy or problematic devices
  • TextFSM: Structured output parsing

NetBox Integration Points

  • Platform Model: Commands are bound to NetBox platforms, not device types
  • ObjectPermission System: Granular access control using NetBox's permission framework
  • ViewTab System: Custom tabs integrated into NetBox device pages
  • Plugin Configuration: Standard NetBox plugin configuration patterns