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,9 +1,12 @@
|
|
|
1
|
-
import { KuzzleRequest } from "../request";
|
|
1
|
+
import type { KuzzleRequest } from "../request";
|
|
2
2
|
import { NativeController } from "./baseController";
|
|
3
|
+
import type { JSONObject } from "../../types/JSONObject";
|
|
4
|
+
import type { Profile } from "../../model/security/profile";
|
|
5
|
+
import type { User } from "../../model/security/user";
|
|
3
6
|
/**
|
|
4
7
|
* @class SecurityController
|
|
5
8
|
*/
|
|
6
|
-
|
|
9
|
+
declare class SecurityController extends NativeController {
|
|
7
10
|
protected readonly subdomain: string;
|
|
8
11
|
protected readonly securityCollections: string[];
|
|
9
12
|
protected getStrategyMethod: any;
|
|
@@ -20,19 +23,28 @@ export default class SecurityController extends NativeController {
|
|
|
20
23
|
/**
|
|
21
24
|
* Creates a new API key for a user
|
|
22
25
|
*/
|
|
23
|
-
createApiKey(request: KuzzleRequest): Promise<
|
|
26
|
+
createApiKey(request: KuzzleRequest): Promise<{
|
|
27
|
+
_id: string | null;
|
|
28
|
+
_source: JSONObject;
|
|
29
|
+
}>;
|
|
24
30
|
/**
|
|
25
31
|
* Search in an user API keys
|
|
26
32
|
*/
|
|
27
33
|
searchApiKeys(request: KuzzleRequest): Promise<{
|
|
28
|
-
hits:
|
|
34
|
+
hits: {
|
|
35
|
+
_id: string | null;
|
|
36
|
+
_source: JSONObject;
|
|
37
|
+
}[];
|
|
29
38
|
total: number;
|
|
30
39
|
}>;
|
|
31
40
|
/**
|
|
32
|
-
* Deletes an user API key
|
|
41
|
+
* Deletes an user API key.
|
|
42
|
+
*
|
|
43
|
+
* The API key to delete can be identified either by its `_id`, by the
|
|
44
|
+
* clear-text `key` itself, or by the key's `fingerprint`.
|
|
33
45
|
*/
|
|
34
46
|
deleteApiKey(request: KuzzleRequest): Promise<{
|
|
35
|
-
_id: string;
|
|
47
|
+
_id: string | null;
|
|
36
48
|
}>;
|
|
37
49
|
/**
|
|
38
50
|
* Get the role mapping
|
|
@@ -62,7 +74,7 @@ export default class SecurityController extends NativeController {
|
|
|
62
74
|
* @param {Request} request
|
|
63
75
|
* @returns {Promise}
|
|
64
76
|
*/
|
|
65
|
-
updateProfileMapping(request:
|
|
77
|
+
updateProfileMapping(request: KuzzleRequest): Promise<any>;
|
|
66
78
|
/**
|
|
67
79
|
* Get the user mapping
|
|
68
80
|
*
|
|
@@ -100,7 +112,7 @@ export default class SecurityController extends NativeController {
|
|
|
100
112
|
* @param {Request} request
|
|
101
113
|
* @returns {Promise}
|
|
102
114
|
*/
|
|
103
|
-
refresh(request: KuzzleRequest): Promise<
|
|
115
|
+
refresh(request: KuzzleRequest): Promise<null>;
|
|
104
116
|
/**
|
|
105
117
|
* Search for roles
|
|
106
118
|
*
|
|
@@ -137,7 +149,7 @@ export default class SecurityController extends NativeController {
|
|
|
137
149
|
* @param {Request} request
|
|
138
150
|
* @returns {Promise<Object>}
|
|
139
151
|
*/
|
|
140
|
-
getProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
152
|
+
getProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
|
|
141
153
|
/**
|
|
142
154
|
* Get specific profiles according to given ids
|
|
143
155
|
*
|
|
@@ -153,14 +165,14 @@ export default class SecurityController extends NativeController {
|
|
|
153
165
|
* @param {Request} request
|
|
154
166
|
* @returns {Promise<Object>}
|
|
155
167
|
*/
|
|
156
|
-
createOrReplaceProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
168
|
+
createOrReplaceProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
|
|
157
169
|
/**
|
|
158
170
|
* Create a Profile
|
|
159
171
|
*
|
|
160
172
|
* @param {Request} request
|
|
161
173
|
* @returns {Promise<Object>}
|
|
162
174
|
*/
|
|
163
|
-
createProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
175
|
+
createProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
|
|
164
176
|
/**
|
|
165
177
|
* Deletes a profile
|
|
166
178
|
*
|
|
@@ -183,7 +195,7 @@ export default class SecurityController extends NativeController {
|
|
|
183
195
|
* @param {Request} request
|
|
184
196
|
* @returns {Promise<Object>}
|
|
185
197
|
*/
|
|
186
|
-
getUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
198
|
+
getUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
187
199
|
/**
|
|
188
200
|
* Get specific users according to given ids
|
|
189
201
|
*
|
|
@@ -200,7 +212,7 @@ export default class SecurityController extends NativeController {
|
|
|
200
212
|
* @returns {Promise<Object>}
|
|
201
213
|
*/
|
|
202
214
|
getProfileRights(request: KuzzleRequest): Promise<{
|
|
203
|
-
hits:
|
|
215
|
+
hits: never[];
|
|
204
216
|
total: number;
|
|
205
217
|
}>;
|
|
206
218
|
/**
|
|
@@ -210,7 +222,7 @@ export default class SecurityController extends NativeController {
|
|
|
210
222
|
* @returns {Promise<Object>}
|
|
211
223
|
*/
|
|
212
224
|
getUserRights(request: KuzzleRequest): Promise<{
|
|
213
|
-
hits:
|
|
225
|
+
hits: never[];
|
|
214
226
|
total: number;
|
|
215
227
|
}>;
|
|
216
228
|
/**
|
|
@@ -256,21 +268,21 @@ export default class SecurityController extends NativeController {
|
|
|
256
268
|
* @param {Request} request
|
|
257
269
|
* @returns {Promise<Object>}
|
|
258
270
|
*/
|
|
259
|
-
createUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
271
|
+
createUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
260
272
|
/**
|
|
261
273
|
* Creates a new User object in Kuzzle's database layer and applies restricted profileIds
|
|
262
274
|
*
|
|
263
275
|
* @param {Request} request
|
|
264
276
|
* @returns {Promise<Object>}
|
|
265
277
|
*/
|
|
266
|
-
createRestrictedUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
278
|
+
createRestrictedUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
267
279
|
/**
|
|
268
280
|
* Updates an existing User
|
|
269
281
|
*
|
|
270
282
|
* @param {Request} request
|
|
271
283
|
* @returns {Promise<Object>}
|
|
272
284
|
*/
|
|
273
|
-
updateUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
285
|
+
updateUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
274
286
|
/**
|
|
275
287
|
* Applies a partial update to an existing user.
|
|
276
288
|
* If the user doesn't already exist, a new user is created.
|
|
@@ -278,21 +290,21 @@ export default class SecurityController extends NativeController {
|
|
|
278
290
|
* @param {Request} request
|
|
279
291
|
* @returns {Promise}
|
|
280
292
|
*/
|
|
281
|
-
upsertUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
293
|
+
upsertUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
282
294
|
/**
|
|
283
295
|
* Replaces an existing User
|
|
284
296
|
*
|
|
285
297
|
* @param {Request} request
|
|
286
298
|
* @returns {Promise<Object>}
|
|
287
299
|
*/
|
|
288
|
-
replaceUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
300
|
+
replaceUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
289
301
|
/**
|
|
290
302
|
* Updates an existing profile
|
|
291
303
|
*
|
|
292
304
|
* @param {Request} request
|
|
293
305
|
* @returns {Promise<Object>}
|
|
294
306
|
*/
|
|
295
|
-
updateProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
307
|
+
updateProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
|
|
296
308
|
/**
|
|
297
309
|
* Updates an existing role
|
|
298
310
|
*
|
|
@@ -306,7 +318,7 @@ export default class SecurityController extends NativeController {
|
|
|
306
318
|
* @param {Request} request
|
|
307
319
|
* @returns {Promise<Object>}
|
|
308
320
|
*/
|
|
309
|
-
createFirstAdmin(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
321
|
+
createFirstAdmin(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
310
322
|
/**
|
|
311
323
|
* Restricted rights are applied to the `anonymous` and `default` roles
|
|
312
324
|
* (by default, these roles don't have any restriction).
|
|
@@ -321,21 +333,21 @@ export default class SecurityController extends NativeController {
|
|
|
321
333
|
* @param {Request} request
|
|
322
334
|
* @returns {Promise<Object>}
|
|
323
335
|
*/
|
|
324
|
-
mDeleteProfiles(request:
|
|
336
|
+
mDeleteProfiles(request: KuzzleRequest): Promise<string[]>;
|
|
325
337
|
/**
|
|
326
338
|
* Deletes multiple roles
|
|
327
339
|
*
|
|
328
340
|
* @param {Request} request
|
|
329
341
|
* @returns {Promise<Object>}
|
|
330
342
|
*/
|
|
331
|
-
mDeleteRoles(request:
|
|
343
|
+
mDeleteRoles(request: KuzzleRequest): Promise<string[]>;
|
|
332
344
|
/**
|
|
333
345
|
* Deletes multiple users
|
|
334
346
|
*
|
|
335
347
|
* @param {Request} request
|
|
336
348
|
* @returns {Promise<Object>}
|
|
337
349
|
*/
|
|
338
|
-
mDeleteUsers(request:
|
|
350
|
+
mDeleteUsers(request: KuzzleRequest): Promise<string[]>;
|
|
339
351
|
/**
|
|
340
352
|
* Scroll a paginated users search result
|
|
341
353
|
*
|
|
@@ -395,24 +407,24 @@ export default class SecurityController extends NativeController {
|
|
|
395
407
|
/**
|
|
396
408
|
* @returns {Promise<Object>}
|
|
397
409
|
*/
|
|
398
|
-
getAllCredentialFields(): Promise<
|
|
410
|
+
getAllCredentialFields(): Promise<JSONObject>;
|
|
399
411
|
/**
|
|
400
412
|
* @param {Request} request
|
|
401
413
|
* @returns {Promise.<null>}
|
|
402
414
|
*/
|
|
403
|
-
revokeTokens(request: KuzzleRequest): Promise<
|
|
415
|
+
revokeTokens(request: KuzzleRequest): Promise<null>;
|
|
404
416
|
/**
|
|
405
417
|
* @param {string.<profile|role|user>} type
|
|
406
418
|
* @param {Request} request
|
|
407
419
|
* @returns {Promise.<Array.<string>>}
|
|
408
420
|
* @private
|
|
409
421
|
*/
|
|
410
|
-
_mDelete(type: string, request: KuzzleRequest): Promise<
|
|
422
|
+
_mDelete(type: string, request: KuzzleRequest): Promise<string[]>;
|
|
411
423
|
/**
|
|
412
424
|
* @returns {Promise}
|
|
413
425
|
* @private
|
|
414
426
|
*/
|
|
415
|
-
_changeUser(request: KuzzleRequest, id: string, content: any, userId: string | null, profileIds: string[] | null): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
427
|
+
_changeUser(request: KuzzleRequest, id: string, content: any, userId: string | null, profileIds: string[] | null): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
416
428
|
/**
|
|
417
429
|
* @param {Request} request
|
|
418
430
|
* @returns {Promise}
|
|
@@ -420,7 +432,7 @@ export default class SecurityController extends NativeController {
|
|
|
420
432
|
*/
|
|
421
433
|
_persistUser(request: KuzzleRequest, profileIds: string[], content: any, { humanReadableId }?: {
|
|
422
434
|
humanReadableId?: boolean;
|
|
423
|
-
}): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<
|
|
435
|
+
}): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
|
|
424
436
|
/**
|
|
425
437
|
* Checks if a search result can exceeds the server configured limit
|
|
426
438
|
* @param {Request} request
|
|
@@ -429,3 +441,4 @@ export default class SecurityController extends NativeController {
|
|
|
429
441
|
*/
|
|
430
442
|
_getSearchPageSize(request: KuzzleRequest): number;
|
|
431
443
|
}
|
|
444
|
+
export = SecurityController;
|
|
@@ -25,7 +25,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
28
|
/*
|
|
30
29
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
31
30
|
* to power modern apps
|
|
@@ -46,6 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
46
45
|
* See the License for the specific language governing permissions and
|
|
47
46
|
* limitations under the License.
|
|
48
47
|
*/
|
|
48
|
+
const node_util_1 = require("node:util");
|
|
49
49
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
50
50
|
const lodash_1 = require("lodash");
|
|
51
51
|
const uuid_1 = require("uuid");
|
|
@@ -57,6 +57,13 @@ const apiKey_1 = __importDefault(require("../../model/storage/apiKey"));
|
|
|
57
57
|
const kerror = __importStar(require("../../kerror"));
|
|
58
58
|
const safeObject_1 = require("../../util/safeObject");
|
|
59
59
|
const name_generator_1 = require("../../util/name-generator");
|
|
60
|
+
/**
|
|
61
|
+
* Whatever was thrown, as an `Error`. `catch` answers `unknown`, and the
|
|
62
|
+
* rollback path below reads a message off everything it collected.
|
|
63
|
+
*/
|
|
64
|
+
function causeOf(thrown) {
|
|
65
|
+
return thrown instanceof Error ? thrown : new Error((0, node_util_1.inspect)(thrown));
|
|
66
|
+
}
|
|
60
67
|
/**
|
|
61
68
|
* @class SecurityController
|
|
62
69
|
*/
|
|
@@ -198,16 +205,18 @@ class SecurityController extends baseController_1.NativeController {
|
|
|
198
205
|
};
|
|
199
206
|
}
|
|
200
207
|
/**
|
|
201
|
-
* Deletes an user API key
|
|
208
|
+
* Deletes an user API key.
|
|
209
|
+
*
|
|
210
|
+
* The API key to delete can be identified either by its `_id`, by the
|
|
211
|
+
* clear-text `key` itself, or by the key's `fingerprint`.
|
|
202
212
|
*/
|
|
203
213
|
async deleteApiKey(request) {
|
|
204
214
|
const userId = request.getString("userId");
|
|
205
|
-
const apiKeyId = request.getId();
|
|
206
215
|
const refresh = request.getRefresh("wait_for");
|
|
207
|
-
const apiKey = await apiKey_1.default.
|
|
216
|
+
const apiKey = await apiKey_1.default.loadFromRequest(userId, request);
|
|
208
217
|
await apiKey.delete({ refresh });
|
|
209
218
|
return {
|
|
210
|
-
_id:
|
|
219
|
+
_id: apiKey._id,
|
|
211
220
|
};
|
|
212
221
|
}
|
|
213
222
|
/**
|
|
@@ -526,11 +535,12 @@ class SecurityController extends baseController_1.NativeController {
|
|
|
526
535
|
ids = request.getBodyArray("ids");
|
|
527
536
|
}
|
|
528
537
|
else {
|
|
529
|
-
|
|
530
|
-
ids = request.getArrayLegacy("ids");
|
|
538
|
+
ids = request.getArrayOrCsv("ids");
|
|
531
539
|
}
|
|
532
540
|
const users = await this.ask("core:security:user:mGet", ids);
|
|
533
|
-
return {
|
|
541
|
+
return {
|
|
542
|
+
hits: users.map((user) => formatProcessing_1.default.serializeUser(user)),
|
|
543
|
+
};
|
|
534
544
|
}
|
|
535
545
|
/**
|
|
536
546
|
* Given a profile id, returns the matching profile's rights as an array.
|
|
@@ -707,7 +717,11 @@ class SecurityController extends baseController_1.NativeController {
|
|
|
707
717
|
return await this._changeUser(request, id, content, userId, profileIds);
|
|
708
718
|
}
|
|
709
719
|
catch (error) {
|
|
710
|
-
|
|
720
|
+
// Duck-typed on the id, as it was: `core:security:user:get` rejects
|
|
721
|
+
// with a KuzzleError, and this branch reads nothing else off it.
|
|
722
|
+
if (error instanceof Error &&
|
|
723
|
+
"id" in error &&
|
|
724
|
+
error.id === "security.user.not_found") {
|
|
711
725
|
const creatingContent = {
|
|
712
726
|
...defaultValues,
|
|
713
727
|
...content, // Order important, content erase default duplicates
|
|
@@ -806,8 +820,12 @@ class SecurityController extends baseController_1.NativeController {
|
|
|
806
820
|
*/
|
|
807
821
|
async restrictDefaultRights(request) {
|
|
808
822
|
const userId = request.getKuid();
|
|
809
|
-
|
|
810
|
-
|
|
823
|
+
const standard = global.kuzzle.config.security.standard;
|
|
824
|
+
for (const [type, defaults] of [
|
|
825
|
+
["role", standard.roles],
|
|
826
|
+
["profile", standard.profiles],
|
|
827
|
+
]) {
|
|
828
|
+
await bluebird_1.default.map(Object.entries(defaults), ([name, value]) => this.ask(`core:security:${type}:createOrReplace`, name, value, {
|
|
811
829
|
refresh: "wait_for",
|
|
812
830
|
userId,
|
|
813
831
|
}));
|
|
@@ -1047,7 +1065,7 @@ class SecurityController extends baseController_1.NativeController {
|
|
|
1047
1065
|
const generator = humanReadableId
|
|
1048
1066
|
? () => name_generator_1.NameGenerator.generateRandomName({ prefix: "kuid" })
|
|
1049
1067
|
: () => "kuid-" + (0, uuid_1.v4)();
|
|
1050
|
-
let id
|
|
1068
|
+
let id;
|
|
1051
1069
|
let alreadyExists = false;
|
|
1052
1070
|
// Early checks before the user is created
|
|
1053
1071
|
do {
|
|
@@ -1120,20 +1138,18 @@ class SecurityController extends baseController_1.NativeController {
|
|
|
1120
1138
|
catch (e) {
|
|
1121
1139
|
this.logger.error(`User rollback error: ${e}`);
|
|
1122
1140
|
}
|
|
1141
|
+
const cause = causeOf(creationFailure.error);
|
|
1123
1142
|
if (deletionErrors.length > 0) {
|
|
1124
1143
|
// 2 errors > we
|
|
1125
|
-
throw kerror.get("plugin", "runtime", "unexpected_error", [
|
|
1126
|
-
creationFailure.error.message,
|
|
1127
|
-
...deletionErrors.map((e) => e.message),
|
|
1128
|
-
].join("\n"));
|
|
1144
|
+
throw kerror.get("plugin", "runtime", "unexpected_error", [cause.message, ...deletionErrors.map((e) => causeOf(e).message)].join("\n"));
|
|
1129
1145
|
}
|
|
1130
1146
|
if (creationFailure.error instanceof errors_1.KuzzleError) {
|
|
1131
1147
|
throw creationFailure.error;
|
|
1132
1148
|
}
|
|
1133
1149
|
if (creationFailure.validation) {
|
|
1134
|
-
throw kerror.getFrom(
|
|
1150
|
+
throw kerror.getFrom(cause, "security", "credentials", "rejected", cause.message);
|
|
1135
1151
|
}
|
|
1136
|
-
throw kerror.getFrom(
|
|
1152
|
+
throw kerror.getFrom(cause, "plugin", "runtime", "unexpected_error", cause.message);
|
|
1137
1153
|
}
|
|
1138
1154
|
/**
|
|
1139
1155
|
* Checks if a search result can exceeds the server configured limit
|
|
@@ -1147,5 +1163,5 @@ class SecurityController extends baseController_1.NativeController {
|
|
|
1147
1163
|
return size;
|
|
1148
1164
|
}
|
|
1149
1165
|
}
|
|
1150
|
-
exports
|
|
1166
|
+
module.exports = SecurityController;
|
|
1151
1167
|
//# sourceMappingURL=securityController.js.map
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as os from "node:os";
|
|
3
|
+
import type { ApiRoute } from "../../types/ApiRoute";
|
|
4
|
+
import type { KuzzleRequest } from "../request";
|
|
5
|
+
import { NativeController } from "./baseController";
|
|
6
|
+
interface ApiActionDefinition {
|
|
7
|
+
action: string;
|
|
8
|
+
controller: string;
|
|
9
|
+
http?: Array<{
|
|
10
|
+
path: string;
|
|
11
|
+
url: string;
|
|
12
|
+
verb: string;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
2
15
|
/**
|
|
3
16
|
* @class ServerController
|
|
4
17
|
*/
|
|
5
18
|
declare class ServerController extends NativeController {
|
|
19
|
+
/** Filled by `init()`, from what the two services report. */
|
|
20
|
+
private readonly _info;
|
|
6
21
|
constructor();
|
|
7
|
-
_info: {
|
|
8
|
-
elasticsearch: any;
|
|
9
|
-
redis: any;
|
|
10
|
-
};
|
|
11
22
|
/**
|
|
12
23
|
* Init ServerController
|
|
13
24
|
* Used to perform asynchronous initialization safely: the funnel will wait
|
|
@@ -15,7 +26,7 @@ declare class ServerController extends NativeController {
|
|
|
15
26
|
*
|
|
16
27
|
* @returns {Promise}
|
|
17
28
|
*/
|
|
18
|
-
init(): Promise<
|
|
29
|
+
init(): Promise<void>;
|
|
19
30
|
/**
|
|
20
31
|
* Returns the statistics frame from a date
|
|
21
32
|
*
|
|
@@ -24,7 +35,17 @@ declare class ServerController extends NativeController {
|
|
|
24
35
|
*
|
|
25
36
|
* @deprecated
|
|
26
37
|
*/
|
|
27
|
-
getStats(request:
|
|
38
|
+
getStats(request: KuzzleRequest): Promise<{
|
|
39
|
+
hits: ({
|
|
40
|
+
completedRequests: Record<string, number>;
|
|
41
|
+
connections: Record<string, number>;
|
|
42
|
+
failedRequests: Record<string, number>;
|
|
43
|
+
ongoingRequests: Record<string, number>;
|
|
44
|
+
} & {
|
|
45
|
+
timestamp: number;
|
|
46
|
+
})[];
|
|
47
|
+
total: number;
|
|
48
|
+
}>;
|
|
28
49
|
/**
|
|
29
50
|
* Returns the last statistics frame
|
|
30
51
|
*
|
|
@@ -32,7 +53,21 @@ declare class ServerController extends NativeController {
|
|
|
32
53
|
*
|
|
33
54
|
* @deprecated
|
|
34
55
|
*/
|
|
35
|
-
getLastStats(): Promise<
|
|
56
|
+
getLastStats(): Promise<({
|
|
57
|
+
completedRequests: Record<string, number>;
|
|
58
|
+
connections: Record<string, number>;
|
|
59
|
+
failedRequests: Record<string, number>;
|
|
60
|
+
ongoingRequests: Record<string, number>;
|
|
61
|
+
} & {
|
|
62
|
+
timestamp: number;
|
|
63
|
+
}) | ({
|
|
64
|
+
completedRequests: Map<string, number>;
|
|
65
|
+
connections: Map<string, number>;
|
|
66
|
+
failedRequests: Map<string, number>;
|
|
67
|
+
ongoingRequests: Map<string, number>;
|
|
68
|
+
} & {
|
|
69
|
+
timestamp: number;
|
|
70
|
+
})>;
|
|
36
71
|
/**
|
|
37
72
|
* Returns all stored statistics frames
|
|
38
73
|
*
|
|
@@ -40,7 +75,17 @@ declare class ServerController extends NativeController {
|
|
|
40
75
|
*
|
|
41
76
|
* @deprecated
|
|
42
77
|
*/
|
|
43
|
-
getAllStats(): Promise<
|
|
78
|
+
getAllStats(): Promise<{
|
|
79
|
+
hits: ({
|
|
80
|
+
completedRequests: Record<string, number>;
|
|
81
|
+
connections: Record<string, number>;
|
|
82
|
+
failedRequests: Record<string, number>;
|
|
83
|
+
ongoingRequests: Record<string, number>;
|
|
84
|
+
} & {
|
|
85
|
+
timestamp: number;
|
|
86
|
+
})[];
|
|
87
|
+
total: number;
|
|
88
|
+
}>;
|
|
44
89
|
/**
|
|
45
90
|
* Returns the Kuzzle configuration
|
|
46
91
|
*
|
|
@@ -51,32 +96,82 @@ declare class ServerController extends NativeController {
|
|
|
51
96
|
* Returns the Kuzzle capabilities
|
|
52
97
|
* @returns {Promise<Object>}
|
|
53
98
|
*/
|
|
54
|
-
capabilities(): Promise<
|
|
99
|
+
capabilities(): Promise<{
|
|
100
|
+
limits: any;
|
|
101
|
+
plugins: Record<string, {
|
|
102
|
+
version: string;
|
|
103
|
+
}>;
|
|
104
|
+
routes: {
|
|
105
|
+
[x: string]: Record<string, ApiActionDefinition>;
|
|
106
|
+
};
|
|
107
|
+
services: Record<string, {
|
|
108
|
+
backend: string;
|
|
109
|
+
version: string;
|
|
110
|
+
}>;
|
|
111
|
+
version: any;
|
|
112
|
+
}>;
|
|
55
113
|
/**
|
|
56
114
|
* Checks if an admin user Exists
|
|
57
115
|
*
|
|
58
116
|
* @returns {Promise<Object>}
|
|
59
117
|
*/
|
|
60
|
-
adminExists(): Promise<
|
|
118
|
+
adminExists(): Promise<{
|
|
119
|
+
exists: any;
|
|
120
|
+
}>;
|
|
61
121
|
/**
|
|
62
122
|
* @returns {Promise<Object>}
|
|
63
123
|
*/
|
|
64
|
-
now(): Promise<
|
|
124
|
+
now(): Promise<{
|
|
125
|
+
now: number;
|
|
126
|
+
}>;
|
|
65
127
|
/**
|
|
66
128
|
* @returns {Promise<Object>}
|
|
67
129
|
*/
|
|
68
|
-
healthCheck(request:
|
|
130
|
+
healthCheck(request: KuzzleRequest): Promise<{
|
|
131
|
+
services: Record<string, string>;
|
|
132
|
+
status: string;
|
|
133
|
+
}>;
|
|
69
134
|
/**
|
|
70
135
|
* @returns {Promise<Object>}
|
|
71
136
|
*/
|
|
72
|
-
info(): Promise<
|
|
73
|
-
|
|
74
|
-
|
|
137
|
+
info(): Promise<{
|
|
138
|
+
serverInfo: {
|
|
139
|
+
kuzzle: {
|
|
140
|
+
api: {
|
|
141
|
+
routes: {};
|
|
142
|
+
};
|
|
143
|
+
application: {};
|
|
144
|
+
memoryUsed: number;
|
|
145
|
+
nodeVersion: string;
|
|
146
|
+
plugins: {};
|
|
147
|
+
system: {
|
|
148
|
+
cpus: os.CpuInfo[];
|
|
149
|
+
memory: {
|
|
150
|
+
free: number;
|
|
151
|
+
total: number;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
uptime: string;
|
|
155
|
+
version: string | undefined;
|
|
156
|
+
};
|
|
157
|
+
services: {};
|
|
158
|
+
};
|
|
159
|
+
}>;
|
|
160
|
+
publicApi(): Promise<{
|
|
161
|
+
[x: string]: Record<string, ApiActionDefinition>;
|
|
162
|
+
}>;
|
|
163
|
+
openapi(request: KuzzleRequest): Promise<any>;
|
|
75
164
|
/**
|
|
76
165
|
* Fetches and returns Kuzzle core metrics
|
|
77
166
|
* @returns {Promise<Object>}
|
|
78
167
|
*/
|
|
79
|
-
metrics(): Promise<
|
|
80
|
-
|
|
168
|
+
metrics(): Promise<{
|
|
169
|
+
api: any;
|
|
170
|
+
network: any;
|
|
171
|
+
realtime: any;
|
|
172
|
+
}>;
|
|
173
|
+
_buildApiDefinition(controllers: Map<string, {
|
|
174
|
+
_actions: Iterable<string>;
|
|
175
|
+
}>, httpRoutes: ApiRoute[]): Record<string, Record<string, ApiActionDefinition>>;
|
|
81
176
|
}
|
|
82
|
-
|
|
177
|
+
export = ServerController;
|