kuzzle 2.56.0 → 2.57.0-beta.2
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-binaries.js +71 -4
- package/dist/bin/start-kuzzle-server +191 -97
- package/dist/index.d.ts +31 -1
- package/dist/index.js +45 -2
- package/dist/lib/api/controllers/adminController.d.ts +4 -3
- package/dist/lib/api/controllers/adminController.js +1 -2
- package/dist/lib/api/controllers/authController.d.ts +37 -16
- package/dist/lib/api/controllers/authController.js +88 -39
- package/dist/lib/api/controllers/baseController.d.ts +10 -5
- package/dist/lib/api/controllers/baseController.js +36 -15
- package/dist/lib/api/controllers/bulkController.d.ts +11 -7
- package/dist/lib/api/controllers/bulkController.js +28 -5
- package/dist/lib/api/controllers/clusterController.d.ts +2 -2
- package/dist/lib/api/controllers/clusterController.js +3 -3
- package/dist/lib/api/controllers/collectionController.d.ts +57 -21
- package/dist/lib/api/controllers/collectionController.js +40 -11
- package/dist/lib/api/controllers/debugController.d.ts +1 -1
- package/dist/lib/api/controllers/documentController.d.ts +137 -28
- package/dist/lib/api/controllers/documentController.js +156 -125
- package/dist/lib/api/controllers/index.d.ts +27 -12
- package/dist/lib/api/controllers/index.js +28 -13
- package/dist/lib/api/controllers/indexController.d.ts +17 -10
- package/dist/lib/api/controllers/indexController.js +13 -11
- package/dist/lib/api/controllers/memoryStorageController.d.ts +2 -5
- package/dist/lib/api/controllers/memoryStorageController.js +199 -127
- package/dist/lib/api/controllers/realtimeController.d.ts +19 -9
- package/dist/lib/api/controllers/realtimeController.js +8 -4
- package/dist/lib/api/controllers/securityController.d.ts +42 -29
- package/dist/lib/api/controllers/securityController.js +35 -19
- package/dist/lib/api/controllers/serverController.d.ts +114 -19
- package/dist/lib/api/controllers/serverController.js +69 -29
- package/dist/lib/api/documentExtractor.d.ts +9 -7
- package/dist/lib/api/documentExtractor.js +105 -41
- package/dist/lib/api/funnel.d.ts +131 -29
- package/dist/lib/api/funnel.js +436 -225
- package/dist/lib/api/httpRoutes.d.ts +16 -11
- package/dist/lib/api/httpRoutes.js +272 -2
- package/dist/lib/api/openapi/OpenApiManager.d.ts +1 -1
- package/dist/lib/api/openapi/openApiGenerator.d.ts +1 -1
- package/dist/lib/api/rateLimiter.d.ts +15 -5
- package/dist/lib/api/rateLimiter.js +42 -14
- package/dist/lib/api/request/kuzzleRequest.d.ts +83 -12
- package/dist/lib/api/request/kuzzleRequest.js +88 -23
- package/dist/lib/api/request/requestContext.d.ts +20 -5
- package/dist/lib/api/request/requestContext.js +14 -4
- package/dist/lib/api/request/requestInput.d.ts +37 -6
- package/dist/lib/api/request/requestInput.js +22 -9
- package/dist/lib/api/request/requestResponse.d.ts +45 -9
- package/dist/lib/api/request/requestResponse.js +34 -3
- package/dist/lib/cluster/command.d.ts +131 -37
- package/dist/lib/cluster/command.js +243 -71
- package/dist/lib/cluster/idCardHandler.d.ts +18 -5
- package/dist/lib/cluster/idCardHandler.js +52 -19
- package/dist/lib/cluster/index.d.ts +8 -2
- package/dist/lib/cluster/index.js +6 -2
- package/dist/lib/cluster/node.d.ts +127 -49
- package/dist/lib/cluster/node.js +412 -179
- package/dist/lib/cluster/protobuf/command.proto +18 -0
- package/dist/lib/cluster/protobuf/commandMessages.d.ts +104 -0
- package/dist/lib/cluster/protobuf/commandMessages.js +30 -0
- package/dist/lib/cluster/protobuf/syncMessages.d.ts +184 -0
- package/dist/lib/cluster/protobuf/syncMessages.js +23 -0
- package/dist/lib/cluster/publisher.d.ts +118 -78
- package/dist/lib/cluster/publisher.js +174 -72
- package/dist/lib/cluster/state.d.ts +15 -9
- package/dist/lib/cluster/state.js +12 -8
- package/dist/lib/cluster/subscriber.d.ts +185 -131
- package/dist/lib/cluster/subscriber.js +357 -95
- package/dist/lib/cluster/workers/IDCardRenewer.d.ts +39 -8
- package/dist/lib/cluster/workers/IDCardRenewer.js +88 -23
- package/dist/lib/config/default.config.d.ts +2 -2
- package/dist/lib/config/default.config.js +10 -3
- package/dist/lib/config/documentEventAliases.d.ts +1 -1
- package/dist/lib/config/index.d.ts +2 -5
- package/dist/lib/config/index.js +30 -17
- package/dist/lib/core/auth/formatProcessing.d.ts +3 -3
- package/dist/lib/core/auth/passportResponse.d.ts +1 -1
- package/dist/lib/core/auth/passportWrapper.d.ts +1 -1
- package/dist/lib/core/auth/passportWrapper.js +14 -13
- package/dist/lib/core/auth/tokenManager.d.ts +24 -3
- package/dist/lib/core/auth/tokenManager.js +47 -19
- package/dist/lib/core/backend/applicationManager.d.ts +2 -2
- package/dist/lib/core/backend/backend.d.ts +16 -5
- package/dist/lib/core/backend/backend.js +14 -6
- package/dist/lib/core/backend/backendCluster.d.ts +1 -1
- package/dist/lib/core/backend/backendConfig.d.ts +17 -5
- package/dist/lib/core/backend/backendConfig.js +1 -0
- package/dist/lib/core/backend/backendController.d.ts +1 -1
- package/dist/lib/core/backend/backendController.js +8 -1
- package/dist/lib/core/backend/backendErrors.d.ts +15 -8
- package/dist/lib/core/backend/backendErrors.js +5 -0
- package/dist/lib/core/backend/backendHook.d.ts +1 -1
- package/dist/lib/core/backend/backendImport.d.ts +1 -1
- package/dist/lib/core/backend/backendOpenApi.d.ts +3 -2
- package/dist/lib/core/backend/backendPipe.d.ts +1 -1
- package/dist/lib/core/backend/backendPipe.js +9 -1
- package/dist/lib/core/backend/backendPlugin.d.ts +2 -2
- package/dist/lib/core/backend/backendSubscription.d.ts +2 -2
- package/dist/lib/core/backend/backendVault.d.ts +1 -1
- package/dist/lib/core/backend/backendVault.js +8 -1
- package/dist/lib/core/cache/cacheEngine.d.ts +7 -4
- package/dist/lib/core/cache/cacheEngine.js +25 -8
- package/dist/lib/core/debug/kuzzleDebugger.d.ts +2 -1
- package/dist/lib/core/debug/kuzzleDebugger.js +31 -17
- package/dist/lib/core/network/accessLogger.d.ts +33 -18
- package/dist/lib/core/network/accessLogger.js +135 -73
- package/dist/lib/core/network/clientConnection.d.ts +13 -11
- package/dist/lib/core/network/clientConnection.js +33 -9
- package/dist/lib/core/network/context.d.ts +17 -22
- package/dist/lib/core/network/context.js +43 -26
- package/dist/lib/core/network/entryPoint.d.ts +38 -16
- package/dist/lib/core/network/entryPoint.js +119 -48
- package/dist/lib/core/network/httpRouter/index.d.ts +20 -50
- package/dist/lib/core/network/httpRouter/index.js +61 -75
- package/dist/lib/core/network/httpRouter/routeHandler.d.ts +17 -32
- package/dist/lib/core/network/httpRouter/routeHandler.js +26 -36
- package/dist/lib/core/network/httpRouter/routePart.d.ts +9 -18
- package/dist/lib/core/network/httpRouter/routePart.js +61 -43
- package/dist/lib/core/network/httpRouter/routeTypes.d.ts +3 -0
- package/dist/lib/core/network/httpRouter/routeTypes.js +23 -0
- package/dist/lib/core/network/networkEntryPoint.d.ts +20 -0
- package/dist/lib/core/network/networkEntryPoint.js +23 -0
- package/dist/lib/core/network/protocolManifest.d.ts +5 -4
- package/dist/lib/core/network/protocolManifest.js +6 -3
- package/dist/lib/core/network/protocols/httpMessage.d.ts +25 -18
- package/dist/lib/core/network/protocols/httpMessage.js +14 -11
- package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +84 -93
- package/dist/lib/core/network/protocols/httpwsProtocol.js +284 -129
- package/dist/lib/core/network/protocols/internalProtocol.d.ts +26 -15
- package/dist/lib/core/network/protocols/internalProtocol.js +17 -16
- package/dist/lib/core/network/protocols/mqttProtocol.d.ts +56 -32
- package/dist/lib/core/network/protocols/mqttProtocol.js +91 -44
- package/dist/lib/core/network/protocols/protocol.d.ts +85 -21
- package/dist/lib/core/network/protocols/protocol.js +83 -27
- package/dist/lib/core/network/router.d.ts +13 -22
- package/dist/lib/core/network/router.js +59 -46
- package/dist/lib/core/plugin/plugin.d.ts +57 -51
- package/dist/lib/core/plugin/plugin.js +218 -103
- package/dist/lib/core/plugin/pluginContext.d.ts +54 -11
- package/dist/lib/core/plugin/pluginContext.js +99 -58
- package/dist/lib/core/plugin/pluginManifest.d.ts +6 -2
- package/dist/lib/core/plugin/pluginManifest.js +18 -11
- package/dist/lib/core/plugin/pluginRepository.d.ts +35 -44
- package/dist/lib/core/plugin/pluginRepository.js +35 -50
- package/dist/lib/core/plugin/pluginsManager.d.ts +128 -46
- package/dist/lib/core/plugin/pluginsManager.js +468 -231
- package/dist/lib/core/plugin/privilegedContext.d.ts +4 -9
- package/dist/lib/core/plugin/privilegedContext.js +5 -10
- package/dist/lib/core/realtime/actionEnum.d.ts +12 -21
- package/dist/lib/core/realtime/actionEnum.js +6 -7
- package/dist/lib/core/realtime/channel.d.ts +11 -5
- package/dist/lib/core/realtime/channel.js +17 -2
- package/dist/lib/core/realtime/connectionRooms.d.ts +2 -2
- package/dist/lib/core/realtime/hotelClerk.d.ts +12 -6
- package/dist/lib/core/realtime/hotelClerk.js +29 -11
- package/dist/lib/core/realtime/index.d.ts +8 -3
- package/dist/lib/core/realtime/index.js +12 -5
- package/dist/lib/core/realtime/notification/document.d.ts +54 -25
- package/dist/lib/core/realtime/notification/document.js +10 -13
- package/dist/lib/core/realtime/notification/index.d.ts +9 -3
- package/dist/lib/core/realtime/notification/index.js +10 -4
- package/dist/lib/core/realtime/notification/server.d.ts +7 -10
- package/dist/lib/core/realtime/notification/server.js +4 -7
- package/dist/lib/core/realtime/notification/user.d.ts +45 -21
- package/dist/lib/core/realtime/notification/user.js +8 -9
- package/dist/lib/core/realtime/notifier.d.ts +52 -40
- package/dist/lib/core/realtime/notifier.js +60 -25
- package/dist/lib/core/realtime/room.d.ts +1 -1
- package/dist/lib/core/realtime/subscription.d.ts +11 -6
- package/dist/lib/core/realtime/subscription.js +5 -1
- package/dist/lib/core/security/index.d.ts +14 -6
- package/dist/lib/core/security/index.js +27 -13
- package/dist/lib/core/security/profileRepository.d.ts +24 -19
- package/dist/lib/core/security/profileRepository.js +23 -10
- package/dist/lib/core/security/roleRepository.d.ts +60 -23
- package/dist/lib/core/security/roleRepository.js +122 -53
- package/dist/lib/core/security/securityLoader.d.ts +33 -18
- package/dist/lib/core/security/securityLoader.js +43 -16
- package/dist/lib/core/security/tokenRepository.d.ts +21 -7
- package/dist/lib/core/security/tokenRepository.js +50 -23
- package/dist/lib/core/security/userRepository.d.ts +44 -21
- package/dist/lib/core/security/userRepository.js +59 -19
- package/dist/lib/core/shared/KoncordeWrapper.d.ts +1 -1
- package/dist/lib/core/shared/ObjectRepository.d.ts +80 -18
- package/dist/lib/core/shared/ObjectRepository.js +57 -29
- package/dist/lib/core/shared/abstractManifest.d.ts +21 -8
- package/dist/lib/core/shared/abstractManifest.js +57 -17
- package/dist/lib/core/shared/sdk/embeddedSdk.d.ts +3 -1
- package/dist/lib/core/shared/sdk/embeddedSdk.js +8 -7
- package/dist/lib/core/shared/sdk/funnelProtocol.d.ts +2 -1
- package/dist/lib/core/shared/sdk/funnelProtocol.js +12 -3
- package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +11 -5
- package/dist/lib/core/shared/sdk/impersonatedSdk.js +22 -9
- package/dist/lib/core/shared/store.d.ts +45 -29
- package/dist/lib/core/shared/store.js +48 -27
- package/dist/lib/core/statistics/statistics.d.ts +1 -1
- package/dist/lib/core/storage/clientAdapter.d.ts +39 -21
- package/dist/lib/core/storage/clientAdapter.js +88 -48
- package/dist/lib/core/storage/indexCache.d.ts +8 -0
- package/dist/lib/core/storage/indexCache.js +16 -7
- package/dist/lib/core/storage/storageEngine.d.ts +7 -6
- package/dist/lib/core/storage/storageEngine.js +11 -8
- package/dist/lib/core/validation/baseType.d.ts +22 -22
- package/dist/lib/core/validation/baseType.js +11 -26
- package/dist/lib/core/validation/specification.d.ts +148 -0
- package/dist/lib/core/validation/specification.js +34 -0
- package/dist/lib/core/validation/typeOptions.d.ts +62 -0
- package/dist/lib/core/validation/typeOptions.js +23 -0
- package/dist/lib/core/validation/types/anything.d.ts +3 -6
- package/dist/lib/core/validation/types/anything.js +7 -7
- package/dist/lib/core/validation/types/boolean.d.ts +5 -12
- package/dist/lib/core/validation/types/boolean.js +7 -12
- package/dist/lib/core/validation/types/date.d.ts +19 -11
- package/dist/lib/core/validation/types/date.js +212 -161
- package/dist/lib/core/validation/types/email.d.ts +7 -11
- package/dist/lib/core/validation/types/email.js +13 -17
- package/dist/lib/core/validation/types/enum.d.ts +7 -11
- package/dist/lib/core/validation/types/enum.js +39 -20
- package/dist/lib/core/validation/types/geoPoint.d.ts +5 -13
- package/dist/lib/core/validation/types/geoPoint.js +10 -15
- package/dist/lib/core/validation/types/geoShape.d.ts +22 -21
- package/dist/lib/core/validation/types/geoShape.js +113 -129
- package/dist/lib/core/validation/types/geoShapeUtils.d.ts +15 -0
- package/dist/lib/core/validation/types/geoShapeUtils.js +75 -0
- package/dist/lib/core/validation/types/integer.d.ts +7 -5
- package/dist/lib/core/validation/types/integer.js +7 -13
- package/dist/lib/core/validation/types/ipAddress.d.ts +7 -11
- package/dist/lib/core/validation/types/ipAddress.js +13 -17
- package/dist/lib/core/validation/types/numeric.d.ts +7 -11
- package/dist/lib/core/validation/types/numeric.js +22 -29
- package/dist/lib/core/validation/types/object.d.ts +8 -15
- package/dist/lib/core/validation/types/object.js +12 -21
- package/dist/lib/core/validation/types/string.d.ts +7 -11
- package/dist/lib/core/validation/types/string.js +22 -29
- package/dist/lib/core/validation/types/url.d.ts +7 -11
- package/dist/lib/core/validation/types/url.js +14 -18
- package/dist/lib/core/validation/validation.d.ts +119 -80
- package/dist/lib/core/validation/validation.js +470 -412
- package/dist/lib/core/validation/validationUtils.d.ts +31 -0
- package/dist/lib/core/validation/validationUtils.js +190 -0
- package/dist/lib/kerror/codes/4-plugin.json +0 -12
- package/dist/lib/kerror/codes/index.d.ts +12 -2
- package/dist/lib/kerror/codes/index.js +5 -4
- package/dist/lib/kerror/errors/badRequestError.d.ts +1 -1
- package/dist/lib/kerror/errors/badRequestError.js +1 -1
- package/dist/lib/kerror/errors/externalServiceError.d.ts +1 -1
- package/dist/lib/kerror/errors/externalServiceError.js +1 -1
- package/dist/lib/kerror/errors/forbiddenError.d.ts +1 -1
- package/dist/lib/kerror/errors/forbiddenError.js +1 -1
- package/dist/lib/kerror/errors/gatewayTimeoutError.d.ts +1 -1
- package/dist/lib/kerror/errors/gatewayTimeoutError.js +1 -1
- package/dist/lib/kerror/errors/internalError.d.ts +1 -1
- package/dist/lib/kerror/errors/internalError.js +1 -1
- package/dist/lib/kerror/errors/kuzzleError.d.ts +32 -3
- package/dist/lib/kerror/errors/kuzzleError.js +21 -7
- package/dist/lib/kerror/errors/multipleErrorsError.d.ts +2 -2
- package/dist/lib/kerror/errors/multipleErrorsError.js +2 -2
- package/dist/lib/kerror/errors/notFoundError.d.ts +1 -1
- package/dist/lib/kerror/errors/notFoundError.js +1 -1
- package/dist/lib/kerror/errors/partialError.d.ts +8 -2
- package/dist/lib/kerror/errors/partialError.js +22 -9
- package/dist/lib/kerror/errors/pluginImplementationError.d.ts +9 -1
- package/dist/lib/kerror/errors/pluginImplementationError.js +9 -3
- package/dist/lib/kerror/errors/preconditionError.d.ts +1 -1
- package/dist/lib/kerror/errors/preconditionError.js +1 -1
- package/dist/lib/kerror/errors/serviceUnavailableError.d.ts +1 -1
- package/dist/lib/kerror/errors/serviceUnavailableError.js +1 -1
- package/dist/lib/kerror/errors/sizeLimitError.d.ts +1 -1
- package/dist/lib/kerror/errors/sizeLimitError.js +1 -1
- package/dist/lib/kerror/errors/tooManyRequestsError.d.ts +1 -1
- package/dist/lib/kerror/errors/tooManyRequestsError.js +1 -1
- package/dist/lib/kerror/errors/unauthorizedError.d.ts +1 -1
- package/dist/lib/kerror/errors/unauthorizedError.js +1 -1
- package/dist/lib/kerror/index.d.ts +19 -13
- package/dist/lib/kerror/index.js +60 -19
- package/dist/lib/kuzzle/Logger.d.ts +2 -2
- package/dist/lib/kuzzle/dumpGenerator.d.ts +12 -8
- package/dist/lib/kuzzle/dumpGenerator.js +130 -62
- package/dist/lib/kuzzle/event/KuzzleEventEmitter.d.ts +18 -9
- package/dist/lib/kuzzle/event/KuzzleEventEmitter.js +45 -18
- package/dist/lib/kuzzle/event/pipeRunner.d.ts +37 -16
- package/dist/lib/kuzzle/event/pipeRunner.js +73 -26
- package/dist/lib/kuzzle/event/waterfall.d.ts +11 -1
- package/dist/lib/kuzzle/event/waterfall.js +38 -13
- package/dist/lib/kuzzle/internalIndexHandler.d.ts +11 -174
- package/dist/lib/kuzzle/internalIndexHandler.js +58 -29
- package/dist/lib/kuzzle/kuzzle.d.ts +25 -10
- package/dist/lib/kuzzle/kuzzle.js +74 -17
- package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +16 -12
- package/dist/lib/kuzzle/kuzzleStateEnum.js +5 -7
- package/dist/lib/kuzzle/vault.d.ts +5 -1
- package/dist/lib/kuzzle/vault.js +29 -17
- package/dist/lib/model/security/profile.d.ts +34 -5
- package/dist/lib/model/security/profile.js +6 -5
- package/dist/lib/model/security/rights.d.ts +12 -4
- package/dist/lib/model/security/rights.js +7 -6
- package/dist/lib/model/security/role.d.ts +8 -4
- package/dist/lib/model/security/role.js +12 -6
- package/dist/lib/model/security/token.d.ts +8 -0
- package/dist/lib/model/security/user.d.ts +8 -2
- package/dist/lib/model/security/user.js +7 -4
- package/dist/lib/model/storage/apiKey.d.ts +55 -26
- package/dist/lib/model/storage/apiKey.js +97 -24
- package/dist/lib/model/storage/baseModel.d.ts +77 -66
- package/dist/lib/model/storage/baseModel.js +21 -34
- package/dist/lib/service/cache/redis.d.ts +53 -36
- package/dist/lib/service/cache/redis.js +148 -71
- package/dist/lib/service/service.d.ts +14 -19
- package/dist/lib/service/service.js +41 -22
- package/dist/lib/service/storage/7/elasticsearch.d.ts +136 -93
- package/dist/lib/service/storage/7/elasticsearch.js +218 -165
- package/dist/lib/service/storage/7/esWrapper.d.ts +30 -13
- package/dist/lib/service/storage/7/esWrapper.js +58 -37
- package/dist/lib/service/storage/8/elasticsearch.d.ts +153 -119
- package/dist/lib/service/storage/8/elasticsearch.js +286 -213
- package/dist/lib/service/storage/8/esWrapper.d.ts +30 -13
- package/dist/lib/service/storage/8/esWrapper.js +59 -38
- package/dist/lib/service/storage/commons/queryTranslator.d.ts +3 -3
- package/dist/lib/service/storage/commons/queryTranslator.js +71 -35
- package/dist/lib/types/ApiRoute.d.ts +12 -0
- package/dist/lib/types/ApiRoute.js +23 -0
- package/dist/lib/types/ClientConnection.d.ts +1 -1
- package/dist/lib/types/EventHandler.d.ts +10 -0
- package/dist/lib/types/Global.d.ts +8 -3
- package/dist/lib/types/HttpMessage.d.ts +2 -2
- package/dist/lib/types/HttpStream.d.ts +1 -1
- package/dist/lib/types/HttpStream.js +3 -1
- package/dist/lib/types/JSONObject.d.ts +9 -0
- package/dist/lib/types/JSONObject.js +23 -0
- package/dist/lib/types/Kuzzle.d.ts +5 -3
- package/dist/lib/types/KuzzleDocument.d.ts +1 -1
- package/dist/lib/types/KuzzleWebSocket.d.ts +24 -0
- package/dist/lib/types/KuzzleWebSocket.js +23 -0
- package/dist/lib/types/OpenApiDefinition.d.ts +1 -1
- package/dist/lib/types/Plugin.d.ts +33 -8
- package/dist/lib/types/PluginInstance.d.ts +67 -0
- package/dist/lib/types/PluginInstance.js +23 -0
- package/dist/lib/types/Policy.d.ts +1 -1
- package/dist/lib/types/Target.d.ts +8 -0
- package/dist/lib/types/Token.d.ts +14 -2
- package/dist/lib/types/config/HttpConfiguration.d.ts +5 -0
- package/dist/lib/types/config/KuzzleConfiguration.d.ts +102 -1
- package/dist/lib/types/config/PluginsConfiguration.d.ts +3 -2
- package/dist/lib/types/config/SecurityConfiguration.d.ts +6 -2
- package/dist/lib/types/config/ServerConfiguration.d.ts +2 -2
- package/dist/lib/types/config/ServicesConfiguration.d.ts +1 -1
- package/dist/lib/types/config/cache/BaseCacheRedisConfiguration.d.ts +131 -0
- package/dist/lib/types/config/cache/BaseCacheRedisConfiguration.js +3 -0
- package/dist/lib/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +2 -106
- package/dist/lib/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +2 -26
- package/dist/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +3 -0
- package/dist/lib/types/controllers/Controller.d.ts +12 -3
- package/dist/lib/types/controllers/ControllerDefinition.d.ts +2 -2
- package/dist/lib/types/controllers/{adminControlller.type.js → adminController.type.js} +1 -1
- package/dist/lib/types/controllers/authController.type.d.ts +2 -2
- package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -1
- package/dist/lib/types/errors/ErrorDomains.d.ts +1 -1
- package/dist/lib/types/events/EventGenericDocument.d.ts +10 -9
- package/dist/lib/types/events/EventProtocol.d.ts +4 -4
- package/dist/lib/types/index.d.ts +7 -0
- package/dist/lib/types/index.js +7 -0
- package/dist/lib/types/shared/StoreCollectionsDefinition.d.ts +1 -1
- package/dist/lib/types/storage/7/Elasticsearch.d.ts +62 -13
- package/dist/lib/types/storage/8/Elasticsearch.d.ts +62 -13
- package/dist/lib/util/Inflector.d.ts +4 -1
- package/dist/lib/util/Inflector.js +0 -3
- package/dist/lib/util/assertType.d.ts +24 -27
- package/dist/lib/util/assertType.js +28 -39
- package/dist/lib/util/async.js +19 -6
- package/dist/lib/util/asyncStore.js +1 -1
- package/dist/lib/util/bufferedPassThrough.d.ts +9 -0
- package/dist/lib/util/bufferedPassThrough.js +27 -13
- package/dist/lib/util/bytes.d.ts +1 -1
- package/dist/lib/util/bytes.js +6 -2
- package/dist/lib/util/debug.d.ts +3 -1
- package/dist/lib/util/debug.js +42 -10
- package/dist/lib/util/deprecate.d.ts +9 -1
- package/dist/lib/util/deprecate.js +10 -6
- package/dist/lib/util/didYouMean.d.ts +2 -1
- package/dist/lib/util/didYouMean.js +8 -4
- package/dist/lib/util/distributedLock.d.ts +56 -0
- package/dist/lib/util/distributedLock.js +166 -0
- package/dist/lib/util/dump-collection.d.ts +1 -1
- package/dist/lib/util/dump-collection.js +4 -5
- package/dist/lib/util/extractFields.d.ts +15 -11
- package/dist/lib/util/extractFields.js +8 -9
- package/dist/lib/util/koncordeCompat.d.ts +2 -2
- package/dist/lib/util/koncordeCompat.js +33 -0
- package/dist/lib/util/memoize.d.ts +7 -6
- package/dist/lib/util/memoize.js +3 -3
- package/dist/lib/util/mutex.d.ts +22 -2
- package/dist/lib/util/mutex.js +39 -1
- package/dist/lib/util/name-generator.js +14 -2
- package/dist/lib/util/promback.d.ts +20 -11
- package/dist/lib/util/promback.js +14 -7
- package/dist/lib/util/requestAssertions.d.ts +30 -10
- package/dist/lib/util/requestAssertions.js +125 -121
- package/dist/lib/util/safeObject.d.ts +3 -3
- package/dist/lib/util/safeObject.js +7 -3
- package/dist/lib/util/stackTrace.d.ts +13 -5
- package/dist/lib/util/stackTrace.js +17 -12
- package/dist/lib/util/thrown.d.ts +13 -0
- package/dist/lib/util/thrown.js +46 -0
- package/dist/package.json +26 -19
- package/package.json +26 -19
- package/dist/lib/util/wildcard.d.ts +0 -1
- package/dist/lib/util/wildcard.js +0 -46
- /package/dist/lib/types/controllers/{adminControlller.type.d.ts → adminController.type.d.ts} +0 -0
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import ClusterNode from "./node";
|
|
2
|
+
/**
|
|
3
|
+
* `lib/cluster` is the node itself: this barrel keeps the CommonJS shape the
|
|
4
|
+
* package has always exported (`module.exports = ClusterNode`), which is why it
|
|
5
|
+
* is an `export =` and not a default export — `bin/` and plugins `require()`
|
|
6
|
+
* this path directly.
|
|
7
|
+
*/
|
|
8
|
+
export = ClusterNode;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
4
|
* to power modern apps
|
|
@@ -18,6 +19,9 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
const node_1 = __importDefault(require("./node"));
|
|
26
|
+
module.exports = node_1.default;
|
|
23
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,41 +1,66 @@
|
|
|
1
|
-
|
|
1
|
+
import EventEmitter from "eventemitter3";
|
|
2
|
+
import type { NormalizedFilter } from "koncorde";
|
|
3
|
+
import type DocumentNotification from "../core/realtime/notification/document";
|
|
4
|
+
import type UserNotification from "../core/realtime/notification/user";
|
|
5
|
+
import type { storeScopeEnum } from "../core/storage/storeScopeEnum";
|
|
6
|
+
import type { AuthStrategy } from "./protobuf/syncMessages";
|
|
7
|
+
import Long from "long";
|
|
8
|
+
import type { JSONObject } from "../types/JSONObject";
|
|
9
|
+
import type { IKuzzleConfiguration } from "../types/config/KuzzleConfiguration";
|
|
10
|
+
import ClusterCommand from "./command";
|
|
11
|
+
import { ClusterIdCardHandler } from "./idCardHandler";
|
|
12
|
+
import type { Activity } from "./protobuf/commandMessages";
|
|
13
|
+
import ClusterPublisher from "./publisher";
|
|
14
|
+
import ClusterState from "./state";
|
|
15
|
+
import ClusterSubscriber from "./subscriber";
|
|
16
|
+
/** One entry of the cluster activity ring buffer. */
|
|
17
|
+
type NodeActivity = Activity;
|
|
18
|
+
/** What `cluster:status:get` answers with. */
|
|
19
|
+
type ClusterStatus = {
|
|
20
|
+
activeNodes: number;
|
|
21
|
+
activity: Array<{
|
|
22
|
+
address: string;
|
|
23
|
+
date: string;
|
|
24
|
+
event: string;
|
|
25
|
+
id: string;
|
|
26
|
+
reason?: string;
|
|
27
|
+
}>;
|
|
28
|
+
nodes: Array<{
|
|
29
|
+
address: string;
|
|
30
|
+
birthdate: string;
|
|
31
|
+
id: string;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
2
34
|
declare class ClusterNode {
|
|
3
|
-
config:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
command: ClusterCommand;
|
|
27
|
-
eventEmitter: any;
|
|
28
|
-
/**
|
|
29
|
-
* Links remote node IDs with their subscriber counterpart
|
|
30
|
-
* @type {Map.<string, ClusterSubscriber>}
|
|
31
|
-
*/
|
|
32
|
-
remoteNodes: Map<string, ClusterSubscriber>;
|
|
35
|
+
readonly config: IKuzzleConfiguration["cluster"];
|
|
36
|
+
private readonly logger;
|
|
37
|
+
readonly heartbeatDelay: number;
|
|
38
|
+
readonly ip: string;
|
|
39
|
+
private _nodeId;
|
|
40
|
+
/**
|
|
41
|
+
* The id of the ID card this node reserved during `handshake()`.
|
|
42
|
+
*
|
|
43
|
+
* Null until the handshake gets that far, and read as a `string` at
|
|
44
|
+
* seventeen sites here plus `subscriber.ts` and `command.ts` — all of which
|
|
45
|
+
* run after it. The accessor says once where that can fail.
|
|
46
|
+
*/
|
|
47
|
+
get nodeId(): string;
|
|
48
|
+
set nodeId(id: string);
|
|
49
|
+
private heartbeatTimer;
|
|
50
|
+
readonly idCardHandler: ClusterIdCardHandler;
|
|
51
|
+
readonly publisher: ClusterPublisher;
|
|
52
|
+
readonly fullState: ClusterState;
|
|
53
|
+
readonly command: ClusterCommand;
|
|
54
|
+
readonly eventEmitter: EventEmitter;
|
|
55
|
+
/** Links remote node IDs with their subscriber counterpart */
|
|
56
|
+
readonly remoteNodes: Map<string, ClusterSubscriber>;
|
|
57
|
+
private readonly activityMaxLength;
|
|
33
58
|
/**
|
|
34
59
|
* Cluster nodes activity, used to keep track of nodes being added or
|
|
35
60
|
* removed, to give more insights to cluster statuses
|
|
36
61
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
62
|
+
activity: NodeActivity[];
|
|
63
|
+
constructor();
|
|
39
64
|
get syncAddress(): string;
|
|
40
65
|
init(): Promise<string>;
|
|
41
66
|
/**
|
|
@@ -48,7 +73,7 @@ declare class ClusterNode {
|
|
|
48
73
|
*
|
|
49
74
|
* @param {bool} evictionPrevented
|
|
50
75
|
*/
|
|
51
|
-
preventEviction(evictionPrevented:
|
|
76
|
+
preventEviction(evictionPrevented: boolean): void;
|
|
52
77
|
/**
|
|
53
78
|
* Adds a new remote node, and subscribes to it.
|
|
54
79
|
* @param {string} id - remote node ID
|
|
@@ -56,7 +81,7 @@ declare class ClusterNode {
|
|
|
56
81
|
* @param {number} lastMessageId - remote node last message ID
|
|
57
82
|
* @return {boolean} false if the node was already known, true otherwise
|
|
58
83
|
*/
|
|
59
|
-
addNode(id: string, ip: string, lastMessageId:
|
|
84
|
+
addNode(id: string, ip: string, lastMessageId: Long): Promise<boolean>;
|
|
60
85
|
/**
|
|
61
86
|
* Evicts this node from the cluster.
|
|
62
87
|
*
|
|
@@ -64,7 +89,7 @@ declare class ClusterNode {
|
|
|
64
89
|
* @param {Error} [error]
|
|
65
90
|
* @return {void}
|
|
66
91
|
*/
|
|
67
|
-
evictSelf(reason: string, error?: Error): void
|
|
92
|
+
evictSelf(reason: string, error?: Error | null): Promise<void>;
|
|
68
93
|
/**
|
|
69
94
|
* Evicts a remote from the list
|
|
70
95
|
* @param {string} nodeId - remote node ID
|
|
@@ -72,7 +97,7 @@ declare class ClusterNode {
|
|
|
72
97
|
* @param {boolean} [options.broadcast] - broadcast the eviction to the cluster
|
|
73
98
|
* @param {string} [options.reason] - reason of eviction
|
|
74
99
|
*/
|
|
75
|
-
evictNode(nodeId: string, { broadcast, reason }
|
|
100
|
+
evictNode(nodeId: string, { broadcast, reason, }: {
|
|
76
101
|
broadcast?: boolean;
|
|
77
102
|
reason?: string;
|
|
78
103
|
}): Promise<void>;
|
|
@@ -84,6 +109,44 @@ declare class ClusterNode {
|
|
|
84
109
|
* It'll never throw, and it'll never generate unhandled rejections.
|
|
85
110
|
*/
|
|
86
111
|
enforceClusterConsistency(): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Builds the distinct topologies the cluster's ID cards disagree on. A
|
|
114
|
+
* topology shorter than the number of known cards is a split: that card sees
|
|
115
|
+
* fewer nodes than exist.
|
|
116
|
+
*
|
|
117
|
+
* Extracted from `enforceClusterConsistency()` unchanged — a pure function of
|
|
118
|
+
* the cards it is given, which is what makes moving it safe.
|
|
119
|
+
*/
|
|
120
|
+
private detectSplits;
|
|
121
|
+
/**
|
|
122
|
+
* Decides which nodes must shut themselves down, given the detected splits.
|
|
123
|
+
*
|
|
124
|
+
* Extracted from `enforceClusterConsistency()` unchanged. Every node runs
|
|
125
|
+
* this on its own and must reach the same list, so it is a pure function of
|
|
126
|
+
* `splits` and `idCards` — no clock, no randomness, no state.
|
|
127
|
+
*/
|
|
128
|
+
private electShutdownCandidates;
|
|
129
|
+
/**
|
|
130
|
+
* Breaks a tie between equally small splits: prefer the one holding the
|
|
131
|
+
* youngest *isolated* node (present in that split and no other), and fall
|
|
132
|
+
* back to the youngest node overall.
|
|
133
|
+
*
|
|
134
|
+
* Extracted from `electShutdownCandidates()` unchanged, and pure like it —
|
|
135
|
+
* every node must reach the same answer from the same inputs.
|
|
136
|
+
*/
|
|
137
|
+
private electFromTiedSplits;
|
|
138
|
+
/**
|
|
139
|
+
* Handles a full-state round that no node answered: gives up if this was
|
|
140
|
+
* already the second attempt, otherwise drops every subscriber and waits a
|
|
141
|
+
* redis heartbeat round so the discovery can be redone against ID cards that
|
|
142
|
+
* may since have expired.
|
|
143
|
+
*
|
|
144
|
+
* Extracted from `handshake()` unchanged.
|
|
145
|
+
*
|
|
146
|
+
* @returns false when the caller must stop — the cluster is split and this
|
|
147
|
+
* node is shutting down
|
|
148
|
+
*/
|
|
149
|
+
private retryFullState;
|
|
87
150
|
/**
|
|
88
151
|
* Discovers other active nodes from the cluster and, if other nodes exist,
|
|
89
152
|
* starts a handshake procedure to sync this node and to make it able to
|
|
@@ -91,7 +154,25 @@ declare class ClusterNode {
|
|
|
91
154
|
*
|
|
92
155
|
* @return {void}
|
|
93
156
|
*/
|
|
94
|
-
handshake(): void
|
|
157
|
+
handshake(): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* Subscribes to every discovered node and starts buffering their sync
|
|
160
|
+
* messages.
|
|
161
|
+
*
|
|
162
|
+
* Extracted from `handshake()` unchanged, including its awaits: the wait
|
|
163
|
+
* below is what makes the `getFullState` that follows it safe, so the
|
|
164
|
+
* ordering is the point of the method, not an implementation detail.
|
|
165
|
+
*/
|
|
166
|
+
private subscribeToNodes;
|
|
167
|
+
/**
|
|
168
|
+
* Starts synchronizing with each peer that answered the handshake, and drops
|
|
169
|
+
* the ones that did not.
|
|
170
|
+
*
|
|
171
|
+
* Extracted from `handshake()` unchanged. `sync()` is awaited here for the
|
|
172
|
+
* reason written inside: a gap found during its replay evicts this node, and
|
|
173
|
+
* the success line must not be printed before that is known.
|
|
174
|
+
*/
|
|
175
|
+
private syncWithPeers;
|
|
95
176
|
countActiveNodes(): number;
|
|
96
177
|
startHeartbeat(): void;
|
|
97
178
|
/**
|
|
@@ -102,12 +183,12 @@ declare class ClusterNode {
|
|
|
102
183
|
* @param {nodeActivityEnum} event
|
|
103
184
|
* @param {string} [reason]
|
|
104
185
|
*/
|
|
105
|
-
trackActivity(id: string, ip: string, event:
|
|
186
|
+
trackActivity(id: string, ip: string, event: number, reason?: string): void;
|
|
106
187
|
/**
|
|
107
188
|
* Returns the full status of the cluster
|
|
108
189
|
* @return {Object}
|
|
109
190
|
*/
|
|
110
|
-
getStatus():
|
|
191
|
+
getStatus(): Promise<ClusterStatus>;
|
|
111
192
|
/**
|
|
112
193
|
* Registers ask events
|
|
113
194
|
*/
|
|
@@ -145,7 +226,7 @@ declare class ClusterNode {
|
|
|
145
226
|
* @param {string} event name
|
|
146
227
|
* @param {Object} payload - event payload
|
|
147
228
|
*/
|
|
148
|
-
broadcast(event: string, payload:
|
|
229
|
+
broadcast(event: string, payload: JSONObject): void;
|
|
149
230
|
/**
|
|
150
231
|
* Triggered when a user unsubscribes from a room
|
|
151
232
|
*
|
|
@@ -160,7 +241,7 @@ declare class ClusterNode {
|
|
|
160
241
|
* @param {DocumentNotification} notification
|
|
161
242
|
* @return {void}
|
|
162
243
|
*/
|
|
163
|
-
onDocumentNotification(rooms:
|
|
244
|
+
onDocumentNotification(rooms: string[], notification: DocumentNotification): void;
|
|
164
245
|
/**
|
|
165
246
|
* Triggered when a user notification must be propagated
|
|
166
247
|
*
|
|
@@ -177,7 +258,7 @@ declare class ClusterNode {
|
|
|
177
258
|
* @param {Object} strategyObject
|
|
178
259
|
* @return {void}
|
|
179
260
|
*/
|
|
180
|
-
onAuthStrategyAdded(strategyName: string, pluginName: string, strategyObject:
|
|
261
|
+
onAuthStrategyAdded(strategyName: string, pluginName: string, strategyObject: AuthStrategy): void;
|
|
181
262
|
/**
|
|
182
263
|
* Triggered when an authentication strategy has been dynamically removed
|
|
183
264
|
*
|
|
@@ -243,7 +324,7 @@ declare class ClusterNode {
|
|
|
243
324
|
* @param {Array.<string>} indexes
|
|
244
325
|
* @return {void}
|
|
245
326
|
*/
|
|
246
|
-
onIndexesRemoved(scope: storeScopeEnum, indexes:
|
|
327
|
+
onIndexesRemoved(scope: storeScopeEnum, indexes: string[]): void;
|
|
247
328
|
/**
|
|
248
329
|
* Triggered when a collection has been removed from the index cache
|
|
249
330
|
*
|
|
@@ -270,9 +351,6 @@ declare class ClusterNode {
|
|
|
270
351
|
* @param {string} roomId
|
|
271
352
|
* @return {void}
|
|
272
353
|
*/
|
|
273
|
-
countRealtimeSubscribers(roomId: string):
|
|
354
|
+
countRealtimeSubscribers(roomId: string): Promise<number>;
|
|
274
355
|
}
|
|
275
|
-
|
|
276
|
-
import ClusterPublisher = require("./publisher");
|
|
277
|
-
import ClusterCommand = require("./command");
|
|
278
|
-
import ClusterSubscriber = require("./subscriber");
|
|
356
|
+
export = ClusterNode;
|