@volcanicminds/backend 2.2.20 → 2.3.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.
Files changed (61) hide show
  1. package/README.md +30 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +12 -169
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/api/auth/controller/auth.d.ts +3 -9
  6. package/dist/lib/api/auth/controller/auth.d.ts.map +1 -1
  7. package/dist/lib/api/auth/controller/auth.js +58 -75
  8. package/dist/lib/api/auth/controller/auth.js.map +1 -1
  9. package/dist/lib/api/auth/routes.d.ts +0 -45
  10. package/dist/lib/api/auth/routes.d.ts.map +1 -1
  11. package/dist/lib/api/auth/routes.js +15 -32
  12. package/dist/lib/api/auth/routes.js.map +1 -1
  13. package/dist/lib/api/tool/controller/tool.d.ts.map +1 -1
  14. package/dist/lib/api/tool/controller/tool.js +4 -0
  15. package/dist/lib/api/tool/controller/tool.js.map +1 -1
  16. package/dist/lib/api/users/controller/user.d.ts +10 -1
  17. package/dist/lib/api/users/controller/user.d.ts.map +1 -1
  18. package/dist/lib/api/users/controller/user.js +56 -2
  19. package/dist/lib/api/users/controller/user.js.map +1 -1
  20. package/dist/lib/api/users/routes.d.ts +67 -0
  21. package/dist/lib/api/users/routes.d.ts.map +1 -1
  22. package/dist/lib/api/users/routes.js +55 -2
  23. package/dist/lib/api/users/routes.js.map +1 -1
  24. package/dist/lib/config/general.d.ts +7 -0
  25. package/dist/lib/config/general.d.ts.map +1 -1
  26. package/dist/lib/config/general.js +8 -1
  27. package/dist/lib/config/general.js.map +1 -1
  28. package/dist/lib/config/plugins.d.ts +17 -0
  29. package/dist/lib/config/plugins.d.ts.map +1 -1
  30. package/dist/lib/config/plugins.js +8 -0
  31. package/dist/lib/config/plugins.js.map +1 -1
  32. package/dist/lib/defaults/managers.d.ts +8 -0
  33. package/dist/lib/defaults/managers.d.ts.map +1 -0
  34. package/dist/lib/defaults/managers.js +71 -0
  35. package/dist/lib/defaults/managers.js.map +1 -0
  36. package/dist/lib/hooks/onRequest.d.ts.map +1 -1
  37. package/dist/lib/hooks/onRequest.js +73 -3
  38. package/dist/lib/hooks/onRequest.js.map +1 -1
  39. package/dist/lib/hooks/onResponse.d.ts.map +1 -1
  40. package/dist/lib/hooks/onResponse.js +5 -0
  41. package/dist/lib/hooks/onResponse.js.map +1 -1
  42. package/dist/lib/loader/general.d.ts.map +1 -1
  43. package/dist/lib/loader/general.js +6 -1
  44. package/dist/lib/loader/general.js.map +1 -1
  45. package/dist/lib/loader/tenant.d.ts +3 -0
  46. package/dist/lib/loader/tenant.d.ts.map +1 -0
  47. package/dist/lib/loader/tenant.js +61 -0
  48. package/dist/lib/loader/tenant.js.map +1 -0
  49. package/lib/api/auth/controller/auth.ts +66 -82
  50. package/lib/api/auth/routes.ts +18 -33
  51. package/lib/api/tool/controller/tool.ts +5 -0
  52. package/lib/api/users/controller/user.ts +69 -2
  53. package/lib/api/users/routes.ts +58 -2
  54. package/lib/config/general.ts +8 -1
  55. package/lib/config/plugins.ts +8 -0
  56. package/lib/defaults/managers.ts +88 -0
  57. package/lib/hooks/onRequest.ts +92 -4
  58. package/lib/hooks/onResponse.ts +6 -0
  59. package/lib/loader/general.ts +6 -1
  60. package/lib/loader/tenant.ts +79 -0
  61. package/package.json +2 -1
@@ -69,7 +69,33 @@ export async function isAdmin(req, reply) {
69
69
  const user = req.user;
70
70
  return reply.send({ isAdmin: user?.getId() && req.hasRole(roles.admin) });
71
71
  }
