Release Automation

Action ROC – Replace Tokens in Files doesn't work with lots of tokens configured

  • 1.  Action ROC – Replace Tokens in Files doesn't work with lots of tokens configured

    Posted 09-17-2019 03:29 PM

    We are facing issues with action "ROC – Replace Tokens in Files" while running a deployment. One of the deployment steps includes using the action "ROC – Replace Tokens in Files" to modify a config file and replace token placeholders in it with token values. The action and step is failing due to a couple of issues highlighted below.

    Token read limit :
    While executing the ROC – Replace Token in Files action, Nolio reads the token values defined under the Parameters -> Token section. We have more than 50 tokens defined and Nolio seems to have some limit on the number of characters when reading the token values. The limit seems to be around 4100 characters while reading the tokens and hence Nolio is only able to fetch 11 token values in our setup and fails. The action will throw an error and go into failed-paused state if the limit on reading is reached and a token closing tag hasn't been found.

    Token Value Character Limit : Nolio seems to have a limit on the number of characters for the value of a string token. There are some tokens where we would need the values to exceed 4000 characters for the config file. This issue is quite simple to reproduce, in the Environments -> Parameter Configuration -> Tokens screen, with a string token already defined, try to enter a long value into the string token field, at some point the value will not change with any keystrokes. There is no error message or warning at this limit, which is particularly invisible when copy and pasting a value into the UI. However, you do get an error message if you try and load a token manifest with a value larger than the limit. The error message that gets show is:
    Failed to load manifest: String or binary data would be truncated.; SQL [n/a]; nested exception is org.hibernate.exception.DataException: String or binary data would be truncated.

    Has anyone seen these issues and/or found a workaround for them?