@volcanicminds/backend 0.5.2 → 0.6.0

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/dist/index.js CHANGED
@@ -49,6 +49,7 @@ const loaderRoles = __importStar(require("./lib/loader/roles"));
49
49
  const loaderRouter = __importStar(require("./lib/loader/router"));
50
50
  const loaderHooks = __importStar(require("./lib/loader/hooks"));
51
51
  const loaderSchemas = __importStar(require("./lib/loader/schemas"));
52
+ const loaderTracking = __importStar(require("./lib/loader/tracking"));
52
53
  const loaderTranslation = __importStar(require("./lib/loader/translation"));
53
54
  const fastify_1 = __importDefault(require("fastify"));
54
55
  const jwt_1 = __importDefault(require("@fastify/jwt"));
@@ -159,7 +160,8 @@ const start = (decorators) => __awaiter(void 0, void 0, void 0, function* () {
159
160
  mark.print(logger_1.default);
160
161
  global.roles = loaderRoles.load();
161
162
  global.t = loaderTranslation.load();
162
- const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: logger_1.default } : {};
163
+ global.tracking = loaderTracking.load();
164
+ const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: { development: logger_1.default } } : { logger: true };
163
165
  const server = (0, fastify_1.default)();
164
166
  const { HOST: host = '0.0.0.0', PORT: port = '2230', GRAPHQL } = process.env;
165
167
  const { JWT_SECRET = '', JWT_EXPIRES_IN = '15d', JWT_REFRESH = 'true', JWT_REFRESH_SECRET = '', JWT_REFRESH_EXPIRES_IN = '180d' } = process.env;
@@ -191,105 +193,111 @@ const start = (decorators) => __awaiter(void 0, void 0, void 0, function* () {
191
193
  return false;
192
194
  },
193
195
  isValidUser(data) {
194
- throw new Error('Not implemented');
196
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
195
197
  },
196
198
  createUser(data) {
197
- throw new Error('Not implemented');
199
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
198
200
  },
199
201
  resetExternalId(data) {
200
- throw new Error('Not implemented');
202
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
201
203
  },
202
204
  updateUserById(id, user) {
203
- throw new Error('Not implemented');
205
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
204
206
  },
205
207
  retrieveUserById(id) {
206
- throw new Error('Not implemented');
208
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
207
209
  },
208
210
  retrieveUserByEmail(email) {
209
- throw new Error('Not implemented');
211
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
210
212
  },
211
213
  retrieveUserByConfirmationToken(code) {
212
- throw new Error('Not implemented');
214
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
213
215
  },
214
216
  retrieveUserByResetPasswordToken(code) {
215
- throw new Error('Not implemented');
217
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
216
218
  },
217
219
  retrieveUserByUsername(username) {
218
- throw new Error('Not implemented');
220
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
219
221
  },
220
222
  retrieveUserByExternalId(externalId) {
221
- throw new Error('Not implemented');
223
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
222
224
  },
223
225
  retrieveUserByPassword(email, password) {
224
- throw new Error('Not implemented');
226
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
225
227
  },
226
228
  changePassword(email, password, oldPassword) {
227
- throw new Error('Not implemented');
229
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
228
230
  },
229
231
  forgotPassword(email) {
230
- throw new Error('Not implemented');
232
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
231
233
  },
232
234
  userConfirmation(user) {
233
- throw new Error('Not implemented');
235
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
234
236
  },
235
237
  resetPassword(user, password) {
236
- throw new Error('Not implemented');
238
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
237
239
  },
238
240
  blockUserById(id, reason) {
239
- throw new Error('Not implemented');
241
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
240
242
  },
241
243
  unblockUserById(data) {
242
- throw new Error('Not implemented');
244
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
243
245
  },
244
246
  countQuery(data) {
245
- throw new Error('Not implemented');
247
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
246
248
  },
247
249
  findQuery(data) {
248
- throw new Error('Not implemented');
250
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
249
251
  }
250
252
  }, tokenManager: {
251
253
  isImplemented() {
252
254
  return false;
253
255
  },
254
256
  isValidToken(data) {
255
- throw new Error('Not implemented');
257
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
256
258
  },
257
259
  createToken(data) {
258
- throw new Error('Not implemented');
260
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
259
261
  },
260
262
  resetExternalId(id) {
261
- throw new Error('Not implemented');
263
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
262
264
  },
263
265
  updateTokenById(id, token) {
264
- throw new Error('Not implemented');
266
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
265
267
  },
266
268
  retrieveTokenById(id) {
267
- throw new Error('Not implemented');
269
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
268
270
  },
269
271
  retrieveTokenByExternalId(id) {
270
- throw new Error('Not implemented');
272
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
271
273
  },
272
274
  blockTokenById(id, reason) {
273
- throw new Error('Not implemented');
275
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
274
276
  },
275
277
  unblockTokenById(id) {
276
- throw new Error('Not implemented');
278
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
277
279
  },
278
280
  countQuery(data) {
279
- throw new Error('Not implemented');
281
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
280
282
  },
281
283
  findQuery(data) {
282
- throw new Error('Not implemented');
284
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
283
285
  },
284
286
  removeTokenById(id) {
285
- throw new Error('Not implemented');
287
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
286
288
  }
287
289
  }, dataBaseManager: {
288
290
  isImplemented() {
289
- return true;
291
+ return false;
290
292
  },
291
293
  synchronizeSchemas() {
292
- throw new Error('Not implemented');
294
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
295
+ },
296
+ retrieveBy(entityName, entityId) {
297
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
298
+ },
299
+ addChange(entityName, entityId, status, userId, contents, changeEntity) {
300
+ throw new Error('Not implemented. You need to define the specific decorator (manager).');
293
301
  }
294
302
  } }, decorators);