72
- export async function resetMfa(req, reply) {
72
+ export async function block(req, reply) {
73
+ if (!req.server['userManager'].isImplemented()) {
74
+ throw new Error('Not implemented');
75
+ }
76
+ if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
77
+ return reply.status(403).send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to block a user' });
78
+ }
79
+ const { id: userId } = req.parameters();
80
+ const { reason } = req.data();
81
+ let user = await req.server['userManager'].blockUserById(userId, reason, req.runner);
82
+ user = await req.server['userManager'].resetExternalId(user.getId(), req.runner);
83
+ return { ok: !!user.getId() };
84
+ }
85
+ export async function unblock(req, reply) {
86
+ if (!req.server['userManager'].isImplemented()) {
87
+ throw new Error('Not implemented');
88
+ }
89
+ if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
90
+ return reply
91
+ .status(403)
92
+ .send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to unblock a user' });
93
+ }
94
+ const { id: userId } = req.parameters();
95
+ const user = await req.server['userManager'].unblockUserById(userId, req.runner);
96
+ return { ok: !!user.getId() };
97
+ }
98
+ export async function resetMfaByAdmin(req, reply) {
73
99
  const { id } = req.parameters();
74
100
  if (!req.hasRole(roles.admin)) {
75
101
  return reply.status(403).send(new Error('Only admins can reset MFA'));
@@ -78,7 +104,7 @@ export async function resetMfa(req, reply) {
78
104
  return reply.status(400).send(new Error('Missing user id'));
79
105
  }
80
106
  try {
81
- await req.server['userManager'].disableMfa(id);
107
+ await req.server['userManager'].disableMfa(id, req.runner);
82
108
  return { ok: true };
83
109
  }
84
110
  catch (error) {
@@ -86,4 +112,32 @@ export async function resetMfa(req, reply) {
86
112
  return reply.status(500).send(new Error('Failed to reset MFA'));
87
113
  }
88
114
  }
115
+ export async function resetPasswordByAdmin(req, reply) {
116
+ if (config.options?.allow_admin_change_password_users !== true) {
117
+ return reply.status(404).send();
118
+ }
119
+ if (!req.hasRole(roles.admin)) {
120
+ return reply.status(403).send(new Error('Only admins can reset user passwords'));
121
+ }
122
+ const { id } = req.parameters();
123
+ if (!id) {
124
+ return reply.status(400).send(new Error('Missing user id'));
125
+ }
126
+ const { password } = req.data();
127
+ if (!password) {
128
+ return reply.status(400).send(new Error('Missing password in request body'));
129
+ }
130
+ try {
131
+ const user = await req.server['userManager'].retrieveUserById(id);
132
+ if (!user) {
133
+ return reply.status(404).send(new Error('User not found'));
134
+ }
135
+ await req.server['userManager'].resetPassword(user, password);
136
+ return { ok: true };
137
+ }
138
+ catch (error) {
139
+ req.log.error(error);
140
+ return reply.status(500).send(new Error('Failed to reset password'));
141
+ }
142
+ }
89
143
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,9 @@ declare const _default: {
112
112
  };
113
113
  body: {
114
114
  $ref: string;
115
+ type?: undefined;
116
+ required?: undefined;
117
+ properties?: undefined;
115
118
  };
116
119
  response: {
117
120
  200: {
@@ -134,6 +137,9 @@ declare const _default: {
134
137
  description: string;
135
138
  body: {
136
139
  $ref: string;
140
+ type?: undefined;
141
+ required?: undefined;
142
+ properties?: undefined;
137
143
  };
138
144
  response: {
139
145
  200: {
@@ -167,6 +173,34 @@ declare const _default: {
167
173
  params?: undefined;
168
174
  body?: undefined;
169
175
  };
176
+ } | {
177
+ method: string;
178
+ path: string;
179
+ roles: import("../../../index.js").Role[];
180
+ handler: string;
181
+ middlewares: string[];
182
+ config: {
183
+ title: string;
184
+ description: string;
185
+ params: {
186
+ $ref: string;
187
+ };
188
+ body: {
189
+ $ref: string;
190
+ type?: undefined;
191
+ required?: undefined;
192
+ properties?: undefined;
193
+ };
194
+ response: {
195
+ 200: {
196
+ $ref: string;
197
+ description?: undefined;
198
+ type?: undefined;
199
+ items?: undefined;
200
+ };
201
+ };
202
+ query?: undefined;
203
+ };
170
204
  } | {
171
205
  method: string;
172
206
  path: string;
@@ -190,6 +224,39 @@ declare const _default: {
190
224
  query?: undefined;
191
225
  body?: undefined;
192
226
  };
227
+ } | {
228
+ method: string;
229
+ path: string;
230
+ roles: import("../../../index.js").Role[];
231
+ handler: string;
232
+ middlewares: string[];
233
+ config: {
234
+ title: string;
235
+ description: string;
236
+ params: {
237
+ $ref: string;
238
+ };
239
+ body: {
240
+ type: string;
241
+ required: string[];
242
+ properties: {
243
+ password: {
244
+ type: string;
245
+ minLength: number;
246
+ };
247
+ };
248
+ $ref?: undefined;
249
+ };
250
+ response: {
251
+ 200: {
252
+ $ref: string;
253
+ description?: undefined;
254
+ type?: undefined;
255
+ items?: undefined;
256
+ };
257
+ };
258
+ query?: undefined;
259
+ };
193
260
  })[];
194
261
  };
195
262
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAsMC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA8PC"}
@@ -180,20 +180,73 @@ export default {
180
180
  }
181
181
  }
182
182
  },
183
+ {
184
+ method: 'POST',
185
+ path: '/:id/block',
186
+ roles: [roles.admin, roles.backoffice],
187
+ handler: 'user.block',
188
+ middlewares: ['global.isAuthenticated'],
189
+ config: {
190
+ title: 'Block a user by id',
191
+ description: 'Block a user by id',
192
+ params: { $ref: 'onlyIdSchema#' },
193
+ body: { $ref: 'blockBodySchema#' },
194
+ response: {
195
+ 200: { $ref: 'defaultResponse#' }
196
+ }
197
+ }
198
+ },
199
+ {
200
+ method: 'POST',
201
+ path: '/:id/unblock',
202
+ roles: [roles.admin, roles.backoffice],
203
+ handler: 'user.unblock',
204
+ middlewares: ['global.isAuthenticated'],
205
+ config: {
206
+ title: 'Unblock a user by id',
207
+ description: 'Unblock a user by id',
208
+ params: { $ref: 'onlyIdSchema#' },
209
+ response: {
210
+ 200: { $ref: 'defaultResponse#' }
211
+ }
212
+ }
213
+ },
183
214
  {
184
215
  method: 'POST',
185
216
  path: '/:id/mfa/reset',
186
217
  roles: [roles.admin],
187
- handler: 'user.resetMfa',
218
+ handler: 'user.resetMfaByAdmin',
188
219
  middlewares: ['global.isAuthenticated'],
189
220
  config: {
190
- title: 'Reset MFA for user',
221
+ title: 'Reset MFA for specific user',
191
222
  description: 'Disable MFA for a specific user (Admin only)',
192
223
  params: { $ref: 'globalParamsSchema#' },
193
224
  response: {
194
225
  200: { $ref: 'defaultResponse#' }
195
226
  }
196
227
  }
228
+ },
229
+ {
230
+ method: 'POST',
231
+ path: '/:id/password/reset',
232
+ roles: [roles.admin],
233
+ handler: 'user.resetPasswordByAdmin',
234
+ middlewares: ['global.isAuthenticated'],
235
+ config: {
236
+ title: 'Reset password for specific user',
237
+ description: 'Admin can reset password for a specific user. Requires config option allow_admin_change_password_users to be enabled.',
238
+ params: { $ref: 'globalParamsSchema#' },
239
+ body: {
240
+ type: 'object',
241
+ required: ['password'],
242
+ properties: {
243
+ password: { type: 'string', minLength: 6 }
244
+ }
245
+ },
246
+ response: {
247
+ 200: { $ref: 'defaultResponse#' }
248
+ }
249
+ }
197
250
  }
198
251
  ]
199
252
  };
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,19 @@ declare const _default: {
3
3
  options: {
4
4
  allow_multiple_admin: boolean;
5
5
  admin_can_change_passwords: boolean;
6
+ allow_admin_change_password_users: boolean;
6
7
  reset_external_id_on_login: boolean;
7
8
  scheduler: boolean;
8
9
  embedded_auth: boolean;
9
10
  mfa_policy: string;
10
11
  mfa_admin_forced_reset_email: null;
11
12
  mfa_admin_forced_reset_until: null;
13
+ multi_tenant: {
14
+ enabled: boolean;
15
+ resolver: string;
16
+ header_key: string;
17
+ query_key: string;
18
+ };
12
19
  };
13
20
  };
