In Release, when creating a variable of type xlrelease.ReferenceVariable, it is only possible to reference type extending configuration.HttpConnection.
In Release, it is possible to create new types of configuration of type xlrelease.Configuration which are not a http connection and can contains an arbitrary number of properties.

It is possible to use a xlrelease.Configuration from a custom task, but it is impossible to create a variable to such configuration in a custom task, even though the button is displayed.

For example:
```xml
<?xml version='1.0' encoding='UTF-8'?>
<synthetic xsi:schemaLocation="http://www.xebialabs.com/deployit/synthetic synthetic.xsd" xmlns="http://www.xebialabs.com/deployit/synthetic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<type type="company.CustomConfiguration" extends="xlrelease.Configuration" label="Company: Custom Configuration">
<property name="property1" kind="string" required="true" />
</type>

<type type="company.CustomConnection" extends="configuration.HttpConnection" label="Company: Custom Connection">
<property name="property1" kind="string" required="true" />
</type>

<type type="company.CustomTask" extends="xlrelease.PythonScript" label="Company: Custom Task">
<property category="input" name="customConfiguration" kind="ci" referenced-type="company.CustomConfiguration" />
<property category="input" name="customConnection" kind="ci" referenced-type="company.CustomConnection" />
</type>
</synthetic>
```

Try creating the "Custom Task", two properties will be displayed in the task configuration, both able to reference configuration, both with the button to toggle between direct reference to a configuration or to a variable, but only the connection is able to use a variable.

# Feature Request:
Extend reference variable to reference xlrelease.Configuration and being referenced in a custom task.

# Who would want this
Anyone having configuration more complex than basic types which needs to be reused over and over, instead of using multiple variable, folderVariables, globalVariables

# Why it's valuable to them
If a xlrelease.Configuration can be used as a reference variable, it is possible to create new configuration with related information which can then be reused at multiple location. This will lead to less errors and more re-usability.

# How it would be used
For example, a template defined how an application is prepared for an acceptance environment, validated, then deployed in production.
In such template, all information about the acceptance and production environment are stored in variables of the templates, like the name of the environment, environment id in xldeploy, name of the related database, people to notify when the application is ready on an environment. To test such template, every variable must be replaced with test values to avoid running a release on the real acceptance/production environment, with the possibility of a mistake and deploying in production.
With reference variable, it is possible to put together any information related to the acceptance and production environment in one location.
It is also possible to create new configuration to test the template without impact production environments.


Support ticket reference: 200962

Comments

  • Thank you for your suggestion.

    The release, featuring Workflows capability, introduced the new Reference variable type, enabling direct access to HTTP connections during workflow execution. Originally conceptualised as a supportive feature for Workflow executions, its standalone functionality wasn't initially considered.

    For the specific use case you mentioned, a solution is currently undergoing development in our lab. We are prepared to provide this update for testing purposes through a hotfix solution and eagerly await your feedback. If you are interested, please contact your Customer Success Manager (CSM) with the Release version details for testing. This change is compatible with versions 23.1.x and above.

  • Based on the feedback we received after sharing the demo patch with you through the CSM manager, we intend to incorporate Reference variable functionality in the upcoming Erawan (24.1) release as part of the Release product.