kuzzle 2.17.7 → 2.17.8
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/bin/start-kuzzle-server +1 -1
- package/lib/api/controllers/adminController.js +1 -1
- package/lib/api/controllers/authController.js +1 -1
- package/lib/api/controllers/baseController.js +1 -1
- package/lib/api/controllers/bulkController.js +1 -1
- package/lib/api/controllers/clusterController.js +1 -1
- package/lib/api/controllers/collectionController.js +1 -1
- package/lib/api/controllers/documentController.js +7 -2
- package/lib/api/controllers/index.js +1 -1
- package/lib/api/controllers/indexController.js +1 -1
- package/lib/api/controllers/memoryStorageController.js +1 -1
- package/lib/api/controllers/realtimeController.js +1 -1
- package/lib/api/controllers/securityController.js +1 -1
- package/lib/api/controllers/serverController.js +1 -1
- package/lib/api/documentExtractor.js +1 -1
- package/lib/api/funnel.js +1 -1
- package/lib/api/httpRoutes.js +5 -4
- package/lib/api/openapi/OpenApiManager.js +2 -1
- package/lib/api/openapi/components/document/index.d.ts +2 -0
- package/lib/api/openapi/components/document/index.js +6 -1
- package/lib/api/openapi/components/document/mCreateOrReplace.yaml +93 -0
- package/lib/api/openapi/openApiGenerator.js +1 -1
- package/lib/api/rateLimiter.js +1 -1
- package/lib/api/request/kuzzleRequest.js +1 -1
- package/lib/api/request/requestContext.js +1 -1
- package/lib/api/request/requestInput.js +1 -1
- package/lib/api/request/requestResponse.js +1 -1
- package/lib/cluster/command.js +1 -1
- package/lib/cluster/idCardHandler.js +1 -1
- package/lib/cluster/index.js +1 -1
- package/lib/cluster/node.js +8 -8
- package/lib/cluster/publisher.js +1 -1
- package/lib/cluster/state.js +1 -1
- package/lib/cluster/subscriber.js +4 -1
- package/lib/config/documentEventAliases.js +1 -1
- package/lib/config/index.js +1 -1
- package/lib/core/auth/formatProcessing.js +1 -1
- package/lib/core/auth/passportResponse.js +1 -1
- package/lib/core/auth/passportWrapper.js +1 -1
- package/lib/core/auth/tokenManager.js +1 -1
- package/lib/core/backend/applicationManager.js +1 -1
- package/lib/core/backend/backend.js +1 -1
- package/lib/core/backend/backendCluster.js +1 -1
- package/lib/core/backend/backendConfig.js +1 -1
- package/lib/core/backend/backendController.js +1 -1
- package/lib/core/backend/backendErrors.js +1 -1
- package/lib/core/backend/backendHook.js +1 -1
- package/lib/core/backend/backendImport.js +1 -1
- package/lib/core/backend/backendOpenApi.js +1 -1
- package/lib/core/backend/backendPipe.js +1 -1
- package/lib/core/backend/backendPlugin.js +1 -1
- package/lib/core/backend/backendStorage.js +1 -1
- package/lib/core/backend/backendVault.js +1 -1
- package/lib/core/backend/internalLogger.js +1 -1
- package/lib/core/cache/cacheDbEnum.js +1 -1
- package/lib/core/cache/cacheEngine.js +1 -1
- package/lib/core/network/accessLogger.js +1 -1
- package/lib/core/network/clientConnection.js +1 -1
- package/lib/core/network/context.js +1 -1
- package/lib/core/network/entryPoint.js +6 -6
- package/lib/core/network/httpRouter/index.js +1 -1
- package/lib/core/network/httpRouter/routeHandler.js +1 -1
- package/lib/core/network/httpRouter/routePart.js +1 -1
- package/lib/core/network/protocolManifest.js +1 -1
- package/lib/core/network/protocols/httpMessage.js +1 -1
- package/lib/core/network/protocols/httpwsProtocol.js +5 -10
- package/lib/core/network/protocols/internalProtocol.js +1 -1
- package/lib/core/network/protocols/mqttProtocol.js +4 -3
- package/lib/core/network/protocols/protocol.js +1 -1
- package/lib/core/network/router.js +11 -2
- package/lib/core/plugin/plugin.js +1 -1
- package/lib/core/plugin/pluginContext.js +1 -1
- package/lib/core/plugin/pluginManifest.js +1 -1
- package/lib/core/plugin/pluginRepository.js +1 -1
- package/lib/core/plugin/pluginsManager.js +1 -1
- package/lib/core/plugin/privilegedContext.js +1 -1
- package/lib/core/realtime/actionEnum.js +1 -1
- package/lib/core/realtime/channel.js +1 -1
- package/lib/core/realtime/connectionRooms.js +1 -1
- package/lib/core/realtime/hotelClerk.js +66 -24
- package/lib/core/realtime/index.js +1 -1
- package/lib/core/realtime/notification/document.js +1 -1
- package/lib/core/realtime/notification/index.js +1 -1
- package/lib/core/realtime/notification/server.js +1 -1
- package/lib/core/realtime/notification/user.js +1 -1
- package/lib/core/realtime/notifier.js +1 -1
- package/lib/core/realtime/room.js +1 -1
- package/lib/core/realtime/subscription.js +1 -1
- package/lib/core/security/index.js +1 -1
- package/lib/core/security/profileRepository.js +1 -1
- package/lib/core/security/roleRepository.js +1 -1
- package/lib/core/security/securityLoader.js +1 -1
- package/lib/core/security/tokenRepository.js +1 -1
- package/lib/core/security/userRepository.js +1 -1
- package/lib/core/shared/KoncordeWrapper.js +1 -1
- package/lib/core/shared/abstractManifest.js +1 -1
- package/lib/core/shared/repository.js +1 -1
- package/lib/core/shared/sdk/embeddedSdk.js +4 -3
- package/lib/core/shared/sdk/funnelProtocol.d.ts +14 -0
- package/lib/core/shared/sdk/funnelProtocol.js +76 -81
- package/lib/core/shared/sdk/impersonatedSdk.js +1 -1
- package/lib/core/shared/store.js +1 -1
- package/lib/core/statistics/index.js +1 -1
- package/lib/core/statistics/statistics.js +1 -1
- package/lib/core/storage/clientAdapter.js +1 -1
- package/lib/core/storage/indexCache.js +1 -1
- package/lib/core/storage/storageEngine.js +1 -1
- package/lib/core/storage/storeScopeEnum.js +1 -1
- package/lib/core/validation/baseType.js +1 -1
- package/lib/core/validation/index.js +1 -1
- package/lib/core/validation/types/anything.js +1 -1
- package/lib/core/validation/types/boolean.js +1 -1
- package/lib/core/validation/types/date.js +1 -1
- package/lib/core/validation/types/email.js +1 -1
- package/lib/core/validation/types/enum.js +1 -1
- package/lib/core/validation/types/geoPoint.js +1 -1
- package/lib/core/validation/types/geoShape.js +1 -1
- package/lib/core/validation/types/integer.js +1 -1
- package/lib/core/validation/types/ipAddress.js +1 -1
- package/lib/core/validation/types/numeric.js +1 -1
- package/lib/core/validation/types/object.js +1 -1
- package/lib/core/validation/types/string.js +1 -1
- package/lib/core/validation/types/url.js +1 -1
- package/lib/core/validation/validation.js +1 -1
- package/lib/kerror/codes/index.js +1 -1
- package/lib/kerror/errors/badRequestError.js +1 -1
- package/lib/kerror/errors/externalServiceError.js +1 -1
- package/lib/kerror/errors/forbiddenError.js +1 -1
- package/lib/kerror/errors/gatewayTimeoutError.js +1 -1
- package/lib/kerror/errors/index.js +1 -1
- package/lib/kerror/errors/internalError.js +1 -1
- package/lib/kerror/errors/kuzzleError.js +1 -1
- package/lib/kerror/errors/multipleErrorsError.js +1 -1
- package/lib/kerror/errors/notFoundError.js +1 -1
- package/lib/kerror/errors/partialError.js +1 -1
- package/lib/kerror/errors/pluginImplementationError.js +1 -1
- package/lib/kerror/errors/preconditionError.js +1 -1
- package/lib/kerror/errors/serviceUnavailableError.js +1 -1
- package/lib/kerror/errors/sizeLimitError.js +1 -1
- package/lib/kerror/errors/tooManyRequestsError.js +1 -1
- package/lib/kerror/errors/unauthorizedError.js +1 -1
- package/lib/kerror/index.js +2 -4
- package/lib/kuzzle/dumpGenerator.js +1 -1
- package/lib/kuzzle/event/kuzzleEventEmitter.js +39 -1
- package/lib/kuzzle/event/pipeRunner.js +1 -1
- package/lib/kuzzle/event/waterfall.js +1 -1
- package/lib/kuzzle/index.js +1 -1
- package/lib/kuzzle/internalIndexHandler.js +1 -1
- package/lib/kuzzle/kuzzle.js +1 -1
- package/lib/kuzzle/kuzzleStateEnum.js +1 -1
- package/lib/kuzzle/log.js +1 -1
- package/lib/kuzzle/vault.js +1 -1
- package/lib/model/security/profile.js +1 -1
- package/lib/model/security/rights.js +1 -1
- package/lib/model/security/role.js +1 -1
- package/lib/model/security/token.js +1 -1
- package/lib/model/security/user.js +1 -1
- package/lib/model/storage/apiKey.js +1 -1
- package/lib/model/storage/baseModel.js +1 -1
- package/lib/service/cache/redis.js +1 -1
- package/lib/service/service.js +1 -1
- package/lib/service/storage/elasticsearch.js +5 -5
- package/lib/service/storage/esWrapper.js +1 -1
- package/lib/service/storage/queryTranslator.js +1 -1
- package/lib/types/Controller.js +1 -1
- package/lib/types/ControllerDefinition.js +1 -1
- package/lib/types/Deprecation.js +1 -1
- package/lib/types/EventHandler.js +1 -1
- package/lib/types/KuzzleDocument.d.ts +3 -0
- package/lib/types/Plugin.js +1 -1
- package/lib/types/PluginManifest.js +1 -1
- package/lib/types/RequestPayload.js +1 -1
- package/lib/types/ResponsePayload.js +1 -1
- package/lib/types/StrategyDefinition.js +1 -1
- package/lib/types/Token.js +1 -1
- package/lib/types/User.js +1 -1
- package/lib/types/index.js +1 -1
- package/lib/util/array.js +1 -1
- package/lib/util/assertType.js +1 -1
- package/lib/util/asyncStore.js +1 -1
- package/lib/util/debug.js +1 -1
- package/lib/util/deprecate.js +1 -1
- package/lib/util/didYouMean.js +1 -1
- package/lib/util/extractFields.js +1 -1
- package/lib/util/inflector.js +1 -1
- package/lib/util/koncordeCompat.js +1 -1
- package/lib/util/memoize.js +1 -1
- package/lib/util/mutex.js +1 -1
- package/lib/util/name-generator.js +1 -1
- package/lib/util/promback.js +1 -1
- package/lib/util/requestAssertions.js +1 -1
- package/lib/util/safeObject.js +1 -1
- package/lib/util/stackTrace.js +56 -17
- package/lib/util/wildcard.js +1 -1
- package/package-lock.json +1 -1
- package/package.json +4 -3
- package/lib/core/network/removeErrorStack.js +0 -56
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
4
4
|
* to power modern apps
|
|
5
5
|
*
|
|
6
|
-
* Copyright 2015-
|
|
6
|
+
* Copyright 2015-2022 Kuzzle
|
|
7
7
|
* mailto: support AT kuzzle.io
|
|
8
8
|
* website: http://kuzzle.io
|
|
9
9
|
*
|
|
@@ -48,7 +48,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
48
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
49
|
exports.EmbeddedSDK = void 0;
|
|
50
50
|
const kuzzle_sdk_1 = require("kuzzle-sdk");
|
|
51
|
-
const funnelProtocol_1 =
|
|
51
|
+
const funnelProtocol_1 = require("./funnelProtocol");
|
|
52
52
|
const safeObject_1 = require("../../../util/safeObject");
|
|
53
53
|
const kerror = __importStar(require("../../../kerror"));
|
|
54
54
|
const impersonatedSdk_1 = __importDefault(require("./impersonatedSdk"));
|
|
@@ -58,7 +58,8 @@ const contextError = kerror.wrap('plugin', 'context');
|
|
|
58
58
|
*/
|
|
59
59
|
class EmbeddedSDK extends kuzzle_sdk_1.Kuzzle {
|
|
60
60
|
constructor() {
|
|
61
|
-
|
|
61
|
+
// FunnelProtocol is not technically a valid SDK protocol
|
|
62
|
+
super(new funnelProtocol_1.FunnelProtocol(), { autoResubscribe: false });
|
|
62
63
|
}
|
|
63
64
|
/**
|
|
64
65
|
* Returns a new SDK impersonated with the provided user.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { KuzzleEventEmitter } from 'kuzzle-sdk';
|
|
2
|
+
import { RequestPayload } from '../../../types';
|
|
3
|
+
export declare class FunnelProtocol extends KuzzleEventEmitter {
|
|
4
|
+
private id;
|
|
5
|
+
private connectionId;
|
|
6
|
+
constructor();
|
|
7
|
+
isReady(): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Hydrate the user and execute SDK query
|
|
10
|
+
*/
|
|
11
|
+
query(request: RequestPayload): Promise<{
|
|
12
|
+
result: any;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
4
|
* to power modern apps
|
|
4
5
|
*
|
|
5
|
-
* Copyright 2015-
|
|
6
|
+
* Copyright 2015-2022 Kuzzle
|
|
6
7
|
* mailto: support AT kuzzle.io
|
|
7
8
|
* website: http://kuzzle.io
|
|
8
9
|
*
|
|
@@ -18,88 +19,82 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const { Request } = require('../../../api/request');
|
|
27
|
-
const kerror = require('../../../kerror');
|
|
28
|
-
const { hilightUserCode } = require('../../../util/stackTrace');
|
|
29
|
-
|
|
30
|
-
class FunnelProtocol extends KuzzleEventEmitter {
|
|
31
|
-
constructor () {
|
|
32
|
-
super();
|
|
33
|
-
|
|
34
|
-
this.id = 'funnel';
|
|
35
|
-
this.connectionId = null;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Realtime notifications are sent by the InternalProtocol
|
|
39
|
-
* through the internal event system.
|
|
40
|
-
*/
|
|
41
|
-
global.kuzzle.on('core:network:internal:message', message => {
|
|
42
|
-
// Send the notifications to the SDK for the internal Room mechanism
|
|
43
|
-
this.emit(message.room, message);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
isReady () {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Hydrate the user and execute SDK query
|
|
53
|
-
*/
|
|
54
|
-
async query (request) {
|
|
55
|
-
if (! this.connectionId) {
|
|
56
|
-
this.connectionId = await global.kuzzle.ask('core:network:internal:connectionId:get');
|
|
22
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
25
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
26
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
57
27
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
28
|
+
Object.defineProperty(o, k2, desc);
|
|
29
|
+
}) : (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
o[k2] = m[k];
|
|
32
|
+
}));
|
|
33
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
34
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
35
|
+
}) : function(o, v) {
|
|
36
|
+
o["default"] = v;
|
|
37
|
+
});
|
|
38
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.FunnelProtocol = void 0;
|
|
47
|
+
const kuzzle_sdk_1 = require("kuzzle-sdk");
|
|
48
|
+
const request_1 = require("../../../api/request");
|
|
49
|
+
const kerror = __importStar(require("../../../kerror"));
|
|
50
|
+
class FunnelProtocol extends kuzzle_sdk_1.KuzzleEventEmitter {
|
|
51
|
+
constructor() {
|
|
52
|
+
super();
|
|
53
|
+
this.id = 'funnel';
|
|
54
|
+
this.connectionId = null;
|
|
55
|
+
/**
|
|
56
|
+
* Realtime notifications are sent by the InternalProtocol
|
|
57
|
+
* through the internal event system.
|
|
58
|
+
*/
|
|
59
|
+
global.kuzzle.on('core:network:internal:message', message => {
|
|
60
|
+
// Send the notifications to the SDK for the internal Room mechanism
|
|
61
|
+
this.emit(message.room, message);
|
|
62
|
+
});
|
|
74
63
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
try {
|
|
79
|
-
if (requestOptions.user && request.__checkRights__
|
|
80
|
-
&& ! await requestOptions.user.isActionAllowed(kuzzleRequest)
|
|
81
|
-
) {
|
|
82
|
-
throw kerror.get(
|
|
83
|
-
'security',
|
|
84
|
-
'rights',
|
|
85
|
-
'forbidden',
|
|
86
|
-
kuzzleRequest.input.controller,
|
|
87
|
-
kuzzleRequest.input.action,
|
|
88
|
-
requestOptions.user._id);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const result = await global.kuzzle.funnel.executePluginRequest(kuzzleRequest);
|
|
92
|
-
|
|
93
|
-
return { result };
|
|
64
|
+
isReady() {
|
|
65
|
+
return true;
|
|
94
66
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Hydrate the user and execute SDK query
|
|
69
|
+
*/
|
|
70
|
+
async query(request) {
|
|
71
|
+
if (!this.connectionId) {
|
|
72
|
+
this.connectionId = await global.kuzzle.ask('core:network:internal:connectionId:get');
|
|
73
|
+
}
|
|
74
|
+
const requestOptions = {
|
|
75
|
+
connection: {
|
|
76
|
+
id: this.connectionId,
|
|
77
|
+
protocol: this.id
|
|
78
|
+
},
|
|
79
|
+
user: null,
|
|
80
|
+
};
|
|
81
|
+
// Validate and use the provided request.kuid
|
|
82
|
+
if (request.__kuid__) {
|
|
83
|
+
if (typeof request.__kuid__ !== 'string') {
|
|
84
|
+
throw kerror.get('plugin', 'context', 'invalid_user');
|
|
85
|
+
}
|
|
86
|
+
// Get the user and store it in this context to prevent any possible race conditions
|
|
87
|
+
requestOptions.user = await global.kuzzle.ask('core:security:user:get', request.__kuid__);
|
|
88
|
+
}
|
|
89
|
+
const kuzzleRequest = new request_1.Request(request, requestOptions);
|
|
90
|
+
if (requestOptions.user
|
|
91
|
+
&& request.__checkRights__
|
|
92
|
+
&& !await requestOptions.user.isActionAllowed(kuzzleRequest)) {
|
|
93
|
+
throw kerror.get('security', 'rights', 'forbidden', kuzzleRequest.input.controller, kuzzleRequest.input.action, requestOptions.user._id);
|
|
94
|
+
}
|
|
95
|
+
const result = await global.kuzzle.funnel.executePluginRequest(kuzzleRequest);
|
|
96
|
+
return { result };
|
|
101
97
|
}
|
|
102
|
-
}
|
|
103
98
|
}
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
exports.FunnelProtocol = FunnelProtocol;
|
|
100
|
+
//# sourceMappingURL=funnelProtocol.js.map
|
package/lib/core/shared/store.js
CHANGED