-
Notifications
You must be signed in to change notification settings - Fork 12
Closed as not planned
Description
Parent Epic
Part of #71 (Network Interface Visualization and Connectivity)
Summary
Sync device and connection data with a NetBox instance via API.
Scope
- Import devices and interfaces from NetBox
- Import cables from NetBox
- Export devices to NetBox
- Export cables to NetBox
- Keep data synchronized
API Integration
NetBox API Base: https://netbox.example.com/api/
Endpoints:
- /dcim/devices/
- /dcim/interfaces/
- /dcim/cables/
- /dcim/racks/
Authentication
- API Token authentication
- Store token securely (localStorage encrypted?)
- Token per-layout or global setting
Sync Modes
- One-way import - NetBox → Rackula (read-only)
- One-way export - Rackula → NetBox (push changes)
- Bidirectional - Two-way sync with conflict resolution
Acceptance Criteria
- Configure NetBox API URL and token
- Import rack contents from NetBox
- Import device interfaces
- Import cables
- Export layout to NetBox
- Export cables to NetBox
- Conflict detection and resolution
- Sync status indicator
Challenges
- ID mapping (Rackula UUIDs vs NetBox integer IDs)
- Schema differences (Rackula extensions)
- Conflict resolution (local vs remote changes)
- Rate limiting
Dependencies
- feat: cable data model and schema #261 (Cable data model)
- feat: expand InterfaceTemplate type and Zod schema #247 (InterfaceTemplate schema)
References
- NetBox REST API: https://netboxlabs.com/docs/netbox/integrations/rest-api/