-
Notifications
You must be signed in to change notification settings - Fork 12
Closed
Labels
area:devicesdeferDeferred - needs simplification or user demandDeferred - needs simplification or user demandfeaturepriority:mediumsize:medium
Milestone
Description
Parent Epic
Part of #362 (Connection Graph Model - Port-Based Architecture)
Summary
Implement InfrastructureNode to represent off-rack infrastructure endpoints (ISP handoffs, building power, remote equipment) with the same port model as devices.
Background
Connections often terminate at points outside the rack - ISP handoff, building power feeds, or remote equipment. InfrastructureNode represents these with the same PlacedPort structure as devices, enabling uniform connection handling.
Type Definition
type InfraNodeType =
| 'ups'
| 'breaker-panel'
| 'wall-outlet'
| 'floor-pdu'
| 'patch-panel-wall'
| 'network-jack'
| 'isp-demarcation'
| 'external-switch'
| 'other';
type InfraScope = 'facility' | 'room' | 'rack-local';
interface InfrastructureNode {
id: string;
node_type: InfraNodeType;
name: string;
description?: string;
scope: InfraScope;
location?: string; // Freeform: "North wall", "Under desk"
associated_rack_ids?: string[]; // For rack-local scope
ports: PlacedPort[]; // Same as device ports!
// Power infrastructure fields
power_capacity_watts?: number;
power_capacity_amps?: number;
voltage?: number;
circuits?: BreakerCircuit[];
}
interface BreakerCircuit {
id: string;
name: string;
breaker_amps: number;
is_gfci?: boolean;
}Acceptance Criteria
- Create
InfrastructureNodeinterface insrc/lib/types/index.ts - Create
InfrastructureNodeSchemainsrc/lib/schemas/index.ts - Create
InfraNodeTypeandInfraScopeenums - InfrastructureNode has
ports: PlacedPort[] - Add
infrastructure: InfrastructureNode[]to Layout - YAML serialization for infrastructure nodes
- Connections can reference infrastructure node ports
Test Requirements
- InfrastructureNode schema validates correctly
- Ports on infrastructure nodes have valid IDs
- Connections can reference infrastructure node ports
- YAML round-trip preserves infrastructure nodes
- BreakerCircuit schema validates correctly
Related
- Parent Epic: feat: Connection Graph Model - Phase 1: Port-Based Architecture #362
- Depends on: feat: PlacedPort schema and port instantiation #363 (PlacedPort)
- Enables: Power path traversal
- Enables: External connection handling (feat: external connection handling #267)
Metadata
Metadata
Assignees
Labels
area:devicesdeferDeferred - needs simplification or user demandDeferred - needs simplification or user demandfeaturepriority:mediumsize:medium