Improve UX for managing many environment variables
Problem to solve
A customer reported the following:
Are there any improvements planned for the CI/CD environment variables management? It very hard to use (UX wise) but we rely a lot on it so this is currently quite painful for us.
- If there are many environment variables the list gets totally confusing with so many inputs, buttons and options, etc.
- Most of our environment variables have a long name but the input field is too short so that they’re not fully visible. This way you end up always clicking into the input fields and start scrolling around when you're searching for a certain variable
- Also, we store secrets like certificates and similar but therefore the value input field is by far too small. I know it’s resizable in the height but the width is by far too small. If you’ve any typo in your text it’s almost impossible to detect it
- Not sure since when, but when modifying some value and hitting save from time to time it doesn’t save the data. Then you’ve to refresh the browser window again and start over from scratch
- When adding new items but also modify already other existing ones to the same time we often get an error like “duplicated entries”
- The table uses only half of the window space (see red line screenshot), screenshot can be found here https://gitlab.com/gitlab-com/customer-success/sa-service-desk/issues/1143 (internal)
More or less it feels like that the only safe way to modify an environment variable is to open the page, reveal the values, modify a single one, hit save, reload the page and start over again for the next environment variable you want to modify. Hence, any improvements to the UX of editing environment variables would be gladly appreciated. To be honest, using this feature in its current state is just kind of frustrating.
Design solution
- Restructure UI section with a dedicated table (similar to new approvals UI)
- Adding variables will be done through a dedicated modal exposing the configurable options that way
- Validation can be done on submit (doesn't require to be done in real time, though nice if possible)
- Masked variables are not accepted unless they fulfill regexp requirements
- Masking variable flag will be enabled by default
- Copy changes
What Mockup Project variable settings Variable creation modal Variable creation modal error
Workarounds
- GitLab API to manage variables
- https://docs.gitlab.com/ee/api/project_level_variables.html
- https://docs.gitlab.com/ee/api/group_level_variables.html
- Change personal settings and choose Fluid for the Layout:
Now the user experience should be better
Links / references
Ultimate customer is affected https://gitlab.my.salesforce.com/0016100000fC0Fj
internal customer issue https://gitlab.com/gitlab-com/customer-success/sa-service-desk/issues/1143 cc @brendan @k33g @dimitrieh @mnichols1 @mvanremmerden