kuzzle 2.49.1 → 2.50.0-beta.4

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 (591) hide show
  1. package/dist/bin/copy-protobuf.js +17 -0
  2. package/dist/lib/api/controllers/adminController.d.ts +51 -0
  3. package/dist/lib/api/controllers/adminController.js +191 -0
  4. package/{lib → dist/lib}/api/controllers/authController.d.ts +20 -40
  5. package/{lib → dist/lib}/api/controllers/authController.js +23 -24
  6. package/dist/lib/api/controllers/bulkController.d.ts +46 -0
  7. package/dist/lib/api/controllers/bulkController.js +132 -0
  8. package/dist/lib/api/controllers/clusterController.d.ts +6 -0
  9. package/{lib → dist/lib}/api/controllers/clusterController.js +7 -11
  10. package/dist/lib/api/controllers/collectionController.d.ts +136 -0
  11. package/dist/lib/api/controllers/collectionController.js +356 -0
  12. package/dist/lib/api/controllers/documentController.d.ts +181 -0
  13. package/dist/lib/api/controllers/documentController.js +768 -0
  14. package/dist/lib/api/controllers/index.d.ts +12 -0
  15. package/{lib → dist/lib}/api/controllers/index.js +13 -14
  16. package/dist/lib/api/controllers/indexController.d.ts +65 -0
  17. package/dist/lib/api/controllers/indexController.js +139 -0
  18. package/dist/lib/api/controllers/memoryStorageController.d.ts +8 -0
  19. package/dist/lib/api/controllers/memoryStorageController.js +867 -0
  20. package/dist/lib/api/controllers/realtimeController.d.ts +47 -0
  21. package/dist/lib/api/controllers/realtimeController.js +128 -0
  22. package/dist/lib/api/controllers/securityController.d.ts +423 -0
  23. package/dist/lib/api/controllers/securityController.js +1139 -0
  24. package/dist/lib/api/controllers/serverController.d.ts +82 -0
  25. package/dist/lib/api/controllers/serverController.js +321 -0
  26. package/dist/lib/api/documentExtractor.d.ts +9 -0
  27. package/dist/lib/api/documentExtractor.js +274 -0
  28. package/dist/lib/api/funnel.d.ts +183 -0
  29. package/dist/lib/api/funnel.js +821 -0
  30. package/dist/lib/api/httpRoutes.d.ts +17 -0
  31. package/dist/lib/api/httpRoutes.js +1496 -0
  32. package/dist/lib/api/rateLimiter.d.ts +18 -0
  33. package/dist/lib/api/rateLimiter.js +74 -0
  34. package/{lib → dist/lib}/api/request/kuzzleRequest.d.ts +2 -2
  35. package/{lib → dist/lib}/api/request/requestContext.d.ts +2 -1
  36. package/dist/lib/cluster/command.d.ts +73 -0
  37. package/dist/lib/cluster/command.js +236 -0
  38. package/dist/lib/cluster/index.d.ts +2 -0
  39. package/{lib → dist/lib}/cluster/index.js +1 -2
  40. package/dist/lib/cluster/node.d.ts +278 -0
  41. package/dist/lib/cluster/node.js +876 -0
  42. package/dist/lib/cluster/publisher.d.ts +188 -0
  43. package/dist/lib/cluster/publisher.js +347 -0
  44. package/dist/lib/cluster/subscriber.d.ts +269 -0
  45. package/dist/lib/cluster/subscriber.js +555 -0
  46. package/dist/lib/cluster/workers/IDCardRenewer.d.ts +13 -0
  47. package/dist/lib/cluster/workers/IDCardRenewer.js +120 -0
  48. package/{lib → dist/lib}/config/documentEventAliases.d.ts +1 -2
  49. package/dist/lib/config/index.d.ts +5 -0
  50. package/dist/lib/config/index.js +244 -0
  51. package/dist/lib/config/sdkCompatibility.json +9 -0
  52. package/dist/lib/core/auth/formatProcessing.d.ts +30 -0
  53. package/dist/lib/core/auth/formatProcessing.js +55 -0
  54. package/dist/lib/core/auth/passportResponse.d.ts +15 -0
  55. package/{lib → dist/lib}/core/auth/passportResponse.js +24 -30
  56. package/dist/lib/core/auth/passportWrapper.d.ts +28 -0
  57. package/dist/lib/core/auth/passportWrapper.js +126 -0
  58. package/{lib → dist/lib}/core/backend/backendConfig.js +2 -2
  59. package/{lib → dist/lib}/core/backend/backendErrors.js +9 -12
  60. package/dist/lib/core/cache/cacheEngine.d.ts +15 -0
  61. package/dist/lib/core/cache/cacheEngine.js +205 -0
  62. package/dist/lib/core/network/accessLogger.d.ts +29 -0
  63. package/dist/lib/core/network/accessLogger.js +250 -0
  64. package/dist/lib/core/network/clientConnection.d.ts +15 -0
  65. package/{lib → dist/lib}/core/network/clientConnection.js +17 -24
  66. package/dist/lib/core/network/context.d.ts +42 -0
  67. package/dist/lib/core/network/context.js +57 -0
  68. package/dist/lib/core/network/entryPoint.d.ts +62 -0
  69. package/dist/lib/core/network/entryPoint.js +261 -0
  70. package/dist/lib/core/network/httpRouter/index.d.ts +85 -0
  71. package/dist/lib/core/network/httpRouter/index.js +258 -0
  72. package/dist/lib/core/network/httpRouter/routeHandler.d.ts +46 -0
  73. package/dist/lib/core/network/httpRouter/routeHandler.js +101 -0
  74. package/dist/lib/core/network/httpRouter/routePart.d.ts +35 -0
  75. package/dist/lib/core/network/httpRouter/routePart.js +117 -0
  76. package/dist/lib/core/network/protocolManifest.d.ts +6 -0
  77. package/{lib → dist/lib}/core/network/protocolManifest.js +5 -9
  78. package/dist/lib/core/network/protocols/httpMessage.d.ts +22 -0
  79. package/dist/lib/core/network/protocols/httpMessage.js +62 -0
  80. package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +171 -0
  81. package/dist/lib/core/network/protocols/httpwsProtocol.js +921 -0
  82. package/dist/lib/core/network/protocols/internalProtocol.d.ts +27 -0
  83. package/dist/lib/core/network/protocols/internalProtocol.js +82 -0
  84. package/dist/lib/core/network/protocols/mqttProtocol.d.ts +39 -0
  85. package/dist/lib/core/network/protocols/mqttProtocol.js +219 -0
  86. package/dist/lib/core/network/protocols/protocol.d.ts +26 -0
  87. package/dist/lib/core/network/protocols/protocol.js +74 -0
  88. package/dist/lib/core/network/router.d.ts +49 -0
  89. package/dist/lib/core/network/router.js +193 -0
  90. package/dist/lib/core/plugin/plugin.d.ts +56 -0
  91. package/dist/lib/core/plugin/plugin.js +282 -0
  92. package/{lib → dist/lib}/core/plugin/pluginContext.js +2 -2
  93. package/dist/lib/core/plugin/pluginManifest.d.ts +5 -0
  94. package/{lib → dist/lib}/core/plugin/pluginManifest.js +16 -27
  95. package/dist/lib/core/plugin/pluginRepository.d.ts +53 -0
  96. package/dist/lib/core/plugin/pluginRepository.js +112 -0
  97. package/dist/lib/core/plugin/pluginsManager.d.ts +190 -0
  98. package/dist/lib/core/plugin/pluginsManager.js +817 -0
  99. package/dist/lib/core/plugin/privilegedContext.d.ts +14 -0
  100. package/{lib → dist/lib}/core/plugin/privilegedContext.js +10 -14
  101. package/dist/lib/core/realtime/actionEnum.d.ts +25 -0
  102. package/{lib → dist/lib}/core/realtime/actionEnum.js +7 -10
  103. package/dist/lib/core/realtime/index.d.ts +8 -0
  104. package/{lib → dist/lib}/core/realtime/index.js +9 -13
  105. package/dist/lib/core/realtime/notification/document.d.ts +34 -0
  106. package/dist/lib/core/realtime/notification/document.js +98 -0
  107. package/dist/lib/core/realtime/notification/index.d.ts +3 -0
  108. package/{lib → dist/lib}/core/realtime/notification/index.js +4 -5
  109. package/dist/lib/core/realtime/notification/server.d.ts +17 -0
  110. package/{lib → dist/lib}/core/realtime/notification/server.js +8 -10
  111. package/dist/lib/core/realtime/notification/user.d.ts +29 -0
  112. package/dist/lib/core/realtime/notification/user.js +66 -0
  113. package/dist/lib/core/realtime/notifier.d.ts +171 -0
  114. package/dist/lib/core/realtime/notifier.js +405 -0
  115. package/dist/lib/core/security/index.d.ts +14 -0
  116. package/{lib → dist/lib}/core/security/index.js +15 -19
  117. package/dist/lib/core/security/roleRepository.d.ts +143 -0
  118. package/dist/lib/core/security/roleRepository.js +445 -0
  119. package/dist/lib/core/security/securityLoader.d.ts +24 -0
  120. package/dist/lib/core/security/securityLoader.js +125 -0
  121. package/{lib → dist/lib}/core/security/tokenRepository.js +1 -1
  122. package/dist/lib/core/security/userRepository.d.ts +81 -0
  123. package/dist/lib/core/security/userRepository.js +346 -0
  124. package/dist/lib/core/shared/abstractManifest.d.ts +27 -0
  125. package/dist/lib/core/shared/abstractManifest.js +85 -0
  126. package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +7 -0
  127. package/dist/lib/core/shared/sdk/impersonatedSdk.js +80 -0
  128. package/{lib → dist/lib}/core/shared/store.d.ts +2 -2
  129. package/dist/lib/core/statistics/statistics.d.ts +94 -0
  130. package/dist/lib/core/statistics/statistics.js +287 -0
  131. package/dist/lib/core/storage/clientAdapter.d.ts +62 -0
  132. package/dist/lib/core/storage/clientAdapter.js +756 -0
  133. package/dist/lib/core/storage/storageEngine.d.ts +13 -0
  134. package/dist/lib/core/storage/storageEngine.js +52 -0
  135. package/dist/lib/core/validation/baseType.d.ts +35 -0
  136. package/dist/lib/core/validation/baseType.js +70 -0
  137. package/dist/lib/core/validation/types/anything.d.ts +10 -0
  138. package/{lib → dist/lib}/core/validation/types/anything.js +7 -10
  139. package/dist/lib/core/validation/types/boolean.d.ts +16 -0
  140. package/{lib → dist/lib}/core/validation/types/boolean.js +18 -23
  141. package/dist/lib/core/validation/types/date.d.ts +17 -0
  142. package/dist/lib/core/validation/types/date.js +215 -0
  143. package/dist/lib/core/validation/types/email.d.ts +17 -0
  144. package/dist/lib/core/validation/types/email.js +80 -0
  145. package/dist/lib/core/validation/types/enum.d.ts +17 -0
  146. package/dist/lib/core/validation/types/enum.js +70 -0
  147. package/dist/lib/core/validation/types/geoPoint.d.ts +17 -0
  148. package/{lib → dist/lib}/core/validation/types/geoPoint.js +19 -24
  149. package/dist/lib/core/validation/types/geoShape.d.ts +31 -0
  150. package/dist/lib/core/validation/types/geoShape.js +280 -0
  151. package/dist/lib/core/validation/types/integer.d.ts +7 -0
  152. package/{lib → dist/lib}/core/validation/types/integer.js +21 -27
  153. package/dist/lib/core/validation/types/ipAddress.d.ts +17 -0
  154. package/dist/lib/core/validation/types/ipAddress.js +73 -0
  155. package/dist/lib/core/validation/types/numeric.d.ts +17 -0
  156. package/dist/lib/core/validation/types/numeric.js +84 -0
  157. package/dist/lib/core/validation/types/object.d.ts +24 -0
  158. package/dist/lib/core/validation/types/object.js +74 -0
  159. package/dist/lib/core/validation/types/string.d.ts +17 -0
  160. package/dist/lib/core/validation/types/string.js +85 -0
  161. package/dist/lib/core/validation/types/url.d.ts +17 -0
  162. package/dist/lib/core/validation/types/url.js +73 -0
  163. package/dist/lib/core/validation/validation.d.ts +113 -0
  164. package/dist/lib/core/validation/validation.js +692 -0
  165. package/dist/lib/kerror/codes/0-core.json +194 -0
  166. package/dist/lib/kerror/codes/1-services.json +351 -0
  167. package/dist/lib/kerror/codes/2-api.json +195 -0
  168. package/dist/lib/kerror/codes/3-network.json +151 -0
  169. package/dist/lib/kerror/codes/4-plugin.json +498 -0
  170. package/dist/lib/kerror/codes/5-validation.json +158 -0
  171. package/dist/lib/kerror/codes/6-protocol.json +28 -0
  172. package/dist/lib/kerror/codes/7-security.json +283 -0
  173. package/dist/lib/kerror/codes/8-cluster.json +16 -0
  174. package/dist/lib/kerror/codes/index.d.ts +24 -0
  175. package/dist/lib/kerror/codes/index.js +140 -0
  176. package/{lib → dist/lib}/kerror/index.d.ts +5 -5
  177. package/{lib → dist/lib}/kuzzle/Logger.d.ts +6 -0
  178. package/{lib → dist/lib}/kuzzle/Logger.js +26 -5
  179. package/dist/lib/kuzzle/dumpGenerator.d.ts +14 -0
  180. package/dist/lib/kuzzle/dumpGenerator.js +180 -0
  181. package/dist/lib/kuzzle/event/pipeRunner.d.ts +30 -0
  182. package/dist/lib/kuzzle/event/pipeRunner.js +119 -0
  183. package/dist/lib/kuzzle/event/waterfall.d.ts +2 -0
  184. package/dist/lib/kuzzle/event/waterfall.js +90 -0
  185. package/dist/lib/kuzzle/internalIndexHandler.d.ts +186 -0
  186. package/dist/lib/kuzzle/internalIndexHandler.js +174 -0
  187. package/{lib → dist/lib}/kuzzle/kuzzle.d.ts +6 -7
  188. package/{lib → dist/lib}/kuzzle/kuzzle.js +5 -2
  189. package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +20 -0
  190. package/{lib → dist/lib}/kuzzle/kuzzleStateEnum.js +5 -8
  191. package/dist/lib/kuzzle/vault.d.ts +2 -0
  192. package/dist/lib/kuzzle/vault.js +63 -0
  193. package/dist/lib/model/security/rights.d.ts +8 -0
  194. package/{lib → dist/lib}/model/security/rights.js +4 -8
  195. package/{lib → dist/lib}/model/security/role.d.ts +1 -1
  196. package/{lib → dist/lib}/model/security/user.d.ts +1 -0
  197. package/dist/lib/model/storage/apiKey.d.ts +49 -0
  198. package/dist/lib/model/storage/apiKey.js +126 -0
  199. package/dist/lib/model/storage/baseModel.d.ts +100 -0
  200. package/dist/lib/model/storage/baseModel.js +211 -0
  201. package/dist/lib/service/cache/redis.d.ts +74 -0
  202. package/dist/lib/service/cache/redis.js +237 -0
  203. package/dist/lib/service/service.d.ts +30 -0
  204. package/dist/lib/service/service.js +74 -0
  205. package/{lib → dist/lib}/service/storage/7/elasticsearch.d.ts +2 -2
  206. package/{lib → dist/lib}/service/storage/7/elasticsearch.js +23 -25
  207. package/dist/lib/service/storage/7/esWrapper.d.ts +19 -0
  208. package/dist/lib/service/storage/7/esWrapper.js +245 -0
  209. package/{lib → dist/lib}/service/storage/8/elasticsearch.js +23 -25
  210. package/dist/lib/service/storage/8/esWrapper.d.ts +19 -0
  211. package/dist/lib/service/storage/8/esWrapper.js +245 -0
  212. package/{lib → dist/lib}/types/Plugin.d.ts +1 -1
  213. package/{lib/types → dist/lib/types/controllers}/Controller.d.ts +2 -2
  214. package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.d.ts +1 -1
  215. package/dist/lib/types/controllers/adminControlller.type.d.ts +5 -0
  216. package/dist/lib/types/controllers/adminControlller.type.js +3 -0
  217. package/dist/lib/types/controllers/authController.type.d.ts +5 -0
  218. package/dist/lib/types/controllers/authController.type.js +3 -0
  219. package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -0
  220. package/dist/lib/types/core/auth/formatProcessing.type.js +3 -0
  221. package/{lib → dist/lib}/types/index.d.ts +3 -3
  222. package/{lib → dist/lib}/types/index.js +3 -3
  223. package/dist/lib/util/assertType.d.ts +41 -0
  224. package/{lib → dist/lib}/util/assertType.js +38 -56
  225. package/dist/lib/util/asyncStore.d.ts +38 -0
  226. package/dist/lib/util/asyncStore.js +70 -0
  227. package/dist/lib/util/bytes.d.ts +2 -0
  228. package/dist/lib/util/bytes.js +33 -0
  229. package/dist/lib/util/debug.d.ts +2 -0
  230. package/{lib → dist/lib}/util/debug.js +15 -23
  231. package/dist/lib/util/deprecate.d.ts +1 -0
  232. package/dist/lib/util/deprecate.js +64 -0
  233. package/dist/lib/util/didYouMean.d.ts +2 -0
  234. package/{lib → dist/lib}/util/didYouMean.js +9 -15
  235. package/dist/lib/util/extractFields.d.ts +17 -0
  236. package/{lib → dist/lib}/util/extractFields.js +18 -32
  237. package/dist/lib/util/memoize.d.ts +7 -0
  238. package/{lib → dist/lib}/util/memoize.js +14 -21
  239. package/dist/lib/util/promback.d.ts +13 -0
  240. package/dist/lib/util/promback.js +60 -0
  241. package/dist/lib/util/requestAssertions.d.ts +10 -0
  242. package/dist/lib/util/requestAssertions.js +143 -0
  243. package/dist/lib/util/safeObject.d.ts +3 -0
  244. package/{lib → dist/lib}/util/safeObject.js +7 -13
  245. package/dist/lib/util/stackTrace.d.ts +19 -0
  246. package/{lib → dist/lib}/util/stackTrace.js +35 -41
  247. package/dist/lib/util/wildcard.d.ts +1 -0
  248. package/{lib → dist/lib}/util/wildcard.js +21 -30
  249. package/dist/package.json +119 -0
  250. package/package.json +44 -58
  251. package/bin/start-kuzzle-server +0 -126
  252. package/check-node-version.js +0 -17
  253. package/lib/api/controllers/adminController.js +0 -229
  254. package/lib/api/controllers/bulkController.js +0 -210
  255. package/lib/api/controllers/collectionController.js +0 -502
  256. package/lib/api/controllers/documentController.js +0 -1156
  257. package/lib/api/controllers/indexController.js +0 -179
  258. package/lib/api/controllers/memoryStorageController.js +0 -1023
  259. package/lib/api/controllers/realtimeController.js +0 -155
  260. package/lib/api/controllers/securityController.js +0 -1571
  261. package/lib/api/controllers/serverController.js +0 -381
  262. package/lib/api/documentExtractor.js +0 -309
  263. package/lib/api/funnel.js +0 -1143
  264. package/lib/api/httpRoutes.js +0 -1547
  265. package/lib/api/rateLimiter.js +0 -87
  266. package/lib/cluster/command.js +0 -284
  267. package/lib/cluster/node.js +0 -1203
  268. package/lib/cluster/publisher.js +0 -386
  269. package/lib/cluster/subscriber.js +0 -776
  270. package/lib/cluster/workers/IDCardRenewer.js +0 -144
  271. package/lib/config/index.js +0 -351
  272. package/lib/config/sdkCompatibility.json +0 -9
  273. package/lib/core/auth/formatProcessing.js +0 -66
  274. package/lib/core/auth/passportWrapper.js +0 -126
  275. package/lib/core/cache/cacheEngine.js +0 -278
  276. package/lib/core/network/accessLogger.js +0 -322
  277. package/lib/core/network/context.js +0 -80
  278. package/lib/core/network/entryPoint.js +0 -358
  279. package/lib/core/network/httpRouter/index.js +0 -316
  280. package/lib/core/network/httpRouter/routeHandler.js +0 -111
  281. package/lib/core/network/httpRouter/routePart.js +0 -147
  282. package/lib/core/network/protocols/httpMessage.js +0 -69
  283. package/lib/core/network/protocols/httpwsProtocol.js +0 -1254
  284. package/lib/core/network/protocols/internalProtocol.js +0 -109
  285. package/lib/core/network/protocols/mqttProtocol.js +0 -291
  286. package/lib/core/network/protocols/protocol.js +0 -102
  287. package/lib/core/network/router.js +0 -255
  288. package/lib/core/plugin/plugin.js +0 -436
  289. package/lib/core/plugin/pluginRepository.js +0 -132
  290. package/lib/core/plugin/pluginsManager.js +0 -1244
  291. package/lib/core/realtime/notification/document.js +0 -108
  292. package/lib/core/realtime/notification/user.js +0 -70
  293. package/lib/core/realtime/notifier.js +0 -541
  294. package/lib/core/security/README.md +0 -223
  295. package/lib/core/security/roleRepository.js +0 -569
  296. package/lib/core/security/securityLoader.js +0 -174
  297. package/lib/core/security/userRepository.js +0 -446
  298. package/lib/core/shared/README.md +0 -3
  299. package/lib/core/shared/abstractManifest.js +0 -102
  300. package/lib/core/shared/sdk/impersonatedSdk.js +0 -94
  301. package/lib/core/statistics/index.js +0 -24
  302. package/lib/core/statistics/statistics.js +0 -373
  303. package/lib/core/storage/clientAdapter.js +0 -1045
  304. package/lib/core/storage/storageEngine.js +0 -63
  305. package/lib/core/validation/baseType.js +0 -80
  306. package/lib/core/validation/index.js +0 -24
  307. package/lib/core/validation/types/date.js +0 -284
  308. package/lib/core/validation/types/email.js +0 -92
  309. package/lib/core/validation/types/enum.js +0 -100
  310. package/lib/core/validation/types/geoShape.js +0 -370
  311. package/lib/core/validation/types/ipAddress.js +0 -83
  312. package/lib/core/validation/types/numeric.js +0 -108
  313. package/lib/core/validation/types/object.js +0 -88
  314. package/lib/core/validation/types/string.js +0 -110
  315. package/lib/core/validation/types/url.js +0 -83
  316. package/lib/core/validation/validation.js +0 -1180
  317. package/lib/kerror/codes/0-core.json +0 -194
  318. package/lib/kerror/codes/1-services.json +0 -351
  319. package/lib/kerror/codes/2-api.json +0 -195
  320. package/lib/kerror/codes/3-network.json +0 -151
  321. package/lib/kerror/codes/4-plugin.json +0 -498
  322. package/lib/kerror/codes/5-validation.json +0 -158
  323. package/lib/kerror/codes/6-protocol.json +0 -28
  324. package/lib/kerror/codes/7-security.json +0 -283
  325. package/lib/kerror/codes/8-cluster.json +0 -16
  326. package/lib/kerror/codes/index.js +0 -208
  327. package/lib/kuzzle/dumpGenerator.js +0 -259
  328. package/lib/kuzzle/event/pipeRunner.js +0 -144
  329. package/lib/kuzzle/event/waterfall.js +0 -101
  330. package/lib/kuzzle/internalIndexHandler.js +0 -234
  331. package/lib/kuzzle/vault.js +0 -89
  332. package/lib/model/storage/apiKey.js +0 -158
  333. package/lib/model/storage/baseModel.js +0 -275
  334. package/lib/service/cache/redis.js +0 -282
  335. package/lib/service/service.js +0 -84
  336. package/lib/service/storage/7/esWrapper.js +0 -303
  337. package/lib/service/storage/8/esWrapper.js +0 -303
  338. package/lib/util/asyncStore.js +0 -112
  339. package/lib/util/bytes.js +0 -36
  340. package/lib/util/deprecate.js +0 -82
  341. package/lib/util/promback.js +0 -66
  342. package/lib/util/readYamlFile.d.ts +0 -2
  343. package/lib/util/readYamlFile.js +0 -10
  344. package/lib/util/requestAssertions.js +0 -157
  345. /package/{index.d.ts → dist/index.d.ts} +0 -0
  346. /package/{index.js → dist/index.js} +0 -0
  347. /package/{lib → dist/lib}/api/controllers/baseController.d.ts +0 -0
  348. /package/{lib → dist/lib}/api/controllers/baseController.js +0 -0
  349. /package/{lib → dist/lib}/api/controllers/debugController.d.ts +0 -0
  350. /package/{lib → dist/lib}/api/controllers/debugController.js +0 -0
  351. /package/{lib → dist/lib}/api/openapi/OpenApiManager.d.ts +0 -0
  352. /package/{lib → dist/lib}/api/openapi/OpenApiManager.js +0 -0
  353. /package/{lib → dist/lib}/api/openapi/index.d.ts +0 -0
  354. /package/{lib → dist/lib}/api/openapi/index.js +0 -0
  355. /package/{lib → dist/lib}/api/openapi/openApiGenerator.d.ts +0 -0
  356. /package/{lib → dist/lib}/api/openapi/openApiGenerator.js +0 -0
  357. /package/{lib → dist/lib}/api/request/index.d.ts +0 -0
  358. /package/{lib → dist/lib}/api/request/index.js +0 -0
  359. /package/{lib → dist/lib}/api/request/kuzzleRequest.js +0 -0
  360. /package/{lib → dist/lib}/api/request/requestContext.js +0 -0
  361. /package/{lib → dist/lib}/api/request/requestInput.d.ts +0 -0
  362. /package/{lib → dist/lib}/api/request/requestInput.js +0 -0
  363. /package/{lib → dist/lib}/api/request/requestResponse.d.ts +0 -0
  364. /package/{lib → dist/lib}/api/request/requestResponse.js +0 -0
  365. /package/{lib → dist/lib}/cluster/idCardHandler.d.ts +0 -0
  366. /package/{lib → dist/lib}/cluster/idCardHandler.js +0 -0
  367. /package/{lib → dist/lib}/cluster/protobuf/command.proto +0 -0
  368. /package/{lib → dist/lib}/cluster/protobuf/sync.proto +0 -0
  369. /package/{lib → dist/lib}/cluster/state.d.ts +0 -0
  370. /package/{lib → dist/lib}/cluster/state.js +0 -0
  371. /package/{lib → dist/lib}/config/default.config.d.ts +0 -0
  372. /package/{lib → dist/lib}/config/default.config.js +0 -0
  373. /package/{lib → dist/lib}/config/documentEventAliases.js +0 -0
  374. /package/{lib → dist/lib}/core/auth/tokenManager.d.ts +0 -0
  375. /package/{lib → dist/lib}/core/auth/tokenManager.js +0 -0
  376. /package/{lib → dist/lib}/core/backend/applicationManager.d.ts +0 -0
  377. /package/{lib → dist/lib}/core/backend/applicationManager.js +0 -0
  378. /package/{lib → dist/lib}/core/backend/backend.d.ts +0 -0
  379. /package/{lib → dist/lib}/core/backend/backend.js +0 -0
  380. /package/{lib → dist/lib}/core/backend/backendCluster.d.ts +0 -0
  381. /package/{lib → dist/lib}/core/backend/backendCluster.js +0 -0
  382. /package/{lib → dist/lib}/core/backend/backendConfig.d.ts +0 -0
  383. /package/{lib → dist/lib}/core/backend/backendController.d.ts +0 -0
  384. /package/{lib → dist/lib}/core/backend/backendController.js +0 -0
  385. /package/{lib → dist/lib}/core/backend/backendErrors.d.ts +0 -0
  386. /package/{lib → dist/lib}/core/backend/backendHook.d.ts +0 -0
  387. /package/{lib → dist/lib}/core/backend/backendHook.js +0 -0
  388. /package/{lib → dist/lib}/core/backend/backendImport.d.ts +0 -0
  389. /package/{lib → dist/lib}/core/backend/backendImport.js +0 -0
  390. /package/{lib → dist/lib}/core/backend/backendOpenApi.d.ts +0 -0
  391. /package/{lib → dist/lib}/core/backend/backendOpenApi.js +0 -0
  392. /package/{lib → dist/lib}/core/backend/backendPipe.d.ts +0 -0
  393. /package/{lib → dist/lib}/core/backend/backendPipe.js +0 -0
  394. /package/{lib → dist/lib}/core/backend/backendPlugin.d.ts +0 -0
  395. /package/{lib → dist/lib}/core/backend/backendPlugin.js +0 -0
  396. /package/{lib → dist/lib}/core/backend/backendStorage.d.ts +0 -0
  397. /package/{lib → dist/lib}/core/backend/backendStorage.js +0 -0
  398. /package/{lib → dist/lib}/core/backend/backendSubscription.d.ts +0 -0
  399. /package/{lib → dist/lib}/core/backend/backendSubscription.js +0 -0
  400. /package/{lib → dist/lib}/core/backend/backendVault.d.ts +0 -0
  401. /package/{lib → dist/lib}/core/backend/backendVault.js +0 -0
  402. /package/{lib → dist/lib}/core/backend/index.d.ts +0 -0
  403. /package/{lib → dist/lib}/core/backend/index.js +0 -0
  404. /package/{lib → dist/lib}/core/backend/internalLogger.d.ts +0 -0
  405. /package/{lib → dist/lib}/core/backend/internalLogger.js +0 -0
  406. /package/{lib → dist/lib}/core/cache/cacheDbEnum.d.ts +0 -0
  407. /package/{lib → dist/lib}/core/cache/cacheDbEnum.js +0 -0
  408. /package/{lib → dist/lib}/core/debug/kuzzleDebugger.d.ts +0 -0
  409. /package/{lib → dist/lib}/core/debug/kuzzleDebugger.js +0 -0
  410. /package/{lib → dist/lib}/core/plugin/pluginContext.d.ts +0 -0
  411. /package/{lib → dist/lib}/core/realtime/channel.d.ts +0 -0
  412. /package/{lib → dist/lib}/core/realtime/channel.js +0 -0
  413. /package/{lib → dist/lib}/core/realtime/connectionRooms.d.ts +0 -0
  414. /package/{lib → dist/lib}/core/realtime/connectionRooms.js +0 -0
  415. /package/{lib → dist/lib}/core/realtime/hotelClerk.d.ts +0 -0
  416. /package/{lib → dist/lib}/core/realtime/hotelClerk.js +0 -0
  417. /package/{lib → dist/lib}/core/realtime/room.d.ts +0 -0
  418. /package/{lib → dist/lib}/core/realtime/room.js +0 -0
  419. /package/{lib → dist/lib}/core/realtime/subscription.d.ts +0 -0
  420. /package/{lib → dist/lib}/core/realtime/subscription.js +0 -0
  421. /package/{lib → dist/lib}/core/security/profileRepository.d.ts +0 -0
  422. /package/{lib → dist/lib}/core/security/profileRepository.js +0 -0
  423. /package/{lib → dist/lib}/core/security/tokenRepository.d.ts +0 -0
  424. /package/{lib → dist/lib}/core/shared/KoncordeWrapper.d.ts +0 -0
  425. /package/{lib → dist/lib}/core/shared/KoncordeWrapper.js +0 -0
  426. /package/{lib → dist/lib}/core/shared/ObjectRepository.d.ts +0 -0
  427. /package/{lib → dist/lib}/core/shared/ObjectRepository.js +0 -0
  428. /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.d.ts +0 -0
  429. /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.js +0 -0
  430. /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.d.ts +0 -0
  431. /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.js +0 -0
  432. /package/{lib → dist/lib}/core/shared/store.js +0 -0
  433. /package/{lib → dist/lib}/core/storage/indexCache.d.ts +0 -0
  434. /package/{lib → dist/lib}/core/storage/indexCache.js +0 -0
  435. /package/{lib → dist/lib}/core/storage/storeScopeEnum.d.ts +0 -0
  436. /package/{lib → dist/lib}/core/storage/storeScopeEnum.js +0 -0
  437. /package/{lib → dist/lib}/kerror/errors/badRequestError.d.ts +0 -0
  438. /package/{lib → dist/lib}/kerror/errors/badRequestError.js +0 -0
  439. /package/{lib → dist/lib}/kerror/errors/externalServiceError.d.ts +0 -0
  440. /package/{lib → dist/lib}/kerror/errors/externalServiceError.js +0 -0
  441. /package/{lib → dist/lib}/kerror/errors/forbiddenError.d.ts +0 -0
  442. /package/{lib → dist/lib}/kerror/errors/forbiddenError.js +0 -0
  443. /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.d.ts +0 -0
  444. /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.js +0 -0
  445. /package/{lib → dist/lib}/kerror/errors/index.d.ts +0 -0
  446. /package/{lib → dist/lib}/kerror/errors/index.js +0 -0
  447. /package/{lib → dist/lib}/kerror/errors/internalError.d.ts +0 -0
  448. /package/{lib → dist/lib}/kerror/errors/internalError.js +0 -0
  449. /package/{lib → dist/lib}/kerror/errors/kuzzleError.d.ts +0 -0
  450. /package/{lib → dist/lib}/kerror/errors/kuzzleError.js +0 -0
  451. /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.d.ts +0 -0
  452. /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.js +0 -0
  453. /package/{lib → dist/lib}/kerror/errors/notFoundError.d.ts +0 -0
  454. /package/{lib → dist/lib}/kerror/errors/notFoundError.js +0 -0
  455. /package/{lib → dist/lib}/kerror/errors/partialError.d.ts +0 -0
  456. /package/{lib → dist/lib}/kerror/errors/partialError.js +0 -0
  457. /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.d.ts +0 -0
  458. /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.js +0 -0
  459. /package/{lib → dist/lib}/kerror/errors/preconditionError.d.ts +0 -0
  460. /package/{lib → dist/lib}/kerror/errors/preconditionError.js +0 -0
  461. /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.d.ts +0 -0
  462. /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.js +0 -0
  463. /package/{lib → dist/lib}/kerror/errors/sizeLimitError.d.ts +0 -0
  464. /package/{lib → dist/lib}/kerror/errors/sizeLimitError.js +0 -0
  465. /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.d.ts +0 -0
  466. /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.js +0 -0
  467. /package/{lib → dist/lib}/kerror/errors/unauthorizedError.d.ts +0 -0
  468. /package/{lib → dist/lib}/kerror/errors/unauthorizedError.js +0 -0
  469. /package/{lib → dist/lib}/kerror/index.js +0 -0
  470. /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.d.ts +0 -0
  471. /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.js +0 -0
  472. /package/{lib → dist/lib}/kuzzle/index.d.ts +0 -0
  473. /package/{lib → dist/lib}/kuzzle/index.js +0 -0
  474. /package/{lib → dist/lib}/model/security/profile.d.ts +0 -0
  475. /package/{lib → dist/lib}/model/security/profile.js +0 -0
  476. /package/{lib → dist/lib}/model/security/role.js +0 -0
  477. /package/{lib → dist/lib}/model/security/token.d.ts +0 -0
  478. /package/{lib → dist/lib}/model/security/token.js +0 -0
  479. /package/{lib → dist/lib}/model/security/user.js +0 -0
  480. /package/{lib → dist/lib}/service/storage/8/elasticsearch.d.ts +0 -0
  481. /package/{lib → dist/lib}/service/storage/Elasticsearch.d.ts +0 -0
  482. /package/{lib → dist/lib}/service/storage/Elasticsearch.js +0 -0
  483. /package/{lib → dist/lib}/service/storage/commons/queryTranslator.d.ts +0 -0
  484. /package/{lib → dist/lib}/service/storage/commons/queryTranslator.js +0 -0
  485. /package/{lib → dist/lib}/types/ClientConnection.d.ts +0 -0
  486. /package/{lib → dist/lib}/types/ClientConnection.js +0 -0
  487. /package/{lib → dist/lib}/types/Deprecation.d.ts +0 -0
  488. /package/{lib → dist/lib}/types/Deprecation.js +0 -0
  489. /package/{lib → dist/lib}/types/EventHandler.d.ts +0 -0
  490. /package/{lib → dist/lib}/types/EventHandler.js +0 -0
  491. /package/{lib → dist/lib}/types/Global.d.ts +0 -0
  492. /package/{lib → dist/lib}/types/Global.js +0 -0
  493. /package/{lib → dist/lib}/types/HttpMessage.d.ts +0 -0
  494. /package/{lib → dist/lib}/types/HttpMessage.js +0 -0
  495. /package/{lib → dist/lib}/types/HttpStream.d.ts +0 -0
  496. /package/{lib → dist/lib}/types/HttpStream.js +0 -0
  497. /package/{lib → dist/lib}/types/Kuzzle.d.ts +0 -0
  498. /package/{lib → dist/lib}/types/Kuzzle.js +0 -0
  499. /package/{lib → dist/lib}/types/KuzzleDocument.d.ts +0 -0
  500. /package/{lib → dist/lib}/types/KuzzleDocument.js +0 -0
  501. /package/{lib → dist/lib}/types/OpenApiDefinition.d.ts +0 -0
  502. /package/{lib → dist/lib}/types/OpenApiDefinition.js +0 -0
  503. /package/{lib → dist/lib}/types/PasswordPolicy.d.ts +0 -0
  504. /package/{lib → dist/lib}/types/PasswordPolicy.js +0 -0
  505. /package/{lib → dist/lib}/types/Plugin.js +0 -0
  506. /package/{lib → dist/lib}/types/PluginManifest.d.ts +0 -0
  507. /package/{lib → dist/lib}/types/PluginManifest.js +0 -0
  508. /package/{lib → dist/lib}/types/Policy.d.ts +0 -0
  509. /package/{lib → dist/lib}/types/Policy.js +0 -0
  510. /package/{lib → dist/lib}/types/PolicyRestrictions.d.ts +0 -0
  511. /package/{lib → dist/lib}/types/PolicyRestrictions.js +0 -0
  512. /package/{lib → dist/lib}/types/ProfileDefinition.d.ts +0 -0
  513. /package/{lib → dist/lib}/types/ProfileDefinition.js +0 -0
  514. /package/{lib → dist/lib}/types/RoleDefinition.d.ts +0 -0
  515. /package/{lib → dist/lib}/types/RoleDefinition.js +0 -0
  516. /package/{lib → dist/lib}/types/StrategyDefinition.d.ts +0 -0
  517. /package/{lib → dist/lib}/types/StrategyDefinition.js +0 -0
  518. /package/{lib → dist/lib}/types/Target.d.ts +0 -0
  519. /package/{lib → dist/lib}/types/Target.js +0 -0
  520. /package/{lib → dist/lib}/types/Token.d.ts +0 -0
  521. /package/{lib → dist/lib}/types/Token.js +0 -0
  522. /package/{lib → dist/lib}/types/User.d.ts +0 -0
  523. /package/{lib → dist/lib}/types/User.js +0 -0
  524. /package/{lib → dist/lib}/types/config/DumpConfiguration.d.ts +0 -0
  525. /package/{lib → dist/lib}/types/config/DumpConfiguration.js +0 -0
  526. /package/{lib → dist/lib}/types/config/HttpConfiguration.d.ts +0 -0
  527. /package/{lib → dist/lib}/types/config/HttpConfiguration.js +0 -0
  528. /package/{lib → dist/lib}/types/config/KuzzleConfiguration.d.ts +0 -0
  529. /package/{lib → dist/lib}/types/config/KuzzleConfiguration.js +0 -0
  530. /package/{lib → dist/lib}/types/config/LimitsConfiguration.d.ts +0 -0
  531. /package/{lib → dist/lib}/types/config/LimitsConfiguration.js +0 -0
  532. /package/{lib → dist/lib}/types/config/PluginsConfiguration.d.ts +0 -0
  533. /package/{lib → dist/lib}/types/config/PluginsConfiguration.js +0 -0
  534. /package/{lib → dist/lib}/types/config/SecurityConfiguration.d.ts +0 -0
  535. /package/{lib → dist/lib}/types/config/SecurityConfiguration.js +0 -0
  536. /package/{lib → dist/lib}/types/config/ServerConfiguration.d.ts +0 -0
  537. /package/{lib → dist/lib}/types/config/ServerConfiguration.js +0 -0
  538. /package/{lib → dist/lib}/types/config/ServicesConfiguration.d.ts +0 -0
  539. /package/{lib → dist/lib}/types/config/ServicesConfiguration.js +0 -0
  540. /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +0 -0
  541. /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.js +0 -0
  542. /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +0 -0
  543. /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.js +0 -0
  544. /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +0 -0
  545. /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.js +0 -0
  546. /package/{lib/types → dist/lib/types/controllers}/Controller.js +0 -0
  547. /package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.js +0 -0
  548. /package/{lib/types → dist/lib/types/controllers}/ControllerRights.d.ts +0 -0
  549. /package/{lib/types → dist/lib/types/controllers}/ControllerRights.js +0 -0
  550. /package/{lib → dist/lib}/types/errors/ErrorDefinition.d.ts +0 -0
  551. /package/{lib → dist/lib}/types/errors/ErrorDefinition.js +0 -0
  552. /package/{lib → dist/lib}/types/errors/ErrorDomains.d.ts +0 -0
  553. /package/{lib → dist/lib}/types/errors/ErrorDomains.js +0 -0
  554. /package/{lib → dist/lib}/types/events/EventGenericDocument.d.ts +0 -0
  555. /package/{lib → dist/lib}/types/events/EventGenericDocument.js +0 -0
  556. /package/{lib → dist/lib}/types/events/EventProtocol.d.ts +0 -0
  557. /package/{lib → dist/lib}/types/events/EventProtocol.js +0 -0
  558. /package/{lib → dist/lib}/types/realtime/RealtimeScope.d.ts +0 -0
  559. /package/{lib → dist/lib}/types/realtime/RealtimeScope.js +0 -0
  560. /package/{lib → dist/lib}/types/realtime/RealtimeUsers.d.ts +0 -0
  561. /package/{lib → dist/lib}/types/realtime/RealtimeUsers.js +0 -0
  562. /package/{lib → dist/lib}/types/realtime/RoomList.d.ts +0 -0
  563. /package/{lib → dist/lib}/types/realtime/RoomList.js +0 -0
  564. /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.d.ts +0 -0
  565. /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.js +0 -0
  566. /package/{lib → dist/lib}/types/storage/7/Elasticsearch.d.ts +0 -0
  567. /package/{lib → dist/lib}/types/storage/7/Elasticsearch.js +0 -0
  568. /package/{lib → dist/lib}/types/storage/8/Elasticsearch.d.ts +0 -0
  569. /package/{lib → dist/lib}/types/storage/8/Elasticsearch.js +0 -0
  570. /package/{lib → dist/lib}/util/Inflector.d.ts +0 -0
  571. /package/{lib → dist/lib}/util/Inflector.js +0 -0
  572. /package/{lib → dist/lib}/util/array.d.ts +0 -0
  573. /package/{lib → dist/lib}/util/array.js +0 -0
  574. /package/{lib → dist/lib}/util/async.d.ts +0 -0
  575. /package/{lib → dist/lib}/util/async.js +0 -0
  576. /package/{lib → dist/lib}/util/bufferedPassThrough.d.ts +0 -0
  577. /package/{lib → dist/lib}/util/bufferedPassThrough.js +0 -0
  578. /package/{lib → dist/lib}/util/crypto.d.ts +0 -0
  579. /package/{lib → dist/lib}/util/crypto.js +0 -0
  580. /package/{lib → dist/lib}/util/dump-collection.d.ts +0 -0
  581. /package/{lib → dist/lib}/util/dump-collection.js +0 -0
  582. /package/{lib → dist/lib}/util/esRequest.d.ts +0 -0
  583. /package/{lib → dist/lib}/util/esRequest.js +0 -0
  584. /package/{lib → dist/lib}/util/koncordeCompat.d.ts +0 -0
  585. /package/{lib → dist/lib}/util/koncordeCompat.js +0 -0
  586. /package/{lib → dist/lib}/util/mutex.d.ts +0 -0
  587. /package/{lib → dist/lib}/util/mutex.js +0 -0
  588. /package/{lib → dist/lib}/util/name-generator.d.ts +0 -0
  589. /package/{lib → dist/lib}/util/name-generator.js +0 -0
  590. /package/{lib → dist/lib}/util/time.d.ts +0 -0
  591. /package/{lib → dist/lib}/util/time.js +0 -0
