node-server-engine 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -170,4 +170,17 @@ SMTP_USER=your-email@example.com
170
170
  SMTP_PASS=your-email-password
171
171
 
172
172
 
173
- FILE_STORAGE_FOLDER=./uploads
173
+ FILE_STORAGE_FOLDER=./uploads
174
+
175
+
176
+ ################
177
+ # User Service #
178
+ ################
179
+
180
+ # URL where the user service is located
181
+ USER_SERVICE_URL=
182
+
183
+ # Attributes of the users to fetch
184
+ # Comma separated list of attributes to fetch from the user Service
185
+ # (ex: name,permissions,..) all -> for retrun everything
186
+ USER_FETCHED_ATTRIBUTES=
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './const';
2
2
  export * from './entities';
3
3
  export * from './utils';
4
+ export * from './utils/tlsRequest';
4
5
  export * as middleware from './middleware';
package/dist/index.js CHANGED
@@ -43,6 +43,18 @@ Object.keys(_utils).forEach(function (key) {
43
43
  }
44
44
  });
45
45
  });
46
+ var _tlsRequest = require("./utils/tlsRequest");
47
+ Object.keys(_tlsRequest).forEach(function (key) {
48
+ if (key === "default" || key === "__esModule") return;
49
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
50
+ if (key in exports && exports[key] === _tlsRequest[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _tlsRequest[key];
55
+ }
56
+ });
57
+ });
46
58
  var _middleware = _interopRequireWildcard(require("./middleware"));
47
59
  exports.middleware = _middleware;
48
60
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_const","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_entities","_utils","_middleware","_interopRequireWildcard","middleware","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sources":["../src/index.ts"],"sourcesContent":["export * from './const';\nexport * from './entities';\nexport * from './utils';\nexport * as middleware from './middleware';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_const","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_entities","_utils","_tlsRequest","_middleware","_interopRequireWildcard","middleware","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sources":["../src/index.ts"],"sourcesContent":["export * from './const';\nexport * from './entities';\nexport * from './utils';\nexport * from './utils/tlsRequest';\nexport * as middleware from './middleware';\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,7 @@
1
1
  import { Request, Response, NextFunction } from 'express';
2
2
  /** Fetch the user previously identified by a JWT and adds his data to the request.user object */
3
3
  export declare function userResolver(request: Request, response: Response, next: NextFunction): Promise<void>;
4
+ /**
5
+ * Call the GET /user/{id} endpoint using TLS
6
+ */
7
+ export declare function getUserById(userId: number): Promise<unknown>;
@@ -3,9 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getUserById = getUserById;
6
7
  exports.userResolver = userResolver;
7
8
  var _EngineError = require("../../entities/EngineError");
8
9
  var _utils = require("../../utils");
10
+ var _tlsRequest = require("../../utils/tlsRequest");
9
11
  const namespace = 'engine:middleware:userResolver';
10
12
 
11
13
  /** Fetch the user previously identified by a JWT and adds his data to the request.user object */