14
21
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,wBAYC"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,wBAmBC"}
@@ -3,12 +3,19 @@ export default {
3
3
  options: {
4
4
  allow_multiple_admin: false,
5
5
  admin_can_change_passwords: false,
6
+ allow_admin_change_password_users: false,
6
7
  reset_external_id_on_login: false,
7
8
  scheduler: false,
8
9
  embedded_auth: true,
9
10
  mfa_policy: process.env.MFA_POLICY || 'OPTIONAL',
10
11
  mfa_admin_forced_reset_email: null,
11
- mfa_admin_forced_reset_until: null
12
+ mfa_admin_forced_reset_until: null,
13
+ multi_tenant: {
14
+ enabled: false,
15
+ resolver: 'subdomain',
16
+ header_key: 'x-tenant-id',
17
+ query_key: 'tid'
18
+ }
12
19
  }
13
20
  };
14
21
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE;QACP,oBAAoB,EAAE,KAAK;QAC3B,0BAA0B,EAAE,KAAK;QACjC,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU;QAChD,4BAA4B,EAAE,IAAI;QAClC,4BAA4B,EAAE,IAAI;KACnC;CACF,CAAA"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE;QACP,oBAAoB,EAAE,KAAK;QAC3B,0BAA0B,EAAE,KAAK;QACjC,iCAAiC,EAAE,KAAK;QACxC,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU;QAChD,4BAA4B,EAAE,IAAI;QAClC,4BAA4B,EAAE,IAAI;QAClC,YAAY,EAAE;YACZ,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,aAAa;YACzB,SAAS,EAAE,KAAK;SACjB;KACF;CACF,CAAA"}
@@ -8,6 +8,8 @@ declare const _default: ({
8
8
  credentials: boolean;
9
9
  allowedHeaders: string[];
10
10
  exposedHeaders: string[];
11
+ secret?: undefined;
12
+ parseOptions?: undefined;
11
13
  };
12
14
  } | {
13
15
  name: string;
@@ -19,6 +21,21 @@ declare const _default: ({
19
21
  credentials?: undefined;
20
22
  allowedHeaders?: undefined;
21
23
  exposedHeaders?: undefined;
24
+ secret?: undefined;
25
+ parseOptions?: undefined;
26
+ };
27
+ } | {
28
+ name: string;
29
+ enable: boolean;
30
+ options: {
31
+ secret: string | undefined;
32
+ parseOptions: {};
33
+ origin?: undefined;
34
+ methods?: undefined;
35
+ maxAge?: undefined;
36
+ credentials?: undefined;
37
+ allowedHeaders?: undefined;
38
+ exposedHeaders?: undefined;
22
39
  };
23
40
  })[];
