Skip to content

Releases: CESNET/cesnet_service_path_plugin

v6.2.1: Merge branch 'feature_map_edit_mode' into 'main'

05 May 16:56

Choose a tag to compare

feat(network-map): edit mode — create/move sites, segments, circuits

  • Add edit mode toggle: place unpositioned sites, create sites/segments/
    circuits, and move segment/circuit endpoints via inline map forms
  • Confirmation dialog before any endpoint replacement is persisted
  • Viewport-fixed map layout with independently scrollable right panel
  • Sites rendered in dedicated Leaflet pane (z-index 450) above connections
  • Rollback DELETE on orphaned circuit when termination creation fails
  • Fix highlight cleared immediately on object click (stopPropagation)
  • Fix objects unclickable after edit mode exit (missing stopPropagation
    in read-mode handler rewiring)
  • Update CHANGELOG [6.2.1] and README Network Map section

version 6.2.0

27 Apr 12:25

Choose a tag to compare

Full Changelog: v6.1.1...v6.2.0

version 6.1.1

19 Mar 11:48

Choose a tag to compare

[6.1.1] - 2026-03-19

Fixed

  • Added referrerPolicy: 'strict-origin-when-cross-origin' to all Leaflet tile layer configurations
    (OpenStreetMap, Humanitarian OSM, CartoDB Positron, CartoDB Dark Matter, OpenTopoMap) to prevent
    map tile loading issues in environments with strict referrer policies.

Compatibility

cesnet_service_path_plugin NetBox
6.1.x 4.5.4+
6.0.x 4.5.0 – 4.5.3

v6.1.0

09 Mar 10:57

Choose a tag to compare

⚠️ Requires NetBox >= 4.5.4. Use v6.0.x for NetBox 4.5.0–4.5.3.

Breaking Changes

  • Minimum NetBox version raised to 4.5.4.
    Uses StrFilterLookup from strawberry-graphql-django >= 0.79.0, which ships
    with NetBox 4.5.4. Starting the plugin on NetBox 4.5.0–4.5.3 will raise an ImportError.

  • GraphQL CharField filter types changed.
    All string filter fields migrated from FilterLookup[str]StrFilterLookup[str]
    to eliminate DuplicatedTypeName schema errors introduced in strawberry-graphql-django 0.79.0.
    GraphQL clients relying on type introspection may need updating.

Fixed

  • GraphQL @field resolver methods now correctly declare Info type annotations,
    resolving startup errors on NetBox 4.5.4+ with stricter strawberry-django introspection.

Compatibility

cesnet_service_path_plugin NetBox
6.1.0+ 4.5.4+
6.0.x 4.5.0 – 4.5.3

Full Changelog: 6.0.1...v6.1.0

v6.0.1

17 Feb 09:27

Choose a tag to compare

Release Notes - v6.0.1

Fixed

  • Database Schema Migration: Fixed primary key handling for segment data models
    • Updated DarkFiberSegmentData, EthernetServiceSegmentData, and OpticalSpectrumSegmentData to use auto-generated id primary key instead of segment_id
    • Implemented custom database migration (0037) with proper SQL handling to safely transition primary keys
    • Added UNIQUE constraints on segment_id to maintain OneToOneField relationships

Changed

  • Modified segment foreign key relationships to remove primary_key=True constraint across all segment data models
  • This change improves database flexibility and follows Django ORM best practices

Technical Details

  • Migration: 0037_darkfibersegmentdata_id_and_more.py handles the schema transformation with backward compatibility
  • Updated models:
    • cesnet_service_path_plugin/models/dark_fiber_data.py
    • cesnet_service_path_plugin/models/ethernet_service_data.py
    • cesnet_service_path_plugin/models/optical_spectrum_data.py

Full Changelog: v6.0.0...6.0.1

v6.0.0

21 Jan 12:59

Choose a tag to compare

Changelog - Version 6.0.0

Breaking Changes

  • NetBox 4.5.0 Required: Minimum NetBox version is now 4.5.0
  • Data Model Migration: Replaced JSON-based type_specific_data field with dedicated relational models for better data integrity

New Features

  • Segment Type-Specific Models: Introduced three new data models:
    • DarkFiberSegmentData
    • OpticalSpectrumSegmentData
    • EthernetServiceSegmentData
  • Enhanced API Support: Full REST API, GraphQL, and web forms for all new models
  • Improved Data Validation: Relational models provide better data validation and integrity

