Skip to content

Commit

Permalink
fix(Designer): Resolve all app settings except key vault reference va…
Browse files Browse the repository at this point in the history
…lues (#4459)

Resolve all app settings except key vault references as values

Co-authored-by: Riley Evans <rileyevans@Rileys-MacBook-Pro.local>
  • Loading branch information
rllyy97 and Riley Evans committed Mar 26, 2024
1 parent c0f4907 commit 5b2c870
Showing 1 changed file with 4 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,10 @@ export class WorkflowUtility {
if (appsettings) {
for (const settingName of Object.keys(appsettings)) {
const settingValue = appsettings[settingName] !== undefined ? appsettings[settingName] : '';
result = replaceOccurrenceInResourceIds(result, `@appsetting('${settingName}')`, settingValue);
result = replaceOccurrenceInResourceIds(result, `@{appsetting('${settingName}')}`, settingValue);
// Don't replace if the setting value is a KeyVault reference
if (settingValue.startsWith('@Microsoft.KeyVault(')) continue;
result = replaceAllOccurrences(result, `@appsetting('${settingName}')`, settingValue);
result = replaceAllOccurrences(result, `@{appsetting('${settingName}')}`, settingValue);
}
}

Expand Down Expand Up @@ -116,21 +118,3 @@ function replaceIfFoundAndVerifyJson(stringifiedJson: string, searchValue: strin
return undefined;
}
}

function replaceOccurrenceInResourceIds(_inputString: string, settingName: string, settingValue: string): string {
let inputString = _inputString;
const resourceIdRegex = /\/subscriptions\/[^"]+"/g;
const resourceIds = inputString.match(resourceIdRegex);

// If no resource ids are found, return the original string
if (!resourceIds) return inputString;

for (const resourceId of resourceIds) {
if (resourceId.includes(settingName)) {
const replacedString = resourceId.replace(settingName, settingValue);
// Replace the original resource id in the input string with the replaced string
inputString = inputString.replace(resourceId, replacedString);
}
}
return inputString;
}

0 comments on commit 5b2c870

Please sign in to comment.