Release Manual 9.8.x

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

Digital.ai Release 9.8.0

Release 9.8.0 is a short-term support (STS) version that will be supported until superseded by the next STS or long-term support (LTS) version. For more information, refer to Short-term support/Long-term support policy.

Feature highlights

These are the main features of the 9.8 release:

  • Revamped release calendar
  • Vertical tabs in folders
  • Live Dashboard Tiles
  • Dashboard auto-refresh
  • Trigger logs & dry run
  • Delivery APIs
  • As-code support for Folder and Global variables
  • SCM support for Bitbucket Server / Generic Git
  • Audit report: added task description
  • Improved OIDC Authentication

…and much more improvements and bug fixes.

Digital.ai Release 9.8.0 new features breakdown

Revamped release calendar

The calendar release overview has been redesigned from the ground up to be better readable and more scalable.

New features, among others:

  • Sleek timeline view
  • Expanded release view includes tasks
  • Filtering by task tags
  • Export calendar as Excel
  • Dependency drawer
  • Blackout period
  • Week View
  • Risk filter
  • Enhanced progress bar for releases

Vertical tabs in folders

In perhaps the most visually striking change, folder tabs are moved to a vertical menu on the left for better usability.

Live dashboard tiles

Three new global dashboard tiles that report on running releases:

  • Active releases
  • Active releases by status
  • Active releases by risk

Previously, dashboard tiles only reported on archived releases. These new tiles now report on releases that are still active.

Dashboard auto-refresh

Dashboard contents can now be automatically refreshed. Great for wall-mounted performance monitors!

Trigger logs & dry run

The date a trigger was last run is now displayed.

A new Activity logs subpage is available that shows all trigger updates, lifecycle changes (enable/disable) and trigger executions. Deep-links to releases that are created. Webhook based triggers also capture the HTTP event which triggered therelease.

A cleanup job will remove all the surplus events from the database, by default every 6 hours. This can be configured in the xl-release.conf property file.

xl.features.webhooks.retention-policy.schedule

The Trigger dry run feature allows you to test a webhook trigger on a dummy event to check its correctness. This will not create a release or be shown in the activity logs.

Delivery APIs

Public APIs for Delivery and Delivery patterns are now available.

As-code support for Folder and Global variables

Folder and global variables now exported as part of folder and globalconfiguration, featuring new folderVariables and globalVariables elements. Template variables are kept as before. There are no dedicated CLI options to export variables, just use the -c or --configurations option.

SCM support for Bitbucket Server / Generic Git

This release adds support for Bitbucket Server and any generic Git as SCM provider. Contrary to existing SCM connections this one is implemented as a generic Git connection. In essense this will work with any remote git repository and will clone the remote repository locally. In cluster mode, this means each node will have its own clone of the repository. You can configure the directory that the repositories will be saved by setting the following property in xl-release.conf:

xl.scm.workdir-path ${xl.repository.workDir}/scm_repos

Task Description in Audit report

The task description is now included in the Audit report.

Improved OpenID Connect (OIDC) authentication

OpenId Connect (OIDC) authentication integration now comes with a lot of new security enhancements. nonce parameter has been added now to prevent replay attacks. Also, Proof Key for Code Exchange (PKCE) support has been added.

keyRetrievalSchedule is not required anymore. Customer can safely remove this from their xl-release.conf file.

A new postLogoutRedirectUri has been added for post-logout URL which will replace post_logout_redirect_uri query parameter. If you have added post_logout_redirect_uri query parameter in your redirectUri uri, remove query parameter and set it as postLogoutRedirectUri.

xl {
  security {
    auth {
      providers {
        oidc {
          ...
          logoutUri="https://oidc.example.com/auth/realms/xl-release/protocol/openid-connect/logout"
          redirectUri="https://xl-release.example.com/oidc-login"
          postLogoutRedirectUri="https://xl-release.example.com/oidc-login"
        }
      }
    }
  }
}

Customers can now customise ID Token signature algorithm using new idTokenJWSAlg parameter as described below. The default algorithm for signature verification is RS256.

xl {
  security {
    auth {
      providers {
        oidc {
          ...
          idTokenJWSAlg="<The ID token signature verification algorithm>"      
        }
      }
    }
  }
}

Below JSON Web Algorithms (JWA) are currently supported:

