You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+123-9Lines changed: 123 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# CESNET ServicePath Plugin for NetBox
2
2
3
-
A NetBox plugin for managing service paths and segments in network infrastructure with advanced geographic path visualization and financial tracking.
3
+
A NetBox plugin for managing service paths and segments in network infrastructure with advanced geographic path visualization, interactive topology visualization, and financial tracking.
-**Commitment end date** automatic calculation (new in 5.2.1)
124
151
-**Automatic cost calculations**
125
152
-**Notes** field for additional financial context
126
153
-**Permission-based visibility**
@@ -438,6 +465,52 @@ PLUGINS_CONFIG = {
438
465
- **Overlapping segment handling** with selection popups
439
466
- **Status-based color coding** for visual identification
440
467
468
+
## Topology Visualization
469
+
470
+
### Overview (New in 5.2.1)
471
+
472
+
The plugin includes interactive network topology visualization using Cytoscape.js, providing a graph-based view of your network segments, circuits, and their interconnections.
473
+
474
+
### Features
475
+
476
+
- **Automatic topology generation**: Topologies are automatically generated for segments and service paths
477
+
- **Interactive graph visualization**: Pan, zoom, and hover over nodes to see details
478
+
- **Multi-topology support**: When a segment belongs to multiple service paths, you can toggle between different topology views
479
+
- **Clean visual design**: NetBox Blue themed styling with gradients and modern aesthetics
480
+
- **Node information**: Hover tooltips display detailed information about locations, circuits, and segments
481
+
482
+
### Where Topologies Appear
483
+
484
+
Topologies are automatically displayed in:
485
+
486
+
1. **Segment Detail Pages**:
487
+
- Shows segment topology with connected circuits and terminations
488
+
- If segment belongs to service paths, shows service path topology instead
489
+
- Multiple topology tabs if segment is part of multiple service paths
490
+
491
+
2. **Service Path Detail Pages**:
492
+
- Shows complete service path topology
493
+
- Visualizes all segments in the path and their connections
494
+
495
+
3. **Circuit Detail Pages**:
496
+
- Shows topology for segments associated with the circuit
497
+
- Displays service path topology if the segment belongs to a service path
498
+
499
+
### Topology Components
500
+
501
+
Topologies visualize:
502
+
- **Location nodes**: Sites and locations where segments terminate
503
+
- **Circuit nodes**: Circuits connected to segments
504
+
- **Circuit termination nodes**: A-side and B-side terminations
505
+
- **Edges**: Connections between nodes showing network relationships
506
+
507
+
### Technical Details
508
+
509
+
- Uses Cytoscape.js v3.28.1 for graph rendering
510
+
- Client-side rendering for performance
511
+
- Responsive design adapts to different screen sizes
512
+
- Automatic layout algorithms for optimal node placement
513
+
441
514
## Financial Information Management
442
515
443
516
### Adding Financial Information
@@ -458,10 +531,28 @@ Financial information can be added to any segment through the segment detail vie
458
531
Financial information is displayed on the segment detail page for users with view permissions:
459
532
- Monthly charge with currency
460
533
- Non-recurring charge (if applicable)
461
-
- Commitment period
534
+
- Commitment period in months
535
+
- **Commitment end date** with color-coded status badge (new in 5.2.1)
462
536
- Automatically calculated total costs
463
537
- Additional notes
464
538
539
+
### Commitment End Date Tracking (New in 5.2.1)
540
+
541
+
The plugin automatically calculates and tracks commitment end dates:
542
+
543
+
- **Automatic calculation**: Based on segment install date + commitment period
544
+
- **Visual status indicators** with color coding:
545
+
- 🔴 **Red badge**: More than 30 days until commitment ends
546
+
- 🟠 **Orange badge**: Within 30 days of commitment end (action required soon)
547
+
- 🟢 **Green badge**: Commitment period has ended
548
+
- ⚫ **Gray badge**: No commitment period set or install date not defined
549
+
- **Interactive tooltips**: Hover over the badge to see:
550
+
- Exact commitment end date
551
+
- Days remaining until expiration
552
+
- Status message
553
+
554
+
**Note**: Commitment end date is calculated when both the segment install date and commitment period are set. If the install date is missing, a gray badge indicates that the date will be calculated once the install date is defined.
555
+
465
556
### Permission Requirements
466
557
467
558
Financial information has separate permissions from segments:
@@ -506,6 +597,7 @@ Segment API responses include a `financial_info` field:
506
597
"charge_currency": "EUR",
507
598
"non_recurring_charge": "5000.00",
508
599
"commitment_period_months": 36,
600
+
"commitment_end_date": "2028-11-07",
509
601
"total_commitment_cost": "36000.00",
510
602
"total_cost_including_setup": "41000.00",
511
603
"notes": "Special discount applied"
@@ -563,6 +655,21 @@ query {
563
655
}
564
656
}
565
657
}
658
+
659
+
# Query financial information with commitment end date (new in 5.2.1)
660
+
query {
661
+
segment_list {
662
+
id
663
+
name
664
+
financialInfo {
665
+
monthlyCharge
666
+
chargeCurrency
667
+
commitmentPeriodMonths
668
+
commitmentEndDate
669
+
totalCommitmentCost
670
+
}
671
+
}
672
+
}
566
673
```
567
674
568
675
#### GraphQL Features
@@ -572,6 +679,7 @@ query {
572
679
- **Advanced filtering**: Status, dates, providers, sites, path data availability
573
680
- **Nested relationships**: Query related circuits, providers, locations in single request
574
681
- **Type-specific data**: Query segment type information and technical specifications
682
+
- **Commitment tracking**: Query commitment end dates and financial calculations (new in 5.2.1)
**Note**: For development, you typically only need the runtime libraries. The Python packages (geopandas, fiona, shapely) use precompiled wheels that already include the necessary bindings. Development headers (`-dev` packages) are only needed if you're compiling these libraries from source.
@@ -637,11 +745,13 @@ The plugin adds a **Service Paths** menu with:
637
745
- **Quick action buttons**: Add and Import shortcuts in navigation menu
638
746
- **Bulk operations**: Edit, delete, and import multiple records at once
639
747
- **Advanced search**: Full-text search across names, comments, network labels, and path notes
748
+
- **Topology visualization cards**: Interactive network graphs on detail pages (new in 5.2.1)
749
+
- **Commitment status badges**: Color-coded indicators for financial commitments (new in 5.2.1)
640
750
641
751
### Template Extensions
642
752
643
753
Automatic integration with existing NetBox models:
644
-
- **Circuit pages**: Show related segments
754
+
- **Circuit pages**: Show related segments with topology visualization (enhanced in 5.2.1)
- **Tenant pages**: Show associated provider information
@@ -652,6 +762,7 @@ Financial information appears on segment detail pages when:
652
762
- User has view permission
653
763
- Segment has financial information attached
654
764
- Displayed in a dedicated panel with all cost details and calculations
765
+
- Shows commitment end date with color-coded status badge (new in 5.2.1)
655
766
656
767
## Troubleshooting
657
768
@@ -664,6 +775,8 @@ Financial information appears on segment detail pages when:
664
775
5. **Library version mismatch**: If you encounter errors about missing libraries, check that library package names match your OS version (e.g., `libgdal34` vs `libgdal32`)
665
776
6. **Financial info not visible**: Check user permissions for `view_segmentfinancialinfo`
666
777
7. **Currency not appearing**: Verify plugin configuration in `configuration/plugins.py`
778
+
8. **Topology not rendering**: Check browser console for Cytoscape.js CDN errors (new in 5.2.1)
779
+
9. **Commitment end date not showing**: Ensure segment has both install date and commitment period defined (new in 5.2.1)
667
780
668
781
### Debug Mode
669
782
@@ -684,6 +797,7 @@ LOGGING = {
684
797
- Created using [Cookiecutter](https://github.com/audreyr/cookiecutter) and [`netbox-community/cookiecutter-netbox-plugin`](https://github.com/netbox-community/cookiecutter-netbox-plugin)
685
798
- Based on the [NetBox plugin tutorial](https://github.com/netbox-community/netbox-plugin-tutorial)
686
799
- Geographic features powered by [GeoPandas](https://geopandas.org/), [Leaflet](https://leafletjs.com/), and [PostGIS](https://postgis.net/)
800
+
- Topology visualization powered by [Cytoscape.js](https://js.cytoscape.org/)
0 commit comments