kuzzle 2.49.1 → 2.50.0-beta.3
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/check-node-version.js +11 -0
- package/dist/bin/copy-protobuf.js +17 -0
- package/dist/lib/api/controllers/adminController.d.ts +51 -0
- package/dist/lib/api/controllers/adminController.js +191 -0
- package/{lib → dist/lib}/api/controllers/authController.d.ts +20 -40
- package/{lib → dist/lib}/api/controllers/authController.js +23 -24
- package/dist/lib/api/controllers/bulkController.d.ts +46 -0
- package/dist/lib/api/controllers/bulkController.js +132 -0
- package/dist/lib/api/controllers/clusterController.d.ts +6 -0
- package/{lib → dist/lib}/api/controllers/clusterController.js +7 -11
- package/dist/lib/api/controllers/collectionController.d.ts +136 -0
- package/dist/lib/api/controllers/collectionController.js +356 -0
- package/dist/lib/api/controllers/documentController.d.ts +181 -0
- package/dist/lib/api/controllers/documentController.js +768 -0
- package/dist/lib/api/controllers/index.d.ts +12 -0
- package/{lib → dist/lib}/api/controllers/index.js +13 -14
- package/dist/lib/api/controllers/indexController.d.ts +65 -0
- package/dist/lib/api/controllers/indexController.js +139 -0
- package/dist/lib/api/controllers/memoryStorageController.d.ts +8 -0
- package/dist/lib/api/controllers/memoryStorageController.js +867 -0
- package/dist/lib/api/controllers/realtimeController.d.ts +47 -0
- package/dist/lib/api/controllers/realtimeController.js +128 -0
- package/dist/lib/api/controllers/securityController.d.ts +423 -0
- package/dist/lib/api/controllers/securityController.js +1139 -0
- package/dist/lib/api/controllers/serverController.d.ts +82 -0
- package/dist/lib/api/controllers/serverController.js +321 -0
- package/dist/lib/api/documentExtractor.d.ts +9 -0
- package/dist/lib/api/documentExtractor.js +274 -0
- package/dist/lib/api/funnel.d.ts +183 -0
- package/dist/lib/api/funnel.js +821 -0
- package/dist/lib/api/httpRoutes.d.ts +17 -0
- package/dist/lib/api/httpRoutes.js +1496 -0
- package/dist/lib/api/rateLimiter.d.ts +18 -0
- package/dist/lib/api/rateLimiter.js +74 -0
- package/{lib → dist/lib}/api/request/kuzzleRequest.d.ts +2 -2
- package/{lib → dist/lib}/api/request/requestContext.d.ts +2 -1
- package/dist/lib/cluster/command.d.ts +73 -0
- package/dist/lib/cluster/command.js +236 -0
- package/dist/lib/cluster/index.d.ts +2 -0
- package/{lib → dist/lib}/cluster/index.js +1 -2
- package/dist/lib/cluster/node.d.ts +278 -0
- package/dist/lib/cluster/node.js +876 -0
- package/dist/lib/cluster/publisher.d.ts +188 -0
- package/dist/lib/cluster/publisher.js +347 -0
- package/dist/lib/cluster/subscriber.d.ts +269 -0
- package/dist/lib/cluster/subscriber.js +555 -0
- package/dist/lib/cluster/workers/IDCardRenewer.d.ts +13 -0
- package/dist/lib/cluster/workers/IDCardRenewer.js +120 -0
- package/{lib → dist/lib}/config/documentEventAliases.d.ts +1 -2
- package/dist/lib/config/index.d.ts +5 -0
- package/dist/lib/config/index.js +244 -0
- package/dist/lib/config/sdkCompatibility.json +9 -0
- package/dist/lib/core/auth/formatProcessing.d.ts +30 -0
- package/dist/lib/core/auth/formatProcessing.js +55 -0
- package/dist/lib/core/auth/passportResponse.d.ts +15 -0
- package/{lib → dist/lib}/core/auth/passportResponse.js +24 -30
- package/dist/lib/core/auth/passportWrapper.d.ts +28 -0
- package/dist/lib/core/auth/passportWrapper.js +126 -0
- package/{lib → dist/lib}/core/backend/backendConfig.js +2 -2
- package/{lib → dist/lib}/core/backend/backendErrors.js +9 -12
- package/dist/lib/core/cache/cacheEngine.d.ts +15 -0
- package/dist/lib/core/cache/cacheEngine.js +205 -0
- package/dist/lib/core/network/accessLogger.d.ts +29 -0
- package/dist/lib/core/network/accessLogger.js +250 -0
- package/dist/lib/core/network/clientConnection.d.ts +15 -0
- package/{lib → dist/lib}/core/network/clientConnection.js +17 -24
- package/dist/lib/core/network/context.d.ts +42 -0
- package/dist/lib/core/network/context.js +57 -0
- package/dist/lib/core/network/entryPoint.d.ts +62 -0
- package/dist/lib/core/network/entryPoint.js +261 -0
- package/dist/lib/core/network/httpRouter/index.d.ts +85 -0
- package/dist/lib/core/network/httpRouter/index.js +258 -0
- package/dist/lib/core/network/httpRouter/routeHandler.d.ts +46 -0
- package/dist/lib/core/network/httpRouter/routeHandler.js +101 -0
- package/dist/lib/core/network/httpRouter/routePart.d.ts +35 -0
- package/dist/lib/core/network/httpRouter/routePart.js +117 -0
- package/dist/lib/core/network/protocolManifest.d.ts +6 -0
- package/{lib → dist/lib}/core/network/protocolManifest.js +5 -9
- package/dist/lib/core/network/protocols/httpMessage.d.ts +22 -0
- package/dist/lib/core/network/protocols/httpMessage.js +62 -0
- package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +171 -0
- package/dist/lib/core/network/protocols/httpwsProtocol.js +921 -0
- package/dist/lib/core/network/protocols/internalProtocol.d.ts +27 -0
- package/dist/lib/core/network/protocols/internalProtocol.js +82 -0
- package/dist/lib/core/network/protocols/mqttProtocol.d.ts +39 -0
- package/dist/lib/core/network/protocols/mqttProtocol.js +219 -0
- package/dist/lib/core/network/protocols/protocol.d.ts +26 -0
- package/dist/lib/core/network/protocols/protocol.js +74 -0
- package/dist/lib/core/network/router.d.ts +49 -0
- package/dist/lib/core/network/router.js +193 -0
- package/dist/lib/core/plugin/plugin.d.ts +56 -0
- package/dist/lib/core/plugin/plugin.js +282 -0
- package/{lib → dist/lib}/core/plugin/pluginContext.js +2 -2
- package/dist/lib/core/plugin/pluginManifest.d.ts +5 -0
- package/{lib → dist/lib}/core/plugin/pluginManifest.js +16 -27
- package/dist/lib/core/plugin/pluginRepository.d.ts +53 -0
- package/dist/lib/core/plugin/pluginRepository.js +112 -0
- package/dist/lib/core/plugin/pluginsManager.d.ts +190 -0
- package/dist/lib/core/plugin/pluginsManager.js +817 -0
- package/dist/lib/core/plugin/privilegedContext.d.ts +14 -0
- package/{lib → dist/lib}/core/plugin/privilegedContext.js +10 -14
- package/dist/lib/core/realtime/actionEnum.d.ts +25 -0
- package/{lib → dist/lib}/core/realtime/actionEnum.js +7 -10
- package/dist/lib/core/realtime/index.d.ts +8 -0
- package/{lib → dist/lib}/core/realtime/index.js +9 -13
- package/dist/lib/core/realtime/notification/document.d.ts +34 -0
- package/dist/lib/core/realtime/notification/document.js +98 -0
- package/dist/lib/core/realtime/notification/index.d.ts +3 -0
- package/{lib → dist/lib}/core/realtime/notification/index.js +4 -5
- package/dist/lib/core/realtime/notification/server.d.ts +17 -0
- package/{lib → dist/lib}/core/realtime/notification/server.js +8 -10
- package/dist/lib/core/realtime/notification/user.d.ts +29 -0
- package/dist/lib/core/realtime/notification/user.js +66 -0
- package/dist/lib/core/realtime/notifier.d.ts +171 -0
- package/dist/lib/core/realtime/notifier.js +405 -0
- package/dist/lib/core/security/index.d.ts +14 -0
- package/{lib → dist/lib}/core/security/index.js +15 -19
- package/dist/lib/core/security/roleRepository.d.ts +143 -0
- package/dist/lib/core/security/roleRepository.js +445 -0
- package/dist/lib/core/security/securityLoader.d.ts +24 -0
- package/dist/lib/core/security/securityLoader.js +125 -0
- package/{lib → dist/lib}/core/security/tokenRepository.js +1 -1
- package/dist/lib/core/security/userRepository.d.ts +81 -0
- package/dist/lib/core/security/userRepository.js +346 -0
- package/dist/lib/core/shared/abstractManifest.d.ts +27 -0
- package/dist/lib/core/shared/abstractManifest.js +85 -0
- package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +7 -0
- package/dist/lib/core/shared/sdk/impersonatedSdk.js +80 -0
- package/{lib → dist/lib}/core/shared/store.d.ts +2 -2
- package/dist/lib/core/statistics/statistics.d.ts +94 -0
- package/dist/lib/core/statistics/statistics.js +287 -0
- package/dist/lib/core/storage/clientAdapter.d.ts +62 -0
- package/dist/lib/core/storage/clientAdapter.js +756 -0
- package/dist/lib/core/storage/storageEngine.d.ts +13 -0
- package/dist/lib/core/storage/storageEngine.js +52 -0
- package/dist/lib/core/validation/baseType.d.ts +35 -0
- package/dist/lib/core/validation/baseType.js +70 -0
- package/dist/lib/core/validation/types/anything.d.ts +10 -0
- package/{lib → dist/lib}/core/validation/types/anything.js +7 -10
- package/dist/lib/core/validation/types/boolean.d.ts +16 -0
- package/{lib → dist/lib}/core/validation/types/boolean.js +18 -23
- package/dist/lib/core/validation/types/date.d.ts +17 -0
- package/dist/lib/core/validation/types/date.js +215 -0
- package/dist/lib/core/validation/types/email.d.ts +17 -0
- package/dist/lib/core/validation/types/email.js +80 -0
- package/dist/lib/core/validation/types/enum.d.ts +17 -0
- package/dist/lib/core/validation/types/enum.js +70 -0
- package/dist/lib/core/validation/types/geoPoint.d.ts +17 -0
- package/{lib → dist/lib}/core/validation/types/geoPoint.js +19 -24
- package/dist/lib/core/validation/types/geoShape.d.ts +31 -0
- package/dist/lib/core/validation/types/geoShape.js +280 -0
- package/dist/lib/core/validation/types/integer.d.ts +7 -0
- package/{lib → dist/lib}/core/validation/types/integer.js +21 -27
- package/dist/lib/core/validation/types/ipAddress.d.ts +17 -0
- package/dist/lib/core/validation/types/ipAddress.js +73 -0
- package/dist/lib/core/validation/types/numeric.d.ts +17 -0
- package/dist/lib/core/validation/types/numeric.js +84 -0
- package/dist/lib/core/validation/types/object.d.ts +24 -0
- package/dist/lib/core/validation/types/object.js +74 -0
- package/dist/lib/core/validation/types/string.d.ts +17 -0
- package/dist/lib/core/validation/types/string.js +85 -0
- package/dist/lib/core/validation/types/url.d.ts +17 -0
- package/dist/lib/core/validation/types/url.js +73 -0
- package/dist/lib/core/validation/validation.d.ts +113 -0
- package/dist/lib/core/validation/validation.js +692 -0
- package/dist/lib/kerror/codes/0-core.json +194 -0
- package/dist/lib/kerror/codes/1-services.json +351 -0
- package/dist/lib/kerror/codes/2-api.json +195 -0
- package/dist/lib/kerror/codes/3-network.json +151 -0
- package/dist/lib/kerror/codes/4-plugin.json +498 -0
- package/dist/lib/kerror/codes/5-validation.json +158 -0
- package/dist/lib/kerror/codes/6-protocol.json +28 -0
- package/dist/lib/kerror/codes/7-security.json +283 -0
- package/dist/lib/kerror/codes/8-cluster.json +16 -0
- package/dist/lib/kerror/codes/index.d.ts +24 -0
- package/dist/lib/kerror/codes/index.js +140 -0
- package/{lib → dist/lib}/kerror/index.d.ts +5 -5
- package/{lib → dist/lib}/kuzzle/Logger.d.ts +6 -0
- package/{lib → dist/lib}/kuzzle/Logger.js +26 -5
- package/dist/lib/kuzzle/dumpGenerator.d.ts +14 -0
- package/dist/lib/kuzzle/dumpGenerator.js +180 -0
- package/dist/lib/kuzzle/event/pipeRunner.d.ts +30 -0
- package/dist/lib/kuzzle/event/pipeRunner.js +119 -0
- package/dist/lib/kuzzle/event/waterfall.d.ts +2 -0
- package/dist/lib/kuzzle/event/waterfall.js +90 -0
- package/dist/lib/kuzzle/internalIndexHandler.d.ts +186 -0
- package/dist/lib/kuzzle/internalIndexHandler.js +174 -0
- package/{lib → dist/lib}/kuzzle/kuzzle.d.ts +6 -7
- package/{lib → dist/lib}/kuzzle/kuzzle.js +5 -2
- package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +20 -0
- package/{lib → dist/lib}/kuzzle/kuzzleStateEnum.js +5 -8
- package/dist/lib/kuzzle/vault.d.ts +2 -0
- package/dist/lib/kuzzle/vault.js +63 -0
- package/dist/lib/model/security/rights.d.ts +8 -0
- package/{lib → dist/lib}/model/security/rights.js +4 -8
- package/{lib → dist/lib}/model/security/role.d.ts +1 -1
- package/{lib → dist/lib}/model/security/user.d.ts +1 -0
- package/dist/lib/model/storage/apiKey.d.ts +49 -0
- package/dist/lib/model/storage/apiKey.js +126 -0
- package/dist/lib/model/storage/baseModel.d.ts +100 -0
- package/dist/lib/model/storage/baseModel.js +211 -0
- package/dist/lib/service/cache/redis.d.ts +74 -0
- package/dist/lib/service/cache/redis.js +237 -0
- package/dist/lib/service/service.d.ts +30 -0
- package/dist/lib/service/service.js +74 -0
- package/{lib → dist/lib}/service/storage/7/elasticsearch.d.ts +2 -2
- package/{lib → dist/lib}/service/storage/7/elasticsearch.js +23 -25
- package/dist/lib/service/storage/7/esWrapper.d.ts +19 -0
- package/dist/lib/service/storage/7/esWrapper.js +245 -0
- package/{lib → dist/lib}/service/storage/8/elasticsearch.js +23 -25
- package/dist/lib/service/storage/8/esWrapper.d.ts +19 -0
- package/dist/lib/service/storage/8/esWrapper.js +245 -0
- package/{lib → dist/lib}/types/Plugin.d.ts +1 -1
- package/{lib/types → dist/lib/types/controllers}/Controller.d.ts +2 -2
- package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.d.ts +1 -1
- package/dist/lib/types/controllers/adminControlller.type.d.ts +5 -0
- package/dist/lib/types/controllers/adminControlller.type.js +3 -0
- package/dist/lib/types/controllers/authController.type.d.ts +5 -0
- package/dist/lib/types/controllers/authController.type.js +3 -0
- package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -0
- package/dist/lib/types/core/auth/formatProcessing.type.js +3 -0
- package/{lib → dist/lib}/types/index.d.ts +3 -3
- package/{lib → dist/lib}/types/index.js +3 -3
- package/dist/lib/util/assertType.d.ts +41 -0
- package/{lib → dist/lib}/util/assertType.js +38 -56
- package/dist/lib/util/asyncStore.d.ts +38 -0
- package/dist/lib/util/asyncStore.js +70 -0
- package/dist/lib/util/bytes.d.ts +2 -0
- package/dist/lib/util/bytes.js +33 -0
- package/dist/lib/util/debug.d.ts +2 -0
- package/{lib → dist/lib}/util/debug.js +15 -23
- package/dist/lib/util/deprecate.d.ts +1 -0
- package/dist/lib/util/deprecate.js +64 -0
- package/dist/lib/util/didYouMean.d.ts +2 -0
- package/{lib → dist/lib}/util/didYouMean.js +9 -15
- package/dist/lib/util/extractFields.d.ts +17 -0
- package/{lib → dist/lib}/util/extractFields.js +18 -32
- package/dist/lib/util/memoize.d.ts +7 -0
- package/{lib → dist/lib}/util/memoize.js +14 -21
- package/dist/lib/util/promback.d.ts +13 -0
- package/dist/lib/util/promback.js +60 -0
- package/dist/lib/util/requestAssertions.d.ts +10 -0
- package/dist/lib/util/requestAssertions.js +143 -0
- package/dist/lib/util/safeObject.d.ts +3 -0
- package/{lib → dist/lib}/util/safeObject.js +7 -13
- package/dist/lib/util/stackTrace.d.ts +19 -0
- package/{lib → dist/lib}/util/stackTrace.js +35 -41
- package/dist/lib/util/wildcard.d.ts +1 -0
- package/{lib → dist/lib}/util/wildcard.js +21 -30
- package/dist/package.json +120 -0
- package/package.json +45 -58
- package/bin/start-kuzzle-server +0 -126
- package/check-node-version.js +0 -17
- package/lib/api/controllers/adminController.js +0 -229
- package/lib/api/controllers/bulkController.js +0 -210
- package/lib/api/controllers/collectionController.js +0 -502
- package/lib/api/controllers/documentController.js +0 -1156
- package/lib/api/controllers/indexController.js +0 -179
- package/lib/api/controllers/memoryStorageController.js +0 -1023
- package/lib/api/controllers/realtimeController.js +0 -155
- package/lib/api/controllers/securityController.js +0 -1571
- package/lib/api/controllers/serverController.js +0 -381
- package/lib/api/documentExtractor.js +0 -309
- package/lib/api/funnel.js +0 -1143
- package/lib/api/httpRoutes.js +0 -1547
- package/lib/api/rateLimiter.js +0 -87
- package/lib/cluster/command.js +0 -284
- package/lib/cluster/node.js +0 -1203
- package/lib/cluster/publisher.js +0 -386
- package/lib/cluster/subscriber.js +0 -776
- package/lib/cluster/workers/IDCardRenewer.js +0 -144
- package/lib/config/index.js +0 -351
- package/lib/config/sdkCompatibility.json +0 -9
- package/lib/core/auth/formatProcessing.js +0 -66
- package/lib/core/auth/passportWrapper.js +0 -126
- package/lib/core/cache/cacheEngine.js +0 -278
- package/lib/core/network/accessLogger.js +0 -322
- package/lib/core/network/context.js +0 -80
- package/lib/core/network/entryPoint.js +0 -358
- package/lib/core/network/httpRouter/index.js +0 -316
- package/lib/core/network/httpRouter/routeHandler.js +0 -111
- package/lib/core/network/httpRouter/routePart.js +0 -147
- package/lib/core/network/protocols/httpMessage.js +0 -69
- package/lib/core/network/protocols/httpwsProtocol.js +0 -1254
- package/lib/core/network/protocols/internalProtocol.js +0 -109
- package/lib/core/network/protocols/mqttProtocol.js +0 -291
- package/lib/core/network/protocols/protocol.js +0 -102
- package/lib/core/network/router.js +0 -255
- package/lib/core/plugin/plugin.js +0 -436
- package/lib/core/plugin/pluginRepository.js +0 -132
- package/lib/core/plugin/pluginsManager.js +0 -1244
- package/lib/core/realtime/notification/document.js +0 -108
- package/lib/core/realtime/notification/user.js +0 -70
- package/lib/core/realtime/notifier.js +0 -541
- package/lib/core/security/README.md +0 -223
- package/lib/core/security/roleRepository.js +0 -569
- package/lib/core/security/securityLoader.js +0 -174
- package/lib/core/security/userRepository.js +0 -446
- package/lib/core/shared/README.md +0 -3
- package/lib/core/shared/abstractManifest.js +0 -102
- package/lib/core/shared/sdk/impersonatedSdk.js +0 -94
- package/lib/core/statistics/index.js +0 -24
- package/lib/core/statistics/statistics.js +0 -373
- package/lib/core/storage/clientAdapter.js +0 -1045
- package/lib/core/storage/storageEngine.js +0 -63
- package/lib/core/validation/baseType.js +0 -80
- package/lib/core/validation/index.js +0 -24
- package/lib/core/validation/types/date.js +0 -284
- package/lib/core/validation/types/email.js +0 -92
- package/lib/core/validation/types/enum.js +0 -100
- package/lib/core/validation/types/geoShape.js +0 -370
- package/lib/core/validation/types/ipAddress.js +0 -83
- package/lib/core/validation/types/numeric.js +0 -108
- package/lib/core/validation/types/object.js +0 -88
- package/lib/core/validation/types/string.js +0 -110
- package/lib/core/validation/types/url.js +0 -83
- package/lib/core/validation/validation.js +0 -1180
- package/lib/kerror/codes/0-core.json +0 -194
- package/lib/kerror/codes/1-services.json +0 -351
- package/lib/kerror/codes/2-api.json +0 -195
- package/lib/kerror/codes/3-network.json +0 -151
- package/lib/kerror/codes/4-plugin.json +0 -498
- package/lib/kerror/codes/5-validation.json +0 -158
- package/lib/kerror/codes/6-protocol.json +0 -28
- package/lib/kerror/codes/7-security.json +0 -283
- package/lib/kerror/codes/8-cluster.json +0 -16
- package/lib/kerror/codes/index.js +0 -208
- package/lib/kuzzle/dumpGenerator.js +0 -259
- package/lib/kuzzle/event/pipeRunner.js +0 -144
- package/lib/kuzzle/event/waterfall.js +0 -101
- package/lib/kuzzle/internalIndexHandler.js +0 -234
- package/lib/kuzzle/vault.js +0 -89
- package/lib/model/storage/apiKey.js +0 -158
- package/lib/model/storage/baseModel.js +0 -275
- package/lib/service/cache/redis.js +0 -282
- package/lib/service/service.js +0 -84
- package/lib/service/storage/7/esWrapper.js +0 -303
- package/lib/service/storage/8/esWrapper.js +0 -303
- package/lib/util/asyncStore.js +0 -112
- package/lib/util/bytes.js +0 -36
- package/lib/util/deprecate.js +0 -82
- package/lib/util/promback.js +0 -66
- package/lib/util/readYamlFile.d.ts +0 -2
- package/lib/util/readYamlFile.js +0 -10
- package/lib/util/requestAssertions.js +0 -157
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{lib → dist/lib}/api/controllers/baseController.d.ts +0 -0
- /package/{lib → dist/lib}/api/controllers/baseController.js +0 -0
- /package/{lib → dist/lib}/api/controllers/debugController.d.ts +0 -0
- /package/{lib → dist/lib}/api/controllers/debugController.js +0 -0
- /package/{lib → dist/lib}/api/openapi/OpenApiManager.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/OpenApiManager.js +0 -0
- /package/{lib → dist/lib}/api/openapi/index.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/index.js +0 -0
- /package/{lib → dist/lib}/api/openapi/openApiGenerator.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/openApiGenerator.js +0 -0
- /package/{lib → dist/lib}/api/request/index.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/index.js +0 -0
- /package/{lib → dist/lib}/api/request/kuzzleRequest.js +0 -0
- /package/{lib → dist/lib}/api/request/requestContext.js +0 -0
- /package/{lib → dist/lib}/api/request/requestInput.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/requestInput.js +0 -0
- /package/{lib → dist/lib}/api/request/requestResponse.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/requestResponse.js +0 -0
- /package/{lib → dist/lib}/cluster/idCardHandler.d.ts +0 -0
- /package/{lib → dist/lib}/cluster/idCardHandler.js +0 -0
- /package/{lib → dist/lib}/cluster/protobuf/command.proto +0 -0
- /package/{lib → dist/lib}/cluster/protobuf/sync.proto +0 -0
- /package/{lib → dist/lib}/cluster/state.d.ts +0 -0
- /package/{lib → dist/lib}/cluster/state.js +0 -0
- /package/{lib → dist/lib}/config/default.config.d.ts +0 -0
- /package/{lib → dist/lib}/config/default.config.js +0 -0
- /package/{lib → dist/lib}/config/documentEventAliases.js +0 -0
- /package/{lib → dist/lib}/core/auth/tokenManager.d.ts +0 -0
- /package/{lib → dist/lib}/core/auth/tokenManager.js +0 -0
- /package/{lib → dist/lib}/core/backend/applicationManager.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/applicationManager.js +0 -0
- /package/{lib → dist/lib}/core/backend/backend.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backend.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendCluster.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendCluster.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendConfig.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendController.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendController.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendErrors.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendHook.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendHook.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendImport.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendImport.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendOpenApi.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendOpenApi.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendPipe.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendPipe.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendPlugin.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendPlugin.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendStorage.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendStorage.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendSubscription.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendSubscription.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendVault.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendVault.js +0 -0
- /package/{lib → dist/lib}/core/backend/index.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/index.js +0 -0
- /package/{lib → dist/lib}/core/backend/internalLogger.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/internalLogger.js +0 -0
- /package/{lib → dist/lib}/core/cache/cacheDbEnum.d.ts +0 -0
- /package/{lib → dist/lib}/core/cache/cacheDbEnum.js +0 -0
- /package/{lib → dist/lib}/core/debug/kuzzleDebugger.d.ts +0 -0
- /package/{lib → dist/lib}/core/debug/kuzzleDebugger.js +0 -0
- /package/{lib → dist/lib}/core/plugin/pluginContext.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/channel.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/channel.js +0 -0
- /package/{lib → dist/lib}/core/realtime/connectionRooms.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/connectionRooms.js +0 -0
- /package/{lib → dist/lib}/core/realtime/hotelClerk.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/hotelClerk.js +0 -0
- /package/{lib → dist/lib}/core/realtime/room.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/room.js +0 -0
- /package/{lib → dist/lib}/core/realtime/subscription.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/subscription.js +0 -0
- /package/{lib → dist/lib}/core/security/profileRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/security/profileRepository.js +0 -0
- /package/{lib → dist/lib}/core/security/tokenRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/KoncordeWrapper.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/KoncordeWrapper.js +0 -0
- /package/{lib → dist/lib}/core/shared/ObjectRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/ObjectRepository.js +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.js +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.js +0 -0
- /package/{lib → dist/lib}/core/shared/store.js +0 -0
- /package/{lib → dist/lib}/core/storage/indexCache.d.ts +0 -0
- /package/{lib → dist/lib}/core/storage/indexCache.js +0 -0
- /package/{lib → dist/lib}/core/storage/storeScopeEnum.d.ts +0 -0
- /package/{lib → dist/lib}/core/storage/storeScopeEnum.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/badRequestError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/badRequestError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/externalServiceError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/externalServiceError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/forbiddenError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/forbiddenError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/index.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/index.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/internalError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/internalError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/kuzzleError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/kuzzleError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/notFoundError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/notFoundError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/partialError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/partialError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/preconditionError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/preconditionError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/sizeLimitError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/sizeLimitError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/unauthorizedError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/unauthorizedError.js +0 -0
- /package/{lib → dist/lib}/kerror/index.js +0 -0
- /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.d.ts +0 -0
- /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.js +0 -0
- /package/{lib → dist/lib}/kuzzle/index.d.ts +0 -0
- /package/{lib → dist/lib}/kuzzle/index.js +0 -0
- /package/{lib → dist/lib}/model/security/profile.d.ts +0 -0
- /package/{lib → dist/lib}/model/security/profile.js +0 -0
- /package/{lib → dist/lib}/model/security/role.js +0 -0
- /package/{lib → dist/lib}/model/security/token.d.ts +0 -0
- /package/{lib → dist/lib}/model/security/token.js +0 -0
- /package/{lib → dist/lib}/model/security/user.js +0 -0
- /package/{lib → dist/lib}/service/storage/8/elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/service/storage/commons/queryTranslator.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/commons/queryTranslator.js +0 -0
- /package/{lib → dist/lib}/types/ClientConnection.d.ts +0 -0
- /package/{lib → dist/lib}/types/ClientConnection.js +0 -0
- /package/{lib → dist/lib}/types/Deprecation.d.ts +0 -0
- /package/{lib → dist/lib}/types/Deprecation.js +0 -0
- /package/{lib → dist/lib}/types/EventHandler.d.ts +0 -0
- /package/{lib → dist/lib}/types/EventHandler.js +0 -0
- /package/{lib → dist/lib}/types/Global.d.ts +0 -0
- /package/{lib → dist/lib}/types/Global.js +0 -0
- /package/{lib → dist/lib}/types/HttpMessage.d.ts +0 -0
- /package/{lib → dist/lib}/types/HttpMessage.js +0 -0
- /package/{lib → dist/lib}/types/HttpStream.d.ts +0 -0
- /package/{lib → dist/lib}/types/HttpStream.js +0 -0
- /package/{lib → dist/lib}/types/Kuzzle.d.ts +0 -0
- /package/{lib → dist/lib}/types/Kuzzle.js +0 -0
- /package/{lib → dist/lib}/types/KuzzleDocument.d.ts +0 -0
- /package/{lib → dist/lib}/types/KuzzleDocument.js +0 -0
- /package/{lib → dist/lib}/types/OpenApiDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/OpenApiDefinition.js +0 -0
- /package/{lib → dist/lib}/types/PasswordPolicy.d.ts +0 -0
- /package/{lib → dist/lib}/types/PasswordPolicy.js +0 -0
- /package/{lib → dist/lib}/types/Plugin.js +0 -0
- /package/{lib → dist/lib}/types/PluginManifest.d.ts +0 -0
- /package/{lib → dist/lib}/types/PluginManifest.js +0 -0
- /package/{lib → dist/lib}/types/Policy.d.ts +0 -0
- /package/{lib → dist/lib}/types/Policy.js +0 -0
- /package/{lib → dist/lib}/types/PolicyRestrictions.d.ts +0 -0
- /package/{lib → dist/lib}/types/PolicyRestrictions.js +0 -0
- /package/{lib → dist/lib}/types/ProfileDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/ProfileDefinition.js +0 -0
- /package/{lib → dist/lib}/types/RoleDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/RoleDefinition.js +0 -0
- /package/{lib → dist/lib}/types/StrategyDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/StrategyDefinition.js +0 -0
- /package/{lib → dist/lib}/types/Target.d.ts +0 -0
- /package/{lib → dist/lib}/types/Target.js +0 -0
- /package/{lib → dist/lib}/types/Token.d.ts +0 -0
- /package/{lib → dist/lib}/types/Token.js +0 -0
- /package/{lib → dist/lib}/types/User.d.ts +0 -0
- /package/{lib → dist/lib}/types/User.js +0 -0
- /package/{lib → dist/lib}/types/config/DumpConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/DumpConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/HttpConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/HttpConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/KuzzleConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/KuzzleConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/LimitsConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/LimitsConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/PluginsConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/PluginsConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/SecurityConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/SecurityConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/ServerConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/ServerConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/ServicesConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/ServicesConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/Controller.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerRights.d.ts +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerRights.js +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDefinition.js +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDomains.d.ts +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDomains.js +0 -0
- /package/{lib → dist/lib}/types/events/EventGenericDocument.d.ts +0 -0
- /package/{lib → dist/lib}/types/events/EventGenericDocument.js +0 -0
- /package/{lib → dist/lib}/types/events/EventProtocol.d.ts +0 -0
- /package/{lib → dist/lib}/types/events/EventProtocol.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeScope.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeScope.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeUsers.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeUsers.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RoomList.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RoomList.js +0 -0
- /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.js +0 -0
- /package/{lib → dist/lib}/types/storage/7/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/types/storage/7/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/types/storage/8/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/types/storage/8/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/util/Inflector.d.ts +0 -0
- /package/{lib → dist/lib}/util/Inflector.js +0 -0
- /package/{lib → dist/lib}/util/array.d.ts +0 -0
- /package/{lib → dist/lib}/util/array.js +0 -0
- /package/{lib → dist/lib}/util/async.d.ts +0 -0
- /package/{lib → dist/lib}/util/async.js +0 -0
- /package/{lib → dist/lib}/util/bufferedPassThrough.d.ts +0 -0
- /package/{lib → dist/lib}/util/bufferedPassThrough.js +0 -0
- /package/{lib → dist/lib}/util/crypto.d.ts +0 -0
- /package/{lib → dist/lib}/util/crypto.js +0 -0
- /package/{lib → dist/lib}/util/dump-collection.d.ts +0 -0
- /package/{lib → dist/lib}/util/dump-collection.js +0 -0
- /package/{lib → dist/lib}/util/esRequest.d.ts +0 -0
- /package/{lib → dist/lib}/util/esRequest.js +0 -0
- /package/{lib → dist/lib}/util/koncordeCompat.d.ts +0 -0
- /package/{lib → dist/lib}/util/koncordeCompat.js +0 -0
- /package/{lib → dist/lib}/util/mutex.d.ts +0 -0
- /package/{lib → dist/lib}/util/mutex.js +0 -0
- /package/{lib → dist/lib}/util/name-generator.d.ts +0 -0
- /package/{lib → dist/lib}/util/name-generator.js +0 -0
- /package/{lib → dist/lib}/util/time.d.ts +0 -0
- /package/{lib → dist/lib}/util/time.js +0 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
|
+
* to power modern apps
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2015-2022 Kuzzle
|
|
6
|
+
* mailto: support AT kuzzle.io
|
|
7
|
+
* website: http://kuzzle.io
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
"use strict";
|
|
22
|
+
const crypto = require("crypto");
|
|
23
|
+
const Bluebird = require("bluebird");
|
|
24
|
+
const debug = require("../util/debug")("kuzzle:bootstrap:internalIndex");
|
|
25
|
+
const { Store } = require("../core/shared/store");
|
|
26
|
+
const { Mutex } = require("../util/mutex");
|
|
27
|
+
const { storeScopeEnum } = require("../core/storage/storeScopeEnum");
|
|
28
|
+
const kerror = require("../kerror");
|
|
29
|
+
const securitiesBootstrap = {
|
|
30
|
+
profiles: {
|
|
31
|
+
admin: {
|
|
32
|
+
policies: [{ roleId: "admin" }],
|
|
33
|
+
rateLimit: 0,
|
|
34
|
+
},
|
|
35
|
+
anonymous: {
|
|
36
|
+
policies: [{ roleId: "anonymous" }],
|
|
37
|
+
},
|
|
38
|
+
default: {
|
|
39
|
+
policies: [{ roleId: "default" }],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
roles: {
|
|
43
|
+
admin: {
|
|
44
|
+
controllers: {
|
|
45
|
+
"*": {
|
|
46
|
+
actions: {
|
|
47
|
+
"*": true,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
anonymous: {
|
|
53
|
+
controllers: {
|
|
54
|
+
"*": {
|
|
55
|
+
actions: {
|
|
56
|
+
"*": true,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
default: {
|
|
62
|
+
controllers: {
|
|
63
|
+
"*": {
|
|
64
|
+
actions: {
|
|
65
|
+
"*": true,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
const dataModelVersion = "2.0.0";
|
|
73
|
+
class InternalIndexHandler extends Store {
|
|
74
|
+
constructor() {
|
|
75
|
+
super(global.kuzzle.config.services.storageEngine.internalIndex.name, storeScopeEnum.PRIVATE);
|
|
76
|
+
this.timeout =
|
|
77
|
+
global.kuzzle.config.services.internalIndex.bootstrapLockTimeout;
|
|
78
|
+
this.config = global.kuzzle.config.services.storageEngine.internalIndex;
|
|
79
|
+
// IDs for config documents
|
|
80
|
+
this._BOOTSTRAP_DONE_ID = `${this.index}.done`;
|
|
81
|
+
this._DATAMODEL_VERSION_ID = "internalIndex.dataModelVersion";
|
|
82
|
+
this._JWT_SECRET_ID = "security.jwt.secret";
|
|
83
|
+
this.logger = global.kuzzle.log.child("internalIndexHandler");
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @returns {Promise}
|
|
87
|
+
*/
|
|
88
|
+
async init() {
|
|
89
|
+
await super.init(this.config.collections);
|
|
90
|
+
const mutex = new Mutex("InternalIndexBootstrap", {
|
|
91
|
+
timeout: -1,
|
|
92
|
+
ttl: 30000,
|
|
93
|
+
});
|
|
94
|
+
await mutex.lock();
|
|
95
|
+
try {
|
|
96
|
+
const bootstrapped = await this.exists("config", this._BOOTSTRAP_DONE_ID);
|
|
97
|
+
if (bootstrapped) {
|
|
98
|
+
await this._initSecret();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
await Bluebird.resolve(this._bootstrapSequence()).timeout(this.timeout);
|
|
102
|
+
await this.create("config", { timestamp: Date.now() }, {
|
|
103
|
+
id: this._BOOTSTRAP_DONE_ID,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
if (error instanceof Bluebird.TimeoutError) {
|
|
108
|
+
throw kerror.get("services", "storage", "bootstrap_timeout", "internalIndex");
|
|
109
|
+
}
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
await mutex.unlock();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* @override
|
|
118
|
+
*/
|
|
119
|
+
async _bootstrapSequence() {
|
|
120
|
+
debug("Bootstrapping security structure");
|
|
121
|
+
await this.createInitialSecurities();
|
|
122
|
+
debug("Bootstrapping document validation structure");
|
|
123
|
+
await this.createInitialValidations();
|
|
124
|
+
debug("Bootstrapping JWT secret");
|
|
125
|
+
await this._initSecret();
|
|
126
|
+
// Create datamodel version
|
|
127
|
+
await this.create("config", { version: dataModelVersion }, {
|
|
128
|
+
id: this._DATAMODEL_VERSION_ID,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Creates initial roles and profiles as specified in Kuzzle configuration
|
|
133
|
+
*/
|
|
134
|
+
async createInitialSecurities() {
|
|
135
|
+
await Bluebird.map(Object.entries(securitiesBootstrap.roles), ([roleId, content]) => {
|
|
136
|
+
return this.createOrReplace("roles", roleId, content, {
|
|
137
|
+
refresh: "wait_for",
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
await Bluebird.map(Object.entries(securitiesBootstrap.profiles), ([profileId, content]) => {
|
|
141
|
+
return this.createOrReplace("profiles", profileId, content, {
|
|
142
|
+
refresh: "wait_for",
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async createInitialValidations() {
|
|
147
|
+
const initialValidations = global.kuzzle.config.validation;
|
|
148
|
+
const promises = [];
|
|
149
|
+
for (const [index, collection] of Object.entries(initialValidations)) {
|
|
150
|
+
for (const [collectionName, validation] of Object.entries(collection)) {
|
|
151
|
+
const validationId = `${index}#${collectionName}`;
|
|
152
|
+
promises.push(this.createOrReplace("validations", validationId, validation));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
await Bluebird.all(promises);
|
|
156
|
+
}
|
|
157
|
+
async _initSecret() {
|
|
158
|
+
const { authToken, jwt } = global.kuzzle.config.security;
|
|
159
|
+
const configSeed = authToken?.secret ?? jwt?.secret;
|
|
160
|
+
let storedSeed = await this.exists("config", this._JWT_SECRET_ID);
|
|
161
|
+
if (!configSeed) {
|
|
162
|
+
if (!storedSeed) {
|
|
163
|
+
storedSeed = crypto.randomBytes(512).toString("hex");
|
|
164
|
+
await this.create("config", { seed: storedSeed }, { id: this._JWT_SECRET_ID });
|
|
165
|
+
}
|
|
166
|
+
this.logger.warn("[!] Kuzzle is using a generated seed for authentication. This is suitable for development but should NEVER be used in production. See https://docs.kuzzle.io/core/2/guides/getting-started/deploy-your-application/");
|
|
167
|
+
}
|
|
168
|
+
global.kuzzle.secret = configSeed
|
|
169
|
+
? configSeed
|
|
170
|
+
: (await this.get("config", this._JWT_SECRET_ID))._source.seed;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
module.exports = InternalIndexHandler;
|
|
174
|
+
//# sourceMappingURL=internalIndexHandler.js.map
|
|
@@ -5,7 +5,7 @@ import { TokenManager } from "../core/auth/tokenManager";
|
|
|
5
5
|
import EntryPoint from "../core/network/entryPoint";
|
|
6
6
|
import Router from "../core/network/router";
|
|
7
7
|
import PluginsManager from "../core/plugin/pluginsManager";
|
|
8
|
-
import Validation from "../core/validation";
|
|
8
|
+
import Validation from "../core/validation/validation";
|
|
9
9
|
import { KuzzleConfiguration } from "../types/config/KuzzleConfiguration";
|
|
10
10
|
import AsyncStore from "../util/asyncStore";
|
|
11
11
|
import { ImportConfig, InstallationConfig, StartOptions, SupportConfig } from "./../types/Kuzzle";
|
|
@@ -13,7 +13,6 @@ import KuzzleEventEmitter from "./event/KuzzleEventEmitter";
|
|
|
13
13
|
import InternalIndexHandler from "./internalIndexHandler";
|
|
14
14
|
import kuzzleStateEnum from "./kuzzleStateEnum";
|
|
15
15
|
import { Logger } from "./Logger";
|
|
16
|
-
import vault from "./vault";
|
|
17
16
|
declare class Kuzzle extends KuzzleEventEmitter {
|
|
18
17
|
config: KuzzleConfiguration;
|
|
19
18
|
private _state;
|
|
@@ -45,7 +44,7 @@ declare class Kuzzle extends KuzzleEventEmitter {
|
|
|
45
44
|
/**
|
|
46
45
|
* Validation core component
|
|
47
46
|
*/
|
|
48
|
-
validation:
|
|
47
|
+
validation: Validation;
|
|
49
48
|
/**
|
|
50
49
|
* Dump generator
|
|
51
50
|
*/
|
|
@@ -53,7 +52,7 @@ declare class Kuzzle extends KuzzleEventEmitter {
|
|
|
53
52
|
/**
|
|
54
53
|
* Vault component (will be initialized after bootstrap)
|
|
55
54
|
*/
|
|
56
|
-
vault:
|
|
55
|
+
vault: any;
|
|
57
56
|
/**
|
|
58
57
|
* AsyncLocalStorage wrapper
|
|
59
58
|
*/
|
|
@@ -129,10 +128,10 @@ declare class Kuzzle extends KuzzleEventEmitter {
|
|
|
129
128
|
* @returns {Promise<void>}
|
|
130
129
|
*/
|
|
131
130
|
loadInitialState(toImport?: ImportConfig, toSupport?: SupportConfig): Promise<void>;
|
|
132
|
-
dump(suffix: any): any
|
|
131
|
+
dump(suffix: any): Promise<any>;
|
|
133
132
|
hash(input: any): number;
|
|
134
|
-
get state():
|
|
135
|
-
set state(value:
|
|
133
|
+
get state(): kuzzleStateEnum;
|
|
134
|
+
set state(value: kuzzleStateEnum);
|
|
136
135
|
/**
|
|
137
136
|
* Register handlers and do a kuzzle dump for:
|
|
138
137
|
* - system signals
|
|
@@ -66,9 +66,9 @@ const router_1 = __importDefault(require("../core/network/router"));
|
|
|
66
66
|
const pluginsManager_1 = __importDefault(require("../core/plugin/pluginsManager"));
|
|
67
67
|
const realtime_1 = __importDefault(require("../core/realtime"));
|
|
68
68
|
const security_1 = __importDefault(require("../core/security"));
|
|
69
|
-
const statistics_1 = __importDefault(require("../core/statistics"));
|
|
69
|
+
const statistics_1 = __importDefault(require("../core/statistics/statistics"));
|
|
70
70
|
const storageEngine_1 = __importDefault(require("../core/storage/storageEngine"));
|
|
71
|
-
const validation_1 = __importDefault(require("../core/validation"));
|
|
71
|
+
const validation_1 = __importDefault(require("../core/validation/validation"));
|
|
72
72
|
const kerror = __importStar(require("../kerror"));
|
|
73
73
|
const asyncStore_1 = __importDefault(require("../util/asyncStore"));
|
|
74
74
|
const crypto_1 = require("../util/crypto");
|
|
@@ -514,6 +514,9 @@ class Kuzzle extends KuzzleEventEmitter_1.default {
|
|
|
514
514
|
*/
|
|
515
515
|
registerSignalHandlers() {
|
|
516
516
|
process.removeAllListeners("unhandledRejection");
|
|
517
|
+
process.on("exit", () => {
|
|
518
|
+
this.shutdown();
|
|
519
|
+
});
|
|
517
520
|
process.on("unhandledRejection", (reason, promise) => {
|
|
518
521
|
if (reason !== undefined) {
|
|
519
522
|
if (reason instanceof Error) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export = kuzzleStateEnum;
|
|
2
|
+
type kuzzleStateEnum = number;
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {number} kuzzleStateEnum
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Enum for Kuzzle's state
|
|
8
|
+
* @readOnly
|
|
9
|
+
* @enum {kuzzleStateEnum}
|
|
10
|
+
*/
|
|
11
|
+
declare const kuzzleStateEnum: Readonly<{
|
|
12
|
+
NOT_ENOUGH_NODES: 4;
|
|
13
|
+
RUNNING: 2;
|
|
14
|
+
SHUTTING_DOWN: 3;
|
|
15
|
+
STARTING: 1;
|
|
16
|
+
}>;
|
|
17
|
+
declare namespace kuzzleStateEnum {
|
|
18
|
+
export { kuzzleStateEnum };
|
|
19
|
+
}
|
|
20
|
+
type kuzzleStateEnum = number;
|
|
@@ -18,23 +18,20 @@
|
|
|
18
18
|
* See the License for the specific language governing permissions and
|
|
19
19
|
* limitations under the License.
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
21
|
"use strict";
|
|
23
|
-
|
|
24
22
|
/**
|
|
25
23
|
* @typedef {number} kuzzleStateEnum
|
|
26
24
|
*/
|
|
27
|
-
|
|
28
25
|
/**
|
|
29
26
|
* Enum for Kuzzle's state
|
|
30
27
|
* @readOnly
|
|
31
28
|
* @enum {kuzzleStateEnum}
|
|
32
29
|
*/
|
|
33
30
|
const kuzzleStateEnum = Object.freeze({
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
NOT_ENOUGH_NODES: 4,
|
|
32
|
+
RUNNING: 2,
|
|
33
|
+
SHUTTING_DOWN: 3,
|
|
34
|
+
STARTING: 1,
|
|
38
35
|
});
|
|
39
|
-
|
|
40
36
|
module.exports = kuzzleStateEnum;
|
|
37
|
+
//# sourceMappingURL=kuzzleStateEnum.js.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
|
+
* to power modern apps
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2015-2022 Kuzzle
|
|
6
|
+
* mailto: support AT kuzzle.io
|
|
7
|
+
* website: http://kuzzle.io
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
"use strict";
|
|
22
|
+
const assert = require("assert");
|
|
23
|
+
const fs = require("fs");
|
|
24
|
+
const path = require("path");
|
|
25
|
+
const _ = require("lodash");
|
|
26
|
+
const { Vault } = require("kuzzle-vault");
|
|
27
|
+
// The Vault package remove the variable from env after reading it and we have
|
|
28
|
+
// to instantiate the Vault two times with Kaaf (one before init and one after)
|
|
29
|
+
let ENV_VAULT_KEY;
|
|
30
|
+
function load(vaultKey, secretsFile) {
|
|
31
|
+
// Using KaaF kuzzle is an npm package and is located under node_modules folder
|
|
32
|
+
// We need to get back to root folder of the project to get the secret file
|
|
33
|
+
const defaultEncryptedSecretsFile = __dirname.endsWith("/node_modules/kuzzle/lib/kuzzle")
|
|
34
|
+
? path.resolve(`${__dirname}/../../../../config/secrets.enc.json`)
|
|
35
|
+
: path.resolve(`${__dirname}/../../config/secrets.enc.json`);
|
|
36
|
+
const encryptedSecretsFile = secretsFile ||
|
|
37
|
+
process.env.KUZZLE_SECRETS_FILE ||
|
|
38
|
+
defaultEncryptedSecretsFile;
|
|
39
|
+
let key = vaultKey;
|
|
40
|
+
if (_.isEmpty(vaultKey) &&
|
|
41
|
+
(!_.isEmpty(process.env.KUZZLE_VAULT_KEY) || !_.isEmpty(ENV_VAULT_KEY))) {
|
|
42
|
+
// Keep the vault key value when reading it from the env
|
|
43
|
+
key = ENV_VAULT_KEY = process.env.KUZZLE_VAULT_KEY || ENV_VAULT_KEY;
|
|
44
|
+
}
|
|
45
|
+
const fileExists = fs.existsSync(encryptedSecretsFile);
|
|
46
|
+
// Abort if a custom secrets file has been provided but Kuzzle can't load it
|
|
47
|
+
if (!_.isEmpty(process.env.KUZZLE_SECRETS_FILE) || !_.isEmpty(secretsFile)) {
|
|
48
|
+
assert(fileExists, `A secret file has been provided but Kuzzle cannot find it at "${encryptedSecretsFile}".`);
|
|
49
|
+
}
|
|
50
|
+
// Abort if a secret file is found (default or custom)
|
|
51
|
+
// but no vault key has been provided
|
|
52
|
+
assert(!(fileExists && _.isEmpty(key)), "A secret file has been provided but Kuzzle cannot find the Vault key. Aborting.");
|
|
53
|
+
// Abort if a vault key has been provided
|
|
54
|
+
// but no secrets file can be loaded (default or custom)
|
|
55
|
+
assert(!(!_.isEmpty(key) && !fileExists), `A Vault key is present but Kuzzle cannot find the secret file at "${encryptedSecretsFile}". Aborting.`);
|
|
56
|
+
const vault = new Vault(key);
|
|
57
|
+
if (key) {
|
|
58
|
+
vault.decrypt(encryptedSecretsFile);
|
|
59
|
+
}
|
|
60
|
+
return vault;
|
|
61
|
+
}
|
|
62
|
+
module.exports = { load };
|
|
63
|
+
//# sourceMappingURL=vault.js.map
|
|
@@ -18,13 +18,10 @@
|
|
|
18
18
|
* See the License for the specific language governing permissions and
|
|
19
19
|
* limitations under the License.
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
21
|
"use strict";
|
|
23
|
-
|
|
24
22
|
function isAllowed(obj) {
|
|
25
|
-
|
|
23
|
+
return obj && (obj.value === "allowed" || obj.value === true);
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
/**
|
|
29
26
|
* Merge function for policies rights
|
|
30
27
|
* @param {Object} prev existing policies rights
|
|
@@ -33,9 +30,8 @@ function isAllowed(obj) {
|
|
|
33
30
|
* @returns {Object} the merged policies rights
|
|
34
31
|
*/
|
|
35
32
|
function merge(prev, cur) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return cur;
|
|
33
|
+
cur.value = isAllowed(cur) || isAllowed(prev) ? "allowed" : "denied";
|
|
34
|
+
return cur;
|
|
39
35
|
}
|
|
40
|
-
|
|
41
36
|
module.exports = { merge };
|
|
37
|
+
//# sourceMappingURL=rights.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ControllerRight, ControllerRights } from "../../types/ControllerRights";
|
|
1
|
+
import { ControllerRight, ControllerRights } from "../../types/controllers/ControllerRights";
|
|
2
2
|
import { KuzzleRequest } from "../../../index";
|
|
3
3
|
import { OptimizedPolicyRestrictions } from "../../types/PolicyRestrictions";
|
|
4
4
|
/**
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export = ApiKey;
|
|
2
|
+
declare class ApiKey extends BaseModel {
|
|
3
|
+
/**
|
|
4
|
+
* @override
|
|
5
|
+
*/
|
|
6
|
+
static override get collection(): string;
|
|
7
|
+
/**
|
|
8
|
+
* @override
|
|
9
|
+
*/
|
|
10
|
+
static override get fields(): string[];
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new API key for an user
|
|
13
|
+
*
|
|
14
|
+
* @param {User} user
|
|
15
|
+
* @param {String} expiresIn - API key expiration date in ms format
|
|
16
|
+
* @param {String} description
|
|
17
|
+
* @param {Object} options - creatorId (null), apiKeyId (null), refresh (null), bypassMaxTTL (false)
|
|
18
|
+
*
|
|
19
|
+
* @returns {Promise<ApiKey>}
|
|
20
|
+
*/
|
|
21
|
+
static create(user: User, expiresIn: string, description: string, { creatorId, apiKeyId, refresh, bypassMaxTTL }?: any): Promise<ApiKey>;
|
|
22
|
+
/**
|
|
23
|
+
* Loads an user API key from the database
|
|
24
|
+
*
|
|
25
|
+
* @param {String} userId - User ID
|
|
26
|
+
* @param {String} id - API key ID
|
|
27
|
+
*
|
|
28
|
+
* @returns {Promise<ApiKey>}
|
|
29
|
+
*/
|
|
30
|
+
static load(userId: string, id: string): Promise<ApiKey>;
|
|
31
|
+
/**
|
|
32
|
+
* Deletes API keys for an user
|
|
33
|
+
*
|
|
34
|
+
* @param {User} user
|
|
35
|
+
* @param {Object} options - refresh (null)
|
|
36
|
+
*
|
|
37
|
+
* @returns {Promise}
|
|
38
|
+
*/
|
|
39
|
+
static deleteByUser(user: User, { refresh }?: any): Promise<any>;
|
|
40
|
+
constructor(_source: any, _id?: any);
|
|
41
|
+
/**
|
|
42
|
+
* @override
|
|
43
|
+
*/
|
|
44
|
+
override _afterDelete(): Promise<void>;
|
|
45
|
+
serialize({ includeToken }?: {
|
|
46
|
+
includeToken?: boolean;
|
|
47
|
+
}): any;
|
|
48
|
+
}
|
|
49
|
+
import BaseModel = require("./baseModel");
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
|
+
* to power modern apps
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2015-2022 Kuzzle
|
|
6
|
+
* mailto: support AT kuzzle.io
|
|
7
|
+
* website: http://kuzzle.io
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
"use strict";
|
|
22
|
+
const { sha256 } = require("../../util/crypto");
|
|
23
|
+
const debug = require("../../util/debug")("models:storage:apiKey");
|
|
24
|
+
const kerror = require("../../kerror");
|
|
25
|
+
const BaseModel = require("./baseModel");
|
|
26
|
+
class ApiKey extends BaseModel {
|
|
27
|
+
constructor(_source, _id = null) {
|
|
28
|
+
super(_source, _id);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @override
|
|
32
|
+
*/
|
|
33
|
+
async _afterDelete() {
|
|
34
|
+
const token = await global.kuzzle.ask("core:security:token:get", this.userId, this.token);
|
|
35
|
+
if (token) {
|
|
36
|
+
await global.kuzzle.ask("core:security:token:delete", token);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
serialize({ includeToken = false } = {}) {
|
|
40
|
+
const serialized = super.serialize();
|
|
41
|
+
if (!includeToken && this.token) {
|
|
42
|
+
delete serialized._source.token;
|
|
43
|
+
}
|
|
44
|
+
return serialized;
|
|
45
|
+
}
|
|
46
|
+
// Static public methods =====================================================
|
|
47
|
+
/**
|
|
48
|
+
* @override
|
|
49
|
+
*/
|
|
50
|
+
static get collection() {
|
|
51
|
+
return "api-keys";
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @override
|
|
55
|
+
*/
|
|
56
|
+
static get fields() {
|
|
57
|
+
return [
|
|
58
|
+
"userId",
|
|
59
|
+
"description",
|
|
60
|
+
"expiresAt",
|
|
61
|
+
"ttl",
|
|
62
|
+
"token",
|
|
63
|
+
"fingerprint",
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Creates a new API key for an user
|
|
68
|
+
*
|
|
69
|
+
* @param {User} user
|
|
70
|
+
* @param {String} expiresIn - API key expiration date in ms format
|
|
71
|
+
* @param {String} description
|
|
72
|
+
* @param {Object} options - creatorId (null), apiKeyId (null), refresh (null), bypassMaxTTL (false)
|
|
73
|
+
*
|
|
74
|
+
* @returns {Promise<ApiKey>}
|
|
75
|
+
*/
|
|
76
|
+
static async create(user, expiresIn, description, { creatorId = null, apiKeyId = null, refresh, bypassMaxTTL = false } = {}) {
|
|
77
|
+
const token = await global.kuzzle.ask("core:security:token:create", user, {
|
|
78
|
+
bypassMaxTTL,
|
|
79
|
+
expiresIn,
|
|
80
|
+
type: "apiKey",
|
|
81
|
+
});
|
|
82
|
+
const fingerprint = sha256(token.jwt);
|
|
83
|
+
const apiKey = new ApiKey({
|
|
84
|
+
description,
|
|
85
|
+
expiresAt: token.expiresAt,
|
|
86
|
+
fingerprint,
|
|
87
|
+
ttl: token.ttl,
|
|
88
|
+
userId: user._id,
|
|
89
|
+
}, apiKeyId || fingerprint);
|
|
90
|
+
await apiKey.save({ refresh, userId: creatorId });
|
|
91
|
+
apiKey.token = token.jwt;
|
|
92
|
+
return apiKey;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Loads an user API key from the database
|
|
96
|
+
*
|
|
97
|
+
* @param {String} userId - User ID
|
|
98
|
+
* @param {String} id - API key ID
|
|
99
|
+
*
|
|
100
|
+
* @returns {Promise<ApiKey>}
|
|
101
|
+
*/
|
|
102
|
+
static async load(userId, id) {
|
|
103
|
+
const apiKey = await super.load(id);
|
|
104
|
+
if (userId !== apiKey.userId) {
|
|
105
|
+
throw kerror.get("services", "storage", "not_found", id, {
|
|
106
|
+
message: `ApiKey "${id}" not found for user "${userId}".`,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return apiKey;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Deletes API keys for an user
|
|
113
|
+
*
|
|
114
|
+
* @param {User} user
|
|
115
|
+
* @param {Object} options - refresh (null)
|
|
116
|
+
*
|
|
117
|
+
* @returns {Promise}
|
|
118
|
+
*/
|
|
119
|
+
static deleteByUser(user, { refresh } = {}) {
|
|
120
|
+
debug("Delete ApiKeys for user %a", user);
|
|
121
|
+
return this.deleteByQuery({ term: { userId: user._id } }, { refresh });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
BaseModel.register(ApiKey);
|
|
125
|
+
module.exports = ApiKey;
|
|
126
|
+
//# sourceMappingURL=apiKey.js.map
|