@volcanicminds/backend 2.3.1 → 3.0.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.
Files changed (173) hide show
  1. package/README.md +240 -28
  2. package/dist/index.d.ts +3 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +24 -36
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/api/auth/controller/auth.d.ts.map +1 -1
  7. package/dist/lib/api/auth/controller/auth.js +14 -7
  8. package/dist/lib/api/auth/controller/auth.js.map +1 -1
  9. package/dist/lib/api/health/controller/health.d.ts +1 -1
  10. package/dist/lib/api/health/controller/health.d.ts.map +1 -1
  11. package/dist/lib/api/health/controller/health.js +1 -1
  12. package/dist/lib/api/health/controller/health.js.map +1 -1
  13. package/dist/lib/api/health/routes.d.ts +1 -0
  14. package/dist/lib/api/health/routes.d.ts.map +1 -1
  15. package/dist/lib/api/health/routes.js +1 -0
  16. package/dist/lib/api/health/routes.js.map +1 -1
  17. package/dist/lib/api/tenants/controller/tenants.d.ts +17 -0
  18. package/dist/lib/api/tenants/controller/tenants.d.ts.map +1 -0
  19. package/dist/lib/api/tenants/controller/tenants.js +150 -0
  20. package/dist/lib/api/tenants/controller/tenants.js.map +1 -0
  21. package/dist/lib/api/tenants/routes.d.ts +167 -0
  22. package/dist/lib/api/tenants/routes.d.ts.map +1 -0
  23. package/dist/lib/api/tenants/routes.js +143 -0
  24. package/dist/lib/api/tenants/routes.js.map +1 -0
  25. package/dist/lib/config/plugins.js +1 -1
  26. package/dist/lib/config/plugins.js.map +1 -1
  27. package/dist/lib/database/typeorm/entities/change.d.ts +11 -0
  28. package/dist/lib/database/typeorm/entities/change.d.ts.map +1 -0
  29. package/dist/lib/database/typeorm/entities/change.js +4 -0
  30. package/dist/lib/database/typeorm/entities/change.js.map +1 -0
  31. package/dist/lib/database/typeorm/entities/tenant.d.ts +13 -0
  32. package/dist/lib/database/typeorm/entities/tenant.d.ts.map +1 -0
  33. package/dist/lib/database/typeorm/entities/tenant.js +4 -0
  34. package/dist/lib/database/typeorm/entities/tenant.js.map +1 -0
  35. package/dist/lib/database/typeorm/entities/token.d.ts +16 -0
  36. package/dist/lib/database/typeorm/entities/token.d.ts.map +1 -0
  37. package/dist/lib/database/typeorm/entities/token.js +4 -0
  38. package/dist/lib/database/typeorm/entities/token.js.map +1 -0
  39. package/dist/lib/database/typeorm/entities/user.d.ts +28 -0
  40. package/dist/lib/database/typeorm/entities/user.d.ts.map +1 -0
  41. package/dist/lib/database/typeorm/entities/user.js +4 -0
  42. package/dist/lib/database/typeorm/entities/user.js.map +1 -0
  43. package/dist/lib/database/typeorm/loader/dataBaseManager.d.ts +6 -0
  44. package/dist/lib/database/typeorm/loader/dataBaseManager.d.ts.map +1 -0
  45. package/dist/lib/database/typeorm/loader/dataBaseManager.js +73 -0
  46. package/dist/lib/database/typeorm/loader/dataBaseManager.js.map +1 -0
  47. package/dist/lib/database/typeorm/loader/entities.d.ts +6 -0
  48. package/dist/lib/database/typeorm/loader/entities.d.ts.map +1 -0
  49. package/dist/lib/database/typeorm/loader/entities.js +37 -0
  50. package/dist/lib/database/typeorm/loader/entities.js.map +1 -0
  51. package/dist/lib/database/typeorm/loader/tenantManager.d.ts +17 -0
  52. package/dist/lib/database/typeorm/loader/tenantManager.d.ts.map +1 -0
  53. package/dist/lib/database/typeorm/loader/tenantManager.js +193 -0
  54. package/dist/lib/database/typeorm/loader/tenantManager.js.map +1 -0
  55. package/dist/lib/database/typeorm/loader/tokenManager.d.ts +23 -0
  56. package/dist/lib/database/typeorm/loader/tokenManager.d.ts.map +1 -0
  57. package/dist/lib/database/typeorm/loader/tokenManager.js +131 -0
  58. package/dist/lib/database/typeorm/loader/tokenManager.js.map +1 -0
  59. package/dist/lib/database/typeorm/loader/userManager.d.ts +39 -0
  60. package/dist/lib/database/typeorm/loader/userManager.d.ts.map +1 -0
  61. package/dist/lib/database/typeorm/loader/userManager.js +358 -0
  62. package/dist/lib/database/typeorm/loader/userManager.js.map +1 -0
  63. package/dist/lib/database/typeorm/query/builder.d.ts +2 -0
  64. package/dist/lib/database/typeorm/query/builder.d.ts.map +1 -0
  65. package/dist/lib/database/typeorm/query/builder.js +33 -0
  66. package/dist/lib/database/typeorm/query/builder.js.map +1 -0
  67. package/dist/lib/database/typeorm/query/parser.d.ts +2 -0
  68. package/dist/lib/database/typeorm/query/parser.d.ts.map +1 -0
  69. package/dist/lib/database/typeorm/query/parser.js +27 -0
  70. package/dist/lib/database/typeorm/query/parser.js.map +1 -0
  71. package/dist/lib/database/typeorm/query.d.ts +36 -0
  72. package/dist/lib/database/typeorm/query.d.ts.map +1 -0
  73. package/dist/lib/database/typeorm/query.js +259 -0
  74. package/dist/lib/database/typeorm/query.js.map +1 -0
  75. package/dist/lib/database/typeorm/util/crypto.d.ts +3 -0
  76. package/dist/lib/database/typeorm/util/crypto.d.ts.map +1 -0
  77. package/dist/lib/database/typeorm/util/crypto.js +46 -0
  78. package/dist/lib/database/typeorm/util/crypto.js.map +1 -0
  79. package/dist/lib/database/typeorm/util/error.d.ts +5 -0
  80. package/dist/lib/database/typeorm/util/error.d.ts.map +1 -0
  81. package/dist/lib/database/typeorm/util/error.js +8 -0
  82. package/dist/lib/database/typeorm/util/error.js.map +1 -0
  83. package/dist/lib/database/typeorm/util/logger.d.ts +7 -0
  84. package/dist/lib/database/typeorm/util/logger.d.ts.map +1 -0
  85. package/dist/lib/database/typeorm/util/logger.js +31 -0
  86. package/dist/lib/database/typeorm/util/logger.js.map +1 -0
  87. package/dist/lib/database/typeorm/util/yn.d.ts +2 -0
  88. package/dist/lib/database/typeorm/util/yn.d.ts.map +1 -0
  89. package/dist/lib/database/typeorm/util/yn.js +15 -0
  90. package/dist/lib/database/typeorm/util/yn.js.map +1 -0
  91. package/dist/lib/defaults/managers.d.ts.map +1 -1
  92. package/dist/lib/defaults/managers.js +186 -58
  93. package/dist/lib/defaults/managers.js.map +1 -1
  94. package/dist/lib/hooks/onRequest.d.ts.map +1 -1
  95. package/dist/lib/hooks/onRequest.js +11 -48
  96. package/dist/lib/hooks/onRequest.js.map +1 -1
  97. package/dist/lib/loader/router.d.ts.map +1 -1
  98. package/dist/lib/loader/router.js +92 -83
  99. package/dist/lib/loader/router.js.map +1 -1
  100. package/dist/lib/loader/tenant.d.ts.map +1 -1
  101. package/dist/lib/loader/tenant.js +25 -2
  102. package/dist/lib/loader/tenant.js.map +1 -1
  103. package/dist/lib/locales/en.json +12 -0
  104. package/dist/lib/locales/it.json +12 -0
  105. package/dist/lib/schemas/tenant.d.ts +88 -0
  106. package/dist/lib/schemas/tenant.d.ts.map +1 -0
  107. package/dist/lib/schemas/tenant.js +45 -0
  108. package/dist/lib/schemas/tenant.js.map +1 -0
  109. package/dist/lib/util/regexp.d.ts +2 -0
  110. package/dist/lib/util/regexp.d.ts.map +1 -1
  111. package/dist/lib/util/regexp.js +5 -3
  112. package/dist/lib/util/regexp.js.map +1 -1
  113. package/dist/lib/util/secret.d.ts +11 -0
  114. package/dist/lib/util/secret.d.ts.map +1 -0
  115. package/dist/lib/util/secret.js +70 -0
  116. package/dist/lib/util/secret.js.map +1 -0
  117. package/dist/server.js +4 -1
  118. package/dist/server.js.map +1 -1
  119. package/dist/typeorm.d.ts +15 -0
  120. package/dist/typeorm.d.ts.map +1 -0
  121. package/dist/typeorm.js +86 -0
  122. package/dist/typeorm.js.map +1 -0
  123. package/dist/types/database/typeorm/global.d.ts +56 -0
  124. package/dist/types/database/typeorm/global.d.ts.map +1 -0
  125. package/dist/types/database/typeorm/global.js +2 -0
  126. package/dist/types/database/typeorm/global.js.map +1 -0
  127. package/dist/types/global.d.ts +318 -0
  128. package/dist/types/orm.d.ts +22 -0
  129. package/lib/api/auth/controller/auth.ts +28 -12
  130. package/lib/api/health/controller/health.ts +1 -1
  131. package/lib/api/health/routes.ts +1 -0
  132. package/lib/api/tenants/controller/tenants.ts +211 -0
  133. package/lib/api/tenants/routes.ts +145 -0
  134. package/lib/config/plugins.ts +1 -1
  135. package/lib/database/typeorm/entities/change.ts +11 -0
  136. package/lib/database/typeorm/entities/tenant.ts +20 -0
  137. package/lib/database/typeorm/entities/token.ts +18 -0
  138. package/lib/database/typeorm/entities/user.ts +33 -0
  139. package/lib/database/typeorm/loader/dataBaseManager.ts +89 -0
  140. package/lib/database/typeorm/loader/entities.ts +47 -0
  141. package/lib/database/typeorm/loader/tenantManager.ts +260 -0
  142. package/lib/database/typeorm/loader/tokenManager.ts +157 -0
  143. package/lib/database/typeorm/loader/userManager.ts +432 -0
  144. package/lib/database/typeorm/query/builder.ts +39 -0
  145. package/lib/database/typeorm/query/parser.ts +29 -0
  146. package/lib/database/typeorm/query.ts +326 -0
  147. package/lib/database/typeorm/util/crypto.ts +52 -0
  148. package/lib/database/typeorm/util/error.ts +7 -0
  149. package/lib/database/typeorm/util/logger.ts +35 -0
  150. package/lib/database/typeorm/util/yn.ts +20 -0
  151. package/lib/defaults/managers.ts +191 -64
  152. package/lib/hooks/onRequest.ts +12 -64
  153. package/lib/loader/router.ts +133 -110
  154. package/lib/loader/tenant.ts +37 -14
  155. package/lib/schemas/tenant.ts +49 -0
  156. package/lib/util/regexp.ts +31 -8
  157. package/lib/util/secret.ts +113 -0
  158. package/package.json +54 -13
  159. package/dist/lib/apollo/context.d.ts +0 -6
  160. package/dist/lib/apollo/context.d.ts.map +0 -1
  161. package/dist/lib/apollo/context.js +0 -5
  162. package/dist/lib/apollo/context.js.map +0 -1
  163. package/dist/lib/apollo/resolvers.d.ts +0 -8
  164. package/dist/lib/apollo/resolvers.d.ts.map +0 -1
  165. package/dist/lib/apollo/resolvers.js +0 -8
  166. package/dist/lib/apollo/resolvers.js.map +0 -1
  167. package/dist/lib/apollo/type-defs.d.ts +0 -3
  168. package/dist/lib/apollo/type-defs.d.ts.map +0 -1
  169. package/dist/lib/apollo/type-defs.js +0 -8
  170. package/dist/lib/apollo/type-defs.js.map +0 -1
  171. package/lib/apollo/context.ts +0 -11
  172. package/lib/apollo/resolvers.ts +0 -12
  173. package/lib/apollo/type-defs.ts +0 -9
