Improvements were made to the configuration area under > Configuration:
The menu entries in the left navigation bar were rearranged for clarity. They now follow a more logical structure.
You can now access a list of all projects. The list can be filtered, sorted and grouped. The configuration can be saved as a so-called “view”.
List of all projects
Tests have an owner
You can now easily see who is responsible for a test. Simply right-click on a test in
Result
and select
Open details page
from the context menu.
The General information panel now includes a field called Owner. This field indicates who is responsible for the test. Here you see the owner’s user name and e-mail address (if available), as saved under > Configuration > User management > Users.
You can change the test’s owner, i.e. to transfer ownership to a different user. To do so, click on the
Edit
button in the upper right corner and select a different user from the Owner drop-down list.
Owner field
List of all changes
New feature PROJECT
Test case information is now displayed in the project requirements summary.
[#7671]
This feature relates to the requirements grid in
Project.
Specifically, it relates to the PDF summary, which can be accessed by selecting requirements in the grid, right-clicking and selecting the option
Export summary
from the context menu. An additional column called Test case was added to the report. This column displays the name of the corresponding project test case. The column provides more context in situations when the requirement name alone is not sufficient.
Test case in the requirements summary
New feature PROJECT
The configuration area now includes a project list.
[#7599]
The project list can be accessed by navigating to > Configuration > Projects. Here, admin users can see an overview of all projects directly within the configuration area. That means, they no longer need to navigate to
Project.
to see a list of all projects. The list can be filtered, sorted and grouped as needed.
List of all projects
New feature PROJECT
The project list now includes milestone columns.
[#7660]
This feature relates to the project list, which can be accessed by navigating to > Configuration > Projects. The grid now includes a column group called Project management. Within this group, users see the columns Next milestone and Milestone due date, which display the name of the next upcoming milestone and its due date.
This feature relates to the project list, which can be accessed by navigating to > Configuration > Projects. Now when users configure the grid (e.g. customize which columns are visible, how the columns are grouped, which filters are applied), they can save the configuration as a so-called “view” and even share this view with other users. This way, the configuration can easily be accessed again at a later time.
List of views
New feature RESULT
Context menus were redesigned in the attachment panels. Additional options were added.
[#7628#7658]
This feature relates to the test attachment grids in
Result,
e.g. the tabs for photos and videos, documents, channel data, measurement data, etc. Specifically, it relates to the context menus, which appear when users right-click on a piece of data in these grids. The context menus were redesigned. They now include the following options (example taken from the photos tab):
Preview: Opens the selected images in a carousel.
Compare: Opens the selected images in a side-by-side comparison. Note: This option is available if you selected multiple images.
Open with: Submenu with external apps/add-ons.
Add: Opens a pop-up window where you can upload additional files.
Delete: Deletes the selected images.
Copy: Copies the text from the selected cell.
Copy with headers: Copies the text from the selected cell and the name of the header.
Copy with group headers: Copies the text from the selected cell, the name of the header and the names of any grouping levels.
Download: Downloads the selected images.
Fetch from 3rd party backend: Synchronizes the data.
This feature relates to the test details page, which can be accessed by right-clicking on a test in
Result
and selecting
Open details page
from the context menu.
The General information panel now includes a field called Owner. This field indicates who is responsible for the test. Here you see the owner’s user name and e-mail address (if available), as saved under > Configuration > User management > Users.
It is possible to change the test’s owner, i.e. to transfer ownership to a different user. To do so, click on the
Edit
button in the upper right corner and select a different user from the Owner drop-down list.
Owner field
New feature MISC
It is now possible to restore the previous version of an add-on.
[#7516]
This feature relates to the add-ons, which can be found by navigating to > Add-ons. Specifically, it relates to the add-on’s history, which can be found by right-clicking on the add-on, selecting
Details
from the context menu, and expanding the History area. Users can now click on the button to revert the add-on back to a previous version. This helps developers, e.g. easily switch between different versions (test vs. production) while developing the add-on or in case of bugs.
Restore previous add-on version
New feature MISC
Keyboard arrow keys can now be used to navigate in all grids.
[#7392]
This improvement relates to the grids in SCALE.sdm. Users can now press the keyboard arrow keys to switch between lines and columns in the grid. This allows users to navigate more quickly.
The up/down arrow buttons switch between lines in the grid.
The right/left arrow buttons switch between columns in the grid.
Press shift + arrow button to select multiple lines or columns.
Use the mouse to select specific cells in the grid.
This feature relates to the MDM attributes, which can be found by navigating to > Configuration > MDM > Attributes. Now when you right-click on an attribute, the context menu includes an option called
Duplicate.
Users can click on this option to create a copy of the attribute.
Context menu with 'Duplicate' option
New feature MISC
Object permission checking for nested GraphQL objects.
[#7290#5795]
New feature MISC
Phex was introduced as an MITM proxy to guide file uploads.
[#5301]
File uploads were previously handled by the application service directly, blocking resources on slow uploads and limiting the processing time for large files to a maximum of 60 seconds.
A new service called Phex was introduced, which acts as an MITM proxy and intercepts all file uploads. It handles and prepares them prior to forwarding the request to the application. This saves resources and reduces the time it takes to finalize the file upload.
If using custom container registries, make sure to synchronize the new container phex.
New feature MISC
There is a new permission framework to use policy endpoints (infra only).
[#7539]
New feature MISC
Users who have been marked as staff are no longer automatically able to view the jobs from all users.
[#7740]
This feature relates to the permissions that are necessary for viewing the jobs of all users under > Configuration > Jobs. In the past, users who were marked as staff were automatically able to view all tasks. This has been changed. Users now need the permission Can view all tasks in order to view the jobs of all users.
Background information: This change was made because the “staff” role also includes other permissions, i.e. the ability to access the admin area under > Admin area. There are cases when users, e.g. supporters, should be able to view all tasks, but they should not be able to access the admin area.
New feature MISC
Versioning was added for client states. Versioning is necessary so that it will be possible to update client states in the future.
[#7755]
New feature API
A mutation was added for autoselecting features for a user.
[#7596]
New feature API
A mutation was added for cloning MDM attributes.
[#7560]
New feature API
Settings were reworked into a one row table. Confidential fields were encrypted so that they are never exposed through the API.
[#7644#5472]
New feature API
Test case assignment was enabled for requirements.
[#7561]
The mutation addMdmTestCasesToRequirementMutation was added, similar to the existing addMdmRequirementsToMdmTestCase mutation.
Improvement PROJECT
The term 'private' status report was renamed to 'draft' status report.
[#7602]
This improvement relates to the status report templates in
Project.
Starting in version 1.0.0, the behavior of status reports was changed so that multiple users can contribute to a so-called “private” status report simultaneously. With this change, the term “private” status report became misleading, as this is no longer a personal (private) report, but rather an accessible (draft) report. The wording was changed accordingly.
Draft status reports
Improvement RESULT
The attributes tab was updated. It now includes options for views, filters and column width.
[#7472]
This improvement relates to the attributes tab in
Result.
The following changes were made to the layout:
The following buttons were added next to the quick filter (from left to right):
Clear all filters: Resets all column filters and the quick filter.
Autosize: The columns in the grid are adjusted to fit the content.
Reset: Resets the filtering, sorting, column order and grouping to the default values.
The tabs Columns, Filters and Views were added to the sidebar on the right side of the screen.
Attributes tab
Improvement RESULT
The list of add-ons now loads more quickly.
[#7784]
This improvement relates to the context menu, which appears when right-clicking on a test or simulation in the
Result
test grid. In the past, the Add-ons entry was grayed out and took quite a while until it was enabled. This has been improved. The context menu entry now loads more quickly.
Improvement RESULT
The side panel was removed from the 'Presets' and 'Preset bricks' pages.
[#7659]
This improvement relates to the following pages:
> Configuration > Preset > Presets
> Configuration > Preset > Preset bricks
In the past, users could click on a preset (or preset brick) in the overview and then click on to expand a side panel, displaying read-only information. The side panel was removed, since it displayed the same information as in the grid.
Improvement MISC
Context menus were modified for consistency in several areas. They now all follow the same design guidelines.
[#7627#7631#7632]
This improvement relates to the context menus in the following areas:
The Jobs area, which can be accessed by clicking on in the toolbar
The Jobs area, which can be accessed by navigating to > Configuration > Jobs
The context menus were compared and modified for consistency as needed. That means, e.g. they now all use the same wording, icons and order of entries. This improves the user experience and makes the application more intuitive.
Improvement MISC
Menu entries were rearranged in the configuration area.
[#7654]
This improvement relates to the configuration area, which can be accessed by navigating to > Configuration. The configuration area has a vertical navigation bar on the left, which you can use to access various menus within the configuration area. The menu entries were rearranged in this vertical navigation bar. They now follow a more logical structure (see the comparison below).
Old structure:
MDM
Attributes
Requirements
Test cases
Attribute components
Attribute value lists
Attribute values
Calculation rules
Disciplines
Data classifications
Result
Presets
Preset bricks
Templates
Project
Status report templates
Add-ons
User content
User management
Users
Groups
Access tokens
Global roles
Project roles
Announcements
Jobs
Operational Settings
New structure:
Projects
Templates
Status report templates
Test templates
Preset
Presets
Preset bricks
MDM
Attributes
Requirements
Test cases
Attribute components
Attribute value lists
Attribute values
Calculation rules
Data classifications
Add-ons
User content
User management
Users
Disciplines
Groups
Access tokens
Global roles
Project roles
Announcements
Jobs
Operational Settings
Improvement MISC
The styling of hyperlinks was improved throughout the application.
[#7507]
Depending on the SCALE.sdm theming, hyperlinks were displayed too prominently. This has been improved. Links are now styled globally, i.e. the style definitions go into the global theming file. Hyperlinks now use the primary color and are underlined.
Improvement MISC API
Warnings from the parse process of a preset are now provided via API as part of the preset.
[#5476]
Feature removal MISC
The is_staff flag is no longer set for OIDC users.
[#7760]
Bug fix PROJECT
Empty row groups can now be expanded correctly in the project requirements grid.
[#7612]
This fix relates to the requirements grid in
Project.
In the past, if the grid was grouped by a column which had null/none values, then it was not possible to expand the row. This has been fixed.
Bug fix PROJECT
The grid view is now retained when using edit mode.
[#7060]
This fix relates to the requirements grid in
Project.
In the past, sometimes when users clicked on edit mode, a different view was applied. That means, the grid configuration changed, e.g. and displayed different grouping levels. This behavior has been fixed. The view no longer changes when using edit mode.
Bug fix PROJECT
The status report template edit page now redirects to the correct URL after saving.
[#7772]
This fix relates to the page for editing status report templates, which can be accessed by navigating to > Configuration > Templates > Status report templates, right-clicking on a line in the grid and selecting Edit from the context menu. In the past, after saving the changes, the application navigated to an invalid URL. This navigation URL has been corrected.
Bug fix RESULT
The 'Select status target' pop-up window now only lists public status reports.
[#7757]
This fix relates to the Set as project status function in
Result.
Specifically, it results to the Select status target pop-up window. In the past, the Base report drop-down list sometimes displayed private status reports. This behavior has been fixed. The drop-down list now only displays public status reports.
Bug fix RESULT
The 'Status' column now loads correctly when applying a calculation rule.
[#7828]
This fix relates to the calculation rules in
Result.
Specifically, it relates to the Status column, which informs users how many calculation rules potentially match the test, and how many calculation rules will be applied upon saving. In the past, this column did not display any information. Instead, it displayed a progress bar, which continued loading endlessly. This has been fixed.
Bug fix RESULT
The triangle button to access calculation rule details is now visible again.
[#7847]
This fix relates to the calculation rules in
Result.
Specifically, it relates to the button, which is displayed on the far right side of the screen. Users can click on this button to access further information that is helpful for debugging. In the past, this button was missing from the screen. This has been fixed.
Bug fix RESULT
The value inf is now accepted as a valid value in the attachment grid.
[#7820]
This fix relates to the Channels tab in
Result.
In the past, the tab did not load correctly when there were inf values (the tab displayed “ERR”). This behavior has been fixed. The value inf is now accepted.
Bug fix RESULT
When grouping data in the test grid, the group levels now display the formatted value instead of the raw value.
[#7681]
This fix relates to the test grid in
Result.
Specifically, it relates to situations when the tests are grouped by a column with a display unit, e.g. the column Vehicle speed [km/h]. In the past, the grouping levels showed the raw value (e.g. 12.5 m/s) instead of the formatted value and display unit (e.g. 45 km/h). This has been fixed.
Bug fix MISC
Context menu entries are now disabled for external test cases.
[#7537]
This fix relates to the MDM requirements grid, which can be accessed by navigating to > Configuration > MDM > Requirements. Specifically, it relates to situations when the requirements have been grouped by test case. In the past, when users right-clicked on an external test case, none of the context menu entries were disabled. This behavior has been fixed. External test cases are read-only, meaning that they can not be edited, deleted, duplicated, or activated/deactivated. These context menu entries have been disabled accordingly.
Bug fix MISC
Handling of deferred fields at dirty model mixin.
[#7784]
Methods from DirtyModelMixin are used to calculate changes between different states of the objects. When a field was deferred, states were saved incorrectly and caused wrong calculation of the changes. This is now fixed by handling deferred fields.
Bug fix MISC
Resolved warnings on startup regarding fields not checking permission using policies.
[#7637]
Bug fix MISC
Restrict is_superuser and is_staff param access based on user privileges.
]
Bug fix MISC
The 'Staff' and 'Superuser' checkboxes are now only available to superusers.
[#7831]
This fix relates to the Staff and Superuser checkboxes, which can be found by navigating to > Configuration > User management > Users and looking at the General information area. In the past, these checkboxes were available to all users (even users without permission to edit them). If a user without the necessary permission tried to edit the staff or superuser role, then a permission error occurred. To avoid confusion, these checkboxes are now only available to users with the necessary superuser permissions.
Bug fix MISC
The permission add_statusreporttemplate_project is now displayed with the correct name.
[#6982]
This fix relates to the permissions for status report templates. In the past, two different permissions were both named Can add status report template. This has been fixed. The permission for adding a status report template to a project was renamed Can add status report template to project.
Bug fix MISC
The save button is now correctly enabled when changes are made to the permission tree.
[#7781]
This fix relates to the pages for editing user accounts, groups and roles. In the past, the save button did not become active when selecting different permissions in the permission tree. That means, the save button remained grayed out. This behavior has been fixed. The save button is now correctly enabled when permissions are changed.
Bug fix MISC
The save button is now correctly enabled/disabled in edit pages.
[#7364]
This fix relates to various edit pages throughout the system. In the past, the save button was already enabled when the page was initially loaded, i.e. before any changes were made. This behavior has been fixed. The save button now remains disabled until the user makes a change.
This fix relates to the user groups, which can be accessed by navigating to > Configuration > User management > Groups. In the past, the edit page did not open when right-clicking on a user group and selecting
Edit
from the context menu. Instead, the page for creating a new user group opened. This behavior has been fixed. The
Edit
context menu entry now correctly opens the edit page.
Bug fix API
It is now possible to delete external tests.
[#7585]
API changes
Breaking
Type DeprecatedContentType was removed
Breaking
LoadMdmRequirementsThresholdType.upperBoundary type changed from Float to W3Float
Breaking
LoadMdmRequirementsThresholdType.lowerBoundary type changed from Float to W3Float
Breaking
PermissionType.contentType type changed from ContentTypeType! to ContentTypeType
Breaking
UserTokenType.user type changed from UserType! to UserType
Breaking
LoadRdTestAttachmentType.channelTimeOfMaximumValue type changed from Float to W3Float
Breaking
LoadRdTestAttachmentType.channelFirstGlobalMinimumValue type changed from Float to W3Float
Breaking
LoadRdTestAttachmentType.channelTimeOfMinimumValue type changed from Float to W3Float
Breaking
LoadRdTestAttachmentType.channelFirstGlobalMaximumValue type changed from Float to W3Float
Breaking
Input Field value removed from input type SettingUpdateMutationInput
Breaking
Field value was removed from object type SettingType
Breaking
Field updatedAt was removed from object type SettingType
Breaking
Field key was removed from object type SettingType
Breaking
Field description was removed from object type SettingType
Breaking
WorkerStateType.load type changed from Float to W3Float
Breaking
LoadProjectRequirementsThresholdType.upperBoundary type changed from Float to W3Float
Breaking
LoadProjectRequirementsThresholdType.lowerBoundary type changed from Float to W3Float
Breaking
Removed argument key from Query.allSettings
Breaking
Removed argument key_Icontains from Query.allSettings
Breaking
Field activeCount was removed from object type UserTypeConnection
Breaking
XMLPresetType.deprecatedContent type changed from [DeprecatedContentType] to [InfoContentType]
Breaking
LicenseInformationType.user type changed from UserType! to UserType
Breaking
LicenseInformationType.featureInformation type changed from FeatureInformationType! to FeatureInformationType
Non-Breaking
Type MaskedString was added
Non-Breaking
Type LoadProjectResponseType was added
Non-Breaking
Type LoadProjectType was added
Non-Breaking
Type InfoContentType was added
Non-Breaking
Type LoadMdmTestCasesSelectionModeTypeEnum was added
Non-Breaking
Type AutoselectFeatureMutationPayload was added
Non-Breaking
Type AutoselectFeatureMutationInput was added
Non-Breaking
Type MdmAddTestCasesToRequirementMutation was added
Non-Breaking
Type MdmAddTestCasesToRequirementMutationInput was added
Non-Breaking
Type MdmAttributeCloneMutationPayload was added
Non-Breaking
Type MdmAttributeCloneMutationInput was added
Non-Breaking
Field attributes was added to object type ProjectDocumentType
Non-Breaking
Input Field version: Int was added to input type ClientStateCreateMutationInput
Non-Breaking
Field attributes was added to object type LoadProjectDocumentType
Non-Breaking
Input Field attributes: JSONDict was added to input type ProjectDocumentAttributesInputType
Non-Breaking
Input Field workerRegistrationToken: MaskedString was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field licenseServerRlm: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcRenewIdTokenExpirySeconds: W3Float was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcOpAuthorizationEndpoint: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcRoleField: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcRpClientSecret: MaskedString was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field rdtestNumberOfSecondsWithoutSyncUntilDelete: Int was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field ssrmPollingInterval: Int was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field authenticationBackends: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field userNumberOfDaysWithoutLoginUntilSetInactive: Int was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcGroupField: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field licenseServerLmgr: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcOpTokenEndpoint: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcUserContractorField: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcGroupRegex: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcRpClientId: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field apiTokenMaxLifetime: Int was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcUserCompanyField: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcOpEndpoint: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcOpJwksEndpoint: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcOpRevocationEndpoint: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcRoleRegex: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field userNumberOfSecondsWithoutLoginUntilSetInactive: Int was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcUserUsernameField: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcRpSignAlgo: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcOpUserEndpoint: String was added to input type SettingUpdateMutationInput
Non-Breaking
Input Field oidcUserDisplaynameField: String was added to input type SettingUpdateMutationInput
Non-Breaking
Field version was added to object type ClientStateType
Non-Breaking
Field addMdmTestCasesToRequirement was added to object type Mutation
Non-Breaking
Field autoselectFeature was added to object type Mutation
Non-Breaking
Field cloneMdmAttribute was added to object type Mutation
Non-Breaking
Field workerRegistrationToken was added to object type SettingType
Non-Breaking
Field licenseServerRlm was added to object type SettingType
Non-Breaking
Field oidcRenewIdTokenExpirySeconds was added to object type SettingType
Non-Breaking
Field oidcOpAuthorizationEndpoint was added to object type SettingType
Non-Breaking
Field oidcRoleField was added to object type SettingType
Non-Breaking
Field oidcRpClientSecret was added to object type SettingType
Non-Breaking
Field rdtestNumberOfSecondsWithoutSyncUntilDelete was added to object type SettingType
Non-Breaking
Field ssrmPollingInterval was added to object type SettingType
Non-Breaking
Field authenticationBackends was added to object type SettingType
Non-Breaking
Field userNumberOfDaysWithoutLoginUntilSetInactive was added to object type SettingType
Non-Breaking
Field oidcGroupField was added to object type SettingType
Non-Breaking
Field licenseServerLmgr was added to object type SettingType
Non-Breaking
Field oidcOpTokenEndpoint was added to object type SettingType
Non-Breaking
Field meta was added to object type SettingType
Non-Breaking
Field oidcUserContractorField was added to object type SettingType
Non-Breaking
Field oidcGroupRegex was added to object type SettingType
Non-Breaking
Field oidcRpClientId was added to object type SettingType
Non-Breaking
Field apiTokenMaxLifetime was added to object type SettingType
Non-Breaking
Field oidcUserCompanyField was added to object type SettingType
Non-Breaking
Field oidcOpEndpoint was added to object type SettingType
Non-Breaking
Field oidcOpJwksEndpoint was added to object type SettingType
Non-Breaking
Field oidcOpRevocationEndpoint was added to object type SettingType
Non-Breaking
Field oidcRoleRegex was added to object type SettingType
Non-Breaking
Field userNumberOfSecondsWithoutLoginUntilSetInactive was added to object type SettingType
Non-Breaking
Field oidcUserUsernameField was added to object type SettingType
Non-Breaking
Field oidcRpSignAlgo was added to object type SettingType
Non-Breaking
Field oidcOpUserEndpoint was added to object type SettingType
Non-Breaking
Field oidcUserDisplaynameField was added to object type SettingType
Non-Breaking
Input Field attributes: JSONDict was added to input type ProjectDocumentUpdateMutationInput
Non-Breaking
Input Field selectionMode: LoadMdmTestCasesSelectionModeTypeEnum was added to input type LoadMdmTestCasesInput
Non-Breaking
Input Field requirementId: UUID was added to input type LoadMdmTestCasesInput
Non-Breaking
Input Field version: Int was added to input type ClientStateUpdateMutationInput
Non-Breaking
Argument version: Int added to ClientStateTagType.clientstateSet
Non-Breaking
TaskType.artifact description changed from None to Task the artifact belongs to
Non-Breaking
Field loadProjects was added to object type Query
Non-Breaking
Argument version: Int added to Query.allClientStates
Non-Breaking
Field warnings was added to object type XMLPresetType
Non-Breaking
Argument identifier: String added to CustomToolType.customtoolversionSet
Non-Breaking
Argument orderBy: String added to CustomToolType.customtoolversionSet
Non-Breaking
Argument customtoolId: ID added to CustomToolType.customtoolversionSet
Non-Breaking
Argument name_Icontains: String added to CustomToolType.customtoolversionSet
Non-Breaking
Argument name_Iexact: String added to CustomToolType.customtoolversionSet
Non-Breaking
Field version was added to object type LoadClientStateType
Non-Breaking
Input Field attributes: JSONDict was added to input type ProjectDocumentCreateMutationInput