295
303
  yield Promise.all(Object.keys(decorators || {}).map((key) => __awaiter(void 0, void 0, void 0, function* () {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ module.exports = {
3
+ config: {
4
+ enableAll: false,
5
+ changeEntity: 'Change',
6
+ primaryKey: 'id'
7
+ },
8
+ changes: []
9
+ };
10
+ //# sourceMappingURL=tracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../lib/config/tracking.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,IAAI;KACjB;IACD,OAAO,EAAE,EAUR;CACF,CAAA"}
@@ -11,15 +11,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const common_1 = require("../util/common");
13
13
  module.exports = (req, reply) => __awaiter(void 0, void 0, void 0, function* () {
14
- var _a, _b, _c, _d, _e, _f;
14
+ var _a, _b, _c, _d, _e, _f, _g;
15
15
  log.i && (req.startedAt = new Date());
16
16
  req.data = () => (0, common_1.getData)(req);
17
17
  req.parameters = () => (0, common_1.getParams)(req);
18
18
  req.roles = () => (req.user ? req.user.roles : [roles.public]);
19
19
  req.hasRole = (r) => (req.user ? req.user.roles : [roles.public]).some((role) => role === (r === null || r === void 0 ? void 0 : r.code));
20
20
  const auth = ((_a = req.headers) === null || _a === void 0 ? void 0 : _a.authorization) || '';
21
+ const cfg = ((_b = req.routeOptions) === null || _b === void 0 ? void 0 : _b.config) || req.routeConfig || {};
21
22
  const [prefix, bearerToken] = auth.split(' ');
22
- const isRoutePublic = (req.routeConfig.requiredRoles || []).some((role) => role.code === roles.public.code);
23
+ const isRoutePublic = (cfg.requiredRoles || []).some((role) => role.code === roles.public.code);
23
24
  if (prefix === 'Bearer' && bearerToken != null) {
24
25
  let user = null;
25
26
  let token = null;
@@ -53,10 +54,10 @@ module.exports = (req, reply) => __awaiter(void 0, void 0, void 0, function* ()
53
54
  }
54
55
  }
55
56
  }
56
- if (((_b = req.routeConfig.requiredRoles) === null || _b === void 0 ? void 0 : _b.length) > 0) {
57
- const { method = '', url = '', requiredRoles } = req.routeConfig;
58
- const authRoles = ((_e = (((_c = req.user) === null || _c === void 0 ? void 0 : _c.roles) || ((_d = req.token) === null || _d === void 0 ? void 0 : _d.roles))) === null || _e === void 0 ? void 0 : _e.map((code) => code)) || [
59
- ((_f = roles.public) === null || _f === void 0 ? void 0 : _f.code) || 'public'
57
+ if (((_c = cfg.requiredRoles) === null || _c === void 0 ? void 0 : _c.length) > 0) {
58
+ const { method = '', url = '', requiredRoles } = cfg;
59
+ const authRoles = ((_f = (((_d = req.user) === null || _d === void 0 ? void 0 : _d.roles) || ((_e = req.token) === null || _e === void 0 ? void 0 : _e.roles))) === null || _f === void 0 ? void 0 : _f.map((code) => code)) || [
60
+ ((_g = roles.public) === null || _g === void 0 ? void 0 : _g.code) || 'public'
60
61
  ];
61
62
  const resolvedRoles = authRoles.length > 0 ? requiredRoles.filter((r) => authRoles.includes(r.code)) : [];
62
63
  if (!resolvedRoles.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const tracking = __importStar(require("../util/tracker"));
36
+ module.exports = (req, reply) => __awaiter(void 0, void 0, void 0, function* () {
37
+ tracking.initialize(req, reply);
38
+ });
39
+ //# sourceMappingURL=preHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preHandler.js","sourceRoot":"","sources":["../../../lib/hooks/preHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA2C;AAE3C,MAAM,CAAC,OAAO,GAAG,CAAO,GAAG,EAAE,KAAK,EAAE,EAAE;IACpC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACjC,CAAC,CAAA,CAAA"}
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -13,10 +36,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
36
  };
14
37
  Object.defineProperty(exports, "__esModule", { value: true });
15
38
  const object_sizeof_1 = __importDefault(require("object-sizeof"));
39
+ const tracking = __importStar(require("../util/tracker"));
16
40
  module.exports = (req, reply, payload) => __awaiter(void 0, void 0, void 0, function* () {
17
41
  if (log.t) {
18
42
  req.payloadSize = (0, object_sizeof_1.default)(req.body) + (0, object_sizeof_1.default)(req.params) + (0, object_sizeof_1.default)(req.query);
19
43
  reply.payloadSize = (0, object_sizeof_1.default)(payload);
20
44
  }
45
+ tracking.track(req, reply, payload);
21
46
  });
22
47
  //# sourceMappingURL=preSerialization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preSerialization.js","sourceRoot":"","sources":["../../../lib/hooks/preSerialization.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kEAAkC;AAElC,MAAM,CAAC,OAAO,GAAG,CAAO,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC7C,IAAI,GAAG,CAAC,CAAC,EAAE;QACT,GAAG,CAAC,WAAW,GAAG,IAAA,uBAAM,EAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAA,uBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAA,uBAAM,EAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3E,KAAK,CAAC,WAAW,GAAG,IAAA,uBAAM,EAAC,OAAO,CAAC,CAAA;KACpC;AACH,CAAC,CAAA,CAAA"}
1
+ {"version":3,"file":"preSerialization.js","sourceRoot":"","sources":["../../../lib/hooks/preSerialization.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAkC;AAClC,0DAA2C;AAE3C,MAAM,CAAC,OAAO,GAAG,CAAO,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC7C,IAAI,GAAG,CAAC,CAAC,EAAE;QACT,GAAG,CAAC,WAAW,GAAG,IAAA,uBAAM,EAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAA,uBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAA,uBAAM,EAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3E,KAAK,CAAC,WAAW,GAAG,IAAA,uBAAM,EAAC,OAAO,CAAC,CAAA;KACpC;IAED,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC,CAAA,CAAA"}
@@ -69,7 +69,22 @@ function load() {
69
69
  ? log.t &&
70
70
  log.trace(`* Method [${method}] path ${endpoint} handler ${handler} enabled with ${(middlewares === null || middlewares === void 0 ? void 0 : middlewares.length) || 0} middlewares`)
71
71
  : log.w && log.warn(`* Method [${method}] path ${endpoint} handler ${handler} disabled. Skip.`);
72
- toAdd &&
72
+ if (toAdd) {
73
+ const doc = {
74
+ summary: title,
75
+ description,
76
+ deprecated,
77
+ tags,
78
+ version,
79
+ security: security === 'bearer' ? [{ Bearer: [] }] : security,
80
+ response
81
+ };
82
+ if (query)
83
+ doc.querystring = query;
84
+ if (params)
85
+ doc.params = params;
86
+ if (body)
87
+ doc.body = body;
73
88
  validRoutes.push({
74
89
  handler,
75
90
  method,
@@ -80,19 +95,9 @@ function load() {
80
95
  base,
81
96
  file: path.join(base, defaultConfig.controller || 'controller', handlerParts[0]),
82
97
  func: handlerParts[1],
83
- doc: {
84
- summary: title,
85
- description,
86
- deprecated,
87
- tags,
88
- version,
89
- security: security === 'bearer' ? [{ Bearer: [] }] : security,
90
- querystring: query,
91
- params,
92
- body,
93
- response
94
- }
98
+ doc: doc
95
99
  });
100
+ }
96
101
  });
97
102
  });
98
103
  });
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.load = void 0;
4
+ const path_1 = require("../util/path");
5
+ const glob = require('glob');
6
+ const METHODS = ['POST', 'PUT', 'DELETE'];
7
+ function load() {
8
+ const trackChangesList = {};
9
+ const patterns = (0, path_1.normalizePatterns)(['..', 'config', 'tracking.{ts,js}'], ['src', 'config', 'tracking.{ts,js}']);
10
+ patterns.forEach((pattern) => {
11
+ log.t && log.trace('Looking for ' + pattern);
12
+ glob.sync(pattern).forEach((f) => {
13
+ const configTracking = require(f);
14
+ const { config, changes } = configTracking || {};
15
+ const { enableAll = true, primaryKey = 'id', changeEntity = 'Change' } = config || {};
16
+ enableAll &&
17
+ changes.forEach((change) => {
18
+ var _a;
19
+ const tc = Object.assign({ primaryKey: primaryKey, changeEntity: changeEntity }, change);
20
+ const code = getCodeBy(tc.method, tc.path);
21
+ if (code in trackChangesList) {
22
+ log.warn(`* Tracking changes on ${(_a = tc.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()} ${tc.path} already loaded (override)`);
23
+ trackChangesList[code] = Object.assign(Object.assign({}, trackChangesList[code]), tc);
24
+ }
25
+ else if (isValid(tc)) {
26
+ trackChangesList[code] = tc;
27
+ }
28
+ });
29
+ });
30
+ });
31
+ const keys = Object.keys(trackChangesList) || [];
32
+ log.d && log.debug(`Tracking changes loaded: ${(keys === null || keys === void 0 ? void 0 : keys.length) || 0}`);
33
+ return trackChangesList;
34
+ }
35
+ exports.load = load;
36
+ function getCodeBy(method, path) {
37
+ if (method == null || path == null) {
38
+ throw new Error('Tracking changes: impossible retrieve code by method and path');
39
+ }
40
+ return `${method.toUpperCase()}::${path}`;
41
+ }
42
+ function isValid(tc) {
43
+ const { method: m, path, enable = true, primaryKey, entity } = tc;
44
+ const method = m === null || m === void 0 ? void 0 : m.toUpperCase();
45
+ const label = `${method} ${path}`;
46
+ if (!enable) {
47
+ log.warn(`* Tracking changes on ${label} disabled`);
48
+ return false;
49
+ }
50
+ if (!METHODS.includes(method)) {
51
+ log.error(`* Tracking changes on ${label} available only on methods ${METHODS.join(', ')}`);
52
+ return false;
53
+ }
54
+ if (path == null || path.length === 0) {
55
+ log.error(`* Tracking changes on ${label} specify a valid path (ex /users)`);
56
+ return false;
57
+ }
58
+ if (entity == null || entity.length === 0) {
59
+ log.error(`* Tracking changes on ${label} specify a valid entity (ex User)`);
60
+ return false;
61
+ }
62
+ if (primaryKey == null || primaryKey.length === 0) {
63
+ log.error(`* Tracking changes on ${label} specify a valid primaryKey (ex id)`);
64
+ return false;
65
+ }
66
+ return true;
67
+ }
68
+ //# sourceMappingURL=tracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../lib/loader/tracking.ts"],"names":[],"mappings":";;;AACA,uCAAgD;AAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAEzC,SAAgB,IAAI;IAClB,MAAM,gBAAgB,GAAqB,EAAE,CAAA;IAE7C,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC/G,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACvC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,IAAI,EAAE,CAAA;YAChD,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,YAAY,GAAG,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;YAErF,SAAS;gBACP,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;oBACzB,MAAM,EAAE,GAAiB,gBAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,IAAK,MAAM,CAAkB,CAAA;oBAC1G,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;oBAE1C,IAAI,IAAI,IAAI,gBAAgB,EAAE;wBAC5B,GAAG,CAAC,IAAI,CAAC,yBAAyB,MAAA,EAAE,CAAC,MAAM,0CAAE,WAAW,EAAE,IAAI,EAAE,CAAC,IAAI,4BAA4B,CAAC,CAAA;wBAClG,gBAAgB,CAAC,IAAI,CAAC,mCAAQ,gBAAgB,CAAC,IAAI,CAAC,GAAK,EAAE,CAAE,CAAA;qBAC9D;yBAAM,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE;wBACtB,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;qBAC5B;gBACH,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;IAChD,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,CAAC,EAAE,CAAC,CAAA;IACnE,OAAO,gBAAgB,CAAA;AACzB,CAAC;AA7BD,oBA6BC;AAED,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI;IAC7B,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;KACjF;IACD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAA;AAC3C,CAAC;AAED,SAAS,OAAO,CAAC,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;IACjE,MAAM,MAAM,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,WAAW,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAA;IAEjC,IAAI,CAAC,MAAM,EAAE;QACX,GAAG,CAAC,IAAI,CAAC,yBAAyB,KAAK,WAAW,CAAC,CAAA;QACnD,OAAO,KAAK,CAAA;KACb;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC7B,GAAG,CAAC,KAAK,CAAC,yBAAyB,KAAK,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3F,OAAO,KAAK,CAAA;KACb;IAED,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,GAAG,CAAC,KAAK,CAAC,yBAAyB,KAAK,mCAAmC,CAAC,CAAA;QAC5E,OAAO,KAAK,CAAA;KACb;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACzC,GAAG,CAAC,KAAK,CAAC,yBAAyB,KAAK,mCAAmC,CAAC,CAAA;QAC5E,OAAO,KAAK,CAAA;KACb;IAED,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QACjD,GAAG,CAAC,KAAK,CAAC,yBAAyB,KAAK,qCAAqC,CAAC,CAAA;QAC9E,OAAO,KAAK,CAAA;KACb;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.track = exports.initialize = void 0;
16
+ const dayjs_1 = __importDefault(require("dayjs"));
17
+ function initialize(req, reply) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ if (req.server['dataBaseManager'].isImplemented()) {
20
+ const tc = getTrackingConfigIfEnabled(req);
21
+ const allData = Object.assign(Object.assign({}, req.parameters()), req.data());
22
+ if (tc) {
23
+ try {
24
+ if (allData && tc.entity && tc.primaryKey && tc.primaryKey in allData) {
25
+ const key = allData[tc.primaryKey];
26
+ req.trackingData = yield req.server['dataBaseManager'].retrieveBy(tc.entity, key);
27
+ log.trace(`Tracking changes: found id ${req.trackingData ? req.trackingData[tc.primaryKey] : null}`);
28
+ }
29
+ }
30
+ catch (error) {
31
+ log.error(`Tracking changes: error on ${tc.code}`);
32
+ log.error(error);
33
+ }
34
+ }
35
+ }
36
+ });
37
+ }
38
+ exports.initialize = initialize;
39
+ function track(req, reply, payload) {
40
+ var _a, _b, _c, _d;
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ if (req.server['dataBaseManager'].isImplemented()) {
43
+ const tc = getTrackingConfigIfEnabled(req);
44
+ if (tc) {
45
+ try {
46
+ const contents = [];
47
+ const { entity, changeEntity } = tc;
48
+ const userId = (_a = req.user) === null || _a === void 0 ? void 0 : _a.getId();
49
+ const oldData = req.trackingData;
50
+ const status = ((_b = req.method) === null || _b === void 0 ? void 0 : _b.toUpperCase()) === 'POST' ? 'create' : ((_c = req.method) === null || _c === void 0 ? void 0 : _c.toUpperCase()) === 'DELETE' ? 'delete' : 'update';
51
+ const id = tc.primaryKey && payload && tc.primaryKey in payload
52
+ ? payload[tc.primaryKey]
53
+ : tc.primaryKey && oldData && tc.primaryKey in oldData
54
+ ? oldData[tc.primaryKey]
55
+ : undefined;
56
+ if (!id) {
57
+ log.error('Tracking changes: id / primary key not found');
58
+ return;
59
+ }
60
+ let addChange = false;
61
+ if (status === 'delete') {
62
+ addChange = true;
63
+ }
64
+ else {
65
+ ;
66
+ (((_d = tc.fields) === null || _d === void 0 ? void 0 : _d.includes) || []).forEach((field) => {
67
+ const oldValue = oldData != null && field in oldData ? oldData[field] : undefined;
68
+ const newValue = payload != null && field in payload ? payload[field] : undefined;
69
+ if (isFieldChanged(oldValue, newValue) && newValue !== undefined) {
70
+ contents.push({ key: field, old: oldValue, new: newValue });
71
+ addChange = true;
72
+ }
73
+ });
74
+ }
75
+ if (addChange) {
76
+ log.trace(`Tracking changes: add ${changeEntity} for ${entity}, ${id}, ${userId}, ${status}`);
77
+ yield req.server['dataBaseManager'].addChange(entity, id, status, userId, contents, changeEntity);
78
+ }
79
+ }
80
+ catch (error) {
81
+ log.error(`Tracking changes: error on ${tc.code}`);
82
+ log.error(error);
83
+ }
84
+ }
85
+ }
86
+ });
87
+ }
88
+ exports.track = track;
89
+ function getTrackingConfigIfEnabled(req) {
90
+ var _a, _b, _c, _d;
91
+ try {
92
+ const code = `${(_a = req.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()}::${((_c = (_b = req.routeOptions) === null || _b === void 0 ? void 0 : _b.config) === null || _c === void 0 ? void 0 : _c.url) || ((_d = req.routeConfig) === null || _d === void 0 ? void 0 : _d.url) || req.url}`;
93
+ return code in global.tracking && global.tracking[code].enable ? Object.assign({ code }, global.tracking[code]) : null;
94
+ }
95
+ catch (error) {
96
+ log.error(error);
97
+ }
98
+ }
99
+ function isFieldChanged(oldValue, newValue) {
100
+ if (oldValue instanceof Date || newValue instanceof Date) {
101
+ return !(0, dayjs_1.default)(oldValue).isSame((0, dayjs_1.default)(newValue));
102
+ }
103
+ return oldValue != newValue;
104
+ }
105
+ //# sourceMappingURL=tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../lib/util/tracker.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcanicminds/backend",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "codename": "turin",
5
5
  "license": "MIT",