24
41
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../lib/config/plugins.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAgEC"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../lib/config/plugins.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAwEC"}
@@ -61,6 +61,14 @@ export default [
61
61
  name: 'rawBody',
62
62
  enable: false,
63
63
  options: {}
64
+ },
65
+ {
66
+ name: 'cookie',
67
+ enable: process.env.AUTH_MODE === 'COOKIE',
68
+ options: {
69
+ secret: process.env.COOKIE_SECRET,
70
+ parseOptions: {}
71
+ }
64
72
  }
65
73
  ];
66
74
  //# sourceMappingURL=plugins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../lib/config/plugins.ts"],"names":[],"mappings":"AAAA,eAAe;IACb;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;YACrE,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE;gBACd,QAAQ;gBACR,iBAAiB;gBACjB,kBAAkB;gBAClB,cAAc;gBACd,gBAAgB;gBAChB,eAAe;gBACf,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,YAAY;gBACZ,aAAa;aACd;YACD,cAAc,EAAE;gBACd,QAAQ;gBACR,iBAAiB;gBACjB,kBAAkB;gBAClB,cAAc;gBACd,gBAAgB;gBAChB,eAAe;gBACf,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,YAAY;gBACZ,aAAa;aACd;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;CACF,CAAA"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../lib/config/plugins.ts"],"names":[],"mappings":"AAAA,eAAe;IACb;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;YACrE,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE;gBACd,QAAQ;gBACR,iBAAiB;gBACjB,kBAAkB;gBAClB,cAAc;gBACd,gBAAgB;gBAChB,eAAe;gBACf,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,YAAY;gBACZ,aAAa;aACd;YACD,cAAc,EAAE;gBACd,QAAQ;gBACR,iBAAiB;gBACjB,kBAAkB;gBAClB,cAAc;gBACd,gBAAgB;gBAChB,eAAe;gBACf,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,YAAY;gBACZ,aAAa;aACd;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,QAAQ;QAC1C,OAAO,EAAE;YACP,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;YACjC,YAAY,EAAE,EAAE;SACjB;KACF;CACF,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { UserManagement, TokenManagement, DataBaseManagement, MfaManagement, TransferManagement, TenantManagement } from '../../types/global.js';
