kuzzle 2.19.2 → 2.19.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/lib/api/controllers/adminController.js +94 -80
- package/lib/api/controllers/authController.js +239 -212
- package/lib/api/controllers/baseController.js +89 -51
- package/lib/api/controllers/bulkController.js +62 -49
- package/lib/api/controllers/clusterController.js +6 -8
- package/lib/api/controllers/collectionController.js +140 -129
- package/lib/api/controllers/debugController.d.ts +2 -2
- package/lib/api/controllers/debugController.js +33 -31
- package/lib/api/controllers/documentController.js +365 -274
- package/lib/api/controllers/index.js +13 -13
- package/lib/api/controllers/indexController.js +46 -50
- package/lib/api/controllers/memoryStorageController.js +410 -360
- package/lib/api/controllers/realtimeController.js +37 -36
- package/lib/api/controllers/securityController.js +553 -412
- package/lib/api/controllers/serverController.js +111 -104
- package/lib/api/documentExtractor.js +75 -68
- package/lib/api/funnel.js +411 -312
- package/lib/api/httpRoutes.js +1493 -324
- package/lib/api/openapi/OpenApiManager.d.ts +1 -1
- package/lib/api/openapi/OpenApiManager.js +22 -22
- package/lib/api/openapi/components/document/count.yaml +1 -1
- package/lib/api/openapi/components/document/create.yaml +2 -2
- package/lib/api/openapi/components/document/delete.yaml +1 -1
- package/lib/api/openapi/components/document/deleteByQuery.yaml +1 -1
- package/lib/api/openapi/components/document/exists.yaml +1 -1
- package/lib/api/openapi/components/document/get.yaml +2 -2
- package/lib/api/openapi/components/document/index.js +12 -12
- package/lib/api/openapi/components/document/replace.yaml +1 -1
- package/lib/api/openapi/components/document/scroll.yaml +1 -1
- package/lib/api/openapi/components/document/validate.yaml +1 -1
- package/lib/api/openapi/components/index.d.ts +2 -2
- package/lib/api/openapi/components/index.js +1 -1
- package/lib/api/openapi/components/security/index.js +1 -1
- package/lib/api/openapi/components/security/upsertUser.yaml +2 -3
- package/lib/api/openapi/index.d.ts +1 -1
- package/lib/api/openapi/openApiGenerator.d.ts +1 -1
- package/lib/api/openapi/openApiGenerator.js +7 -7
- package/lib/api/rateLimiter.js +12 -13
- package/lib/api/request/index.d.ts +4 -4
- package/lib/api/request/kuzzleRequest.d.ts +9 -9
- package/lib/api/request/kuzzleRequest.js +89 -87
- package/lib/api/request/requestContext.d.ts +2 -2
- package/lib/api/request/requestContext.js +17 -17
- package/lib/api/request/requestInput.d.ts +1 -1
- package/lib/api/request/requestInput.js +19 -19
- package/lib/api/request/requestResponse.d.ts +4 -4
- package/lib/api/request/requestResponse.js +31 -33
- package/lib/cluster/command.js +48 -44
- package/lib/cluster/idCardHandler.d.ts +1 -1
- package/lib/cluster/idCardHandler.js +15 -15
- package/lib/cluster/index.js +2 -2
- package/lib/cluster/node.js +301 -269
- package/lib/cluster/publisher.js +45 -46
- package/lib/cluster/state.d.ts +5 -5
- package/lib/cluster/state.js +8 -8
- package/lib/cluster/subscriber.js +163 -113
- package/lib/cluster/workers/IDCardRenewer.js +33 -32
- package/lib/config/default.config.d.ts +1 -1
- package/lib/config/default.config.js +212 -171
- package/lib/config/documentEventAliases.js +6 -6
- package/lib/config/index.js +161 -98
- package/lib/config/sdkCompatibility.json +8 -8
- package/lib/core/auth/formatProcessing.js +7 -7
- package/lib/core/auth/passportResponse.js +7 -7
- package/lib/core/auth/passportWrapper.js +34 -30
- package/lib/core/auth/tokenManager.d.ts +2 -2
- package/lib/core/auth/tokenManager.js +11 -10
- package/lib/core/backend/applicationManager.d.ts +1 -1
- package/lib/core/backend/applicationManager.js +2 -2
- package/lib/core/backend/backend.d.ts +3 -3
- package/lib/core/backend/backend.js +34 -31
- package/lib/core/backend/backendCluster.d.ts +2 -2
- package/lib/core/backend/backendCluster.js +5 -5
- package/lib/core/backend/backendConfig.d.ts +2 -2
- package/lib/core/backend/backendConfig.js +3 -3
- package/lib/core/backend/backendController.d.ts +2 -2
- package/lib/core/backend/backendController.js +9 -10
- package/lib/core/backend/backendErrors.d.ts +3 -3
- package/lib/core/backend/backendErrors.js +2 -1
- package/lib/core/backend/backendHook.d.ts +2 -2
- package/lib/core/backend/backendHook.js +5 -5
- package/lib/core/backend/backendImport.d.ts +3 -3
- package/lib/core/backend/backendImport.js +23 -23
- package/lib/core/backend/backendOpenApi.d.ts +2 -2
- package/lib/core/backend/backendOpenApi.js +16 -16
- package/lib/core/backend/backendPipe.d.ts +2 -2
- package/lib/core/backend/backendPipe.js +6 -6
- package/lib/core/backend/backendPlugin.d.ts +4 -4
- package/lib/core/backend/backendPlugin.js +14 -14
- package/lib/core/backend/backendStorage.d.ts +2 -2
- package/lib/core/backend/backendStorage.js +1 -2
- package/lib/core/backend/backendVault.d.ts +2 -2
- package/lib/core/backend/backendVault.js +3 -3
- package/lib/core/backend/index.d.ts +14 -14
- package/lib/core/backend/internalLogger.d.ts +1 -1
- package/lib/core/backend/internalLogger.js +5 -5
- package/lib/core/cache/cacheDbEnum.js +4 -4
- package/lib/core/cache/cacheEngine.js +79 -85
- package/lib/core/network/accessLogger.js +126 -120
- package/lib/core/network/clientConnection.js +5 -5
- package/lib/core/network/context.js +8 -8
- package/lib/core/network/entryPoint.js +100 -85
- package/lib/core/network/httpRouter/index.js +63 -60
- package/lib/core/network/httpRouter/routeHandler.js +18 -19
- package/lib/core/network/httpRouter/routePart.js +23 -19
- package/lib/core/network/protocolManifest.js +3 -3
- package/lib/core/network/protocols/httpMessage.js +8 -10
- package/lib/core/network/protocols/httpwsProtocol.js +305 -250
- package/lib/core/network/protocols/internalProtocol.js +27 -24
- package/lib/core/network/protocols/mqttProtocol.js +106 -96
- package/lib/core/network/protocols/protocol.js +20 -17
- package/lib/core/network/router.js +56 -46
- package/lib/core/plugin/plugin.js +151 -120
- package/lib/core/plugin/pluginContext.d.ts +7 -7
- package/lib/core/plugin/pluginContext.js +48 -44
- package/lib/core/plugin/pluginManifest.js +13 -12
- package/lib/core/plugin/pluginRepository.js +26 -27
- package/lib/core/plugin/pluginsManager.js +425 -304
- package/lib/core/plugin/privilegedContext.js +3 -3
- package/lib/core/realtime/actionEnum.js +1 -1
- package/lib/core/realtime/channel.d.ts +1 -1
- package/lib/core/realtime/channel.js +22 -22
- package/lib/core/realtime/connectionRooms.d.ts +1 -1
- package/lib/core/realtime/hotelClerk.d.ts +2 -2
- package/lib/core/realtime/hotelClerk.js +53 -50
- package/lib/core/realtime/index.js +5 -5
- package/lib/core/realtime/notification/document.js +25 -25
- package/lib/core/realtime/notification/index.js +4 -4
- package/lib/core/realtime/notification/server.js +3 -3
- package/lib/core/realtime/notification/user.js +4 -4
- package/lib/core/realtime/notifier.js +113 -75
- package/lib/core/realtime/room.d.ts +1 -1
- package/lib/core/realtime/subscription.d.ts +1 -1
- package/lib/core/realtime/subscription.js +1 -1
- package/lib/core/security/index.js +8 -8
- package/lib/core/security/profileRepository.d.ts +6 -6
- package/lib/core/security/profileRepository.js +48 -45
- package/lib/core/security/roleRepository.js +127 -115
- package/lib/core/security/securityLoader.js +70 -63
- package/lib/core/security/tokenRepository.js +132 -118
- package/lib/core/security/userRepository.js +104 -88
- package/lib/core/shared/KoncordeWrapper.d.ts +1 -1
- package/lib/core/shared/KoncordeWrapper.js +3 -1
- package/lib/core/shared/abstractManifest.js +22 -23
- package/lib/core/shared/repository.js +69 -67
- package/lib/core/shared/sdk/embeddedSdk.d.ts +2 -2
- package/lib/core/shared/sdk/embeddedSdk.js +36 -32
- package/lib/core/shared/sdk/funnelProtocol.d.ts +1 -1
- package/lib/core/shared/sdk/funnelProtocol.js +11 -11
- package/lib/core/shared/sdk/impersonatedSdk.js +19 -18
- package/lib/core/shared/store.js +127 -32
- package/lib/core/statistics/index.js +2 -2
- package/lib/core/statistics/statistics.js +99 -85
- package/lib/core/storage/clientAdapter.js +219 -136
- package/lib/core/storage/indexCache.js +3 -3
- package/lib/core/storage/storageEngine.js +10 -13
- package/lib/core/storage/storeScopeEnum.js +3 -3
- package/lib/core/validation/baseType.js +12 -10
- package/lib/core/validation/index.js +2 -2
- package/lib/core/validation/types/anything.js +4 -4
- package/lib/core/validation/types/boolean.js +7 -7
- package/lib/core/validation/types/date.js +165 -131
- package/lib/core/validation/types/email.js +18 -21
- package/lib/core/validation/types/enum.js +34 -21
- package/lib/core/validation/types/geoPoint.js +7 -7
- package/lib/core/validation/types/geoShape.js +148 -125
- package/lib/core/validation/types/integer.js +9 -9
- package/lib/core/validation/types/ipAddress.js +17 -19
- package/lib/core/validation/types/numeric.js +36 -29
- package/lib/core/validation/types/object.js +19 -19
- package/lib/core/validation/types/string.js +36 -29
- package/lib/core/validation/types/url.js +17 -19
- package/lib/core/validation/validation.js +422 -378
- package/lib/kerror/codes/1-services.json +7 -1
- package/lib/kerror/codes/4-plugin.json +2 -2
- package/lib/kerror/codes/index.js +85 -63
- package/lib/kerror/errors/badRequestError.d.ts +1 -1
- package/lib/kerror/errors/externalServiceError.d.ts +1 -1
- package/lib/kerror/errors/forbiddenError.d.ts +1 -1
- package/lib/kerror/errors/gatewayTimeoutError.d.ts +1 -1
- package/lib/kerror/errors/index.d.ts +15 -15
- package/lib/kerror/errors/internalError.d.ts +1 -1
- package/lib/kerror/errors/kuzzleError.d.ts +1 -1
- package/lib/kerror/errors/multipleErrorsError.d.ts +1 -1
- package/lib/kerror/errors/multipleErrorsError.js +1 -1
- package/lib/kerror/errors/notFoundError.d.ts +1 -1
- package/lib/kerror/errors/partialError.d.ts +1 -1
- package/lib/kerror/errors/partialError.js +1 -1
- package/lib/kerror/errors/pluginImplementationError.d.ts +1 -1
- package/lib/kerror/errors/pluginImplementationError.js +2 -1
- package/lib/kerror/errors/preconditionError.d.ts +1 -1
- package/lib/kerror/errors/serviceUnavailableError.d.ts +1 -1
- package/lib/kerror/errors/sizeLimitError.d.ts +1 -1
- package/lib/kerror/errors/tooManyRequestsError.d.ts +1 -1
- package/lib/kerror/errors/unauthorizedError.d.ts +1 -1
- package/lib/kerror/index.d.ts +3 -3
- package/lib/kerror/index.js +17 -16
- package/lib/kuzzle/dumpGenerator.js +130 -114
- package/lib/kuzzle/event/kuzzleEventEmitter.js +96 -70
- package/lib/kuzzle/event/pipeRunner.js +25 -24
- package/lib/kuzzle/event/waterfall.js +13 -15
- package/lib/kuzzle/index.js +2 -2
- package/lib/kuzzle/internalIndexHandler.js +80 -59
- package/lib/kuzzle/kuzzle.js +99 -99
- package/lib/kuzzle/kuzzleStateEnum.js +1 -1
- package/lib/kuzzle/log.js +23 -18
- package/lib/kuzzle/vault.js +34 -19
- package/lib/model/security/profile.d.ts +3 -3
- package/lib/model/security/profile.js +38 -37
- package/lib/model/security/rights.js +5 -5
- package/lib/model/security/role.d.ts +3 -3
- package/lib/model/security/role.js +25 -26
- package/lib/model/security/token.d.ts +1 -1
- package/lib/model/security/token.js +4 -4
- package/lib/model/security/user.d.ts +2 -2
- package/lib/model/security/user.js +9 -9
- package/lib/model/storage/apiKey.js +43 -33
- package/lib/model/storage/baseModel.js +49 -45
- package/lib/service/cache/redis.js +60 -55
- package/lib/service/service.js +17 -17
- package/lib/service/storage/elasticsearch.js +839 -755
- package/lib/service/storage/esWrapper.js +103 -86
- package/lib/service/storage/queryTranslator.js +52 -59
- package/lib/types/Controller.d.ts +3 -3
- package/lib/types/ControllerDefinition.d.ts +3 -3
- package/lib/types/DebugModule.d.ts +2 -2
- package/lib/types/DebugModule.js +1 -1
- package/lib/types/Global.d.ts +1 -1
- package/lib/types/HttpStream.d.ts +2 -1
- package/lib/types/HttpStream.js +7 -5
- package/lib/types/Kuzzle.d.ts +1 -1
- package/lib/types/KuzzleDocument.d.ts +1 -1
- package/lib/types/OpenApiDefinition.d.ts +1 -1
- package/lib/types/PasswordPolicy.d.ts +1 -1
- package/lib/types/Plugin.d.ts +6 -6
- package/lib/types/Plugin.js +2 -2
- package/lib/types/Policy.d.ts +1 -1
- package/lib/types/RequestPayload.d.ts +1 -1
- package/lib/types/ResponsePayload.d.ts +1 -1
- package/lib/types/Token.d.ts +1 -1
- package/lib/types/User.d.ts +1 -1
- package/lib/types/config/DumpConfiguration.d.ts +8 -8
- package/lib/types/config/HttpConfiguration.d.ts +1 -1
- package/lib/types/config/KuzzleConfiguration.d.ts +1 -1
- package/lib/types/config/LimitsConfiguration.d.ts +8 -8
- package/lib/types/config/PluginsConfiguration.d.ts +4 -4
- package/lib/types/config/SecurityConfiguration.d.ts +62 -62
- package/lib/types/config/ServerConfiguration.d.ts +55 -55
- package/lib/types/config/ServicesConfiguration.d.ts +2 -2
- package/lib/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +10 -10
- package/lib/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +3 -3
- package/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +194 -110
- package/lib/types/errors/ErrorDefinition.d.ts +1 -1
- package/lib/types/errors/ErrorDomains.d.ts +1 -1
- package/lib/types/index.d.ts +38 -38
- package/lib/types/realtime/RealtimeScope.d.ts +1 -1
- package/lib/types/realtime/RealtimeUsers.d.ts +1 -1
- package/lib/util/assertType.js +13 -11
- package/lib/util/async.d.ts +1 -0
- package/lib/util/async.js +61 -0
- package/lib/util/asyncStore.js +19 -21
- package/lib/util/bufferedPassThrough.d.ts +2 -2
- package/lib/util/bufferedPassThrough.js +4 -4
- package/lib/util/bytes.js +9 -13
- package/lib/util/crypto.js +1 -1
- package/lib/util/debug.js +5 -5
- package/lib/util/deprecate.js +24 -21
- package/lib/util/didYouMean.js +7 -7
- package/lib/util/dump-collection.d.ts +2 -2
- package/lib/util/dump-collection.js +26 -26
- package/lib/util/esRequest.d.ts +1 -0
- package/lib/util/esRequest.js +62 -0
- package/lib/util/extractFields.js +24 -25
- package/lib/util/inflector.js +5 -5
- package/lib/util/koncordeCompat.d.ts +2 -2
- package/lib/util/koncordeCompat.js +5 -5
- package/lib/util/memoize.js +3 -5
- package/lib/util/mutex.d.ts +19 -1
- package/lib/util/mutex.js +39 -12
- package/lib/util/name-generator.js +1331 -1331
- package/lib/util/promback.js +8 -10
- package/lib/util/readYamlFile.d.ts +1 -1
- package/lib/util/readYamlFile.js +1 -1
- package/lib/util/requestAssertions.js +34 -34
- package/lib/util/safeObject.js +5 -5
- package/lib/util/stackTrace.js +20 -22
- package/lib/util/wildcard.js +15 -15
- package/package.json +6 -6
- package/npm-shrinkwrap.json +0 -19422
|
@@ -19,54 +19,52 @@
|
|
|
19
19
|
* limitations under the License.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
"use strict";
|
|
23
23
|
|
|
24
|
-
const Bluebird = require(
|
|
24
|
+
const Bluebird = require("bluebird");
|
|
25
25
|
|
|
26
|
-
const kerror = require(
|
|
27
|
-
const { NativeController } = require(
|
|
28
|
-
const { Mutex } = require(
|
|
29
|
-
const { BACKEND_IMPORT_KEY } = require(
|
|
26
|
+
const kerror = require("../../kerror");
|
|
27
|
+
const { NativeController } = require("./baseController");
|
|
28
|
+
const { Mutex } = require("../../util/mutex");
|
|
29
|
+
const { BACKEND_IMPORT_KEY } = require("../../kuzzle/kuzzle");
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* @class AdminController
|
|
33
33
|
*/
|
|
34
34
|
class AdminController extends NativeController {
|
|
35
|
-
constructor
|
|
35
|
+
constructor() {
|
|
36
36
|
super([
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
"dump",
|
|
38
|
+
"loadFixtures",
|
|
39
|
+
"loadMappings",
|
|
40
|
+
"loadSecurities",
|
|
41
|
+
"refreshIndexCache",
|
|
42
|
+
"resetCache",
|
|
43
|
+
"resetDatabase",
|
|
44
|
+
"resetSecurity",
|
|
45
|
+
"shutdown",
|
|
46
46
|
]);
|
|
47
47
|
|
|
48
48
|
this.shuttingDown = false;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
async refreshIndexCache
|
|
52
|
-
await global.kuzzle.ask(
|
|
51
|
+
async refreshIndexCache() {
|
|
52
|
+
await global.kuzzle.ask("core:storage:public:cache:refresh");
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* Reset Redis cache
|
|
57
57
|
*/
|
|
58
|
-
async resetCache
|
|
59
|
-
const database = request.getString(
|
|
58
|
+
async resetCache(request) {
|
|
59
|
+
const database = request.getString("database");
|
|
60
60
|
|
|
61
61
|
// @todo allow only memoryStorage
|
|
62
|
-
if (database ===
|
|
63
|
-
await this.ask(
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
else {
|
|
69
|
-
throw kerror.get('services', 'cache', 'database_not_found', database);
|
|
62
|
+
if (database === "internalCache") {
|
|
63
|
+
await this.ask("core:cache:internal:flushdb");
|
|
64
|
+
} else if (database === "memoryStorage") {
|
|
65
|
+
await this.ask("core:cache:public:flushdb");
|
|
66
|
+
} else {
|
|
67
|
+
throw kerror.get("services", "cache", "database_not_found", database);
|
|
70
68
|
}
|
|
71
69
|
|
|
72
70
|
return { acknowledge: true };
|
|
@@ -75,35 +73,43 @@ class AdminController extends NativeController {
|
|
|
75
73
|
/**
|
|
76
74
|
* Reset all roles, profiles and users
|
|
77
75
|
*/
|
|
78
|
-
async resetSecurity
|
|
79
|
-
const mutex = new Mutex(
|
|
80
|
-
|
|
81
|
-
if (!
|
|
82
|
-
throw kerror.get(
|
|
76
|
+
async resetSecurity() {
|
|
77
|
+
const mutex = new Mutex("resetSecurity", { timeout: 0 });
|
|
78
|
+
|
|
79
|
+
if (!(await mutex.lock())) {
|
|
80
|
+
throw kerror.get(
|
|
81
|
+
"api",
|
|
82
|
+
"process",
|
|
83
|
+
"action_locked",
|
|
84
|
+
"Kuzzle is already reseting roles, profiles and users."
|
|
85
|
+
);
|
|
83
86
|
}
|
|
84
87
|
|
|
85
88
|
const result = {};
|
|
86
89
|
|
|
87
90
|
try {
|
|
88
|
-
const options = { refresh:
|
|
91
|
+
const options = { refresh: "wait_for" };
|
|
89
92
|
|
|
90
93
|
result.deletedUsers = await this.ask(
|
|
91
|
-
|
|
92
|
-
options
|
|
94
|
+
"core:security:user:truncate",
|
|
95
|
+
options
|
|
96
|
+
);
|
|
93
97
|
result.deletedProfiles = await this.ask(
|
|
94
|
-
|
|
95
|
-
options
|
|
98
|
+
"core:security:profile:truncate",
|
|
99
|
+
options
|
|
100
|
+
);
|
|
96
101
|
result.deletedRoles = await this.ask(
|
|
97
|
-
|
|
98
|
-
options
|
|
102
|
+
"core:security:role:truncate",
|
|
103
|
+
options
|
|
104
|
+
);
|
|
99
105
|
|
|
100
106
|
await global.kuzzle.internalIndex.createInitialSecurities();
|
|
101
107
|
|
|
102
108
|
await this.ask(
|
|
103
|
-
|
|
104
|
-
`${BACKEND_IMPORT_KEY}:permissions`
|
|
105
|
-
|
|
106
|
-
finally {
|
|
109
|
+
"core:cache:internal:del",
|
|
110
|
+
`${BACKEND_IMPORT_KEY}:permissions`
|
|
111
|
+
);
|
|
112
|
+
} finally {
|
|
107
113
|
await mutex.unlock();
|
|
108
114
|
}
|
|
109
115
|
|
|
@@ -113,24 +119,29 @@ class AdminController extends NativeController {
|
|
|
113
119
|
/**
|
|
114
120
|
* Reset all indexes created by users
|
|
115
121
|
*/
|
|
116
|
-
async resetDatabase
|
|
117
|
-
const mutex = new Mutex(
|
|
118
|
-
|
|
119
|
-
if (!
|
|
120
|
-
throw kerror.get(
|
|
122
|
+
async resetDatabase() {
|
|
123
|
+
const mutex = new Mutex("resetDatabase", { timeout: 0 });
|
|
124
|
+
|
|
125
|
+
if (!(await mutex.lock())) {
|
|
126
|
+
throw kerror.get(
|
|
127
|
+
"api",
|
|
128
|
+
"process",
|
|
129
|
+
"action_locked",
|
|
130
|
+
"Kuzzle is already reseting all indexes."
|
|
131
|
+
);
|
|
121
132
|
}
|
|
122
133
|
|
|
123
134
|
try {
|
|
124
|
-
const indexes = await this.ask(
|
|
125
|
-
await this.ask(
|
|
135
|
+
const indexes = await this.ask("core:storage:public:index:list");
|
|
136
|
+
await this.ask("core:storage:public:index:mDelete", indexes);
|
|
126
137
|
|
|
127
138
|
await this.ask(
|
|
128
|
-
|
|
129
|
-
`${BACKEND_IMPORT_KEY}:mappings`
|
|
139
|
+
"core:cache:internal:del",
|
|
140
|
+
`${BACKEND_IMPORT_KEY}:mappings`
|
|
141
|
+
);
|
|
130
142
|
|
|
131
143
|
return { acknowledge: true };
|
|
132
|
-
}
|
|
133
|
-
finally {
|
|
144
|
+
} finally {
|
|
134
145
|
await mutex.unlock();
|
|
135
146
|
}
|
|
136
147
|
}
|
|
@@ -139,9 +150,9 @@ class AdminController extends NativeController {
|
|
|
139
150
|
* Generate a dump
|
|
140
151
|
* Kuzzle will throw a PreconditionError if a dump is already running
|
|
141
152
|
*/
|
|
142
|
-
dump
|
|
143
|
-
const waitForRefresh = request.input.args.refresh ===
|
|
144
|
-
const suffix = request.getString(
|
|
153
|
+
dump(request) {
|
|
154
|
+
const waitForRefresh = request.input.args.refresh === "wait_for";
|
|
155
|
+
const suffix = request.getString("suffix", "manual-api-action");
|
|
145
156
|
|
|
146
157
|
const promise = global.kuzzle.dump(suffix);
|
|
147
158
|
|
|
@@ -151,9 +162,14 @@ class AdminController extends NativeController {
|
|
|
151
162
|
/**
|
|
152
163
|
* Shutdown Kuzzle
|
|
153
164
|
*/
|
|
154
|
-
async shutdown
|
|
165
|
+
async shutdown() {
|
|
155
166
|
if (this.shuttingDown) {
|
|
156
|
-
throw kerror.get(
|
|
167
|
+
throw kerror.get(
|
|
168
|
+
"api",
|
|
169
|
+
"process",
|
|
170
|
+
"action_locked",
|
|
171
|
+
"Kuzzle is already shutting down."
|
|
172
|
+
);
|
|
157
173
|
}
|
|
158
174
|
|
|
159
175
|
global.kuzzle.shutdown();
|
|
@@ -161,34 +177,34 @@ class AdminController extends NativeController {
|
|
|
161
177
|
return { acknowledge: true };
|
|
162
178
|
}
|
|
163
179
|
|
|
164
|
-
loadFixtures
|
|
180
|
+
loadFixtures(request) {
|
|
165
181
|
const fixtures = request.getBody();
|
|
166
|
-
const refresh = request.getRefresh(
|
|
182
|
+
const refresh = request.getRefresh("wait_for");
|
|
167
183
|
|
|
168
|
-
return global.kuzzle.ask(
|
|
169
|
-
refresh
|
|
184
|
+
return global.kuzzle.ask("core:storage:public:document:import", fixtures, {
|
|
185
|
+
refresh,
|
|
170
186
|
});
|
|
171
187
|
}
|
|
172
188
|
|
|
173
|
-
loadMappings
|
|
189
|
+
loadMappings(request) {
|
|
174
190
|
const mappings = request.getBody();
|
|
175
191
|
|
|
176
192
|
return this._waitForAction(
|
|
177
|
-
request.getRefresh(
|
|
178
|
-
global.kuzzle.ask(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
193
|
+
request.getRefresh("wait_for"),
|
|
194
|
+
global.kuzzle.ask("core:storage:public:mappings:import", mappings, {
|
|
195
|
+
rawMappings: true,
|
|
196
|
+
})
|
|
197
|
+
);
|
|
182
198
|
}
|
|
183
199
|
|
|
184
|
-
async loadSecurities
|
|
200
|
+
async loadSecurities(request) {
|
|
185
201
|
const permissions = request.getBody();
|
|
186
202
|
const user = request.getUser();
|
|
187
203
|
const onExistingUsers = request.input.args.onExistingUsers;
|
|
188
|
-
const force = request.getBoolean(
|
|
189
|
-
const waitForRefresh = request.getRefresh(
|
|
204
|
+
const force = request.getBoolean("force");
|
|
205
|
+
const waitForRefresh = request.getRefresh("wait_for");
|
|
190
206
|
|
|
191
|
-
const promise = this.ask(
|
|
207
|
+
const promise = this.ask("core:security:load", permissions, {
|
|
192
208
|
force,
|
|
193
209
|
onExistingUsers,
|
|
194
210
|
refresh: waitForRefresh,
|
|
@@ -198,21 +214,19 @@ class AdminController extends NativeController {
|
|
|
198
214
|
return this._waitForAction(waitForRefresh, promise);
|
|
199
215
|
}
|
|
200
216
|
|
|
201
|
-
_waitForAction
|
|
217
|
+
_waitForAction(waitForRefresh, promise) {
|
|
202
218
|
const result = { acknowledge: true };
|
|
203
219
|
|
|
204
|
-
if (waitForRefresh ===
|
|
220
|
+
if (waitForRefresh === "false") {
|
|
205
221
|
// Attaching an error handler to the provided promise to prevent
|
|
206
222
|
// uncaught rejections
|
|
207
|
-
promise.catch(err => global.kuzzle.log.error(err));
|
|
223
|
+
promise.catch((err) => global.kuzzle.log.error(err));
|
|
208
224
|
|
|
209
225
|
return Bluebird.resolve(result);
|
|
210
226
|
}
|
|
211
227
|
|
|
212
|
-
return promise
|
|
213
|
-
.then(() => result);
|
|
228
|
+
return promise.then(() => result);
|
|
214
229
|
}
|
|
215
|
-
|
|
216
230
|
}
|
|
217
231
|
|
|
218
232
|
module.exports = AdminController;
|