bool SecretsManagerHelper::FetchCredentials()

in src/authentication/secrets_manager_helper.cc [52:75]


bool SecretsManagerHelper::FetchCredentials(const Aws::String& secret_id) {
    Aws::SecretsManager::Model::GetSecretValueRequest request;
    request.SetSecretId(secret_id);

    const Aws::SecretsManager::Model::GetSecretValueOutcome outcome = this->sm_client->GetSecretValue(request);

    if (outcome.IsSuccess()) {
        const Aws::String secret_str = outcome.GetResult().GetSecretString();
        const Aws::Utils::Json::JsonValue secret_json = Aws::Utils::Json::JsonValue(secret_str);
        const Aws::Utils::Json::JsonView view = secret_json.View();

        if (view.ValueExists(USERNAME_KEY) && view.ValueExists(PASSWORD_KEY)) {
            username = view.GetString(USERNAME_KEY);
            password = view.GetString(PASSWORD_KEY);

            return true;
        }
        LOG(ERROR) << "Secret missing expected key value pairs";
        return false;
    }

    LOG(ERROR) << "Error getting secret value: " << outcome.GetError().GetMessage();
    return false;
}