@volcanicminds/backend 0.8.2 → 0.9.1
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/.npmrc__ +3 -0
- package/README.md +129 -0
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/config/general.js +2 -1
- package/dist/lib/config/general.js.map +1 -1
- package/dist/lib/hooks/onRequest.js +48 -44
- package/dist/lib/hooks/onRequest.js.map +1 -1
- package/dist/lib/hooks/onResponse.js +2 -2
- package/dist/lib/hooks/onResponse.js.map +1 -1
- package/dist/lib/loader/general.js +2 -1
- package/dist/lib/loader/general.js.map +1 -1
- package/dist/lib/loader/router.js +40 -11
- package/dist/lib/loader/router.js.map +1 -1
- package/dist/package.json +21 -21
- package/index.ts +16 -1
- package/lib/config/general.ts +2 -1
- package/lib/hooks/onRequest.ts +55 -49
- package/lib/hooks/onResponse.ts +2 -2
- package/lib/loader/general.ts +2 -1
- package/lib/loader/router.ts +12 -6
- package/package.json +21 -21
- package/types/global.d.ts +4 -1
package/.npmrc__
ADDED
package/README.md
CHANGED
|
@@ -192,10 +192,31 @@ module.exports = [
|
|
|
192
192
|
name: 'compress',
|
|
193
193
|
enable: false,
|
|
194
194
|
options: {}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: 'multipart',
|
|
198
|
+
enable: false,
|
|
199
|
+
options: {}
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
name: 'rawBody',
|
|
203
|
+
enable: false,
|
|
204
|
+
options: {}
|
|
195
205
|
}
|
|
196
206
|
]
|
|
197
207
|
```
|
|
198
208
|
|
|
209
|
+
Here the plugins used:
|
|
210
|
+
|
|
211
|
+
```js
|
|
212
|
+
import cors from '@fastify/cors'
|
|
213
|
+
import helmet from '@fastify/helmet'
|
|
214
|
+
import compress from '@fastify/compress'
|
|
215
|
+
import rateLimit from '@fastify/rate-limit'
|
|
216
|
+
import multipart from '@fastify/multipart'
|
|
217
|
+
import rawBody from 'fastify-raw-body'
|
|
218
|
+
```
|
|
219
|
+
|
|
199
220
|
## Routes
|
|
200
221
|
|
|
201
222
|
Minimal setup (routes.ts):
|
|
@@ -542,3 +563,111 @@ Other properties common to both types of jobs are:
|
|
|
542
563
|
|
|
543
564
|
- The **async** property, if true, indicates that a task will be executed as an async function.
|
|
544
565
|
- The **preventOverrun** property, if true, prevents the second instance of a task from being started while the first one is still running.
|
|
566
|
+
|
|
567
|
+
## Raw Body
|
|
568
|
+
|
|
569
|
+
Sometimes, it’s useful to have the original raw body of the incoming request. For this purpose, the `rawBody` plugin is available out-of-the-box.
|
|
570
|
+
|
|
571
|
+
Under `config/plugins.ts`, modify your plugin configuration as follows to activate it:
|
|
572
|
+
|
|
573
|
+
```js
|
|
574
|
+
{
|
|
575
|
+
name: 'rawBody',
|
|
576
|
+
enable: true,
|
|
577
|
+
options: {}
|
|
578
|
+
}
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
Fot the options refers to (fastify-raw-body - github)[https://github.com/Eomm/fastify-raw-body] but for common use, you can configure it in this way:
|
|
582
|
+
|
|
583
|
+
```js
|
|
584
|
+
{
|
|
585
|
+
name: 'rawBody',
|
|
586
|
+
enable: true,
|
|
587
|
+
options: {
|
|
588
|
+
global: false, // adds the rawBody to every request. **Default is true**. If false, you need to enable it for specific routes.
|
|
589
|
+
runFirst: true, // get the body before any preParsing hook change/uncompress it. **Default false**
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
Normally, it's a good choice set **global** to `false`and **runFirst** to `true`.
|
|
595
|
+
|
|
596
|
+
Please, do not change the `field` value in the options above. The default is `rawBody`, and this field name will be used in each request.
|
|
597
|
+
|
|
598
|
+
### Warning
|
|
599
|
+
|
|
600
|
+
Setting `global: false` and then the route configuration { config: { rawBody: true } } will _save memory_ and _imporove perfromance_ of your server since the rawBody is a copy of the body and it will double the memory usage.
|
|
601
|
+
So use it only for the routes that you need to.
|
|
602
|
+
|
|
603
|
+
## Rate Limit
|
|
604
|
+
|
|
605
|
+
It is possible to enable rate limiting either globally or at the individual route level. All configuration and functionality are managed by the [Fastify Rate Limit](https://github.com/fastify/fastify-rate-limit) plugin.
|
|
606
|
+
|
|
607
|
+
At the global configuration level, you can set something like:
|
|
608
|
+
|
|
609
|
+
```js
|
|
610
|
+
// config/plugin.ts
|
|
611
|
+
{
|
|
612
|
+
name: 'rateLimit',
|
|
613
|
+
enable: true,
|
|
614
|
+
options: {
|
|
615
|
+
global: true, // default true
|
|
616
|
+
max: 40, // default 1000
|
|
617
|
+
timeWindow: 3000, // default 1000 * 60
|
|
618
|
+
cache: 10000, // default 5000
|
|
619
|
+
nameSpace: 'your-application-ratelimit-', // default is 'fastify-rate-limit-'
|
|
620
|
+
skipOnError: true // default false
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
While at the route level, if necessary, you can redefine or set different rate limits:
|
|
626
|
+
|
|
627
|
+
```js
|
|
628
|
+
// f.e. /api/example/routes.ts
|
|
629
|
+
{
|
|
630
|
+
method: 'GET',
|
|
631
|
+
path: '/test',
|
|
632
|
+
roles: [],
|
|
633
|
+
handler: 'example.test',
|
|
634
|
+
middlewares: [],
|
|
635
|
+
rateLimit: {
|
|
636
|
+
max: 10,
|
|
637
|
+
timeWindows: 20000 // milliseconds
|
|
638
|
+
},
|
|
639
|
+
config: {
|
|
640
|
+
title: 'Rate limit example',
|
|
641
|
+
description: 'Rate limit example',
|
|
642
|
+
response: {
|
|
643
|
+
200: { $ref: 'defaultResponse#' }
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
## rawBody on specific route
|
|
651
|
+
|
|
652
|
+
If you set **global** to `false`, you can enable the rawBody for a specific route (common use, hooks to validate Stripe signature). Alternatively, if you set **global** to `true` or leave global not specified/undefined, it will enable rawBody on all routes, and you can disable it for single route in the following way.
|
|
653
|
+
|
|
654
|
+
A simple note: in the example below, you can see rawBody enabled on the `/example` endpoint. You can also disable rawBody by setting it to `false` instead of `true`.
|
|
655
|
+
|
|
656
|
+
```js
|
|
657
|
+
// f.e. /api/example/routes.ts
|
|
658
|
+
{
|
|
659
|
+
method: 'GET',
|
|
660
|
+
path: '/',
|
|
661
|
+
roles: [],
|
|
662
|
+
handler: 'example.test',
|
|
663
|
+
middlewares: [],
|
|
664
|
+
config: {
|
|
665
|
+
title: 'How to use req.rawBody',
|
|
666
|
+
description: 'How to use req.rawBody',
|
|
667
|
+
rawBody: true,
|
|
668
|
+
response: {
|
|
669
|
+
200: { $ref: 'defaultResponse#' }
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
```
|
package/dist/index.js
CHANGED
|
@@ -188,7 +188,17 @@ const start = (decorators) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
188
188
|
const plugins = loaderPlugins.load();
|
|
189
189
|
(plugins === null || plugins === void 0 ? void 0 : plugins.rawBody) && (yield server.register(fastify_raw_body_1.default, plugins.rawBody || {}));
|
|
190
190
|
!loadApollo && (plugins === null || plugins === void 0 ? void 0 : plugins.helmet) && (yield server.register(helmet_1.default, plugins.helmet || {}));
|
|
191
|
-
(plugins === null || plugins === void 0 ? void 0 : plugins.rateLimit)
|
|
191
|
+
if (plugins === null || plugins === void 0 ? void 0 : plugins.rateLimit) {
|
|
192
|
+
yield server.register(rate_limit_1.default, plugins.rateLimit || {});
|
|
193
|
+
server.setNotFoundHandler({
|
|
194
|
+
preHandler: server.rateLimit({
|
|
195
|
+
max: 30,
|
|
196
|
+
timeWindow: 30000
|
|
197
|
+
})
|
|
198
|
+
}, function (req, reply) {
|
|
199
|
+
reply.code(404).send();
|
|
200
|
+
});
|
|
201
|
+
}
|
|
192
202
|
(plugins === null || plugins === void 0 ? void 0 : plugins.multipart) && (yield server.register(multipart_1.default, plugins.multipart || {}));
|
|
193
203
|
(plugins === null || plugins === void 0 ? void 0 : plugins.cors) && (yield server.register(cors_1.default, plugins.cors || {}));
|
|
194
204
|
(plugins === null || plugins === void 0 ? void 0 : plugins.compress) && (yield server.register(compress_1.default, plugins.compress || {}));
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;KACpB;CACF,CAAA"}
|
|
@@ -8,64 +8,68 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var _a;
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
const common_1 = require("../util/common");
|
|
14
|
+
const { embedded_auth = true } = ((_a = global.config) === null || _a === void 0 ? void 0 : _a.options) || {};
|
|
13
15
|
module.exports = (req, reply) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
16
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
15
17
|
log.i && (req.startedAt = new Date());
|
|
16
18
|
req.data = () => (0, common_1.getData)(req);
|
|
17
19
|
req.parameters = () => (0, common_1.getParams)(req);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
20
|
+
if (embedded_auth) {
|
|
21
|
+
req.roles = () => (req.user ? req.user.roles : [roles.public]);
|
|
22
|
+
req.hasRole = (r) => (req.user ? req.user.roles : [roles.public]).some((role) => role === (r === null || r === void 0 ? void 0 : r.code));
|
|
23
|
+
const auth = ((_a = req.headers) === null || _a === void 0 ? void 0 : _a.authorization) || '';
|
|
24
|
+
const cfg = ((_b = req.routeOptions) === null || _b === void 0 ? void 0 : _b.config) || req.routeConfig || {};
|
|
25
|
+
const [prefix, bearerToken] = auth.split(' ');
|
|
26
|
+
if (prefix === 'Bearer' && bearerToken != null) {
|
|
27
|
+
let user = null;
|
|
28
|
+
let token = null;
|
|
29
|
+
try {
|
|
30
|
+
const tokenData = reply.server.jwt.verify(bearerToken);
|
|
31
|
+
user = yield req.server['userManager'].retrieveUserByExternalId(tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub);
|
|
32
|
+
if (!user && req.server['tokenManager'].isImplemented()) {
|
|
33
|
+
token = yield req.server['tokenManager'].retrieveTokenByExternalId(tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub);
|
|
34
|
+
}
|
|
35
|
+
if (!user && !token) {
|
|
36
|
+
return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_FOUND', message: 'User not found' });
|
|
37
|
+
}
|
|
38
|
+
if (user) {
|
|
39
|
+
const isValid = yield req.server['userManager'].isValidUser(user);
|
|
40
|
+
if (!isValid) {
|
|
41
|
+
return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_VALID', message: 'User not valid' });
|
|
42
|
+
}
|
|
43
|
+
req.user = user;
|
|
44
|
+
}
|
|
45
|
+
if (token) {
|
|
46
|
+
const isValid = yield req.server['tokenManager'].isValidToken(token);
|
|
47
|
+
if (!isValid) {
|
|
48
|
+
return reply.status(404).send({ statusCode: 404, code: 'TOKEN_NOT_VALID', message: 'Token not valid' });
|
|
49
|
+
}
|
|
50
|
+
req.token = token;
|
|
40
51
|
}
|
|
41
|
-
req.user = user;
|
|
42
52
|
}
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
if (!
|
|
46
|
-
|
|
53
|
+
catch (error) {
|
|
54
|
+
const isRoutePublic = (cfg.requiredRoles || []).some((role) => role.code === roles.public.code);
|
|
55
|
+
if (!isRoutePublic) {
|
|
56
|
+
throw error;
|
|
47
57
|
}
|
|
48
|
-
req.token = token;
|
|
49
58
|
}
|
|
50
59
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
60
|
+
if (((_c = cfg.requiredRoles) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
|
61
|
+
const { method = '', url = '', requiredRoles } = cfg;
|
|
62
|
+
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)) || [
|
|
63
|
+
((_g = roles.public) === null || _g === void 0 ? void 0 : _g.code) || 'public'
|
|
64
|
+
];
|
|
65
|
+
const resolvedRoles = authRoles.length > 0 ? requiredRoles.filter((r) => authRoles.includes(r.code)) : [];
|
|
66
|
+
if (!resolvedRoles.length) {
|
|
67
|
+
log.w && log.warn(`Not allowed to call ${method.toUpperCase()} ${url}`);
|
|
68
|
+
return reply
|
|
69
|
+
.status(403)
|
|
70
|
+
.send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to call this route' });
|
|
54
71
|
}
|
|
55
72
|
}
|
|
56
73
|
}
|
|
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'
|
|
61
|
-
];
|
|
62
|
-
const resolvedRoles = authRoles.length > 0 ? requiredRoles.filter((r) => authRoles.includes(r.code)) : [];
|
|
63
|
-
if (!resolvedRoles.length) {
|
|
64
|
-
log.w && log.warn(`Not allowed to call ${method.toUpperCase()} ${url}`);
|
|
65
|
-
return reply
|
|
66
|
-
.status(403)
|
|
67
|
-
.send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to call this route' });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
74
|
});
|
|
71
75
|
//# sourceMappingURL=onRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ module.exports = (req, reply) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
19
19
|
const replySize = reply.payloadSize > 0 ? ` res ${reply.payloadSize}` : '';
|
|
20
20
|
extraMessage += `[${reqSize}${replySize} bytes]`;
|
|
21
21
|
}
|
|
22
|
-
const message = `${req.method} ${req.url} ${reply.statusCode} ${extraMessage}
|
|
23
|
-
reply.statusCode < 300 ? log.info(message) : reply.statusCode < 400 ? log.warn(message) : log.error(message);
|
|
22
|
+
const message = () => `${req.method} ${req.url} ${reply.statusCode} ${extraMessage}`.trim();
|
|
23
|
+
reply.statusCode < 300 ? log.info(message()) : reply.statusCode < 400 ? log.warn(message()) : log.error(message());
|
|
24
24
|
});
|
|
25
25
|
//# sourceMappingURL=onResponse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onResponse.js","sourceRoot":"","sources":["../../../lib/hooks/onResponse.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,MAAM,CAAC,OAAO,GAAG,CAAO,GAAG,EAAE,KAAK,EAAE,EAAE;IACpC,IAAI,YAAY,GAAW,EAAE,CAAA;IAC7B,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;QACtE,YAAY,GAAG,IAAI,OAAO,KAAK,CAAA;IACjC,CAAC;IACD,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACV,MAAM,OAAO,GAAW,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC,EAAE,CAAA;QACrD,MAAM,SAAS,GAAW,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClF,YAAY,IAAI,IAAI,OAAO,GAAG,SAAS,SAAS,CAAA;IAClD,CAAC;IAED,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"onResponse.js","sourceRoot":"","sources":["../../../lib/hooks/onResponse.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,MAAM,CAAC,OAAO,GAAG,CAAO,GAAG,EAAE,KAAK,EAAE,EAAE;IACpC,IAAI,YAAY,GAAW,EAAE,CAAA;IAC7B,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;QACtE,YAAY,GAAG,IAAI,OAAO,KAAK,CAAA;IACjC,CAAC;IACD,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACV,MAAM,OAAO,GAAW,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC,EAAE,CAAA;QACrD,MAAM,SAAS,GAAW,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClF,YAAY,IAAI,IAAI,OAAO,GAAG,SAAS,SAAS,CAAA;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC,IAAI,EAAE,CAAA;IAC3F,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;AACpH,CAAC,CAAA,CAAA"}
|
|
@@ -9,7 +9,8 @@ function load() {
|
|
|
9
9
|
enable: true,
|
|
10
10
|
options: {
|
|
11
11
|
reset_external_id_on_login: false,
|
|
12
|
-
scheduler: false
|
|
12
|
+
scheduler: false,
|
|
13
|
+
embedded_auth: true
|
|
13
14
|
}
|
|
14
15
|
};
|
|
15
16
|
const patterns = (0, path_1.normalizePatterns)(['..', 'config', 'general.{ts,js}'], ['src', 'config', 'general.{ts,js}']);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/loader/general.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/loader/general.ts"],"names":[],"mappings":";;AAIA,oBA6BC;AAhCD,uCAAgD;AAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,SAAgB,IAAI;IAClB,MAAM,aAAa,GAAkB;QACnC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,0BAA0B,EAAE,KAAK;YACjC,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,IAAI;SACpB;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAC7G,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,MAAM,GAAkB,OAAO,CAAC,CAAC,CAAC,CAAA;YAExC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;gBACpC,aAAa,CAAC,OAAO,mCAChB,aAAa,CAAC,OAAO,GACrB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAC1B,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAClD,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
|
@@ -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) {
|
|
@@ -34,7 +57,7 @@ function load() {
|
|
|
34
57
|
log.t && log.trace(`* Add ${routes.length} routes from ${file}`);
|
|
35
58
|
routes.forEach((route, index) => {
|
|
36
59
|
const errors = [];
|
|
37
|
-
const { method: methodCase, path: pathName = '/', handler, config = {}, middlewares = [],
|
|
60
|
+
const { method: methodCase, path: pathName = '/', handler, roles: rs = [], config = {}, middlewares = [], rateLimit } = route;
|
|
38
61
|
const rsp = !rs.length ? [roles.public] : rs;
|
|
39
62
|
let requiredRoles = [];
|
|
40
63
|
try {
|
|
@@ -104,6 +127,7 @@ function load() {
|
|
|
104
127
|
roles: requiredRoles,
|
|
105
128
|
enable,
|
|
106
129
|
rawBody,
|
|
130
|
+
rateLimit,
|
|
107
131
|
base,
|
|
108
132
|
file: path.join(base, defaultConfig.controller || 'controller', handlerParts[0]),
|
|
109
133
|
func: handlerParts[1],
|
|
@@ -162,21 +186,26 @@ function loadMiddlewares(base_1) {
|
|
|
162
186
|
}
|
|
163
187
|
function apply(server, routes) {
|
|
164
188
|
log.t && log.trace(`Apply ${routes.length} routes to server with pid ${process.pid}`);
|
|
165
|
-
routes.forEach((
|
|
166
|
-
if (enable) {
|
|
189
|
+
routes.forEach((route) => __awaiter(this, void 0, void 0, function* () {
|
|
190
|
+
if (route === null || route === void 0 ? void 0 : route.enable) {
|
|
191
|
+
const { handler, method, path, middlewares, roles, rawBody, rateLimit, base, file, func, doc } = route;
|
|
167
192
|
log.t && log.trace(`* Add path ${method} ${path} on handle ${handler}`);
|
|
168
193
|
const midds = yield loadMiddlewares(base, middlewares);
|
|
169
194
|
server.route(Object.assign(Object.assign({ method: method, path: path, schema: doc }, midds), { config: {
|
|
170
195
|
requiredRoles: roles || [],
|
|
171
|
-
rawBody: rawBody || false
|
|
196
|
+
rawBody: rawBody || false,
|
|
197
|
+
rateLimit: rateLimit || undefined
|
|
172
198
|
}, handler: function (req, reply) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
199
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
try {
|
|
201
|
+
const module = yield Promise.resolve(`${file}`).then(s => __importStar(require(s)));
|
|
202
|
+
return yield module[func](req, reply);
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
log.e && log.error(`Cannot find ${file} or method ${func}: ${err}`);
|
|
206
|
+
return reply.code(500).send(`Invalid handler ${handler}`);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
180
209
|
} }));
|
|
181
210
|
}
|
|
182
211
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../lib/loader/router.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.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"codename": "turin",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "The volcanic (minds) backend",
|
|
@@ -51,43 +51,43 @@
|
|
|
51
51
|
"upgrade-pkg": "yarn npm-upgrade"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@apollo/server": "^4.
|
|
54
|
+
"@apollo/server": "^4.11.0",
|
|
55
55
|
"@as-integrations/fastify": "^2.1.1",
|
|
56
|
-
"@fastify/compress": "^7.0.
|
|
56
|
+
"@fastify/compress": "^7.0.3",
|
|
57
57
|
"@fastify/cors": "^9.0.1",
|
|
58
58
|
"@fastify/helmet": "^11.1.1",
|
|
59
|
-
"@fastify/jwt": "^8.0.
|
|
60
|
-
"@fastify/multipart": "^8.
|
|
59
|
+
"@fastify/jwt": "^8.0.1",
|
|
60
|
+
"@fastify/multipart": "^8.3.0",
|
|
61
61
|
"@fastify/rate-limit": "^9.1.0",
|
|
62
62
|
"@fastify/schedule": "^4.1.1",
|
|
63
|
-
"@fastify/swagger": "^8.
|
|
64
|
-
"@fastify/swagger-ui": "^3.
|
|
65
|
-
"@types/node": "^20.
|
|
66
|
-
"dayjs": "^1.11.
|
|
63
|
+
"@fastify/swagger": "^8.15.0",
|
|
64
|
+
"@fastify/swagger-ui": "^3.1.0",
|
|
65
|
+
"@types/node": "^20.16.2",
|
|
66
|
+
"dayjs": "^1.11.13",
|
|
67
67
|
"dotenv": "^16.4.5",
|
|
68
|
-
"fastify": "^4.
|
|
68
|
+
"fastify": "^4.28.1",
|
|
69
69
|
"fastify-raw-body": "^4.3.0",
|
|
70
|
-
"glob": "^10.
|
|
71
|
-
"graphql": "^16.
|
|
70
|
+
"glob": "^10.4.5",
|
|
71
|
+
"graphql": "^16.9.0",
|
|
72
72
|
"i18n": "^0.15.1",
|
|
73
73
|
"lodash": "^4.17.21",
|
|
74
|
-
"nanoid": "^5.0.
|
|
75
|
-
"object-sizeof": "^2.6.
|
|
76
|
-
"pino": "^
|
|
77
|
-
"pino-pretty": "^
|
|
74
|
+
"nanoid": "^5.0.7",
|
|
75
|
+
"object-sizeof": "^2.6.5",
|
|
76
|
+
"pino": "^9.3.2",
|
|
77
|
+
"pino-pretty": "^11.2.2",
|
|
78
78
|
"root-require": "^0.3.1",
|
|
79
|
-
"semver": "^7.6.
|
|
79
|
+
"semver": "^7.6.3",
|
|
80
80
|
"toad-scheduler": "^3.0.1"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@types/mocha": "^10.0.
|
|
83
|
+
"@types/mocha": "^10.0.7",
|
|
84
84
|
"cross-env": "^7.0.3",
|
|
85
85
|
"expect": "^29.7.0",
|
|
86
|
-
"mocha": "^10.3
|
|
87
|
-
"nodemon": "^3.1.
|
|
86
|
+
"mocha": "^10.7.3",
|
|
87
|
+
"nodemon": "^3.1.4",
|
|
88
88
|
"npm-upgrade": "^3.1.0",
|
|
89
89
|
"ts-node": "^10.9.2",
|
|
90
|
-
"typescript": "^5.
|
|
90
|
+
"typescript": "^5.5.4"
|
|
91
91
|
},
|
|
92
92
|
"repository": {
|
|
93
93
|
"type": "git",
|
package/index.ts
CHANGED
|
@@ -181,7 +181,22 @@ const start = async (decorators) => {
|
|
|
181
181
|
// Helmet is not usable with Apollo Server
|
|
182
182
|
plugins?.rawBody && (await server.register(rawBody, plugins.rawBody || {}))
|
|
183
183
|
!loadApollo && plugins?.helmet && (await server.register(helmet, plugins.helmet || {}))
|
|
184
|
-
|
|
184
|
+
|
|
185
|
+
if (plugins?.rateLimit) {
|
|
186
|
+
await server.register(rateLimit, plugins.rateLimit || {})
|
|
187
|
+
server.setNotFoundHandler(
|
|
188
|
+
{
|
|
189
|
+
preHandler: server.rateLimit({
|
|
190
|
+
max: 30,
|
|
191
|
+
timeWindow: 30000
|
|
192
|
+
})
|
|
193
|
+
},
|
|
194
|
+
function (req, reply) {
|
|
195
|
+
reply.code(404).send()
|
|
196
|
+
}
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
|
|
185
200
|
plugins?.multipart && (await server.register(multipart, plugins.multipart || {}))
|
|
186
201
|
plugins?.cors && (await server.register(cors, plugins.cors || {}))
|
|
187
202
|
plugins?.compress && (await server.register(compress, plugins.compress || {}))
|
package/lib/config/general.ts
CHANGED
package/lib/hooks/onRequest.ts
CHANGED
|
@@ -1,68 +1,74 @@
|
|
|
1
1
|
import { getParams, getData } from '../util/common'
|
|
2
2
|
import { AuthenticatedUser, AuthenticatedToken, Role } from '../../types/global'
|
|
3
3
|
|
|
4
|
+
const { embedded_auth = true } = global.config?.options || {}
|
|
5
|
+
|
|
4
6
|
module.exports = async (req, reply) => {
|
|
5
|
-
// request enrichment
|
|
6
7
|
log.i && (req.startedAt = new Date())
|
|
8
|
+
|
|
9
|
+
// request enrichment
|
|
7
10
|
req.data = () => getData(req)
|
|
8
11
|
req.parameters = () => getParams(req)
|
|
9
|
-
req.roles = () => (req.user ? req.user.roles : [roles.public])
|
|
10
|
-
req.hasRole = (r: Role) => (req.user ? req.user.roles : [roles.public]).some((role) => role === r?.code)
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const [prefix, bearerToken] = auth.split(' ')
|
|
16
|
-
const isRoutePublic = (cfg.requiredRoles || []).some((role: Role) => role.code === roles.public.code)
|
|
13
|
+
if (embedded_auth) {
|
|
14
|
+
req.roles = () => (req.user ? req.user.roles : [roles.public])
|
|
15
|
+
req.hasRole = (r: Role) => (req.user ? req.user.roles : [roles.public]).some((role) => role === r?.code)
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
// authorization check
|
|
18
|
+
const auth = req.headers?.authorization || ''
|
|
19
|
+
const cfg = req.routeOptions?.config || req.routeConfig || {}
|
|
20
|
+
const [prefix, bearerToken] = auth.split(' ')
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (user) {
|
|
32
|
-
const isValid = await req.server['userManager'].isValidUser(user)
|
|
33
|
-
if (!isValid) {
|
|
34
|
-
return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_VALID', message: 'User not valid' })
|
|
22
|
+
if (prefix === 'Bearer' && bearerToken != null) {
|
|
23
|
+
let user: null | AuthenticatedUser = null
|
|
24
|
+
let token: null | AuthenticatedToken = null
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
const tokenData = reply.server.jwt.verify(bearerToken)
|
|
28
|
+
user = await req.server['userManager'].retrieveUserByExternalId(tokenData?.sub)
|
|
29
|
+
if (!user && req.server['tokenManager'].isImplemented()) {
|
|
30
|
+
token = await req.server['tokenManager'].retrieveTokenByExternalId(tokenData?.sub)
|
|
35
31
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
if (!user && !token) {
|
|
33
|
+
return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_FOUND', message: 'User not found' })
|
|
34
|
+
}
|
|
35
|
+
if (user) {
|
|
36
|
+
const isValid = await req.server['userManager'].isValidUser(user)
|
|
37
|
+
if (!isValid) {
|
|
38
|
+
return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_VALID', message: 'User not valid' })
|
|
39
|
+
}
|
|
40
|
+
// ok, we have the full user here
|
|
41
|
+
req.user = user
|
|
42
|
+
}
|
|
43
|
+
if (token) {
|
|
44
|
+
const isValid = await req.server['tokenManager'].isValidToken(token)
|
|
45
|
+
if (!isValid) {
|
|
46
|
+
return reply.status(404).send({ statusCode: 404, code: 'TOKEN_NOT_VALID', message: 'Token not valid' })
|
|
47
|
+
}
|
|
48
|
+
// ok, we have the full user here
|
|
49
|
+
req.token = token
|
|
50
|
+
}
|
|
51
|
+
} catch (error) {
|
|
52
|
+
const isRoutePublic = (cfg.requiredRoles || []).some((role: Role) => role.code === roles.public.code)
|
|
53
|
+
if (!isRoutePublic) {
|
|
54
|
+
throw error
|
|
43
55
|
}
|
|
44
|
-
// ok, we have the full user here
|
|
45
|
-
req.token = token
|
|
46
|
-
}
|
|
47
|
-
} catch (error) {
|
|
48
|
-
if (!isRoutePublic) {
|
|
49
|
-
throw error
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
|
-
}
|
|
53
58
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
if (cfg.requiredRoles?.length > 0) {
|
|
60
|
+
const { method = '', url = '', requiredRoles } = cfg
|
|
61
|
+
const authRoles: string[] = ((req.user?.roles || req.token?.roles)?.map((code) => code) as string[]) || [
|
|
62
|
+
roles.public?.code || 'public'
|
|
63
|
+
]
|
|
64
|
+
const resolvedRoles = authRoles.length > 0 ? requiredRoles.filter((r) => authRoles.includes(r.code)) : []
|
|
60
65
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
if (!resolvedRoles.length) {
|
|
67
|
+
log.w && log.warn(`Not allowed to call ${method.toUpperCase()} ${url}`)
|
|
68
|
+
return reply
|
|
69
|
+
.status(403)
|
|
70
|
+
.send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to call this route' })
|
|
71
|
+
}
|
|
66
72
|
}
|
|
67
73
|
}
|
|
68
74
|
}
|
package/lib/hooks/onResponse.ts
CHANGED
|
@@ -10,6 +10,6 @@ module.exports = async (req, reply) => {
|
|
|
10
10
|
extraMessage += `[${reqSize}${replySize} bytes]`
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
const message
|
|
14
|
-
reply.statusCode < 300 ? log.info(message) : reply.statusCode < 400 ? log.warn(message) : log.error(message)
|
|
13
|
+
const message = () => `${req.method} ${req.url} ${reply.statusCode} ${extraMessage}`.trim()
|
|
14
|
+
reply.statusCode < 300 ? log.info(message()) : reply.statusCode < 400 ? log.warn(message()) : log.error(message())
|
|
15
15
|
}
|
package/lib/loader/general.ts
CHANGED
package/lib/loader/router.ts
CHANGED
|
@@ -31,9 +31,10 @@ export function load(): ConfiguredRoute[] {
|
|
|
31
31
|
method: methodCase,
|
|
32
32
|
path: pathName = '/',
|
|
33
33
|
handler,
|
|
34
|
+
roles: rs = [],
|
|
34
35
|
config = {} as RouteConfig,
|
|
35
36
|
middlewares = [],
|
|
36
|
-
|
|
37
|
+
rateLimit
|
|
37
38
|
} = route
|
|
38
39
|
|
|
39
40
|
const rsp = !rs.length ? [roles.public] : rs
|
|
@@ -147,6 +148,7 @@ export function load(): ConfiguredRoute[] {
|
|
|
147
148
|
roles: requiredRoles,
|
|
148
149
|
enable,
|
|
149
150
|
rawBody,
|
|
151
|
+
rateLimit,
|
|
150
152
|
base,
|
|
151
153
|
file: path.join(base, defaultConfig.controller || 'controller', handlerParts[0]),
|
|
152
154
|
func: handlerParts[1],
|
|
@@ -210,8 +212,10 @@ async function loadMiddlewares(base: string, middlewares: string[] = []) {
|
|
|
210
212
|
export function apply(server: any, routes: ConfiguredRoute[]): void {
|
|
211
213
|
log.t && log.trace(`Apply ${routes.length} routes to server with pid ${process.pid}`)
|
|
212
214
|
|
|
213
|
-
routes.forEach(async (
|
|
214
|
-
if (enable) {
|
|
215
|
+
routes.forEach(async (route) => {
|
|
216
|
+
if (route?.enable) {
|
|
217
|
+
const { handler, method, path, middlewares, roles, rawBody, rateLimit, base, file, func, doc } = route
|
|
218
|
+
|
|
215
219
|
log.t && log.trace(`* Add path ${method} ${path} on handle ${handler}`)
|
|
216
220
|
const midds = await loadMiddlewares(base, middlewares)
|
|
217
221
|
|
|
@@ -222,11 +226,13 @@ export function apply(server: any, routes: ConfiguredRoute[]): void {
|
|
|
222
226
|
...midds,
|
|
223
227
|
config: {
|
|
224
228
|
requiredRoles: roles || [],
|
|
225
|
-
rawBody: rawBody || false
|
|
229
|
+
rawBody: rawBody || false,
|
|
230
|
+
rateLimit: rateLimit || undefined
|
|
226
231
|
},
|
|
227
|
-
handler: function (req: FastifyRequest, reply: FastifyReply) {
|
|
232
|
+
handler: async function (req: FastifyRequest, reply: FastifyReply) {
|
|
228
233
|
try {
|
|
229
|
-
|
|
234
|
+
const module = await import(file)
|
|
235
|
+
return await module[func](req, reply)
|
|
230
236
|
} catch (err) {
|
|
231
237
|
log.e && log.error(`Cannot find ${file} or method ${func}: ${err}`)
|
|
232
238
|
return reply.code(500).send(`Invalid handler ${handler}`)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volcanicminds/backend",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"codename": "turin",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "The volcanic (minds) backend",
|
|
@@ -51,43 +51,43 @@
|
|
|
51
51
|
"upgrade-pkg": "yarn npm-upgrade"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@apollo/server": "^4.
|
|
54
|
+
"@apollo/server": "^4.11.0",
|
|
55
55
|
"@as-integrations/fastify": "^2.1.1",
|
|
56
|
-
"@fastify/compress": "^7.0.
|
|
56
|
+
"@fastify/compress": "^7.0.3",
|
|
57
57
|
"@fastify/cors": "^9.0.1",
|
|
58
58
|
"@fastify/helmet": "^11.1.1",
|
|
59
|
-
"@fastify/jwt": "^8.0.
|
|
60
|
-
"@fastify/multipart": "^8.
|
|
59
|
+
"@fastify/jwt": "^8.0.1",
|
|
60
|
+
"@fastify/multipart": "^8.3.0",
|
|
61
61
|
"@fastify/rate-limit": "^9.1.0",
|
|
62
62
|
"@fastify/schedule": "^4.1.1",
|
|
63
|
-
"@fastify/swagger": "^8.
|
|
64
|
-
"@fastify/swagger-ui": "^3.
|
|
65
|
-
"@types/node": "^20.
|
|
66
|
-
"dayjs": "^1.11.
|
|
63
|
+
"@fastify/swagger": "^8.15.0",
|
|
64
|
+
"@fastify/swagger-ui": "^3.1.0",
|
|
65
|
+
"@types/node": "^20.16.2",
|
|
66
|
+
"dayjs": "^1.11.13",
|
|
67
67
|
"dotenv": "^16.4.5",
|
|
68
|
-
"fastify": "^4.
|
|
68
|
+
"fastify": "^4.28.1",
|
|
69
69
|
"fastify-raw-body": "^4.3.0",
|
|
70
|
-
"glob": "^10.
|
|
71
|
-
"graphql": "^16.
|
|
70
|
+
"glob": "^10.4.5",
|
|
71
|
+
"graphql": "^16.9.0",
|
|
72
72
|
"i18n": "^0.15.1",
|
|
73
73
|
"lodash": "^4.17.21",
|
|
74
|
-
"nanoid": "^5.0.
|
|
75
|
-
"object-sizeof": "^2.6.
|
|
76
|
-
"pino": "^
|
|
77
|
-
"pino-pretty": "^
|
|
74
|
+
"nanoid": "^5.0.7",
|
|
75
|
+
"object-sizeof": "^2.6.5",
|
|
76
|
+
"pino": "^9.3.2",
|
|
77
|
+
"pino-pretty": "^11.2.2",
|
|
78
78
|
"root-require": "^0.3.1",
|
|
79
|
-
"semver": "^7.6.
|
|
79
|
+
"semver": "^7.6.3",
|
|
80
80
|
"toad-scheduler": "^3.0.1"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@types/mocha": "^10.0.
|
|
83
|
+
"@types/mocha": "^10.0.7",
|
|
84
84
|
"cross-env": "^7.0.3",
|
|
85
85
|
"expect": "^29.7.0",
|
|
86
|
-
"mocha": "^10.3
|
|
87
|
-
"nodemon": "^3.1.
|
|
86
|
+
"mocha": "^10.7.3",
|
|
87
|
+
"nodemon": "^3.1.4",
|
|
88
88
|
"npm-upgrade": "^3.1.0",
|
|
89
89
|
"ts-node": "^10.9.2",
|
|
90
|
-
"typescript": "^5.
|
|
90
|
+
"typescript": "^5.5.4"
|
|
91
91
|
},
|
|
92
92
|
"repository": {
|
|
93
93
|
"type": "git",
|
package/types/global.d.ts
CHANGED
|
@@ -48,8 +48,9 @@ export interface Route {
|
|
|
48
48
|
path: string
|
|
49
49
|
handler: string
|
|
50
50
|
roles: Role[]
|
|
51
|
-
config?: RouteConfig
|
|
52
51
|
middlewares: string[]
|
|
52
|
+
config?: RouteConfig
|
|
53
|
+
rateLimit?: any
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
export interface GeneralConfig {
|
|
@@ -58,6 +59,7 @@ export interface GeneralConfig {
|
|
|
58
59
|
options: {
|
|
59
60
|
reset_external_id_on_login: boolean
|
|
60
61
|
scheduler: boolean
|
|
62
|
+
embedded_auth: boolean
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
|
|
@@ -88,6 +90,7 @@ export interface ConfiguredRoute {
|
|
|
88
90
|
path: string
|
|
89
91
|
handler: any
|
|
90
92
|
rawBody: boolean
|
|
93
|
+
rateLimit: any
|
|
91
94
|
file: string
|
|
92
95
|
func: any
|
|
93
96
|
base: string
|