Release notes - 4.x

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

Copyright © 2022-2026 PANTHEON.tech. All rights reserved.

All content, including text, graphics, and documentation, is the proprietary property of PANTHEON.tech.
Any unauthorized use, reproduction, or distribution of this material without express written permission is strictly prohibited and may violate copyright laws.