6
6
  "description": "The volcanic (minds) backend",
@@ -60,6 +60,7 @@
60
60
  "@fastify/swagger": "^8.10.1",
61
61
  "@fastify/swagger-ui": "^1.9.3",
62
62
  "@types/node": "^20.7.0",
63
+ "dayjs": "^1.11.10",
63
64
  "dotenv": "^16.3.1",
64
65
  "fastify": "^4.23.2",
65
66
  "glob": "^8.1.0",
package/index.ts CHANGED
@@ -12,6 +12,7 @@ import * as loaderRoles from './lib/loader/roles'
12
12
  import * as loaderRouter from './lib/loader/router'
13
13
  import * as loaderHooks from './lib/loader/hooks'
14
14
  import * as loaderSchemas from './lib/loader/schemas'
15
+ import * as loaderTracking from './lib/loader/tracking'
15
16
  import * as loaderTranslation from './lib/loader/translation'
16
17
 
17
18
  import fastify, { FastifyInstance } from 'fastify'
@@ -138,10 +139,12 @@ async function addFastifySwagger(server: FastifyInstance) {
138
139
  const start = async (decorators) => {
139
140
  const begin = new Date().getTime()
140
141
  mark.print(logger)
142
+
141
143
  global.roles = loaderRoles.load()
142
144
  global.t = loaderTranslation.load()
145
+ global.tracking = loaderTracking.load()
143
146
 
144
- const opts = yn(process.env.LOG_FASTIFY, false) ? { logger: logger } : {}
147
+ const opts = yn(process.env.LOG_FASTIFY, false) ? { logger: { development: logger } } : { logger: true }
145
148
  const server: FastifyInstance = fastify()
146
149
 
147
150
  const { HOST: host = '0.0.0.0', PORT: port = '2230', GRAPHQL } = process.env
@@ -190,61 +193,61 @@ const start = async (decorators) => {
190
193
  return false
191
194
  },
192
195
  isValidUser(data: any) {
193
- throw new Error('Not implemented')
196
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
194
197
  },
195
198
  createUser(data: any) {
196
- throw new Error('Not implemented')
199
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
197
200
  },
198
201
  resetExternalId(data: any) {
199
- throw new Error('Not implemented')
202
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
200
203
  },
201
204
  updateUserById(id: string, user: any) {
202
- throw new Error('Not implemented')
205
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
203
206
  },
204
207
  retrieveUserById(id: string) {
205
- throw new Error('Not implemented')
208
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
206
209
  },
207
210
  retrieveUserByEmail(email: string) {
208
- throw new Error('Not implemented')
211
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
209
212
  },
210
213
  retrieveUserByConfirmationToken(code: string) {
211
- throw new Error('Not implemented')
214
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
212
215
  },
213
216
  retrieveUserByResetPasswordToken(code: string) {
214
- throw new Error('Not implemented')
217
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
215
218
  },
216
219
  retrieveUserByUsername(username: string) {
217
- throw new Error('Not implemented')
220
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
218
221
  },
219
222
  retrieveUserByExternalId(externalId: string) {
220
- throw new Error('Not implemented')
223
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
221
224
  },
222
225
  retrieveUserByPassword(email: string, password: string) {
223
- throw new Error('Not implemented')
226
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
224
227
  },
225
228
  changePassword(email: string, password: string, oldPassword: string) {
226
- throw new Error('Not implemented')
229
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
227
230
  },
228
231
  forgotPassword(email: string) {
229
- throw new Error('Not implemented')
232
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
230
233
  },
231
234
  userConfirmation(user: any) {
232
- throw new Error('Not implemented')
235
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
233
236
  },
234
237
  resetPassword(user: any, password: string) {
235
- throw new Error('Not implemented')
238
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
236
239
  },
237
240
  blockUserById(id: string, reason: string) {
238
- throw new Error('Not implemented')
241
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
239
242
  },
240
243
  unblockUserById(data: any) {
241
- throw new Error('Not implemented')
244
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
242
245
  },
243
246
  countQuery(data: any) {
244
- throw new Error('Not implemented')
247
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
245
248
  },
246
249
  findQuery(data: any) {
247
- throw new Error('Not implemented')
250
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
248
251
  }
249
252
  } as UserManagement,
250
253
  tokenManager: {
@@ -252,45 +255,51 @@ const start = async (decorators) => {
252
255
  return false
253
256
  },
254
257
  isValidToken(data: any) {
255
- throw new Error('Not implemented')
258
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
256
259
  },
257
260
  createToken(data: any) {
258
- throw new Error('Not implemented')
261
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
259
262
  },
260
263
  resetExternalId(id: string) {
261
- throw new Error('Not implemented')
264
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
262
265
  },
263
266
  updateTokenById(id: string, token: any) {
264
- throw new Error('Not implemented')
267
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
265
268
  },
266
269
  retrieveTokenById(id: string) {
267
- throw new Error('Not implemented')
270
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
268
271
  },
269
272
  retrieveTokenByExternalId(id: string) {
270
- throw new Error('Not implemented')
273
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
271
274
  },
272
275
  blockTokenById(id: string, reason: string) {
273
- throw new Error('Not implemented')
276
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
274
277
  },
275
278
  unblockTokenById(id: string) {
276
- throw new Error('Not implemented')
279
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
277
280
  },
278
281
  countQuery(data: any) {
279
- throw new Error('Not implemented')
282
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
280
283
  },
281
284
  findQuery(data: any) {
282
- throw new Error('Not implemented')
285
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
283
286
  },
284
287
  removeTokenById(id: string) {
285
- throw new Error('Not implemented')
288
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
286
289
  }
287
290
  } as TokenManagement,
288
291
  dataBaseManager: {
289
292
  isImplemented() {
290
- return true
293
+ return false
291
294
  },
292
295
  synchronizeSchemas() {
293
- throw new Error('Not implemented')
296
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
297
+ },
298
+ retrieveBy(entityName, entityId) {
299
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
300
+ },
301
+ addChange(entityName, entityId, status, userId, contents, changeEntity) {
302
+ throw new Error('Not implemented. You need to define the specific decorator (manager).')
294
303
  }
295
304
  } as DataBaseManagement,
296
305
  ...decorators
@@ -0,0 +1,18 @@
1
+ module.exports = {
2
+ config: {
3
+ enableAll: false, // optional, default true
4
+ changeEntity: 'Change', // optional, default 'Change'
5
+ primaryKey: 'id' // optional, default 'id'
6
+ },
7
+ changes: [
8
+ // {
9
+ // enable: true,
10
+ // method: 'POST',
11
+ // path: '/example',
12
+ // fields: { includes: ['fieldToTrack', 'fieldToTrack2'], excludes: [] },
13
+ // entity: 'Example', // valid Entity name
14
+ // changeEntity: 'Change', // optional, default config.changeEntity or 'Change'
15
+ // primaryKey: 'id' //optional, default config.primaryKey or 'id'
16
+ // }
17
+ ]
18
+ }
@@ -11,8 +11,9 @@ module.exports = async (req, reply) => {
11
11
 
12
12
  // authorization check
13
13
  const auth = req.headers?.authorization || ''
14
+ const cfg = req.routeOptions?.config || req.routeConfig || {}
14
15
  const [prefix, bearerToken] = auth.split(' ')
15
- const isRoutePublic = (req.routeConfig.requiredRoles || []).some((role: Role) => role.code === roles.public.code)
16
+ const isRoutePublic = (cfg.requiredRoles || []).some((role: Role) => role.code === roles.public.code)
16
17
 
17
18
  if (prefix === 'Bearer' && bearerToken != null) {
18
19
  let user: null | AuthenticatedUser = null
@@ -50,8 +51,8 @@ module.exports = async (req, reply) => {
50
51
  }
51
52
  }
52
53
 
53
- if (req.routeConfig.requiredRoles?.length > 0) {
54
- const { method = '', url = '', requiredRoles } = req.routeConfig
54
+ if (cfg.requiredRoles?.length > 0) {
55
+ const { method = '', url = '', requiredRoles } = cfg
55
56
  const authRoles: string[] = ((req.user?.roles || req.token?.roles)?.map((code) => code) as string[]) || [
56
57
  roles.public?.code || 'public'
57
58
  ]
@@ -0,0 +1,5 @@
1
+ import * as tracking from '../util/tracker'
2
+
3
+ module.exports = async (req, reply) => {
4
+ tracking.initialize(req, reply)
5
+ }
@@ -1,8 +1,11 @@
1
1
  import sizeof from 'object-sizeof'
2
+ import * as tracking from '../util/tracker'
2
3
 
3
4
  module.exports = async (req, reply, payload) => {
4
5
  if (log.t) {
5
6
  req.payloadSize = sizeof(req.body) + sizeof(req.params) + sizeof(req.query)
6
7
  reply.payloadSize = sizeof(payload)
7
8
  }
9
+
10
+ tracking.track(req, reply, payload)
8
11
  }
@@ -101,7 +101,32 @@ export function load(): ConfiguredRoute[] {
101
101
  )
102
102
  : log.w && log.warn(`* Method [${method}] path ${endpoint} handler ${handler} disabled. Skip.`)
103
103
 
104
- toAdd &&
104
+ if (toAdd) {
105
+ const doc = {
106
+ summary: title,
107
+ description,
108
+ deprecated,
109
+ tags,
110
+ version,
111
+ security: security === 'bearer' ? [{ Bearer: [] }] : security,
112
+ response
113
+ } as {
114
+ summary: string
115
+ description: string
116
+ deprecated: boolean
117
+ tags: string[]
118
+ version: string
119
+ security: any
120
+ response: any
121
+ querystring: any | undefined
122
+ params: any | undefined
123
+ body: any | undefined
124
+ }
125
+
126
+ if (query) doc.querystring = query
127
+ if (params) doc.params = params
128
+ if (body) doc.body = body
129
+
105
130
  validRoutes.push({
106
131
  handler,
107
132
  method,
@@ -112,20 +137,9 @@ export function load(): ConfiguredRoute[] {
112
137
  base,
113
138
  file: path.join(base, defaultConfig.controller || 'controller', handlerParts[0]),
114
139
  func: handlerParts[1],
115
- // swagger: doc
116
- doc: {
117
- summary: title,
118
- description,
119
- deprecated,
120
- tags,
121
- version,
122
- security: security === 'bearer' ? [{ Bearer: [] }] : security,
123
- querystring: query,
124
- params,
125
- body,
126
- response
127
- }
140
+ doc: doc // swagger & schema validation
128
141
  })
142
+ }
129
143
  })
130
144
  })
131
145
  })
