From a561796d525aee8492550c3cc081875aceaf11c2 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Tue, 8 Mar 2022 22:45:52 +0100 Subject: [PATCH] fix health checks working with redirects --- packages/health-check/src/checks/critical.js | 6 +++- packages/health-check/src/checks/extended.js | 34 ++++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/packages/health-check/src/checks/critical.js b/packages/health-check/src/checks/critical.js index 127ebd8a..9eec00fb 100644 --- a/packages/health-check/src/checks/critical.js +++ b/packages/health-check/src/checks/critical.js @@ -201,7 +201,11 @@ async function genericAccessCheck(name, url) { const data = { up: false, url }; try { - const response = await got(url, { headers: { cookie: `nocache=true;${authCookie}` } }); + const cookie = `nocache=true;${authCookie}`; + const response = await got(url, { + headers: { cookie }, + hooks: { beforeRedirect: [(options) => (options.headers.cookie = cookie)] }, + }); data.statusCode = response.statusCode; data.up = true; diff --git a/packages/health-check/src/checks/extended.js b/packages/health-check/src/checks/extended.js index aaf74389..bf8d4b99 100644 --- a/packages/health-check/src/checks/extended.js +++ b/packages/health-check/src/checks/extended.js @@ -1023,13 +1023,27 @@ function fileEndpointCheck(done) { } // check whether hns/note-to-self would properly redirect to note-to-self/ -function hnsEndpointDirectoryRedirect(done) { +function skylinkRootDomainEndpointRedirect(done) { const expected = { - name: "hns endpoint directory redirect", - skylink: "hns/note-to-self", - statusCode: 308, + name: "skylink root domain endpoint redirect", + skylink: "AACogzrAimYPG42tDOKhS3lXZD8YvlF8Q8R17afe95iV2Q", + statusCode: 301, headers: { - location: "note-to-self/", + location: `https://000ah0pqo256c3orhmmgpol19dslep1v32v52v23ohqur9uuuuc9bm8.${process.env.PORTAL_DOMAIN}`, + }, + }; + + skylinkVerification(done, expected, { followRedirect: false }); +} + +// check whether hns/note-to-self would properly redirect to note-to-self/ +function hnsRootDomainEndpointRedirect(done) { + const expected = { + name: "hns root domain endpoint redirect", + skylink: "hns/note-to-self", + statusCode: 301, + headers: { + location: `https://note-to-self.hns.${process.env.PORTAL_DOMAIN}`, }, }; @@ -1136,7 +1150,12 @@ async function skylinkVerification(done, expected, { followRedirect = true, meth try { const query = `https://${process.env.PORTAL_DOMAIN}/${expected.skylink}`; - const response = await got[method](query, { followRedirect, headers: { cookie: `nocache=true;${authCookie}` } }); + const cookie = `nocache=true;${authCookie}`; + const response = await got[method](query, { + followRedirect, + headers: { cookie }, + hooks: { beforeRedirect: [(options) => (options.headers.cookie = cookie)] }, + }); const entry = { ...details, up: true, statusCode: response.statusCode, time: calculateElapsedTime(time) }; const info = {}; @@ -1237,7 +1256,8 @@ module.exports = [ // uniswapHNSRedirectCheck, uniswapHNSResolverCheck, uniswapHNSResolverRedirectCheck, - hnsEndpointDirectoryRedirect, + skylinkRootDomainEndpointRedirect, + hnsRootDomainEndpointRedirect, skappSkySend, skappNoteToSelf, skappUniswap,