Circuit Tracking

Track network circuits and providers

Rackd provides circuit tracking for managing network circuits including fiber, copper, microwave, and dark fiber connections.

Overview

Circuit management allows you to:

  • Track circuit provider information and circuit IDs
  • Monitor circuit status and capacity
  • Link circuits to devices and datacenters
  • Maintain circuit documentation and history
  • Plan circuit decommissioning

Circuit Model

FieldTypeDescription
idstringUnique identifier (auto-generated UUID)
namestringDescriptive name for the circuit
providerstringCircuit provider name (e.g., “AT&T”, “Lumen”)
circuit_idstringProvider’s circuit identifier
typestringCircuit type: fiber, copper, microwave, dark_fiber
statusstringStatus: active, inactive, planned, decommissioned
capacity_mbpsintCircuit capacity in Mbps
a_endpointstringA-side endpoint location/device
z_endpointstringZ-side endpoint location/device
datacenter_idstringOptional associated datacenter
device_idstringOptional linked device
descriptionstringOptional description
tags[]stringOptional tags for categorization
install_datedateInstallation date
termination_datedateContract termination date
created_attimestampCreation timestamp
updated_attimestampLast update timestamp

Circuit Types

TypeDescription
fiberActive fiber optic circuit
copperCopper-based circuit (T1, DS3, etc.)
microwaveWireless microwave link
dark_fiberUnlit fiber (point-to-point)

Circuit Status

StatusDescription
activeCircuit is operational
inactiveCircuit is temporarily down
plannedCircuit is planned but not yet installed
decommissionedCircuit has been retired

API Endpoints

List Circuits

GET /api/circuits

Query parameters:

  • provider - Filter by provider name
  • status - Filter by status
  • type - Filter by circuit type
  • datacenter_id - Filter by datacenter

Response:

[
  {
    "id": "circuit-abc123",
    "name": "Primary Internet",
    "provider": "Lumen",
    "circuit_id": "LUM-12345-ABC",
    "type": "fiber",
    "status": "active",
    "capacity_mbps": 10000,
    "a_endpoint": "DC1 - Meet Me Room",
    "z_endpoint": "Lumen POP - Downtown",
    "description": "Primary 10G internet circuit"
  }
]

Get Circuit

GET /api/circuits/{id}

Create Circuit

POST /api/circuits

Request body:

{
  "name": "Primary Internet",
  "provider": "Lumen",
  "circuit_id": "LUM-12345-ABC",
  "type": "fiber",
  "status": "active",
  "capacity_mbps": 10000,
  "a_endpoint": "DC1 - Meet Me Room",
  "z_endpoint": "Lumen POP - Downtown",
  "description": "Primary 10G internet circuit",
  "install_date": "2024-01-15",
  "tags": ["production", "internet"]
}

Required fields: name, provider, type, status

Update Circuit

PUT /api/circuits/{id}

All fields are optional for partial updates.

Delete Circuit

DELETE /api/circuits/{id}

CLI Commands

List Circuits

# List all circuits
rackd circuit list

# Filter by provider
rackd circuit list --provider Lumen

# Filter by status
rackd circuit list --status active

# Filter by type
rackd circuit list --type fiber

# Output as JSON
rackd circuit list --output json

Get Circuit

rackd circuit get --id circuit-abc123

Create Circuit

rackd circuit create \
  --name "Primary Internet" \
  --provider "Lumen" \
  --circuit-id "LUM-12345-ABC" \
  --type fiber \
  --status active \
  --capacity 10000 \
  --a-endpoint "DC1 - Meet Me Room" \
  --z-endpoint "Lumen POP - Downtown"

Update Circuit

rackd circuit update \
  --id circuit-abc123 \
  --status inactive \
  --description "Temporarily down for maintenance"

Delete Circuit

rackd circuit delete --id circuit-abc123

Web UI

Access circuit management at /circuits in the web interface.

Features

  • List View: Table view with filtering by provider, status, and type
  • Create/Edit Modal: Form for creating and editing circuits
  • Status Badges: Color-coded status indicators
  • Capacity Display: Visual representation of circuit capacity
  • Endpoint Information: Clear display of A/Z endpoints

RBAC Permissions

PermissionDescription
circuit:listView list of circuits
circuit:readView individual circuit details
circuit:createCreate new circuits
circuit:updateModify existing circuits
circuit:deleteDelete circuits

Default Role Assignments

  • admin: All circuit permissions
  • operator: All circuit permissions
  • viewer: circuit:list, circuit:read

Use Cases

ISP Circuit Tracking

{
  "name": "Secondary ISP",
  "provider": "AT&T",
  "circuit_id": "ATT-98765-XYZ",
  "type": "fiber",
  "status": "active",
  "capacity_mbps": 1000,
  "a_endpoint": "Building A - Demarc",
  "z_endpoint": "AT&T Central Office"
}

MPLS WAN Circuit

{
  "name": "Branch Office MPLS",
  "provider": "Verizon",
  "circuit_id": "VZ-MPLS-54321",
  "type": "fiber",
  "status": "active",
  "capacity_mbps": 100,
  "a_endpoint": "HQ Data Center",
  "z_endpoint": "Branch Office 5",
  "tags": ["wan", "mpls"]
}

Dark Fiber

{
  "name": "Inter-DC Dark Fiber",
  "provider": "Zayo",
  "circuit_id": "ZAYO-DF-11111",
  "type": "dark_fiber",
  "status": "active",
  "a_endpoint": "DC1",
  "z_endpoint": "DC2",
  "description": "24-strand dark fiber between data centers"
}

Best Practices

  1. Naming: Use consistent naming conventions that include location and purpose
  2. Provider Info: Always include the provider’s circuit ID for support tickets
  3. Endpoints: Document both A and Z endpoints clearly
  4. Contract Dates: Track install and termination dates for renewal planning
  5. Status Updates: Keep status current to maintain accurate inventory
  6. Tagging: Use tags to group circuits by function, region, or customer