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
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
4
|
+
* to power modern apps
|
|
5
|
+
*
|
|
6
|
+
* Copyright 2015-2022 Kuzzle
|
|
7
|
+
* mailto: support AT kuzzle.io
|
|
8
|
+
* website: http://kuzzle.io
|
|
9
|
+
*
|
|
10
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
* you may not use this file except in compliance with the License.
|
|
12
|
+
* You may obtain a copy of the License at
|
|
13
|
+
*
|
|
14
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
*
|
|
16
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
* See the License for the specific language governing permissions and
|
|
20
|
+
* limitations under the License.
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
//# sourceMappingURL=KuzzleWebSocket.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { JSONObject } from "
|
|
2
|
-
import { PluginContext } from "../core/plugin/pluginContext";
|
|
3
|
-
import { ControllerDefinition } from "./controllers/ControllerDefinition";
|
|
4
|
-
import { PluginManifest } from "./PluginManifest";
|
|
5
|
-
import { StrategyDefinition } from "./StrategyDefinition";
|
|
6
|
-
import {
|
|
7
|
-
import { ImportConfig } from "./Kuzzle";
|
|
1
|
+
import type { JSONObject } from "./JSONObject";
|
|
2
|
+
import type { PluginContext } from "../core/plugin/pluginContext";
|
|
3
|
+
import type { ControllerDefinition } from "./controllers/ControllerDefinition";
|
|
4
|
+
import type { PluginManifest } from "./PluginManifest";
|
|
5
|
+
import type { StrategyDefinition } from "./StrategyDefinition";
|
|
6
|
+
import type { HookEventHandler, PipeEventHandler } from "./EventHandler";
|
|
7
|
+
import type { ImportConfig } from "./Kuzzle";
|
|
8
8
|
/**
|
|
9
9
|
* Allows to define plugins controllers and actions
|
|
10
10
|
*/
|
|
@@ -14,8 +14,20 @@ export type PluginApiDefinition = {
|
|
|
14
14
|
*/
|
|
15
15
|
[controller: string]: ControllerDefinition;
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* A hook or pipe target given as the **name** of one of the plugin's methods
|
|
19
|
+
* instead of the function itself.
|
|
20
|
+
*
|
|
21
|
+
* @deprecated Pass the function. Kuzzle still resolves the name, and prints a
|
|
22
|
+
* deprecation warning when it registers the handler.
|
|
23
|
+
*/
|
|
24
|
+
export type PluginMethodName = string;
|
|
17
25
|
/**
|
|
18
26
|
* Allows to define hooks on events
|
|
27
|
+
*
|
|
28
|
+
* Kuzzle also resolves a {@link PluginMethodName} in place of a handler, but
|
|
29
|
+
* the type admits only functions, as v2.56.0's did: code compiled against
|
|
30
|
+
* that reads a value back and calls it, which a `string` in the union breaks.
|
|
19
31
|
*/
|
|
20
32
|
export type PluginHookDefinition = {
|
|
21
33
|
/**
|
|
@@ -24,7 +36,12 @@ export type PluginHookDefinition = {
|
|
|
24
36
|
[event: string]: HookEventHandler | HookEventHandler[];
|
|
25
37
|
};
|
|
26
38
|
/**
|
|
27
|
-
* Allows to define pipes on events
|
|
39
|
+
* Allows to define pipes on events.
|
|
40
|
+
*
|
|
41
|
+
* A pipe either returns a promise, or takes a trailing `callback(error,
|
|
42
|
+
* request)`: both forms are documented, and the runner accepts both — and a
|
|
43
|
+
* {@link PluginMethodName}. The type is v2.56.0's, for the reason given on
|
|
44
|
+
* {@link PluginHookDefinition}.
|
|
28
45
|
*/
|
|
29
46
|
export type PluginPipeDefinition = {
|
|
30
47
|
/**
|
|
@@ -39,10 +56,18 @@ export declare abstract class Plugin {
|
|
|
39
56
|
_manifest: PluginManifest;
|
|
40
57
|
/**
|
|
41
58
|
* Plugin context.
|
|
59
|
+
*
|
|
60
|
+
* Kuzzle hands it to `init(config, context)` and never assigns it here:
|
|
61
|
+
* storing it is the documented convention plugin authors follow. It is
|
|
62
|
+
* declared as always present (`!`) because that is what every method but
|
|
63
|
+
* `init` can rely on, and what v2.56.0 declared — an optional field made
|
|
64
|
+
* every `this.context.*` of a `strict` plugin a compile error.
|
|
42
65
|
*/
|
|
43
66
|
context: PluginContext;
|
|
44
67
|
/**
|
|
45
68
|
* Plugin config.
|
|
69
|
+
*
|
|
70
|
+
* Declared as always present for the same reason as {@link context}.
|
|
46
71
|
*/
|
|
47
72
|
config: JSONObject;
|
|
48
73
|
/**
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { JSONObject } from "./JSONObject";
|
|
2
|
+
import type { Logger } from "../kuzzle/Logger";
|
|
3
|
+
import type PluginManifest from "../core/plugin/pluginManifest";
|
|
4
|
+
import type { PluginContext } from "../core/plugin/pluginContext";
|
|
5
|
+
import type { PluginApiDefinition } from "./Plugin";
|
|
6
|
+
import type { HookEventHandler, RegisteredPipeHandler } from "./EventHandler";
|
|
7
|
+
/**
|
|
8
|
+
* The hooks Kuzzle accepts off a plugin object: the public
|
|
9
|
+
* `PluginHookDefinition`, plus the (deprecated) name of one of the plugin's
|
|
10
|
+
* methods in place of a handler — the `string` — which the public type
|
|
11
|
+
* leaves out (see there).
|
|
12
|
+
*/
|
|
13
|
+
type InstanceHookDefinition = {
|
|
14
|
+
[event: string]: HookEventHandler | string | Array<HookEventHandler | string>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The pipes Kuzzle accepts off a plugin object: either handler form, or a
|
|
18
|
+
* method name (see `PluginPipeDefinition`).
|
|
19
|
+
*/
|
|
20
|
+
type InstancePipeDefinition = {
|
|
21
|
+
[event: string]: RegisteredPipeHandler | string | Array<RegisteredPipeHandler | string>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* What Kuzzle needs of a plugin's own object. The full contract third parties
|
|
25
|
+
* implement is the abstract `Plugin` in `lib/types/Plugin.ts`; this is the
|
|
26
|
+
* subset this wrapper reads, and every member is optional because a plugin is
|
|
27
|
+
* a user-supplied object that may declare none of them.
|
|
28
|
+
*/
|
|
29
|
+
export interface PluginInstance {
|
|
30
|
+
/**
|
|
31
|
+
* A plugin is a user-supplied object and may expose any member: the named
|
|
32
|
+
* ones below are what Kuzzle reads, and handlers are routinely referenced by
|
|
33
|
+
* name (`controllers.foo.bar = "someMethod"`), which needs this signature.
|
|
34
|
+
*/
|
|
35
|
+
[member: string]: unknown;
|
|
36
|
+
init?: (config: JSONObject, context: PluginContext) => unknown;
|
|
37
|
+
/**
|
|
38
|
+
* An application's own logger (`Backend.log`). Only an application has one —
|
|
39
|
+
* a plain plugin does not — and it lives here, on the instance, not on the
|
|
40
|
+
* `Plugin` wrapper: the shutdown path read it off the wrapper for years and
|
|
41
|
+
* silently flushed nothing (TD-51).
|
|
42
|
+
*/
|
|
43
|
+
log?: Logger;
|
|
44
|
+
authenticators?: JSONObject;
|
|
45
|
+
version?: string;
|
|
46
|
+
_manifest?: PluginManifest;
|
|
47
|
+
api?: PluginApiDefinition;
|
|
48
|
+
imports?: JSONObject;
|
|
49
|
+
hooks?: InstanceHookDefinition;
|
|
50
|
+
pipes?: InstancePipeDefinition;
|
|
51
|
+
/** The pre-Kaaf controller shape: controller → action → handler or method name. */
|
|
52
|
+
controllers?: JSONObject;
|
|
53
|
+
routes?: JSONObject[];
|
|
54
|
+
/**
|
|
55
|
+
* `JSONObject`, not `StrategyDefinition`: that type is the *authoring*
|
|
56
|
+
* contract a plugin writes against, while this interface describes what
|
|
57
|
+
* Kuzzle reads off a plugin object before anything has validated it.
|
|
58
|
+
* `PluginsManager.validateStrategy` is what turns one into the other.
|
|
59
|
+
*/
|
|
60
|
+
strategies?: JSONObject;
|
|
61
|
+
}
|
|
62
|
+
export interface PluginOptions {
|
|
63
|
+
name?: string;
|
|
64
|
+
application?: boolean;
|
|
65
|
+
deprecationWarning?: boolean;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
4
|
+
* to power modern apps
|
|
5
|
+
*
|
|
6
|
+
* Copyright 2015-2022 Kuzzle
|
|
7
|
+
* mailto: support AT kuzzle.io
|
|
8
|
+
* website: http://kuzzle.io
|
|
9
|
+
*
|
|
10
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
* you may not use this file except in compliance with the License.
|
|
12
|
+
* You may obtain a copy of the License at
|
|
13
|
+
*
|
|
14
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
*
|
|
16
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
* See the License for the specific language governing permissions and
|
|
20
|
+
* limitations under the License.
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
//# sourceMappingURL=PluginInstance.js.map
|
|
@@ -13,3 +13,11 @@ export type Target = {
|
|
|
13
13
|
index?: string;
|
|
14
14
|
collections?: string[];
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* A target that has been through `BaseController.assertTargetsAreValid`.
|
|
18
|
+
*
|
|
19
|
+
* That assertion rejects a target missing `index` or `collections`, so the
|
|
20
|
+
* storage layer — which is only ever handed validated targets — can read both
|
|
21
|
+
* without re-checking them.
|
|
22
|
+
*/
|
|
23
|
+
export type ValidatedTarget = Required<Target>;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { JSONObject } from "
|
|
1
|
+
import type { JSONObject } from "./JSONObject";
|
|
2
2
|
/**
|
|
3
|
-
* Kuzzle authentication token.
|
|
3
|
+
* Kuzzle authentication token, as a plain object.
|
|
4
|
+
*
|
|
5
|
+
* Not the type of `request.context.token`: that is the server's token model,
|
|
6
|
+
* exported as `KuzzleToken`, which has every member below except
|
|
7
|
+
* `connectionId` (ADR-0002 step 02, TD-07).
|
|
4
8
|
*/
|
|
5
9
|
export interface Token extends JSONObject {
|
|
6
10
|
/**
|
|
@@ -21,6 +25,14 @@ export interface Token extends JSONObject {
|
|
|
21
25
|
userId: string;
|
|
22
26
|
/**
|
|
23
27
|
* Associated connection ID
|
|
28
|
+
*
|
|
29
|
+
* Never set on the tokens Kuzzle builds: a token can serve several
|
|
30
|
+
* connections, and the token manager keeps those links, not the token. The
|
|
31
|
+
* connection of a request is `request.context.connection.id`.
|
|
32
|
+
*
|
|
33
|
+
* @deprecated Never set, on v2.56.0 or since; kept so that code reading it
|
|
34
|
+
* still compiles. Use `request.context.connection.id` for a request's
|
|
35
|
+
* connection. To be removed in the next major (ADR-0002 step 04).
|
|
24
36
|
*/
|
|
25
37
|
connectionId: string | null;
|
|
26
38
|
/**
|
|
@@ -10,6 +10,11 @@ export type HttpConfiguration = {
|
|
|
10
10
|
* Sets the default Access-Control-Allow-Origin HTTP
|
|
11
11
|
* header used to send responses to the client.
|
|
12
12
|
*
|
|
13
|
+
* A comma-separated list, or an array of origins. Kuzzle stores the array
|
|
14
|
+
* once the configuration is loaded — of `RegExp`s with
|
|
15
|
+
* `accessControlAllowOriginUseRegExp`. Declared `string` all the same, as
|
|
16
|
+
* v2.56.0 declared it: code compiled against that reads it as one.
|
|
17
|
+
*
|
|
13
18
|
* @default "*"
|
|
14
19
|
*/
|
|
15
20
|
accessControlAllowOrigin: string;
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
-
import { DumpConfiguration, HttpConfiguration, LimitsConfiguration, PluginsConfiguration, SecurityConfiguration, ServerConfiguration, ServicesConfiguration } from "../index";
|
|
1
|
+
import type { DumpConfiguration, HttpConfiguration, LimitsConfiguration, PluginsConfiguration, SecurityConfiguration, ServerConfiguration, ServicesConfiguration } from "../index";
|
|
2
|
+
/**
|
|
3
|
+
* The **merged, runtime** configuration: a user's `.kuzzlerc` applied over the
|
|
4
|
+
* packaged defaults. Nothing here is optional, because `loadConfig()` always
|
|
5
|
+
* produces every section — this is what `global.kuzzle.config` holds.
|
|
6
|
+
*
|
|
7
|
+
* For what a user may *write*, see {@link KuzzleConfiguration}.
|
|
8
|
+
*/
|
|
2
9
|
export interface IKuzzleConfiguration {
|
|
10
|
+
/**
|
|
11
|
+
* Kuzzle version, populated at runtime from `package.json`.
|
|
12
|
+
*
|
|
13
|
+
* Optional here, like the other members v2.56.0's declaration did not have
|
|
14
|
+
* (`cluster.retransmitBuffer`, `internal.allowAllOrigins`, `vault`): a
|
|
15
|
+
* required new member breaks code that builds this type. The loaded
|
|
16
|
+
* configuration always has them (the packaged defaults and `loadConfig()`
|
|
17
|
+
* fill them), so Kuzzle's own readers assert them present.
|
|
18
|
+
*/
|
|
19
|
+
version?: string;
|
|
3
20
|
realtime: {
|
|
4
21
|
/**
|
|
5
22
|
* @default false
|
|
@@ -118,11 +135,43 @@ export interface IKuzzleConfiguration {
|
|
|
118
135
|
* @default 5000
|
|
119
136
|
*/
|
|
120
137
|
syncTimeout: number;
|
|
138
|
+
/**
|
|
139
|
+
* How many of its last sync messages a node keeps, so that a peer that
|
|
140
|
+
* missed some can ask for them again instead of evicting itself. The
|
|
141
|
+
* oldest are dropped as soon as either bound is exceeded; 0 disables it.
|
|
142
|
+
*
|
|
143
|
+
* Optional here for the reason given on {@link IKuzzleConfiguration.version}.
|
|
144
|
+
*/
|
|
145
|
+
retransmitBuffer?: {
|
|
146
|
+
/**
|
|
147
|
+
* @default 1000
|
|
148
|
+
*/
|
|
149
|
+
messages: number;
|
|
150
|
+
/**
|
|
151
|
+
* @default 16777216 (16 MiB)
|
|
152
|
+
*/
|
|
153
|
+
bytes: number;
|
|
154
|
+
};
|
|
121
155
|
};
|
|
122
156
|
internal: {
|
|
123
157
|
hash: any;
|
|
124
158
|
notifiableProtocols: string[];
|
|
159
|
+
/**
|
|
160
|
+
* Derived at startup from "http.accessControlAllowOrigin": true when the
|
|
161
|
+
* configured origins contain the "*" wildcard.
|
|
162
|
+
*
|
|
163
|
+
* Optional here for the reason given on {@link IKuzzleConfiguration.version}.
|
|
164
|
+
*/
|
|
165
|
+
allowAllOrigins?: boolean;
|
|
125
166
|
};
|
|
167
|
+
/**
|
|
168
|
+
* Collection specifications to apply at startup, by index then collection.
|
|
169
|
+
* Read when the internal index holds none of its own — the database is not
|
|
170
|
+
* necessarily prepared when validation first loads.
|
|
171
|
+
*
|
|
172
|
+
* Their shape is a `RawSpecification`, which validation reads it as; the
|
|
173
|
+
* declaration is v2.56.0's, which code compiled against it assigns to.
|
|
174
|
+
*/
|
|
126
175
|
validation: Record<string, unknown>;
|
|
127
176
|
controllers: {
|
|
128
177
|
definition: {
|
|
@@ -134,5 +183,57 @@ export interface IKuzzleConfiguration {
|
|
|
134
183
|
allowAdditionalActionProperties: boolean;
|
|
135
184
|
};
|
|
136
185
|
};
|
|
186
|
+
/**
|
|
187
|
+
* The vault section lets you configure the secrets vault behavior.
|
|
188
|
+
*
|
|
189
|
+
* Optional here for the reason given on {@link IKuzzleConfiguration.version}.
|
|
190
|
+
*/
|
|
191
|
+
vault?: {
|
|
192
|
+
/**
|
|
193
|
+
* Opt-in for the new vault encryption algorithm (AES-256-GCM) instead
|
|
194
|
+
* of the legacy one (AES-256-CBC).
|
|
195
|
+
*
|
|
196
|
+
* @default false
|
|
197
|
+
*/
|
|
198
|
+
newAlgorithm: boolean;
|
|
199
|
+
};
|
|
137
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* What `lib/config/default.config.ts` ships: every section except the two
|
|
203
|
+
* `loadConfig()` derives at startup — `version`, read from `package.json`, and
|
|
204
|
+
* `internal`, computed from the rest (the hash seed, the notifiable protocols,
|
|
205
|
+
* the `allowAllOrigins` flag). Declaring the omission is what keeps the defaults
|
|
206
|
+
* file total — any other missing section is an error, not an oversight.
|
|
207
|
+
*/
|
|
208
|
+
export type PackagedKuzzleConfiguration = Omit<IKuzzleConfiguration, "version" | "internal">;
|
|
209
|
+
/**
|
|
210
|
+
* Recursively optional. Written out here rather than imported because the user
|
|
211
|
+
* shape below is its only use: an override is always *partial at every depth*,
|
|
212
|
+
* and a shallow `Partial` demands the whole of any section it is given.
|
|
213
|
+
*
|
|
214
|
+
* Arrays and functions are left alone — a partial array element is not a thing
|
|
215
|
+
* a config override can express, and `_.merge` replaces arrays wholesale.
|
|
216
|
+
*/
|
|
217
|
+
type DeepPartial<T> = T extends unknown[] ? T : T extends (...args: never[]) => unknown ? T : T extends object ? {
|
|
218
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
219
|
+
} : T;
|
|
220
|
+
/**
|
|
221
|
+
* What a **user** may supply: a `.kuzzlerc` file, the object passed to
|
|
222
|
+
* `app.config.merge()`, an environment override. Everything is optional, at
|
|
223
|
+
* every depth, because the packaged defaults provide the rest — and because
|
|
224
|
+
* that is what `rc` and `_.merge` actually accept.
|
|
225
|
+
*
|
|
226
|
+
* This is **not** the shape of `global.kuzzle.config`, which is this merged
|
|
227
|
+
* over `lib/config/default.config.ts` and therefore total — that one is
|
|
228
|
+
* {@link IKuzzleConfiguration}. One name used for both is what kept every
|
|
229
|
+
* config reader out of `strict`: see ADR-0001, TD-53 (#2756).
|
|
230
|
+
*/
|
|
231
|
+
export type KuzzleConfigurationOverrides = DeepPartial<IKuzzleConfiguration>;
|
|
232
|
+
/**
|
|
233
|
+
* v2.56.0's name for a configuration that may omit whole sections — but not
|
|
234
|
+
* keys within one: `Partial`, not {@link KuzzleConfigurationOverrides}. Kept
|
|
235
|
+
* as it was, because code compiled against it reads a section it set back
|
|
236
|
+
* without `?.` (`config.limits!.documentsFetchCount` as a `number`).
|
|
237
|
+
*/
|
|
138
238
|
export type KuzzleConfiguration = Partial<IKuzzleConfiguration>;
|
|
239
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { JSONObject } from "
|
|
2
|
-
import { PasswordPolicy } from "../index";
|
|
1
|
+
import type { JSONObject } from "../JSONObject";
|
|
2
|
+
import type { PasswordPolicy } from "../index";
|
|
3
3
|
export type PluginsConfiguration = {
|
|
4
4
|
/**
|
|
5
5
|
* Common configuration for all plugins.
|
|
@@ -166,5 +166,6 @@ export type PluginsConfiguration = {
|
|
|
166
166
|
*/
|
|
167
167
|
passwordPolicies: PasswordPolicy[];
|
|
168
168
|
};
|
|
169
|
+
} & {
|
|
169
170
|
[pluginName: string]: JSONObject;
|
|
170
171
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import { JSONObject } from "
|
|
4
|
-
import { RoleDefinition, ProfileDefinition } from "../index";
|
|
3
|
+
import type { JSONObject } from "../JSONObject";
|
|
4
|
+
import type { RoleDefinition, ProfileDefinition } from "../index";
|
|
5
5
|
export type SecurityConfiguration = {
|
|
6
6
|
/**
|
|
7
7
|
* Debugger configuration
|
|
@@ -22,6 +22,10 @@ export type SecurityConfiguration = {
|
|
|
22
22
|
restrictedProfileIds: string[];
|
|
23
23
|
/**
|
|
24
24
|
* @deprecated Use `security.authToken` instead.
|
|
25
|
+
*
|
|
26
|
+
* `default.config.ts` always ships it, and `authToken`'s readers fall back
|
|
27
|
+
* to it — `authToken.algorithm ?? jwt.algorithm`. Optional all the same, as
|
|
28
|
+
* v2.56.0 declared it: a required member breaks code that builds this type.
|
|
25
29
|
*/
|
|
26
30
|
jwt?: JSONObject;
|
|
27
31
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { KuzzleLoggerConfig } from "kuzzle-logger";
|
|
2
|
-
import { JSONObject } from "
|
|
1
|
+
import type { KuzzleLoggerConfig } from "kuzzle-logger";
|
|
2
|
+
import type { JSONObject } from "../JSONObject";
|
|
3
3
|
export type ServerConfiguration = {
|
|
4
4
|
/**
|
|
5
5
|
* The maximum size of an incoming request.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PublicCacheRedisConfiguration, InternalCacheConfiguration, StorageEngineElasticsearch } from "../index";
|
|
1
|
+
import type { PublicCacheRedisConfiguration, InternalCacheConfiguration, StorageEngineElasticsearch } from "../index";
|
|
2
2
|
export type ServicesConfiguration = {
|
|
3
3
|
common: {
|
|
4
4
|
/**
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The cache service relies on Redis sample settings for Redis service (see also https://github.com/luin/ioredis)
|
|
3
|
+
*
|
|
4
|
+
* 1. using a single Redis database:
|
|
5
|
+
* * node:
|
|
6
|
+
* * host:
|
|
7
|
+
* The host on which Redis can be reached.
|
|
8
|
+
* Can take an IP address, an URI or a hostname
|
|
9
|
+
* * port:
|
|
10
|
+
* The port on which Redis is running its database:
|
|
11
|
+
* * (optional, deprecated) database:
|
|
12
|
+
* ID of the redis database (default: 0)
|
|
13
|
+
* NOTE: this option is deprecated and will be removed in Kuzzle v3.
|
|
14
|
+
* Use 'options.db' instead. If both options are set, then
|
|
15
|
+
* "options.db" will take precedence.
|
|
16
|
+
* * (optional) options:
|
|
17
|
+
* Redis specific options compatible with IORedis.
|
|
18
|
+
* See Redis client constructor available options:
|
|
19
|
+
* https://github.com/luin/ioredis/blob/master/API.md#new-redisport-host-options
|
|
20
|
+
*
|
|
21
|
+
* 2. using a master/slaves Redis instance with Redis sentinels
|
|
22
|
+
* (cf. http://redis.io/topics/sentinel):
|
|
23
|
+
* * node:
|
|
24
|
+
* * sentinels:
|
|
25
|
+
* array of sentinels instances:
|
|
26
|
+
* * host:
|
|
27
|
+
* Host name/address of the sentinel server
|
|
28
|
+
* Can be an IP address, an URI or a hostname
|
|
29
|
+
* * port:
|
|
30
|
+
* Network port opened by Redis on the sentinel server
|
|
31
|
+
* * name:
|
|
32
|
+
* Group of Redis instances composed of a master and one
|
|
33
|
+
* or more slaves
|
|
34
|
+
* * (optional, deprecated) database:
|
|
35
|
+
* ID of the redis database (default: 0)
|
|
36
|
+
* NOTE: this option is deprecated and will be removed in Kuzzle v3.
|
|
37
|
+
* Use 'options.db' instead. If both options are set, then
|
|
38
|
+
* "options.db" will take precedence.
|
|
39
|
+
* * (optional) options:
|
|
40
|
+
* Redis specific options compatible with IORedis.
|
|
41
|
+
* See Redis client constructor available options:
|
|
42
|
+
* https://github.com/luin/ioredis/blob/master/API.md#redis--eventemitter
|
|
43
|
+
*
|
|
44
|
+
* 3. using a redis cluster (cf. http://redis.io/topics/cluster-spec):
|
|
45
|
+
* * nodes: array of master nodes of the cluster
|
|
46
|
+
* * host:
|
|
47
|
+
* Host name/address of a redis cluster node
|
|
48
|
+
* Can be an IP address, an URI or a hostname
|
|
49
|
+
* * port:
|
|
50
|
+
* Network port opened by the redis cluster node
|
|
51
|
+
* * (optional, deprecated) database:
|
|
52
|
+
* ID of the redis database (default: 0)
|
|
53
|
+
* NOTE: this option is deprecated and will be removed in Kuzzle v3.
|
|
54
|
+
* Use 'options.db' instead. If both options are set, then
|
|
55
|
+
* "options.db" will take precedence.
|
|
56
|
+
* * (optional) options:
|
|
57
|
+
* Redis specific options compatible with IORedis.
|
|
58
|
+
* See Redis client constructor available options:
|
|
59
|
+
* https://github.com/luin/ioredis/blob/master/API.md#new-redisport-host-options
|
|
60
|
+
* * (optional) clusterOptions:
|
|
61
|
+
* Redis Cluster specific options compatible with IORedis.
|
|
62
|
+
* See Redis Cluster client constructor available options:
|
|
63
|
+
* https://github.com/luin/ioredis/blob/master/API.md#new-clusterstartupnodes-options
|
|
64
|
+
* * (optional) overrideDnsLookup:
|
|
65
|
+
* Only available when using a Redis Cluster config.
|
|
66
|
+
* Use with caution: if set to true, it makes Kuzzle skip DNS validation for TLS certificates
|
|
67
|
+
* This is the only way to connect to an AWS Elasticache Cluster with TLS encryption.
|
|
68
|
+
* See: https://github.com/luin/ioredis#special-note-aws-elasticache-clusters-with-tls
|
|
69
|
+
*/
|
|
70
|
+
export type BaseCacheRedisConfiguration = {
|
|
71
|
+
/**
|
|
72
|
+
* @default 'redis'
|
|
73
|
+
*/
|
|
74
|
+
backend: "redis";
|
|
75
|
+
clusterOptions: {
|
|
76
|
+
/**
|
|
77
|
+
* @default true
|
|
78
|
+
*/
|
|
79
|
+
enableReadyCheck: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Custom DNS lookup function, automatically set when `overrideDnsLookup`
|
|
82
|
+
* is true. Only relevant when using a Redis Cluster config.
|
|
83
|
+
*/
|
|
84
|
+
dnsLookup?: (address: string, callback: (err: Error | null, address: string) => void) => void;
|
|
85
|
+
};
|
|
86
|
+
node: {
|
|
87
|
+
/**
|
|
88
|
+
* @default 'localhost'
|
|
89
|
+
*/
|
|
90
|
+
host: string;
|
|
91
|
+
/**
|
|
92
|
+
* @default 6379
|
|
93
|
+
*/
|
|
94
|
+
port: number;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Array of master nodes of the cluster. Only used when configuring a
|
|
98
|
+
* Redis Cluster (see option 3 in the docblock above).
|
|
99
|
+
*/
|
|
100
|
+
nodes?: Array<{
|
|
101
|
+
host: string;
|
|
102
|
+
port: number;
|
|
103
|
+
}>;
|
|
104
|
+
/**
|
|
105
|
+
* * (optional) options:
|
|
106
|
+
* Redis specific options compatible with IORedis.
|
|
107
|
+
* See Redis client constructor available options:
|
|
108
|
+
* https://github.com/luin/ioredis/blob/master/API.md#new-redisport-host-options
|
|
109
|
+
*
|
|
110
|
+
*/
|
|
111
|
+
options?: Record<string, unknown>;
|
|
112
|
+
/**
|
|
113
|
+
* Only available when using a Redis Cluster config.
|
|
114
|
+
* Use with caution: if set to true, it makes Kuzzle skip DNS validation for TLS certificates
|
|
115
|
+
* This is the only way to connect to an AWS Elasticache Cluster with TLS encryption.
|
|
116
|
+
* See: https://github.com/luin/ioredis#special-note-aws-elasticache-clusters-with-tls
|
|
117
|
+
* @default false
|
|
118
|
+
*/
|
|
119
|
+
overrideDnsLookup: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Service initialization timeout, in milliseconds. Falls back to
|
|
122
|
+
* `config.services.common.defaultInitTimeout` when not set.
|
|
123
|
+
*/
|
|
124
|
+
initTimeout?: number;
|
|
125
|
+
/**
|
|
126
|
+
* Delay, in milliseconds, between application-level pings sent to keep
|
|
127
|
+
* the connection alive (e.g. required by some managed Redis providers).
|
|
128
|
+
* Disabled when not set.
|
|
129
|
+
*/
|
|
130
|
+
pingKeepAlive?: number;
|
|
131
|
+
};
|