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 +14 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/userResolver/userResolver.d.ts +4 -0
- package/dist/middleware/userResolver/userResolver.js +18 -4
- package/dist/middleware/userResolver/userResolver.js.map +1 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.js +4 -15
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/tlsConfig/httpsAgent.d.ts +2 -0
- package/dist/utils/tlsConfig/httpsAgent.js +33 -0
- package/dist/utils/tlsConfig/httpsAgent.js.map +1 -0
- package/dist/utils/tlsConfig/index.d.ts +1 -0
- package/dist/utils/tlsConfig/index.js +11 -0
- package/dist/utils/tlsConfig/index.js.map +1 -1
- package/dist/utils/tlsRequest/tlsRequest.d.ts +1 -1
- package/dist/utils/tlsRequest/tlsRequest.js +6 -7
- package/dist/utils/tlsRequest/tlsRequest.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/middleware/userResolver/userResolver.ts +19 -1
- package/src/utils/index.ts +0 -2
- package/src/utils/tlsConfig/httpsAgent.ts +37 -0
- package/src/utils/tlsConfig/index.ts +1 -0
- package/src/utils/tlsRequest/tlsRequest.ts +8 -8
- package/src/middleware/userResolver/userResolver.test.ts +0 -35
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
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":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,SAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,SAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,SAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,SAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,MAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,MAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,MAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,MAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;
|
|
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 =
|
|
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":[]}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/utils/index.js
CHANGED
|
@@ -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
|
|
139
|
-
Object.keys(
|
|
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] ===
|
|
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
|
|
134
|
+
return _tlsConfig[key];
|
|
146
135
|
}
|
|
147
136
|
});
|
|
148
137
|
});
|
package/dist/utils/index.js.map
CHANGED
|
@@ -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","
|
|
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,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":[]}
|
|
@@ -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
|
|
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 =
|
|
6
|
+
exports.tlsRequest = void 0;
|
|
7
7
|
var _request = require("../request");
|
|
8
|
-
var
|
|
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
|
|
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:
|
|
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","
|
|
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.
|
|
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,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 =
|
|
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
|
+
}
|
package/src/utils/index.ts
CHANGED
|
@@ -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,12 +1,12 @@
|
|
|
1
1
|
import { AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
2
|
import { request } from 'utils/request';
|
|
3
|
-
import {
|
|
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
|
|
5
|
+
export const tlsRequest = async <T = unknown>(
|
|
7
6
|
options: AxiosRequestConfig
|
|
8
|
-
): Promise<AxiosResponse<T>> {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
});
|