Digital.ai Release 22.0.x Release Notes

    Digital.ai Release 22.0.0

    Digital.ai Release 22.0.0 includes the following new features:

    • New navigation
    • GitOps-enabled version control
    • New permission—create release in another folder
    • Plugin Manager—file-based installation of custom plugins
    • Personal Access Tokens
    • LDAP authentication changes
    • New and updated plugins
    • New versioning scheme for Digital.ai Release

    And more bug fixes and enhancements.

    Support Policy

    See Digital.ai Support Policy.

    Upgrade Instructions

    The Digital.ai Release upgrade process you use depends on the version from which you are upgrading, and the version to which you want to go.

    For detailed instructions based on your upgrade scenario, refer to Upgrade Release.

    New Versioning Scheme for Digital.ai Release

    The previous major version is Digital.ai Release 10.3.x. For this version we made the jump to 22.0. We have done that to harmonize version strategies across the various products in the Digital.ai portfolio.

    Going forward, the Digital.ai Release's versioning scheme follows the YY.a.b format, where a is the major release version number and b is the maintenance release version number. The versioning scheme is not very different than it was before.

    • The first number (YY) refers to the last two digits of the year the version was released on. For example, in year 2022, all versions start with 22.
    • We will release a major version every quarter, starting with '0'. So the first version of the year is 22.0 and the last will be 22.3. The version after that will be 23.0, to be released in the first quarter of 2023.
    • The final number is the maintenance version. As a rule, maintenance versions will not contain new features and will be backwards compatible with other maintenance versions of the same major version. That means that you can roll back 22.0.1 to 22.0.0, for example. Database migrations and other incompatibilities might occur when going from one major version to another. So you can't rollback from 22.1.0 to 22.0.9, for example.

    Digital.ai Release 22.0.0 New Features

    Here's what's new with Digital.ai 22.0.0.

    New Navigation

    Digital.ai Release 22.0.0 brings you a fresh new look that aligns with other products in the Digital.ai portfolio.

    • The UI navigation has been moved from the top bar to a new sidebar on the left and has been reorganized slightly.
    • The most notable change is that the main UIs have been reorganized into four sections: Overview, Reports, Configuration and System settings. The first three areas are easy to navigate in the sidebar and the System settings have been tucked away under a new Admin menu (cog icon at the top right).
    • Folder navigation is now easier and now uses the main content area with more real estate.
    • A custom logo will now be displayed prominently in the UI, as well as in email notifications.
    • Personal settings can now be found under a personal icon (currently the user's initials) at the top right.
    • The Shared Configuration has been renamed to Connections, making it easier to understand that this where you configure the connections to third-party systems.

    GitOps-enabled Version Control

    Folder versioning is now a fully supported feature.

    • Store all your folder configuration in Git. Templates, dashboards, variables and shared connections.
    • Use GitOps style methods to promote content from folder to folder or server to server.
    • Version strategy is per-folder.
    • Passwords are never stored.
    • Creating new versions ('push') and applying old versions ('pull') are atomic operations.
    • Use of the xl command line client is still completely supported
    • Use bulk permissions to create or apply versions

    Plugin Manager

    Plugin Manager has been enhanced considerably to make it work smoothly in all environments.

    • For CI/CD scenarios of custom plugin development, the Plugin Manager supports installation of custom plugins directly into the plugins/__local__ folder, mimicking the behavior as it was before 10.2. For more information, see the File-based Installation of Custom Plugins section later in this page.
    • Added install-or-update endpoint, to make it more explicit if Release should detect and remove a previous version of the plugin.
    • Plugin Manager detects version upgrades of custom plugins, based on semver semantics. It most cases, it is no longer needed to weed out the previous version of the plugin.
    • List of official plugins is refreshed automatically once a day.
    • Fixed issues on Windows.
    • Plugin Manager warns if a plugin contains a type that is already defined by another plugin.

    File-based Installation of Custom Plugins

    IMPORTANT Starting from 10.2, plugins are stored in the database and are no longer managed by placing files in the plugins folder. This has some implications for upgrading the product and installing and upgrading plugins.

    • In version 22.0.0, you can now (again) install custom plugins by putting them in the plugins/__local__ folder, but you need to specify a startup flag to trigger this behavior.
    • For direct invocation of the bin/run.sh command, add the -plugin-source=filesystem flag.
    • When using the Docker container, set environment variable PLUGIN_SOURCE=filesystem.

    Note that when running various nodes in a cluster, you only need to install a custom plugin on one node. Additional nodes will pick up the new plugin from the database when restarted.

    Here is a summary of the behavior for plugin installation

    Version Official Plugins Custom Plugins
    10.1 and earlier
    • Bundled in plugins/xlr-official
    • Installed through UI (single-node setups only)
    File copy to plugins/__local__
    10.2
    • Bundled in plugins/xlr-official
    • Installed through UI (supports multi-node setups)
    Upload through UI
    10.3
    • Bundled in plugins/xlr-official
    • Installed through UI (supports multi-node setups)
    • Upload through UI
    • REST API
    22.0 and later
    • Bundled in plugins/xlr-official
    • Installed through UI (supports multi-node setups)
    • Upload through UI
    • REST API
    • File copy to plugins__local__ (with startup flag)
    • plugin-manager-cli

    Note: The -plugin-source startup flag is ignored on first startup post installation or upgrade.

    Personal Access Tokens

    A Personal Access Token (PAT) is used as an alternative to passwords for authentication with Digital.ai Release. You can use PATs with public APIs and webhook endpoints.

    Note:

    • Personal access tokens are currently only supported for internal users. For external users, use OIDC-based authentication.
    • Users who authenticate in web application through an external provider, such as LDAP, Okta, or Keycloak, cannot use personal access tokens.

    For more information, see Personal Access Token for Authentication.

    LDAP Authentication Changes

    The com.xebialabs.deployit.security.authentication.XlAuthenticationProvider class is no longer supported. As a result, if you are upgrading to 22.0.x or later and if you have been using the internalAuthenticationProvider bean in your xl-release-security.xml file, you must:

    1. Remove the internalAuthenticationProvider bean.

      <bean id="internalAuthenticationProvider" class="com.xebialabs.deployit.security.authentication.XlAuthenticationProvider"/>
      
    2. Change the <security:authentication-provider ref="internalAuthenticationProvider" /> to <security:authentication-provider ref="xlAuthenticationProvider" />.

    For more information and example LDAP connection strings, see LDAP Security.

    Performance and Stability

    Here's a list of noteworthy fixes and enhancements for better performance and stability in Digital.ai Release 22.0.0.

    Speedup for Large Interconnected Releases

    Digital.ai Release 22.0.0 comes with a redesigned execution logic that better handles dependencies between releases. As a result, operations that involve many interconnected releases like restart a phase, bulk creation of releases, and gate task dependencies are sped up and are found to use less CPU.

    Performance Improvement for Microsoft SQL

    Schema change to better manage large MSSQL database tables (FI-886). As a result, the database upgrader runs automatically on first startup post upgrade to Release 22.0.0.

    Task Execution

    Improved task execution in several areas, most notably:

    • Added functionality to abort tasks from the Task Manager UI (under Settings, available to admins only) and added deep linking to tasks.
    • More robust task recovery during restarts.
    • Better load balancing of task execution jobs in a cluster setup

    Plugins and Integrations

    Here's what is new and changed with plugins and integrations.

    Release with Delivery Insights Plugin

    Delivery Insights plugin 22.0.0 supports integration with Bitbucket Cloud and Bitbucket Server SCM tools. For more information, see Release with Delivery Insights.

    Sonarqube Plugin

    Enabled the plugin with Check Quality, Check Blocking Violations, and Set Latest Analysis Version.

    Checkmarx Plugin

    Checkmarx plugin is now enhanced with a new task CxSCA—check compliance, which verifies the risk levels of the security and license thresholds for your project.

    Agility Plugin

    The Agility plugin is expanded with these new tasks:

    • Create portfolio item
    • Get portfolio item
    • Get the portfolio item
    • Update attributes of portfolio item

    The plugin now supports Basic Authentication for asset creation and update.

    TeamForge Plugin

    To prevent incessant polling in the Get Artifact Status task, you must now set the maximum number of tries (Max Tries) after which the polling stops and the task fails with an exception (Maximum number of attempts exceeded) if there is no change in the artifact's status. For more information, see TeamForge Integration.

    Argo CD Plugin

    A new Argo CD plugin is now available to integrate Digital.ai with Argo CD. Argo CD is a GitOps continuous delivery tool for Kubernetes which continuously monitors all the running applications and compares the live state with the desired state specified in the Git repository. The following tasks are available with the Argo CD plugin:

    • Add Repository
    • Create Project
    • Create Application
    • Sync Application
    • Get Sync Status
    • Get Manifest

    The Digital.ai Release's GitHub, GitLab, and Kubernetes plugins were also updated to work with this new Argo CD plugin.

    For more information, see Argo CD Plugin.

    Continuous Testing Plugin

    Re-branded the Continuous Testing plugin per Digital.ai branding guidelines.

    Bug Fixes

    Bug Fixes and Field Incidents—22.0.0

    • ENG-4359—Added jira update issue task marked as mandatory
    • ENG-7702—Fixed—Activity logs are created and available in the database but there is no activity logs in the UI.
    • ENG-7980—Fixed the broken Jython patch for issues 2618 and 2894.
    • ENG-8336—Fixed a plugin synchronization issue on windows that prevented the old plugin from being deleted when a new plugin with the same name was uploaded.
    • ENG-8434—The non-BaseScript task, notification task, and so on are no longer removed from the job queue when you abort such tasks using the Task Manager. An error is logged instead when you abort such tasks using the Task Manager.
    • ENG-8468—Changed the datatype for job id field to address the INT limit issue.
    • ENG-8545—Fixed—You can now use variables in the Watchers field of release tasks.
    • ENG-8812—Digital.ai Deploy and Release are not susceptible to log4j vulnerability. Though Digital.ai Deploy and Release were bundled with log4j-to-slf4j and log4j-api files, these JAR files cannot be exploited. While neither these files nor Digital.ai Deploy and Release are susceptible to attack due to this log4j vulnerability, some threat detection systems may flag these files. To avoid any such false positive threat indications in future, the latest log4j library files (interface and supporting third party libraries) were bundled with both Digital.ai Release and Deploy. For more information, see this article.
    • FI-745—Fixed the trigger consistency issue in clustered environment.
    • FI-879—Fix provided for the releases which fail while archiving due to size constraints on columns
    • FI-886—Fixed the issue that caused queries to run for long with high CPU utilization.
    • FI-893—Fixed a permission issue (with Reactive Tasks) that prevented users from updating release variables.
    • FI-908—Fixed—Jython Script task's syntax highlighting and auto-completion features were broken.
    • FI-912—Fixed an issue with the Release CLI that caused problems with template export/import.
    • FI-917—Fixed an issue with fetching the global variables (missing global variable exception) during the Wait for JSON Event task.
    • FI-943—Fixed the "java.io.FilePermission" "/root/.postgresql/postgresql.crt" "read" reporting pool error.
    • FI-959—Fixed the issue that allowed the creation of internal users with the same username as that of an existing external (LDAP) user.
    • FI-988—Fixed the issue that prevented users from selecting the data and time in a user input release task.

    Bug Fixes and Field Incidents—22.0.1

    • [ENG-8302] - Fixed an issue that prevented a release (that was created from a global template) from inheriting folder permissions.

    • [ENG-8604] - The Apply Changes button will not be displayed to the users who do not have the permission instead of the Forbidden Access message.

    • [ENG-8952] - Fixed the missing index on XLR_FOLDER_VARIABLES (FOLDER_CI_UID).

    • [ENG-9015] - Fixed the incorrect Digital.ai Release component version in one of the database tables the XL_VERSION table.

      Important: If you are upgrading from one of the following Digital.ai Release versions, you must only upgrade to the latest patch release available for the version of Release you are upgrading to. For example, if you are on Digital.ai Release version 10.0.9 and planning to upgrade to the 10.3 version, you should upgrade to 10.3.8 or later versions of the 10.3 release. Here's the list of Release versions that are affected due this bug: Digital.ai Release 9.7.18, 9.7.19, 9.7.20, 10.0.7, 10.0.8, 10.0.9, 10.0.10, 10.1.6, 10.1.7, 10.1.8, and 10.1.9. The fix for the bug is available on these versions: Digital.ai Release 9.7.21, 10.0.11, 10.1.10, 10.2.10, 10.3.8, and 22.0.1.

    • [ENG-9017] - Fixed the Groovy script task execution issue where the task is kept in progress due to java.lang.Error.

    • [FI-946] - Fixed JavaScript Exception: KeyError: Set-Cookie when Crowd and Strict Crumb plugins are used in Jenkins

    Bug Fixes and Field Incidents—22.0.2

    • ENG-9080 — Fixed an issue where the cluster data was not properly persisted in the database.
    • D-19039 — Fixed an issue that prevented the CRUD operations when the filter is used.
    • D-19863 — Fixed an issue that displays a confirmation dialog box when you cancel the template or release creation from the root level.
    • D-19840 — Fixed an issue that caused the Audit report page to go blank when you filter by Progress.
    • FI-859 — Fixed an issue with variable mapping in the Release properties that prevented users from selecting variables under the Run automated tasks as user field.

    Bug Fixes and Field Incidents—22.0.4

    Note: There is no Release version 22.0.3.

    • ENG-9087 - Fixed an issue with install-service.sh and install-service.bat by updating them to include the plugin-source=database flag.
    • D-20457 - Fixed an issue with the Deliveries page due to which the sidebar was not displayed up on a browser refresh.
    • D-20575 - Fixed an RBAC issue with external users that prevented users assigned to an LDAP user group from being able to assign tasks to themselves.
    • FI-1018 - Fixed an issue with the Create Release task where the changes to the variable properties (label, description, required Flag) of the release template were not reflecting correctly.
    • ENG-9404 - Fixed an issue with the Null Pointer Exception (NPE) that was displaying when selecting a release.
    • ENG-9397 - Fixed an issue where we were unable to apply YAML with the value provider in CRT variables.
    • ENG-9273 - Fixed an issue with the Remember-me functionality.
    • ENG-9180 - Fixed an issue with the task-transition permission by removing it from Release Owners. Earlier this permission was available by default. Now it has to be configured.
    • D-20588 - Fixed an issue with the notification e-mail, which was not getting triggered when your e-mail address is inputted using the Assigned To field via release_variable task. Note that, only Username must be used to assign tasks

    Bug Fixes and Field Incidents—22.0.5

    • D-20863 - Fixed the issue with the loading spinner icon, which was not getting displayed. This loading spinner icon indicates whether the Digital.ai Release is searching for releases and if there is any data being processed in the background.
    • D-20898 - Fixed a usability issue with the Tab key, which occurs during runtime when the release has a user-input task. When you press the Tab key it should move to the next variable, and it has been fixed now.
    • D-20318 - Fixed the issue for the CVEs that were detected in the latest Release Docker distribution.
    • D-20645 - Fixed the issue where multiple API calls were made to access the variables in the user-input task.
    • D-20706 - Fixed the issue where importing java classes in jython script tasks was not possible.
    • D-20761 - Fixed the issue with the script task, which was unable to instantiate a condition subclass.

    Bug Fixes and Field Incidents—22.0.6

    • D-21088 - Issue with the "Watchers" user drop-down list in Task modal—the search text entered to search for a user was also added as a watcher when you select a user using the mouse, which is now fixed.
    • D-21131 - Fixed an issue with the Attributes Rail—on clicking the Delete icon (not the button itself, but trash icon), the Edit Attributes modal opens up.
    • D-21231 - Fixed—missing colors on the trigger activity logs.
    • D-21430 - Fixed an issue (with values selected for mandatory list boxes) that prevented user input tasks from being completed.

    Bug Fixes and Field Incidents—22.0.7

    • D-20582 - Fixed the issue that prevented multiline text from being displayed in Output properties of a task.
    • D-21101 - Script tasks, if immediately preceded by a Gate task, fail to read the comments added to the Script task at runtime. This is now fixed.
    • D-21120 - Fixed an issue with the Webhook:Json webhook task that generates wrong authorization token.
    • D-21278 - A new template created at the global level (outside the folder) does not display its template name when opened in a new tab. This issue is now fixed.
    • D-21470 - When you import an already exported template from one instance to another, it breaks the folder. This is because the passwords are encrypted with different encryption key. The issue is now fixed.
    • D-21576 - Fixed an issue that allowed users to generate personal access tokens that are made of nothing but two or more spaces.
    • D-21612 - Ignored a few URLs that cause log troubles.
    • D-21812 - When a template is imported using the XL CLI, the Script task prevents the variables in it from automatically being updated on the variable screen. This issue is now fixed.
    • D-21400 - When a valid Okta user, who is not assigned to the Digital.ai Release application in Okta, tries to login, an indefinite redirect loop occurs. This issue is now fixed.
    • D-21573 - You cannot export an excel report from a release that is completed and archived. This issue is now fixed.
    • D-21886 - After upgrading to 22.0.1, the dependencies that existed in Gate tasks before the upgrade are not available. These Gate tasks display the status as Not Found even when their status is In Progress. This issue is now fixed.