Improvements

  • Updated to use NetBox's native dcim.choices for InterfaceType and ConnectorType
  • Added comprehensive integration tests (24 tests)
  • Enhanced segment serializer with type_specific_technicals computed field
  • Better exception handling for OneToOne relationships

Removals

  • Removed legacy JSONField validation logic (~400 lines of code)
  • Removed backward compatibility tests for old JSON handling

Migration Notes

  • Database migration (0034) automatically converts existing JSON data to new relational models
  • See documentation for details on the new pathdata attribute structure

Full Changelog: v5.4.0...v6.0.0

v5.4.0

10 Dec 09:45

Choose a tag to compare

This major release introduces a comprehensive Contract Information Management System, replacing the previous SegmentFinancialInfo model. It adds support for contract versioning (amendments/renewals), many-to-many relationships between contracts and segments, and enhanced financial tracking.

🚀 New Features

Contract Information Management

  • Complete Replacement: Replaced SegmentFinancialInfo with a robust ContractInfo model.
  • Versioning System: Implemented a linear version chain (linked list) to track contract history.
    • Support for New, Amendment, and Renewal contract types.
    • Automatic version numbering (v1, v2, v3...).
    • Ability to clone contracts to create amendments while preserving immutable fields like currency.
    • Visual timeline in the UI showing the evolution of a contract.
  • Many-to-Many Relationships: A single contract can now cover multiple network segments, and a segment can have multiple contracts.

Enhanced Financial Tracking

  • Flexible Recurring Charges: Support for configurable billing periods (Monthly, Quarterly, Semi-Annually, Annually).
  • Commitment Tracking: Automatic calculation of commitment end dates based on the start date and number of billing periods.
  • Multi-Currency Support: Currency is now immutable per contract chain to ensure financial consistency.
  • Calculated Fields: Automatic calculation of Total Recurring Cost and Total Contract Value.

UI & Visualization

  • New Views: Dedicated list and detail views for Contracts.
  • Visual Indicators: Color-coded badges for contract status and date proximity (Green/Orange/Red).
  • Interactive Tooltips: Hover details showing exact dates and days remaining for commitments.
  • Segment Integration: Segment detail views now display all associated active contracts in a dedicated panel.

API & GraphQL

  • New REST Endpoint: /api/plugins/cesnet-service-path-plugin/contract-info/
  • GraphQL Support: Full support for querying contract versions, relationships, and computed financial fields.
  • Advanced Filtering: Filter contracts by active status, version, currency, and date ranges.

💥 Breaking Changes

  • Removed Model: The SegmentFinancialInfo model and table have been removed.
  • API Removal: The /api/plugins/cesnet-service-path-plugin/segment-financial-info/ endpoint has been removed.
  • Permissions: New permissions (view_contractinfo, add_contractinfo, etc.) replace the old financial info permissions.

🔄 Migration & Upgrade

  • Database Migration: Migration 0033 automatically converts existing SegmentFinancialInfo data to ContractInfo.
    • Preserves all charges, notes, and dates.
    • Converts "Monthly Charge" to "Recurring Charge" (Monthly).
    • Converts "Commitment Months" to "Number of Recurring Charges".
  • Upgrade Steps:
    1. Backup your database.
    2. Install the update: pip install --upgrade cesnet_service_path_plugin
    3. Run migrations: python manage.py migrate cesnet_service_path_plugin
    4. Update API clients to use the new /contract-info/ endpoint.
    5. Review and assign new user permissions.

🐛 Bug Fixes

  • Improved decimal handling in financial calculations.
  • Enhanced date validation logic for contract periods.
  • Fixed M2M relationship serialization in API responses.

Full Changelog: v5.3.0...v5.4.0

v5.3.0

19 Nov 11:00

Choose a tag to compare

Release Notes for CESNET Service Path Plugin v5.3.0

[5.3.0] - 2025-11-19

Added

  • Ownership Type Attribute:
    • Introduced ownership_type support at various levels:
      • Database migration adds ownership_type to segments.
      • New constants for ownership type labels and colors (backend and frontend).
      • New "Ownership Type" color scheme added to the Segments Map.
    • Optimized Segments Map rendering during color scheme changes.

Changed

  • Enhanced UI and UX for the Segment Map:
    • Popups and detail panels now display ownership type badges alongside status badges.
    • Map legend incorporates ownership type information.
    • Improved color scheme switching with updateSegmentColors() for faster UI updates.
    • Corrected map-status color duplication for "Planned" entry.
    • Refined fallback line logic for segments with missing path data.
    • Enhanced badge styling consistency with Bootstrap themes.

