Releases: CESNET/cesnet_service_path_plugin
v5.2.0
CESNET Service Path Plugin – Release Notes for v5.2.0
Highlights
v5.2.0 introduces a major new feature: Financial Information Management for segments, multi-currency support, API/UI enhancements, improved permission controls, and better plugin configuration. This release also includes documentation and dependency updates, streamlines segment/provider fields, and adds robust integration tests.
✨ Added
Financial Information Management
- New SegmentFinancialInfo model: Track segment costs, monthly charges, non-recurring charges, and commitment periods.
 - Multi-currency support: Configurable currency list and default currency (CZK, EUR, USD, etc.).
 - Automatic cost calculations: Total commitment cost, total cost including setup.
 - Permission-based access: Financial info only visible to users with view permission.
 - Integrated with UI & REST API: Financial info shown on segment detail pages and included in API responses.
 - Dedicated API endpoint: 
/api/plugins/cesnet-service-path-plugin/segment-financial-info/ - GraphQL support: Query segment financial info with permission checks.
 
Plugin Configuration and Metadata
- Configurable currency list: Specify available currencies and default in plugin settings.
 - Example configuration in README.
 - Added 
netbox-plugin.yaml: Official plugin registry metadata and compatibility matrix. 
UI/UX
- Financial info card on segment detail: Permission-aware display and quick add/edit/delete actions.
 - "Generate Circuit" button: One-click creation of circuits from segment data, auto-filled form fields.
 - Quick action buttons: Add/Import shortcuts for segments, paths, mappings, circuits.
 
Development & Testing
- Integration tests: For financial info API and type-specific segment data.
 - Sample 
.envfor tests. - Python requirement updated to >=3.10.
 
🔄 Changed
Segment Model: Location Fields Now Optional
- location_a & location_b are now optional for segments.
- You can create segments without specifying these locations.
 - If provided, locations must belong to their respective sites.
 - API, forms, and documentation updated to reflect this change.
 
 
API, Serialization & Permissions
- Segment serializer: Now includes 
financial_infofield, with permission-aware inclusion. - Improved error handling: Detailed logging, better file upload error separation.
 - Cleaner code: Removed unused fields (
provider_segment_name,provider_segment_contract). - Permission system: Fine-grained control for add/change/delete/view of financial info.
 
UI & Documentation
- README: Expanded with financial info details, installation/config, Docker instructions.
 - File path references corrected: Configuration files and plugin paths.
 - Compatibility badge: NetBox 4.4 support highlighted.
 - Bulk operations: Bulk edit/import/delete for segments and mappings.
 
Development Dependencies
- Unpinned dev dependencies: More flexibility for pip, black, pytest, etc.
 - License classifier: Now Apache 2.0.
 
⚙️ Technical Details
- Financial info uses one-to-one relation with Segment.
 - Currency choices loaded from plugin config.
 - Financial data is optional per segment.
 - API serializers use method fields for conditional inclusion.
 - Redirect-based views for better UX.
 
🚨 Migration Notes
- New model: 
SegmentFinancialInfotable created. - Permissions: Four new Django permissions for financial info.
 - Configuration: Optionally add currency config to plugin settings.
 - API change: Segment API includes 
financial_info(null if missing or no permission). - location_a/location_b: These fields are now optional in the database and API.
 
🧹 Removed/Deprecated
- Removed 
provider_segment_contractandprovider_segment_namefields from Segment. - API examples, documentation, and GraphQL types updated to reflect removal.
 
📚 Documentation & Examples
- Step-by-step installation, Docker setup, currency config, and troubleshooting guides updated.
 - API and GraphQL usage examples for segments with financial info.
 - Segment creation API:
- Required fields: 
name,status,provider,site_a,site_b - Optional: 
location_a,location_b 
 - Required fields: 
 
🧪 Testing
- New integration tests for:
- Creating, updating, deleting, and viewing segment financial info via API.
 - Verifying financial info appears in segment API responses.
 - Segment type-specific data validation and migration between types.
 
 