Value Digital Signature or MAC Algorithm
RS256 RSASSA-PKCS1-v1_5 using SHA-256
RS384 RSASSA-PKCS1-v1_5 using SHA-384
RS512 RSASSA-PKCS1-v1_5 using SHA-512
ES256 ECDSA using P-256 and SHA-256
ES384 ECDSA using P-384 and SHA-384
ES512 ECDSA using P-521 and SHA-512
PS256 RSASSA-PSS using SHA-256 and MGF1 with SHA-256
PS384 RSASSA-PSS using SHA-384 and MGF1 with SHA-384
PS512 RSASSA-PSS using SHA-512 and MGF1 with SHA-512
HS256 HMAC using SHA-256
HS384 HMAC using SHA-384
HS512 HMAC using SHA-512

Note: For MAC based algorithms such as HS256, HS384 or HS512, the clientSecret corresponding to the clientId is used as the symmetric key for signature verification.

Contact Digital.ai Support if you have hotfixes

If you have hotfixes installed, contact the Digital.ai support team before upgrading.

Digital.ai Release 9.8.0 release notes

New features

  • [ENG-1026] - Tile for live “releases by status”
  • [ENG-1027] - Implement generic tile auto-refresh functionality
  • [ENG-1029] - Implement deep linking for live releases by status tiles
  • [ENG-1031] - Live tiles: Implement generic filtering criteria on live tiles
  • [ENG-1045] - [FR] Add Task Description to CoC report
  • [ENG-1403] - Triggers: Show trigger change logs
  • [ENG-1408] - Triggers: Show trigger execution logs
  • [ENG-1409] - Triggers: Show last run indicator on triggers page
  • [ENG-1481] - [FI-185] XLR doesn’t fetch any build status(by using variable) for failed jenkins job
  • [ENG-1500] - Remove deprecated spring-security-oauth library
  • [ENG-1501] - Add nonce to prevent replay attacks in OpenID Connect
  • [ENG-1502] - Add PKCE Support for OpenID Connect
  • [ENG-1503] - Add configuration to select id token signature algorithm with OpenID Connect
  • [ENG-1508] - Live tiles: Redo the “Releases by status” tile
  • [ENG-1509] - Live tiles: Implement “Releases by risk” tile
  • [ENG-1510] - Live tiles: Implement “Releases list” tile
  • [ENG-1513] - Triggers: Rework the navigation concept of triggers
  • [ENG-1552] - Version Control for Release using on-prem bitbucket
  • [ENG-1651] - Live tiles: Feedback improvements
  • [ENG-1661] - JSON webhooks: 9.8 improvements bucket
  • [ENG-1780] - Add ‘date’ query to the timeline URL
  • [ENG-1789] - JSON webhooks: Execution logs feedback
  • [ENG-1895] - Improve new folder explorer navigational concepts
  • [ENG-2078] - Resolve folder and global string variables in polling based release triggers
  • [ENG-219] - When a task is scheduled to deploy an application, it should wait for the scheduled deployment time
  • [ENG-2231] - Event based triggers do create log entries when events are ignored
  • [ENG-825] - [FR] XLR - Provide the ability to assign locked tasks
  • [ENG-826] - As-code support for Folder and Global variables
  • [ENG-834] - Release Delivery: Make the DeliveryApi public
  • [ENG-852] - DELIVERIES TAB : Show Stage Name (in progress) in the Delivery Overview Screen.
  • [ENG-853] - Delivery Pattern : Add a button to create new stages in between
  • [ENG-855] - Pattern : Unique name (Show the Folder where the Pattern already exist)
  • [ENG-856] - Show tracked item name on Linked Releases pop-up
  • [ENG-858] - New task type: Find delivery by tracked items
  • [ENG-859] - XLR - Delivery folder not shown in the deliveries view
  • [REL-10137] - [folder explorer] Create selected folder component
  • [REL-10287] - Implement feature toggle for due soon and overdue notifications
  • [REL-10441] - Case sensitivity issues on environments
  • [REL-8498] - Script_output.log file under Attachment is not attached when task is Aborted
  • [REL-8851] - [COMPONENT] Release progress bar

Improvements

  • [ENG-1446] - Resizable track item column in deliveries
  • [ENG-1597] - Add link to created release on trigger activity logs
  • [ENG-1744] - Keep keystore and truststore configuration when ssl and mutualssl flag value are toggled off
  • [ENG-1774] - Use startedFromTaskId to show a relation with relationship-plugin
  • [ENG-857] - Reduce width of stage details
  • [REL-9788] - Sometimes tasks cannot be completed because XLR is responding slow

