in src/com/epam/digital/data/platform/pipelines/registrycomponents/regular/Redash.groovy [95:130]
private String regenerateApiKey(String url, String password) {
context.logger.info("Get redash login cookie")
String systemAdminEmail = context.platform.getSecretValue(REDASH_SETUP_SECRET, "email")
def loginResponse = context.script.httpRequest url: "${url}/login",
httpMode: "POST",
contentType: "APPLICATION_FORM",
requestBody: "email=${systemAdminEmail}&password=${password}",
consoleLogResponseBody: context.logLevel == "DEBUG",
quiet: context.logLevel != "DEBUG",
validResponseCodes: "302"
ArrayList cookies = loginResponse.getHeaders()
.get("Set-Cookie")
.toString()
.replace("[", "")
.replace("]", "")
.split("Path=/, ")
String cookie = cookies.find { it.contains("session") }
if (!cookie)
context.script.error "Failed to get redash login cookie"
context.logger.info("Regenerate redash api key")
def response = context.script.httpRequest url: "${url}/api/users/1/regenerate_api_key",
httpMode: "POST",
customHeaders: [[name: "Cookie", value: cookie, maskValue: true]],
consoleLogResponseBody: context.logLevel == "DEBUG",
quiet: context.logLevel != "DEBUG",
validResponseCodes: "200"
return new JsonSlurperClassic()
.parseText(response.content)
.api_key
.bytes
.encodeBase64()
.toString()
}