📝 Contributors
Special thanks to all contributors and testers for feedback and code reviews.
For a detailed changelog and migration instructions, see CHANGELOG.md and the expanded README.md.
v5.1.2
Release Notes – v5.1.2
Changes Since v5.1.1
- 
Template Update:
The HTML templatesegment_edit.htmlhas been revised:- The block previously named 
titlenow usesheadfor improved HTML structure and extension compatibility. - The stylesheet and JavaScript for the segment form are now included inside the 
headblock. - Ensures proper extension of parent templates with 
{{ block.super }}at the correct place. 
 - The block previously named 
 - 
Version Bump:
- The project version in 
pyproject.tomlupdated from5.1.1to5.1.2. 
 - The project version in 
 
Summary
This release improves the template structure for editing segments, ensuring styles and scripts load correctly and enhancing maintainability for further customizations.
Full Changelog: v5.1.1...v5.1.2
v5.1.1
Release Notes for CESNET Service Path Plugin v5.1.1 (from v5.0.4)
Highlights
🚀 Major Features
- 
Segment Type System
- Segments now support explicit types: Dark Fiber, Optical Spectrum, Ethernet Service.
 - New 
segment_typefield and dynamic, type-specific technical data stored as JSON. - Dynamic form fields and validation for each segment type.
 - Smart numeric filtering with operators (>, <, >=, <=, ranges).
 - GraphQL API supports type-specific data filtering (
has_type_specific_data). 
 - 
Enhanced Map Visualization
- Map coloring and legend based on segment type, status, or provider.
 - Multiple background map layers (OpenStreetMap, satellite, topographic, CartoDB).
 - Improved overlapping segment visualization and selection.
 
 - 
Advanced Filtering System
- Smart numeric filters for technical fields.
 - Type-specific filters (fiber type, connector type, modulation format, etc.).
 - Boolean parsing and improved search for segment type and technical fields.
 
 
🛠 Improvements
- Segment form preserves type-specific field values when changing type.
 - Updated segment table to display segment type.
 - API serializers and GraphQL types now include segment type and type-specific data.
 - Unified segment serializers, removed redundancy.
 
🐞 Bug Fixes
- Fixed form rendering for type-specific fields.
 - Improved value preservation when editing segment types.
 - Resolved edge cases in smart numeric filtering.
 - Enhanced JSON serialization for Decimal types.
 - Fixed dynamic field visibility issues.
 
⚡ Technical/Documentation
- New CSS/JS for dynamic segment form fields.
 - Documentation updates with sample maps and GraphQL examples (
docs/graphQL_examples.md). - Added Apache 2.0 license badge.
 - Updated 
pyproject.tomlwith repository info. - Migration: New fields added to Segment model (
segment_type,type_specific_data). 
Migration Notes
- 🗄 Database migration required: New fields for segment type and type-specific data.
 ⚠️ Existing installations will have default values for new fields.- No breaking changes expected for core APIs, but segment editing and filtering are now much richer.
 
For Developers
- New model: 
models/segment_types.pywith choices and schemas for validation. - New template, CSS, and JS for dynamic form rendering.
 - GraphQL API expanded for segment type and advanced filtering.
 - Example queries and mutation samples in 
docs/graphQL_examples.md. 
Full Changelog
See CHANGELOG.md for detailed changes.
Upgrade Recommendation:
Run migrations after upgrading. Review segment forms and filtering options for new features.
Release Versions:
- v5.1.0 (2025-09-23): Segment type system, advanced filtering, improved map visualization.
 - v5.0.3 (2025-08-29): Critical bugfix for saving tags (many-to-many).
 - v5.0.2 (2025-08-21): Documentation and licensing improvements.
 
Compatibility:
NetBox 4.4+ (see README for compatibility matrix).
Full Changelog: v5.0.4...v5.1.1
v5.0.4
Changes Made
Added v5.0.4 Release Notes (2025-09-12)
- Enhanced Map Visualization: Documents the major improvements to segment map display including:
- Dual color schemes (status-based and provider-based color coding)
 - Enhanced overlay segment selection with improved click algorithm
 - Better visual differentiation for overlapping segments
 
 - API Improvements: Covers streamlined segment serialization changes:
