kuzzle 2.17.5 → 2.17.8

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 (197) hide show
  1. package/bin/start-kuzzle-server +1 -1
  2. package/lib/api/controllers/adminController.js +5 -4
  3. package/lib/api/controllers/authController.js +1 -1
  4. package/lib/api/controllers/baseController.js +1 -1
  5. package/lib/api/controllers/bulkController.js +1 -1
  6. package/lib/api/controllers/clusterController.js +1 -1
  7. package/lib/api/controllers/collectionController.js +1 -1
  8. package/lib/api/controllers/documentController.js +7 -2
  9. package/lib/api/controllers/index.js +1 -1
  10. package/lib/api/controllers/indexController.js +1 -1
  11. package/lib/api/controllers/memoryStorageController.js +1 -1
  12. package/lib/api/controllers/realtimeController.js +1 -1
  13. package/lib/api/controllers/securityController.js +1 -1
  14. package/lib/api/controllers/serverController.js +1 -1
  15. package/lib/api/documentExtractor.js +1 -1
  16. package/lib/api/funnel.js +1 -1
  17. package/lib/api/httpRoutes.js +5 -4
  18. package/lib/api/openapi/OpenApiManager.js +2 -1
  19. package/lib/api/openapi/components/document/index.d.ts +2 -0
  20. package/lib/api/openapi/components/document/index.js +6 -1
  21. package/lib/api/openapi/components/document/mCreateOrReplace.yaml +93 -0
  22. package/lib/api/openapi/openApiGenerator.js +1 -1
  23. package/lib/api/rateLimiter.js +1 -1
  24. package/lib/api/request/kuzzleRequest.js +1 -1
  25. package/lib/api/request/requestContext.js +1 -1
  26. package/lib/api/request/requestInput.js +1 -1
  27. package/lib/api/request/requestResponse.js +1 -1
  28. package/lib/cluster/command.js +1 -1
  29. package/lib/cluster/idCardHandler.js +1 -1
  30. package/lib/cluster/index.js +1 -1
  31. package/lib/cluster/node.js +8 -8
  32. package/lib/cluster/publisher.js +1 -1
  33. package/lib/cluster/state.js +1 -1
  34. package/lib/cluster/subscriber.js +4 -1
  35. package/lib/config/documentEventAliases.js +1 -1
  36. package/lib/config/index.js +1 -1
  37. package/lib/core/auth/formatProcessing.js +1 -1
  38. package/lib/core/auth/passportResponse.js +1 -1
  39. package/lib/core/auth/passportWrapper.js +1 -1
  40. package/lib/core/auth/tokenManager.js +1 -1
  41. package/lib/core/backend/applicationManager.js +1 -1
  42. package/lib/core/backend/backend.js +1 -1
  43. package/lib/core/backend/backendCluster.js +1 -1
  44. package/lib/core/backend/backendConfig.js +1 -1
  45. package/lib/core/backend/backendController.js +1 -1
  46. package/lib/core/backend/backendErrors.js +1 -1
  47. package/lib/core/backend/backendHook.js +1 -1
  48. package/lib/core/backend/backendImport.js +1 -1
  49. package/lib/core/backend/backendOpenApi.js +1 -1
  50. package/lib/core/backend/backendPipe.js +1 -1
  51. package/lib/core/backend/backendPlugin.js +1 -1
  52. package/lib/core/backend/backendStorage.js +1 -1
  53. package/lib/core/backend/backendVault.js +1 -1
  54. package/lib/core/backend/internalLogger.js +1 -1
  55. package/lib/core/cache/cacheDbEnum.js +1 -1
  56. package/lib/core/cache/cacheEngine.js +1 -1
  57. package/lib/core/network/accessLogger.js +12 -7
  58. package/lib/core/network/clientConnection.js +1 -1
  59. package/lib/core/network/context.js +1 -1
  60. package/lib/core/network/entryPoint.js +6 -6
  61. package/lib/core/network/httpRouter/index.js +1 -1
  62. package/lib/core/network/httpRouter/routeHandler.js +1 -1
  63. package/lib/core/network/httpRouter/routePart.js +1 -1
  64. package/lib/core/network/protocolManifest.js +1 -1
  65. package/lib/core/network/protocols/httpMessage.js +1 -1
  66. package/lib/core/network/protocols/httpwsProtocol.js +5 -10
  67. package/lib/core/network/protocols/internalProtocol.js +1 -1
  68. package/lib/core/network/protocols/mqttProtocol.js +4 -3
  69. package/lib/core/network/protocols/protocol.js +1 -1
  70. package/lib/core/network/router.js +11 -2
  71. package/lib/core/plugin/plugin.js +1 -1
  72. package/lib/core/plugin/pluginContext.js +1 -1
  73. package/lib/core/plugin/pluginManifest.js +1 -1
  74. package/lib/core/plugin/pluginRepository.js +1 -1
  75. package/lib/core/plugin/pluginsManager.js +1 -1
  76. package/lib/core/plugin/privilegedContext.js +1 -1
  77. package/lib/core/realtime/actionEnum.js +1 -1
  78. package/lib/core/realtime/channel.js +1 -1
  79. package/lib/core/realtime/connectionRooms.js +1 -1
  80. package/lib/core/realtime/hotelClerk.js +66 -24
  81. package/lib/core/realtime/index.js +1 -1
  82. package/lib/core/realtime/notification/document.js +1 -1
  83. package/lib/core/realtime/notification/index.js +1 -1
  84. package/lib/core/realtime/notification/server.js +1 -1
  85. package/lib/core/realtime/notification/user.js +1 -1
  86. package/lib/core/realtime/notifier.js +1 -1
  87. package/lib/core/realtime/room.js +1 -1
  88. package/lib/core/realtime/subscription.js +1 -1
  89. package/lib/core/security/index.js +1 -1
  90. package/lib/core/security/profileRepository.js +1 -1
  91. package/lib/core/security/roleRepository.js +1 -1
  92. package/lib/core/security/securityLoader.js +1 -1
  93. package/lib/core/security/tokenRepository.js +1 -1
  94. package/lib/core/security/userRepository.js +1 -1
  95. package/lib/core/shared/KoncordeWrapper.js +1 -1
  96. package/lib/core/shared/abstractManifest.js +1 -1
  97. package/lib/core/shared/repository.js +1 -1
  98. package/lib/core/shared/sdk/embeddedSdk.js +4 -3
  99. package/lib/core/shared/sdk/funnelProtocol.d.ts +14 -0
  100. package/lib/core/shared/sdk/funnelProtocol.js +76 -81
  101. package/lib/core/shared/sdk/impersonatedSdk.js +1 -1
  102. package/lib/core/shared/store.js +1 -1
  103. package/lib/core/statistics/index.js +1 -1
  104. package/lib/core/statistics/statistics.js +1 -1
  105. package/lib/core/storage/clientAdapter.js +5 -5
  106. package/lib/core/storage/indexCache.js +1 -1
  107. package/lib/core/storage/storageEngine.js +1 -1
  108. package/lib/core/storage/storeScopeEnum.js +1 -1
  109. package/lib/core/validation/baseType.js +1 -1
  110. package/lib/core/validation/index.js +1 -1
  111. package/lib/core/validation/types/anything.js +1 -1
  112. package/lib/core/validation/types/boolean.js +1 -1
  113. package/lib/core/validation/types/date.js +1 -1
  114. package/lib/core/validation/types/email.js +1 -1
  115. package/lib/core/validation/types/enum.js +1 -1
  116. package/lib/core/validation/types/geoPoint.js +1 -1
  117. package/lib/core/validation/types/geoShape.js +1 -1
  118. package/lib/core/validation/types/integer.js +1 -1
  119. package/lib/core/validation/types/ipAddress.js +1 -1
  120. package/lib/core/validation/types/numeric.js +1 -1
  121. package/lib/core/validation/types/object.js +1 -1
  122. package/lib/core/validation/types/string.js +1 -1
  123. package/lib/core/validation/types/url.js +1 -1
  124. package/lib/core/validation/validation.js +1 -1
  125. package/lib/kerror/codes/index.js +1 -1
  126. package/lib/kerror/errors/badRequestError.js +1 -1
  127. package/lib/kerror/errors/externalServiceError.js +1 -1
  128. package/lib/kerror/errors/forbiddenError.js +1 -1
  129. package/lib/kerror/errors/gatewayTimeoutError.js +1 -1
  130. package/lib/kerror/errors/index.js +1 -1
  131. package/lib/kerror/errors/internalError.js +1 -1
  132. package/lib/kerror/errors/kuzzleError.js +1 -1
  133. package/lib/kerror/errors/multipleErrorsError.js +1 -1
  134. package/lib/kerror/errors/notFoundError.js +1 -1
  135. package/lib/kerror/errors/partialError.js +1 -1
  136. package/lib/kerror/errors/pluginImplementationError.js +1 -1
  137. package/lib/kerror/errors/preconditionError.js +1 -1
  138. package/lib/kerror/errors/serviceUnavailableError.js +1 -1
  139. package/lib/kerror/errors/sizeLimitError.js +1 -1
  140. package/lib/kerror/errors/tooManyRequestsError.js +1 -1
  141. package/lib/kerror/errors/unauthorizedError.js +1 -1
  142. package/lib/kerror/index.js +2 -4
  143. package/lib/kuzzle/dumpGenerator.js +1 -1
  144. package/lib/kuzzle/event/kuzzleEventEmitter.js +39 -1
  145. package/lib/kuzzle/event/pipeRunner.js +1 -1
  146. package/lib/kuzzle/event/waterfall.js +1 -1
  147. package/lib/kuzzle/index.js +1 -1
  148. package/lib/kuzzle/internalIndexHandler.js +1 -1
  149. package/lib/kuzzle/kuzzle.js +1 -1
  150. package/lib/kuzzle/kuzzleStateEnum.js +1 -1
  151. package/lib/kuzzle/log.js +1 -1
  152. package/lib/kuzzle/vault.js +1 -1
  153. package/lib/model/security/profile.js +1 -1
  154. package/lib/model/security/rights.js +1 -1
  155. package/lib/model/security/role.js +1 -1
  156. package/lib/model/security/token.js +1 -1
  157. package/lib/model/security/user.js +1 -1
  158. package/lib/model/storage/apiKey.js +1 -1
  159. package/lib/model/storage/baseModel.js +1 -1
  160. package/lib/service/cache/redis.js +1 -1
  161. package/lib/service/service.js +1 -1
  162. package/lib/service/storage/elasticsearch.js +10 -9
  163. package/lib/service/storage/esWrapper.js +1 -1
  164. package/lib/service/storage/queryTranslator.js +1 -1
  165. package/lib/types/Controller.js +1 -1
  166. package/lib/types/ControllerDefinition.js +1 -1
  167. package/lib/types/Deprecation.js +1 -1
  168. package/lib/types/EventHandler.js +1 -1
  169. package/lib/types/KuzzleDocument.d.ts +3 -0
  170. package/lib/types/Plugin.js +1 -1
  171. package/lib/types/PluginManifest.js +1 -1
  172. package/lib/types/RequestPayload.js +1 -1
  173. package/lib/types/ResponsePayload.js +1 -1
  174. package/lib/types/StrategyDefinition.js +1 -1
  175. package/lib/types/Token.js +1 -1
  176. package/lib/types/User.js +1 -1
  177. package/lib/types/index.js +1 -1
  178. package/lib/util/array.js +1 -1
  179. package/lib/util/assertType.js +1 -1
  180. package/lib/util/asyncStore.js +1 -1
  181. package/lib/util/debug.js +1 -1
  182. package/lib/util/deprecate.js +1 -1
  183. package/lib/util/didYouMean.js +1 -1
  184. package/lib/util/extractFields.js +1 -1
  185. package/lib/util/inflector.js +1 -1
  186. package/lib/util/koncordeCompat.js +1 -1
  187. package/lib/util/memoize.js +1 -1
  188. package/lib/util/mutex.js +1 -1
  189. package/lib/util/name-generator.js +1 -1
  190. package/lib/util/promback.js +1 -1
  191. package/lib/util/requestAssertions.js +1 -1
  192. package/lib/util/safeObject.js +1 -1
  193. package/lib/util/stackTrace.js +56 -17
  194. package/lib/util/wildcard.js +1 -1
  195. package/package-lock.json +101 -97
  196. package/package.json +13 -12
  197. package/lib/core/network/removeErrorStack.js +0 -56
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -96,12 +96,17 @@ class AccessLogger {
96
96
  ? Buffer.byteLength(JSON.stringify(request.response)).toString()
97
97
  : '-';
98
98
 
99
- this.worker.postMessage({
100
- connection,
101
- extra,
102
- request: serialized,
103
- size,
104
- });
99
+ try {
100
+ this.worker.postMessage({
101
+ connection,
102
+ extra,
103
+ request: serialized,
104
+ size,
105
+ });
106
+ }
107
+ catch (error) {
108
+ global.kuzzle.log.error(`Failed to write access log for request "${request.id}": ${error.message}`);
109
+ }
105
110
  }