@@ -1,71 +1,199 @@
1
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'); }
2
+ isImplemented() {
3
+ return false;
4
+ },
5
+ resolveTenant(_req) {
6
+ throw new Error('Not implemented');
7
+ },
8
+ switchContext(_tenant, _db) {
9
+ throw new Error('Not implemented');
10
+ },
11
+ createTenant(_data) {
12
+ throw new Error('Not implemented');
13
+ },
14
+ deleteTenant(_id) {
15
+ throw new Error('Not implemented');
16
+ },
17
+ listTenants() {
18
+ throw new Error('Not implemented');
19
+ },
20
+ getTenant(_id) {
21
+ throw new Error('Not implemented');
22
+ },
23
+ updateTenant(_id, _data) {
24
+ throw new Error('Not implemented');
25
+ },
26
+ restoreTenant(_id) {
27
+ throw new Error('Not implemented');
28
+ }
7
29
  };
8
30
  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.'); }
31
+ isImplemented() {
32
+ return false;
33
+ },
34
+ isValidUser(_data) {
35
+ throw new Error('Not implemented.');
36
+ },
37
+ createUser(_data) {
38
+ throw new Error('Not implemented.');
39
+ },
40
+ deleteUser(_data) {
41
+ throw new Error('Not implemented.');
42
+ },
43
+ resetExternalId(_data) {
44
+ throw new Error('Not implemented.');
45
+ },
46
+ updateUserById(_id, _user) {
47
+ throw new Error('Not implemented.');
48
+ },
49
+ retrieveUserById(_id) {
50
+ throw new Error('Not implemented.');
51
+ },
52
+ retrieveUserByEmail(_email) {
53
+ throw new Error('Not implemented.');
54
+ },
55
+ retrieveUserByConfirmationToken(_code) {
56
+ throw new Error('Not implemented.');
57
+ },
58
+ retrieveUserByResetPasswordToken(_code) {
59
+ throw new Error('Not implemented.');
60
+ },
61
+ retrieveUserByUsername(_username) {
62
+ throw new Error('Not implemented.');
63
+ },
64
+ retrieveUserByExternalId(_externalId) {
65
+ throw new Error('Not implemented.');
66
+ },
67
+ retrieveUserByPassword(_email, _password) {
68
+ throw new Error('Not implemented.');
69
+ },
70
+ changePassword(_email, _password, _oldPassword) {
71
+ throw new Error('Not implemented.');
72
+ },
73
+ forgotPassword(_email) {
74
+ throw new Error('Not implemented.');
75
+ },
76
+ userConfirmation(_user) {
77
+ throw new Error('Not implemented.');
78
+ },
79
+ resetPassword(_user, _password) {
80
+ throw new Error('Not implemented.');
81
+ },
82
+ blockUserById(_id, _reason) {
83
+ throw new Error('Not implemented.');
84
+ },
85
+ unblockUserById(_data) {
86
+ throw new Error('Not implemented.');
87
+ },
88
+ countQuery(_data) {
89
+ throw new Error('Not implemented.');
90
+ },
91
+ findQuery(_data) {
92
+ throw new Error('Not implemented.');
93
+ },
94
+ disableUserById(_id) {
95
+ throw new Error('Not implemented.');
96
+ },
97
+ saveMfaSecret(_userId, _secret) {
98
+ throw new Error('Not implemented.');
99
+ },
100
+ retrieveMfaSecret(_userId) {
101
+ throw new Error('Not implemented.');
102
+ },
103
+ enableMfa(_userId) {
104
+ throw new Error('Not implemented.');
105
+ },
106
+ disableMfa(_userId) {
107
+ throw new Error('Not implemented.');
108
+ },
109
+ forceDisableMfaForAdmin(_email) {
110
+ throw new Error('Not implemented.');
111
+ }
36
112
  };
