NetBox Toolkit Plugin - Code Guide¶
Quick navigation guide for developers working on the NetBox Toolkit Plugin codebase.
📁 Key Files & Classes¶
Core Models (netbox_toolkit_plugin/models.py)¶
Command- Platform-based commands (show/config types)CommandLog- Execution history with error detection
Service Layer (netbox_toolkit_plugin/services/)¶
CommandExecutionService- Main command execution logicDeviceService- Device validation and connection infoRateLimitingService- Prevents command flooding
Connector Framework (netbox_toolkit_plugin/connectors/)¶
BaseDeviceConnector- Abstract interface for all connectorsScrapliConnector- Scrapli-based implementation (primary)ConnectorFactory- Creates platform-specific connectors
Views (netbox_toolkit_plugin/views.py)¶
DeviceToolkitView- Custom "Toolkit" tab on device pagesCommandListView- Command management interface
📦 Dependencies¶
Primary Libraries¶
- Scrapli - Network device connections (SSH/Telnet/NETCONF)
- Scrapli-Community - Extended platform support
- Netmiko - SSH fallback
NetBox Integration¶
- Uses NetBox's
Platformmodel (notDeviceType) - Leverages
ObjectPermissionfor access control - Integrates with NetBox's tab system via
ViewTab
🔧 Configuration¶
Central config in config.py:
- Connection timeouts
- SSH options
- Debug settings
- Rate limiting parameters