From b9ceb821abbe26be35eef2dc4171f4b1f46ccd52 Mon Sep 17 00:00:00 2001 From: Abhishek Rajput Date: Thu, 24 Aug 2023 13:35:42 +0530 Subject: [PATCH 1/2] Mask BlockDaemon RPC endpoints in logs --- relayer/middleware/providers.middleware.ts | 29 ++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/relayer/middleware/providers.middleware.ts b/relayer/middleware/providers.middleware.ts index 7ac77c3b..2041b77c 100644 --- a/relayer/middleware/providers.middleware.ts +++ b/relayer/middleware/providers.middleware.ts @@ -202,7 +202,9 @@ export function providers( const chains = Object.assign({}, defaultChains, opts?.chains); - logger?.debug(`Providers initializing... ${JSON.stringify(chains)}`); + logger?.debug( + `Providers initializing... ${JSON.stringify(maskRPCProviders(chains))}`, + ); providers = await buildProviders(chains, logger); logger?.debug(`Providers initialized succesfully.`); } @@ -260,7 +262,9 @@ async function buildProviders( error.originalStack = error.stack; error.stack = new Error().stack; logger?.error( - `Failed to initialize provider for chain: ${chainIdStr} - endpoints: ${endpoints}. Error: `, + `Failed to initialize provider for chain: ${chainIdStr} - endpoints: ${maskRPCEndpoints( + endpoints, + )}. Error: `, error, ); throw error; @@ -269,3 +273,24 @@ async function buildProviders( return providers; } + +function maskRPCEndpoints(endpoints: string[]) { + return endpoints.map((url: string) => { + const apiKeyPos = url.indexOf("apiKey"); + if (apiKeyPos > -1) { + // Found API secret key in the RPC url, show initial 3 chars and mask the rest + return url.substring(0, apiKeyPos + 10) + "***"; + } + return url; + }); +} + +function maskRPCProviders(chains: Partial) { + const maskedChains: Partial = {}; + for (const [chainId, chainConfig] of Object.entries(chains)) { + maskedChains[chainId as unknown as ChainId] = { + endpoints: maskRPCEndpoints(chainConfig.endpoints), + }; + } + return maskedChains; +} From 1c23f5a23dc6b73fc81e52868ee63405c467761a Mon Sep 17 00:00:00 2001 From: Abhishek Rajput Date: Thu, 24 Aug 2023 17:12:42 +0530 Subject: [PATCH 2/2] update comment --- relayer/middleware/providers.middleware.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/relayer/middleware/providers.middleware.ts b/relayer/middleware/providers.middleware.ts index 2041b77c..949ab18d 100644 --- a/relayer/middleware/providers.middleware.ts +++ b/relayer/middleware/providers.middleware.ts @@ -278,7 +278,7 @@ function maskRPCEndpoints(endpoints: string[]) { return endpoints.map((url: string) => { const apiKeyPos = url.indexOf("apiKey"); if (apiKeyPos > -1) { - // Found API secret key in the RPC url, show initial 3 chars and mask the rest + // Found API key in the RPC url, show only initial 3 chars and mask the rest return url.substring(0, apiKeyPos + 10) + "***"; } return url;