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
@@ -1,1045 +0,0 @@
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
-
22
- "use strict";
23
-
24
- const { Elasticsearch } = require("../../service/storage/Elasticsearch");
25
- const { IndexCache } = require("./indexCache");
26
- const { isPlainObject } = require("../../util/safeObject");
27
- const kerror = require("../../kerror");
28
- const { Mutex } = require("../../util/mutex");
29
-
30
- const servicesError = kerror.wrap("services", "storage");
31
-
32
- /**
33
- * Storage client adapter to perform validation on index/collection existence
34
- * and to maintain the index/collection cache.
35
- */
36
- class ClientAdapter {
37
- /**
38
- * @param {storeScopeEnum} scope
39
- */
40
- constructor(scope) {
41
- this.es = new Elasticsearch(
42
- global.kuzzle.config.services.storageEngine,
43
- scope,
44
- );
45
- this.client = this.es.client;
46
- this.scope = scope;
47
- this.cache = new IndexCache();
48
- }
49
-
50
- async init() {
51
- await this.es.init();
52
- await this.populateCache();
53
-
54
- this.registerCollectionEvents();
55
- this.registerIndexEvents();
56
- this.registerDocumentEvents();
57
- this.registerMappingEvents();
58
- this.registerCacheEvents();
59
-
60
- // Global store events registration
61
-
62
- /**
63
- * Manually refresh the index cache (e.g. after alias creation)
64
- */
65
- global.kuzzle.onAsk(`core:storage:${this.scope}:cache:refresh`, () =>
66
- this.populateCache(),
67
- );
68
-
69
- /**
70
- * Return information about the instantiated ES service
71
- * @returns {Promise.<Object>}
72
- */
73
- global.kuzzle.onAsk(`core:storage:${this.scope}:info:get`, () =>
74
- this.client.info(),
75
- );
76
-
77
- /**
78
- * Translate Koncorde filters to Elasticsearch query
79
- *
80
- * @param {Object} koncordeFilters - Set of valid Koncorde filters
81
- * @returns {Object} Equivalent Elasticsearch query
82
- */
83
- global.kuzzle.onAsk(`core:storage:${this.scope}:translate`, (filters) =>
84
- this.client.translateKoncordeFilters(filters),
85
- );
86
- }
87
-
88
- async createIndex(index, { indexCacheOnly = false, propagate = true } = {}) {
89
- if (this.cache.hasIndex(index)) {
90
- throw servicesError.get("index_already_exists", this.scope, index);
91
- }
92
-
93
- if (!indexCacheOnly) {
94
- await this.client.createIndex(index);
95
- }
96
-
97
- this.cache.addIndex(index);
98
-
99
- if (propagate) {
100
- global.kuzzle.emit("core:storage:index:create:after", {
101
- index,
102
- scope: this.scope,
103
- });
104
- }
105
- }
106
-
107
- async createCollection(
108
- index,
109
- collection,
110
- opts,
111
- { indexCacheOnly = false, propagate = true } = {},
112
- ) {
113
- if (!indexCacheOnly) {
114
- await this.client.createCollection(index, collection, opts);
115
- }
116
-
117
- this.cache.addCollection(index, collection);
118
-
119
- if (propagate) {
120
- global.kuzzle.emit("core:storage:collection:create:after", {
121
- collection,
122
- index,
123
- scope: this.scope,
124
- });
125
- }
126
- }
127
-
128
- async deleteIndex(index) {
129
- this.cache.assertIndexExists(index);
130
-
131
- await this.client.deleteIndex(index);
132
-
133
- this.cache.removeIndex(index);
134
-
135
- global.kuzzle.emit("core:storage:index:delete:after", {
136
- index,
137
- scope: this.scope,
138
- });
139
- }
140
-
141
- async deleteIndexes(indexes) {
142
- for (const index of indexes) {
143
- this.cache.assertIndexExists(index);
144
- }
145
-
146
- const deleted = await this.client.deleteIndexes(indexes);
147
-
148
- if (deleted.length > 0) {
149
- for (const index of deleted) {
150
- this.cache.removeIndex(index);
151
- }
152
-
153
- global.kuzzle.emit("core:storage:index:mDelete:after", {
154
- indexes: deleted,
155
- scope: this.scope,
156
- });
157
- }
158
-
159
- return deleted;
160
- }
161
-
162
- async deleteCollection(index, collection) {
163
- this.cache.assertCollectionExists(index, collection);
164
-
165
- await this.client.deleteCollection(index, collection);
166
-
167
- this.cache.removeCollection(index, collection);
168
-
169
- global.kuzzle.emit("core:storage:collection:delete:after", {
170
- collection,
171
- index,
172
- scope: this.scope,
173
- });
174
- }
175
-
176
- /**
177
- * Populates the index cache with existing index/collection.
178
- * Also checks for duplicated index names.
179
- */
180
- async populateCache() {
181
- if (global.kuzzle.config.services.storageEngine.generateMissingAliases) {
182
- await this.client.generateMissingAliases();
183
- }
184
-
185
- const schema = await this.client.getSchema();
186
-
187
- for (const [index, collections] of Object.entries(schema)) {
188
- this.cache.addIndex(index);
189
-
190
- for (const collection of collections) {
191
- this.cache.addCollection(index, collection);
192
- }
193
- }
194
- }
195
-
196
- registerCollectionEvents() {
197
- /**
198
- * Create a new collection in a given index, and optionally configure it
199
- * @param {string} index
200
- * @param {string} collection
201
- * @param {Object.<settings: {}, mappings: {}} [opts]
202
- * @param {Object} creationOptions
203
- * @return {Promise}
204
- * @throws
205
- */
206
-
207
- global.kuzzle.onAsk(
208
- `core:storage:${this.scope}:collection:create`,
209
- (index, collection, opts, creationOptions) =>
210
- this.createCollection(index, collection, opts, creationOptions),
211
- );
212
-
213
- /**
214
- * Delete a collection
215
- * @param {string} index
216
- * @param {string} collection
217
- * @return {Promise}
218
- * @throws If the index or the collection does not exist
219
- */
220
- global.kuzzle.onAsk(
221
- `core:storage:${this.scope}:collection:delete`,
222
- (index, collection) => this.deleteCollection(index, collection),
223
- );
224
-
225
- /**
226
- * Get settings of a collection
227
- * @param {string} index
228
- * @param {string} collection
229
- */
230
- global.kuzzle.onAsk(
231
- `core:storage:${this.scope}:collection:settings:get`,
232
- (index, collection) => {
233
- this.cache.assertCollectionExists(index, collection);
234
- return this.client.getSettings(index, collection);
235
- },
236
- );
237
-
238
- /**
239
- * Check a collection existence
240
- * @param {string} index
241
- * @param {string} collection
242
- */
243
- global.kuzzle.onAsk(
244
- `core:storage:${this.scope}:collection:exist`,
245
- (index, collection) => this.cache.hasCollection(index, collection),
246
- );
247
-
248
- /**
249
- * Return a list of an index' collections within this adapter's scope
250
- * @param {string} index
251
- * @returns {Promise.<string[]>}
252
- */
253
- global.kuzzle.onAsk(`core:storage:${this.scope}:collection:list`, (index) =>
254
- this.cache.listCollections(index),
255
- );
256
-
257
- /**
258
- * Refresh a collection
259
- * @param {string} index
260
- * @param {string} collection
261
- * @returns {Promise}
262
- */
263
- global.kuzzle.onAsk(
264
- `core:storage:${this.scope}:collection:refresh`,
265
- (index, collection) => {
266
- this.cache.assertCollectionExists(index, collection);
267
- return this.client.refreshCollection(index, collection);
268
- },
269
- );
270
-
271
- /**
272
- * Remove all documents from an existing collection
273
- * @param {string} index
274
- * @param {string} collection
275
- * @returns {Promise}
276
- */
277
- global.kuzzle.onAsk(
278
- `core:storage:${this.scope}:collection:truncate`,
279
- (index, collection) => {
280
- this.cache.assertCollectionExists(index, collection);
281
- return this.client.truncateCollection(index, collection);
282
- },
283
- );
284
-
285
- /**
286
- * Update a collection settings and mappings
287
- * @param {string} index
288
- * @param {string} collection
289
- * @param {Object} changes
290
- * @returns {Promise}
291
- */
292
- global.kuzzle.onAsk(
293
- `core:storage:${this.scope}:collection:update`,
294
- (index, collection, changes) => {
295
- this.cache.assertCollectionExists(index, collection);
296
- return this.client.updateCollection(index, collection, changes);
297
- },
298
- );
299
- }
300
-
301
- registerIndexEvents() {
302
- /**
303
- * Create a new index within this adapter scope
304
- * @param {string} index
305
- * @param {Object} options
306
- * @returns {Promise}
307
- * @throws
308
- */
309
- global.kuzzle.onAsk(
310
- `core:storage:${this.scope}:index:create`,
311
- (index, options) => this.createIndex(index, options),
312
- );
313
-
314
- /**
315
- * Delete an index
316
- * @param {string} index
317
- * @return {Promise}
318
- * @throws If the index does not exist
319
- */
320
- global.kuzzle.onAsk(`core:storage:${this.scope}:index:delete`, (index) =>
321
- this.deleteIndex(index),
322
- );
323
-
324
- /**
325
- * Check an index existence
326
- * @param {string} index
327
- * @return {Promise.<boolean>}
328
- */
329
- global.kuzzle.onAsk(`core:storage:${this.scope}:index:exist`, (index) =>
330
- this.cache.hasIndex(index),
331
- );
332
-
333
- /**
334
- * Return a list of all indexes within this adapter's scope
335
- * @returns {string[]}
336
- */
337
- global.kuzzle.onAsk(`core:storage:${this.scope}:index:list`, () =>
338
- this.cache.listIndexes(),
339
- );
340
-
341
- /**
342
- * Delete multiple indexes
343
- * @param {string[]} indexes
344
- * @return {Promise}
345
- * @throws If at least one index does not exist
346
- */
347
- global.kuzzle.onAsk(`core:storage:${this.scope}:index:mDelete`, (indexes) =>
348
- this.deleteIndexes(indexes),
349
- );
350
-
351
- /**
352
- * Return detailed storage stats within this adapter's scope
353
- * @returns {Promise.<Object>}
354
- */
355
- global.kuzzle.onAsk(`core:storage:${this.scope}:index:stats`, () =>
356
- this.client.stats(),
357
- );
358
- }
359
-
360
- registerDocumentEvents() {
361
- /**
362
- * Execute actions on documents in bulk
363
- *
364
- * @param {string} index
365
- * @param {string} collection
366
- * @param {Object[]} bulk data, in ES format
367
- * @param {Object} [opts] -- see Elasticsearch "import" options
368
- * @returns {Promise.<{ items, errors }>
369
- */
370
- global.kuzzle.onAsk(
371
- `core:storage:${this.scope}:document:bulk`,
372
- (index, collection, bulk, opts) => {
373
- this.cache.assertCollectionExists(index, collection);
374
- return this.client.import(index, collection, bulk, opts);
375
- },
376
- );
377
-
378
- /**
379
- * Count how many documents match the provided query
380
- *
381
- * @param {string} index
382
- * @param {string} collection
383
- * @param {Object} query -- search query
384
- * @return {Promise.<Number>}
385
- */
386
- global.kuzzle.onAsk(
387
- `core:storage:${this.scope}:document:count`,
388
- (index, collection, query) => {
389
- this.cache.assertCollectionExists(index, collection);
390
- return this.client.count(index, collection, query);
391
- },
392
- );
393
-
394
- /**
395
- * Create a document
396
- *
397
- * @param {string} index
398
- * @param {string} collection
399
- * @param {Object} content
400
- * @param {Object} [opts] -- see Elasticsearch "create" options
401
- * @returns {Promise.<{ _id, _version, _source }>}
402
- */
403
- global.kuzzle.onAsk(
404
- `core:storage:${this.scope}:document:create`,
405
- (index, collection, content, opts) => {
406
- this.cache.assertCollectionExists(index, collection);
407
- return this.client.create(index, collection, content, opts);
408
- },
409
- );
410
-
411
- /**
412
- * Create or replace a document
413
- *
414
- * @param {string} index
415
- * @param {string} collection
416
- * @param {string} id -- document unique identifier
417
- * @param {Object} content
418
- * @param {Object} [opts] -- see Elasticsearch "createOrReplace" options
419
- * @returns {Promise.<{ _id, _version, _source, created }>}
420
- */
421
- global.kuzzle.onAsk(
422
- `core:storage:${this.scope}:document:createOrReplace`,
423
- (index, collection, id, content, opts) => {
424
- this.cache.assertCollectionExists(index, collection);
425
- return this.client.createOrReplace(
426
- index,
427
- collection,
428
- id,
429
- content,
430
- opts,
431
- );
432
- },
433
- );
434
-
435
- /**
436
- * Delete a document
437
- *
438
- * @param {string} index
439
- * @param {string} collection
440
- * @param {string} id
441
- * @param {Object} [opts] -- see Elasticsearch "delete" options
442
- * @returns {Promise}
443
- */
444
- global.kuzzle.onAsk(
445
- `core:storage:${this.scope}:document:delete`,
446
- (index, collection, id, opts) => {
447
- this.cache.assertCollectionExists(index, collection);
448
- return this.client.delete(index, collection, id, opts);
449
- },
450
- );
451
-
452
- /**
453
- * Delete all documents matching the provided search query
454
- *
455
- * @param {string} index
456
- * @param {string} collection
457
- * @param {Object} query
458
- * @param {Object} [opts] -- see Elasticsearch "deleteByQuery" options
459
- * @returns {Promise.<{ documents, total, deleted, failures: [ id, reason ] }>}
460
- */
461
- global.kuzzle.onAsk(
462
- `core:storage:${this.scope}:document:deleteByQuery`,
463
- (index, collection, query, opts) => {
464
- this.cache.assertCollectionExists(index, collection);
465
- return this.client.deleteByQuery(index, collection, query, opts);
466
- },
467
- );
468
-
469
- /**
470
- * Delete fields of a document
471
- *
472
- * @param {string} index
473
- * @param {string} collection
474
- * @param {string} id
475
- * @param {Array} fields -- fields to delete
476
- * @param {Object} [opts] -- see Elasticsearch "deleteFields" options
477
- * @returns {Promise.<{ _id, _version, _source }>}
478
- */
479
- global.kuzzle.onAsk(
480
- `core:storage:${this.scope}:document:deleteFields`,
481
- (index, collection, id, fields, opts) => {
482
- this.cache.assertCollectionExists(index, collection);
483
- return this.client.deleteFields(index, collection, id, fields, opts);
484
- },
485
- );
486
-
487
- /**
488
- * Check if a document exists
489
- *
490
- * @param {string} index
491
- * @param {string} collection
492
- * @param {string} id -- document unique identifier
493
- * @returns {Promise.<boolean>}
494
- */
495
- global.kuzzle.onAsk(
496
- `core:storage:${this.scope}:document:exist`,
497
- (index, collection, id) => {
498
- this.cache.assertCollectionExists(index, collection);
499
- return this.client.exists(index, collection, id);
500
- },
501
- );
502
-
503
- /**
504
- * Check if a document multiple document Exists
505
- *
506
- * @param {string} index
507
- * @param {string} collection
508
- * @param {string} id -- document unique identifier
509
- * @returns {Promise.<boolean>}
510
- */
511
- global.kuzzle.onAsk(
512
- `core:storage:${this.scope}:document:mExists`,
513
- (index, collection, ids) => {
514
- this.cache.assertCollectionExists(index, collection);
515
- return this.client.mExists(index, collection, ids);
516
- },
517
- );
518
-
519
- /**
520
- * Get a document using its unique id
521
- *
522
- * @param {string} index
523
- * @param {string} collection
524
- * @param {string} id -- document unique identifier
525
- * @returns {Promise.<{ _id, _version, _source }>}
526
- */
527
- global.kuzzle.onAsk(
528
- `core:storage:${this.scope}:document:get`,
529
- (index, collection, id) => {
530
- this.cache.assertCollectionExists(index, collection);
531
- return this.client.get(index, collection, id);
532
- },
533
- );
534
-
535
- /**
536
- * Import documents as fixtures
537
- * @param {Objects} fixtures
538
- * @return {Promise}
539
- */
540
- global.kuzzle.onAsk(
541
- `core:storage:${this.scope}:document:import`,
542
- (fixtures, options) => this.loadFixtures(fixtures, options),
543
- );
544
-
545
- /**
546
- * Create multiple documents
547
- *
548
- * @param {string} index
549
- * @param {string} collection
550
- * @param {Object[]} documents
551
- * @param {Object} [opts] -- see Elasticsearch "mCreate" options
552
- * @returns {Promise.<{ items, errors }>
553
- */
554
- global.kuzzle.onAsk(
555
- `core:storage:${this.scope}:document:mCreate`,
556
- (index, collection, documents, opts) => {
557
- this.cache.assertCollectionExists(index, collection);
558
- return this.client.mCreate(index, collection, documents, opts);
559
- },
560
- );
561
-
562
- /**
563
- * Create or replace multiple documents
564
- *
565
- * @param {string} index
566
- * @param {string} collection
567
- * @param {Object[]} documents
568
- * @param {Object} [opts] -- see Elasticsearch "mCreateOrReplace" options
569
- * @returns {Promise.<{ items, errors }>
570
- */
571
- global.kuzzle.onAsk(
572
- `core:storage:${this.scope}:document:mCreateOrReplace`,
573
- (index, collection, documents, opts) => {
574
- this.cache.assertCollectionExists(index, collection);
575
- return this.client.mCreateOrReplace(index, collection, documents, opts);
576
- },
577
- );
578
-
579
- /**
580
- * Delete multiple documents
581
- *
582
- * @param {string} index
583
- * @param {string} collection
584
- * @param {string[]} ids
585
- * @param {Object} [opts] -- see Elasticsearch "mDelete" options
586
- * @returns {Promise.<{ documents, errors }>
587
- */
588
- global.kuzzle.onAsk(
589
- `core:storage:${this.scope}:document:mDelete`,
590
- (index, collection, ids, opts) => {
591
- this.cache.assertCollectionExists(index, collection);
592
- return this.client.mDelete(index, collection, ids, opts);
593
- },
594
- );
595
-
596
- /**
597
- * Replace multiple documents
598
- *
599
- * @param {string} index
600
- * @param {string} collection
601
- * @param {Object[]} documents
602
- * @param {Object} [opts] -- see Elasticsearch "mReplace" options
603
- * @returns {Promise.<{ items, errors }>
604
- */
605
- global.kuzzle.onAsk(
606
- `core:storage:${this.scope}:document:mReplace`,
607
- (index, collection, documents, opts) => {
608
- this.cache.assertCollectionExists(index, collection);
609
- return this.client.mReplace(index, collection, documents, opts);
610
- },
611
- );
612
-
613
- /**
614
- * Update multiple documents
615
- *
616
- * @param {string} index
617
- * @param {string} collection
618
- * @param {Object[]} documents
619
- * @param {Object} [opts] -- see Elasticsearch "mUpdate" options
620
- * @returns {Promise.<{ items, errors }>
621
- */
622
- global.kuzzle.onAsk(
623
- `core:storage:${this.scope}:document:mUpdate`,
624
- (index, collection, documents, opts) => {
625
- this.cache.assertCollectionExists(index, collection);
626
- return this.client.mUpdate(index, collection, documents, opts);
627
- },
628
- );
629
-
630
- /**
631
- * Applies a partial update to documents provided in the body.
632
- * If some of the documents don't already exist, they will be created.
633
- *
634
- * @param {string} index
635
- * @param {string} collection
636
- * @param {Object[]} documents
637
- * @param {Object} [opts] -- see Elasticsearch "mUpsert" options
638
- * @returns {Promise.<{ items, errors }>
639
- */
640
- global.kuzzle.onAsk(
641
- `core:storage:${this.scope}:document:mUpsert`,
642
- (index, collection, documents, opts) => {
643
- this.cache.assertCollectionExists(index, collection);
644
- return this.client.mUpsert(index, collection, documents, opts);
645
- },
646
- );
647
-
648
- /**
649
- * Apply the provided callback to all documents matching a search query
650
- *
651
- * @param {string} index
652
- * @param {string} collection
653
- * @param {Object} query -- search query (ES format)
654
- * @param {Function} callback -- callback applied to matched documents
655
- * @param {Object} [opts] -- see Elasticsearch "mExecute" options
656
- * @returns {Promise.<any[]>} Array of results returned by the callback
657
- */
658
- global.kuzzle.onAsk(
659
- `core:storage:${this.scope}:document:mExecute`,
660
- (index, collection, query, callback, opts) => {
661
- this.cache.assertCollectionExists(index, collection);
662
- return this.client.mExecute(index, collection, query, callback, opts);
663
- },
664
- );
665
-
666
- /**
667
- * Get multiple documents using their ids
668
- *
669
- * @param {string} index
670
- * @param {string} collection
671
- * @param {string[]} ids
672
- * @returns {Promise.<{ items: [ _id, _source, _version ], errors }>}
673
- */
674
- global.kuzzle.onAsk(
675
- `core:storage:${this.scope}:document:mGet`,
676
- (index, collection, ids) => {
677
- this.cache.assertCollectionExists(index, collection);
678
- return this.client.mGet(index, collection, ids);
679
- },
680
- );
681
-
682
- /**
683
- * Replace the content of a document
684
- *
685
- * @param {string} index
686
- * @param {string} collection
687
- * @param {string} id
688
- * @param {Object} content -- new document content
689
- * @param {Object} [opts] -- see Elasticsearch "replace" options
690
- * @returns {Promise.<{ _id, _version, _source }>}
691
- */
692
- global.kuzzle.onAsk(
693
- `core:storage:${this.scope}:document:replace`,
694
- (index, collection, id, content, opts) => {
695
- this.cache.assertCollectionExists(index, collection);
696
- return this.client.replace(index, collection, id, content, opts);
697
- },
698
- );
699
-
700
- /**
701
- * Fetch the next page of results of a search query
702
- *
703
- * @param {string} scrollId
704
- * @param {Object} [opts] -- see Elasticsearch "scroll" options
705
- * @returns {Promise.<{ scrollId, hits, aggregations, total }>}
706
- */
707
- global.kuzzle.onAsk(
708
- `core:storage:${this.scope}:document:scroll`,
709
- (scrollId, opts) => this.client.scroll(scrollId, opts),
710
- );
711
-
712
- /**
713
- * Search for documents
714
- *
715
- * @param {string} index
716
- * @param {string} collection
717
- * @param {Object} searchBody -- search query, in ES format
718
- * @param {Object} [opts] -- see Elasticsearch "search" options
719
- * @returns {Promise.<{ scrollId, hits, aggregations, total }>}
720
- */
721
- global.kuzzle.onAsk(
722
- `core:storage:${this.scope}:document:search`,
723
- (index, collection, searchBody, opts) => {
724
- this.cache.assertCollectionExists(index, collection);
725
- return this.client.search({ collection, index, searchBody }, opts);
726
- },
727
- );
728
-
729
- /**
730
- * Search for multiples documents
731
- *
732
- * @param {Object[]} targets
733
- * @param {Object} searchBody -- search query, in ES format
734
- * @param {Object} [opts] -- see Elasticsearch "search" options
735
- * @returns {Promise.<{ scrollId, hits, aggregations, total }>}
736
- */
737
- global.kuzzle.onAsk(
738
- `core:storage:${this.scope}:document:multiSearch`,
739
- (targets, searchBody, opts) => {
740
- for (const target of targets) {
741
- for (const collection of target.collections) {
742
- this.cache.assertCollectionExists(target.index, collection);
743
- }
744
- }
745
-
746
- return this.client.search({ searchBody, targets }, opts);
747
- },
748
- );
749
-
750
- /**
751
- * Update a document
752
- *
753
- * @param {string} index
754
- * @param {string} collection
755
- * @param {string} id -- document unique identifier
756
- * @param {Object} content -- partial content to update
757
- * @param {Object} [opts] -- see Elasticsearch "update" options
758
- * @returns {Promise.<{ _id, _version }>}
759
- */
760
- global.kuzzle.onAsk(
761
- `core:storage:${this.scope}:document:update`,
762
- (index, collection, id, content, opts) => {
763
- this.cache.assertCollectionExists(index, collection);
764
- return this.client.update(index, collection, id, content, opts);
765
- },
766
- );
767
-
768
- /**
769
- * Update all documents matching the search query, by applying the same
770
- * changes to all of them.
771
- *
772
- * @param {string} index
773
- * @param {string} collection
774
- * @param {Object} query -- search query, in ES format
775
- * @param {Object} changes -- partial changes to apply to matched documents
776
- * @param {Object} [opts] -- see Elasticsearch "updateByQuery" options
777
- * @returns {Promise.<{ successes: [_id, _source, _status], errors: [ document, status, reason ] }>}
778
- */
779
- global.kuzzle.onAsk(
780
- `core:storage:${this.scope}:document:updateByQuery`,
781
- (index, collection, query, changes, opts) => {
782
- this.cache.assertCollectionExists(index, collection);
783
- return this.client.updateByQuery(
784
- index,
785
- collection,
786
- query,
787
- changes,
788
- opts,
789
- );
790
- },
791
- );
792
-
793
- /**
794
- * Directly Update all documents matching the search query (without regards
795
- * to max documents write limit), by applying the same changes to all of them.
796
- *
797
- * @param {string} index
798
- * @param {string} collection
799
- * @param {Object} query -- search query, in ES format
800
- * @param {Object} changes -- partial changes to apply to matched documents
801
- * @param {Object} [opts] -- see Elasticsearch "updateByQuery" options
802
- * @returns {Promise.<{ successes: [_id, _source, _status], errors: [ document, status, reason ] }>}
803
- */
804
- global.kuzzle.onAsk(
805
- `core:storage:${this.scope}:bulk:updateByQuery`,
806
- (index, collection, query, changes, opts) => {
807
- this.cache.assertCollectionExists(index, collection);
808
- return this.client.bulkUpdateByQuery(
809
- index,
810
- collection,
811
- query,
812
- changes,
813
- opts,
814
- );
815
- },
816
- );
817
-
818
- /**
819
- * Applies a partial update to an existing document.
820
- * If the document doesn't already exist, a new document is created.
821
- *
822
- * @param {string} index
823
- * @param {string} collection
824
- * @param {string} id -- document unique identifier
825
- * @param {Object} content -- partial content to update
826
- * @param {Object} [opts] -- see Elasticsearch "upsert" options
827
- * @returns {Promise.<{ _id, _version }>}
828
- */
829
- global.kuzzle.onAsk(
830
- `core:storage:${this.scope}:document:upsert`,
831
- (index, collection, id, content, opts) => {
832
- this.cache.assertCollectionExists(index, collection);
833
- return this.client.upsert(index, collection, id, content, opts);
834
- },
835
- );
836
- }
837
-
838
- registerMappingEvents() {
839
- /**
840
- * Return a collection's mapping
841
- *
842
- * @param {string} index
843
- * @param {string} collection
844
- * @param {Object} [opts] -- see Elasticsearch "getMapping" options
845
- *
846
- * @returns {Promise.<{ dynamic, _meta, properties }>}
847
- */
848
- global.kuzzle.onAsk(
849
- `core:storage:${this.scope}:mappings:get`,
850
- (index, collection, opts) => {
851
- this.cache.assertCollectionExists(index, collection);
852
- return this.client.getMapping(index, collection, opts);
853
- },
854
- );
855
-
856
- /**
857
- * Import mappings as fixtures. Create non-existing indexes and collections
858
- * in the process.
859
- *
860
- * @param {Object} fixtures
861
- * @param {Object} options
862
- * @return {Promise}
863
- */
864
- global.kuzzle.onAsk(
865
- `core:storage:${this.scope}:mappings:import`,
866
- (fixtures, options) => this.loadMappings(fixtures, options),
867
- );
868
-
869
- /**
870
- * Update a collection mappings
871
- *
872
- * @param {string} index
873
- * @param {string} collection
874
- * @param {Object} mappings
875
- * @returns {Promise.<{ dynamic, _meta, properties }>}
876
- */
877
- global.kuzzle.onAsk(
878
- `core:storage:${this.scope}:mappings:update`,
879
- (index, collection, mappings) => {
880
- this.cache.assertCollectionExists(index, collection);
881
- return this.client.updateMapping(index, collection, mappings);
882
- },
883
- );
884
- }
885
-
886
- /**
887
- * Cache update operations. These events trigger neither any actual change
888
- * in the storage layer, nor kuzzle events.
889
- */
890
- registerCacheEvents() {
891
- /**
892
- * Adds a new index to the cache
893
- * @param {string} index
894
- */
895
- global.kuzzle.onAsk(`core:storage:${this.scope}:cache:addIndex`, (index) =>
896
- this.cache.addIndex(index),
897
- );
898
-
899
- /**
900
- * Adds a new collection to the cache
901
- * @param {string} index
902
- * @param {string} collection
903
- */
904
- global.kuzzle.onAsk(
905
- `core:storage:${this.scope}:cache:addCollection`,
906
- (index, collection) => this.cache.addCollection(index, collection),
907
- );
908
-
909
- /**
910
- * Removes indexes from the cache
911
- * @param {Array.<string>} indexes
912
- */
913
- global.kuzzle.onAsk(
914
- `core:storage:${this.scope}:cache:removeIndexes`,
915
- (indexes) => {
916
- for (const index of indexes) {
917
- this.cache.removeIndex(index);
918
- }
919
- },
920
- );
921
-
922
- /**
923
- * Removes a collection from the cache
924
- * @param {string} index
925
- * @param {string} collection
926
- */
927
- global.kuzzle.onAsk(
928
- `core:storage:${this.scope}:cache:removeCollection`,
929
- (index, collection) => this.cache.removeCollection(index, collection),
930
- );
931
- }
932
-
933
- /**
934
- * Load database fixtures into Kuzzle
935
- *
936
- * @param {String} fixturesId
937
- * @returns {Promise}
938
- */
939
- async loadFixtures(fixtures = {}, { refresh = "wait_for" } = {}) {
940
- if (!isPlainObject(fixtures)) {
941
- throw kerror.get("api", "assert", "invalid_argument", fixtures, "object");
942
- }
943
-
944
- for (const index of Object.keys(fixtures)) {
945
- if (!isPlainObject(fixtures[index])) {
946
- throw kerror.get(
947
- "api",
948
- "assert",
949
- "invalid_argument",
950
- fixtures[index],
951
- "object",
952
- );
953
- }
954
-
955
- for (const [collection, payload] of Object.entries(fixtures[index])) {
956
- this.cache.assertCollectionExists(index, collection);
957
-
958
- const { errors } = await this.client.import(
959
- index,
960
- collection,
961
- payload,
962
- { refresh },
963
- );
964
-
965
- if (errors.length > 0) {
966
- throw servicesError.get("import_failed", errors);
967
- }
968
- }
969
- }
970
- }
971
-
972
- /**
973
- * Load database mappings into Kuzzle
974
- *
975
- * @param {String} mappings
976
- * @param {String} options rawMappings (false)
977
- * - propagate (true): notify the other nodes of the cluster
978
- * - indexCacheOnly (false): only update the cache, don't update the database
979
- * @returns {Promise}
980
- */
981
- async loadMappings(
982
- fixtures = {},
983
- options = {
984
- indexCacheOnly: false,
985
- propagate: true,
986
- rawMappings: false,
987
- refresh: false,
988
- },
989
- ) {
990
- if (!isPlainObject(fixtures)) {
991
- throw kerror.get("api", "assert", "invalid_argument", fixtures, "object");
992
- }
993
-
994
- const mutex = new Mutex("loadMappings", { timeout: -1, ttl: 60000 });
995
-
996
- await mutex.lock();
997
-
998
- try {
999
- for (const index of Object.keys(fixtures)) {
1000
- if (!isPlainObject(fixtures[index])) {
1001
- throw kerror.get(
1002
- "api",
1003
- "assert",
1004
- "invalid_argument",
1005
- fixtures[index],
1006
- "object",
1007
- );
1008
- }
1009
-
1010
- for (const [collection, mappings] of Object.entries(fixtures[index])) {
1011
- try {
1012
- await this.createIndex(index, {
1013
- indexCacheOnly: options.indexCacheOnly,
1014
- propagate: options.propagate,
1015
- });
1016
- } catch (error) {
1017
- // @cluster: ignore if the index already exists to prevent race
1018
- // conditions with index cache propagation
1019
- if (error.id !== "services.storage.index_already_exists") {
1020
- throw error;
1021
- }
1022
- }
1023
-
1024
- await this.createCollection(
1025
- index,
1026
- collection,
1027
- options.rawMappings ? { mappings } : mappings,
1028
- {
1029
- indexCacheOnly: options.indexCacheOnly,
1030
- propagate: options.propagate,
1031
- },
1032
- );
1033
-
1034
- if (options.refresh && !options.indexCacheOnly) {
1035
- await this.client.refreshCollection(index, collection);
1036
- }
1037
- }
1038
- }
1039
- } finally {
1040
- await mutex.unlock();
1041
- }
1042
- }
1043
- }
1044
-
1045
- module.exports = ClientAdapter;