2
+ export declare const defaultTenantManager: TenantManagement;
3
+ export declare const defaultUserManager: UserManagement;
4
+ export declare const defaultTokenManager: TokenManagement;
5
+ export declare const defaultDataBaseManager: DataBaseManagement;
6
+ export declare const defaultMfaManager: MfaManagement;
7
+ export declare const defaultTransferManager: TransferManagement;
8
+ //# sourceMappingURL=managers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managers.d.ts","sourceRoot":"","sources":["../../../lib/defaults/managers.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,uBAAuB,CAAA;AAI9B,eAAO,MAAM,oBAAoB,EAAE,gBAMlC,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,cA4BhC,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,eAajC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,kBAKpC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,kBASpC,CAAA"}
@@ -0,0 +1,71 @@
1
+ export const defaultTenantManager = {
2
+ isImplemented() { return false; },
3
+ resolveTenant(_req) { throw new Error('Not implemented'); },
4
+ switchContext(_tenant, _db) { throw new Error('Not implemented'); },
5
+ createTenant(_data) { throw new Error('Not implemented'); },
6
+ deleteTenant(_id) { throw new Error('Not implemented'); }
7
+ };
8
+ export const defaultUserManager = {
9
+ isImplemented() { return false; },
10
+ isValidUser(_data) { throw new Error('Not implemented.'); },
11
+ createUser(_data) { throw new Error('Not implemented.'); },
12
+ deleteUser(_data) { throw new Error('Not implemented.'); },
13
+ resetExternalId(_data) { throw new Error('Not implemented.'); },
14
+ updateUserById(_id, _user) { throw new Error('Not implemented.'); },
15
+ retrieveUserById(_id) { throw new Error('Not implemented.'); },
16
+ retrieveUserByEmail(_email) { throw new Error('Not implemented.'); },
17
+ retrieveUserByConfirmationToken(_code) { throw new Error('Not implemented.'); },
18
+ retrieveUserByResetPasswordToken(_code) { throw new Error('Not implemented.'); },
19
+ retrieveUserByUsername(_username) { throw new Error('Not implemented.'); },
20
+ retrieveUserByExternalId(_externalId) { throw new Error('Not implemented.'); },
21
+ retrieveUserByPassword(_email, _password) { throw new Error('Not implemented.'); },
22
+ changePassword(_email, _password, _oldPassword) { throw new Error('Not implemented.'); },
23
+ forgotPassword(_email) { throw new Error('Not implemented.'); },
24
+ userConfirmation(_user) { throw new Error('Not implemented.'); },
25
+ resetPassword(_user, _password) { throw new Error('Not implemented.'); },
26
+ blockUserById(_id, _reason) { throw new Error('Not implemented.'); },
27
+ unblockUserById(_data) { throw new Error('Not implemented.'); },
28
+ countQuery(_data) { throw new Error('Not implemented.'); },
29
+ findQuery(_data) { throw new Error('Not implemented.'); },
30
+ disableUserById(_id) { throw new Error('Not implemented.'); },
31
+ saveMfaSecret(_userId, _secret) { throw new Error('Not implemented.'); },
32
+ retrieveMfaSecret(_userId) { throw new Error('Not implemented.'); },
33
+ enableMfa(_userId) { throw new Error('Not implemented.'); },
34
+ disableMfa(_userId) { throw new Error('Not implemented.'); },
35
+ forceDisableMfaForAdmin(_email) { throw new Error('Not implemented.'); }
36
+ };
37
+ export const defaultTokenManager = {
38
+ isImplemented() { return false; },
39
+ isValidToken(_data) { throw new Error('Not implemented.'); },
40
+ createToken(_data) { throw new Error('Not implemented.'); },
41
+ resetExternalId(_id) { throw new Error('Not implemented.'); },
42
+ updateTokenById(_id, _token) { throw new Error('Not implemented.'); },
43
+ retrieveTokenById(_id) { throw new Error('Not implemented.'); },
44
+ retrieveTokenByExternalId(_id) { throw new Error('Not implemented.'); },
45
+ blockTokenById(_id, _reason) { throw new Error('Not implemented.'); },
46
+ unblockTokenById(_id) { throw new Error('Not implemented.'); },
47
+ countQuery(_data) { throw new Error('Not implemented.'); },
48
+ findQuery(_data) { throw new Error('Not implemented.'); },
49
+ removeTokenById(_id) { throw new Error('Not implemented.'); }
50
+ };
51
+ export const defaultDataBaseManager = {
52
+ isImplemented() { return false; },
53
+ synchronizeSchemas() { throw new Error('Not implemented.'); },
54
+ retrieveBy(_entityName, _entityId) { throw new Error('Not implemented.'); },
55
+ addChange(_entityName, _entityId, _status, _userId, _contents, _changeEntity) { throw new Error('Not implemented.'); }
56
+ };
57
+ export const defaultMfaManager = {
58
+ generateSetup(_appName, _email) { throw new Error('Not implemented.'); },
59
+ verify(_token, _secret) { throw new Error('Not implemented.'); }
60
+ };
61
+ export const defaultTransferManager = {
62
+ isImplemented() { return false; },
63
+ getPath() { throw new Error('Not implemented.'); },
64
+ getServer() { throw new Error('Not implemented.'); },
65
+ onUploadCreate(_callback) { throw new Error('Not implemented.'); },
66
+ onUploadFinish(_callback) { throw new Error('Not implemented.'); },
67
+ onUploadTerminate(_callback) { throw new Error('Not implemented.'); },
68
+ handle(_req, _res) { throw new Error('Not implemented.'); },
69
+ isValid(_req) { throw new Error('Not implemented.'); }
70
+ };
71
+ //# sourceMappingURL=managers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../lib/defaults/managers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"onRequest.d.ts","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"yBAsBsB,QAAG,EAAE,UAAK;AAAhC,wBAoHC"}
1
+ {"version":3,"file":"onRequest.d.ts","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"yBAsBsB,QAAG,EAAE,UAAK;AAAhC,wBA0MC"}
@@ -17,6 +17,50 @@ const normalizeRoles = (rolesArray) => {
17
17
  export default async (req, reply) => {
18
18
  if (log.i)
19
19
  req.startedAt = new Date();
20
+ const { multi_tenant } = global.config?.options || {};
21
+ if (multi_tenant?.enabled) {
22
+ let tenantSlug;
23
+ if (multi_tenant.resolver === 'subdomain') {
24
+ const host = req.headers.host || '';
25
+ const parts = host.split('.');
26
+ if (parts.length >= 2) {
27
+ if (parts[0] !== 'www') {
28
+ tenantSlug = parts[0];
29
+ }
30
+ }
31
+ }
32
+ else if (multi_tenant.resolver === 'header') {
33
+ tenantSlug = req.headers[multi_tenant?.header_key || 'x-tenant-id'];
34
+ }
35
+ else if (multi_tenant.resolver === 'query') {
36
+ tenantSlug = req.query[multi_tenant?.query_key || 'tid'];
37
+ }
38
+ if (!tenantSlug) {
39
+ return reply.code(400).send({ statusCode: 400, error: 'Tenant ID missing', message: 'Tenant ID is required' });
40
+ }
41
+ if (!global.repository?.tenants) {
42
+ log.error('Multi-tenant enabled but global.repository.tenants not found');
43
+ return reply.code(500).send({ statusCode: 500, error: 'Internal Server Error' });
44
+ }
45
+ const tenant = await global.repository.tenants.findOneBy({ slug: tenantSlug });
46
+ if (!tenant) {
47
+ return reply
48
+ .code(404)
49
+ .send({ statusCode: 404, error: 'Tenant Not Found', message: `Tenant '${tenantSlug}' not found` });
50
+ }
51
+ if (tenant.status !== 'active') {
52
+ return reply.code(403).send({ statusCode: 403, error: 'Tenant Inactive', message: 'Tenant is not active' });
53
+ }
54
+ const runner = global.connection.createQueryRunner();
55
+ await runner.connect();
56
+ if (!/^[a-z0-9_]+$/i.test(tenant.schema)) {
57
+ await runner.release();
58
+ return reply.code(400).send({ statusCode: 400, error: 'Invalid Schema Name' });
59
+ }
60
+ await runner.query(`SET search_path TO "${tenant.schema}", "public"`);
61
+ req.runner = runner;
62
+ req.tenant = tenant;
63
+ }
20
64
  req.data = () => getData(req);
21
65
  req.parameters = () => getParams(req);
22
66
  if (global.transferPath) {
@@ -38,12 +82,38 @@ export default async (req, reply) => {
38
82
  if (embedded_auth) {
39
83
  req.roles = () => [roles.public.code];
40
84
  req.hasRole = (r) => req.roles().includes(r?.code);
41
- const auth = req.headers?.authorization || '';
42
85
  const cfg = req.routeOptions?.config || req.routeConfig || {};
43
- const [prefix, bearerToken] = auth.split(' ');
44
- if (prefix === 'Bearer' && bearerToken != null) {
86
+ const AUTH_MODE = process.env.AUTH_MODE || 'BEARER';
87
+ let bearerToken;
88
+ if (AUTH_MODE === 'COOKIE') {
89
+ const cookieToken = req.cookies['auth_token'];
90
+ if (cookieToken) {
91
+ const unsigned = req.unsignCookie(cookieToken);
92
+ if (unsigned.valid && unsigned.value) {
93
+ bearerToken = unsigned.value;
94
+ }
95
+ }
96
+ }
97
+ else {
98
+ const auth = req.headers?.authorization || '';
99
+ const [prefix, token] = auth.split(' ');
100
+ if (prefix === 'Bearer' && token != null) {
101
+ bearerToken = token;
102
+ }
103
+ }
104
+ if (bearerToken) {
45
105
  try {
46
106
  const tokenData = reply.server.jwt.verify(bearerToken);
107
+ const { multi_tenant } = global.config?.options || {};
108
+ if (multi_tenant?.enabled && req.tenant && tokenData.tid) {
109
+ if (tokenData.tid !== req.tenant.id) {
110
+ return reply.status(403).send({
111
+ statusCode: 403,
112
+ code: 'TENANT_MISMATCH',
113
+ message: 'Token does not belong to this tenant'
114
+ });
115
+ }
116
+ }
47
117
  if (tokenData.role === 'pre-auth-mfa') {
48
118
  const currentUrl = req.routeOptions.url || req.raw.url;
49
119
  const isAllowed = MFA_SETUP_WHITELIST.some((url) => currentUrl.endsWith(url));