37
113
  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.'); }
114
+ isImplemented() {
115
+ return false;
116
+ },
117
+ isValidToken(_data) {
118
+ throw new Error('Not implemented.');
119
+ },
120
+ createToken(_data) {
121
+ throw new Error('Not implemented.');
122
+ },
123
+ resetExternalId(_id) {
124
+ throw new Error('Not implemented.');
125
+ },
126
+ updateTokenById(_id, _token) {
127
+ throw new Error('Not implemented.');
128
+ },
129
+ retrieveTokenById(_id) {
130
+ throw new Error('Not implemented.');
131
+ },
132
+ retrieveTokenByExternalId(_id) {
133
+ throw new Error('Not implemented.');
134
+ },
135
+ blockTokenById(_id, _reason) {
136
+ throw new Error('Not implemented.');
137
+ },
138
+ unblockTokenById(_id) {
139
+ throw new Error('Not implemented.');
140
+ },
141
+ countQuery(_data) {
142
+ throw new Error('Not implemented.');
143
+ },
144
+ findQuery(_data) {
145
+ throw new Error('Not implemented.');
146
+ },
147
+ removeTokenById(_id) {
148
+ throw new Error('Not implemented.');
149
+ }
50
150
  };
51
151
  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.'); }
152
+ isImplemented() {
153
+ return false;
154
+ },
155
+ synchronizeSchemas() {
156
+ throw new Error('Not implemented.');
157
+ },
158
+ retrieveBy(_entityName, _entityId) {
159
+ throw new Error('Not implemented.');
160
+ },
161
+ addChange(_entityName, _entityId, _status, _userId, _contents, _changeEntity) {
162
+ throw new Error('Not implemented.');
163
+ }
56
164
  };
