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.
- package/dist/bin/copy-protobuf.js +17 -0
- package/dist/lib/api/controllers/adminController.d.ts +51 -0
- package/dist/lib/api/controllers/adminController.js +191 -0
- package/{lib → dist/lib}/api/controllers/authController.d.ts +20 -40
- package/{lib → dist/lib}/api/controllers/authController.js +23 -24
- package/dist/lib/api/controllers/bulkController.d.ts +46 -0
- package/dist/lib/api/controllers/bulkController.js +132 -0
- package/dist/lib/api/controllers/clusterController.d.ts +6 -0
- package/{lib → dist/lib}/api/controllers/clusterController.js +7 -11
- package/dist/lib/api/controllers/collectionController.d.ts +136 -0
- package/dist/lib/api/controllers/collectionController.js +356 -0
- package/dist/lib/api/controllers/documentController.d.ts +181 -0
- package/dist/lib/api/controllers/documentController.js +768 -0
- package/dist/lib/api/controllers/index.d.ts +12 -0
- package/{lib → dist/lib}/api/controllers/index.js +13 -14
- package/dist/lib/api/controllers/indexController.d.ts +65 -0
- package/dist/lib/api/controllers/indexController.js +139 -0
- package/dist/lib/api/controllers/memoryStorageController.d.ts +8 -0
- package/dist/lib/api/controllers/memoryStorageController.js +867 -0
- package/dist/lib/api/controllers/realtimeController.d.ts +47 -0
- package/dist/lib/api/controllers/realtimeController.js +128 -0
- package/dist/lib/api/controllers/securityController.d.ts +423 -0
- package/dist/lib/api/controllers/securityController.js +1139 -0
- package/dist/lib/api/controllers/serverController.d.ts +82 -0
- package/dist/lib/api/controllers/serverController.js +321 -0
- package/dist/lib/api/documentExtractor.d.ts +9 -0
- package/dist/lib/api/documentExtractor.js +274 -0
- package/dist/lib/api/funnel.d.ts +183 -0
- package/dist/lib/api/funnel.js +821 -0
- package/dist/lib/api/httpRoutes.d.ts +17 -0
- package/dist/lib/api/httpRoutes.js +1496 -0
- package/dist/lib/api/rateLimiter.d.ts +18 -0
- package/dist/lib/api/rateLimiter.js +74 -0
- package/{lib → dist/lib}/api/request/kuzzleRequest.d.ts +2 -2
- package/{lib → dist/lib}/api/request/requestContext.d.ts +2 -1
- package/dist/lib/cluster/command.d.ts +73 -0
- package/dist/lib/cluster/command.js +236 -0
- package/dist/lib/cluster/index.d.ts +2 -0
- package/{lib → dist/lib}/cluster/index.js +1 -2
- package/dist/lib/cluster/node.d.ts +278 -0
- package/dist/lib/cluster/node.js +876 -0
- package/dist/lib/cluster/publisher.d.ts +188 -0
- package/dist/lib/cluster/publisher.js +347 -0
- package/dist/lib/cluster/subscriber.d.ts +269 -0
- package/dist/lib/cluster/subscriber.js +555 -0
- package/dist/lib/cluster/workers/IDCardRenewer.d.ts +13 -0
- package/dist/lib/cluster/workers/IDCardRenewer.js +120 -0
- package/{lib → dist/lib}/config/documentEventAliases.d.ts +1 -2
- package/dist/lib/config/index.d.ts +5 -0
- package/dist/lib/config/index.js +244 -0
- package/dist/lib/config/sdkCompatibility.json +9 -0
- package/dist/lib/core/auth/formatProcessing.d.ts +30 -0
- package/dist/lib/core/auth/formatProcessing.js +55 -0
- package/dist/lib/core/auth/passportResponse.d.ts +15 -0
- package/{lib → dist/lib}/core/auth/passportResponse.js +24 -30
- package/dist/lib/core/auth/passportWrapper.d.ts +28 -0
- package/dist/lib/core/auth/passportWrapper.js +126 -0
- package/{lib → dist/lib}/core/backend/backendConfig.js +2 -2
- package/{lib → dist/lib}/core/backend/backendErrors.js +9 -12
- package/dist/lib/core/cache/cacheEngine.d.ts +15 -0
- package/dist/lib/core/cache/cacheEngine.js +205 -0
- package/dist/lib/core/network/accessLogger.d.ts +29 -0
- package/dist/lib/core/network/accessLogger.js +250 -0
- package/dist/lib/core/network/clientConnection.d.ts +15 -0
- package/{lib → dist/lib}/core/network/clientConnection.js +17 -24
- package/dist/lib/core/network/context.d.ts +42 -0
- package/dist/lib/core/network/context.js +57 -0
- package/dist/lib/core/network/entryPoint.d.ts +62 -0
- package/dist/lib/core/network/entryPoint.js +261 -0
- package/dist/lib/core/network/httpRouter/index.d.ts +85 -0
- package/dist/lib/core/network/httpRouter/index.js +258 -0
- package/dist/lib/core/network/httpRouter/routeHandler.d.ts +46 -0
- package/dist/lib/core/network/httpRouter/routeHandler.js +101 -0
- package/dist/lib/core/network/httpRouter/routePart.d.ts +35 -0
- package/dist/lib/core/network/httpRouter/routePart.js +117 -0
- package/dist/lib/core/network/protocolManifest.d.ts +6 -0
- package/{lib → dist/lib}/core/network/protocolManifest.js +5 -9
- package/dist/lib/core/network/protocols/httpMessage.d.ts +22 -0
- package/dist/lib/core/network/protocols/httpMessage.js +62 -0
- package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +171 -0
- package/dist/lib/core/network/protocols/httpwsProtocol.js +921 -0
- package/dist/lib/core/network/protocols/internalProtocol.d.ts +27 -0
- package/dist/lib/core/network/protocols/internalProtocol.js +82 -0
- package/dist/lib/core/network/protocols/mqttProtocol.d.ts +39 -0
- package/dist/lib/core/network/protocols/mqttProtocol.js +219 -0
- package/dist/lib/core/network/protocols/protocol.d.ts +26 -0
- package/dist/lib/core/network/protocols/protocol.js +74 -0
- package/dist/lib/core/network/router.d.ts +49 -0
- package/dist/lib/core/network/router.js +193 -0
- package/dist/lib/core/plugin/plugin.d.ts +56 -0
- package/dist/lib/core/plugin/plugin.js +282 -0
- package/{lib → dist/lib}/core/plugin/pluginContext.js +2 -2
- package/dist/lib/core/plugin/pluginManifest.d.ts +5 -0
- package/{lib → dist/lib}/core/plugin/pluginManifest.js +16 -27
- package/dist/lib/core/plugin/pluginRepository.d.ts +53 -0
- package/dist/lib/core/plugin/pluginRepository.js +112 -0
- package/dist/lib/core/plugin/pluginsManager.d.ts +190 -0
- package/dist/lib/core/plugin/pluginsManager.js +817 -0
- package/dist/lib/core/plugin/privilegedContext.d.ts +14 -0
- package/{lib → dist/lib}/core/plugin/privilegedContext.js +10 -14
- package/dist/lib/core/realtime/actionEnum.d.ts +25 -0
- package/{lib → dist/lib}/core/realtime/actionEnum.js +7 -10
- package/dist/lib/core/realtime/index.d.ts +8 -0
- package/{lib → dist/lib}/core/realtime/index.js +9 -13
- package/dist/lib/core/realtime/notification/document.d.ts +34 -0
- package/dist/lib/core/realtime/notification/document.js +98 -0
- package/dist/lib/core/realtime/notification/index.d.ts +3 -0
- package/{lib → dist/lib}/core/realtime/notification/index.js +4 -5
- package/dist/lib/core/realtime/notification/server.d.ts +17 -0
- package/{lib → dist/lib}/core/realtime/notification/server.js +8 -10
- package/dist/lib/core/realtime/notification/user.d.ts +29 -0
- package/dist/lib/core/realtime/notification/user.js +66 -0
- package/dist/lib/core/realtime/notifier.d.ts +171 -0
- package/dist/lib/core/realtime/notifier.js +405 -0
- package/dist/lib/core/security/index.d.ts +14 -0
- package/{lib → dist/lib}/core/security/index.js +15 -19
- package/dist/lib/core/security/roleRepository.d.ts +143 -0
- package/dist/lib/core/security/roleRepository.js +445 -0
- package/dist/lib/core/security/securityLoader.d.ts +24 -0
- package/dist/lib/core/security/securityLoader.js +125 -0
- package/{lib → dist/lib}/core/security/tokenRepository.js +1 -1
- package/dist/lib/core/security/userRepository.d.ts +81 -0
- package/dist/lib/core/security/userRepository.js +346 -0
- package/dist/lib/core/shared/abstractManifest.d.ts +27 -0
- package/dist/lib/core/shared/abstractManifest.js +85 -0
- package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +7 -0
- package/dist/lib/core/shared/sdk/impersonatedSdk.js +80 -0
- package/{lib → dist/lib}/core/shared/store.d.ts +2 -2
- package/dist/lib/core/statistics/statistics.d.ts +94 -0
- package/dist/lib/core/statistics/statistics.js +287 -0
- package/dist/lib/core/storage/clientAdapter.d.ts +62 -0
- package/dist/lib/core/storage/clientAdapter.js +756 -0
- package/dist/lib/core/storage/storageEngine.d.ts +13 -0
- package/dist/lib/core/storage/storageEngine.js +52 -0
- package/dist/lib/core/validation/baseType.d.ts +35 -0
- package/dist/lib/core/validation/baseType.js +70 -0
- package/dist/lib/core/validation/types/anything.d.ts +10 -0
- package/{lib → dist/lib}/core/validation/types/anything.js +7 -10
- package/dist/lib/core/validation/types/boolean.d.ts +16 -0
- package/{lib → dist/lib}/core/validation/types/boolean.js +18 -23
- package/dist/lib/core/validation/types/date.d.ts +17 -0
- package/dist/lib/core/validation/types/date.js +215 -0
- package/dist/lib/core/validation/types/email.d.ts +17 -0
- package/dist/lib/core/validation/types/email.js +80 -0
- package/dist/lib/core/validation/types/enum.d.ts +17 -0
- package/dist/lib/core/validation/types/enum.js +70 -0
- package/dist/lib/core/validation/types/geoPoint.d.ts +17 -0
- package/{lib → dist/lib}/core/validation/types/geoPoint.js +19 -24
- package/dist/lib/core/validation/types/geoShape.d.ts +31 -0
- package/dist/lib/core/validation/types/geoShape.js +280 -0
- package/dist/lib/core/validation/types/integer.d.ts +7 -0
- package/{lib → dist/lib}/core/validation/types/integer.js +21 -27
- package/dist/lib/core/validation/types/ipAddress.d.ts +17 -0
- package/dist/lib/core/validation/types/ipAddress.js +73 -0
- package/dist/lib/core/validation/types/numeric.d.ts +17 -0
- package/dist/lib/core/validation/types/numeric.js +84 -0
- package/dist/lib/core/validation/types/object.d.ts +24 -0
- package/dist/lib/core/validation/types/object.js +74 -0
- package/dist/lib/core/validation/types/string.d.ts +17 -0
- package/dist/lib/core/validation/types/string.js +85 -0
- package/dist/lib/core/validation/types/url.d.ts +17 -0
- package/dist/lib/core/validation/types/url.js +73 -0
- package/dist/lib/core/validation/validation.d.ts +113 -0
- package/dist/lib/core/validation/validation.js +692 -0
- package/dist/lib/kerror/codes/0-core.json +194 -0
- package/dist/lib/kerror/codes/1-services.json +351 -0
- package/dist/lib/kerror/codes/2-api.json +195 -0
- package/dist/lib/kerror/codes/3-network.json +151 -0
- package/dist/lib/kerror/codes/4-plugin.json +498 -0
- package/dist/lib/kerror/codes/5-validation.json +158 -0
- package/dist/lib/kerror/codes/6-protocol.json +28 -0
- package/dist/lib/kerror/codes/7-security.json +283 -0
- package/dist/lib/kerror/codes/8-cluster.json +16 -0
- package/dist/lib/kerror/codes/index.d.ts +24 -0
- package/dist/lib/kerror/codes/index.js +140 -0
- package/{lib → dist/lib}/kerror/index.d.ts +5 -5
- package/{lib → dist/lib}/kuzzle/Logger.d.ts +6 -0
- package/{lib → dist/lib}/kuzzle/Logger.js +26 -5
- package/dist/lib/kuzzle/dumpGenerator.d.ts +14 -0
- package/dist/lib/kuzzle/dumpGenerator.js +180 -0
- package/dist/lib/kuzzle/event/pipeRunner.d.ts +30 -0
- package/dist/lib/kuzzle/event/pipeRunner.js +119 -0
- package/dist/lib/kuzzle/event/waterfall.d.ts +2 -0
- package/dist/lib/kuzzle/event/waterfall.js +90 -0
- package/dist/lib/kuzzle/internalIndexHandler.d.ts +186 -0
- package/dist/lib/kuzzle/internalIndexHandler.js +174 -0
- package/{lib → dist/lib}/kuzzle/kuzzle.d.ts +6 -7
- package/{lib → dist/lib}/kuzzle/kuzzle.js +5 -2
- package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +20 -0
- package/{lib → dist/lib}/kuzzle/kuzzleStateEnum.js +5 -8
- package/dist/lib/kuzzle/vault.d.ts +2 -0
- package/dist/lib/kuzzle/vault.js +63 -0
- package/dist/lib/model/security/rights.d.ts +8 -0
- package/{lib → dist/lib}/model/security/rights.js +4 -8
- package/{lib → dist/lib}/model/security/role.d.ts +1 -1
- package/{lib → dist/lib}/model/security/user.d.ts +1 -0
- package/dist/lib/model/storage/apiKey.d.ts +49 -0
- package/dist/lib/model/storage/apiKey.js +126 -0
- package/dist/lib/model/storage/baseModel.d.ts +100 -0
- package/dist/lib/model/storage/baseModel.js +211 -0
- package/dist/lib/service/cache/redis.d.ts +74 -0
- package/dist/lib/service/cache/redis.js +237 -0
- package/dist/lib/service/service.d.ts +30 -0
- package/dist/lib/service/service.js +74 -0
- package/{lib → dist/lib}/service/storage/7/elasticsearch.d.ts +2 -2
- package/{lib → dist/lib}/service/storage/7/elasticsearch.js +23 -25
- package/dist/lib/service/storage/7/esWrapper.d.ts +19 -0
- package/dist/lib/service/storage/7/esWrapper.js +245 -0
- package/{lib → dist/lib}/service/storage/8/elasticsearch.js +23 -25
- package/dist/lib/service/storage/8/esWrapper.d.ts +19 -0
- package/dist/lib/service/storage/8/esWrapper.js +245 -0
- package/{lib → dist/lib}/types/Plugin.d.ts +1 -1
- package/{lib/types → dist/lib/types/controllers}/Controller.d.ts +2 -2
- package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.d.ts +1 -1
- package/dist/lib/types/controllers/adminControlller.type.d.ts +5 -0
- package/dist/lib/types/controllers/adminControlller.type.js +3 -0
- package/dist/lib/types/controllers/authController.type.d.ts +5 -0
- package/dist/lib/types/controllers/authController.type.js +3 -0
- package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -0
- package/dist/lib/types/core/auth/formatProcessing.type.js +3 -0
- package/{lib → dist/lib}/types/index.d.ts +3 -3
- package/{lib → dist/lib}/types/index.js +3 -3
- package/dist/lib/util/assertType.d.ts +41 -0
- package/{lib → dist/lib}/util/assertType.js +38 -56
- package/dist/lib/util/asyncStore.d.ts +38 -0
- package/dist/lib/util/asyncStore.js +70 -0
- package/dist/lib/util/bytes.d.ts +2 -0
- package/dist/lib/util/bytes.js +33 -0
- package/dist/lib/util/debug.d.ts +2 -0
- package/{lib → dist/lib}/util/debug.js +15 -23
- package/dist/lib/util/deprecate.d.ts +1 -0
- package/dist/lib/util/deprecate.js +64 -0
- package/dist/lib/util/didYouMean.d.ts +2 -0
- package/{lib → dist/lib}/util/didYouMean.js +9 -15
- package/dist/lib/util/extractFields.d.ts +17 -0
- package/{lib → dist/lib}/util/extractFields.js +18 -32
- package/dist/lib/util/memoize.d.ts +7 -0
- package/{lib → dist/lib}/util/memoize.js +14 -21
- package/dist/lib/util/promback.d.ts +13 -0
- package/dist/lib/util/promback.js +60 -0
- package/dist/lib/util/requestAssertions.d.ts +10 -0
- package/dist/lib/util/requestAssertions.js +143 -0
- package/dist/lib/util/safeObject.d.ts +3 -0
- package/{lib → dist/lib}/util/safeObject.js +7 -13
- package/dist/lib/util/stackTrace.d.ts +19 -0
- package/{lib → dist/lib}/util/stackTrace.js +35 -41
- package/dist/lib/util/wildcard.d.ts +1 -0
- package/{lib → dist/lib}/util/wildcard.js +21 -30
- package/dist/package.json +119 -0
- package/package.json +44 -58
- package/bin/start-kuzzle-server +0 -126
- package/check-node-version.js +0 -17
- package/lib/api/controllers/adminController.js +0 -229
- package/lib/api/controllers/bulkController.js +0 -210
- package/lib/api/controllers/collectionController.js +0 -502
- package/lib/api/controllers/documentController.js +0 -1156
- package/lib/api/controllers/indexController.js +0 -179
- package/lib/api/controllers/memoryStorageController.js +0 -1023
- package/lib/api/controllers/realtimeController.js +0 -155
- package/lib/api/controllers/securityController.js +0 -1571
- package/lib/api/controllers/serverController.js +0 -381
- package/lib/api/documentExtractor.js +0 -309
- package/lib/api/funnel.js +0 -1143
- package/lib/api/httpRoutes.js +0 -1547
- package/lib/api/rateLimiter.js +0 -87
- package/lib/cluster/command.js +0 -284
- package/lib/cluster/node.js +0 -1203
- package/lib/cluster/publisher.js +0 -386
- package/lib/cluster/subscriber.js +0 -776
- package/lib/cluster/workers/IDCardRenewer.js +0 -144
- package/lib/config/index.js +0 -351
- package/lib/config/sdkCompatibility.json +0 -9
- package/lib/core/auth/formatProcessing.js +0 -66
- package/lib/core/auth/passportWrapper.js +0 -126
- package/lib/core/cache/cacheEngine.js +0 -278
- package/lib/core/network/accessLogger.js +0 -322
- package/lib/core/network/context.js +0 -80
- package/lib/core/network/entryPoint.js +0 -358
- package/lib/core/network/httpRouter/index.js +0 -316
- package/lib/core/network/httpRouter/routeHandler.js +0 -111
- package/lib/core/network/httpRouter/routePart.js +0 -147
- package/lib/core/network/protocols/httpMessage.js +0 -69
- package/lib/core/network/protocols/httpwsProtocol.js +0 -1254
- package/lib/core/network/protocols/internalProtocol.js +0 -109
- package/lib/core/network/protocols/mqttProtocol.js +0 -291
- package/lib/core/network/protocols/protocol.js +0 -102
- package/lib/core/network/router.js +0 -255
- package/lib/core/plugin/plugin.js +0 -436
- package/lib/core/plugin/pluginRepository.js +0 -132
- package/lib/core/plugin/pluginsManager.js +0 -1244
- package/lib/core/realtime/notification/document.js +0 -108
- package/lib/core/realtime/notification/user.js +0 -70
- package/lib/core/realtime/notifier.js +0 -541
- package/lib/core/security/README.md +0 -223
- package/lib/core/security/roleRepository.js +0 -569
- package/lib/core/security/securityLoader.js +0 -174
- package/lib/core/security/userRepository.js +0 -446
- package/lib/core/shared/README.md +0 -3
- package/lib/core/shared/abstractManifest.js +0 -102
- package/lib/core/shared/sdk/impersonatedSdk.js +0 -94
- package/lib/core/statistics/index.js +0 -24
- package/lib/core/statistics/statistics.js +0 -373
- package/lib/core/storage/clientAdapter.js +0 -1045
- package/lib/core/storage/storageEngine.js +0 -63
- package/lib/core/validation/baseType.js +0 -80
- package/lib/core/validation/index.js +0 -24
- package/lib/core/validation/types/date.js +0 -284
- package/lib/core/validation/types/email.js +0 -92
- package/lib/core/validation/types/enum.js +0 -100
- package/lib/core/validation/types/geoShape.js +0 -370
- package/lib/core/validation/types/ipAddress.js +0 -83
- package/lib/core/validation/types/numeric.js +0 -108
- package/lib/core/validation/types/object.js +0 -88
- package/lib/core/validation/types/string.js +0 -110
- package/lib/core/validation/types/url.js +0 -83
- package/lib/core/validation/validation.js +0 -1180
- package/lib/kerror/codes/0-core.json +0 -194
- package/lib/kerror/codes/1-services.json +0 -351
- package/lib/kerror/codes/2-api.json +0 -195
- package/lib/kerror/codes/3-network.json +0 -151
- package/lib/kerror/codes/4-plugin.json +0 -498
- package/lib/kerror/codes/5-validation.json +0 -158
- package/lib/kerror/codes/6-protocol.json +0 -28
- package/lib/kerror/codes/7-security.json +0 -283
- package/lib/kerror/codes/8-cluster.json +0 -16
- package/lib/kerror/codes/index.js +0 -208
- package/lib/kuzzle/dumpGenerator.js +0 -259
- package/lib/kuzzle/event/pipeRunner.js +0 -144
- package/lib/kuzzle/event/waterfall.js +0 -101
- package/lib/kuzzle/internalIndexHandler.js +0 -234
- package/lib/kuzzle/vault.js +0 -89
- package/lib/model/storage/apiKey.js +0 -158
- package/lib/model/storage/baseModel.js +0 -275
- package/lib/service/cache/redis.js +0 -282
- package/lib/service/service.js +0 -84
- package/lib/service/storage/7/esWrapper.js +0 -303
- package/lib/service/storage/8/esWrapper.js +0 -303
- package/lib/util/asyncStore.js +0 -112
- package/lib/util/bytes.js +0 -36
- package/lib/util/deprecate.js +0 -82
- package/lib/util/promback.js +0 -66
- package/lib/util/readYamlFile.d.ts +0 -2
- package/lib/util/readYamlFile.js +0 -10
- package/lib/util/requestAssertions.js +0 -157
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{lib → dist/lib}/api/controllers/baseController.d.ts +0 -0
- /package/{lib → dist/lib}/api/controllers/baseController.js +0 -0
- /package/{lib → dist/lib}/api/controllers/debugController.d.ts +0 -0
- /package/{lib → dist/lib}/api/controllers/debugController.js +0 -0
- /package/{lib → dist/lib}/api/openapi/OpenApiManager.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/OpenApiManager.js +0 -0
- /package/{lib → dist/lib}/api/openapi/index.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/index.js +0 -0
- /package/{lib → dist/lib}/api/openapi/openApiGenerator.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/openApiGenerator.js +0 -0
- /package/{lib → dist/lib}/api/request/index.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/index.js +0 -0
- /package/{lib → dist/lib}/api/request/kuzzleRequest.js +0 -0
- /package/{lib → dist/lib}/api/request/requestContext.js +0 -0
- /package/{lib → dist/lib}/api/request/requestInput.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/requestInput.js +0 -0
- /package/{lib → dist/lib}/api/request/requestResponse.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/requestResponse.js +0 -0
- /package/{lib → dist/lib}/cluster/idCardHandler.d.ts +0 -0
- /package/{lib → dist/lib}/cluster/idCardHandler.js +0 -0
- /package/{lib → dist/lib}/cluster/protobuf/command.proto +0 -0
- /package/{lib → dist/lib}/cluster/protobuf/sync.proto +0 -0
- /package/{lib → dist/lib}/cluster/state.d.ts +0 -0
- /package/{lib → dist/lib}/cluster/state.js +0 -0
- /package/{lib → dist/lib}/config/default.config.d.ts +0 -0
- /package/{lib → dist/lib}/config/default.config.js +0 -0
- /package/{lib → dist/lib}/config/documentEventAliases.js +0 -0
- /package/{lib → dist/lib}/core/auth/tokenManager.d.ts +0 -0
- /package/{lib → dist/lib}/core/auth/tokenManager.js +0 -0
- /package/{lib → dist/lib}/core/backend/applicationManager.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/applicationManager.js +0 -0
- /package/{lib → dist/lib}/core/backend/backend.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backend.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendCluster.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendCluster.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendConfig.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendController.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendController.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendErrors.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendHook.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendHook.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendImport.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendImport.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendOpenApi.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendOpenApi.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendPipe.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendPipe.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendPlugin.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendPlugin.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendStorage.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendStorage.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendSubscription.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendSubscription.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendVault.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendVault.js +0 -0
- /package/{lib → dist/lib}/core/backend/index.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/index.js +0 -0
- /package/{lib → dist/lib}/core/backend/internalLogger.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/internalLogger.js +0 -0
- /package/{lib → dist/lib}/core/cache/cacheDbEnum.d.ts +0 -0
- /package/{lib → dist/lib}/core/cache/cacheDbEnum.js +0 -0
- /package/{lib → dist/lib}/core/debug/kuzzleDebugger.d.ts +0 -0
- /package/{lib → dist/lib}/core/debug/kuzzleDebugger.js +0 -0
- /package/{lib → dist/lib}/core/plugin/pluginContext.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/channel.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/channel.js +0 -0
- /package/{lib → dist/lib}/core/realtime/connectionRooms.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/connectionRooms.js +0 -0
- /package/{lib → dist/lib}/core/realtime/hotelClerk.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/hotelClerk.js +0 -0
- /package/{lib → dist/lib}/core/realtime/room.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/room.js +0 -0
- /package/{lib → dist/lib}/core/realtime/subscription.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/subscription.js +0 -0
- /package/{lib → dist/lib}/core/security/profileRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/security/profileRepository.js +0 -0
- /package/{lib → dist/lib}/core/security/tokenRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/KoncordeWrapper.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/KoncordeWrapper.js +0 -0
- /package/{lib → dist/lib}/core/shared/ObjectRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/ObjectRepository.js +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.js +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.js +0 -0
- /package/{lib → dist/lib}/core/shared/store.js +0 -0
- /package/{lib → dist/lib}/core/storage/indexCache.d.ts +0 -0
- /package/{lib → dist/lib}/core/storage/indexCache.js +0 -0
- /package/{lib → dist/lib}/core/storage/storeScopeEnum.d.ts +0 -0
- /package/{lib → dist/lib}/core/storage/storeScopeEnum.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/badRequestError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/badRequestError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/externalServiceError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/externalServiceError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/forbiddenError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/forbiddenError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/index.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/index.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/internalError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/internalError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/kuzzleError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/kuzzleError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/notFoundError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/notFoundError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/partialError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/partialError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/preconditionError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/preconditionError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/sizeLimitError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/sizeLimitError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/unauthorizedError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/unauthorizedError.js +0 -0
- /package/{lib → dist/lib}/kerror/index.js +0 -0
- /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.d.ts +0 -0
- /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.js +0 -0
- /package/{lib → dist/lib}/kuzzle/index.d.ts +0 -0
- /package/{lib → dist/lib}/kuzzle/index.js +0 -0
- /package/{lib → dist/lib}/model/security/profile.d.ts +0 -0
- /package/{lib → dist/lib}/model/security/profile.js +0 -0
- /package/{lib → dist/lib}/model/security/role.js +0 -0
- /package/{lib → dist/lib}/model/security/token.d.ts +0 -0
- /package/{lib → dist/lib}/model/security/token.js +0 -0
- /package/{lib → dist/lib}/model/security/user.js +0 -0
- /package/{lib → dist/lib}/service/storage/8/elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/service/storage/commons/queryTranslator.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/commons/queryTranslator.js +0 -0
- /package/{lib → dist/lib}/types/ClientConnection.d.ts +0 -0
- /package/{lib → dist/lib}/types/ClientConnection.js +0 -0
- /package/{lib → dist/lib}/types/Deprecation.d.ts +0 -0
- /package/{lib → dist/lib}/types/Deprecation.js +0 -0
- /package/{lib → dist/lib}/types/EventHandler.d.ts +0 -0
- /package/{lib → dist/lib}/types/EventHandler.js +0 -0
- /package/{lib → dist/lib}/types/Global.d.ts +0 -0
- /package/{lib → dist/lib}/types/Global.js +0 -0
- /package/{lib → dist/lib}/types/HttpMessage.d.ts +0 -0
- /package/{lib → dist/lib}/types/HttpMessage.js +0 -0
- /package/{lib → dist/lib}/types/HttpStream.d.ts +0 -0
- /package/{lib → dist/lib}/types/HttpStream.js +0 -0
- /package/{lib → dist/lib}/types/Kuzzle.d.ts +0 -0
- /package/{lib → dist/lib}/types/Kuzzle.js +0 -0
- /package/{lib → dist/lib}/types/KuzzleDocument.d.ts +0 -0
- /package/{lib → dist/lib}/types/KuzzleDocument.js +0 -0
- /package/{lib → dist/lib}/types/OpenApiDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/OpenApiDefinition.js +0 -0
- /package/{lib → dist/lib}/types/PasswordPolicy.d.ts +0 -0
- /package/{lib → dist/lib}/types/PasswordPolicy.js +0 -0
- /package/{lib → dist/lib}/types/Plugin.js +0 -0
- /package/{lib → dist/lib}/types/PluginManifest.d.ts +0 -0
- /package/{lib → dist/lib}/types/PluginManifest.js +0 -0
- /package/{lib → dist/lib}/types/Policy.d.ts +0 -0
- /package/{lib → dist/lib}/types/Policy.js +0 -0
- /package/{lib → dist/lib}/types/PolicyRestrictions.d.ts +0 -0
- /package/{lib → dist/lib}/types/PolicyRestrictions.js +0 -0
- /package/{lib → dist/lib}/types/ProfileDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/ProfileDefinition.js +0 -0
- /package/{lib → dist/lib}/types/RoleDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/RoleDefinition.js +0 -0
- /package/{lib → dist/lib}/types/StrategyDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/StrategyDefinition.js +0 -0
- /package/{lib → dist/lib}/types/Target.d.ts +0 -0
- /package/{lib → dist/lib}/types/Target.js +0 -0
- /package/{lib → dist/lib}/types/Token.d.ts +0 -0
- /package/{lib → dist/lib}/types/Token.js +0 -0
- /package/{lib → dist/lib}/types/User.d.ts +0 -0
- /package/{lib → dist/lib}/types/User.js +0 -0
- /package/{lib → dist/lib}/types/config/DumpConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/DumpConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/HttpConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/HttpConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/KuzzleConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/KuzzleConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/LimitsConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/LimitsConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/PluginsConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/PluginsConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/SecurityConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/SecurityConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/ServerConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/ServerConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/ServicesConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/ServicesConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/Controller.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerRights.d.ts +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerRights.js +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDefinition.js +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDomains.d.ts +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDomains.js +0 -0
- /package/{lib → dist/lib}/types/events/EventGenericDocument.d.ts +0 -0
- /package/{lib → dist/lib}/types/events/EventGenericDocument.js +0 -0
- /package/{lib → dist/lib}/types/events/EventProtocol.d.ts +0 -0
- /package/{lib → dist/lib}/types/events/EventProtocol.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeScope.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeScope.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeUsers.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeUsers.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RoomList.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RoomList.js +0 -0
- /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.js +0 -0
- /package/{lib → dist/lib}/types/storage/7/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/types/storage/7/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/types/storage/8/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/types/storage/8/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/util/Inflector.d.ts +0 -0
- /package/{lib → dist/lib}/util/Inflector.js +0 -0
- /package/{lib → dist/lib}/util/array.d.ts +0 -0
- /package/{lib → dist/lib}/util/array.js +0 -0
- /package/{lib → dist/lib}/util/async.d.ts +0 -0
- /package/{lib → dist/lib}/util/async.js +0 -0
- /package/{lib → dist/lib}/util/bufferedPassThrough.d.ts +0 -0
- /package/{lib → dist/lib}/util/bufferedPassThrough.js +0 -0
- /package/{lib → dist/lib}/util/crypto.d.ts +0 -0
- /package/{lib → dist/lib}/util/crypto.js +0 -0
- /package/{lib → dist/lib}/util/dump-collection.d.ts +0 -0
- /package/{lib → dist/lib}/util/dump-collection.js +0 -0
- /package/{lib → dist/lib}/util/esRequest.d.ts +0 -0
- /package/{lib → dist/lib}/util/esRequest.js +0 -0
- /package/{lib → dist/lib}/util/koncordeCompat.d.ts +0 -0
- /package/{lib → dist/lib}/util/koncordeCompat.js +0 -0
- /package/{lib → dist/lib}/util/mutex.d.ts +0 -0
- /package/{lib → dist/lib}/util/mutex.js +0 -0
- /package/{lib → dist/lib}/util/name-generator.d.ts +0 -0
- /package/{lib → dist/lib}/util/name-generator.js +0 -0
- /package/{lib → dist/lib}/util/time.d.ts +0 -0
- /package/{lib → dist/lib}/util/time.js +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
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 Bluebird = require("bluebird");
|
|
23
|
+
const kerror = require("../kerror");
|
|
24
|
+
/**
|
|
25
|
+
* Services base class
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
class Service {
|
|
29
|
+
constructor(name, config) {
|
|
30
|
+
this._name = name;
|
|
31
|
+
this._config = config;
|
|
32
|
+
this._initTimeout =
|
|
33
|
+
config.initTimeout ||
|
|
34
|
+
global.kuzzle.config.services.common.defaultInitTimeout;
|
|
35
|
+
}
|
|
36
|
+
get config() {
|
|
37
|
+
return this._config;
|
|
38
|
+
}
|
|
39
|
+
get name() {
|
|
40
|
+
return this._name;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Call _initSequence to initialize the service
|
|
44
|
+
* and throw an error if timeout exceed
|
|
45
|
+
*
|
|
46
|
+
* @returns {Promise}
|
|
47
|
+
*/
|
|
48
|
+
init() {
|
|
49
|
+
return Bluebird.resolve(this._initSequence())
|
|
50
|
+
.timeout(this._initTimeout)
|
|
51
|
+
.catch((e) => {
|
|
52
|
+
if (e instanceof Bluebird.TimeoutError) {
|
|
53
|
+
throw kerror.get("core", "fatal", "service_timeout", this._name);
|
|
54
|
+
}
|
|
55
|
+
throw e;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @abstract
|
|
60
|
+
* @returns {Promise}
|
|
61
|
+
*/
|
|
62
|
+
_initSequence() {
|
|
63
|
+
throw new Error("Not implemented");
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @abstract
|
|
67
|
+
* @returns {Promise}
|
|
68
|
+
*/
|
|
69
|
+
info() {
|
|
70
|
+
throw new Error("Not implemented");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
module.exports = Service;
|
|
74
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _ from "lodash";
|
|
2
2
|
import { Client, RequestParams } from "sdk-es7";
|
|
3
3
|
import { TypeMapping } from "sdk-es7/api/types";
|
|
4
|
-
import { JSONObject, KRequestBody, KRequestParams } from "../../../types/storage/7/Elasticsearch";
|
|
4
|
+
import { InfoResult, JSONObject, KRequestBody, KRequestParams } from "../../../types/storage/7/Elasticsearch";
|
|
5
5
|
import { storeScopeEnum } from "../../../core/storage/storeScopeEnum";
|
|
6
6
|
import { QueryTranslator } from "../commons/queryTranslator";
|
|
7
7
|
import ESWrapper from "./esWrapper";
|
|
@@ -47,7 +47,7 @@ export declare class ES7 {
|
|
|
47
47
|
*
|
|
48
48
|
* @returns {Promise.<Object>} service informations
|
|
49
49
|
*/
|
|
50
|
-
info(): Promise<
|
|
50
|
+
info(): Promise<InfoResult>;
|
|
51
51
|
/**
|
|
52
52
|
* Returns detailed multi-level storage stats data
|
|
53
53
|
*
|
|
@@ -53,7 +53,6 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
53
53
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
54
54
|
const ms_1 = __importDefault(require("ms"));
|
|
55
55
|
const semver_1 = __importDefault(require("semver"));
|
|
56
|
-
const debug_1 = __importDefault(require("../../../util/debug"));
|
|
57
56
|
const storeScopeEnum_1 = require("../../../core/storage/storeScopeEnum");
|
|
58
57
|
const kerror = __importStar(require("../../../kerror"));
|
|
59
58
|
const didYouMean_1 = __importDefault(require("../../../util/didYouMean"));
|
|
@@ -64,7 +63,6 @@ const requestAssertions_1 = require("../../../util/requestAssertions");
|
|
|
64
63
|
const safeObject_1 = require("../../../util/safeObject");
|
|
65
64
|
const queryTranslator_1 = require("../commons/queryTranslator");
|
|
66
65
|
const esWrapper_1 = __importDefault(require("./esWrapper"));
|
|
67
|
-
(0, debug_1.default)("kuzzle:services:elasticsearch");
|
|
68
66
|
const SCROLL_CACHE_PREFIX = "_docscroll_";
|
|
69
67
|
const ROOT_MAPPING_PROPERTIES = [
|
|
70
68
|
"properties",
|
|
@@ -270,7 +268,7 @@ class ES7 {
|
|
|
270
268
|
scroll_id: scrollId,
|
|
271
269
|
};
|
|
272
270
|
const cacheKey = SCROLL_CACHE_PREFIX + global.kuzzle.hash(esRequest.scroll_id);
|
|
273
|
-
|
|
271
|
+
this.logger.debug("Scroll: %o", esRequest);
|
|
274
272
|
if (_scrollTTL) {
|
|
275
273
|
const scrollDuration = (0, ms_1.default)(_scrollTTL);
|
|
276
274
|
if (scrollDuration > this.maxScrollDuration) {
|
|
@@ -286,7 +284,7 @@ class ES7 {
|
|
|
286
284
|
const { body } = await this._client.scroll(esRequest);
|
|
287
285
|
scrollInfo.fetched += body.hits.hits.length;
|
|
288
286
|
if (scrollInfo.fetched >= body.hits.total.value) {
|
|
289
|
-
|
|
287
|
+
this.logger.debug("Last scroll page fetched: deleting scroll %s", body._scroll_id);
|
|
290
288
|
await global.kuzzle.ask("core:cache:internal:del", cacheKey);
|
|
291
289
|
await this.clearScroll(body._scroll_id);
|
|
292
290
|
}
|
|
@@ -341,7 +339,7 @@ class ES7 {
|
|
|
341
339
|
throw kerror.get("services", "storage", "scroll_duration_too_great", scroll);
|
|
342
340
|
}
|
|
343
341
|
}
|
|
344
|
-
|
|
342
|
+
this.logger.debug("Search: %j", esRequest);
|
|
345
343
|
try {
|
|
346
344
|
const { body } = await this._client.search(esRequest);
|
|
347
345
|
if (body._scroll_id) {
|
|
@@ -474,7 +472,7 @@ class ES7 {
|
|
|
474
472
|
if (esRequest.id === "_search") {
|
|
475
473
|
return kerror.reject("services", "storage", "search_as_an_id");
|
|
476
474
|
}
|
|
477
|
-
|
|
475
|
+
this.logger.debug("Get document: %o", esRequest);
|
|
478
476
|
try {
|
|
479
477
|
const { body } = await this._client.get(esRequest);
|
|
480
478
|
return {
|
|
@@ -510,7 +508,7 @@ class ES7 {
|
|
|
510
508
|
})),
|
|
511
509
|
},
|
|
512
510
|
};
|
|
513
|
-
|
|
511
|
+
this.logger.debug("Multi-get documents: %o", esRequest);
|
|
514
512
|
let body;
|
|
515
513
|
try {
|
|
516
514
|
({ body } = await this._client.mget(esRequest)); // NOSONAR
|
|
@@ -548,7 +546,7 @@ class ES7 {
|
|
|
548
546
|
body: this._sanitizeSearchBody(searchBody),
|
|
549
547
|
index: this._getAlias(index, collection),
|
|
550
548
|
};
|
|
551
|
-
|
|
549
|
+
this.logger.debug("Count: %o", esRequest);
|
|
552
550
|
try {
|
|
553
551
|
const { body } = await this._client.count(esRequest);
|
|
554
552
|
return body.count;
|
|
@@ -588,7 +586,7 @@ class ES7 {
|
|
|
588
586
|
updater: null,
|
|
589
587
|
};
|
|
590
588
|
}
|
|
591
|
-
|
|
589
|
+
this.logger.debug("Create document: %o", esRequest);
|
|
592
590
|
try {
|
|
593
591
|
const { body } = await this._client.index(esRequest);
|
|
594
592
|
return {
|
|
@@ -630,7 +628,7 @@ class ES7 {
|
|
|
630
628
|
updater: getKuid(userId),
|
|
631
629
|
};
|
|
632
630
|
}
|
|
633
|
-
|
|
631
|
+
this.logger.debug("Create or replace document: %o", esRequest);
|
|
634
632
|
try {
|
|
635
633
|
const { body } = await this._client.index(esRequest);
|
|
636
634
|
return {
|
|
@@ -673,7 +671,7 @@ class ES7 {
|
|
|
673
671
|
updater: getKuid(userId),
|
|
674
672
|
};
|
|
675
673
|
}
|
|
676
|
-
|
|
674
|
+
this.logger.debug("Update document: %o", esRequest);
|
|
677
675
|
try {
|
|
678
676
|
const { body } = await this._client.update(esRequest);
|
|
679
677
|
return {
|
|
@@ -725,7 +723,7 @@ class ES7 {
|
|
|
725
723
|
createdAt: now,
|
|
726
724
|
};
|
|
727
725
|
}
|
|
728
|
-
|
|
726
|
+
this.logger.debug("Upsert document: %o", esRequest);
|
|
729
727
|
try {
|
|
730
728
|
const { body } = await this._client.update(esRequest);
|
|
731
729
|
return {
|
|
@@ -774,7 +772,7 @@ class ES7 {
|
|
|
774
772
|
if (!exists) {
|
|
775
773
|
throw kerror.get("services", "storage", "not_found", id, index, collection);
|
|
776
774
|
}
|
|
777
|
-
|
|
775
|
+
this.logger.debug("Replace document: %o", esRequest);
|
|
778
776
|
const { body } = await this._client.index(esRequest);
|
|
779
777
|
return {
|
|
780
778
|
_id: id,
|
|
@@ -803,7 +801,7 @@ class ES7 {
|
|
|
803
801
|
refresh,
|
|
804
802
|
};
|
|
805
803
|
assertWellFormedRefresh(esRequest);
|
|
806
|
-
|
|
804
|
+
this.logger.debug("Delete document: %o", esRequest);
|
|
807
805
|
try {
|
|
808
806
|
await this._client.delete(esRequest);
|
|
809
807
|
}
|
|
@@ -843,7 +841,7 @@ class ES7 {
|
|
|
843
841
|
if (fetch) {
|
|
844
842
|
documents = await this._getAllDocumentsFromQuery(esRequest);
|
|
845
843
|
}
|
|
846
|
-
|
|
844
|
+
this.logger.debug("Delete by query: %o", esRequest);
|
|
847
845
|
esRequest.refresh = refresh === "wait_for" ? true : refresh;
|
|
848
846
|
const { body } = await this._client.deleteByQuery(esRequest);
|
|
849
847
|
return {
|
|
@@ -878,7 +876,7 @@ class ES7 {
|
|
|
878
876
|
index: alias,
|
|
879
877
|
};
|
|
880
878
|
try {
|
|
881
|
-
|
|
879
|
+
this.logger.debug("DeleteFields document: %o", esRequest);
|
|
882
880
|
const { body } = await this._client.get(esRequest);
|
|
883
881
|
for (const field of fields) {
|
|
884
882
|
if (lodash_1.default.has(body._source, field)) {
|
|
@@ -933,7 +931,7 @@ class ES7 {
|
|
|
933
931
|
document._source = undefined;
|
|
934
932
|
document.body = changes;
|
|
935
933
|
}
|
|
936
|
-
|
|
934
|
+
this.logger.debug("Update by query: %o", esRequest);
|
|
937
935
|
const { errors, items } = await this.mUpdate(index, collection, documents, { refresh, userId });
|
|
938
936
|
return {
|
|
939
937
|
errors,
|
|
@@ -975,7 +973,7 @@ class ES7 {
|
|
|
975
973
|
if (script.source !== "") {
|
|
976
974
|
esRequest.body.script = script;
|
|
977
975
|
}
|
|
978
|
-
|
|
976
|
+
this.logger.debug("Bulk Update by query: %o", esRequest);
|
|
979
977
|
let response;
|
|
980
978
|
try {
|
|
981
979
|
response = await this._client.updateByQuery(esRequest);
|
|
@@ -1166,7 +1164,7 @@ class ES7 {
|
|
|
1166
1164
|
const esRequest = {
|
|
1167
1165
|
index: indice,
|
|
1168
1166
|
};
|
|
1169
|
-
|
|
1167
|
+
this.logger.debug("Get settings: %o", esRequest);
|
|
1170
1168
|
try {
|
|
1171
1169
|
const { body } = await this._client.indices.getSettings(esRequest);
|
|
1172
1170
|
return body[indice].settings.index;
|
|
@@ -1189,7 +1187,7 @@ class ES7 {
|
|
|
1189
1187
|
const esRequest = {
|
|
1190
1188
|
index: indice,
|
|
1191
1189
|
};
|
|
1192
|
-
|
|
1190
|
+
this.logger.debug("Get mapping: %o", esRequest);
|
|
1193
1191
|
try {
|
|
1194
1192
|
const { body } = await this._client.indices.getMapping(esRequest);
|
|
1195
1193
|
const properties = includeKuzzleMeta
|
|
@@ -1289,7 +1287,7 @@ class ES7 {
|
|
|
1289
1287
|
// processing large indexes.
|
|
1290
1288
|
wait_for_completion: false,
|
|
1291
1289
|
};
|
|
1292
|
-
|
|
1290
|
+
this.logger.debug("UpdateByQuery: %o", esRequest);
|
|
1293
1291
|
try {
|
|
1294
1292
|
await this._client.updateByQuery(esRequest);
|
|
1295
1293
|
}
|
|
@@ -1321,7 +1319,7 @@ class ES7 {
|
|
|
1321
1319
|
dynamic: mappings.dynamic || collectionMappings.dynamic,
|
|
1322
1320
|
properties: mappings.properties,
|
|
1323
1321
|
};
|
|
1324
|
-
|
|
1322
|
+
this.logger.debug("Update mapping: %o", esRequest);
|
|
1325
1323
|
try {
|
|
1326
1324
|
await this._client.indices.putMapping(esRequest);
|
|
1327
1325
|
}
|
|
@@ -1634,7 +1632,7 @@ class ES7 {
|
|
|
1634
1632
|
if (esRequest.index.length === 0) {
|
|
1635
1633
|
return [];
|
|
1636
1634
|
}
|
|
1637
|
-
|
|
1635
|
+
this.logger.debug("Delete indexes: %o", esRequest);
|
|
1638
1636
|
await this._client.indices.delete(esRequest);
|
|
1639
1637
|
}
|
|
1640
1638
|
catch (error) {
|
|
@@ -1723,7 +1721,7 @@ class ES7 {
|
|
|
1723
1721
|
},
|
|
1724
1722
|
index: this._getAlias(index, collection),
|
|
1725
1723
|
};
|
|
1726
|
-
|
|
1724
|
+
this.logger.debug("mExists: %o", esRequest);
|
|
1727
1725
|
let body;
|
|
1728
1726
|
try {
|
|
1729
1727
|
({ body } = await this._client.mget(esRequest)); // NOSONAR
|
|
@@ -2728,7 +2726,7 @@ class ES7 {
|
|
|
2728
2726
|
*/
|
|
2729
2727
|
async clearScroll(id) {
|
|
2730
2728
|
if (id) {
|
|
2731
|
-
|
|
2729
|
+
this.logger.debug("clearing scroll: %s", id);
|
|
2732
2730
|
await this._client.clearScroll({ scroll_id: id });
|
|
2733
2731
|
}
|
|
2734
2732
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export = ESWrapper;
|
|
2
|
+
declare class ESWrapper {
|
|
3
|
+
constructor(client: any);
|
|
4
|
+
client: any;
|
|
5
|
+
/**
|
|
6
|
+
* Transforms raw ES errors into a normalized Kuzzle version
|
|
7
|
+
*
|
|
8
|
+
* @param {Error} error
|
|
9
|
+
* @returns {KuzzleError}
|
|
10
|
+
*/
|
|
11
|
+
formatESError(error: Error): KuzzleError;
|
|
12
|
+
reject(error: any): Bluebird<never>;
|
|
13
|
+
_handleConflictError(error: any, message: any): KuzzleError;
|
|
14
|
+
_handleNotFoundError(error: any, message: any): KuzzleError;
|
|
15
|
+
_handleBadRequestError(error: any, message: any): KuzzleError;
|
|
16
|
+
_handleUnknownError(error: any, message: any): KuzzleError;
|
|
17
|
+
}
|
|
18
|
+
import { KuzzleError } from "../../../kerror/errors/kuzzleError";
|
|
19
|
+
import Bluebird = require("bluebird");
|
|
@@ -0,0 +1,245 @@
|
|
|
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
|
+
/* eslint sort-keys: 0 */
|
|
22
|
+
"use strict";
|
|
23
|
+
const Bluebird = require("bluebird");
|
|
24
|
+
const _ = require("lodash");
|
|
25
|
+
const es = require("sdk-es7");
|
|
26
|
+
const { KuzzleError } = require("../../../kerror/errors");
|
|
27
|
+
const debug = require("../../../util/debug")("kuzzle:services:storage:ESCommon");
|
|
28
|
+
const kerror = require("../../../kerror").wrap("services", "storage");
|
|
29
|
+
const errorMessagesMapping = [
|
|
30
|
+
{
|
|
31
|
+
regex: /^\[es_rejected_execution_exception] rejected execution .*? on EsThreadPoolExecutor\[(.*?), .*$/,
|
|
32
|
+
subCode: "too_many_operations",
|
|
33
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
// [illegal_argument_exception] object mapping [titi] can't be changed from nested to non-nested
|
|
37
|
+
regex: /^\[illegal_argument_exception] object mapping \[(.*?)] can't be changed from nested to non-nested$/,
|
|
38
|
+
subcode: "cannot_change_mapping",
|
|
39
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
// [illegal_argument_exception] object mapping [baz] can't be changed from non-nested to nested
|
|
43
|
+
regex: /^\[illegal_argument_exception] object mapping \[(.*?)] can't be changed from non-nested to nested$/,
|
|
44
|
+
subcode: "cannot_change_mapping",
|
|
45
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
// [illegal_argument_exception] Can't merge a non object mapping [aeaze] with an object mapping [aeaze]
|
|
49
|
+
regex: /^\[illegal_argument_exception] Can't merge a non object mapping \[(.*?)] with an object mapping \[(.*?)]$/,
|
|
50
|
+
subcode: "cannot_change_mapping",
|
|
51
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
// [illegal_argument_exception] [tutu.tutu] is defined as an object in mapping [aze] but this name is already used for a field in other types
|
|
55
|
+
regex: /^\[illegal_argument_exception] \[(.*?)] is defined as an object in mapping \[(.*?)] but this name is already used for a field in other types$/,
|
|
56
|
+
subcode: "duplicate_field_mapping",
|
|
57
|
+
getPlaceholders: (esError, matches) => [matches[1], matches[2]],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
// [illegal_argument_exception] mapper [source.flags] of different type, current_type [string], merged_type [long]
|
|
61
|
+
regex: /^mapper \[(.*?)] of different type, current_type \[(.*?)], merged_type \[(.*?)]$/,
|
|
62
|
+
subcode: "cannot_change_mapping",
|
|
63
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
// [mapper_parsing_exception] Mapping definition for [flags] has unsupported parameters: [index : not_analyzed]
|
|
67
|
+
// eslint-disable-next-line no-regex-spaces
|
|
68
|
+
regex: /^\[mapper_parsing_exception] Mapping definition for \[(.*?)] has unsupported parameters: \[(.*?)]$/,
|
|
69
|
+
subcode: "unexpected_properties",
|
|
70
|
+
getPlaceholders: (esError, matches) => [matches[2], matches[1]],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
// [mapper_parsing_exception] No handler for type [boolean] declared on field [not]
|
|
74
|
+
regex: /^\[mapper_parsing_exception] No handler for type \[(.*?)] declared on field \[(.*?)]$/,
|
|
75
|
+
subcode: "invalid_mapping_type",
|
|
76
|
+
getPlaceholders: (esError, matches) => [matches[2], matches[1]],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
// [mapper_parsing_exception] failed to parse [conditions.host.flags]
|
|
80
|
+
regex: /^\[mapper_parsing_exception] failed to parse \[(.*?)]$/,
|
|
81
|
+
subcode: "wrong_mapping_property",
|
|
82
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
// Failed to parse mapping [_doc]: Expected map for property [fields] on field [enabled] but got a class java.lang.String
|
|
86
|
+
regex: /^Failed to parse mapping \[.*\]: Expected \w+ for property \[(.*)\] on field \[(.*)\]/,
|
|
87
|
+
subcode: "wrong_mapping_property",
|
|
88
|
+
getPlaceholders: (esError, matches) => [`${matches[2]}.${matches[1]}`],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
// [index_not_found_exception] no such index, with { resource.type=index_or_alias & resource.id=foso & index=foso }
|
|
92
|
+
regex: /^no such index \[([%&])(.*)\.(.*)\]$/,
|
|
93
|
+
subcode: "unknown_collection",
|
|
94
|
+
getPlaceholders: (esError, matches) => [matches[2], matches[3]],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
// [mapper_parsing_exception] Expected map for property [fields] on field [foo] but got a class java.lang.String
|
|
98
|
+
regex: /^\[mapper_parsing_exception] Expected map for property \[(.*?)] on field \[(.*?)] but got a class java\.lang\.String$/,
|
|
99
|
+
subcode: "wrong_mapping_property",
|
|
100
|
+
getPlaceholders: (esError, matches) => [`${matches[2]}.${matches[1]}`],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
regex: /^\[version_conflict_engine_exception] \[data]\[(.*?)]: version conflict.*$/,
|
|
104
|
+
subcode: "too_many_changes",
|
|
105
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
//[liia]: version conflict, document already exists (current version [2])
|
|
109
|
+
regex: /^\[(.*)\]: version conflict, document already exists.*/,
|
|
110
|
+
subcode: "document_already_exists",
|
|
111
|
+
getPlaceholders: () => [],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
// Unknown key for a START_OBJECT in [term].
|
|
115
|
+
regex: /^Unknown key for a START_OBJECT in \[(.*)\].*/,
|
|
116
|
+
subcode: "invalid_search_query",
|
|
117
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
// mapping set to strict, dynamic introduction of [lehuong] within [_doc] is not allowed
|
|
121
|
+
regex: /^mapping set to strict, dynamic introduction of \[(.+)\] within \[.+\] is not allowed/,
|
|
122
|
+
subcode: "strict_mapping_rejection",
|
|
123
|
+
getPlaceholders: (esError, matches) => {
|
|
124
|
+
// "/%26index.collection/_doc"
|
|
125
|
+
const esPath = esError.meta.meta.request.params.path;
|
|
126
|
+
// keep only "index"
|
|
127
|
+
const index = esPath.split(".")[0].split("%26")[1];
|
|
128
|
+
// keep only "collection"
|
|
129
|
+
const collection = esPath.substr(esPath.indexOf(".") + 1).split("/")[0];
|
|
130
|
+
return [matches[1], index, collection];
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
// [and] query malformed, no start_object after query name
|
|
135
|
+
regex: /^\[(.*)\] query malformed, no start_object after query name/,
|
|
136
|
+
subcode: "unknown_query_keyword",
|
|
137
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
// no [query] registered for [equals]
|
|
141
|
+
regex: /^no \[query\] registered for \[(.*)\]/,
|
|
142
|
+
subcode: "unknown_query_keyword",
|
|
143
|
+
getPlaceholders: (esError, matches) => [matches[1]],
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
class ESWrapper {
|
|
147
|
+
constructor(client) {
|
|
148
|
+
this.client = client;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Transforms raw ES errors into a normalized Kuzzle version
|
|
152
|
+
*
|
|
153
|
+
* @param {Error} error
|
|
154
|
+
* @returns {KuzzleError}
|
|
155
|
+
*/
|
|
156
|
+
formatESError(error) {
|
|
157
|
+
if (error instanceof KuzzleError) {
|
|
158
|
+
return error;
|
|
159
|
+
}
|
|
160
|
+
global.kuzzle.emit("services:storage:error", {
|
|
161
|
+
message: `Elasticsearch Client error: ${error.message}`,
|
|
162
|
+
// /!\ not all ES error classes have a "meta" property
|
|
163
|
+
meta: error.meta || null,
|
|
164
|
+
stack: error.stack,
|
|
165
|
+
});
|
|
166
|
+
if (error instanceof es.errors.NoLivingConnectionsError) {
|
|
167
|
+
throw kerror.get("not_connected");
|
|
168
|
+
}
|
|
169
|
+
const message = _.get(error, "meta.body.error.reason", error.message);
|
|
170
|
+
// Try to match a known elasticsearch error
|
|
171
|
+
for (const betterError of errorMessagesMapping) {
|
|
172
|
+
const matches = message.match(betterError.regex);
|
|
173
|
+
if (matches) {
|
|
174
|
+
return kerror.get(betterError.subcode, ...betterError.getPlaceholders(error, matches));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Try to match using error codes
|
|
178
|
+
if (error.meta) {
|
|
179
|
+
switch (error.meta.statusCode) {
|
|
180
|
+
case 400:
|
|
181
|
+
return this._handleBadRequestError(error, message);
|
|
182
|
+
case 404:
|
|
183
|
+
return this._handleNotFoundError(error, message);
|
|
184
|
+
case 409:
|
|
185
|
+
return this._handleConflictError(error, message);
|
|
186
|
+
default:
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return this._handleUnknownError(error, message);
|
|
191
|
+
}
|
|
192
|
+
reject(error) {
|
|
193
|
+
return Bluebird.reject(this.formatESError(error));
|
|
194
|
+
}
|
|
195
|
+
_handleConflictError(error, message) {
|
|
196
|
+
debug('unhandled "Conflict" elasticsearch error: %a', error);
|
|
197
|
+
return kerror.get("unexpected_error", message);
|
|
198
|
+
}
|
|
199
|
+
_handleNotFoundError(error, message) {
|
|
200
|
+
let errorMessage = message;
|
|
201
|
+
if (!error.body._index) {
|
|
202
|
+
return kerror.get("unexpected_not_found", errorMessage);
|
|
203
|
+
}
|
|
204
|
+
// _index= "&nyc-open-data.yellow-taxi"
|
|
205
|
+
const index = error.body._index.split(".")[0].slice(1);
|
|
206
|
+
const collection = error.body._index.split(".")[1];
|
|
207
|
+
// 404 on a GET document
|
|
208
|
+
if (error.body.found === false) {
|
|
209
|
+
return kerror.get("not_found", error.body._id, index, collection);
|
|
210
|
+
}
|
|
211
|
+
// 404 on DELETE document (ES error payloads are so cool!)
|
|
212
|
+
if (error.meta.body._id) {
|
|
213
|
+
return kerror.get("not_found", error.meta.body._id, index, collection);
|
|
214
|
+
}
|
|
215
|
+
if (error.meta.body && error.meta.body.error) {
|
|
216
|
+
errorMessage = error.meta.body.error
|
|
217
|
+
? `${error.meta.body.error.reason}: ${error.meta.body.error["resource.id"]}`
|
|
218
|
+
: `${error.message}: ${error.body._id}`;
|
|
219
|
+
}
|
|
220
|
+
debug('unhandled "NotFound" elasticsearch error: %a', error);
|
|
221
|
+
return kerror.get("unexpected_not_found", errorMessage);
|
|
222
|
+
}
|
|
223
|
+
_handleBadRequestError(error, message) {
|
|
224
|
+
let errorMessage = message;
|
|
225
|
+
if (error.meta.body && error.meta.body.error) {
|
|
226
|
+
errorMessage = error.meta.body.error.root_cause
|
|
227
|
+
? error.meta.body.error.root_cause[0].reason
|
|
228
|
+
: error.meta.body.error.reason;
|
|
229
|
+
// empty query throws exception with ES 7
|
|
230
|
+
if (error.meta.body.error.type === "parsing_exception" &&
|
|
231
|
+
_.get(error, "meta.body.error.caused_by.type") ===
|
|
232
|
+
"illegal_argument_exception") {
|
|
233
|
+
errorMessage = error.meta.body.error.caused_by.reason;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
debug('unhandled "BadRequest" elasticsearch error: %a', _.get(error, "meta.body.error.reason", error.message));
|
|
237
|
+
return kerror.get("unexpected_bad_request", errorMessage);
|
|
238
|
+
}
|
|
239
|
+
_handleUnknownError(error, message) {
|
|
240
|
+
debug("unhandled elasticsearch error (unhandled type: %s): %o", _.get(error, "error.meta.statusCode", "<no status code>"), error);
|
|
241
|
+
return kerror.get("unexpected_error", message);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
module.exports = ESWrapper;
|
|
245
|
+
//# sourceMappingURL=esWrapper.js.map
|