Skip to content

feat: NetBox API sync (bidirectional) #274

@ggfevans

Description

@ggfevans

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

  1. One-way import - NetBox → Rackula (read-only)
  2. One-way export - Rackula → NetBox (push changes)
  3. 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

References

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions