kuzzle 2.16.11 → 2.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/controllers/adminController.js +3 -3
- package/lib/api/controllers/authController.js +12 -12
- package/lib/api/controllers/baseController.js +60 -3
- package/lib/api/controllers/clusterController.js +1 -1
- package/lib/api/controllers/collectionController.js +7 -5
- package/lib/api/controllers/documentController.js +130 -17
- package/lib/api/controllers/indexController.js +1 -1
- package/lib/api/controllers/memoryStorageController.js +39 -38
- package/lib/api/controllers/realtimeController.js +1 -1
- package/lib/api/controllers/securityController.js +50 -50
- package/lib/api/controllers/serverController.js +73 -27
- package/lib/api/documentExtractor.js +3 -3
- package/lib/api/funnel.js +44 -21
- package/lib/api/httpRoutes.js +9 -4
- package/lib/api/openapi/OpenApiManager.d.ts +11 -0
- package/lib/api/openapi/OpenApiManager.js +96 -0
- package/lib/api/openapi/{document → components/document}/count.yaml +2 -2
- package/lib/api/openapi/{document → components/document}/create.yaml +2 -2
- package/lib/api/openapi/{document → components/document}/createOrReplace.yaml +2 -2
- package/lib/api/openapi/{document → components/document}/delete.yaml +1 -1
- package/lib/api/openapi/{document → components/document}/deleteByQuery.yaml +2 -2
- package/lib/api/openapi/{document → components/document}/exists.yaml +1 -1
- package/lib/api/openapi/{document → components/document}/get.yaml +1 -1
- package/lib/api/openapi/{document → components/document}/index.d.ts +2 -0
- package/lib/api/openapi/{document → components/document}/index.js +7 -2
- package/lib/api/openapi/{document → components/document}/replace.yaml +2 -2
- package/lib/api/openapi/{document → components/document}/scroll.yaml +1 -1
- package/lib/api/openapi/{document → components/document}/update.yaml +2 -2
- package/lib/api/openapi/components/document/validate.yaml +42 -0
- package/lib/api/openapi/components/index.d.ts +2 -0
- package/lib/api/openapi/components/index.js +18 -0
- package/lib/api/openapi/{payloads.yaml → components/payloads.yaml} +0 -0
- package/lib/api/openapi/index.d.ts +1 -2
- package/lib/api/openapi/index.js +1 -5
- package/lib/api/openapi/openApiGenerator.d.ts +7 -0
- package/lib/api/openapi/openApiGenerator.js +133 -0
- package/lib/api/request/kuzzleRequest.js +8 -6
- package/lib/cluster/node.js +9 -9
- package/lib/cluster/publisher.js +1 -1
- package/lib/cluster/state.js +20 -4
- package/lib/cluster/subscriber.js +1 -1
- package/lib/cluster/workers/IDCardRenewer.js +2 -2
- package/lib/config/default.config.js +1 -0
- package/lib/config/index.js +6 -6
- package/lib/core/auth/passportResponse.js +6 -6
- package/lib/core/auth/passportWrapper.js +5 -5
- package/lib/core/backend/backend.d.ts +11 -3
- package/lib/core/backend/backend.js +22 -17
- package/lib/core/backend/backendConfig.d.ts +5 -1
- package/lib/core/backend/backendConfig.js +25 -2
- package/lib/core/backend/backendController.js +21 -5
- package/lib/core/backend/backendErrors.d.ts +58 -0
- package/lib/core/backend/backendErrors.js +121 -0
- package/lib/core/backend/backendHook.js +21 -5
- package/lib/core/backend/backendImport.js +21 -5
- package/lib/core/backend/backendOpenApi.d.ts +9 -0
- package/lib/core/backend/backendOpenApi.js +69 -0
- package/lib/core/backend/backendPipe.js +21 -5
- package/lib/core/backend/backendPlugin.js +22 -3
- package/lib/core/backend/backendVault.js +21 -2
- package/lib/core/backend/index.d.ts +2 -0
- package/lib/core/backend/index.js +2 -0
- package/lib/core/network/accessLogger.js +6 -6
- package/lib/core/network/clientConnection.js +1 -1
- package/lib/core/network/entryPoint.js +5 -5
- package/lib/core/network/httpRouter/index.js +5 -5
- package/lib/core/network/httpRouter/routeHandler.js +3 -3
- package/lib/core/network/httpRouter/routePart.js +5 -5
- package/lib/core/network/protocolManifest.js +1 -1
- package/lib/core/network/protocols/httpMessage.js +2 -2
- package/lib/core/network/protocols/httpwsProtocol.js +228 -50
- package/lib/core/network/protocols/mqttProtocol.js +3 -3
- package/lib/core/network/protocols/protocol.js +3 -3
- package/lib/core/network/router.js +7 -6
- package/lib/core/plugin/plugin.js +38 -64
- package/lib/core/plugin/pluginContext.js +22 -3
- package/lib/core/plugin/pluginManifest.js +3 -3
- package/lib/core/plugin/pluginRepository.js +5 -5
- package/lib/core/plugin/pluginsManager.js +29 -28
- package/lib/core/realtime/channel.js +20 -4
- package/lib/core/realtime/hotelClerk.js +24 -5
- package/lib/core/realtime/notification/server.js +1 -1
- package/lib/core/realtime/notification/user.js +1 -1
- package/lib/core/realtime/notifier.js +5 -5
- package/lib/core/security/index.js +1 -1
- package/lib/core/security/profileRepository.d.ts +176 -0
- package/lib/core/security/profileRepository.js +445 -443
- package/lib/core/security/roleRepository.js +16 -16
- package/lib/core/security/securityLoader.js +2 -2
- package/lib/core/security/tokenRepository.js +11 -11
- package/lib/core/security/userRepository.js +8 -8
- package/lib/core/shared/abstractManifest.js +4 -4
- package/lib/core/shared/repository.js +5 -5
- package/lib/core/shared/sdk/embeddedSdk.js +21 -2
- package/lib/core/shared/sdk/funnelProtocol.js +1 -1
- package/lib/core/shared/sdk/impersonatedSdk.js +1 -1
- package/lib/core/shared/store.js +30 -23
- package/lib/core/statistics/statistics.js +17 -17
- package/lib/core/storage/clientAdapter.js +45 -10
- package/lib/core/storage/indexCache.js +20 -4
- package/lib/core/validation/baseType.js +5 -5
- package/lib/core/validation/types/anything.js +1 -1
- package/lib/core/validation/types/boolean.js +2 -2
- package/lib/core/validation/types/date.js +9 -9
- package/lib/core/validation/types/email.js +5 -5
- package/lib/core/validation/types/enum.js +6 -6
- package/lib/core/validation/types/geoPoint.js +2 -2
- package/lib/core/validation/types/geoShape.js +28 -25
- package/lib/core/validation/types/integer.js +4 -4
- package/lib/core/validation/types/ipAddress.js +7 -6
- package/lib/core/validation/types/numeric.js +4 -4
- package/lib/core/validation/types/object.js +5 -5
- package/lib/core/validation/types/string.js +5 -5
- package/lib/core/validation/types/url.js +7 -6
- package/lib/core/validation/validation.js +95 -84
- package/lib/kerror/codes/1-services.json +12 -0
- package/lib/kerror/codes/2-api.json +12 -0
- package/lib/kerror/codes/3-network.json +12 -0
- package/lib/kerror/codes/4-plugin.json +6 -0
- package/lib/kerror/codes/index.js +11 -11
- package/lib/kerror/errors/multipleErrorsError.d.ts +1 -1
- package/lib/kerror/errors/multipleErrorsError.js +3 -3
- package/lib/kerror/index.d.ts +82 -0
- package/lib/kerror/index.js +176 -143
- package/lib/kuzzle/dumpGenerator.js +3 -3
- package/lib/kuzzle/event/kuzzleEventEmitter.js +4 -4
- package/lib/kuzzle/event/pipeRunner.js +1 -1
- package/lib/kuzzle/event/waterfall.js +6 -6
- package/lib/kuzzle/kuzzle.js +59 -9
- package/lib/kuzzle/log.js +3 -3
- package/lib/kuzzle/vault.js +3 -3
- package/lib/model/security/profile.d.ts +54 -0
- package/lib/model/security/profile.js +192 -232
- package/lib/model/security/rights.js +1 -1
- package/lib/model/security/role.d.ts +40 -0
- package/lib/model/security/role.js +174 -190
- package/lib/model/security/user.d.ts +29 -0
- package/lib/model/security/user.js +103 -52
- package/lib/model/storage/apiKey.js +2 -2
- package/lib/model/storage/baseModel.js +3 -3
- package/lib/service/cache/redis.js +7 -7
- package/lib/service/storage/elasticsearch.js +152 -90
- package/lib/service/storage/esWrapper.js +2 -3
- package/lib/types/ControllerDefinition.d.ts +3 -3
- package/lib/types/ControllerRights.d.ts +22 -0
- package/lib/types/ControllerRights.js +23 -0
- package/lib/types/HttpStream.d.ts +32 -0
- package/lib/types/HttpStream.js +70 -0
- package/lib/types/OpenApiDefinition.d.ts +43 -0
- package/lib/types/{config/StorageService/StorageServiceElasticsearchConfiguration.js → OpenApiDefinition.js} +1 -1
- package/lib/types/Plugin.js +20 -4
- package/lib/types/Policy.d.ts +25 -0
- package/lib/types/{InternalLogger.js → Policy.js} +2 -2
- package/lib/types/PolicyRestrictions.d.ts +21 -0
- package/lib/types/PolicyRestrictions.js +23 -0
- package/lib/types/Target.d.ts +15 -0
- package/lib/types/Target.js +23 -0
- package/lib/types/config/KuzzleConfiguration.d.ts +4 -0
- package/lib/types/config/ServicesConfiguration.d.ts +2 -2
- package/lib/types/config/{StorageService/StorageServiceElasticsearchConfiguration.d.ts → storageEngine/StorageEngineElasticsearchConfiguration.d.ts} +10 -3
- package/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.js +3 -0
- package/lib/types/errors/ErrorDefinition.d.ts +27 -0
- package/lib/types/errors/ErrorDefinition.js +3 -0
- package/lib/types/errors/ErrorDomains.d.ts +17 -0
- package/lib/types/errors/ErrorDomains.js +3 -0
- package/lib/types/index.d.ts +9 -1
- package/lib/types/index.js +9 -1
- package/lib/util/array.d.ts +11 -0
- package/lib/util/array.js +57 -0
- package/lib/util/assertType.js +6 -6
- package/lib/util/bufferedPassThrough.d.ts +76 -0
- package/lib/util/bufferedPassThrough.js +161 -0
- package/lib/util/deprecate.js +7 -5
- package/lib/util/didYouMean.js +1 -1
- package/lib/util/dump-collection.d.ts +3 -0
- package/lib/util/dump-collection.js +284 -0
- package/lib/util/extractFields.js +2 -2
- package/lib/util/inflector.d.ts +8 -0
- package/lib/util/inflector.js +16 -0
- package/lib/util/mutex.js +21 -2
- package/lib/util/requestAssertions.js +7 -7
- package/lib/util/wildcard.js +55 -0
- package/package-lock.json +535 -75
- package/package.json +5 -3
- package/lib/api/openApiGenerator.d.ts +0 -7
- package/lib/api/openApiGenerator.js +0 -197
- package/lib/types/InternalLogger.d.ts +0 -25
|
@@ -29,7 +29,7 @@ const
|
|
|
29
29
|
* @class ObjectType
|
|
30
30
|
*/
|
|
31
31
|
class ObjectType extends BaseType {
|
|
32
|
-
constructor() {
|
|
32
|
+
constructor () {
|
|
33
33
|
super();
|
|
34
34
|
this.typeName = 'object';
|
|
35
35
|
this.allowChildren = true;
|
|
@@ -42,7 +42,7 @@ class ObjectType extends BaseType {
|
|
|
42
42
|
* @param {string[]} errorMessages
|
|
43
43
|
* @returns {boolean}
|
|
44
44
|
*/
|
|
45
|
-
validate(typeOptions, fieldValue, errorMessages) {
|
|
45
|
+
validate (typeOptions, fieldValue, errorMessages) {
|
|
46
46
|
if (fieldValue === null
|
|
47
47
|
|| typeof fieldValue !== 'object'
|
|
48
48
|
|| Array.isArray(fieldValue)
|
|
@@ -59,7 +59,7 @@ class ObjectType extends BaseType {
|
|
|
59
59
|
* @returns {TypeOptions}
|
|
60
60
|
* @throws {PreconditionError}
|
|
61
61
|
*/
|
|
62
|
-
validateFieldSpecification(typeOptions) {
|
|
62
|
+
validateFieldSpecification (typeOptions) {
|
|
63
63
|
if (Object.prototype.hasOwnProperty.call(typeOptions, 'strict')
|
|
64
64
|
&& typeof typeOptions.strict !== 'boolean'
|
|
65
65
|
) {
|
|
@@ -75,8 +75,8 @@ class ObjectType extends BaseType {
|
|
|
75
75
|
* @returns {boolean|TypeOptions}
|
|
76
76
|
* @throws KuzzleInternalError
|
|
77
77
|
*/
|
|
78
|
-
getStrictness(typeOptions, parentStrictness) {
|
|
79
|
-
if (!Object.prototype.hasOwnProperty.call(typeOptions, 'strict')) {
|
|
78
|
+
getStrictness (typeOptions, parentStrictness) {
|
|
79
|
+
if (! Object.prototype.hasOwnProperty.call(typeOptions, 'strict')) {
|
|
80
80
|
return parentStrictness;
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -29,7 +29,7 @@ const
|
|
|
29
29
|
* @class StringType
|
|
30
30
|
*/
|
|
31
31
|
class StringType extends BaseType {
|
|
32
|
-
constructor() {
|
|
32
|
+
constructor () {
|
|
33
33
|
super();
|
|
34
34
|
this.typeName = 'string';
|
|
35
35
|
this.allowChildren = false;
|
|
@@ -42,13 +42,13 @@ class StringType extends BaseType {
|
|
|
42
42
|
* @param {string[]} errorMessages
|
|
43
43
|
* @returns {boolean}
|
|
44
44
|
*/
|
|
45
|
-
validate(typeOptions, fieldValue, errorMessages) {
|
|
45
|
+
validate (typeOptions, fieldValue, errorMessages) {
|
|
46
46
|
if (typeof fieldValue !== 'string') {
|
|
47
47
|
errorMessages.push('The field must be a string.');
|
|
48
48
|
return false;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
if (!typeOptions.length) {
|
|
51
|
+
if (! typeOptions.length) {
|
|
52
52
|
return true;
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -74,9 +74,9 @@ class StringType extends BaseType {
|
|
|
74
74
|
* @returns {TypeOptions}
|
|
75
75
|
* @throws {PreconditionError}
|
|
76
76
|
*/
|
|
77
|
-
validateFieldSpecification(typeOptions) {
|
|
77
|
+
validateFieldSpecification (typeOptions) {
|
|
78
78
|
if (Object.prototype.hasOwnProperty.call(typeOptions, 'length')) {
|
|
79
|
-
if (!this.checkAllowedProperties(typeOptions.length, ['min', 'max'])) {
|
|
79
|
+
if (! this.checkAllowedProperties(typeOptions.length, ['min', 'max'])) {
|
|
80
80
|
throw kerror.get('unexpected_properties', 'length', 'min, max');
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -30,7 +30,7 @@ const
|
|
|
30
30
|
* @class UrlType
|
|
31
31
|
*/
|
|
32
32
|
class UrlType extends BaseType {
|
|
33
|
-
constructor() {
|
|
33
|
+
constructor () {
|
|
34
34
|
super();
|
|
35
35
|
this.typeName = 'url';
|
|
36
36
|
this.allowChildren = false;
|
|
@@ -43,7 +43,7 @@ class UrlType extends BaseType {
|
|
|
43
43
|
* @param {string[]} errorMessages
|
|
44
44
|
* @returns {boolean}
|
|
45
45
|
*/
|
|
46
|
-
validate(typeOptions, fieldValue, errorMessages) {
|
|
46
|
+
validate (typeOptions, fieldValue, errorMessages) {
|
|
47
47
|
if (typeof fieldValue !== 'string') {
|
|
48
48
|
errorMessages.push('The field must be a string.');
|
|
49
49
|
return false;
|
|
@@ -57,7 +57,7 @@ class UrlType extends BaseType {
|
|
|
57
57
|
return true;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
if (!validator.isURL(fieldValue)) {
|
|
60
|
+
if (! validator.isURL(fieldValue)) {
|
|
61
61
|
errorMessages.push('The string must be a valid URL.');
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
@@ -70,10 +70,11 @@ class UrlType extends BaseType {
|
|
|
70
70
|
* @returns {TypeOptions}
|
|
71
71
|
* @throws PreconditionError
|
|
72
72
|
*/
|
|
73
|
-
validateFieldSpecification(typeOptions) {
|
|
74
|
-
if (!Object.prototype.hasOwnProperty.call(typeOptions, 'notEmpty')) {
|
|
73
|
+
validateFieldSpecification (typeOptions) {
|
|
74
|
+
if (! Object.prototype.hasOwnProperty.call(typeOptions, 'notEmpty')) {
|
|
75
75
|
typeOptions.notEmpty = false;
|
|
76
|
-
}
|
|
76
|
+
}
|
|
77
|
+
else if (typeof typeOptions.notEmpty !== 'boolean') {
|
|
77
78
|
throw kerror.get('invalid_type', 'notEmpty', 'boolean');
|
|
78
79
|
}
|
|
79
80
|
|