- Consolidation of SegmentListSerializer functionality into SegmentSerializer
 - Enhanced support for path file uploads
 - Improved API response consistency and performance
 
 - Bug Fixes: Documents map interaction improvements and rendering performance optimizations
 
Added v5.0.3 Release Notes (2025-08-29)
- Forms Fix: Documents the important SegmentForm fix that added save_m2m() call to properly save tags
 - Resolves tag persistence issues in segment creation and editing
 
Full Changelog: v5.0.3...v5.0.4
5.0.3
Added
- 
Geographic Path Visualization: Complete interactive map system with Leaflet
- Multiple tile layer support (OpenStreetMap, satellite, topographic, CartoDB variants)
 - Individual segment map views with path geometry display
 - Comprehensive segments map view with filtering support
 - Overlapping segment detection and selection interface
 - Status-based color coding for visual segment identification
 
 - 
Path Data Management: Full support for geographic path data
- KML, KMZ, and GeoJSON file format support
 - Enhanced KMZ processing with multi-layer extraction
 - Automatic 3D to 2D coordinate conversion
 - Path geometry validation and error reporting
 - Automatic path length calculation using projected coordinates
 - Path data export as GeoJSON files
 
 - 
Advanced Map Features:
- Interactive controls (pan, zoom, fit-to-bounds)
 - Fallback visualization with straight lines when path data unavailable
 - Site markers for segment endpoints
 - Detailed segment information panels
 - Path data availability indicators
 - Responsive map controls and layer switching
 
 - 
Enhanced Data Model:
path_geometryfield for storing MultiLineString geometriespath_length_kmfield with automatic calculationpath_source_formatfield tracking data originpath_notesfield for additional metadata- Geographic helper methods for coordinate handling
 
 - 
UI/UX Improvements:
- Template extensions for Circuits, Providers, Sites, Locations, and Tenants
 - Custom table columns showing path data availability
 - Date status indicators with visual progress bars
 - Enhanced filtering including geographic data availability
 - Improved navigation with map view integration
 
 - 
API Enhancements:
- Separate serializers for list and detail views (performance optimization)
 - Geographic data endpoints for map visualization
 - GeoJSON export capabilities
 - Path bounds and coordinate data in API responses
 - Enhanced filtering on geographic fields
 
 - 
GraphQL Support:
- Complete GraphQL schema with geographic field support
 - Custom scalar types for path bounds and coordinates
 - Lazy-loaded relationship fields for performance
 - Geographic data queries and filtering
 
 
Changed
- Breaking: Upgraded to Django 5.2.3 with GeoDjango support
 - Breaking: Added PostGIS dependency for geographic features
 - Breaking: Modified database schema to include geographic fields
 - Improved segment form with path data upload capability
 - Enhanced segment detail view with geographic information
 - Updated table layouts with new path-related columns
 - Refactored status choices to use configurable ChoiceSet system
 - Improved error handling for geographic data processing
 
Fixed
- Resolved migration conflicts during table renaming process
 - Fixed segment validation to properly handle location-site relationships
 - Improved date validation with better error messaging
 - Enhanced KMZ file processing for complex archive structures
 - Fixed coordinate system handling for accurate length calculations
 
Technical Details
- Added 
geopandas,fiona, andshapelyas core dependencies - Implemented comprehensive GIS utility functions
 - Added extensive JavaScript map handling with modular design
 - Created reusable template components for map functionality
 - Enhanced error handling and logging for geographic operations
 - Implemented proper geometric validation and sanitization
 
Migration Notes
- Database Migration Required: New geographic fields require PostGIS
 - Dependency Installation: Geographic libraries (GDAL, GEOS, PROJ) required
 - Configuration Updates: May need GeoDjango configuration updates
 - Data Migration: Existing installations will have empty path geometry fields
 
Full Changelog: v4.3.0...v5.0.3