Bug fixes

  • [ENG-1025] - [XL-CLI] generating dashboards with filters exports templateId
  • [ENG-1036] - Update third party component with known vulnerabilities
  • [ENG-1040] - [xlr-as-code] List box variable value can be default set to element which is not part of that list
  • [ENG-1046] - Team name is not trimmed through API calls
  • [ENG-1374] - Security fixes for docker images
  • [ENG-1384] - XLR: Make StuckGateDetectorActor configurable
  • [ENG-1398] - [UI] Template Id from variable in Create Release Task not loading
  • [ENG-1400] - Negative integer variable
  • [ENG-1440] - TriggerTitle Upgrader on 9.0 is not compatible with 9.7
  • [ENG-1441] - Variables in XL Release triggers are overwritten when template variable is updated
  • [ENG-1461] - XLRelease980TeamsTrimName Upgrader is inconsistent with MSSQL older versions
  • [ENG-1543] - Permission Error not showing for Create Release Task for Template field
  • [ENG-1588] - GUI Bug: team not visible while adding to trigger: manage trigger permission under teams and permissions
  • [ENG-1674] - Fix depth parameter on FolderApi
  • [ENG-1677] - Jira Task : Create Issue is getting failed while creating EPIC issue type.
  • [ENG-1679] - Jira–> Updated issues Task: Update sumaries checkbbox is not working as expected
  • [ENG-1707] - Fix closing brackets for html code in AngularJS Code
  • [ENG-1734] - The “Created By” column in Audit Report shows incorrect data
  • [ENG-1742] - Fix broken rrule dependency
  • [ENG-1747] - Fix table component on task access screen
  • [ENG-1771] - Remove zone index from IPv6
  • [ENG-1772] - Create release button can be clicked multiple times
  • [ENG-1773] - XL-CLI generates templates when only permissions are requested
  • [ENG-1781] - StuckGateActor shouldn’t complete GateTasks that have no dependencies or conditions
  • [ENG-1782] - Tasks stays in progress if attachment limit exception is thrown
  • [ENG-1794] - Wrong modal title when deleting comment
  • [ENG-1813] - Restart message after installing a plugin does not appear
  • [ENG-1823] - Value provider values are not displayed properly on first load
  • [ENG-1858] - Use read_committed transaction for H2
  • [ENG-1948] - The task modal title gets overflow for the skipped, locked and completed task
  • [ENG-2070] - Script logs are not visible in attachments after aborting a task
  • [ENG-2110] - Filter’s clear icon (X) is positioned incorrectly on the Triggers tab
  • [ENG-2119] - Unable to test git repository that does not have branch called ‘master’
  • [ENG-2147] - New template variables are not visible on edit trigger page
  • [ENG-2160] - Phase name showing Missing Value in Release Audit Report(Excel).
  • [ENG-2191] - Overdue tasks don’t show up in tableview
  • [ENG-2193] - Inconsistency in character limit check in the description of the triggers
  • [ENG-2199] - Audit report job thread keeps on running in background on abort
  • [ENG-2218] - Phase name goes out of text box in table view
  • [ENG-2235] - Browser console error on adding a new dashboard tile
  • [ENG-2249] - Increase length of the shortened task title
  • [ENG-669] - Inherit Teams and permissions from parent folder shows correct permissions only when clicked on Save
  • [ENG-721] - Test button in New Git: Repository in shared configuration remains disabled when the Authentication method is changed
  • [ENG-786] - Tags field on the release properties page does not have full width
  • [ENG-813] - Patch Jython library
  • [REL-10116] - [UI] Principal is shown added in in role on UI, after addRole modal dialog changes are canceled
  • [REL-10285] - On ESC keypress, both task modal and comment delete modal are closed.
  • [REL-10350] - Folder Variable value is not being passed to Input Task
  • [REL-10351] - Team name is treated as case-sensitive which creates problem in assigning task to a team through script.
  • [REL-10403] - Unable to assign permissions to teams having one character long names
  • [REL-10409] - Wrong color for time field on task modal
  • [REL-10422] - Handling backslashes in variable interpolation correctly
  • [REL-10430] - Column length too small in XLR_DEPENDENCIES
  • [REL-10433] - Dashboard name/title is not exported in yaml for custom dashboards while exporting dashboard through XL CLI
  • [REL-10434] - While generating yaml for a template, release dashboard definition for other templates in that folder also gets included.
  • [REL-10435] - Comma in parameter is encoded in URL
  • [REL-10459] - Empty string in key-value variables makes groovy export unusable
  • [REL-9904] - User can click on ‘Add to group’ without permission

