Improve variables UI
The variables view is very basic and it generally needs improving since it quickly gets hard to use when you begin adding lots of variables.
1. You have to add the same variable name for multiple environments and the ordering of environments is not the same. This is error prone and makes the list hard to parse.
2. There is no description for variables so you need to add very long names sometimes. This has already been covered, but I added it for completeness. See https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/6079578-enhance-the-variable-maintenance-screen-with-varia
3. There can be different types of variables which are changed for different reasons. It would be great to have a category concept to group them with.
4. For very large numbers of variables it would be great with a search box which filters the variables as you type. It should also search in the description.
See the following mockup for an example:
Thanks everyone for your suggestions. We are happy to announce that a new version of the Variable Editor has shipped in Octopus 4.0! See https://octopus.com/blog/octopus-release-4-0 for more details.
In this first release, we have focused on providing a great variable editing experience, which we hope you will love! Although we haven’t yet been able to implement all of your great suggestions, we have been able to build an extensible variable editor that we will continue to improve in future.
Darren Ball commented
Please allow variables to be set from the channel screen instead of globally requiring scoping for every variable added.
Ranjith K commented
I agree with Nick. Adding variables for each Octopus project we create, is a tedious task. Cloning functionality would be very helpful.
Andrew Timson commented
It would be nice to be able to select & copy variables on the All Variables screen.
This are the exact suggestions I have after being a UI user of Octopus for the last year. I would like to suggestion another one:
Add ability to set variable active\inactive. This is needed for setting a service config for internal vs external test cases.
It would be SO HELPFUL being able to clone a variable set. If you could override the scope that'd be great, but just a clone would be super great.
I'd like to see what variables are inherited from Library Variable Sets as well. At the moment this is not clear, it's also not clear when a variable from a library set is being overridden at the project level.
Just one more column named "Comment" so I could describe the particular value would be a great start.
We should check to ensure there are no duplicate variables being created when we save.
Colin Winning commented
Having a Set of Variables per Environment and/or Channel would make setting up complex projects much easier. Just now it is very time consuming and error prone copying individual settings.
Anton Swart commented
Show a count of the number of variables. During setup and changing my steps and environments I've had variables dissapearing. A count could help towards noticing this issue. Better would be to warn when a process/environment change is going to delete variables.
Eric Williams commented
It's a small thing but this screen would be a good candidate for a mono-spaced / fixed width font
Harald Sømnes Hanssen commented
Not sure if my idea already is described in this suggestion
It would be helpful to see what the current environments are for the variable I have selected. Instead it shows 'press enter to edit scope', and when using keyboard navigation, it often results in toggling up a line to see what the scope on the selected line is only to toggle down and immediately forget again. I'd like to be able to see the current scope for a variable while deciding whether I need to modify it. Resting the cursor (selected marker) the line above the one I'm considering just isn't intuitive despite a few weeks of trying to get used to it.
John Rosenbaum commented
Eric Bosman commented
I also vote for a better UI
What I think that important is:
1) Help the installer (the one who is making the environments) with choosing the values of the variables in such a way that the resulting environments are as much as possible the same.
2) Give the installer an easy UI to add an environment.
If I may make a suggestion:
Make in the interface a page with 3 columns for adding/changing an environment.
*First column filled with all the different known variable names which are available in a variable set
*Second column filled with the current values
**has a filter for scopes - possibilities are Environment, Role, Target.
**If scope = Environment, then show in this column all the variables with the scope of environment = empty
**Third column – show the value of scope=role belonging to the variable left of it
**Fourth column – show the value of scope=target belonging to the variable left of it
*Fifth column the new environment, this is where you can specify the value’s for the new environment.
**The installer has to specify in the top the name of the new environment and is then able to fill all the values of the variables.
**If you fill a field with a value over here, this will result in a new variable with a value and environment=name of new environment
You have to be able to walk through the 5 column with the tab-key
If selected in second column scope filter = Role then show in this column all the variables with the scope of role = empty
**Third column – show the value of scope=target belonging to the variable left of it
**Fourth column – show the value of scope=environment belonging to the variable left of it
*Fifth column the new role, this is where you can specify the value’s for the new role
**The installer has to specify in the top the name of the new role and is then able to fill all the values of the variables.
**If you fill a field with a value over here, this will result in a new variable with a value and role=name of new role
If selected in second column scope filter = Target then show in this column all the variables with the scope of target = empty
**Third column – show the value of scope=environment belonging to the variable left of it
**Fourth column – show the value of scope=role belonging to the variable left of it
*Fifth column the new role, this is where you can specify the value’s for the new target
**The installer has to specify in the top the name of the new target and is then able to fill all the values of the variables.
**If you fill a field with a value over here, this will result in a new variable with a value and target=name of new target
This gives a simple sheet for filling variables for a new environment or role or target.
I support the idea that you can group variables based on name.
Filter variables according to environment and step would be a great feature.
Also add the feature of clone entire variable set (filter by enviroment || role || machine....) to a new destination scope.
Ed Haack commented
It would be nice to include an "import/export csv" feature, rather than having to use the UI. Yes, there's probably an API call you can make.
Ed Haack commented
Recently, a webinar showed the "filtering" option in the Variables page. Clicking the top/left icon brings up a filter row which can weed-out only the values you want to see (scope, name, value)... even more-so in v. 3.4
For example, in "scope" I enter "qa" and it shows all values for "qa", including values that are in other groups.