Digital.ai Release 25.1.x Release Notes
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 upgrade instructions, see:
Breaking Changes
Breaking changes in Release 25.1 require your attention before upgrading:
License Version Changes
Starting with Release version 25.1 and later, License version 3 will no longer be supported.
- Required Action: Upgrade to a valid version 4 license
- Impact: Systems with v3 licenses will not function after upgrade
For more information on checking your current license version and upgrading, refer to the relevant documentation:
For assistance, contact Digital.ai Support.
Python SDK Changes
Removed functionality from the Python SDK:
- The
get_default_api_client()
method has been removed from theBaseTask
class. - The entire
digitalai.release.v1
package, including the OpenAPI-generated stubs, has been removed.
Impact: Any code relying on these components will need to be updated.
Replacement: A new, simplified API client, ReleaseAPIClient
, is now available, offering improved usability.
Learn more:
End-of-life Notifications
The following features are being deprecated or are reaching end of support.
Task Modal Retirement
As announced in Release 24.3, the Task Modal has been removed in Release 25.1. Users now can create and manage tasks using the Task Drawer. This consolidation enables us to deliver new features faster and provide a more consistent task management experience.
The Task Drawer offers enhanced functionality and a modern interface for managing your tasks. To learn how to use the Task Drawer and explore its features, see How to use the Task Drawer.
Contact Digital.ai Customer Success Manager or Digital.ai Support if you need assistance with this transition.
Removal of Groovy Sandbox
Starting with Release 25.1, we have removed the Groovy sandbox functionality from the core distribution due to security concerns:
- The Groovy Sandbox component has been identified as insecure
- It will not be compatible with future Java runtime versions
- The functionality is removed from the core product distribution
Impact
- Existing Groovy scripts that relied on sandbox functionality will need to be updated
- Scripts previously running in sandbox mode will now run in the regular Groovy environment
Recommended Actions
- Use role-based task access restrictions for Groovy Script Tasks as described in the documentation
- Review and update any existing Groovy scripts that relied on sandbox functionality
Alternative Solution
For customers who require Groovy sandbox functionality in 25.1.x:
- A community plugin is available to reintroduce the sandbox feature
- Plugin location: xlr-groovy-sandbox-plugin
- This is a temporary solution and migration away from sandbox is recommended
Support for AWS SDK for Java v1.x Being Deprecated
As of Release 25.1, support for the AWS SDK for Java v1.x—including awsCredentials
and awsRegions
in XL CLI Blueprints—is officially deprecated. Although it still functions in this release, continued use is discouraged. Upgrading to the AWS SDK for Java v2.x is strongly recommended.
Starting with Release 25.3, support for AWS SDK for Java v1.x will be fully removed. As a result, any functionality dependent on this version of the SDK will no longer function.
New Versioning Scheme for Release
Starting with Release 25.1, we have implemented a new versioning scheme that aligns with semantic versioning principles.
Old Format
Examples:
- General Availability (GA): Product-Major.Minor.Patch -
xl-release-25.1.0-server.zip
- Early Access (EA): Product-Major.Minor.Patch-beta.Number -
xl-release-25.3.0-beta.1-server.zip
- Maintenance Release (MR): Product-Major.Minor.Patch -
xl-release-25.1.1-server.zip
The format components are:
Component | Description | Example |
---|---|---|
Major | Last two digits of year | 25 |
Minor | Release quarter (1-4) or feature version | 1 |
Patch | Maintenance version number | 0 |
beta.Number | Optional beta release number | beta.1 |
New Format
Examples:
- General Availability (GA): Product-Major.Minor.Patch-MMDD.Build -
xl-release-25.1.0-422.113-server.zip
- Early Access (EA): Product-Major.Minor.Patch-beta.MMDD -
xl-release-25.3.0-beta.407-server.zip
- Maintenance Release (MR): Product-Major.Minor.Patch-MMDD.Build -
xl-release-25.1.7-1222.113-server.zip
The new format is: MAJOR.MINOR.PATCH[-Build Metadata] where:
Component | Description | Example |
---|---|---|
Major | Last two digits of year | 25 |
Minor | Release quarter (1-4) or feature version | 1 |
Patch | Maintenance version number | 0 |
Build Metadata | Build metadata including date (MMDD) and build number. beta.MMDD is used for EA versions. | 1222-113 , beta.407 |
For all formats, MM represents month (1-9 for Jan-Sep, 10-12 for Oct-Dec).
-
Early Access (EA) releases use format Major.Minor.0-beta.MMDD (example: xl-release-25.3.0-beta.407-server.zip). Files are stored in https://dist.xebialabs.com/customer/early-access/. Patch is always 0.
-
Maintenance Releases (MR) use format Major.Minor.Patch-MMDD.Build (example: xl-release-25.1.1-522.113-server.zip). Files are stored in product-specific directories at https://dist.xebialabs.com/customer/. Patch is a positive number.
-
General Availability (GA) releases use format Major.Minor.0-MMDD.Build (example: xl-release-25.1.0-422.113-server.zip). Files are stored in product-specific directories at https://dist.xebialabs.com/customer/. Patch is always 0.
This new versioning scheme provides clearer indication of the impact of updates and helps with upgrade planning.
Live Deployments - Flux CD
Digital.ai Release 25.1 extends Live Deployments support to include Flux CD. This integration allows you to monitor Flux CD deployments as they happen.
Key features include:
- Track Flux CD deployments in the Live Deployments dashboard
- Embed Flux CD deployment events in your release process using Webhook Event Triggers
- Wait for specific Flux CD deployment events using the Webhook: Wait for Deployment Event task
Live Deployments provide unified view of your GitOps deployments across different tools: not only Flux CD, but also Digital.ai Deploy and ArgoCD. For more information on setting up and using Flux CD with Live Deployments, see Live Deployments in Release.
Release Plugin for Backstage
The Release Backstage plugin now includes a Workflow Catalog, allowing you to easily browse, filter, and search workflows across categories such as application lifecycle management, cloud and container, and more—all within the Backstage interface. You can also select a Release instance, view the latest GitHub commit, and run workflows directly from the catalog, streamlining your workflow management experience. For more information, see Workflow catalog.
Enhanced License Counting
The license counting logic has been improved for more accurate and efficient allocation. Previously, all enabled users (with the "Enabled" toggle set to ON) were counted toward the license limit, even if they had never logged into Release. Now, only enabled users who have logged in at least once or have used Release via the Remote Completion plugin tasks, meaning they have a recorded last active date, will be counted toward the license total. For more details, see License Management.
The Users page now displays License Status for better visibility into license usage. It includes:
-
Active (displayed in green) – The user is counted toward the total license count.
-
Inactive (displayed in gray) – A license is not consumed, meaning the user is not counted toward the license total.
Navigation Enhancements
Release 25.1 introduces significant improvements to help users navigate between folders and related releases more efficiently.
Folder Navigation in Top Bar
A new Folders menu has been added to the top navigation bar, providing quick access to any folder from anywhere within the application, improving navigation efficiency.
When at the global level, the Folder Switcher displays the Folders label. When changing folders, you will be on the same page within the new folder. Navigating away from global pages to a specific folder will direct you to that folder's default page, typically the Releases page.
Shortcuts for easier navigation:
- Press
F
to open the Folders switcher - ↓ / ↑: Move through the folder list and search results
- →: Expand nested folders
- ←: Collapse folders or return to the parent folder
- ⏎ Enter: Select and open the highlighted folder
- ⎋ Esc: Close the Folders menu
For more information, see Access and Navigate Folders.
Related Releases
The Related Releases floating panel provides quick context switching between parent and sub-releases. The panel stays visible while navigating within release or template pages, displaying links to the parent release (if available) and any current sub-releases. This makes it easier to track the status of connected releases and navigate between connected releases.
-
If the Create Release task has been executed, a link to the sub-release and its status will be shown. Clicking the link opens the created release.
-
For releases created via Jython or Groovy scripts, the script task must be executed for the sub-release to appear in the list.
-
If the Create Release task has not yet started, a link to the task will appear instead, opening the task in the Task Drawer when clicked.
The Related Releases panel remains visible while navigating within release or template pages.
This feature is only available for tasks that create sub-releases in Release version 25.1 or later. Sub-releases created in earlier versions will not appear in the Related Releases list.
For more information, see Related Releases.
Wait for Release to Finish in Create Release Task
The Create Release task now includes a Wait for Release to Finish option that provides greater control over task completion behavior:
- When enabled: The release waits until the sub-release completes. The task status line reflects the sub-release status:
- If the sub-release completes successfully, the current release continues.
- If the sub-release fails or is aborted, the task and current release is displayed as failed.
- When disabled (default behavior): The task completes immediately after creating or starting the sub-release, allowing the release to continue independently.
This feature enhances release orchestration by providing better control over parent and sub-release dependencies and execution flow.
For more information, see Create Release task.
Gate Task Failing Status
A new Failing status has been introduced for Gate tasks to improve visibility and simplify troubleshooting when dependencies fail. Previously, Gate tasks would remain in the In Progress status even if a dependency had failed, making it difficult to identify issues—especially in sub-releases. Now, if any dependency fails, the Gate task will clearly show a Failing status.
For more information, see Gate Tasks Transitions.
Lock Task Changes
Enhanced controls around task locking and assignment to improve security and task ownership integrity. Only users with the appropriate permissions can lock or unlock tasks.
Key Changes:
- Users with the Perform task transitions and/or Perform task transition in advance permission will no longer be able to transition locked tasks.
- Users with Assign task ownership permission can no longer assign locked tasks they are not assigned to unless they also have the Assign locked task ownership permission.
- Only users with the Lock task permission can lock or unlock tasks. This includes tasks in both templates and releases.
- Only users assigned to a locked task (either as an owner or a member of the team) can complete, fail, or abort the task. This applies to releases.
- New permission Assign locked task ownership is introduced - A new permission allows users to reassign the owner or team of locked tasks in a release. This ensures that releases are not blocked if the assigned user is unavailable (e.g., no longer within the organization). This permission is recommended for administrators and applies to releases.
For more information, see Lock Tasks.
Variable Enhancements
Here are some enhancements around variables in Release.
Pre-fill Variables from Past Releases
Speed up release creation by reusing variable values from one of the last 10 completed or aborted releases in the same folder. When creating a release from a template, select the Pre-fill variables from previous releases check box and choose a past release to automatically apply matching variable values.
For more information, see Pre-fill Variables from Past Releases.
Duplicate Variable
To quickly create new variables, use the duplicate variable feature to copy an existing one with all its properties—saving time and reducing manual input. This applies to Release, Folder, and Global variables. The duplicated variable retains all properties from the original, except for password values, which must be entered manually for security.
For more information, see Duplicate a Release Variable.
Direct Link to Variables
Variable details can now be accessed through a direct link, simplifying sharing and collaboration with team members. The History page of templates and releases provides direct links that open the Edit Variable modal, making it easy to share and collaborate with team members. You can also simply copy the link from the browser when the variable modal is open. This feature works for Release, Folder, and Global variables. Here's what you can do:
-
Access variables using direct links from the Insights > History page of templates and releases, where all variable changes are logged
-
Copy the URL directly from your browser when the variable modal is open
-
Share variable configurations by sending the link to team members
-
View variable details directly from change history entries by clicking the variable links
-
Get to know in the History page why a shared variable link is no longer valid
Variable List Changes
The Variables page now includes a filter to display only variables used on the Create New Release page or within the Create Release task. To view only these variables, select the Displayed on Create new release page and task filter. Additionally, the variables table now includes a column showing Yes for variables used on the Create Release page or in the Create Release task, while a value of “-” indicates the variable is not displayed in those locations.
Usability Enhancements
Here are some usability enhancements around templates, Activity Logs (History) and Task Drawer.
Import YAML Templates
We have added support for importing templates in template as-code format, including .yaml
and .zip
(containing YAML file), ensuring compatibility with all exportable template formats.
This functionality is also available via the API. For more information, see Import Template Options.
Copy Task ID
A new Copy ID option has been added to both the task card and Task Drawer to let you quickly copy the task's ID to the clipboard for later use. For example, copy and use the task ID in API calls.
The copied task ID follows the format: Applications/Folder{identifier}/Release{identifier}/Phase{identifier}/Task{identifier}
For more information, see Managing Tasks and Components of Task Drawer.
Task Drawer Close with ESC
You can now quickly close the Task Drawer by pressing the Esc key on your keyboard.
Activity Logs Renamed to History
The Activity Logs in Release have been renamed to History. The History page now displays contextual changes made to templates, releases, workflow templates and executions, delivery patterns, deliveries, and triggers. For more information, see Release History.
Watcher Tracking
Changes made to the task Watchers field are now logged in the release History. Adding or removing watchers is recorded in the release history, providing a record of who is following specific tasks. For more information, see Watchers.
Changes to Variables
When a change is made to a variable and it appears in the History, a direct link to the variable will be displayed. This allows for quicker access and faster troubleshooting.
Attachments
We now distinguish whether an attachment was added to a release or a task, with separate activities being recorded for each.
SDK Enhancements
Here are some enhancements around the Release Python and Go SDKs.
Python SDK Changes
Digital.ai Release SDK 25.1.0 introduces significant changes to improve usability and modernize the codebase.
Breaking Changes
- Removed the
get_default_api_client()
method from theBaseTask
class - Removed the OpenAPI-generated stubs for the
digitalai.release.v1
package (now available as a separate digitalai-release-api-stubs package) - Updated minimum Python version requirement to 3.8
New Features
- Added
get_release_api_client()
method toBaseTask
class as the recommended replacement for API interactions - Introduced new
ReleaseAPIClient
class with simplified method signatures:- Direct dictionary input for API request bodies
- Streamlined endpoint URL handling
Dependencies
- Updated all dependency versions for improved security and compatibility
- Bundled
requests
library to simplify HTTP request handling
For detailed documentation and examples, see:
Go SDK Enhancements
The Release Go SDK now includes comprehensive Git operations support through a new command pattern interface. This enhancement allows developers to interact with both remote and local Git repositories using standardized commands.
Key features include:
- Command pattern interface for consistent Git operations
- Support for both remote and local repositories
- Standard Git operations including:
- Read/write operations
- Branch management (checkout, merge)
- Commit operations (add, commit, push, pull)
- Repository management
For more information, see the Go SDK Documentation.
API Enhancements
Here are some enhancements around Release REST APIs.
Folder Template Search Supports Title and Tag Filters
The folder-level template search API now supports title and tag filters, aligning it with the global template search API. This enhancement applies to both the REST API (GET /templates
) and the Jython folder API (getTemplates
). The update is backward compatible, ensuring that all existing folder API calls continue to function as before.
History for a Specific Task
The API endpoint release activity logs now supports retrieving details for a specific task by including the task ID in the request. For example, GET /api/v1/activities/Applications/Folder{identifier}/Release{identifier}/Phase{identifier}/Task{identifier}
.
Multi-region High Availability (HA) Cluster Setup
Digital.ai Release 25.1 introduces enhanced multi-region HA support through the Pekko native cluster manager. Key improvements include:
-
Advanced downing providers:
- New
SplitBrainResolverProvider
alongside existingMajorityLeaderAutoDowningProvider
- Better split-brain scenario prevention and customizable downing strategies
- Improved cluster formation with configurable node requirements
- New
-
Enhanced cluster management APIs:
- Cluster management APIs to start and stop services, change a data center's state, and check the data center's state.
These improvements ensure seamless operation switching between data centers during failures or maintenance, minimizing system downtime.
Contact Digital.ai Support for assistance in setting up the Multi-region HA cluster setup.
Stability and Security Improvements
The following improvements enhance the security and stability of Release:
Encrypting Secrets in Configuration Files
Enhanced security for sensitive configuration data:
- Automatic encryption of configuration properties containing
password
orsecret
suffix - Eliminates plaintext storage of sensitive data like OIDC client secrets and keystore passwords
- No manual intervention required - encryption happens automatically
For more information, see Managing Encrypted Passwords in Release.
Default Trigger Polling Interval Updated to 60 Seconds
The default trigger polling interval has been updated from 10 to 60 seconds. New polling interval limits have been implemented:
- Minimum interval: 60 seconds
- Maximum interval: 86400 seconds (24 hours)
- Default interval: 60 seconds (when not specified)
You can configure the polling interval in two ways:
- Interval-based: Specify a number of seconds between executions
- Cron-based: Use a cron expression for more complex scheduling
When using the YAML configuration or API:
- You must specify a polling interval within the allowed range
- If no interval is specified, the system uses the default of 60 seconds
- Existing triggers will continue to operate with their current configurations, maintaining backward compatibility
For more information, see Configure Trigger Details.
Trigger Recovery After Server Downtime (Cron-Based Scheduled Triggers)
A new feature for handling missed trigger executions has been added to Cron-based scheduled triggers. The Missed event detection parameter controls how Release handles trigger executions that were scheduled to occur during server downtime:
When a server goes offline, scheduled triggers may miss multiple execution events. This feature ensures that a trigger executes exactly once upon server restart, regardless of how many events were missed during the downtime period.
- When enabled: Release detects if any trigger executions were missed while the server was offline. Upon server restart, it executes the trigger once, regardless of how many executions were missed. This ensures the automation runs without creating a backlog of executions.
- When disabled (default): Release ignores any missed executions and resumes normal scheduling from the point the server comes back online.
This enhancement improves the reliability of scheduled automations by preventing trigger execution gaps during server maintenance or unexpected downtime, while avoiding multiple catch-up executions that could overwhelm the system.
- The Missed event detection feature is only available for cron-based triggers
- This setting can be configured through both YAML templates and the API
- All existing triggers will continue to work as before with this feature disabled
For more information, see Configure Trigger Details.
Task-Specific Script Timeout Support
You can configure script timeouts individually for each task type using the deployit-defaults.properties
file. This enhancement provides greater flexibility and control over task execution by allowing you to set specific timeout limits based on the nature or behavior of different tasks, rather than relying on global timeout settings. For more infromation, see Configuring Task Timeouts.
Risk Score Performance Optimization
- Reduced system load by preventing unnecessary recalculations of the release risk score.
- Risk calculations can be re-enabled by customers who previously disabled them due to performance concerns.
Kubernetes Installation Updates
- Simplified truststore setup for Release Runner. For more information, see Set up Truststore for Release
- Enhanced air-gapped network support with registry settings that let you redirect Docker image requests to internal registries and configure authentication for private registries. For more information, see Configuring Digital.ai Release Runner Registry Settings.
- You can now install the Release Runner along with the certified OpenShift operator using the XL CLI. This makes the setup process easier and faster by letting you install both components together using a single command. For more information, see Release Installation Options Reference.
- The Kubernetes blueprints now support separate image version entries for Digital.ai Release and Digital.ai Deploy. This allows you to define different versions for each product in the same blueprint, providing more flexibility for managing upgrades and cross-version compatibility.
- Added the new
xl kube images
command to XL CLI. Thexl kube images
command helps manage Docker images used in Deploy or Release operator installations. You can list images, pack them into a package file, or unpack images from a package file into local Docker. For more information, see XL CLI Command Reference. - The
xl kube
command's--local-repo
flag has been deprecated. Use the new--repo
flag instead. For more information, see XL CLI Command Reference.
Plugins and Integrations
The following plugins and integrations have been updated or added in this release.
Agility Plugin
Added Agility query tile to custom dashboards for retrieving and displaying asset information from the Agility server.
For more information, see Create an Agility Query Tile.
Airflow Plugin
New integration enabling Apache Airflow interaction with these tasks:
- Get DAG Run - Retrieve DAG run information
- Get Task Instance - Fetch task instance details
- Trigger DAG Run - Initiate new DAG runs with configuration
For more information, see Airflow Plugin.
Ansible Automation Controller Plugin
Fixed an issue where the username in an error messages was not correctly overridden by task-level credentials.
For more information, see Ansible Automation Controller Plugin.
Argo CD Container Plugin (GO Based)
Now supports helm argo apps to setup application workflow.
Argo CD Plugin (Standard Jython Based)
Following are the new Tasks in Argo CD:
-
Rollback Application: You can now roll back an application to an earlier version by using a specific Git commit ID. If you don’t give a revision, it will roll back to the most recent previous version.
-
Delete Application: This new task lets you delete an application from Argo CD.
Sync Application
Added Prune
option in Sync Application. It removes resources from the cluster if they’ve been deleted from the Git repo.
For more information, see Argo CD Plugin.
AWS Container Plugin
Enhanced the plugin to support the attached role and assume role.
AWS Plugin
Enhanced authentication options:
- Access Keys
- None
- Assume Role ARN
For more information, see Set Up Connection to AWS Server.
Azure DevOps Plugin
Added a new task called Run Pipeline, allowing you to seamlessly trigger downstream pipelines as part of your workflow. This improves automation and supports complex delivery scenarios across projects or stages. Additionally resolved an issue where the Create Release task would fail when the artifact source was configured to a Git repository.
For more information, see Run Pipeline.
Change Risk Prediction Plugin
Added a Gatetask to validate risk against a defined threshold and fail the task if the risk value exceeds the threshold.
For more information, see Create a Change Risk Prediction: Risk Prediction Gate task .
Checkmarx Plugin
Added support for two authentication methods:
- Basic
- OAuth2
For more information, see Set Up a CheckmarxOne Server.
Confluence Plugin
New integration for managing Confluence pages:
- Create and update pages
- Add comments
- Delete pages
For more information, see Confluence Plugin.
Flux CD Container Plugin (GO Based)
Launched a new FluxCD integration and supports live deployments.
For more information, see Flux CD Plugin.
GitHub Plugin
Added proxy support using http_proxy
or HTTP_PROXY
environment variables.
For more information, see Proxy Support.
Gitlab Plugin
Fixed an issue affecting the Trigger Pipeline functionality to ensure consistent and reliable downstream pipeline execution.
For more information, see Gitlab Plugin.
Jira Plugin
Fixed ID/Summary inclusion and sorting in Output Properties.
For more information, see Jira Plugin.
Microsoft Teams Plugin
Release 25.1 brings you the new Microsoft Teams plugin. Sending notifications to Microsoft Teams as part of your release process has never been easier. Using this plugin, you can:
- Send notifications to specific Teams channels
- Send notifications to individual users
- Send notifications to Teams groups
For more information, see Microsoft Teams Plugin.
Octopus Deploy Plugin
Fixed compatibility issue with Create Release task for certain package types.
For more information, see Octopus Deploy Plugin.
Python Container Plugin Security Enhancements
We've updated all Python-based container plugins with several security improvements:
- Upgraded base images to Alpine 3.21 for enhanced security
- Updated Python dependencies to their latest secure versions
- Updated system libraries
Remote Completion Plugin
Enhanced the plugin to seamlessly integrate with the new Actor System and actor creation mechanisms.
For more information, see Remote Completion Plugin.
Slack Plugin
New integration for Slack workspace automation:
- Channel creation and archiving
- Team member management
- Automated updates
For more information, see Slack Plugin.
SonarQube Plugin
Added Branch and Pull Request specification support for analysis.
For more information, see Create a SonarQube Check Compliance Task.
VSTS/TFS Plugin
Fixed an issue where the CreateRelease task would fail when the artifact source was configured to a Git repository. The task previously failed with a misleading error message—this has been corrected to ensure accurate handling and clearer diagnostics.
For more information, see VSTS/TFS Plugin.
Bug Fixes—25.1.0
- D-37535 - Fixed an issue where users with the 'Perform Advanced Task Transition' permission could transition a task's state in advance only if they owned it. Now, users with this permission can transition a task regardless of task ownership.
- D-37837 - Fixed an issue where email addresses with double dots caused an HTTP ERROR 500 during OIDC (SSO) login.
- D-38003 - Fixed an issue where the personal access token's validity was extended by an extra day due to timezone differences between the Release pods and the user's system/browser.
- D-38134 - Fixed an issue where the remote script task failed to populate output properties to variables.
- D-38209 - Fixed an issue where template import failed if an 'HTTP Endpoint for Webhooks' connector already existed at the folder level.
- D-38410 – Fixed an issue where the Release server failed to start after an upgrade. This was caused by the deletion of the PVC, which removed the repository encryption key required to load sensitive configurations.
- D-38516 - Fixed an issue where custom plugins using javax.annotation bypassed compatibility checks, causing post-upgrade failures.
- D-39229 - Fixed an issue where upgrading the operator on OpenShift failed because only the latest (N) version was available in the channel, while OpenShift requires both N and N-1 versions for a successful upgrade.