@@ -0,0 +1,76 @@
1
+ import { TrackChanges, TrackChangesList } from '../../types/global'
2
+ import { normalizePatterns } from '../util/path'
3
+ const glob = require('glob')
4
+
5
+ const METHODS = ['POST', 'PUT', 'DELETE']
6
+
7
+ export function load() {
8
+ const trackChangesList: TrackChangesList = {}
9
+
10
+ const patterns = normalizePatterns(['..', 'config', 'tracking.{ts,js}'], ['src', 'config', 'tracking.{ts,js}'])
11
+ patterns.forEach((pattern) => {
12
+ log.t && log.trace('Looking for ' + pattern)
13
+ glob.sync(pattern).forEach((f: string) => {
14
+ const configTracking = require(f)
15
+ const { config, changes } = configTracking || {}
16
+ const { enableAll = true, primaryKey = 'id', changeEntity = 'Change' } = config || {}
17
+
18
+ enableAll &&
19
+ changes.forEach((change) => {
20
+ const tc: TrackChanges = { primaryKey: primaryKey, changeEntity: changeEntity, ...change } as TrackChanges
21
+ const code = getCodeBy(tc.method, tc.path)
22
+
23
+ if (code in trackChangesList) {
24
+ log.warn(`* Tracking changes on ${tc.method?.toUpperCase()} ${tc.path} already loaded (override)`)
25
+ trackChangesList[code] = { ...trackChangesList[code], ...tc }
26
+ } else if (isValid(tc)) {
27
+ trackChangesList[code] = tc
28
+ }
29
+ })
30
+ })
31
+ })
32
+
33
+ const keys = Object.keys(trackChangesList) || []
34
+ log.d && log.debug(`Tracking changes loaded: ${keys?.length || 0}`)
35
+ return trackChangesList
36
+ }
37
+
38
+ function getCodeBy(method, path) {
39
+ if (method == null || path == null) {
40
+ throw new Error('Tracking changes: impossible retrieve code by method and path')
41
+ }
42
+ return `${method.toUpperCase()}::${path}` // ex POST::/users
43
+ }
44
+
45
+ function isValid(tc) {
46
+ const { method: m, path, enable = true, primaryKey, entity } = tc
47
+ const method = m?.toUpperCase()
48
+ const label = `${method} ${path}`
49
+
50
+ if (!enable) {
51
+ log.warn(`* Tracking changes on ${label} disabled`)
52
+ return false
53
+ }
54
+
55
+ if (!METHODS.includes(method)) {
56
+ log.error(`* Tracking changes on ${label} available only on methods ${METHODS.join(', ')}`)
57
+ return false
58
+ }
59
+
60
+ if (path == null || path.length === 0) {
61
+ log.error(`* Tracking changes on ${label} specify a valid path (ex /users)`)
62
+ return false
63
+ }
64
+
65
+ if (entity == null || entity.length === 0) {
66
+ log.error(`* Tracking changes on ${label} specify a valid entity (ex User)`)
67
+ return false
68
+ }
69
+
70
+ if (primaryKey == null || primaryKey.length === 0) {
71
+ log.error(`* Tracking changes on ${label} specify a valid primaryKey (ex id)`)
72
+ return false
73
+ }
74
+
75
+ return true
76
+ }
@@ -0,0 +1,90 @@
1
+ import dayjs from 'dayjs'
2
+ import { FastifyRequest, FastifyReply } from '../../types/global'
3
+
4
+ export async function initialize(req: FastifyRequest, reply: FastifyReply) {
5
+ if (req.server['dataBaseManager'].isImplemented()) {
6
+ const tc = getTrackingConfigIfEnabled(req)
7
+ const allData = { ...req.parameters(), ...req.data() }
8
+
9
+ if (tc) {
10
+ try {
11
+ if (allData && tc.entity && tc.primaryKey && tc.primaryKey in allData) {
12
+ const key = allData[tc.primaryKey]
13
+ req.trackingData = await req.server['dataBaseManager'].retrieveBy(tc.entity, key)
14
+ log.trace(`Tracking changes: found id ${req.trackingData ? req.trackingData[tc.primaryKey] : null}`)
15
+ }
16
+ } catch (error) {
17
+ log.error(`Tracking changes: error on ${tc.code}`)
18
+ log.error(error)
19
+ }
20
+ }
21
+ }
22
+ }
23
+
24
+ export async function track(req: FastifyRequest, reply: FastifyReply, payload: any) {
25
+ if (req.server['dataBaseManager'].isImplemented()) {
26
+ const tc = getTrackingConfigIfEnabled(req)
27
+ if (tc) {
28
+ try {
29
+ const contents: any[] = []
30
+ const { entity, changeEntity } = tc
31
+ const userId = req.user?.getId()
32
+ const oldData = req.trackingData
33
+
34
+ const status =
35
+ req.method?.toUpperCase() === 'POST' ? 'create' : req.method?.toUpperCase() === 'DELETE' ? 'delete' : 'update'
36
+
37
+ const id =
38
+ tc.primaryKey && payload && tc.primaryKey in payload
39
+ ? payload[tc.primaryKey]
40
+ : tc.primaryKey && oldData && tc.primaryKey in oldData
41
+ ? oldData[tc.primaryKey]
42
+ : undefined
43
+
44
+ if (!id) {
45
+ log.error('Tracking changes: id / primary key not found')
46
+ return
47
+ }
48
+
49
+ let addChange = false
50
+ if (status === 'delete') {
51
+ addChange = true
52
+ } else {
53
+ ;(tc.fields?.includes || []).forEach((field) => {
54
+ const oldValue = oldData != null && field in oldData ? oldData[field] : undefined
55
+ const newValue = payload != null && field in payload ? payload[field] : undefined
56
+ if (isFieldChanged(oldValue, newValue) && newValue !== undefined) {
57
+ contents.push({ key: field, old: oldValue, new: newValue })
58
+ addChange = true
59
+ }
60
+ })
61
+ }
62
+
63
+ if (addChange) {
64
+ log.trace(`Tracking changes: add ${changeEntity} for ${entity}, ${id}, ${userId}, ${status}`)
65
+ await req.server['dataBaseManager'].addChange(entity, id, status, userId, contents, changeEntity)
66
+ }
67
+ } catch (error) {
68
+ log.error(`Tracking changes: error on ${tc.code}`)
69
+ log.error(error)
70
+ }
71
+ }
72
+ }
73
+ }
74
+
75
+ function getTrackingConfigIfEnabled(req) {
76
+ try {
77
+ const code = `${req.method?.toUpperCase()}::${req.routeOptions?.config?.url || req.routeConfig?.url || req.url}`
78
+ return code in global.tracking && global.tracking[code].enable ? { code, ...global.tracking[code] } : null
79
+ } catch (error) {
80
+ log.error(error)
81
+ }
82
+ }
83
+
84
+ function isFieldChanged(oldValue, newValue) {
85
+ if (oldValue instanceof Date || newValue instanceof Date) {
86
+ return !dayjs(oldValue).isSame(dayjs(newValue))
87
+ }
88
+
89
+ return oldValue != newValue
90
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcanicminds/backend",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "codename": "turin",
5
5
  "license": "MIT",
6
6
  "description": "The volcanic (minds) backend",
@@ -60,6 +60,7 @@
60
60
  "@fastify/swagger": "^8.10.1",
61
61
  "@fastify/swagger-ui": "^1.9.3",
62
62
  "@types/node": "^20.7.0",
63
+ "dayjs": "^1.11.10",
63
64
  "dotenv": "^16.3.1",
64
65
  "fastify": "^4.23.2",
65
66
  "glob": "^8.1.0",
package/types/global.d.ts CHANGED
@@ -74,6 +74,20 @@ export interface ConfiguredRoute {
74
74
  }
75
75
  }
