Hi Michael,
Thanks very much for getting back to me so quickly.
I’ve attached a screenshot (MT_Settings.jpg), as requested, which shows the settings for a tenant in tenants/Tenants-1/variables/projects.
It shows settings for a project consisting of two IIS applications, to be installed on different web servers and three different ReadyRoll database targets, potentially on different servers. Each of our customers will have their own UAT and Production environment, so I’m maintaining all of these settings for both environments. Using conventions to minimise the variation in the settings is not an option as many of our customers are either University or local-government run, and they will dictate their own conventions. In any case, these environments exist already before we will begin deploying this product, which is why a tool such as this is going to be so useful to us. But it results in a long list of settings per tenant for our operations team to keep on top of, and their buy-in to this will be key to its success.
I accept that there is some rationalisation that I can do on the settings that I have included (if I have the DB connection details individually, I don’t need the connect string as a separate setting, for example) but it’s a list that is actually going to grow, not shrink.
Being able to order this list would certainly help, but I still think it is quite overwhelming, and more difficult than it should be to locate a particular setting.
By ‘grouping the settings into logically related sections’, I mean logically-related in relation to our own product and environment to which the settings will apply. I do agree that they make sense logically within Octopus, but using the library variable template sets I would be able to group the settings into database settings for each of my three databases and IIS settings for each of my IIS applications. Web.config transforms for each of my IIS apps I could even split across several functionally-related groupings (in the context of our product).
To show what I mean, I just created a few library variable template sets (with a much-abbreviated list of settings) to show the UI that is rendered for those at /tenants/Tenants-1/variables/library (ExampleUsingVariableTemplates.jpg) which is about perfect. If only I could maintain these settings by environment for each tenant, it would be.
The side-by-side view of the environments’ settings in /variables/projects is functionally perfect, but just the addition of the headed panels in the UI of the /variables/library list transforms the usability and would really make the difference.
Please let me know if I can clarify this any further.
I must be honest, it hadn’t occurred to me to take the API approach to maintenance of settings, and I guess it would work, but adding more development to our own backlog to use this tool is obviously something I would be very keen to avoid, as I’m sure you’d understand!
Thanks again for all your work on this,
Mark