Build: 2021.3.12132
We are needing to update versions, but I also didn’t see this in any of the release notes of the more recent releases.
To reproduce this, add a Runbook (Manual Intervention was what I happened to do) and name it something like “Test: Octopus Runbook Characters”, add in data for the other required fields, and hit “Save”.
Then go to “Update” and add a 1 anywhere to the runbook name so you can save. You will get the following error
'Test: Octopus Runbook Characters1' contains invalid characters. Names can only contain letters, numbers, periods, commas, dashes, underscores or hashes.
and the list of special characters does not include colons.
It doesn’t look like I’m able to reproduce the behavior you’re reporting in 2021.3.12132, so I was wondering if you could provide a few screenshots and the exact steps you’re following to get the error to show?
If you’re ok with it, would you be willing to capture a HAR file and send it securely to me using the following link? mpeterson - Octopus Support
This will give me an idea of where Octopus is encountering this validation so I can further investigate on my end.
Let’s start with a more detailed walkthrough of what I’m seeing. If that doesn’t help you reproduce, I’ll get you a HAR file, but I can’t think of anything we have done to customize Octopus, and this doesn’t feel like a customization thing. The thing that comes to mind specifically is you may have thought adding a process step to a runbook. I did reference manual intervention and although that was what I was doing for the runbook where I hit this, I shouldn’t have included it because it doesn’t matter for the issue I’m mentioning. This is specifically on the Runbook itself.
Thanks for the detailed reproduction steps, that always really helps us out. I tested your steps on our Cloud instance, version 2022.3.2617-hotfix.4278, and could not reproduce. However, I also tried those steps on my local server version of 2022.1.2386 and wasn’t able to save during the first step of creating the runbook with the title ‘Test: Octopus Runbook’ as it threw that same error:
I believe your issue may be with the colon. I’m not sure why you can use the colon initially in your version, but it’s blocked in my local version, which was released later. Could you try the same steps but without the colon? I’m curious what will result. Also, no matter the outcome, it appears that our later Octopus versions 2022.3 properly allow those characters to be used in the runbook name, so once upgraded, this issue won’t occur.
Thanks for getting back to us and for the clarification.
It looks like we’ve fixed this inconsistency in later versions of Octopus (e.g. 2022.2.6872), as I’ve tested it and the validation shows immediately upon trying to create the Runbook rather than on the “update” to the name.
I understand you’re not really concerned about being able to use special characters in the Runbook name at this point, but I wanted to mention that you will likely still have a problem with the colon and other characters in later versions of Octopus. This is due to the Runbook name validation being tied to the OS filesystem filename validation, so it’s limited to what Windows will support there. I’m following up internally to better understand why this validation is designed in this manner, and I’ll let you know what I find.
Just to clarify what you wrote, I can see where I’d also have issues editing these going forward if we happened to want to change the name. That we can deal with and fix. However another scenario occurred to me as I was reading your response. Is there a case where we might have issues executing these if we snuck them with invalid characters and try to execute them?
That’s a great question, and I can answer that and clarify my earlier response.
It doesn’t look like this should impact the ability to run improperly named runbooks in alter versions of Octopus, though you’re right you would hit the validation issue if you attempted to rename the runbook. However, as long as you pick a valid name for the Runbook when you update it, it will save.
Also, you might encounter the issue reported in the #7381 issue where if you attempt to export/import the runbook into another instance it would fail validation on import.
I tested this by following your repro steps in 2021.3.12132 but didn’t rename the runbook (so I kept its name as Test: Octopus Runbook) and made sure it would run. I then upgraded my Octopus instance to 2022.2.6872 and attempted to re-run the Runbook, and it was successful. I could also rename it with a valid name.
Hopefully that answers your questions, but let me know if you need anything else.