57
165
  export const defaultMfaManager = {
58
- generateSetup(_appName, _email) { throw new Error('Not implemented.'); },
59
- verify(_token, _secret) { throw new Error('Not implemented.'); }
166
+ generateSetup(_appName, _email) {
167
+ throw new Error('Not implemented.');
168
+ },
169
+ verify(_token, _secret) {
170
+ throw new Error('Not implemented.');
171
+ }
60
172
  };
61
173
  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.'); }
174
+ isImplemented() {
175
+ return false;
176
+ },
177
+ getPath() {
178
+ throw new Error('Not implemented.');
179
+ },
180
+ getServer() {
181
+ throw new Error('Not implemented.');
182
+ },
183
+ onUploadCreate(_callback) {
184
+ throw new Error('Not implemented.');
185
+ },
186
+ onUploadFinish(_callback) {
187
+ throw new Error('Not implemented.');
188
+ },
189
+ onUploadTerminate(_callback) {
190
+ throw new Error('Not implemented.');
191
+ },
192
+ handle(_req, _res) {
193
+ throw new Error('Not implemented.');
194
+ },
195
+ isValid(_req) {
196
+ throw new Error('Not implemented.');
197
+ }
70
198
  };
71
199
  //# sourceMappingURL=managers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../lib/defaults/managers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../lib/defaults/managers.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,oBAAoB,GAAqB;IACpD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,aAAa,CAAC,IAAI;QAChB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,aAAa,CAAC,OAAO,EAAE,GAAI;QACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,YAAY,CAAC,KAAK;QAChB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,YAAY,CAAC,GAAG;QACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,WAAW;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,SAAS,CAAC,GAAG;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,YAAY,CAAC,GAAG,EAAE,KAAK;QACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,aAAa,CAAC,GAAG;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,UAAU,CAAC,KAAc;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,UAAU,CAAC,KAAc;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,eAAe,CAAC,KAAc;QAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,GAAW,EAAE,KAAc;QACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,gBAAgB,CAAC,GAAW;QAC1B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,mBAAmB,CAAC,MAAc;QAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,+BAA+B,CAAC,KAAa;QAC3C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,gCAAgC,CAAC,KAAa;QAC5C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,sBAAsB,CAAC,SAAiB;QACtC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,wBAAwB,CAAC,WAAmB;QAC1C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,sBAAsB,CAAC,MAAc,EAAE,SAAiB;QACtD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,MAAc,EAAE,SAAiB,EAAE,YAAoB;QACpE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,MAAc;QAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,gBAAgB,CAAC,KAAc;QAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,aAAa,CAAC,KAAc,EAAE,SAAiB;QAC7C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,aAAa,CAAC,GAAW,EAAE,OAAe;QACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,eAAe,CAAC,KAAc;QAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,UAAU,CAAC,KAAc;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,CAAC,KAAc;QACtB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,eAAe,CAAC,GAAW;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,aAAa,CAAC,OAAe,EAAE,OAAe;QAC5C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,iBAAiB,CAAC,OAAe;QAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,CAAC,OAAe;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,UAAU,CAAC,OAAe;QACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,uBAAuB,CAAC,MAAc;QACpC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAoB;IAClD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,YAAY,CAAC,KAAc;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,WAAW,CAAC,KAAc;QACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,eAAe,CAAC,GAAW;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,eAAe,CAAC,GAAW,EAAE,MAAe;QAC1C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,iBAAiB,CAAC,GAAW;QAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,yBAAyB,CAAC,GAAW;QACnC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,GAAW,EAAE,OAAe;QACzC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,gBAAgB,CAAC,GAAW;QAC1B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,UAAU,CAAC,KAAc;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,CAAC,KAAc;QACtB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,eAAe,CAAC,GAAW;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAuB;IACxD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,kBAAkB;QAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,UAAU,CAAC,WAAW,EAAE,SAAS;QAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa;QAC1E,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC9C,aAAa,CAAC,QAAgB,EAAE,MAAc;QAC5C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,MAAM,CAAC,MAAc,EAAE,OAAe;QACpC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAuB;IACxD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,SAAS;QACP,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,SAA2B;QACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,SAA2B;QACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,iBAAiB,CAAC,SAA2B;QAC3C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,MAAM,CAAC,IAAoB,EAAE,IAAkB;QAC7C,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,CAAC,IAAoB;QAC1B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"onRequest.d.ts","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"yBAsBsB,QAAG,EAAE,UAAK;AAAhC,wBA0MC"}