Digital.ai Release 9.8.1 release notes

New features

  • [ENG-2391] - Expose roleId in API
  • [ENG-2434] - Replace Jettison JSONObject with Jackson ObjectMapper when leniently loading Release JSON
  • [ENG-2669] - Extend support package with usage statistics report
  • [ENG-2733] - Move cluster messages in their own queue
  • [REL-10477] - [Investigation] More Futures timed out exceptions

Improvements

  • [ENG-2311] - Make custom and script tasks save results asynchronously
  • [ENG-2934] - Add ability for asc/desc sort when searching releases
  • [ENG-2962] - Add Role id as extension to GET release call [ReleaseApi]
  • [ENG-3250] - Add a feature flag to remove restriction for encrypted value usage

Bug fixes

  • [ENG-1866] - Refine release audit report for templates
  • [ENG-1894] - Scripts that output large amount of text could cause out of memory error
  • [ENG-1984] - Random AccessControlException
  • [ENG-2203] - Bad padding and alignment on Teams & Permission screens
  • [ENG-2244] - Missing template title on release properties page
  • [ENG-2245] - Not consistent view of tile in different browsers, hidden release and template names for Calendar
  • [ENG-2256] - UI issues with blackout period and label
  • [ENG-2262] - Server error for long label and blackout period names
  • [ENG-2284] - Create release destination folder variable resets to parent folder upon failure
  • [ENG-2304] - Header of Triggers view on folders misaligned on minimum resolution
  • [ENG-2305] - Remove task description from the Release audit Task details sheet
  • [ENG-2325] - Restart phase doesn’t use the latest content of the task
  • [ENG-2342] - The delivery of the Deliveries tab is getting off the screen.
  • [ENG-2393] - Disable Test button in HTTP Endpoint For Webhooks shared configuration
  • [ENG-2417] - Fix update for an enum property values
  • [ENG-2418] - Fix default cron timezone for quartz
  • [ENG-2490] - Unable to update release with duration set
  • [ENG-2512] - Pipeline icon on release overview is not visible for planned releases
  • [ENG-2545] - Navigating quickly to different route hangs the page
  • [ENG-2604] - New lines in comment section are not rendered properly in notification email
  • [ENG-2627] - Fix spring security extension import for OIDC Plugin
  • [ENG-2751] - CompleteTask message to actor ignored because of GC
  • [ENG-2803] - Environment reservation does not show selected applications if it contains a note
  • [ENG-2814] - Set default stage if present while creating a new environment
  • [ENG-2858] - Fix variable mappings for triggers
  • [ENG-2889] - Fix Inconsistent behaviour for releaseApi.restartPhase(release, True) Jython API call
  • [ENG-2918] - Add proper permission check to delete the configuration
  • [ENG-2967] - Bulk operations should go through respective actors
  • [ENG-2983] - Empty content tabs appear in Audit Report
  • [ENG-3026] - Tooltip component not wrapping the long character word
  • [ENG-3029] - Jira check issue task status is not updated from “in progress”
  • [ENG-3072] - Issue with Release archiving
  • [ENG-3077] - Generate for as-code is not working when variable is used for folder or template in create release task
  • [ENG-3226] - In progress orange arrow is missing on tasks screen
  • [ENG-3227] - Fix HTTP 401 errors for logo with branding changes
  • [ENG-3260] - Intermittent NPE applying YAML with gate tasks in template on clustered XLR
  • [ENG-3651] - Fix permission check to fill blackout period
  • [ENG-3661] - Full name doesn’t show up in downloaded reports
  • [ENG-3677] - Warn users when creating a Blackout period or Special day in the past
  • [ENG-3781] - Not able to delete/edit the color code after “three” letters
  • [ENG-3793] - Improve clarity of displayed date/month/year when scrolling Calendar
  • [ENG-3807] - Notifications are not sent to LDAP groups
  • [ENG-3822] - HTTP 400 error while exporting release audit report
  • [ENG-3825] - Task owner should not change after being completed in advance
  • [ENG-3826] - Folder owner wrong calculated for ldap group users
  • [ENG-3832] - As-code: can’t import templates with scheduledStartDate in the future
  • [ENG-3833] - Unable to edit long folder variable names
  • [ENG-3841] - Duplicate releases on folder releases list
  • [ENG-3855] - Use UTF-8 on Jython HttpRequest