Release notes 3.23Release Content Summary The following table provides a list of the customer facing / relevant changes in this release. Not all platform backend changes are included in this list. Domain Type Notes Support Ticket Backend Bug The API call “moveNode” will create a new node under the new parent and the old node will be deleted. CS5478563 Backend Bug When a node is moved to a new location, cds linked to the old node will be deleted. This new behavior will prevent having CDS which are linked to a non-existent node. CS5672348 Backend Bug Documented below endpoints in “/docs/api_v1.html”: “/api/v1/data/include/<nodeId>/ancestor_nodes”“/data/node/<nodeId>/included_in” “api/v1/data/include/<CdsId>/pending” CS5650752 CS5513568 Backend Bug Solved the issue of exporting a CDS with a tag throwing an error because the tag name is linked to another CDS which is deleted. CS5438208 Backend Enhancement Implemented a replacement logic to switch from “hard” includes to “top-level” includes in the data model. This replacement logic helps in improvig the performance of exporter calls by reducing the CDS size. Backend Enhancement In nodeTypes, it is possible to reset the value of maximum allowed child nodes. When a negative value is set for maximum allowed child nodes, the value will be set to empty. Backend Enhancement New endpoint is implemented to delete multiple nodes Backend Enhancement A new flag is added in a schema in the MySQL database which helps to process include nodes Backend Enhancement A new tenant preference is introduced to ensure that no duplicate node names exist across all changesets UI Bug In Firefox and Edge browsers, if dynamic loading of static tree is enabled, entire data model is not loaded anymore. UI Enhancement In case of huge config data sets, it is possible now to load them in the browser and run exporter and validator logic against them. UI Enhancement A new filter called “User” is added to the Data Changesets page. This filter helps to see all changes done by a specific person. CS5672286 UI Enhancement A new visual indicator is added for array flavoured nodes in the data model CS5714436 Backend Vulnerability Removed Apache’s log4j-core library as dependency for core and ml jars CVE-2021-44228, CVE-2021-45046 Details – “top-level” includes in the data model Includes are a powerful concept to avoid maintaining several copies of the same data, and also enables a level of referential integrity between different parts of the data model Extending the current include functionality, Sweagle 3.23 introduces the possibility to only include the selected node and its direct cdi's, but without its child nodes. Among other benefits, using this concept where applicable can help reduce cds sizes and thus overall performance In the UI, this can be done by unselecting the "Copy underlying structure" flag when including a node. After the node selected for include is added in the new dimension by disabling the “Copy underlying structure” flag, the data model looks like below screenshot For API-calls, a new (optional) parameter "processChildren" was added to existing “Include” related API endpoints To maintain backward compatibility, if the "processChildren" parameter is omitted it will default to "true", meaning the whole structure will be included. To only include the "top level node", this parameter should be set to false. The 2 API endpoints which have “processChildren” flag. POST /api/v1/data/node/<node_ID>/add_link?processChildren=false&changeset=<changeset_ID>&reference=<referenceNode_ID> POST /api/v1/data/include?parentNode=<parentNode_ID>&referenceNode=<referenceNode_ID>&processChildren=false&changeset=<changeset_ID> Above 2 calls can be used interchangeably. Details - The API call “moveNode” doesn't move the node in the GUI The moveNode action is basically the creation of a new node in the target location with the exact same content, and the deletion of the node at the original location. In case the node contains a cds: a new cds will be created. The cds at the original location will be deleted as part of the deletion of the node. The new cds will therefore not contain the previous cds historyin order to reach to history of the old cds, customers have to scope into an older changeset than the one that they did the move action. Then they can find the old cds and its history. Details – CDS linked to a non-existent node When API call “moveNode” is performed on a node, old cds data linked to the node will be deleted. This will solve the issue of cds linked to a non-existent node. If there are any existing cds in the data model which are linked to a non-existent node, please reach out to our support team to discuss on a procedure to clean the problematic cds. Details – New tenant preference to check duplicate node names A new tenant preference has been added which performs an additional check whether any node_name already exist in a different changeset, which was causing issues in previous versions for fast, concurrent processes on multiple cores. This preference is set to false by default. In order to enable this preference, simply set the following preference to true via the tenant preferences: validation.node.double_name_check = true Details – A new visual indicator for array flavoured nodes 3.23 contains a new visual indicator (icon in the tree) to show if a node is defined as an array node, and therefore it would allow to contain duplicate node names. This visual indicator helps in identifying nodes which have been created as type “array”. Every such node will be allowed to contain duplicate node names as children to it. Note: This visual indicator is a pure UI feature and will not allow to "convert" from “array” type to “normal” type or vice versa, nor will this be supported in the future. Details – “User” filter in Data Changesets page Sweagle 3.23 version allows to filter the changesets list on filter “Username”.