@@ -14,10 +16,7 @@ async function userResolver(request, response, next) {
14
16
  if (!id) throw new _EngineError.EngineError({
15
17
  message: 'Could not resolve user as the request is missing his ID'
16
18
  });
17
- const user = {
18
- user: 'ram',
19
- id
20
- };
19
+ const user = await getUserById(id);
21
20
  if (!user) throw new _EngineError.EngineError({
22
21
  message: 'Could not resolve user as it could not be fetched',
23
22
  data: {
@@ -38,4 +37,19 @@ async function userResolver(request, response, next) {
38
37
  };
39
38
  next();
40
39
  }
40
+
41
+ /**
42
+ * Call the GET /user/{id} endpoint using TLS
43
+ */
44
+ async function getUserById(userId) {
45
+ const userServiceUrl = process.env.USER_SERVICE_URL;
46
+ if (!userServiceUrl) {
47
+ throw new Error('USER_SERVICE_URL is not defined in environment variables');
48
+ }
49
+ const response = await (0, _tlsRequest.tlsRequest)({
50
+ method: 'GET',
51
+ url: `${userServiceUrl}/${userId}`
52
+ });
53
+ return response.data;
54
+ }
41
55
  //# sourceMappingURL=userResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"userResolver.js","names":["_EngineError","require","_utils","namespace","userResolver","request","response","next","id","user","EngineError","message","data","reportDebug"],"sources":["../../../src/middleware/userResolver/userResolver.ts"],"sourcesContent":["import { Request, Response, NextFunction } from 'express';\nimport { EngineError } from 'entities/EngineError';\nimport { reportDebug } from 'utils';\n\nconst namespace = 'engine:middleware:userResolver';\n\n/** Fetch the user previously identified by a JWT and adds his data to the request.user object */\nexport async function userResolver(\n request: Request,\n response: Response,\n next: NextFunction\n): Promise<void> {\n const id = request.user?.id;\n if (!id)\n throw new EngineError({\n message: 'Could not resolve user as the request is missing his ID'\n });\n const user = { user: 'ram', id };\n if (!user)\n throw new EngineError({\n message: 'Could not resolve user as it could not be fetched',\n data: { id }\n });\n reportDebug({\n namespace,\n message: 'Resolved user based on his token',\n data: { user, request: request.user }\n });\n request.user = {\n ...request?.user,\n ...user\n };\n\n next();\n}\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,SAAS,GAAG,gCAAgC;;AAElD;AACO,eAAeC,YAAYA,CAChCC,OAAgB,EAChBC,QAAkB,EAClBC,IAAkB,EACH;EACf,MAAMC,EAAE,GAAGH,OAAO,CAACI,IAAI,EAAED,EAAE;EAC3B,IAAI,CAACA,EAAE,EACL,MAAM,IAAIE,wBAAW,CAAC;IACpBC,OAAO,EAAE;EACX,CAAC,CAAC;EACJ,MAAMF,IAAI,GAAG;IAAEA,IAAI,EAAE,KAAK;IAAED;EAAG,CAAC;EAChC,IAAI,CAACC,IAAI,EACP,MAAM,IAAIC,wBAAW,CAAC;IACpBC,OAAO,EAAE,mDAAmD;IAC5DC,IAAI,EAAE;MAAEJ;IAAG;EACb,CAAC,CAAC;EACJ,IAAAK,kBAAW,EAAC;IACVV,SAAS;IACTQ,OAAO,EAAE,kCAAkC;IAC3CC,IAAI,EAAE;MAAEH,IAAI;MAAEJ,OAAO,EAAEA,OAAO,CAACI;IAAK;EACtC,CAAC,CAAC;EACFJ,OAAO,CAACI,IAAI,GAAG;IACb,GAAGJ,OAAO,EAAEI,IAAI;IAChB,GAAGA;EACL,CAAC;EAEDF,IAAI,CAAC,CAAC;AACR","ignoreList":[]}
1
+ {"version":3,"file":"userResolver.js","names":["_EngineError","require","_utils","_tlsRequest","namespace","userResolver","request","response","next","id","user","EngineError","message","getUserById","data","reportDebug","userId","userServiceUrl","process","env","USER_SERVICE_URL","Error","tlsRequest","method","url"],"sources":["../../../src/middleware/userResolver/userResolver.ts"],"sourcesContent":["import { Request, Response, NextFunction } from 'express';\nimport { EngineError } from 'entities/EngineError';\nimport { reportDebug } from 'utils';\nimport { tlsRequest } from 'utils/tlsRequest';\n\nconst namespace = 'engine:middleware:userResolver';\n\n/** Fetch the user previously identified by a JWT and adds his data to the request.user object */\nexport async function userResolver(\n request: Request,\n response: Response,\n next: NextFunction\n): Promise<void> {\n const id = request.user?.id;\n if (!id)\n throw new EngineError({\n message: 'Could not resolve user as the request is missing his ID'\n });\n const user = await getUserById(id);\n if (!user)\n throw new EngineError({\n message: 'Could not resolve user as it could not be fetched',\n data: { id }\n });\n reportDebug({\n namespace,\n message: 'Resolved user based on his token',\n data: { user, request: request.user }\n });\n request.user = {\n ...request?.user,\n ...user\n };\n\n next();\n}\n\n/**\n * Call the GET /user/{id} endpoint using TLS\n */\nexport async function getUserById(userId: number): Promise<unknown> {\n const userServiceUrl = process.env.USER_SERVICE_URL;\n if (!userServiceUrl) {\n throw new Error('USER_SERVICE_URL is not defined in environment variables');\n }\n\n const response = await tlsRequest<unknown>({\n method: 'GET',\n url: `${userServiceUrl}/${userId}`\n });\n\n return response.data;\n}\n"],"mappings":";;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,MAAMG,SAAS,GAAG,gCAAgC;;AAElD;AACO,eAAeC,YAAYA,CAChCC,OAAgB,EAChBC,QAAkB,EAClBC,IAAkB,EACH;EACf,MAAMC,EAAE,GAAGH,OAAO,CAACI,IAAI,EAAED,EAAE;EAC3B,IAAI,CAACA,EAAE,EACL,MAAM,IAAIE,wBAAW,CAAC;IACpBC,OAAO,EAAE;EACX,CAAC,CAAC;EACJ,MAAMF,IAAI,GAAG,MAAMG,WAAW,CAACJ,EAAE,CAAC;EAClC,IAAI,CAACC,IAAI,EACP,MAAM,IAAIC,wBAAW,CAAC;IACpBC,OAAO,EAAE,mDAAmD;IAC5DE,IAAI,EAAE;MAAEL;IAAG;EACb,CAAC,CAAC;EACJ,IAAAM,kBAAW,EAAC;IACVX,SAAS;IACTQ,OAAO,EAAE,kCAAkC;IAC3CE,IAAI,EAAE;MAAEJ,IAAI;MAAEJ,OAAO,EAAEA,OAAO,CAACI;IAAK;EACtC,CAAC,CAAC;EACFJ,OAAO,CAACI,IAAI,GAAG;IACb,GAAGJ,OAAO,EAAEI,IAAI;IAChB,GAAGA;EACL,CAAC;EAEDF,IAAI,CAAC,CAAC;AACR;;AAEA;AACA;AACA;AACO,eAAeK,WAAWA,CAACG,MAAc,EAAoB;EAClE,MAAMC,cAAc,GAAGC,OAAO,CAACC,GAAG,CAACC,gBAAgB;EACnD,IAAI,CAACH,cAAc,EAAE;IACnB,MAAM,IAAII,KAAK,CAAC,0DAA0D,CAAC;EAC7E;EAEA,MAAMd,QAAQ,GAAG,MAAM,IAAAe,sBAAU,EAAU;IACzCC,MAAM,EAAE,KAAK;IACbC,GAAG,EAAE,GAAGP,cAAc,IAAID,MAAM;EAClC,CAAC,CAAC;EAEF,OAAOT,QAAQ,CAACO,IAAI;AACtB","ignoreList":[]}
@@ -7,11 +7,9 @@ export * from './envAssert';
7
7
  export * from './createSortedObject';
8
8
  export * from './jwt';
9
9
  export * from './hmac';
10
- export * from './tlsConfig';
11
10
  export * from './createHttpServer';
12
11
  export * from './request';
13
12
  export * from './tlsConfig';
14
- export * from './tlsRequest';
15
13
  export * from './sendPush';
16
14
  export * from './sendEmail';
17
15
  export * from './trimPathSlash';
@@ -102,17 +102,6 @@ Object.keys(_hmac).forEach(function (key) {
102
102
  }
103
103
  });
104
104
  });
