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,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
const fs = require("fs/promises");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
async function main() {
|
|
6
|
+
const projectRoot = path.join(__dirname, "..");
|
|
7
|
+
const sourceDir = path.join(projectRoot, "lib", "cluster", "protobuf");
|
|
8
|
+
const targetDir = path.join(projectRoot, "dist", "lib", "cluster", "protobuf");
|
|
9
|
+
await fs.mkdir(targetDir, { recursive: true });
|
|
10
|
+
await fs.cp(sourceDir, targetDir, { recursive: true });
|
|
11
|
+
}
|
|
12
|
+
main().catch((error) => {
|
|
13
|
+
// eslint-disable-next-line no-console
|
|
14
|
+
console.error("Failed to copy protobuf definitions:", error);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=copy-protobuf.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { NativeController } from "./baseController";
|
|
2
|
+
import { KuzzleRequest } from "../request";
|
|
3
|
+
import { ResetSecurityResult } from "../../types/controllers/adminControlller.type";
|
|
4
|
+
/**
|
|
5
|
+
* @class AdminController
|
|
6
|
+
*/
|
|
7
|
+
export default class AdminController extends NativeController {
|
|
8
|
+
protected shuttingDown: boolean;
|
|
9
|
+
protected logger: any;
|
|
10
|
+
constructor();
|
|
11
|
+
refreshIndexCache(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Reset Redis cache
|
|
14
|
+
*/
|
|
15
|
+
resetCache(request: KuzzleRequest): Promise<{
|
|
16
|
+
acknowledge: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Reset all roles, profiles and users
|
|
20
|
+
*/
|
|
21
|
+
resetSecurity(): Promise<ResetSecurityResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Reset all indexes created by users
|
|
24
|
+
*/
|
|
25
|
+
resetDatabase(): Promise<{
|
|
26
|
+
acknowledge: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Generate a dump
|
|
30
|
+
* Kuzzle will throw a PreconditionError if a dump is already running
|
|
31
|
+
*/
|
|
32
|
+
dump(request: KuzzleRequest): Promise<{
|
|
33
|
+
acknowledge: boolean;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Shutdown Kuzzle
|
|
37
|
+
*/
|
|
38
|
+
shutdown(): Promise<{
|
|
39
|
+
acknowledge: boolean;
|
|
40
|
+
}>;
|
|
41
|
+
loadFixtures(request: KuzzleRequest): Promise<any>;
|
|
42
|
+
loadMappings(request: KuzzleRequest): Promise<{
|
|
43
|
+
acknowledge: boolean;
|
|
44
|
+
}>;
|
|
45
|
+
loadSecurities(request: KuzzleRequest): Promise<{
|
|
46
|
+
acknowledge: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
_waitForAction(waitForRefresh: string, promise: Promise<any>): Promise<{
|
|
49
|
+
acknowledge: boolean;
|
|
50
|
+
}>;
|
|
51
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
/*
|
|
30
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
31
|
+
* to power modern apps
|
|
32
|
+
*
|
|
33
|
+
* Copyright 2015-2022 Kuzzle
|
|
34
|
+
* mailto: support AT kuzzle.io
|
|
35
|
+
* website: http://kuzzle.io
|
|
36
|
+
*
|
|
37
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
38
|
+
* you may not use this file except in compliance with the License.
|
|
39
|
+
* You may obtain a copy of the License at
|
|
40
|
+
*
|
|
41
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
42
|
+
*
|
|
43
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
44
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
45
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
46
|
+
* See the License for the specific language governing permissions and
|
|
47
|
+
* limitations under the License.
|
|
48
|
+
*/
|
|
49
|
+
const bluebird_1 = __importDefault(require("bluebird"));
|
|
50
|
+
const kerror = __importStar(require("../../kerror"));
|
|
51
|
+
const baseController_1 = require("./baseController");
|
|
52
|
+
const mutex_1 = require("../../util/mutex");
|
|
53
|
+
/**
|
|
54
|
+
* @class AdminController
|
|
55
|
+
*/
|
|
56
|
+
class AdminController extends baseController_1.NativeController {
|
|
57
|
+
constructor() {
|
|
58
|
+
super([
|
|
59
|
+
"dump",
|
|
60
|
+
"loadFixtures",
|
|
61
|
+
"loadMappings",
|
|
62
|
+
"loadSecurities",
|
|
63
|
+
"refreshIndexCache",
|
|
64
|
+
"resetCache",
|
|
65
|
+
"resetDatabase",
|
|
66
|
+
"resetSecurity",
|
|
67
|
+
"shutdown",
|
|
68
|
+
]);
|
|
69
|
+
this.shuttingDown = false;
|
|
70
|
+
this.logger = global.kuzzle.log.child("api:controllers:admin");
|
|
71
|
+
}
|
|
72
|
+
async refreshIndexCache() {
|
|
73
|
+
await global.kuzzle.ask("core:storage:public:cache:refresh");
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Reset Redis cache
|
|
77
|
+
*/
|
|
78
|
+
async resetCache(request) {
|
|
79
|
+
const database = request.getString("database");
|
|
80
|
+
// @todo allow only memoryStorage
|
|
81
|
+
if (database === "internalCache") {
|
|
82
|
+
await this.ask("core:cache:internal:flushdb");
|
|
83
|
+
}
|
|
84
|
+
else if (database === "memoryStorage") {
|
|
85
|
+
await this.ask("core:cache:public:flushdb");
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
throw kerror.get("services", "cache", "database_not_found", database);
|
|
89
|
+
}
|
|
90
|
+
return { acknowledge: true };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Reset all roles, profiles and users
|
|
94
|
+
*/
|
|
95
|
+
async resetSecurity() {
|
|
96
|
+
const mutex = new mutex_1.Mutex("resetSecurity", { timeout: 0 });
|
|
97
|
+
if (!(await mutex.lock())) {
|
|
98
|
+
throw kerror.get("api", "process", "action_locked", "Kuzzle is already reseting roles, profiles and users.");
|
|
99
|
+
}
|
|
100
|
+
const result = {};
|
|
101
|
+
try {
|
|
102
|
+
const options = { refresh: "wait_for" };
|
|
103
|
+
result.deletedUsers = await this.ask("core:security:user:truncate", options);
|
|
104
|
+
result.deletedProfiles = await this.ask("core:security:profile:truncate", options);
|
|
105
|
+
result.deletedRoles = await this.ask("core:security:role:truncate", options);
|
|
106
|
+
await global.kuzzle.internalIndex.createInitialSecurities();
|
|
107
|
+
await this.ask("core:cache:internal:del", `backend:init:import:permissions`);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
await mutex.unlock();
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Reset all indexes created by users
|
|
116
|
+
*/
|
|
117
|
+
async resetDatabase() {
|
|
118
|
+
const mutex = new mutex_1.Mutex("resetDatabase", { timeout: 0 });
|
|
119
|
+
if (!(await mutex.lock())) {
|
|
120
|
+
throw kerror.get("api", "process", "action_locked", "Kuzzle is already reseting all indexes.");
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
const indexes = await this.ask("core:storage:public:index:list");
|
|
124
|
+
await this.ask("core:storage:public:index:mDelete", indexes);
|
|
125
|
+
await this.ask("core:cache:internal:del", `backend:init:import:mappings`);
|
|
126
|
+
return { acknowledge: true };
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
await mutex.unlock();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Generate a dump
|
|
134
|
+
* Kuzzle will throw a PreconditionError if a dump is already running
|
|
135
|
+
*/
|
|
136
|
+
dump(request) {
|
|
137
|
+
const waitForRefresh = request.getRefresh("wait_for");
|
|
138
|
+
const suffix = request.getString("suffix", "manual-api-action");
|
|
139
|
+
const promise = global.kuzzle.dump(suffix);
|
|
140
|
+
return this._waitForAction(waitForRefresh, promise);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Shutdown Kuzzle
|
|
144
|
+
*/
|
|
145
|
+
async shutdown() {
|
|
146
|
+
if (this.shuttingDown) {
|
|
147
|
+
throw kerror.get("api", "process", "action_locked", "Kuzzle is already shutting down.");
|
|
148
|
+
}
|
|
149
|
+
global.kuzzle.shutdown();
|
|
150
|
+
return { acknowledge: true };
|
|
151
|
+
}
|
|
152
|
+
loadFixtures(request) {
|
|
153
|
+
const fixtures = request.getBody();
|
|
154
|
+
const refresh = request.getRefresh("wait_for");
|
|
155
|
+
return global.kuzzle.ask("core:storage:public:document:import", fixtures, {
|
|
156
|
+
refresh,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
loadMappings(request) {
|
|
160
|
+
const mappings = request.getBody();
|
|
161
|
+
return this._waitForAction(request.getRefresh("wait_for"), global.kuzzle.ask("core:storage:public:mappings:import", mappings, {
|
|
162
|
+
rawMappings: true,
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
async loadSecurities(request) {
|
|
166
|
+
const permissions = request.getBody();
|
|
167
|
+
const user = request.getUser();
|
|
168
|
+
const onExistingUsers = request.input.args.onExistingUsers;
|
|
169
|
+
const force = request.getBoolean("force");
|
|
170
|
+
const waitForRefresh = request.getRefresh("wait_for");
|
|
171
|
+
const promise = this.ask("core:security:load", permissions, {
|
|
172
|
+
force,
|
|
173
|
+
onExistingUsers,
|
|
174
|
+
refresh: waitForRefresh,
|
|
175
|
+
user,
|
|
176
|
+
});
|
|
177
|
+
return this._waitForAction(waitForRefresh, promise);
|
|
178
|
+
}
|
|
179
|
+
_waitForAction(waitForRefresh, promise) {
|
|
180
|
+
const result = { acknowledge: true };
|
|
181
|
+
if (waitForRefresh === "false") {
|
|
182
|
+
// Attaching an error handler to the provided promise to prevent
|
|
183
|
+
// uncaught rejections
|
|
184
|
+
promise.catch((err) => this.logger.error(err));
|
|
185
|
+
return bluebird_1.default.resolve(result);
|
|
186
|
+
}
|
|
187
|
+
return promise.then(() => result);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.default = AdminController;
|
|
191
|
+
//# sourceMappingURL=adminController.js.map
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import Bluebird from "bluebird";
|
|
2
2
|
import { KuzzleRequest } from "../request";
|
|
3
3
|
import { NativeController } from "./baseController";
|
|
4
|
-
|
|
4
|
+
import { User } from "../../model/security/user";
|
|
5
|
+
import { Token } from "../../model/security/token";
|
|
6
|
+
export default class AuthController extends NativeController {
|
|
5
7
|
private anonymousId;
|
|
6
8
|
private readonly logger;
|
|
7
9
|
/**
|
|
@@ -15,7 +17,7 @@ export declare class AuthController extends NativeController {
|
|
|
15
17
|
*
|
|
16
18
|
* @returns {Promise}
|
|
17
19
|
*/
|
|
18
|
-
init(): Promise<
|
|
20
|
+
init(): Promise<any>;
|
|
19
21
|
createToken(request: KuzzleRequest): Promise<{
|
|
20
22
|
expiresAt: number;
|
|
21
23
|
singleUse: boolean;
|
|
@@ -25,26 +27,26 @@ export declare class AuthController extends NativeController {
|
|
|
25
27
|
/**
|
|
26
28
|
* Checks if an API action can be executed by the current user
|
|
27
29
|
*/
|
|
28
|
-
checkRights(request:
|
|
29
|
-
allowed:
|
|
30
|
+
checkRights(request: KuzzleRequest): Promise<{
|
|
31
|
+
allowed: boolean;
|
|
30
32
|
}>;
|
|
31
33
|
/**
|
|
32
34
|
* Creates a new API key for the user
|
|
33
35
|
* @param {KuzzleRequest} request
|
|
34
36
|
*/
|
|
35
|
-
createApiKey(request:
|
|
37
|
+
createApiKey(request: KuzzleRequest): Promise<any>;
|
|
36
38
|
/**
|
|
37
39
|
* Search in the user API keys
|
|
38
40
|
*/
|
|
39
|
-
searchApiKeys(request:
|
|
40
|
-
hits: any;
|
|
41
|
-
total:
|
|
41
|
+
searchApiKeys(request: KuzzleRequest): Promise<{
|
|
42
|
+
hits: any[];
|
|
43
|
+
total: number;
|
|
42
44
|
}>;
|
|
43
45
|
/**
|
|
44
46
|
* Deletes an API key
|
|
45
47
|
*/
|
|
46
|
-
deleteApiKey(request:
|
|
47
|
-
_id:
|
|
48
|
+
deleteApiKey(request: KuzzleRequest): Promise<{
|
|
49
|
+
_id: string;
|
|
48
50
|
}>;
|
|
49
51
|
/**
|
|
50
52
|
* Logs the current user out
|
|
@@ -52,20 +54,8 @@ export declare class AuthController extends NativeController {
|
|
|
52
54
|
* @param {KuzzleRequest} request
|
|
53
55
|
* @returns {Promise<object>}
|
|
54
56
|
*/
|
|
55
|
-
logout(request:
|
|
56
|
-
|
|
57
|
-
}>;
|
|
58
|
-
_sendToken(token: any, request: any): Promise<{
|
|
59
|
-
_id: any;
|
|
60
|
-
expiresAt: any;
|
|
61
|
-
ttl: any;
|
|
62
|
-
jwt?: undefined;
|
|
63
|
-
} | {
|
|
64
|
-
_id: any;
|
|
65
|
-
expiresAt: any;
|
|
66
|
-
jwt: any;
|
|
67
|
-
ttl: any;
|
|
68
|
-
}>;
|
|
57
|
+
logout(request: KuzzleRequest): Promise<object>;
|
|
58
|
+
_sendToken(token: Token, request: KuzzleRequest): Promise<Token>;
|
|
69
59
|
/**
|
|
70
60
|
* Attempts a login with request informations against the provided strategy;
|
|
71
61
|
* local is used if strategy is not provided.
|
|
@@ -73,21 +63,21 @@ export declare class AuthController extends NativeController {
|
|
|
73
63
|
* @param {KuzzleRequest} request
|
|
74
64
|
* @returns {Promise<Token>}
|
|
75
65
|
*/
|
|
76
|
-
login(request:
|
|
66
|
+
login(request: KuzzleRequest): Promise<Token>;
|
|
77
67
|
/**
|
|
78
68
|
* Returns the user identified by the given jwt token
|
|
79
69
|
*
|
|
80
70
|
* @param {KuzzleRequest} request
|
|
81
71
|
* @returns {Promise<Object>}
|
|
82
72
|
*/
|
|
83
|
-
getCurrentUser(request:
|
|
73
|
+
getCurrentUser(request: KuzzleRequest): Promise<object>;
|
|
84
74
|
/**
|
|
85
75
|
* Returns the rights of the user identified by the given jwt token
|
|
86
76
|
*
|
|
87
77
|
* @param {KuzzleRequest} request
|
|
88
78
|
* @returns {Promise<object>}
|
|
89
79
|
*/
|
|
90
|
-
getMyRights(request:
|
|
80
|
+
getMyRights(request: KuzzleRequest): Promise<object>;
|
|
91
81
|
/**
|
|
92
82
|
* Checks the validity of a token.
|
|
93
83
|
*
|
|
@@ -111,13 +101,13 @@ export declare class AuthController extends NativeController {
|
|
|
111
101
|
* @param {KuzzleRequest} request
|
|
112
102
|
* @returns {Promise<object>}
|
|
113
103
|
*/
|
|
114
|
-
updateSelf(request: any): Promise<
|
|
104
|
+
updateSelf(request: any): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
115
105
|
/**
|
|
116
106
|
* List authentication strategies
|
|
117
107
|
*
|
|
118
108
|
* @returns {Promise.<string[]>}
|
|
119
109
|
*/
|
|
120
|
-
getStrategies(): Bluebird<
|
|
110
|
+
getStrategies(): Bluebird<string[]>;
|
|
121
111
|
/**
|
|
122
112
|
* @param {KuzzleRequest} request
|
|
123
113
|
* @returns {Promise.<Object>}
|
|
@@ -151,16 +141,6 @@ export declare class AuthController extends NativeController {
|
|
|
151
141
|
/**
|
|
152
142
|
* @param {KuzzleRequest} request
|
|
153
143
|
*/
|
|
154
|
-
refreshToken(request: any): Promise<
|
|
155
|
-
_id: any;
|
|
156
|
-
expiresAt: any;
|
|
157
|
-
ttl: any;
|
|
158
|
-
jwt?: undefined;
|
|
159
|
-
} | {
|
|
160
|
-
_id: any;
|
|
161
|
-
expiresAt: any;
|
|
162
|
-
jwt: any;
|
|
163
|
-
ttl: any;
|
|
164
|
-
}>;
|
|
144
|
+
refreshToken(request: any): Promise<Token>;
|
|
165
145
|
assertIsAuthenticated(request: any): void;
|
|
166
146
|
}
|
|
@@ -26,7 +26,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.AuthController = void 0;
|
|
30
29
|
/*
|
|
31
30
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
32
31
|
* to power modern apps
|
|
@@ -87,8 +86,8 @@ class AuthController extends baseController_1.NativeController {
|
|
|
87
86
|
"updateSelf",
|
|
88
87
|
"validateMyCredentials",
|
|
89
88
|
]);
|
|
90
|
-
this.logger = global.kuzzle.log.child("api:controllers:auth");
|
|
91
89
|
this.anonymousId = null;
|
|
90
|
+
this.logger = global.kuzzle.log.child("api:controllers:auth");
|
|
92
91
|
}
|
|
93
92
|
/**
|
|
94
93
|
* Controller initialization: we need the anonymous user identifier for the
|
|
@@ -225,6 +224,12 @@ class AuthController extends baseController_1.NativeController {
|
|
|
225
224
|
}
|
|
226
225
|
// Used to send the Token using different ways when in cookieAuth mode. (DRY)
|
|
227
226
|
async _sendToken(token, request) {
|
|
227
|
+
const tokenResponse = {
|
|
228
|
+
_id: token.userId,
|
|
229
|
+
expiresAt: token.expiresAt,
|
|
230
|
+
jwt: token.jwt,
|
|
231
|
+
ttl: token.ttl,
|
|
232
|
+
};
|
|
228
233
|
// Only if the support of Browser Cookie as Authentication Token is enabled
|
|
229
234
|
// otherwise we should send a normal response because
|
|
230
235
|
// even if the SDK / Browser can handle the cookie,
|
|
@@ -244,18 +249,9 @@ class AuthController extends baseController_1.NativeController {
|
|
|
244
249
|
}),
|
|
245
250
|
},
|
|
246
251
|
});
|
|
247
|
-
|
|
248
|
-
_id: token.userId,
|
|
249
|
-
expiresAt: token.expiresAt,
|
|
250
|
-
ttl: token.ttl,
|
|
251
|
-
};
|
|
252
|
+
delete tokenResponse.jwt;
|
|
252
253
|
}
|
|
253
|
-
return
|
|
254
|
-
_id: token.userId,
|
|
255
|
-
expiresAt: token.expiresAt,
|
|
256
|
-
jwt: token.jwt,
|
|
257
|
-
ttl: token.ttl,
|
|
258
|
-
};
|
|
254
|
+
return tokenResponse;
|
|
259
255
|
}
|
|
260
256
|
/**
|
|
261
257
|
* Attempts a login with request informations against the provided strategy;
|
|
@@ -331,8 +327,13 @@ class AuthController extends baseController_1.NativeController {
|
|
|
331
327
|
* @param {KuzzleRequest} request
|
|
332
328
|
* @returns {Promise<Object>}
|
|
333
329
|
*/
|
|
334
|
-
getCurrentUser(request) {
|
|
335
|
-
const
|
|
330
|
+
async getCurrentUser(request) {
|
|
331
|
+
const promises = [];
|
|
332
|
+
const userId = request.context.token.userId;
|
|
333
|
+
const formattedUser = {
|
|
334
|
+
...formatProcessing_1.default.serializeUser(request.context.user),
|
|
335
|
+
strategies: [],
|
|
336
|
+
};
|
|
336
337
|
if (this.anonymousId === userId) {
|
|
337
338
|
promises.push(bluebird_1.default.resolve([]));
|
|
338
339
|
}
|
|
@@ -344,12 +345,11 @@ class AuthController extends baseController_1.NativeController {
|
|
|
344
345
|
.catch((err) => wrapPluginError(err)));
|
|
345
346
|
}
|
|
346
347
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
});
|
|
348
|
+
const strategies = await bluebird_1.default.all(promises);
|
|
349
|
+
if (strategies.length > 0) {
|
|
350
|
+
formattedUser.strategies = strategies.filter((item) => item !== null);
|
|
351
|
+
}
|
|
352
|
+
return formattedUser;
|
|
353
353
|
}
|
|
354
354
|
/**
|
|
355
355
|
* Returns the rights of the user identified by the given jwt token
|
|
@@ -359,7 +359,7 @@ class AuthController extends baseController_1.NativeController {
|
|
|
359
359
|
*/
|
|
360
360
|
getMyRights(request) {
|
|
361
361
|
return request.context.user
|
|
362
|
-
.getRights(
|
|
362
|
+
.getRights()
|
|
363
363
|
.then((rights) => Object.keys(rights).reduce((array, item) => array.concat(rights[item]), []))
|
|
364
364
|
.then((rights) => ({ hits: rights, total: rights.length }));
|
|
365
365
|
}
|
|
@@ -505,12 +505,11 @@ class AuthController extends baseController_1.NativeController {
|
|
|
505
505
|
}
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
|
-
exports.
|
|
508
|
+
exports.default = AuthController;
|
|
509
509
|
function wrapPluginError(error) {
|
|
510
510
|
if (!(error instanceof errors_1.KuzzleError)) {
|
|
511
511
|
throw kerror.getFrom(error, "plugin", "runtime", "unexpected_error", error.message);
|
|
512
512
|
}
|
|
513
513
|
throw error;
|
|
514
514
|
}
|
|
515
|
-
module.exports = AuthController;
|
|
516
515
|
//# sourceMappingURL=authController.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export = BulkController;
|
|
2
|
+
/**
|
|
3
|
+
* @class BulkController
|
|
4
|
+
*/
|
|
5
|
+
declare class BulkController extends NativeController {
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* Perform a bulk import
|
|
9
|
+
*
|
|
10
|
+
* @param {Request} request
|
|
11
|
+
* @returns {Promise}
|
|
12
|
+
*/
|
|
13
|
+
import(request: Request): Promise<any>;
|
|
14
|
+
/**
|
|
15
|
+
* Write a document without adding metadata or performing data validation.
|
|
16
|
+
*/
|
|
17
|
+
write(request: any): Promise<{
|
|
18
|
+
_id: any;
|
|
19
|
+
_source: any;
|
|
20
|
+
_version: any;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Write several documents without adding metadata or performing data validation.
|
|
24
|
+
*/
|
|
25
|
+
mWrite(request: any): Promise<{
|
|
26
|
+
errors: any;
|
|
27
|
+
successes: any;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Directly deletes every documents matching the search query without:
|
|
31
|
+
* - applying max documents write limit
|
|
32
|
+
* - fetching deleted documents
|
|
33
|
+
* - triggering realtime notifications
|
|
34
|
+
*/
|
|
35
|
+
deleteByQuery(request: any): Promise<{
|
|
36
|
+
deleted: any;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Directly update every document matching the search query without:
|
|
40
|
+
* - Applying max documents write limit
|
|
41
|
+
* - Injecting Kuzzle metadata
|
|
42
|
+
* - Triggering realtime notifications
|
|
43
|
+
*/
|
|
44
|
+
updateByQuery(request: any): Promise<any>;
|
|
45
|
+
}
|
|
46
|
+
import { NativeController } from "./baseController";
|
|
@@ -0,0 +1,132 @@
|
|
|
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 { NativeController } = require("./baseController");
|
|
23
|
+
const actionEnum = require("../../core/realtime/actionEnum");
|
|
24
|
+
const kerror = require("../../kerror");
|
|
25
|
+
/**
|
|
26
|
+
* @class BulkController
|
|
27
|
+
*/
|
|
28
|
+
class BulkController extends NativeController {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(["import", "write", "mWrite", "deleteByQuery", "updateByQuery"]);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Perform a bulk import
|
|
34
|
+
*
|
|
35
|
+
* @param {Request} request
|
|
36
|
+
* @returns {Promise}
|
|
37
|
+
*/
|
|
38
|
+
async import(request) {
|
|
39
|
+
const userId = request.getKuid();
|
|
40
|
+
const { index, collection } = request.getIndexAndCollection();
|
|
41
|
+
const strict = request.getBoolean("strict");
|
|
42
|
+
const refresh = request.getRefresh();
|
|
43
|
+
const bulkData = request.getBodyArray("bulkData");
|
|
44
|
+
const options = {
|
|
45
|
+
refresh,
|
|
46
|
+
userId,
|
|
47
|
+
};
|
|
48
|
+
const { items, errors } = await this.ask("core:storage:public:document:bulk", index, collection, bulkData, options);
|
|
49
|
+
if (strict && errors.length) {
|
|
50
|
+
throw kerror.get("api", "process", "incomplete_multiple_request", "import", errors);
|
|
51
|
+
}
|
|
52
|
+
// @todo next major release: if (successes.length === 0) then throw (no matter strict value)
|
|
53
|
+
return {
|
|
54
|
+
errors,
|
|
55
|
+
successes: items,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Write a document without adding metadata or performing data validation.
|
|
60
|
+
*/
|
|
61
|
+
async write(request) {
|
|
62
|
+
const { index, collection } = request.getIndexAndCollection();
|
|
63
|
+
const id = request.getId({ ifMissing: "ignore" });
|
|
64
|
+
const content = request.getBody();
|
|
65
|
+
const refresh = request.getRefresh();
|
|
66
|
+
const notify = request.getBoolean("notify");
|
|
67
|
+
const result = await this.ask("core:storage:public:document:createOrReplace", index, collection, id, content, { injectKuzzleMeta: false, refresh });
|
|
68
|
+
if (notify) {
|
|
69
|
+
await this.ask("core:realtime:document:notify", request, actionEnum.WRITE, result);
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
_id: result._id,
|
|
73
|
+
_source: result._source,
|
|
74
|
+
_version: result._version,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Write several documents without adding metadata or performing data validation.
|
|
79
|
+
*/
|
|
80
|
+
async mWrite(request) {
|
|
81
|
+
const { index, collection } = request.getIndexAndCollection();
|
|
82
|
+
const documents = request.getBodyArray("documents");
|
|
83
|
+
const strict = request.getBoolean("strict");
|
|
84
|
+
const refresh = request.getRefresh();
|
|
85
|
+
const notify = request.getBoolean("notify");
|
|
86
|
+
const { items, errors } = await this.ask("core:storage:public:document:mCreateOrReplace", index, collection, documents, { injectKuzzleMeta: false, limits: false, refresh });
|
|
87
|
+
if (strict && errors.length) {
|
|
88
|
+
throw kerror.get("api", "process", "incomplete_multiple_request", "write", errors);
|
|
89
|
+
}
|
|
90
|
+
// @todo next major release: if (successes.length === 0) then throw (no matter strict value)
|
|
91
|
+
if (notify) {
|
|
92
|
+
await global.kuzzle.ask("core:realtime:document:mNotify", request, actionEnum.WRITE, items);
|
|
93
|
+
}
|
|
94
|
+
const successes = items.map((item) => ({
|
|
95
|
+
_id: item._id,
|
|
96
|
+
_source: item._source,
|
|
97
|
+
_version: item._version,
|
|
98
|
+
}));
|
|
99
|
+
return {
|
|
100
|
+
errors,
|
|
101
|
+
successes,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Directly deletes every documents matching the search query without:
|
|
106
|
+
* - applying max documents write limit
|
|
107
|
+
* - fetching deleted documents
|
|
108
|
+
* - triggering realtime notifications
|
|
109
|
+
*/
|
|
110
|
+
async deleteByQuery(request) {
|
|
111
|
+
const { index, collection } = request.getIndexAndCollection();
|
|
112
|
+
const query = request.getBodyObject("query");
|
|
113
|
+
const refresh = request.getRefresh();
|
|
114
|
+
const { deleted } = await this.ask("core:storage:public:document:deleteByQuery", index, collection, query, { fetch: false, refresh, size: -1 });
|
|
115
|
+
return { deleted };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Directly update every document matching the search query without:
|
|
119
|
+
* - Applying max documents write limit
|
|
120
|
+
* - Injecting Kuzzle metadata
|
|
121
|
+
* - Triggering realtime notifications
|
|
122
|
+
*/
|
|
123
|
+
async updateByQuery(request) {
|
|
124
|
+
const { index, collection } = request.getIndexAndCollection();
|
|
125
|
+
const query = request.getBodyObject("query");
|
|
126
|
+
const changes = request.getBodyObject("changes");
|
|
127
|
+
const refresh = request.getRefresh();
|
|
128
|
+
return this.ask("core:storage:public:bulk:updateByQuery", index, collection, query, changes, { refresh });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
module.exports = BulkController;
|
|
132
|
+
//# sourceMappingURL=bulkController.js.map
|