diff --git a/packages/api/package.json b/packages/api/package.json index 40b70a0e3..826a2217c 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -54,6 +54,7 @@ "axios": "^0.27.2", "bcryptjs": "^2.4.3", "bullmq": "^5.1.1", + "compression": "^1.7.4", "cookie": "^0.5.0", "cookie-parser": "^1.4.5", "cors": "^2.8.5", @@ -126,6 +127,7 @@ "@types/chai": "^4.2.18", "@types/chai-as-promised": "^7.1.5", "@types/chai-string": "^1.4.2", + "@types/compression": "^1.7.5", "@types/cookie": "^0.4.0", "@types/cookie-parser": "^1.4.7", "@types/csv-stringify": "^3.1.0", diff --git a/packages/api/src/server.ts b/packages/api/src/server.ts index 28a7ba73f..069f1f9cf 100755 --- a/packages/api/src/server.ts +++ b/packages/api/src/server.ts @@ -5,6 +5,7 @@ import * as lw from '@google-cloud/logging-winston' import * as Sentry from '@sentry/node' import { json, urlencoded } from 'body-parser' +import compression from 'compression' import cookieParser from 'cookie-parser' import express, { Express } from 'express' import * as httpContext from 'express-http-context2' @@ -27,6 +28,7 @@ import { integrationRouter } from './routers/integration_router' import { localDebugRouter } from './routers/local_debug_router' import { notificationRouter } from './routers/notification_router' import { pageRouter } from './routers/page_router' +import { shortcutsRouter } from './routers/shortcuts_router' import { contentServiceRouter } from './routers/svc/content' import { emailsServiceRouter } from './routers/svc/emails' import { emailAttachmentRouter } from './routers/svc/email_attachment' @@ -40,14 +42,12 @@ import { userServiceRouter } from './routers/svc/user' import { webhooksServiceRouter } from './routers/svc/webhooks' import { taskRouter } from './routers/task_router' import { textToSpeechRouter } from './routers/text_to_speech' -import { userRouter } from './routers/user_router' import { sentryConfig } from './sentry' import { analytics } from './utils/analytics' import { corsConfig } from './utils/corsConfig' import { getClientFromUserAgent } from './utils/helpers' import { buildLogger, buildLoggerTransport, logger } from './utils/logger' import { apiHourLimiter, apiLimiter, authLimiter } from './utils/rate_limit' -import { shortcutsRouter } from './routers/shortcuts_router' const PORT = process.env.PORT || 4000 @@ -63,6 +63,7 @@ export const createApp = (): Express => { app.use(cookieParser()) app.use(json({ limit: '100mb' })) app.use(urlencoded({ limit: '100mb', extended: true })) + app.use(compression()) // set to true if behind a reverse proxy/load balancer app.set('trust proxy', env.server.trustProxy) diff --git a/yarn.lock b/yarn.lock index 9e721740f..06fab41f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7924,6 +7924,13 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@types/compression@^1.7.5": + version "1.7.5" + resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.5.tgz#0f80efef6eb031be57b12221c4ba6bc3577808f7" + integrity sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg== + dependencies: + "@types/express" "*" + "@types/connect-history-api-fallback@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"