📖 Navigation: User Guide | Release Notes | https://pantheon.tech/
Release notes - 4.x
Release 4.4.0
New features
Support for SONiC 4.5.0
This version of SandWork provides official support for SONiC 4.5.0
Improvements
Add definition of the cookie authentication into the OpenAPI schema
Automate validation of OpenAPI spec
[Vulnerability Scan] Review scan results & validate fixes
Cleanup ConfigurationSnapshotGrpcService
Find out what roles operations team have and if they need to do staging
[UI] Update port number column in VNI Switchport mappings
[UI] Update UI Regarding New Changes for dc-admin Role
[Documentation] Add OS upgrade feature description based on user guide
[DevOps] Update application configs to contain logging path
Delete deprecated reinstall devices from rbac
Allow dynamic definition of SiteRouters per VRF
Create execution service for the ImportDataCenterRequest
Bug fixes
Unable to modify or delete the Portchannel from the portal
NPE when device doesn't return any interfaces
[UI] Switchport mappings are selectable, even when they they cannot be mapped
[UI] Unselectable worflow queue option
[UI] Add missing translations for Ignored intents workflow
[API] User with dcadmin role can execute stage transitions via APIs
[API] RBAC - API Returns 500 - Exception occurred on calling external gRPC server
[API] Provide more detailed information for login fails
[API] Add Validation for Device ID Input
[API] Parser should not return service name when request parsing fails
[API] Receiving 200 status code while API response is an error message
[API] Change spelling to Neighbors (American spelling)
PortChannel reconciliation push failed
Important file model changes
No new models are included in this release.
Release 4.3.3
Improvements
[UI] Include a legend explaining what each color represents in the configuration
Bug fixes
Display Blueprint name column
NPE in portal backend after dc file import
Cannot push multiple loopbacks to a device
[UI] [Performance] Import DC Plan file: too large outputs
[UI] username/userID duplicated in workflow views
[Docs] Update OS-Upgrade docs to reflect current behavior and recent changes
IPv6 BGP neighbors reconciliation issues
Missing origin=false configuration in the intended Greenfield config
Do not delete Network Intents when decommissioning device
Decommission of border leaves do not remove service intents from inventory
Import of exported DC plan file does not work in certain cases
[UI] Add missing translations for Ignored intents workflow
Release 4.3.2
Improvements
[UI] Adapt to per POD export
[API] Re-implement dc plan file export
[API] Make Greenfield delta always informative
Bug fixes
NPE during reconciliation when greenfield was not imported
[UI] GFS view fails for empty configs
Release 4.3.1
New features
No new features added.
Improvements
[UI] Warnings are shown in console
Bug fixes
Unable to upload Greenfield file
While importing DC plan file facing issues
[UI] Workflow queue stops responding when workflow details return 500
[API] OS-Upgrade - Config snapshot backup - Description - WorkflowID is not correct
[UI] Loopback validation
[UI] Audit log inspect dialog disappears in a second
[UI] Topology view shows one link only in the Link details
[API] "wipe-inventory-db" is not clearing ignored intent records for namespace
[UI] Delete intents - no warning when device not in MANAGED stage
[UI] Ignored Intents page: User can't edit scope in the dialogue
[UI] Ignored Intents: After editing intent and scope in a dialogue, data can't be saved
[UI] Reconciliation Port Breakout: table needs adjustment
[API] Device Order Not Fixed in Error Message
[UI] Switchport mapping page: refresh is not working
[UI] No sorting for ports in port groups tab
[API] Second consecutive workflow targeting same device stuck
[UI] Editing radius server creates a new one instead of updating the edited row
[API] Edit existent network segment - managed config and other config flags are ignored
[DevOps] RBAC - Update of user details results in setting password reset required
Important file model changes
No new models are included in this release.
Release 4.3.0
New features
Reconciliation - Ignore parts of configuration (UI part)
The API part of the new feature was introduced in the release 4.2.0 and the UI part is included in the current release. Added ability to ignore specific service intents that are configured on a device but are not stored as service intents in Inventory Service (extra service intents on a device). Ignored service intents will not be shown by default in reconciliation results and will not block operations requiring successful run of reconciliation (without any conflicts), such as device staging.
After showing reconciliation results to a user, user has an ability to select specific extra service intents and mark them as ignored. Identifiers of ignored service intents will be persisted in a database and will be ignored during subsequent runs of reconciliation.
Ignored service intents may be scoped per device, per POD or per DC (meaning that specific service intent will be ignored only on specific device, on all devices in specific POD or in whole DC).
User is able to view and manage (create/remove) ignored service intents in new UI view. Ignored service intents can be imported via Brownfield file.
New validations were added to creation of any service intent, whether the specified intent is not marked as ignored (i.e. if Portchannel with name "Portchannel1" is ignored, user cannot create new Portchannel with same name). Similarly, when adding new ignored configuration, it will be checked whether specified service intent doesn't already exist in specified scope.
Loopbacks, portchannels and switchport mappings are currently supported.
DC plan file - per POD import
Allow user to import and re-import DC plan file per POD. This use-case is fundamental change to how DC plan file import worked before and is also related to the resource allocation file and the greenfield use-cases.
OS Upgrade - Reliability & hardening update
Increased timeout duration for ‘reboot’/'warmboot' and ‘ImageInstall’ (which also transfers the OS image). Obtain recommended timeout values from Broadcom device vendors.
Allow configuration of all timeouts via UI for each execution of the OS upgrade process. Introduced advanced settings for OS upgrade UI wizard.
Improved audit logs with filterable tags for easy status tracking. Added high-level upgrade progress indicators.
Immediate failure report for devices, flagging them for quick debugging.
Parallel upgrade workflows to expedite processing.
Improvements
[API] Simplify implementation of async tasks and executors
[API] Add description about what is contained in active/free ports
[API] Add logging of the get requests to the service controller
[API] Silent failure during gNOI copy config
[API] Restrict the user to certain AAA authentication methods
[API] Optimize size of reconciliation audit logs
[API] SNMP reconciliation - listening interface
[API] Improve test stability - InventoryService - InventoryView test
[API] Portchannel delete - device not in managed stage - message - sort devices
[DevOps] 4.2.0 is not working without rbac namespace and domain
[Docs] Document user password strength management
[Docs] Document loopback creation validation changes
[Docs] Document Last Login feature
[API] Reinstate labels to inventory file
[UI] Add ability to view workflow outputs as raw json
[UI] Changed Delete requests to Post requests
[UI] Implement left sidebar scrolling
[UI] Reconciliation switch form - move to a separate component
[UI] Adapt to adjusted api/inventory/loopback/create/validate
[UI] Add redirection to Staging page on notification device is not in managed stage
[UI] Add information on hover on portcount
[DevOps] Cleanup ingress helm chart definitions
Bug fixes
[API] Improve SNMP Configuration Reconciliation Robustness
[API] Creating network segment as a user without rights returning error 500
[API] /api/device/stage/transition/os_install_failure-managed - remove optionalMaxMed
[API] No input validation for cidr format NS
[API] Creating portchannel in PODn with ports as DOWN_LINK results in JAVA error
[API] OS-Upgrade - order stages/rooms in error messages
[API] 2 workflows started in the same time, affecting same device - second one TIMED_OUT
[UI] Wrong text color for dark mode in left sidebar collapse button
[API] NS merge update operation fall into Error: PERMISSION_DENIED
[API] checkForInconsistency is returning self inconsistencies for edited network
[API] While checking workflow results getting internal 500 error
[API] Unable to clear lock in case of timeout workflow
[API] Conductor task status moved to SCHEDULED after heartbeat
[API] api/inventory/loopback/create/validate - should be able to return a response for multiple fields
[API] GFS SNMP Reconciliation
[API] Workflow scheduler fails with timeout
[API] Service controller - gracefully handle lost connection to conductor
[UI] Portal Login Redirection Issue
[UI] User Inputs - Labels management - Incorrect Formatting of Certain Property Names in inputMetadata
[UI] Dashboard Widgets selection unavailable after route change
[UI] Dashboard - Incorrect warning message regarding inventory file
[UI] Dashboard wrong icon
[UI] GFS config results not showing skipped devices
[UI] Updating a existing IPv6 network segment (NS MERGE) fails due to M/O flags not checked
[UI] Updating NS without IP address do not disable Save button
[UI] RBAC - Edit user details - Save button with duplicated id
[UI] RBAC - Roles cell - 2 roles alignment
[UI] Label Management: Select POD doesn't disappear after workflow is completed and Refresh is clicked
[UI] Label Management -Interfaces Dialog issues
[UI] Last Login Visible on Workflow Queue Instead of Permission Restriction
[UI] Remove Labels - missing required field validation
[UI] Workflow details - Raw outputs button overlaps with message
[UI] Workflow Queue Sidebar Blinking
[UI] Workflow Queue View User Selection on Reload disabled
[UI] PortChannel mapped vlans are not shown in switchport creation wizard
[UI] User logs in - too many duplicated requests
[UI] Last login - inconsistent date format
[UI] Workflow details - Fix Raw Inputs button attribute
[UI] Reconciliation Scrolling issues
[UI] Filter input value is not retained when no matching results are found, limiting user control
[DevOps] Fix bugs in version bumping/release jobs
Known issues
[API] OS-Upgrade rerun failed with NullPointerException at setOsUpgradeStatus
[API] OS-Upgrade - Config snapshot backup - Description - WorkflowID is not correct
[API] OS-Upgrade - Device ends up in OS_INSTALL stage when workflow failed at Cleanup
[API] OS Upgrade - Cleanup - Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)
[API] OS-Upgrade - inconsistency - ports and traffic after upgrade
[API] DC plan - rename device without fixing neighbors - unclear error
[API] Second consecutive workflow targeting same device stuck
[UI] Loopback validation
[UI] Worflow queue stops responding when workflow details return 500
[DevOps] SandWork UI audit log inspect dialog disappears in a second
Important file model changes
Brownfield file
Added ability to define mclags in BrownfieldPod.
Inventory file
Changed blueprintName to topologyName in Device entity.
Changed property labels from type List<Object> to type List<String> in Device entity.
DC Plan file
Reworked file to support per-pod import.
Don't forget to import Brownfield file containing removed intents from DC-plan file after importing DC-plan file.
Release 4.2.1
New features
No new features added.
Bug fixes
OS Upgrade
Early Failure Reporting: Added the possibility to validate the OS upgrade input before actual execution to immediate failure reporting for devices, flagging them for quick debugging.
Enhanced Audit Logging: Improved audit logs with filterable tags to simplify the OS upgrade status tracking, and also added periodic high-level upgrade progress indicators. Added possibility to customize the period of such high-level logging via the UI.
Improve Timeout Adjustments & Configurable Timeouts: Introduced advanced settings for OS upgrade in the UI wizard, which allow to customize the OS upgrade process operations' timeouts via the UI. Increased default timeout duration for REBOOT/WARMBOOT and INSTALL_IMAGE (which also transfers the OS image).
[UI] OS-Upgrade - SkipHealthCheck checkbox misbehaves
[UI] OS Upgrade - Some settings are null in workflow input
[UI] OS Upgrade - Skip Healthcheck Validation checkbox
[UI] OS Upgrade - Progress log interval - wrong type
[UI] OS Upgrade Validation - Raw Outputs tab is not informative
Don't fail OS Upgrade when optional validations fail
Remove os upgrade status from inventory if OS upgrade fails during reconciliation
[SD][UI] Add ability to execute standalone OS upgrade validation
[SD][UI] Extend OS upgrade UI with optional progress log interval
Extract OS upgrade pre-validation as standalone workflow
[API] Improve reboot/warmboot handling
Extend OS upgrade workflow with timeout configuration
Release 4.2.0
New features
RBAC - Integration with 3rd party systems
Integrated RBAC with OIDC for authentication of a user. User roles and permissions will be stored in the RBAC database.
OIDC is used for authentication of a user only. If the user is authenticated by an OIDC (e.g. OKTA) but is not present in the RBAC database, such user will be created with default roles in namespaces based on the RBAC configuration and user domain.
OIDC users can be created in bulk even before logging in for the first time.
When such OIDC user is being created, password is not supplied (nor stored) to the RBAC component.
Authentication is done through the OIDC API.
Network segment - merge operation
It adds ability to update not only DHCP relays, but also add, remove or change subnet, subnet anycast gateway and in case of IPv6 subnets - RA M/O flags. It is done by merging existing network segment with provided input parameters (described below).
Each network segment can have:
IPv4 subnet + IPv4 subnet anycast gateway
IPv6 subnet + IPv6 subnet anycast gateway + RA M/O flags
zero or one IPv4 DHCP relay
IPv4 DHCP relay can be configured only if this network segment contains IPv4 subnet details
zero or one IPv6 DHCP relay
IPv6 DHCP relay can be configured only if this network segment contains IPv6 subnet details
When network segment is updated, the workflow also reconfigures all devices where this particular segment is used.
Reconciliation - ignore parts of configuration (API part only)
Ability to ignore certain parts of conflicting device configuration in order to continue in device stage promotion/demotion
Added ability to ignore specific service intents that are configured on a device but are not stored as service intents in Inventory Service (extra service intents on a device). Ignored service intents will not be shown by default in reconciliation results and will not block operations requiring successfull run of reconciliation (without any conflicts), such as device staging.
After showing reconciliation results to a user, user has an ability to select specific extra service intents and mark them as ignored. Identifiers of ignored service intents will be persisted in a database and will be ignored during subsequent runs of reconciliation.
Ignored service intents may be scoped per device, per POD or per DC (meaning that specific service intent will be ignored only on specific device, on all devices in specific POD or in whole DC).
User is able to view and manage (create/remove) ignored service intents in new UI view. Ignored service intents can be imported via Brownfield file.
New validation step will be added to creation of any service intent, when the specified intent is not marked as ignored (i.e. if Portchannel with name "Portchannel1" is ignored, user cannot create new Portchannel with same name). Similarly, when adding new ignored configuration, it will be checked whether specified service intent doesn't already exist in specified scope.
UI implementation will be added in 4.3.0 release.
Improvements
[API] Allow creation vxlan network segments in multiple pods in a single create REST Api request
[API] DHCPD config request responses with "application/json" content-type
[API] Run checkstyle for ZTP and SchedulerApp
[UI] User should be able to pick up and choose the dashboard gadgets and be able to arrange them
[API] Remove RBAC dependency from service controller
[API] [UI] Separate RAIDUS and AAA workflows
[API] Bump springboot to 3.4.2 version
[UI] Introduce "Last Login" information to users
[API] Update Endpoint for loopback Validation
[API] [UI] User password rules management
[API] Inventory file import - show progress in logs
[DevOps] Controller-upgrade - Include need to backup DB before upgrade
[API] Update os upgrade service to work with Operation result
[API] Optimalize Recocnciliation for multiple devices
[API] Fix port settings, port groups reconciliation, push
[UI] Utilize loopback creation input validation endpoint
[UI] Use new endpoint to create NS
[UI] Adjust to port settings reconciliation changes
Bug fixes
NPE in portal backend when authorizing workflow (with no workflows uploaded)
[API] User can create multiple loopbacks with the same IP address
[UI] Absent Workflow type
[UI] Workflow not displayed in workflow queue
[UI] User Inputs - Portchannel - Egress
[UI] User inputs - Switchport mapping - make Tagging consistent
[UI] Fix incorrect setting property
[UI] GFS remove extra config user inputs: no translation
[UI] User inputs Port Breakout Overwrite, NS remove: no translation
[UI] Workflow Inputs: Snapshots related: make columns consistent
Known issues
[UI] Dashboard Widgets selection unavailable after route change
[API] No input validation for CIDR format NS
[API] OS-Upgrade - Config snapshot backup - Description - WorkflowID is not correct
[UI] User Inputs - Labels management - Incorrect Formatting of Certain Property Names in inputMetadata
[API] 2 workflows started in the same time, affecting same device - second one TIMED_OUT
Release 4.1.0
New features
Workflow details - Workflow inputs
In workflow details, process workflow inputs and show relevant information to a user.
Workflow details contain raw inputs in a json format, which consist mostly of (internal) database IDs that user doesn't understand. Process these inputs, query relevant information from backend and show them to a user in workflow details.
Support for SONiC 4.4.1
SONiC 4.4.1 officially supported on with this version of SandWork.
Major improvements
Update to Java 21 and update of project dependencies to latest versions
Improvements
[UI] Adjust loopback reconciliation delta
[UI] RBAC Reset Password Improvement
[UI] Extend reconcilition delta to include dhcp relay agent-information-option
[UI] Adjust push port settings
Add dependency management to device-client-stfp module
Fix warnings in inventory
Extend multisite response data with "listOfPodNames" property
Push port setting does not allow to configure port group member
Don't run automatic gnmi check when there is no device imported via inventory
Inconsistent Results from Interface Filter
Bug fixes
Unable to extend vlans from one pod to another
Unable to change the speed
[UI] Global filter - Devices - Latest Snapshot - Search only works for timestamp
[UI] Reconciliation Loopback ipv4 is not shown
[UI] Can't push port settings with speeds 1 Gbps ↔︎ 10 Gbps
[UI] Port Settings Reconciliation: 10 Gbps intent speed is not visible
[UI] Impossible to change port speed
[UI] System-logs page initial default filter is not working properly.
[UI] Cable check visualization issues
[UI] Clicking on toast magnifying glass icon results in errors in console
[UI] Push port settings: edit the warning to prevent user from pushing port speed
[UI] Upload snapshot - device-configuration-snapshot/store - Cannot parse request. Invalid property: [deviceId]
[UI] Unable to scroll to last item in devices view
[UI] Workflow Queue details - OS Image Update - missing workflow name
[UI] OS-Upgrade - Can be executed with Validation ON
[UI] Prevent user from creating multiple loopbacks with the same IP address
[UI] "Add Radius Server" dialog appears twice in the DOM
[UI] Unprocessable Content Error and Unexpected Redirect on Workflow Queue at High Zoom Levels
[UI] Display Issue with freePorts and activePorts Values in Table
[UI] Adjust Filter Display for Multi-Item Selection and Align Clear Filter Option
[UI] Inconsistent Request Behavior in First Input Field Filter Across Pages
[UI] PortGroup - change speed of PortChannel member should not be allowed
[API] Reconciliation - getPairedLinksToLinks - java.util.NoSuchElementException: No value present
[API] Successful push switchport mapping creates reconciliation failure
Logging takes way too long
[API] OS-Upgrade - Cleanup stage - unstable reconciliation results
[API] Reconciliation: Cannot deserialize value
Exception thrown in portal backend logs when greenfield not initialized
Audit logs generated during inventory file import/connectivity check are too big
[API] OS-Upgrade - make sure nulls are not causing exceptions
[Backend] Reconciliation did not catch changing of IPv4/IPv6 Loopback addresses on devices
Release 4.0.0
Major improvements
Support for SONiC 4.1.6
Significant speed improvements for loading and processing data resulting in UI speed up
Introduction of backend paging to speed up UI loading
Refactor of device communication to accomodate larger scale connections
Improvements
[API] RBAC: remove rbacsuperadmin from api/rbac
[UI] Remove IP addresses restrictions for recreating loopbacks defined in DCPLAN
[Backend] Remove IP addresses restrictions for recreating loopbacks defined in DCPLAN
[API] Improvement: failed cable check error message
[UI] Adjust Exporting of Inventory and DC plan Files to new endpoints