@@ -0,0 +1,180 @@
1
+ /*
2
+ * Kuzzle, a backend software, self-hostable and ready to use
3
+ * to power modern apps
4
+ *
5
+ * Copyright 2015-2022 Kuzzle
6
+ * mailto: support AT kuzzle.io
7
+ * website: http://kuzzle.io
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * https://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ "use strict";
22
+ const path = require("path");
23
+ const fs = require("fs");
24
+ const os = require("os");
25
+ const Bluebird = require("bluebird");
26
+ const moment = require("moment");
27
+ const dumpme = require("dumpme");
28
+ const zlib = require("zlib");
29
+ const { Request } = require("../api/request");
30
+ const kerror = require("../kerror");
31
+ class DumpGenerator {
32
+ constructor() {
33
+ this._dump = false;
34
+ this.logger = global.kuzzle.log.child("dump:dumpGenerator");
35
+ }
36
+ /**
37
+ * Create a dump
38
+ *
39
+ * @param {string} suffix
40
+ * @returns {Promise}
41
+ */
42
+ async dump(suffix) {
43
+ if (this._dump) {
44
+ throw kerror.get("api", "process", "action_locked", "dump");
45
+ }
46
+ this._dump = true;
47
+ const dumpPath = path.join(path.normalize(global.kuzzle.config.dump.path), moment()
48
+ .format(global.kuzzle.config.dump.dateFormat)
49
+ .concat(`-${suffix}`)
50
+ .substring(0, 200));
51
+ this.logger.info("=".repeat(79));
52
+ this.logger.info(`Generating dump in ${dumpPath}`);
53
+ this._cleanUpHistory();
54
+ try {
55
+ fs.mkdirSync(dumpPath, { recursive: true });
56
+ }
57
+ catch (e) {
58
+ const message = e.message.startsWith("EEXIST")
59
+ ? "Dump directory already exists. Skipping.."
60
+ : `Unable to create dump folder: ${e.message}`;
61
+ this.logger.error(message);
62
+ throw new Error(message);
63
+ }
64
+ // dump kuzzle information
65
+ this.logger.info("> dumping kuzzle configuration");
66
+ fs.writeFileSync(path.join(dumpPath, "kuzzle.json"), JSON.stringify({
67
+ config: global.kuzzle.config,
68
+ version: require("../../package.json").version,
69
+ }, null, " ").concat("\n"));
70
+ // dump plugins configuration
71
+ this.logger.info("> dumping plugins configuration");
72
+ fs.writeFileSync(path.join(dumpPath, "plugins.json"), JSON.stringify(global.kuzzle.pluginsManager.getPluginsDescription(), null, " ").concat("\n"));
73
+ // dump Node.js configuration
74
+ this.logger.info("> dumping Node.js configuration");
75
+ fs.writeFileSync(path.join(dumpPath, "nodejs.json"), JSON.stringify({
76
+ argv: process.argv,
77
+ config: process.config,
78
+ env: process.env,
79
+ moduleLoadList: process.moduleLoadList,
80
+ release: process.release,
81
+ versions: process.versions,
82
+ }, null, " ").concat("\n"));
83
+ // dump os configuration
84
+ this.logger.info("> dumping os configuration");
85
+ fs.writeFileSync(path.join(dumpPath, "os.json"), JSON.stringify({
86
+ cpus: os.cpus(),
87
+ loadavg: os.loadavg(),
88
+ mem: {
89
+ free: os.freemem(),
90
+ total: os.totalmem(),
91
+ },
92
+ networkInterfaces: os.networkInterfaces(),
93
+ platform: os.platform(),
94
+ uptime: os.uptime(),
95
+ }, null, " ").concat("\n"));
96
+ // core-dump
97
+ this.logger.info("> generating core-dump");
98
+ dumpme(global.kuzzle.config.dump.gcore || "gcore", `${dumpPath}/core`);
99
+ // Gzip the core
100
+ try {
101
+ const corefiles = this._listFilesMatching(dumpPath, "core");
102
+ if (corefiles[0]) {
103
+ const readStream = fs.createReadStream(corefiles[0]);
104
+ const writeStream = fs.createWriteStream(`${dumpPath}/core.gz`);
105
+ await new Bluebird((resolve) => readStream
106
+ .pipe(zlib.createGzip())
107
+ .pipe(writeStream)
108
+ .on("finish", () => {
109
+ // rm the original core file
110
+ try {
111
+ fs.unlinkSync(corefiles[0]);
112
+ }
113
+ catch (e) {
114
+ this.logger.warn(`> unable to clean up core file ${corefiles[0]}`);
115
+ }
116
+ resolve();
117
+ }));
118
+ }
119
+ else {
120
+ this.logger.warn("> could not generate dump");
121
+ }
122
+ }
123
+ catch (error) {
124
+ this.logger.error(error);
125
+ }
126
+ // copy node binary
127
+ this.logger.info("> copy node binary");
128
+ fs.copyFileSync(process.execPath, path.join(dumpPath, "node"));
129
+ // dumping Kuzzle's stats
130
+ this.logger.info("> dumping kuzzle's stats");
131
+ const statistics = await global.kuzzle.statistics.getAllStats(new Request({ action: "getAllStats", controller: "statistics" }));
132
+ fs.writeFileSync(path.join(dumpPath, "statistics.json"), JSON.stringify(statistics.hits, null, " ").concat("\n"));
133
+ this.logger.info("Done.");
134
+ this.logger.info("[ℹ] You can send the folder to the kuzzle core team at support@kuzzle.io");
135
+ this.logger.info("=".repeat(79));
136
+ this._dump = false;
137
+ return dumpPath;
138
+ }
139
+ _cleanUpHistory() {
140
+ const config = global.kuzzle.config.dump, dumpPath = path.normalize(global.kuzzle.config.dump.path);
141
+ try {
142
+ fs.accessSync(dumpPath, fs.constants.R_OK | fs.constants.W_OK | fs.constants.X_OK);
143
+ }
144
+ catch (e) {
145
+ return;
146
+ }
147
+ const dumps = fs
148
+ .readdirSync(dumpPath)
149
+ .map((file) => {
150
+ const filepath = `${dumpPath}/${file}`;
151
+ return { path: filepath, stat: fs.statSync(filepath) };
152
+ })
153
+ .filter((prop) => prop.stat.isDirectory())
154
+ .sort((a, b) => {
155
+ if (a.stat.birthtime.getTime() === b.stat.birthtime.getTime()) {
156
+ return 0;
157
+ }
158
+ return a.stat.birthtime < b.stat.birthtime ? -1 : 1;
159
+ });
160
+ while (dumps.length >= config.history.reports) {
161
+ const dir = dumps.shift().path;
162
+ fs.rmdirSync(dir, { recursive: true });
163
+ }
164
+ for (let i = 0; i < dumps.length - config.history.coredump; i++) {
165
+ const corefiles = this._listFilesMatching(path.normalize(dumps[i].path), "core");
166
+ if (corefiles[0]) {
167
+ fs.unlinkSync(corefiles[0]);
168
+ }
169
+ }
170
+ }
171
+ _listFilesMatching(directory, start) {
172
+ return fs
173
+ .readdirSync(directory)
174
+ .filter((entry) => fs.lstatSync(`${directory}/${entry}`).isFile() &&
175
+ entry.startsWith(start))
176
+ .map((file) => path.join(directory, file));
177
+ }
178
+ }
179
+ module.exports = DumpGenerator;
180
+ //# sourceMappingURL=dumpGenerator.js.map
@@ -0,0 +1,30 @@
1
+ export = PipeRunner;
2
+ /**
3
+ * @class PipeRunner
4
+ * Runs pipe chains if the number of already running concurrent pipes allows it.
5
+ * Otherwise, delays the pipe chain until a slot is freed. If the storage
6
+ * buffer is full, rejects the provided callback and discard the pipe chain.
7
+ *
8
+ * @param {Number} concurrent - max number of concurrent pipes
9
+ * @param {Number} bufferSize - max number of delayed pipe chains
10
+ */
11
+ declare class PipeRunner {
12
+ constructor(concurrent: any, bufferSize: any);
13
+ maxConcurrent: number;
14
+ running: number;
15
+ maxBufferSize: number;
16
+ buffer: Denque<any>;
17
+ _boundRunNext: any;
18
+ /**
19
+ * @warning Critical code section
20
+ *
21
+ * Pipes can be run thousands of times per seconds
22
+ * @param {Array} chain - functions chain
23
+ * @param {Array} args - functions arguments
24
+ * @param {Function} callback - end-of-chain callback
25
+ * @param {Object} callbackContext - functions/callback context
26
+ */
27
+ run(chain: any[], args: any[], callback: Function, callbackContext: any): void;
28
+ _runNext(): void;
29
+ }
30
+ import Denque = require("denque");
@@ -0,0 +1,119 @@
1
+ /*
2
+ * Kuzzle, a backend software, self-hostable and ready to use
3
+ * to power modern apps
4
+ *
5
+ * Copyright 2015-2022 Kuzzle
6
+ * mailto: support AT kuzzle.io
7
+ * website: http://kuzzle.io
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * https://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ "use strict";
22
+ const assert = require("assert");
23
+ const Denque = require("denque");
24
+ const { KuzzleError } = require("../../kerror/errors");
25
+ const waterfall = require("./waterfall");
26
+ const kerror = require("../../kerror").wrap("plugin", "runtime");
27
+ /**
28
+ * We declare the callback used by waterfall one time instead
29
+ * of redeclaring a closure each time we want to run the pipes.
30
+ *
31
+ * This callback must be called with the following object as context:
32
+ * { instance: (pipeRunner instance), callback: (callback after pipes execution) }
33
+ */
34
+ /* eslint-disable no-invalid-this */
35
+ function waterfallCallback(error, ...result) {
36
+ this.instance.running--;
37
+ if (!this.instance.buffer.isEmpty()) {
38
+ setImmediate(this.instance._boundRunNext);
39
+ }
40
+ if (error) {
41
+ const cbError = error instanceof KuzzleError
42
+ ? error
43
+ : kerror.getFrom(error, "unexpected_error", error.message);
44
+ this.callback.call(this.callbackContext, cbError);
45
+ }
46
+ else {
47
+ this.callback.call(this.callbackContext, null, ...result);
48
+ }
49
+ }
50
+ /* eslint-enable no-invalid-this */
51
+ /**
52
+ * @private
53
+ * @class PipeChain
54
+ */
55
+ class PipeChain {
56
+ constructor(chain, args, callback, callbackContext) {
57
+ this.chain = chain;
58
+ this.args = args;
59
+ this.callback = callback;
60
+ this.callbackContext = callbackContext;
61
+ }
62
+ }
63
+ /**
64
+ * @class PipeRunner
65
+ * Runs pipe chains if the number of already running concurrent pipes allows it.
66
+ * Otherwise, delays the pipe chain until a slot is freed. If the storage
67
+ * buffer is full, rejects the provided callback and discard the pipe chain.
68
+ *
69
+ * @param {Number} concurrent - max number of concurrent pipes
70
+ * @param {Number} bufferSize - max number of delayed pipe chains
71
+ */
72
+ class PipeRunner {
73
+ constructor(concurrent, bufferSize) {
74
+ assert(typeof concurrent === "number" && concurrent > 0, "Cannot instantiate pipes executor: invalid maxConcurrentPipes parameter value");
75
+ assert(typeof bufferSize === "number" && bufferSize > 0, "Cannot instantiate pipes executor: invalid pipesBufferSize parameter value");
76
+ this.maxConcurrent = concurrent;
77
+ this.running = 0;
78
+ this.maxBufferSize = bufferSize;
79
+ this.buffer = new Denque();
80
+ this._boundRunNext = this._runNext.bind(this);
81
+ }
82
+ /**
83
+ * @warning Critical code section
84
+ *
85
+ * Pipes can be run thousands of times per seconds
86
+ * @param {Array} chain - functions chain
87
+ * @param {Array} args - functions arguments
88
+ * @param {Function} callback - end-of-chain callback
89
+ * @param {Object} callbackContext - functions/callback context
90
+ */
91
+ run(chain, args, callback, callbackContext) {
92
+ if (this.running >= this.maxConcurrent) {
93
+ if (this.buffer.length >= this.maxBufferSize) {
94
+ callback.call(callbackContext, kerror.get("too_many_pipes"));
95
+ }
96
+ else {
97
+ this.buffer.push(new PipeChain(chain, args, callback, callbackContext));
98
+ }
99
+ return;
100
+ }
101
+ this.running++;
102
+ // Create a context for the waterfall callback
103
+ const waterfallCallbackCtx = {
104
+ callback,
105
+ callbackContext,
106
+ instance: this,
107
+ };
108
+ waterfall(chain, args, waterfallCallback, waterfallCallbackCtx);
109
+ }
110
+ _runNext() {
111
+ if (this.buffer.isEmpty() || this.running >= this.maxConcurrent) {
112
+ return;
113
+ }
114
+ const pipe = this.buffer.shift();
115
+ this.run(pipe.chain, pipe.args, pipe.callback, pipe.callbackContext);
116
+ }
117
+ }
118
+ module.exports = PipeRunner;
119
+ //# sourceMappingURL=pipeRunner.js.map
@@ -0,0 +1,2 @@
1
+ export = waterfall;
2
+ declare function waterfall(chain: any, args: any, cb: any, context: any): void;
@@ -0,0 +1,90 @@
1
+ /*
2
+ * Kuzzle, a backend software, self-hostable and ready to use
3
+ * to power modern apps
4
+ *
5
+ * Copyright 2015-2022 Kuzzle
6
+ * mailto: support AT kuzzle.io
7
+ * website: http://kuzzle.io
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * https://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ "use strict";
22
+ class WaterfallContext {
23
+ /**
24
+ * @param {Array} chain - list of functions to call
25
+ * @param {Array} args - function arguments
26
+ * @param {Function} cb - end of waterfall callback
27
+ * @param {Object} cbCtx - functions context
28
+ */
29
+ constructor(chain, args, cb, cbCtx) {
30
+ this.chain = chain;
31
+ this.cb = cb;
32
+ this.cbCtx = cbCtx;
33
+ this.index = 0;
34
+ // since we always add a callback, and since after the 1st chain function
35
+ // there is always at least 1 arg which is the 1st function result (it
36
+ // can be undefined), then we need to force at least 1 argument to make
37
+ // sure that all pipe methods receive the same payload
38
+ this.args = args.length ? args : [null];
39
+ }
40
+ hasNext() {
41
+ return this.index < this.chain.length;
42
+ }
43
+ /**
44
+ * Each function in the waterfall chain returns a result. This result should
45
+ * always be the 1st payload argument (updated or left intact, it matters not)
46
+ */
47
+ set result(result) {
48
+ this.args[0] = result;
49
+ }
50
+ next(cb) {
51
+ this.index++;
52
+ this.chain[this.index - 1](...this.args, cb);
53
+ }
54
+ reject(error) {
55
+ this.cb.call(this.cbCtx, error);
56
+ }
57
+ // Resolves with the updated payload
58
+ resolve() {
59
+ this.cb.call(this.cbCtx, null, ...this.args);
60
+ }
61
+ }
62
+ /* eslint-disable no-invalid-this */
63
+ function waterfallCB(err, res) {
64
+ if (err) {
65
+ this.reject(err);
66
+ }
67
+ else {
68
+ this.result = res;
69
+ waterfallNext(this);
70
+ }
71
+ }
72
+ /* eslint-enable no-invalid-this */
73
+ function waterfallNext(ctx) {
74
+ if (!ctx.hasNext()) {
75
+ ctx.resolve();
76
+ return;
77
+ }
78
+ try {
79
+ ctx.next(waterfallCB.bind(ctx));
80
+ }
81
+ catch (error) {
82
+ ctx.reject(error);
83
+ }
84
+ }
85
+ function waterfall(chain, args, cb, context) {
86
+ const ctx = new WaterfallContext(chain, args, cb, context);
87
+ waterfallNext(ctx);
88
+ }
89
+ module.exports = waterfall;
90
+ //# sourceMappingURL=waterfall.js.map
@@ -0,0 +1,186 @@
1
+ export = InternalIndexHandler;
2
+ declare class InternalIndexHandler extends Store {
3
+ constructor();
4
+ timeout: number;
5
+ config: {
6
+ name: string;
7
+ collections: {
8
+ users: {
9
+ settings: {
10
+ number_of_shards: number;
11
+ number_of_replicas: number;
12
+ };
13
+ mappings: {
14
+ dynamic: "false" | "true" | "strict";
15
+ properties: {
16
+ profileIds: {
17
+ type: string;
18
+ };
19
+ };
20
+ };
21
+ };
22
+ profiles: {
23
+ settings: {
24
+ number_of_shards: number;
25
+ number_of_replicas: number;
26
+ };
27
+ mappings: {
28
+ dynamic: "false";
29
+ properties: {
30
+ tags: {
31
+ type: "keyword";
32
+ };
33
+ policies: {
34
+ properties: {
35
+ roleId: {
36
+ type: "keyword";
37
+ };
38
+ restrictedTo: {
39
+ type: "nested";
40
+ properties: {
41
+ index: {
42
+ type: "keyword";
43
+ };
44
+ collections: {
45
+ type: "keyword";
46
+ };
47
+ };
48
+ };
49
+ };
50
+ };
51
+ };
52
+ };
53
+ };
54
+ roles: {
55
+ settings: {
56
+ number_of_shards: number;
57
+ number_of_replicas: number;
58
+ };
59
+ mappings: {
60
+ dynamic: "false";
61
+ properties: {
62
+ tags: {
63
+ type: "keyword";
64
+ };
65
+ controllers: {
66
+ dynamic: "false";
67
+ properties: Record<string, unknown>;
68
+ };
69
+ };
70
+ };
71
+ };
72
+ validations: {
73
+ settings: {
74
+ number_of_shards: number;
75
+ number_of_replicas: number;
76
+ };
77
+ mappings: {
78
+ properties: {
79
+ index: {
80
+ type: "keyword";
81
+ };
82
+ collection: {
83
+ type: "keyword";
84
+ };
85
+ validations: {
86
+ dynamic: "false";
87
+ properties: Record<string, unknown>;
88
+ };
89
+ };
90
+ };
91
+ };
92
+ config: {
93
+ settings: {
94
+ number_of_shards: number;
95
+ number_of_replicas: number;
96
+ };
97
+ mappings: {
98
+ dynamic: "false";
99
+ properties: Record<string, unknown>;
100
+ };
101
+ };
102
+ "api-keys": {
103
+ settings: {
104
+ number_of_shards: number;
105
+ number_of_replicas: number;
106
+ };
107
+ mappings: {
108
+ dynamic: "false";
109
+ properties: {
110
+ userId: {
111
+ type: "keyword";
112
+ };
113
+ hash: {
114
+ type: "keyword";
115
+ };
116
+ description: {
117
+ type: "text";
118
+ };
119
+ expiresAt: {
120
+ type: "long";
121
+ };
122
+ ttl: {
123
+ type: "keyword";
124
+ };
125
+ token: {
126
+ type: "keyword";
127
+ };
128
+ };
129
+ };
130
+ };
131
+ installations: {
132
+ settings: {
133
+ number_of_shards: number;
134
+ number_of_replicas: number;
135
+ };
136
+ mappings: {
137
+ dynamic: "strict";
138
+ properties: {
139
+ description: {
140
+ type: "text";
141
+ };
142
+ handler: {
143
+ type: "text";
144
+ };
145
+ installedAt: {
146
+ type: "date";
147
+ };
148
+ };
149
+ };
150
+ };
151
+ imports: {
152
+ settings: {
153
+ number_of_shards: number;
154
+ number_of_replicas: number;
155
+ };
156
+ mappings: {
157
+ dynamic: "strict";
158
+ properties: {
159
+ hash: {
160
+ type: "keyword";
161
+ };
162
+ };
163
+ };
164
+ };
165
+ };
166
+ };
167
+ _BOOTSTRAP_DONE_ID: string;
168
+ _DATAMODEL_VERSION_ID: string;
169
+ _JWT_SECRET_ID: string;
170
+ logger: import("./Logger").Logger;
171
+ /**
172
+ * @returns {Promise}
173
+ */
174
+ init(): Promise<any>;
175
+ /**
176
+ * @override
177
+ */
178
+ override _bootstrapSequence(): Promise<void>;
179
+ /**
180
+ * Creates initial roles and profiles as specified in Kuzzle configuration
181
+ */
182
+ createInitialSecurities(): Promise<void>;
183
+ createInitialValidations(): Promise<void>;
184
+ _initSecret(): Promise<void>;
185
+ }
186
+ import { Store } from "../core/shared/store";