diff --git a/src/events/middleware.ts b/src/events/middleware.ts index 69d52a4f9db1..a5016e242963 100644 --- a/src/events/middleware.ts +++ b/src/events/middleware.ts @@ -38,6 +38,16 @@ const sentValidationErrors = new QuickLRU({ maxAge: 1000 * 60, }) +// We use a LRU cache & a hash of the error message +// to prevent sending multiple validation errors that can spam requests to Hydro +const getValidationErrorHash = (validateErrors: ErrorObject[]) => { + // limit to 10 second windows + const window: Number = Math.floor(new Date().getTime() / 10000) + return `${window}:${(validateErrors || []) + .map((error: ErrorObject) => error.message + error.instancePath + JSON.stringify(error.params)) + .join(':')}` +} + router.post( '/', catchMiddlewareError(async function postEvents(req: ExtendedRequest, res: Response) { @@ -47,15 +57,6 @@ router.post( const validEvents: any[] = [] const validationErrors: any[] = [] - // We use a LRU cache & a hash of the request IP + error message - // to prevent sending multiple validation errors per user that can spam requests to Hydro - const getValidationErrorHash = (validateErrors: ErrorObject[]) => - `${req.ip}:${(validateErrors || []) - .map( - (error: ErrorObject) => error.message + error.instancePath + JSON.stringify(error.params), - ) - .join(':')}` - for (const eventBody of eventsToProcess) { try { // Skip event if it doesn't have a type or if the type is not in the allowed types diff --git a/src/frame/middleware/render-page.ts b/src/frame/middleware/render-page.ts index 15df6d0d58bd..3a8a8bdd5698 100644 --- a/src/frame/middleware/render-page.ts +++ b/src/frame/middleware/render-page.ts @@ -75,7 +75,6 @@ export default async function renderPage(req: ExtendedRequest, res: Response) { statsd.increment(STATSD_KEY_404, 1, [ `url:${req.url}`, - `ip:${req.ip}`, `path:${req.path}`, `referer:${req.headers.referer || ''}`, ]) diff --git a/src/search/components/input/SearchOverlay.module.scss b/src/search/components/input/SearchOverlay.module.scss index 3946354268af..8a80ea5bf8b2 100644 --- a/src/search/components/input/SearchOverlay.module.scss +++ b/src/search/components/input/SearchOverlay.module.scss @@ -23,7 +23,7 @@ width: searchVariables.$smSearchOverlayWidth !important; max-width: 100%; height: auto; - max-height: 90vh; + max-height: 95vh; overflow-y: auto; display: flex; @@ -67,6 +67,12 @@ padding: 5px 16px 13px 16px; width: 100%; background-color: var(--overlay-bgColor); + overflow-y: auto; + min-height: 15vh; + + @include breakpoint(sm) { + min-height: fit-content !important; + } } .betaToken { diff --git a/src/shielding/middleware/handle-invalid-nextjs-paths.ts b/src/shielding/middleware/handle-invalid-nextjs-paths.ts index d1003d163b2a..7ea02909ada0 100644 --- a/src/shielding/middleware/handle-invalid-nextjs-paths.ts +++ b/src/shielding/middleware/handle-invalid-nextjs-paths.ts @@ -23,7 +23,7 @@ export default function handleInvalidNextPaths( ) { defaultCacheControl(res) - const tags = [`ip:${req.ip}`, `path:${req.path}`] + const tags = [`path:${req.path}`] statsd.increment(STATSD_KEY, 1, tags) return res.status(404).type('text').send('Not found') diff --git a/src/shielding/middleware/handle-invalid-query-string-values.ts b/src/shielding/middleware/handle-invalid-query-string-values.ts index fc91e81c31ef..a0fc3fb47aff 100644 --- a/src/shielding/middleware/handle-invalid-query-string-values.ts +++ b/src/shielding/middleware/handle-invalid-query-string-values.ts @@ -62,13 +62,7 @@ export default function handleInvalidQuerystringValues( if (sp.toString()) newURL += `?${sp}` res.redirect(302, newURL) - const tags = [ - 'response:302', - `url:${req.url}`, - `ip:${req.ip}`, - `path:${req.path}`, - `key:${key}`, - ] + const tags = ['response:302', `url:${req.url}`, `path:${req.path}`, `key:${key}`] statsd.increment(STATSD_KEY, 1, tags) return diff --git a/src/shielding/middleware/handle-invalid-query-strings.ts b/src/shielding/middleware/handle-invalid-query-strings.ts index 97246b3c3502..1e498e2701c8 100644 --- a/src/shielding/middleware/handle-invalid-query-strings.ts +++ b/src/shielding/middleware/handle-invalid-query-strings.ts @@ -80,7 +80,6 @@ export default function handleInvalidQuerystrings( const tags = [ 'response:400', `url:${req.url}`, - `ip:${req.ip}`, `path:${req.path}`, `keys:${originalKeys.length}`, ] @@ -123,7 +122,6 @@ export default function handleInvalidQuerystrings( const tags = [ 'response:302', `url:${req.url}`, - `ip:${req.ip}`, `path:${req.path}`, `keys:${originalKeys.length}`, ]