76
76
 
77
+ export interface TrackChanges {
78
+ enable: boolean
79
+ method: string
80
+ path: string
81
+ entity: string
82
+ changeEntity: string
83
+ fields?: { includes: string[] } | null
84
+ primaryKey?: string | null
85
+ }
86
+
87
+ export interface TrackChangesList {
88
+ [option: string]: TrackChanges
89
+ }
90
+
77
91
  export interface UserManagement {
78
92
  isImplemented(): boolean
79
93
  isValidUser(data: any): boolean
@@ -115,6 +129,8 @@ export interface TokenManagement {
115
129
  export interface DataBaseManagement {
116
130
  isImplemented(): boolean
117
131
  synchronizeSchemas(): any | null
132
+ retrieveBy(entityName, entityId): any | null
133
+ addChange(entityName, entityId, status, userId, contents, changeEntity): any | null
118
134
  }
119
135
 
120
136
  declare module 'fastify' {
@@ -127,6 +143,7 @@ declare module 'fastify' {
127
143
  roles(): string[]
128
144
  hasRole(role: Role): boolean
129
145
  payloadSize?: number
146
+ trackingData?: any
130
147
  }
131
148
  export interface FastifyReply {
132
149
  payloadSize?: number
@@ -142,6 +159,7 @@ export interface FastifyRequest extends FastifyRequest {
142
159
  roles(): string[]
143
160
  hasRole(role: Role): boolean
144
161
  payloadSize?: number
162
+ trackingData?: any
145
163
  }
146
164
 
147
165
  export interface FastifyReply extends FastifyReply {
@@ -154,6 +172,7 @@ declare global {
154
172
  var log: any
155
173
  var server: any
156
174
  var roles: Roles
175
+ var tracking: TrackChangesList
157
176
  var connection: any
158
177
  var entity: any
159
178
  var repository: any