105
- var _tlsConfig = require("./tlsConfig");
106
- Object.keys(_tlsConfig).forEach(function (key) {
107
- if (key === "default" || key === "__esModule") return;
108
- if (key in exports && exports[key] === _tlsConfig[key]) return;
109
- Object.defineProperty(exports, key, {
110
- enumerable: true,
111
- get: function () {
112
- return _tlsConfig[key];
113
- }
114
- });
115
- });
116
105
  var _createHttpServer = require("./createHttpServer");
117
106
  Object.keys(_createHttpServer).forEach(function (key) {
118
107
  if (key === "default" || key === "__esModule") return;
@@ -135,14 +124,14 @@ Object.keys(_request).forEach(function (key) {
135
124
  }
136
125
  });
137
126
  });
138
- var _tlsRequest = require("./tlsRequest");
139
- Object.keys(_tlsRequest).forEach(function (key) {
127
+ var _tlsConfig = require("./tlsConfig");
128
+ Object.keys(_tlsConfig).forEach(function (key) {
140
129
  if (key === "default" || key === "__esModule") return;
141
- if (key in exports && exports[key] === _tlsRequest[key]) return;
130
+ if (key in exports && exports[key] === _tlsConfig[key]) return;
142
131
  Object.defineProperty(exports, key, {
143
132
  enumerable: true,
144
133
  get: function () {
145
- return _tlsRequest[key];
134
+ return _tlsConfig[key];
146
135
  }
147
136
  });
148
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_report","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_filter","_semverCompare","_dbMigration","_checkEnvironment","_envAssert","_createSortedObject","_jwt","_hmac","_tlsConfig","_createHttpServer","_request","_tlsRequest","_sendPush","_sendEmail","_trimPathSlash","_geminiFileUpload"],"sources":["../../src/utils/index.ts"],"sourcesContent":["// general\nexport * from './report';\nexport * from './filter';\nexport * from './semverCompare';\nexport * from './dbMigration';\n\n// env\nexport * from './checkEnvironment';\nexport * from './envAssert';\n\n// auth\nexport * from './createSortedObject';\nexport * from './jwt';\nexport * from './hmac';\nexport * from './tlsConfig';\n\n// Networking\nexport * from './createHttpServer';\nexport * from './request';\nexport * from './tlsConfig';\nexport * from './tlsRequest';\nexport * from './sendPush';\nexport * from './sendEmail';\n\n// String manipulation\nexport * from './trimPathSlash';\n\n// File Upload\nexport * from './geminiFileUpload';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_report","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_filter","_semverCompare","_dbMigration","_checkEnvironment","_envAssert","_createSortedObject","_jwt","_hmac","_createHttpServer","_request","_tlsConfig","_sendPush","_sendEmail","_trimPathSlash","_geminiFileUpload"],"sources":["../../src/utils/index.ts"],"sourcesContent":["// general\nexport * from './report';\nexport * from './filter';\nexport * from './semverCompare';\nexport * from './dbMigration';\n\n// env\nexport * from './checkEnvironment';\nexport * from './envAssert';\n\n// auth\nexport * from './createSortedObject';\nexport * from './jwt';\nexport * from './hmac';\n\n// Networking\nexport * from './createHttpServer';\nexport * from './request';\nexport * from './tlsConfig';\nexport * from './sendPush';\nexport * from './sendEmail';\n\n// String manipulation\nexport * from './trimPathSlash';\n\n// File Upload\nexport * from './geminiFileUpload';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { Agent } from 'https';
2
+ export declare function getHttpsAgent(): Agent;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getHttpsAgent = getHttpsAgent;
8
+ var _fs = _interopRequireDefault(require("fs"));
9
+ var _https = _interopRequireDefault(require("https"));
10
+ var _tlsConfig = require("./tlsConfig.validate");
11
+ var _EngineError = require("../../entities/EngineError");
12
+ let httpsAgent;
13
+ function getHttpsAgent() {
14
+ if (httpsAgent) return httpsAgent;
15
+ (0, _tlsConfig.validateTlsConfig)();
16
+ const key = _fs.default.readFileSync(process.env.TLS_REQUEST_KEY ?? process.env.TLS_SERVER_KEY, 'utf-8');
17
+ const cert = _fs.default.readFileSync(process.env.TLS_REQUEST_CERT ?? process.env.TLS_SERVER_CERT, 'utf-8');
18
+ const ca = _fs.default.readFileSync(process.env.TLS_REQUEST_CA ?? process.env.TLS_CA, 'utf-8');
19
+ const passphrase = process.env.TLS_REQUEST_KEY_PASSPHRASE ?? process.env.TLS_SERVER_KEY_PASSPHRASE;
20
+ if (!key || !cert || !ca || !passphrase) {
21
+ throw new _EngineError.EngineError({
22
+ message: 'TLS environment variables are not set correctly'
23
+ });
24
+ }
25
+ httpsAgent = new _https.default.Agent({
26
+ key,
27
+ cert,
28
+ ca,
29
+ passphrase
30
+ });
31
+ return httpsAgent;
32
+ }
33
+ //# sourceMappingURL=httpsAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpsAgent.js","names":["_fs","_interopRequireDefault","require","_https","_tlsConfig","_EngineError","httpsAgent","getHttpsAgent","validateTlsConfig","key","fs","readFileSync","process","env","TLS_REQUEST_KEY","TLS_SERVER_KEY","cert","TLS_REQUEST_CERT","TLS_SERVER_CERT","ca","TLS_REQUEST_CA","TLS_CA","passphrase","TLS_REQUEST_KEY_PASSPHRASE","TLS_SERVER_KEY_PASSPHRASE","EngineError","message","https","Agent"],"sources":["../../../src/utils/tlsConfig/httpsAgent.ts"],"sourcesContent":["import fs from 'fs';\nimport https, { Agent } from 'https';\nimport { validateTlsConfig } from './tlsConfig.validate';\nimport { EngineError } from 'entities/EngineError';\n\nlet httpsAgent: Agent | undefined;\n\nexport function getHttpsAgent(): Agent {\n if (httpsAgent) return httpsAgent;\n\n validateTlsConfig();\n\n const key = fs.readFileSync(\n process.env.TLS_REQUEST_KEY ?? process.env.TLS_SERVER_KEY!,\n 'utf-8'\n );\n const cert = fs.readFileSync(\n process.env.TLS_REQUEST_CERT ?? process.env.TLS_SERVER_CERT!,\n 'utf-8'\n );\n const ca = fs.readFileSync(\n process.env.TLS_REQUEST_CA ?? process.env.TLS_CA!,\n 'utf-8'\n );\n const passphrase =\n process.env.TLS_REQUEST_KEY_PASSPHRASE ??\n process.env.TLS_SERVER_KEY_PASSPHRASE;\n\n if (!key || !cert || !ca || !passphrase) {\n throw new EngineError({\n message: 'TLS environment variables are not set correctly'\n });\n }\n\n httpsAgent = new https.Agent({ key, cert, ca, passphrase });\n return httpsAgent;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA,IAAII,UAA6B;AAE1B,SAASC,aAAaA,CAAA,EAAU;EACrC,IAAID,UAAU,EAAE,OAAOA,UAAU;EAEjC,IAAAE,4BAAiB,EAAC,CAAC;EAEnB,MAAMC,GAAG,GAAGC,WAAE,CAACC,YAAY,CACzBC,OAAO,CAACC,GAAG,CAACC,eAAe,IAAIF,OAAO,CAACC,GAAG,CAACE,cAAe,EAC1D,OACF,CAAC;EACD,MAAMC,IAAI,GAAGN,WAAE,CAACC,YAAY,CAC1BC,OAAO,CAACC,GAAG,CAACI,gBAAgB,IAAIL,OAAO,CAACC,GAAG,CAACK,eAAgB,EAC5D,OACF,CAAC;EACD,MAAMC,EAAE,GAAGT,WAAE,CAACC,YAAY,CACxBC,OAAO,CAACC,GAAG,CAACO,cAAc,IAAIR,OAAO,CAACC,GAAG,CAACQ,MAAO,EACjD,OACF,CAAC;EACD,MAAMC,UAAU,GACdV,OAAO,CAACC,GAAG,CAACU,0BAA0B,IACtCX,OAAO,CAACC,GAAG,CAACW,yBAAyB;EAEvC,IAAI,CAACf,GAAG,IAAI,CAACO,IAAI,IAAI,CAACG,EAAE,IAAI,CAACG,UAAU,EAAE;IACvC,MAAM,IAAIG,wBAAW,CAAC;MACpBC,OAAO,EAAE;IACX,CAAC,CAAC;EACJ;EAEApB,UAAU,GAAG,IAAIqB,cAAK,CAACC,KAAK,CAAC;IAAEnB,GAAG;IAAEO,IAAI;IAAEG,EAAE;IAAEG;EAAW,CAAC,CAAC;EAC3D,OAAOhB,UAAU;AACnB","ignoreList":[]}
@@ -1,2 +1,3 @@
1
1
  export * from './tlsConfig';
2
2
  export * from './tlsConfig.types';
3
+ export * from './httpsAgent';
@@ -25,4 +25,15 @@ Object.keys(_tlsConfig2).forEach(function (key) {
25
25
  }
26
26
  });
27
27
  });
28
+ var _httpsAgent = require("./httpsAgent");
29
+ Object.keys(_httpsAgent).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _httpsAgent[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _httpsAgent[key];
36
+ }
37
+ });
38
+ });
28
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_tlsConfig","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_tlsConfig2"],"sources":["../../../src/utils/tlsConfig/index.ts"],"sourcesContent":["export * from './tlsConfig';\nexport * from './tlsConfig.types';\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,WAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,WAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,WAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,WAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_tlsConfig","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_tlsConfig2","_httpsAgent"],"sources":["../../../src/utils/tlsConfig/index.ts"],"sourcesContent":["export * from './tlsConfig';\nexport * from './tlsConfig.types';\nexport * from './httpsAgent';\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,WAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,WAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,WAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,WAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  /** Make a network request using TLS, this exposes the server client certificates to the destination */
3
- export declare function tlsRequest<T = unknown>(options: AxiosRequestConfig): Promise<AxiosResponse<T>>;
3
+ export declare const tlsRequest: <T = unknown>(options: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
@@ -3,16 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.tlsRequest = tlsRequest;
6
+ exports.tlsRequest = void 0;
7
7
  var _request = require("../request");
8
- var _tlsConfig = require("../tlsConfig");
8
+ var _httpsAgent = require("../tlsConfig/httpsAgent");
9
9
  /** Make a network request using TLS, this exposes the server client certificates to the destination */
10
- async function tlsRequest(options) {
11
- // if the config is not initial, will do that.
12
- if (!_tlsConfig.httpsAgent) (0, _tlsConfig.loadTlsConfig)();
10
+ const tlsRequest = async options => {
13
11
  return (0, _request.request)({
14
- httpsAgent: _tlsConfig.httpsAgent,
12
+ httpsAgent: (0, _httpsAgent.getHttpsAgent)(),
15
13
  ...options
16
14
  });
17
- }
15
+ };
16
+ exports.tlsRequest = tlsRequest;
18
17
  //# sourceMappingURL=tlsRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tlsRequest.js","names":["_request","require","_tlsConfig","tlsRequest","options","httpsAgent","loadTlsConfig","request"],"sources":["../../../src/utils/tlsRequest/tlsRequest.ts"],"sourcesContent":["import { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { request } from 'utils/request';\nimport { httpsAgent, loadTlsConfig } from 'utils/tlsConfig';\n\n/** Make a network request using TLS, this exposes the server client certificates to the destination */\nexport async function tlsRequest<T = unknown>(\n options: AxiosRequestConfig\n): Promise<AxiosResponse<T>> {\n // if the config is not initial, will do that.\n if (!httpsAgent) loadTlsConfig();\n return request<T>({ httpsAgent, ...options });\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA;AACO,eAAeE,UAAUA,CAC9BC,OAA2B,EACA;EAC3B;EACA,IAAI,CAACC,qBAAU,EAAE,IAAAC,wBAAa,EAAC,CAAC;EAChC,OAAO,IAAAC,gBAAO,EAAI;IAAEF,UAAU,EAAVA,qBAAU;IAAE,GAAGD;EAAQ,CAAC,CAAC;AAC/C","ignoreList":[]}
1
+ {"version":3,"file":"tlsRequest.js","names":["_request","require","_httpsAgent","tlsRequest","options","request","httpsAgent","getHttpsAgent","exports"],"sources":["../../../src/utils/tlsRequest/tlsRequest.ts"],"sourcesContent":["import { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { request } from 'utils/request';\nimport { getHttpsAgent } from 'utils/tlsConfig/httpsAgent';\n/** Make a network request using TLS, this exposes the server client certificates to the destination */\nexport const tlsRequest = async <T = unknown>(\n options: AxiosRequestConfig\n): Promise<AxiosResponse<T>> => {\n return request<T>({\n httpsAgent: getHttpsAgent(),\n ...options\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA;AACO,MAAME,UAAU,GAAG,MACxBC,OAA2B,IACG;EAC9B,OAAO,IAAAC,gBAAO,EAAI;IAChBC,UAAU,EAAE,IAAAC,yBAAa,EAAC,CAAC;IAC3B,GAAGH;EACL,CAAC,CAAC;AACJ,CAAC;AAACI,OAAA,CAAAL,UAAA,GAAAA,UAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-server-engine",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "description": "Framework used to develop backend services. This package ships with a lot of features to standardize the creation of services, letting you focus on the business logic.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './const';
2
2
  export * from './entities';
3
3
  export * from './utils';
4
+ export * from './utils/tlsRequest';
4
5
  export * as middleware from './middleware';
@@ -1,6 +1,7 @@
1
1
  import { Request, Response, NextFunction } from 'express';
2
2
  import { EngineError } from 'entities/EngineError';
3
3
  import { reportDebug } from 'utils';
4
+ import { tlsRequest } from 'utils/tlsRequest';
4
5
 
5
6
  const namespace = 'engine:middleware:userResolver';
6
7
 
@@ -15,7 +16,7 @@ export async function userResolver(
15
16
  throw new EngineError({
16
17
  message: 'Could not resolve user as the request is missing his ID'
17
18
  });
18
- const user = { user: 'ram', id };
19
+ const user = await getUserById(id);
19
20
  if (!user)
20
21
  throw new EngineError({
21
22
  message: 'Could not resolve user as it could not be fetched',
@@ -33,3 +34,20 @@ export async function userResolver(
33
34
 
34
35
  next();
35
36
  }
37
+
38
+ /**
39
+ * Call the GET /user/{id} endpoint using TLS
40
+ */
41
+ export async function getUserById(userId: number): Promise<unknown> {
42
+ const userServiceUrl = process.env.USER_SERVICE_URL;
43
+ if (!userServiceUrl) {
44
+ throw new Error('USER_SERVICE_URL is not defined in environment variables');
45
+ }
46
+
47
+ const response = await tlsRequest<unknown>({
48
+ method: 'GET',
49
+ url: `${userServiceUrl}/${userId}`
50
+ });
51
+
52
+ return response.data;
53
+ }
@@ -12,13 +12,11 @@ export * from './envAssert';
12
12
  export * from './createSortedObject';
13
13
  export * from './jwt';
14
14
  export * from './hmac';
15
- export * from './tlsConfig';
16
15
 
17
16
  // Networking
18
17
  export * from './createHttpServer';
19
18
  export * from './request';
20
19
  export * from './tlsConfig';
21
- export * from './tlsRequest';
22
20
  export * from './sendPush';
23
21
  export * from './sendEmail';
24
22
 
@@ -0,0 +1,37 @@
1
+ import fs from 'fs';
2
+ import https, { Agent } from 'https';
3
+ import { validateTlsConfig } from './tlsConfig.validate';
4
+ import { EngineError } from 'entities/EngineError';
5
+
6
+ let httpsAgent: Agent | undefined;
7
+
8
+ export function getHttpsAgent(): Agent {
9
+ if (httpsAgent) return httpsAgent;
10
+
11
+ validateTlsConfig();
12
+
13
+ const key = fs.readFileSync(
14
+ process.env.TLS_REQUEST_KEY ?? process.env.TLS_SERVER_KEY!,
15
+ 'utf-8'
16
+ );
17
+ const cert = fs.readFileSync(
18
+ process.env.TLS_REQUEST_CERT ?? process.env.TLS_SERVER_CERT!,
19
+ 'utf-8'
20
+ );
21
+ const ca = fs.readFileSync(
22
+ process.env.TLS_REQUEST_CA ?? process.env.TLS_CA!,
23
+ 'utf-8'
24
+ );
25
+ const passphrase =
26
+ process.env.TLS_REQUEST_KEY_PASSPHRASE ??
27
+ process.env.TLS_SERVER_KEY_PASSPHRASE;
28
+
29
+ if (!key || !cert || !ca || !passphrase) {
30
+ throw new EngineError({
31
+ message: 'TLS environment variables are not set correctly'
32
+ });
33
+ }
34
+
35
+ httpsAgent = new https.Agent({ key, cert, ca, passphrase });
36
+ return httpsAgent;
37
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './tlsConfig';
2
2
  export * from './tlsConfig.types';
3
+ export * from './httpsAgent';
@@ -1,12 +1,12 @@
1
1
  import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  import { request } from 'utils/request';
3
- import { httpsAgent, loadTlsConfig } from 'utils/tlsConfig';
4
-
3
+ import { getHttpsAgent } from 'utils/tlsConfig/httpsAgent';
5
4
  /** Make a network request using TLS, this exposes the server client certificates to the destination */
6
- export async function tlsRequest<T = unknown>(
5
+ export const tlsRequest = async <T = unknown>(
7
6
  options: AxiosRequestConfig
8
- ): Promise<AxiosResponse<T>> {
9
- // if the config is not initial, will do that.
10
- if (!httpsAgent) loadTlsConfig();
11
- return request<T>({ httpsAgent, ...options });
12
- }
7
+ ): Promise<AxiosResponse<T>> => {
8
+ return request<T>({
9
+ httpsAgent: getHttpsAgent(),
10
+ ...options
11
+ });
12
+ };
@@ -1,35 +0,0 @@
1
- import { factory } from 'backend-test-tools';
2
- import { expect } from 'chai';
3
- import { Request, Response } from 'express';
4
- import { stub, fake } from 'sinon';
5
- import { userResolver } from './userResolver';
6
-
7
- describe('Middleware - User Resolver', function () {
8
- it('should expand the user object with its data using its userId', async function () {
9
- const me = factory.build('user');
10
- const next = fake();
11
- const request: Partial<Request> = { user: { id: me.id } };
12
-
13
- // Call the resolver with the mocked request
14
- await userResolver(request as Request, undefined as unknown as Response, next);
15
-
16
- expect(next).to.have.been.called;
17
- // expect(request.user).to.deep.equal(me);
18
- });
19
-
20
- it('should throw an error if there is no userId', async function () {
21
- const me = factory.build('user');
22
- const next = fake();
23
- const request = {} as Request;
24
- await expect(userResolver(request, undefined as unknown as Response, next))
25
- .to.eventually.be.rejected;
26
- });
27
-
28
- // it('should throw an error if there is no such user', async function () {
29
- // const { id } = factory.build('user');
30
- // const next = fake();
31
- // const request = { user: { id } } as Request;
32
- // await expect(userResolver(request, undefined as unknown as Response, next))
33
- // .to.eventually.be.rejected;
34
- // });
35
- });