1
+ {"version":3,"file":"onRequest.d.ts","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"yBAoBsB,QAAG,EAAE,UAAK;AAAhC,wBA0JC"}
@@ -1,5 +1,4 @@
1
1
  import { getParams, getData } from '../util/common.js';
2
- const { embedded_auth = true } = global.config?.options || {};
3
2
  const MFA_SETUP_WHITELIST = ['/auth/mfa/setup', '/auth/mfa/enable', '/auth/mfa/verify', '/auth/logout'];
4
3
  const normalizeRoles = (rolesArray) => {
5
4
  if (!rolesArray || rolesArray.length === 0) {
@@ -17,50 +16,6 @@ const normalizeRoles = (rolesArray) => {
17
16
  export default async (req, reply) => {
18
17
  if (log.i)
19
18
  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
- }
64
19
  req.data = () => getData(req);
65
20
  req.parameters = () => getParams(req);
66
21
  if (global.transferPath) {
@@ -79,6 +34,7 @@ export default async (req, reply) => {
79
34
  }
80
35
  }
81
36
  }
37
+ const { embedded_auth = true } = global.config?.options || {};
82
38
  if (embedded_auth) {
83
39
  req.roles = () => [roles.public.code];
84
40
  req.hasRole = (r) => req.roles().includes(r?.code);
@@ -105,7 +61,14 @@ export default async (req, reply) => {
105
61
  try {
106
62
  const tokenData = reply.server.jwt.verify(bearerToken);
107
63
  const { multi_tenant } = global.config?.options || {};
108
- if (multi_tenant?.enabled && req.tenant && tokenData.tid) {
64
+ if (multi_tenant?.enabled && cfg.tenantContext !== false) {
65
+ if (!req.tenant || !tokenData.tid) {
66
+ return reply.status(403).send({
67
+ statusCode: 403,
68
+ code: 'TENANT_NOT_FOUND',
69
+ message: 'Token does not belong to this tenant'
70
+ });
71
+ }
109
72
  if (tokenData.tid !== req.tenant.id) {
110
73
  return reply.status(403).send({
111
74
  statusCode: 403,
@@ -134,7 +97,7 @@ export default async (req, reply) => {
134
97
  let user = null;
135
98
  let token = null;
136
99
  if (req.server['userManager']?.isImplemented()) {
137
- user = await req.server['userManager'].retrieveUserByExternalId(subjectId);
100
+ user = await req.server['userManager'].retrieveUserByExternalId(subjectId, req.db);
138
101
  if (user) {
139
102
  const isValid = await req.server['userManager'].isValidUser(user);
140
103
  if (!isValid) {
@@ -146,7 +109,7 @@ export default async (req, reply) => {
146
109
  }
147
110
  }
148
111
  if (!user && req.server['tokenManager']?.isImplemented()) {
149
- token = await req.server['tokenManager'].retrieveTokenByExternalId(subjectId);
112
+ token = await req.server['tokenManager'].retrieveTokenByExternalId(subjectId, req.db);
150
113
  if (token) {
151
114
  const isValid = await req.server['tokenManager'].isValidToken(token);
152
115
  if (!isValid) {
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"AAqQA,wBAAsB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtD"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"AA4RA,wBAAsB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtD"}
@@ -53,6 +53,92 @@ async function loadMiddlewares(base, middlewares = []) {
53
53
  }
54
54
  return midds;
55
55
  }
56
+ function processRoute(route, index, file, dir, base, defaultConfig, authMiddlewares, validRoutes) {
57
+ const errors = [];
58
+ const { method: methodCase, path: pathName = '/', handler, roles: rs = [], config = {}, middlewares = [], rateLimit } = route;
59
+ const rsp = !rs.length ? [roles.public] : rs;
60
+ let requiredRoles = [];
61
+ try {
62
+ requiredRoles = rsp.some((r) => r.code === roles.admin.code) ? rsp : [...rsp, roles.admin];
63
+ }
64
+ catch (err) {
65
+ if (log.e)
66
+ log.error(`Error in loading roles for ${methodCase} ${pathName} (${handler})`);
67
+ if (log.t)
68
+ log.trace(err);
69
+ config.enable = false;
70
+ }
71
+ const reqAuth = middlewares.some((m) => authMiddlewares.includes(m)) ||
72
+ requiredRoles.every((r) => r.code !== roles.public.code);
73
+ if (!config?.security && reqAuth) {
74
+ config.security = 'bearer';
75
+ }
76
+ const { title = '', description = '', enable = yn(defaultConfig.enable, true), deprecated = yn(defaultConfig.deprecated, false), tenantContext = yn(defaultConfig.tenantContext, true), tags = defaultConfig.tags, version = defaultConfig.version || '', security = defaultConfig.security, query, params, body, response, consumes, rawBody = false } = config || {};
77
+ const endpoint = `${dir}${pathName.replace(/\/+$/, '')}`;
78
+ const method = methodCase.toUpperCase();
79
+ const num = index + 1;
80
+ const handlerParts = handler.split('.');
81
+ if (enable) {
82
+ if (!pathName.startsWith('/'))
83
+ errors.push(`Error in [${file}] bad path [${pathName}] at route n. ${num}`);
84
+ if (!methods.includes(method))
85
+ errors.push(`Error in [${file}] bad method [${method}] at route n. ${num}`);
86
+ if (handlerParts.length !== 2)
87
+ errors.push(`Error in [${file}] bad handler [${handler}] at route n. ${num}`);
88
+ const key = method + endpoint + version;
89
+ if (validRoutes.some((r) => `${r.method}${r.path}${r.doc?.version}` === key)) {
90
+ errors.push(`Error in [${file}] duplicated path [${pathName}] at route n. ${num}`);
91
+ }
92
+ if (errors.length > 0) {
93
+ if (log.e)
94
+ errors.forEach((error) => log.error(error));
95
+ }
96
+ }
97
+ const toAdd = enable && errors.length === 0;
98
+ if (toAdd) {
99
+ if (log.t)
100
+ log.trace(`* Method [${method}] path ${endpoint} handler ${handler} enabled with ${middlewares?.length || 0} middlewares`);
101
+ }
102
+ else {
103
+ if (log.w)
104
+ log.warn(`* Method [${method}] path ${endpoint} handler ${handler} disabled. Skip.`);
105
+ }
106
+ if (toAdd) {
107
+ const doc = {
108
+ summary: title,
109
+ description,
110
+ deprecated,
111
+ tags,
112
+ version,
113
+ security: security === 'bearer' ? [{ Bearer: [] }] : security,
114
+ response
115
+ };
116
+ if (query)
117
+ doc.querystring = query;
118
+ if (params)
119
+ doc.params = params;
120
+ if (body)
121
+ doc.body = body;
122
+ if (consumes)
123
+ doc.consumes = consumes;
124
+ return {
125
+ handler,
126
+ method,
127
+ path: '/' + endpoint,
128
+ middlewares,
129
+ roles: requiredRoles,
130
+ enable,
131
+ tenantContext,
132
+ rawBody,
133
+ rateLimit,
134
+ base,
135
+ file: path.join(base, defaultConfig.controller || 'controller', handlerParts[0]),
136
+ func: handlerParts[1],
137
+ doc: doc
138
+ };
139
+ }
140
+ return null;
141
+ }
56
142
  async function load() {
57
143
  const validRoutes = [];
58
144
  const patterns = normalizePatterns(['..', 'api', '**', 'routes.{ts,js}'], ['src', 'api', '**', 'routes.{ts,js}']);
@@ -73,87 +159,9 @@ async function load() {
73
159
  if (log.t)
74
160
  log.trace(`* Add ${routes.length} routes from ${file}`);
75
161
  routes.forEach((route, index) => {
76
- const errors = [];
77
- const { method: methodCase, path: pathName = '/', handler, roles: rs = [], config = {}, middlewares = [], rateLimit } = route;
78
- const rsp = !rs.length ? [roles.public] : rs;
79
- let requiredRoles = [];
80
- try {
81
- requiredRoles = rsp.some((r) => r.code === roles.admin.code) ? rsp : [...rsp, roles.admin];
82
- }
83
- catch (err) {
84
- if (log.e)
85
- log.error(`Error in loading roles for ${methodCase} ${pathName} (${handler})`);
86
- if (log.t)
87
- log.trace(err);
88
- config.enable = false;
89
- }
90
- const reqAuth = middlewares.some((m) => authMiddlewares.includes(m)) ||
91
- requiredRoles.every((r) => r.code !== roles.public.code);
92
- if (!config?.security && reqAuth) {
93
- config.security = 'bearer';
94
- }
95
- const { title = '', description = '', enable = yn(defaultConfig.enable, true), deprecated = yn(defaultConfig.deprecated, false), tags = defaultConfig.tags, version = defaultConfig.version || '', security = defaultConfig.security, query, params, body, response, consumes, rawBody = false } = config || {};
96
- const endpoint = `${dir}${pathName.replace(/\/+$/, '')}`;
97
- const method = methodCase.toUpperCase();
98
- const num = index + 1;
99
- const handlerParts = handler.split('.');
100
- if (enable) {
101
- if (!pathName.startsWith('/'))
102
- errors.push(`Error in [${file}] bad path [${pathName}] at route n. ${num}`);
103
- if (!methods.includes(method))
104
- errors.push(`Error in [${file}] bad method [${method}] at route n. ${num}`);
105
- if (handlerParts.length !== 2)
106
- errors.push(`Error in [${file}] bad handler [${handler}] at route n. ${num}`);
107
- const key = method + endpoint + version;
108
- if (validRoutes.some((r) => `${r.method}${r.path}${r.doc?.version}` === key)) {
109
- errors.push(`Error in [${file}] duplicated path [${pathName}] at route n. ${num}`);
110
- }
111
- if (errors.length > 0) {
112
- if (log.e)
113
- errors.forEach((error) => log.error(error));
114
- }
115
- }
116
- const toAdd = enable && errors.length === 0;
117
- if (toAdd) {
118
- if (log.t)
119
- log.trace(`* Method [${method}] path ${endpoint} handler ${handler} enabled with ${middlewares?.length || 0} middlewares`);
120
- }
121
- else {
122
- if (log.w)
123
- log.warn(`* Method [${method}] path ${endpoint} handler ${handler} disabled. Skip.`);
124
- }
125
- if (toAdd) {
126
- const doc = {
127
- summary: title,
128
- description,
129
- deprecated,
130
- tags,
131
- version,
132
- security: security === 'bearer' ? [{ Bearer: [] }] : security,
133
- response
134
- };
135
- if (query)
136
- doc.querystring = query;
137
- if (params)
138
- doc.params = params;
139
- if (body)
140
- doc.body = body;
141
- if (consumes)
142
- doc.consumes = consumes;
143
- validRoutes.push({
144
- handler,
145
- method,
146
- path: '/' + endpoint,
147
- middlewares,
148
- roles: requiredRoles,
149
- enable,
150
- rawBody,
151
- rateLimit,
152
- base,
153
- file: path.join(base, defaultConfig.controller || 'controller', handlerParts[0]),
154
- func: handlerParts[1],
155
- doc: doc
156
- });
162
+ const configuredRoute = processRoute(route, index, file, dir, base, defaultConfig, authMiddlewares, validRoutes);
163
+ if (configuredRoute) {
164
+ validRoutes.push(configuredRoute);
157
165
  }
158
166
  });
159
167
  }
@@ -171,7 +179,7 @@ async function applyRoutes(server, routes) {
171
179
  let countRoutes = 0;
172
180
  for (const route of routes) {
173
181
  if (route?.enable) {
174
- const { handler, method, path, middlewares, roles, rawBody, rateLimit, base, file, func, doc } = route;
182
+ const { handler, method, path, middlewares, roles, rawBody, rateLimit, base, file, func, doc, tenantContext } = route;
175
183
  if (log.d)
176
184
  log.debug(`* Add path ${method} ${path} on handle ${handler}`);
177
185
  const midds = await loadMiddlewares(base, middlewares);
@@ -183,7 +191,8 @@ async function applyRoutes(server, routes) {
183
191
  config: {
184
192
  requiredRoles: roles || [],
185
193
  rawBody: rawBody || false,
186
- rateLimit: rateLimit || undefined
194
+ rateLimit: rateLimit || undefined,
195
+ tenantContext: tenantContext
187
196
  },
188
197
  handler: async function (req, reply) {
189
198
  let module;