Browse Source

add helmet package

ruiyi.jiang 3 years ago
parent
commit
2b2cce7c8e
3 changed files with 23 additions and 5 deletions
  1. 1 0
      server/package.json
  2. 17 5
      server/src/main.ts
  3. 5 0
      server/yarn.lock

+ 1 - 0
server/package.json

@@ -37,6 +37,7 @@
     "cache-manager": "^3.4.4",
     "class-transformer": "^0.4.0",
     "class-validator": "^0.13.1",
+    "helmet": "^4.6.0",
     "passport": "^0.4.1",
     "passport-jwt": "^4.0.0",
     "passport-local": "^1.0.0",

+ 17 - 5
server/src/main.ts

@@ -1,26 +1,38 @@
+import * as helmet from 'helmet';
 import { NestFactory } from '@nestjs/core';
 import { Logger } from '@nestjs/common';
-
 import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
 import { AppModule } from './app.module';
 import { json } from 'body-parser';
 
+/*
+  Milvus insight API server bootstrap function
+*/
 async function bootstrap() {
+  // by default the server will be listening on port 3000
   const port = 3000;
-  const app = await NestFactory.create(AppModule, {
-    cors: true,
-  });
+  // create the nest application with Cross-origin resource sharing
+  const app = await NestFactory.create(AppModule, { cors: true });
+  // security patches
+  app.use(helmet());
+  // set upload file size limit
+  app.use(json({ limit: '150mb' }));
+  // add an API prefix
   app.setGlobalPrefix('/api/v1');
 
+  // prepare swagger config
   const config = new DocumentBuilder()
     .setTitle('Milvus insight')
     .setVersion('1.0')
     .build();
+  // create swagger document
   const document = SwaggerModule.createDocument(app, config);
+  // set up API
   SwaggerModule.setup('api', app, document);
-  app.use(json({ limit: '150mb' }));
 
+  // start listening
   await app.listen(port);
   Logger.log(`Milvus insight API server is running on port ${port}`);
 }
+// Start the server
 bootstrap();

+ 5 - 0
server/yarn.lock

@@ -3132,6 +3132,11 @@ has@^1.0.3:
   dependencies:
     function-bind "^1.1.1"
 
+helmet@^4.6.0:
+  version "4.6.0"
+  resolved "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz#579971196ba93c5978eb019e4e8ec0e50076b4df"
+  integrity sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==
+
 hosted-git-info@^2.1.4:
   version "2.8.9"
   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"