Skip to main content
Version: Release 25.1

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 the BaseTask 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
  • 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:

ComponentDescriptionExample
MajorLast two digits of year25
MinorRelease quarter (1-4) or feature version1
PatchMaintenance version number0
beta.NumberOptional beta release numberbeta.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:

ComponentDescriptionExample
MajorLast two digits of year25
MinorRelease quarter (1-4) or feature version1
PatchMaintenance version number0
Build MetadataBuild metadata including date (MMDD) and build number. beta.MMDD is used for EA versions.1222-113, beta.407
note

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:

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.

picture 0


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.

alt


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.

    Permissions


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

Folder Switch

For more information, see Access and Navigate Folders.

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.

note

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.

Related Releases

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.

Wait for Release to Finish


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.

lock tasks

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.

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

    picture 0

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.

Displayed on Create new release page and task


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}

threedots

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.

watchers history

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 the BaseTask 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 to BaseTask 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 existing MajorityLeaderAutoDowningProvider
    • Better split-brain scenario prevention and customizable downing strategies
    • Improved cluster formation with configurable node requirements
  • 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 or secret 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:

Missed event detection

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.

note
  • 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. The xl 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:

  1. 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.

  2. 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.