Fixed

  • UI inconsistencies in map popups involving:
    • Missing or duplicate status badges.
    • Label formatting issues.
  • Ownership fields were added to:
    • Multiple API outputs.
    • Segment-related templates.

Removed

  • Deprecated legacy static color configurations in map_status_colors.html.

Full Changelog: v5.2.2...v5.3.0

v5.2.2

12 Nov 11:57

Choose a tag to compare

Release v5.2.2

This release introduces an improved topology visualization layout that is now adaptive and scalable, especially for more complex service paths.

What's Changed

  • Improved Topology Visualization: The layout algorithm for topology visualization has been enhanced to be adaptive. It now dynamically adjusts the spacing of nodes based on the complexity of the service path, such as the number of sites and circuits. This results in a clearer and more organized visualization for complex topologies.

Full Changelog: v5.2.1...v5.2.2

v5.2.1

12 Nov 10:28

Choose a tag to compare

[5.2.1] - 2025-11-07

Added

  • Topology Visualization: Interactive network topology visualization using Cytoscape.js

    • Visual representation of segment connections and circuit terminations
    • Multi-topology support for service paths with multiple segments
    • Automatic topology generation for both segments and service paths
    • Clean NetBox Blue styled visualization with gradients and shadows
    • Interactive topology viewer with hover tooltips showing node details
    • Topology visualization integrated into segment and service path detail views
    • Topology visualization added to circuit detail pages showing related segments/service paths
    • Toggle between multiple topologies when segment belongs to multiple service paths
  • Commitment End Date Tracking: Enhanced financial commitment monitoring

    • Automatic calculation of commitment end date based on install date and commitment period
    • Color-coded commitment status indicators:
      • Red: More than 30 days until end
      • Orange: Within 30 days of end
      • Green: Commitment period has ended
      • Gray: No commitment period set
    • Interactive tooltips showing days remaining until commitment end
    • Visual feedback for commitment periods that have ended
    • Commitment end date displayed in segment detail view with badge styling
    • GraphQL API support for commitment end dates with ISO format

Changed

  • Circuit Extensions Refactoring: Improved code organization

    • Renamed CircuitKomoraSegmentExtension to CircuitSegmentExtension for better naming consistency
    • Enhanced circuit detail view with topology visualization support
    • Better separation of concerns in template content extensions
    • Circuit pages now show topology visualizations for associated segments
  • Currency Field Enhancement: Made charge_currency field required

    • Removed default currency value to ensure explicit currency selection
    • Migration 0031 updates currency field constraints
    • Currency must now be explicitly set when creating financial information
    • Prevents accidental use of default currency when not intended
  • Table Improvements: Enhanced data presentation

    • Circuit column in SegmentCircuitMappingTable now orders by CID instead of name
    • Improved ordering logic for better data organization and searchability
  • Version Update: Updated to version 5.2.1 in pyproject.toml

Fixed

  • Added missing python-dateutil dependency to pyproject.toml for date calculations
  • Improved commitment end date calculation with proper timezone handling using django.utils.timezone
  • Enhanced tooltip rendering with proper Bootstrap integration
  • Fixed tooltip data attributes for proper display of commitment information

Technical Details

  • New utility module utils_topology.py with TopologyBuilder class for generating network graphs
  • Cytoscape.js (v3.28.1) integration for advanced graph visualization
  • Reusable topology visualization templates
  • Support for multiple topologies on single page with tab switching functionality
  • Topology data stored as JSON and rendered client-side for performance
  • Color-coding system for commitment status based on time remaining (30-day threshold)
  • New GraphQL field resolver for commitment_end_date with ISO format output
  • Template extensions now check for service path membership to generate appropriate topologies

Migration Notes

  • Migration 0031: Updates charge_currency field to remove default value - requires explicit currency selection
  • New Dependencies: Added python-dateutil for relativedelta calculations in commitment period tracking
  • Template Updates: New topology visualization templates require Cytoscape.js CDN (included automatically)
  • API Changes: GraphQL API now includes commitment_end_date field in SegmentFinancialInfoType

Upgrade Instructions

  1. Run migrations: python manage.py migrate cesnet_service_path_plugin
  2. Install new dependency: pip install python-dateutil (or upgrade plugin package)
  3. Update existing financial records to set currency explicitly if using default
  4. Refresh browser cache to load new topology visualization assets

Full Changelog: 5.2.0...v5.2.1