private String regenerateApiKey()

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()
    }