From f47f7c601e1924254ac9ddaca9094de8097ebbb1 Mon Sep 17 00:00:00 2001 From: alecps Date: Wed, 23 Aug 2023 16:05:50 -0400 Subject: [PATCH] cosmetic cleanup from PR review --- .../combiner/src/common/combine.ts | 35 +++--- .../combiner/src/common/io.ts | 5 +- .../src/domain/endpoints/disable/action.ts | 28 ++--- .../src/domain/endpoints/quota/action.ts | 25 ++--- .../src/domain/endpoints/sign/action.ts | 38 +++---- .../src/domain/services/log-responses.ts | 10 +- .../src/pnp/endpoints/quota/action.ts | 28 ++--- .../combiner/src/pnp/endpoints/sign/action.ts | 32 +++--- .../src/pnp/services/log-responses.ts | 53 +-------- .../combiner/src/server.ts | 3 - .../test/unit/domain-response-logger.test.ts | 4 +- .../test/unit/domain-threshold-state.test.ts | 6 - .../test/unit/pnp-response-logger.test.ts | 104 +----------------- 13 files changed, 107 insertions(+), 264 deletions(-) diff --git a/packages/phone-number-privacy/combiner/src/common/combine.ts b/packages/phone-number-privacy/combiner/src/common/combine.ts index 9b2c27a3c9b..aa616c17b2f 100644 --- a/packages/phone-number-privacy/combiner/src/common/combine.ts +++ b/packages/phone-number-privacy/combiner/src/common/combine.ts @@ -4,6 +4,7 @@ import { OdisRequest, OdisResponse, responseHasExpectedKeyVersion, + SignerEndpoint, WarningMessage, } from '@celo/phone-number-privacy-common' import Logger from 'bunyan' @@ -17,15 +18,19 @@ export interface Signer { fallbackUrl?: string } +export interface ThresholdCallToSignersOptions { + signers: Signer[] + endpoint: SignerEndpoint + requestTimeoutMS: number + shouldCheckKeyVersion: boolean + keyVersionInfo: KeyVersionInfo + request: Request<{}, {}, R> + responseSchema: t.Type, OdisResponse, unknown> +} + export async function thresholdCallToSigners( logger: Logger, - signers: Signer[], - endpoint: string, - request: Request<{}, {}, R>, - keyVersionInfo: KeyVersionInfo, - requestTimeoutMS: number, - responseSchema: t.Type, OdisResponse, unknown>, - shouldCheckKeyVersion: boolean = false, + options: ThresholdCallToSignersOptions, processResult: (res: OdisResponse) => Promise = (_) => Promise.resolve(false) ): Promise<{ signerResponses: Array>; maxErrorCode?: number }> { const obs = new PerformanceObserver((list) => { @@ -42,6 +47,16 @@ export async function thresholdCallToSigners( }) obs.observe({ entryTypes: ['measure'], buffered: false }) + const { + signers, + endpoint, + requestTimeoutMS, + shouldCheckKeyVersion, + keyVersionInfo, + request, + responseSchema, + } = options + const manualAbort = new AbortController() const timeoutSignal = AbortSignal.timeout(requestTimeoutMS) const abortSignal = (AbortSignal as any).any([manualAbort.signal, timeoutSignal]) as AbortSignal @@ -81,7 +96,6 @@ export async function thresholdCallToSigners( return } - // if given key version, check that if ( shouldCheckKeyVersion && !responseHasExpectedKeyVersion(signerFetchResult, keyVersionInfo.keyVersion, logger) @@ -120,16 +134,11 @@ export async function thresholdCallToSigners( logger.error({ signer }, ErrorMessage.SIGNER_REQUEST_ERROR) logger.error({ signer, err }) - // Tracking failed request count via signer url prevents - // double counting the same failed request by mistake errorCount++ if (signers.length - errorCount < requiredThreshold) { logger.warn('Not possible to reach a threshold of signer responses. Failing fast') manualAbort.abort() } - - // TODO (mcortesi) doesn't seem we need to fail at first error - // throw err } } }) diff --git a/packages/phone-number-privacy/combiner/src/common/io.ts b/packages/phone-number-privacy/combiner/src/common/io.ts index 48cbd14e72b..60abd19cd7b 100644 --- a/packages/phone-number-privacy/combiner/src/common/io.ts +++ b/packages/phone-number-privacy/combiner/src/common/io.ts @@ -1,12 +1,13 @@ import { ErrorType, getRequestKeyVersion, - KeyVersionInfo, KEY_VERSION_HEADER, + KeyVersionInfo, OdisRequest, OdisResponse, requestHasValidKeyVersion, send, + SignerEndpoint, } from '@celo/phone-number-privacy-common' import Logger from 'bunyan' import { Request, Response } from 'express' @@ -66,7 +67,7 @@ export function getKeyVersionInfo( export async function fetchSignerResponseWithFallback( signer: Signer, - signerEndpoint: string, + signerEndpoint: SignerEndpoint, keyVersion: number, request: Request<{}, {}, R>, logger: Logger, diff --git a/packages/phone-number-privacy/combiner/src/domain/endpoints/disable/action.ts b/packages/phone-number-privacy/combiner/src/domain/endpoints/disable/action.ts index 13f2fe97de6..8427bdee30f 100644 --- a/packages/phone-number-privacy/combiner/src/domain/endpoints/disable/action.ts +++ b/packages/phone-number-privacy/combiner/src/domain/endpoints/disable/action.ts @@ -5,6 +5,7 @@ import { disableDomainResponseSchema, DomainSchema, ErrorMessage, + getSignerEndpoint, send, SequentialDelayDomainStateSchema, verifyDisableDomainRequestAuthenticity, @@ -13,19 +14,16 @@ import { import { Signer, thresholdCallToSigners } from '../../../common/combine' import { PromiseHandler } from '../../../common/handlers' import { getKeyVersionInfo, sendFailure } from '../../../common/io' - import { getCombinerVersion, OdisConfig } from '../../../config' -import { logDomainResponsesDiscrepancies } from '../../services/log-responses' +import { logDomainResponseDiscrepancies } from '../../services/log-responses' import { findThresholdDomainState } from '../../services/threshold-state' export function createDisableDomainHandler( signers: Signer[], config: OdisConfig ): PromiseHandler { - const requestSchema = disableDomainRequestSchema(DomainSchema) - const signerEndpoint = CombinerEndpoint.DISABLE_DOMAIN return async (request, response) => { - if (!requestSchema.is(request.body)) { + if (!disableDomainRequestSchema(DomainSchema).is(request.body)) { sendFailure(WarningMessage.INVALID_INPUT, 400, response) return } @@ -35,19 +33,23 @@ export function createDisableDomainHandler( return } + // TODO remove? const keyVersionInfo = getKeyVersionInfo(request, config, response.locals.logger) - const { signerResponses, maxErrorCode } = await thresholdCallToSigners( + const { signerResponses, maxErrorCode } = await thresholdCallToSigners( response.locals.logger, - signers, - signerEndpoint, - request, - keyVersionInfo, - config.odisServices.timeoutMilliSeconds, - disableDomainResponseSchema(SequentialDelayDomainStateSchema) + { + signers, + endpoint: getSignerEndpoint(CombinerEndpoint.DISABLE_DOMAIN), + request, + keyVersionInfo, + requestTimeoutMS: config.odisServices.timeoutMilliSeconds, + responseSchema: disableDomainResponseSchema(SequentialDelayDomainStateSchema), + shouldCheckKeyVersion: false, + } ) - logDomainResponsesDiscrepancies(response.locals.logger, signerResponses) + logDomainResponseDiscrepancies(response.locals.logger, signerResponses) try { const disableDomainStatus = findThresholdDomainState( keyVersionInfo, diff --git a/packages/phone-number-privacy/combiner/src/domain/endpoints/quota/action.ts b/packages/phone-number-privacy/combiner/src/domain/endpoints/quota/action.ts index d414ea0499e..8d80ee871a5 100644 --- a/packages/phone-number-privacy/combiner/src/domain/endpoints/quota/action.ts +++ b/packages/phone-number-privacy/combiner/src/domain/endpoints/quota/action.ts @@ -5,6 +5,7 @@ import { domainQuotaStatusResponseSchema, DomainSchema, ErrorMessage, + getSignerEndpoint, send, SequentialDelayDomainStateSchema, verifyDomainQuotaStatusRequestAuthenticity, @@ -13,19 +14,16 @@ import { import { Signer, thresholdCallToSigners } from '../../../common/combine' import { PromiseHandler } from '../../../common/handlers' import { getKeyVersionInfo, sendFailure } from '../../../common/io' - import { getCombinerVersion, OdisConfig } from '../../../config' -import { logDomainResponsesDiscrepancies } from '../../services/log-responses' +import { logDomainResponseDiscrepancies } from '../../services/log-responses' import { findThresholdDomainState } from '../../services/threshold-state' export function createDomainQuotaHandler( signers: Signer[], config: OdisConfig ): PromiseHandler { - const requestSchema = domainQuotaStatusRequestSchema(DomainSchema) - const signerEndpoint = CombinerEndpoint.DOMAIN_QUOTA_STATUS return async (request, response) => { - if (!requestSchema.is(request.body)) { + if (!domainQuotaStatusRequestSchema(DomainSchema).is(request.body)) { sendFailure(WarningMessage.INVALID_INPUT, 400, response) return } @@ -35,19 +33,20 @@ export function createDomainQuotaHandler( return } + // TODO remove? const keyVersionInfo = getKeyVersionInfo(request, config, response.locals.logger) - const { signerResponses, maxErrorCode } = await thresholdCallToSigners( - response.locals.logger, + const { signerResponses, maxErrorCode } = await thresholdCallToSigners(response.locals.logger, { signers, - signerEndpoint, + endpoint: getSignerEndpoint(CombinerEndpoint.DOMAIN_QUOTA_STATUS), request, keyVersionInfo, - config.odisServices.timeoutMilliSeconds, - domainQuotaStatusResponseSchema(SequentialDelayDomainStateSchema) - ) + requestTimeoutMS: config.odisServices.timeoutMilliSeconds, + responseSchema: domainQuotaStatusResponseSchema(SequentialDelayDomainStateSchema), + shouldCheckKeyVersion: false, + }) - logDomainResponsesDiscrepancies(response.locals.logger, signerResponses) + logDomainResponseDiscrepancies(response.locals.logger, signerResponses) if (signerResponses.length >= keyVersionInfo.threshold) { try { send( @@ -65,6 +64,6 @@ export function createDomainQuotaHandler( response.locals.logger.error(err, 'Error combining signer quota status responses') } } - sendFailure(ErrorMessage.THRESHOLD_DISABLE_DOMAIN_FAILURE, maxErrorCode ?? 500, response) + sendFailure(ErrorMessage.THRESHOLD_DOMAIN_QUOTA_STATUS_FAILURE, maxErrorCode ?? 500, response) } } diff --git a/packages/phone-number-privacy/combiner/src/domain/endpoints/sign/action.ts b/packages/phone-number-privacy/combiner/src/domain/endpoints/sign/action.ts index 47d7fe021b1..f58422dc5d3 100644 --- a/packages/phone-number-privacy/combiner/src/domain/endpoints/sign/action.ts +++ b/packages/phone-number-privacy/combiner/src/domain/endpoints/sign/action.ts @@ -6,6 +6,7 @@ import { DomainSchema, ErrorMessage, ErrorType, + getSignerEndpoint, OdisResponse, send, SequentialDelayDomainStateSchema, @@ -15,26 +16,24 @@ import { import assert from 'node:assert' import { Signer, thresholdCallToSigners } from '../../../common/combine' import { DomainCryptoClient } from '../../../common/crypto-clients/domain-crypto-client' - import { PromiseHandler } from '../../../common/handlers' import { getKeyVersionInfo, requestHasSupportedKeyVersion, sendFailure } from '../../../common/io' - import { getCombinerVersion, OdisConfig } from '../../../config' -import { logDomainResponsesDiscrepancies } from '../../services/log-responses' +import { logDomainResponseDiscrepancies } from '../../services/log-responses' import { findThresholdDomainState } from '../../services/threshold-state' export function createDomainSignHandler( signers: Signer[], config: OdisConfig ): PromiseHandler { - const requestSchema = domainRestrictedSignatureRequestSchema(DomainSchema) - const signerEndpoint = CombinerEndpoint.DOMAIN_SIGN return async (request, response) => { - if (!requestSchema.is(request.body)) { + const { logger } = response.locals + + if (!domainRestrictedSignatureRequestSchema(DomainSchema).is(request.body)) { sendFailure(WarningMessage.INVALID_INPUT, 400, response) return } - if (!requestHasSupportedKeyVersion(request, config, response.locals.logger)) { + if (!requestHasSupportedKeyVersion(request, config, logger)) { sendFailure(WarningMessage.INVALID_KEY_VERSION_REQUEST, 400, response) return } @@ -47,11 +46,10 @@ export function createDomainSignHandler( return } - const keyVersionInfo = getKeyVersionInfo(request, config, response.locals.logger) + const keyVersionInfo = getKeyVersionInfo(request, config, logger) const crypto = new DomainCryptoClient(keyVersionInfo) - const logger = response.locals.logger - const processRequest = async ( + const processResult = async ( res: OdisResponse ): Promise => { assert(res.success) @@ -86,17 +84,19 @@ export function createDomainSignHandler( const { signerResponses, maxErrorCode } = await thresholdCallToSigners( response.locals.logger, - signers, - signerEndpoint, - request, - keyVersionInfo, - config.odisServices.timeoutMilliSeconds, - domainRestrictedSignatureResponseSchema(SequentialDelayDomainStateSchema), - true, - processRequest + { + signers, + endpoint: getSignerEndpoint(CombinerEndpoint.DOMAIN_SIGN), + request, + keyVersionInfo, + requestTimeoutMS: config.odisServices.timeoutMilliSeconds, + responseSchema: domainRestrictedSignatureResponseSchema(SequentialDelayDomainStateSchema), + shouldCheckKeyVersion: true, + }, + processResult ) - logDomainResponsesDiscrepancies(response.locals.logger, signerResponses) + logDomainResponseDiscrepancies(response.locals.logger, signerResponses) if (crypto.hasSufficientSignatures()) { try { diff --git a/packages/phone-number-privacy/combiner/src/domain/services/log-responses.ts b/packages/phone-number-privacy/combiner/src/domain/services/log-responses.ts index ba35e6234f0..7f4b3bebb13 100644 --- a/packages/phone-number-privacy/combiner/src/domain/services/log-responses.ts +++ b/packages/phone-number-privacy/combiner/src/domain/services/log-responses.ts @@ -1,14 +1,10 @@ -import { - DomainRequest, - DomainRestrictedSignatureRequest, - WarningMessage, -} from '@celo/phone-number-privacy-common' +import { DomainRequest, WarningMessage } from '@celo/phone-number-privacy-common' import Logger from 'bunyan' import { SignerResponse } from '../../common/io' -export function logDomainResponsesDiscrepancies( +export function logDomainResponseDiscrepancies( logger: Logger, - responses: Array> + responses: Array> ) { const parsedResponses: Array<{ signerUrl: string diff --git a/packages/phone-number-privacy/combiner/src/pnp/endpoints/quota/action.ts b/packages/phone-number-privacy/combiner/src/pnp/endpoints/quota/action.ts index d08530df87d..26af9325fec 100644 --- a/packages/phone-number-privacy/combiner/src/pnp/endpoints/quota/action.ts +++ b/packages/phone-number-privacy/combiner/src/pnp/endpoints/quota/action.ts @@ -3,6 +3,7 @@ import { CombinerEndpoint, DataEncryptionKeyFetcher, ErrorMessage, + getSignerEndpoint, hasValidAccountParam, isBodyReasonablySized, PnpQuotaRequest, @@ -15,12 +16,8 @@ import { Request } from 'express' import { Signer, thresholdCallToSigners } from '../../../common/combine' import { PromiseHandler } from '../../../common/handlers' import { getKeyVersionInfo, sendFailure } from '../../../common/io' - import { getCombinerVersion, OdisConfig } from '../../../config' -import { - logFailOpenResponses, - logPnpSignerResponseDiscrepancies, -} from '../../services/log-responses' +import { logPnpSignerResponseDiscrepancies } from '../../services/log-responses' import { findCombinerQuotaState } from '../../services/threshold-state' export function createPnpQuotaHandler( @@ -28,10 +25,9 @@ export function createPnpQuotaHandler( config: OdisConfig, dekFetcher: DataEncryptionKeyFetcher ): PromiseHandler { - const signerEndpoint = CombinerEndpoint.PNP_QUOTA - return async (request, response) => { const logger = response.locals.logger + if (!validateRequest(request)) { sendFailure(WarningMessage.INVALID_INPUT, 400, response) return @@ -41,19 +37,23 @@ export function createPnpQuotaHandler( sendFailure(WarningMessage.UNAUTHENTICATED_USER, 401, response) return } + + // TODO remove? const keyVersionInfo = getKeyVersionInfo(request, config, logger) - const { signerResponses, maxErrorCode } = await thresholdCallToSigners( - logger, + const { signerResponses, maxErrorCode } = await thresholdCallToSigners(logger, { signers, - signerEndpoint, + endpoint: getSignerEndpoint(CombinerEndpoint.PNP_QUOTA), request, keyVersionInfo, - config.odisServices.timeoutMilliSeconds, - PnpQuotaResponseSchema - ) + requestTimeoutMS: config.odisServices.timeoutMilliSeconds, + responseSchema: PnpQuotaResponseSchema, + shouldCheckKeyVersion: false, + }) const warnings = logPnpSignerResponseDiscrepancies(logger, signerResponses) - logFailOpenResponses(logger, signerResponses) + + // TODO remove? + // logFailOpenResponses(logger, signerResponses) const { threshold } = keyVersionInfo diff --git a/packages/phone-number-privacy/combiner/src/pnp/endpoints/sign/action.ts b/packages/phone-number-privacy/combiner/src/pnp/endpoints/sign/action.ts index 850938180d5..23458061d87 100644 --- a/packages/phone-number-privacy/combiner/src/pnp/endpoints/sign/action.ts +++ b/packages/phone-number-privacy/combiner/src/pnp/endpoints/sign/action.ts @@ -4,6 +4,7 @@ import { DataEncryptionKeyFetcher, ErrorMessage, ErrorType, + getSignerEndpoint, hasValidAccountParam, hasValidBlindedPhoneNumberParam, isBodyReasonablySized, @@ -14,19 +15,14 @@ import { SignMessageResponseSchema, WarningMessage, } from '@celo/phone-number-privacy-common' - import { Request } from 'express' import assert from 'node:assert' import { Signer, thresholdCallToSigners } from '../../../common/combine' import { BLSCryptographyClient } from '../../../common/crypto-clients/bls-crypto-client' import { PromiseHandler } from '../../../common/handlers' import { getKeyVersionInfo, requestHasSupportedKeyVersion, sendFailure } from '../../../common/io' - import { getCombinerVersion, OdisConfig } from '../../../config' -import { - logFailOpenResponses, - logPnpSignerResponseDiscrepancies, -} from '../../services/log-responses' +import { logPnpSignerResponseDiscrepancies } from '../../services/log-responses' import { findCombinerQuotaState } from '../../services/threshold-state' export function createPnpSignHandler( @@ -34,7 +30,6 @@ export function createPnpSignHandler( config: OdisConfig, dekFetcher: DataEncryptionKeyFetcher ): PromiseHandler { - const signerEndpoint = CombinerEndpoint.PNP_SIGN return async (request, response) => { const logger = response.locals.logger if (!validateRequest(request)) { @@ -54,7 +49,7 @@ export function createPnpSignHandler( const keyVersionInfo = getKeyVersionInfo(request, config, logger) const crypto = new BLSCryptographyClient(keyVersionInfo) - const processRequest = async (result: OdisResponse): Promise => { + const processResult = async (result: OdisResponse): Promise => { assert(result.success) crypto.addSignature({ url: 'TODO: remove', signature: result.signature }) // const signatureAdditionStart = Date.now() @@ -77,7 +72,7 @@ export function createPnpSignHandler( return true } catch (err) { // One or more signatures failed verification and were discarded. - logger.info('Error caught in receiveSuccess') + logger.info('Error caught in processRequest') logger.info(err) // Continue to collect signatures. } @@ -87,18 +82,19 @@ export function createPnpSignHandler( const { signerResponses, maxErrorCode } = await thresholdCallToSigners( logger, - signers, - signerEndpoint, - request, - keyVersionInfo, - config.odisServices.timeoutMilliSeconds, - SignMessageResponseSchema, - true, - processRequest + { + signers, + endpoint: getSignerEndpoint(CombinerEndpoint.PNP_SIGN), + request, + keyVersionInfo, + requestTimeoutMS: config.odisServices.timeoutMilliSeconds, + responseSchema: SignMessageResponseSchema, + shouldCheckKeyVersion: true, + }, + processResult ) const warnings = logPnpSignerResponseDiscrepancies(logger, signerResponses) - logFailOpenResponses(logger, signerResponses) if (crypto.hasSufficientSignatures()) { try { diff --git a/packages/phone-number-privacy/combiner/src/pnp/services/log-responses.ts b/packages/phone-number-privacy/combiner/src/pnp/services/log-responses.ts index 607d7404251..89bd98c2681 100644 --- a/packages/phone-number-privacy/combiner/src/pnp/services/log-responses.ts +++ b/packages/phone-number-privacy/combiner/src/pnp/services/log-responses.ts @@ -1,14 +1,11 @@ import { - ErrorMessage, PnpQuotaRequest, SignMessageRequest, WarningMessage, } from '@celo/phone-number-privacy-common' import Logger from 'bunyan' import { SignerResponse } from '../../common/io' - import { - MAX_BLOCK_DISCREPANCY_THRESHOLD, MAX_QUERY_COUNT_DISCREPANCY_THRESHOLD, MAX_TOTAL_QUOTA_DISCREPANCY_THRESHOLD, } from '../../config' @@ -28,16 +25,15 @@ export function logPnpSignerResponseDiscrepancies( version: string performedQueryCount: number totalQuota: number - blockNumber?: number warnings?: string[] } }> = [] responses.forEach((response) => { if (response.res.success) { - const { version, performedQueryCount, totalQuota, warnings } = response.res + const { version, performedQueryCount, totalQuota, warnings: _warnings } = response.res parsedResponses.push({ signerUrl: response.url, - values: { version, performedQueryCount, totalQuota, warnings }, + values: { version, performedQueryCount, totalQuota, warnings: _warnings }, }) } }) @@ -56,25 +52,6 @@ export function logPnpSignerResponseDiscrepancies( } } - // blockNumber - parsedResponses.forEach((res) => { - if (res.values.blockNumber === undefined) { - logger.warn({ signerUrl: res.signerUrl }, 'Signer responded with undefined blockNumber') - } - }) - const sortedByBlockNumber = parsedResponses - .filter((res) => !!res.values.blockNumber) - .sort((a, b) => a.values.blockNumber! - b.values.blockNumber!) - if ( - sortedByBlockNumber.length && - sortedByBlockNumber[sortedByBlockNumber.length - 1].values.blockNumber! - - sortedByBlockNumber[0].values.blockNumber! >= - MAX_BLOCK_DISCREPANCY_THRESHOLD - ) { - logger.error({ sortedByBlockNumber }, WarningMessage.INCONSISTENT_SIGNER_BLOCK_NUMBERS) - warnings.push(WarningMessage.INCONSISTENT_SIGNER_BLOCK_NUMBERS) - } - // totalQuota const sortedByTotalQuota = parsedResponses.sort( (a, b) => a.values.totalQuota - b.values.totalQuota @@ -103,29 +80,3 @@ export function logPnpSignerResponseDiscrepancies( return warnings } - -export function logFailOpenResponses( - logger: Logger, - responses: Array> -): void { - responses.forEach((response) => { - if (response.res.success) { - const { warnings } = response.res - if (warnings) { - warnings.forEach((warning) => { - switch (warning) { - case ErrorMessage.FAILING_OPEN: - case ErrorMessage.FAILURE_TO_GET_TOTAL_QUOTA: - case ErrorMessage.FAILURE_TO_GET_DEK: - logger.error( - { signerWarning: warning, service: response.url }, - WarningMessage.SIGNER_FAILED_OPEN - ) - default: - break - } - }) - } - } - }) -} diff --git a/packages/phone-number-privacy/combiner/src/server.ts b/packages/phone-number-privacy/combiner/src/server.ts index 02d24483111..cfb5a24eeed 100644 --- a/packages/phone-number-privacy/combiner/src/server.ts +++ b/packages/phone-number-privacy/combiner/src/server.ts @@ -9,7 +9,6 @@ import { } from '@celo/phone-number-privacy-common' import express, { RequestHandler } from 'express' import { Signer } from './common/combine' -// tslint:disable-next-line: ordered-imports import { catchErrorHandler, disabledHandler, @@ -19,9 +18,7 @@ import { import { CombinerConfig, getCombinerVersion } from './config' import { createDisableDomainHandler } from './domain/endpoints/disable/action' import { createDomainQuotaHandler } from './domain/endpoints/quota/action' - import { createDomainSignHandler } from './domain/endpoints/sign/action' - import { createPnpQuotaHandler } from './pnp/endpoints/quota/action' import { createPnpSignHandler } from './pnp/endpoints/sign/action' diff --git a/packages/phone-number-privacy/combiner/test/unit/domain-response-logger.test.ts b/packages/phone-number-privacy/combiner/test/unit/domain-response-logger.test.ts index bade7204f99..7041d1c36c3 100644 --- a/packages/phone-number-privacy/combiner/test/unit/domain-response-logger.test.ts +++ b/packages/phone-number-privacy/combiner/test/unit/domain-response-logger.test.ts @@ -9,7 +9,7 @@ import { import { getSignerVersion } from '@celo/phone-number-privacy-signer/src/config' import config from '../../src/config' -import { logDomainResponsesDiscrepancies } from '../../src/domain/services/log-responses' +import { logDomainResponseDiscrepancies } from '../../src/domain/services/log-responses' describe('domain response logger', () => { const url = 'test signer url' @@ -308,7 +308,7 @@ describe('domain response logger', () => { callCount: 0, }, } - logDomainResponsesDiscrepancies( + logDomainResponseDiscrepancies( logger, testCase.responses.map((res) => ({ url, res })) ) diff --git a/packages/phone-number-privacy/combiner/test/unit/domain-threshold-state.test.ts b/packages/phone-number-privacy/combiner/test/unit/domain-threshold-state.test.ts index 9c13c606023..c66c4d478fb 100644 --- a/packages/phone-number-privacy/combiner/test/unit/domain-threshold-state.test.ts +++ b/packages/phone-number-privacy/combiner/test/unit/domain-threshold-state.test.ts @@ -4,7 +4,6 @@ import { KeyVersionInfo, } from '@celo/phone-number-privacy-common' import { getSignerVersion } from '@celo/phone-number-privacy-signer/src/config' - import { findThresholdDomainState } from '../../src/domain/services/threshold-state' describe('domain threshold state', () => { @@ -18,11 +17,6 @@ describe('domain threshold state', () => { pubKey: 'mock pubKey', } - // const keyVersionInfo: KeyVersionInfo = { - // currentVersion: keyVersionInfo.keyVersion, - // versions: JSON.stringify([keyVersionInfo]), - // } - const totalSigners = 4 const expectedVersion = getSignerVersion() diff --git a/packages/phone-number-privacy/combiner/test/unit/pnp-response-logger.test.ts b/packages/phone-number-privacy/combiner/test/unit/pnp-response-logger.test.ts index de9d5bc76de..2daf524abad 100644 --- a/packages/phone-number-privacy/combiner/test/unit/pnp-response-logger.test.ts +++ b/packages/phone-number-privacy/combiner/test/unit/pnp-response-logger.test.ts @@ -12,10 +12,7 @@ import config, { MAX_QUERY_COUNT_DISCREPANCY_THRESHOLD, MAX_TOTAL_QUOTA_DISCREPANCY_THRESHOLD, } from '../../src/config' -import { - logFailOpenResponses, - logPnpSignerResponseDiscrepancies, -} from '../../src/pnp/services/log-responses' +import { logPnpSignerResponseDiscrepancies } from '../../src/pnp/services/log-responses' describe('pnp response logger', () => { const url = 'test signer url' @@ -413,104 +410,6 @@ describe('pnp response logger', () => { }, ], }, - { - it: 'should log correctly when signers respond with fail-open warnings', - responses: [ - { - success: true, - performedQueryCount, - totalQuota, - version, - - warnings: [ErrorMessage.FAILING_OPEN], - }, - { - success: true, - performedQueryCount, - totalQuota, - version, - - warnings: [ErrorMessage.FAILURE_TO_GET_TOTAL_QUOTA], - }, - { - success: true, - performedQueryCount, - totalQuota, - version, - - warnings: [ErrorMessage.FAILURE_TO_GET_DEK], - }, - ], - expectedLogs: [ - { - params: [ - { - parsedResponses: [ - { - signerUrl: url, - values: { - performedQueryCount, - totalQuota, - version, - warnings: [ErrorMessage.FAILING_OPEN], - }, - }, - { - signerUrl: url, - values: { - performedQueryCount, - totalQuota, - version, - warnings: [ErrorMessage.FAILURE_TO_GET_TOTAL_QUOTA], - }, - }, - { - signerUrl: url, - values: { - performedQueryCount, - totalQuota, - version, - warnings: [ErrorMessage.FAILURE_TO_GET_DEK], - }, - }, - ], - }, - WarningMessage.SIGNER_RESPONSE_DISCREPANCIES, - ], - level: 'warn', - }, - { - params: [ - { - signerWarning: ErrorMessage.FAILING_OPEN, - service: url, - }, - WarningMessage.SIGNER_FAILED_OPEN, - ], - level: 'error', - }, - { - params: [ - { - signerWarning: ErrorMessage.FAILURE_TO_GET_TOTAL_QUOTA, - service: url, - }, - WarningMessage.SIGNER_FAILED_OPEN, - ], - level: 'error', - }, - { - params: [ - { - signerWarning: ErrorMessage.FAILURE_TO_GET_DEK, - service: url, - }, - WarningMessage.SIGNER_FAILED_OPEN, - ], - level: 'error', - }, - ], - }, ] testCases.forEach((testCase) => { it(testCase.it, () => { @@ -536,7 +435,6 @@ describe('pnp response logger', () => { }, } logPnpSignerResponseDiscrepancies(logger, responses) - logFailOpenResponses(logger, responses) testCase.expectedLogs.forEach((log) => { expect(logSpys[log.level].spy).toHaveBeenNthCalledWith( ++logSpys[log.level].callCount,