106
111
  }
107
112
 
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -33,7 +33,7 @@ const MqttProtocol = require('./protocols/mqttProtocol');
33
33
  const InternalProtocol = require('./protocols/internalProtocol');
34
34
  const HttpWsProtocol = require('./protocols/httpwsProtocol');
35
35
  const Manifest = require('./protocolManifest');
36
- const removeErrorStack = require('./removeErrorStack');
36
+ const { removeStacktrace } = require('../../util/stackTrace');
37
37
  const kerror = require('../../kerror');
38
38
  const { AccessLogger } = require('./accessLogger');
39
39
 
@@ -256,7 +256,7 @@ class EntryPoint {
256
256
 
257
257
  const response = _res.response.toJSON();
258
258
 
259
- cb(removeErrorStack(response));
259
+ cb(removeStacktrace(response));
260
260
  });
261
261
  }
262
262
 
@@ -298,7 +298,7 @@ class EntryPoint {
298
298
  // --------------------------------------------------------------------
299
299
 
300
300
  _broadcast (data) {
301
- const sanitized = removeErrorStack(data);
301
+ const sanitized = removeStacktrace(data);
302
302
 
303
303
  debug('[server] broadcasting data through all protocols: %a', sanitized);
304
304
 
@@ -316,7 +316,7 @@ class EntryPoint {
316
316
  request.setError(networkError.get('shutting_down'));
317
317
  this.logAccess(connection, request);
318
318
 
319
- cb(removeErrorStack(request.response.toJSON()));
319
+ cb(removeStacktrace(request.response.toJSON()));
320
320
  }
321
321
 
322
322
  _notify (data) {
@@ -332,7 +332,7 @@ class EntryPoint {
332
332
  }
333
333
 
334
334
  try {
335
- this.protocols.get(client.protocol).notify(removeErrorStack(data));
335
+ this.protocols.get(client.protocol).notify(removeStacktrace(data));
336
336
  }
337
337
  catch (e) {
338
338
  global.kuzzle.log.error(`[notify] protocol ${client.protocol} failed: ${e.message}`);
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -32,7 +32,7 @@ const { Request } = require('../../../api/request');
32
32
  const { KuzzleError } = require('../../../kerror/errors');
33
33
  const Protocol = require('./protocol');
34
34
  const ClientConnection = require('../clientConnection');
35
- const removeErrorStack = require('../removeErrorStack');
35
+ const { removeStacktrace } = require('../../../util/stackTrace');
36
36
  const debug = require('../../../util/debug');
37
37
  const kerror = require('../../../kerror');
38
38
  const HttpMessage = require('./httpMessage');
@@ -412,7 +412,7 @@ class HttpWsProtocol extends Protocol {
412
412
  // If a requestId is provided we use it instead of the generated one
413
413
  request.id = requestId || request.id;
414
414
 
415
- const sanitized = removeErrorStack(request.response.toJSON()).content;
415
+ const sanitized = removeStacktrace(request.response.toJSON()).content;
416
416
 
417
417
  this.wsSend(socket, Buffer.from(JSON.stringify(sanitized)));
418
418
  }
@@ -831,7 +831,7 @@ class HttpWsProtocol extends Protocol {
831
831
  ? error
832
832
  : kerrorHTTP.getFrom(error, 'unexpected_error', error.message);
833
833
 
834
- const content = Buffer.from(JSON.stringify(removeErrorStack(kerr)));
834
+ const content = Buffer.from(JSON.stringify(removeStacktrace(kerr)));
835
835
 
836
836
  debugHTTP('[%s] httpSendError: %a', message.connection.id, kerr);
837
837
 
@@ -866,11 +866,6 @@ class HttpWsProtocol extends Protocol {
866
866
  }
867
867
  }
868
868
 
869
-
870
- response.writeHeader(
871
- HTTP_HEADER_CONTENT_LENGTH,
872
- Buffer.from(content.length.toString()));
873
-
874
869
  response.end(content);
875
870
  });
876
871
  }
@@ -884,7 +879,7 @@ class HttpWsProtocol extends Protocol {
884
879
  * @returns {Buffer}
885
880
  */
886
881
  httpRequestToResponse (request, message) {
887
- let data = removeErrorStack(request.response.toJSON());
882
+ let data = removeStacktrace(request.response.toJSON());
888
883
 
889
884
  if (message.requestId !== data.requestId) {
890
885
  data.requestId = message.requestId;
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -22,12 +22,13 @@
22
22
  'use strict';
23
23
 
24
24
  const net = require('net');
25
+
25
26
  const aedes = require('aedes');
26
27
 
27
28
  const ClientConnection = require('../clientConnection');
28
29
  const Protocol = require('./protocol');
29
30
  const { Request } = require('../../../api/request');
30
- const removeErrorStack = require('../removeErrorStack');
31
+ const { removeStacktrace } = require('../../../util/stackTrace');
31
32
  const kerror = require('../../../kerror').wrap('network', 'mqtt');
32
33
  const debug = require('../../../util/debug')('kuzzle:network:protocols:mqtt');
33
34
 
@@ -238,7 +239,7 @@ class MqttProtocol extends Protocol {
238
239
  connection,
239
240
  error: kerror.getFrom(error, 'unexpected_error', error.message)
240
241
  });
241
- this._respond(client, removeErrorStack(errReq.response.toJSON()));
242
+ this._respond(client, removeStacktrace(errReq.response.toJSON()));
242
243
  }
243
244
 
244
245
  _authorizePublish (client, packet, callback) {
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -24,6 +24,7 @@
24
24
  const { Request } = require('../../api/request');
25
25
  const kerror = require('../../kerror');
26
26
  const HttpRouter = require('./httpRouter');
27
+ const { removeStacktrace } = require('../../util/stackTrace');
27
28
 
28
29
  /**
29
30
  * @class Router
@@ -189,7 +190,15 @@ class Router {
189
190
  cb(request);
190
191
  }
191
192
  else {
192
- global.kuzzle.funnel.execute(mutatedRequest, (err, result) => cb(result));
193
+ global.kuzzle.funnel.execute(mutatedRequest, (err, result) => {
194
+ const _res = result || request;
195
+
196
+ if (err && ! _res.error) {
197
+ _res.setError(err);
198
+ }
199
+
200
+ cb(removeStacktrace(_res));
201
+ });
193
202
  }
194
203
  });
195
204
  }
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *