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.
Files changed (289) hide show
  1. package/lib/api/controllers/adminController.js +94 -80
  2. package/lib/api/controllers/authController.js +239 -212
  3. package/lib/api/controllers/baseController.js +89 -51
  4. package/lib/api/controllers/bulkController.js +62 -49
  5. package/lib/api/controllers/clusterController.js +6 -8
  6. package/lib/api/controllers/collectionController.js +140 -129
  7. package/lib/api/controllers/debugController.d.ts +2 -2
  8. package/lib/api/controllers/debugController.js +33 -31
  9. package/lib/api/controllers/documentController.js +365 -274
  10. package/lib/api/controllers/index.js +13 -13
  11. package/lib/api/controllers/indexController.js +46 -50
  12. package/lib/api/controllers/memoryStorageController.js +410 -360
  13. package/lib/api/controllers/realtimeController.js +37 -36
  14. package/lib/api/controllers/securityController.js +553 -412
  15. package/lib/api/controllers/serverController.js +111 -104
  16. package/lib/api/documentExtractor.js +75 -68
  17. package/lib/api/funnel.js +411 -312
  18. package/lib/api/httpRoutes.js +1493 -324
  19. package/lib/api/openapi/OpenApiManager.d.ts +1 -1
  20. package/lib/api/openapi/OpenApiManager.js +22 -22
  21. package/lib/api/openapi/components/document/count.yaml +1 -1
  22. package/lib/api/openapi/components/document/create.yaml +2 -2
  23. package/lib/api/openapi/components/document/delete.yaml +1 -1
  24. package/lib/api/openapi/components/document/deleteByQuery.yaml +1 -1
  25. package/lib/api/openapi/components/document/exists.yaml +1 -1
  26. package/lib/api/openapi/components/document/get.yaml +2 -2
  27. package/lib/api/openapi/components/document/index.js +12 -12
  28. package/lib/api/openapi/components/document/replace.yaml +1 -1
  29. package/lib/api/openapi/components/document/scroll.yaml +1 -1
  30. package/lib/api/openapi/components/document/validate.yaml +1 -1
  31. package/lib/api/openapi/components/index.d.ts +2 -2
  32. package/lib/api/openapi/components/index.js +1 -1
  33. package/lib/api/openapi/components/security/index.js +1 -1
  34. package/lib/api/openapi/components/security/upsertUser.yaml +2 -3
  35. package/lib/api/openapi/index.d.ts +1 -1
  36. package/lib/api/openapi/openApiGenerator.d.ts +1 -1
  37. package/lib/api/openapi/openApiGenerator.js +7 -7
  38. package/lib/api/rateLimiter.js +12 -13
  39. package/lib/api/request/index.d.ts +4 -4
  40. package/lib/api/request/kuzzleRequest.d.ts +9 -9
  41. package/lib/api/request/kuzzleRequest.js +89 -87
  42. package/lib/api/request/requestContext.d.ts +2 -2
  43. package/lib/api/request/requestContext.js +17 -17
  44. package/lib/api/request/requestInput.d.ts +1 -1
  45. package/lib/api/request/requestInput.js +19 -19
  46. package/lib/api/request/requestResponse.d.ts +4 -4
  47. package/lib/api/request/requestResponse.js +31 -33
  48. package/lib/cluster/command.js +48 -44
  49. package/lib/cluster/idCardHandler.d.ts +1 -1
  50. package/lib/cluster/idCardHandler.js +15 -15
  51. package/lib/cluster/index.js +2 -2
  52. package/lib/cluster/node.js +301 -269
  53. package/lib/cluster/publisher.js +45 -46
  54. package/lib/cluster/state.d.ts +5 -5
  55. package/lib/cluster/state.js +8 -8
  56. package/lib/cluster/subscriber.js +163 -113
  57. package/lib/cluster/workers/IDCardRenewer.js +33 -32
  58. package/lib/config/default.config.d.ts +1 -1
  59. package/lib/config/default.config.js +212 -171
  60. package/lib/config/documentEventAliases.js +6 -6
  61. package/lib/config/index.js +161 -98
  62. package/lib/config/sdkCompatibility.json +8 -8
  63. package/lib/core/auth/formatProcessing.js +7 -7
  64. package/lib/core/auth/passportResponse.js +7 -7
  65. package/lib/core/auth/passportWrapper.js +34 -30
  66. package/lib/core/auth/tokenManager.d.ts +2 -2
  67. package/lib/core/auth/tokenManager.js +11 -10
  68. package/lib/core/backend/applicationManager.d.ts +1 -1
  69. package/lib/core/backend/applicationManager.js +2 -2
  70. package/lib/core/backend/backend.d.ts +3 -3
  71. package/lib/core/backend/backend.js +34 -31
  72. package/lib/core/backend/backendCluster.d.ts +2 -2
  73. package/lib/core/backend/backendCluster.js +5 -5
  74. package/lib/core/backend/backendConfig.d.ts +2 -2
  75. package/lib/core/backend/backendConfig.js +3 -3
  76. package/lib/core/backend/backendController.d.ts +2 -2
  77. package/lib/core/backend/backendController.js +9 -10
  78. package/lib/core/backend/backendErrors.d.ts +3 -3
  79. package/lib/core/backend/backendErrors.js +2 -1
  80. package/lib/core/backend/backendHook.d.ts +2 -2
  81. package/lib/core/backend/backendHook.js +5 -5
  82. package/lib/core/backend/backendImport.d.ts +3 -3
  83. package/lib/core/backend/backendImport.js +23 -23
  84. package/lib/core/backend/backendOpenApi.d.ts +2 -2
  85. package/lib/core/backend/backendOpenApi.js +16 -16
  86. package/lib/core/backend/backendPipe.d.ts +2 -2
  87. package/lib/core/backend/backendPipe.js +6 -6
  88. package/lib/core/backend/backendPlugin.d.ts +4 -4
  89. package/lib/core/backend/backendPlugin.js +14 -14
  90. package/lib/core/backend/backendStorage.d.ts +2 -2
  91. package/lib/core/backend/backendStorage.js +1 -2
  92. package/lib/core/backend/backendVault.d.ts +2 -2
  93. package/lib/core/backend/backendVault.js +3 -3
  94. package/lib/core/backend/index.d.ts +14 -14
  95. package/lib/core/backend/internalLogger.d.ts +1 -1
  96. package/lib/core/backend/internalLogger.js +5 -5
  97. package/lib/core/cache/cacheDbEnum.js +4 -4
  98. package/lib/core/cache/cacheEngine.js +79 -85
  99. package/lib/core/network/accessLogger.js +126 -120
  100. package/lib/core/network/clientConnection.js +5 -5
  101. package/lib/core/network/context.js +8 -8
  102. package/lib/core/network/entryPoint.js +100 -85
  103. package/lib/core/network/httpRouter/index.js +63 -60
  104. package/lib/core/network/httpRouter/routeHandler.js +18 -19
  105. package/lib/core/network/httpRouter/routePart.js +23 -19
  106. package/lib/core/network/protocolManifest.js +3 -3
  107. package/lib/core/network/protocols/httpMessage.js +8 -10
  108. package/lib/core/network/protocols/httpwsProtocol.js +305 -250
  109. package/lib/core/network/protocols/internalProtocol.js +27 -24
  110. package/lib/core/network/protocols/mqttProtocol.js +106 -96
  111. package/lib/core/network/protocols/protocol.js +20 -17
  112. package/lib/core/network/router.js +56 -46
  113. package/lib/core/plugin/plugin.js +151 -120
  114. package/lib/core/plugin/pluginContext.d.ts +7 -7
  115. package/lib/core/plugin/pluginContext.js +48 -44
  116. package/lib/core/plugin/pluginManifest.js +13 -12
  117. package/lib/core/plugin/pluginRepository.js +26 -27
  118. package/lib/core/plugin/pluginsManager.js +425 -304
  119. package/lib/core/plugin/privilegedContext.js +3 -3
  120. package/lib/core/realtime/actionEnum.js +1 -1
  121. package/lib/core/realtime/channel.d.ts +1 -1
  122. package/lib/core/realtime/channel.js +22 -22
  123. package/lib/core/realtime/connectionRooms.d.ts +1 -1
  124. package/lib/core/realtime/hotelClerk.d.ts +2 -2
  125. package/lib/core/realtime/hotelClerk.js +53 -50
  126. package/lib/core/realtime/index.js +5 -5
  127. package/lib/core/realtime/notification/document.js +25 -25
  128. package/lib/core/realtime/notification/index.js +4 -4
  129. package/lib/core/realtime/notification/server.js +3 -3
  130. package/lib/core/realtime/notification/user.js +4 -4
  131. package/lib/core/realtime/notifier.js +113 -75
  132. package/lib/core/realtime/room.d.ts +1 -1
  133. package/lib/core/realtime/subscription.d.ts +1 -1
  134. package/lib/core/realtime/subscription.js +1 -1
  135. package/lib/core/security/index.js +8 -8
  136. package/lib/core/security/profileRepository.d.ts +6 -6
  137. package/lib/core/security/profileRepository.js +48 -45
  138. package/lib/core/security/roleRepository.js +127 -115
  139. package/lib/core/security/securityLoader.js +70 -63
  140. package/lib/core/security/tokenRepository.js +132 -118
  141. package/lib/core/security/userRepository.js +104 -88
  142. package/lib/core/shared/KoncordeWrapper.d.ts +1 -1
  143. package/lib/core/shared/KoncordeWrapper.js +3 -1
  144. package/lib/core/shared/abstractManifest.js +22 -23
  145. package/lib/core/shared/repository.js +69 -67
  146. package/lib/core/shared/sdk/embeddedSdk.d.ts +2 -2
  147. package/lib/core/shared/sdk/embeddedSdk.js +36 -32
  148. package/lib/core/shared/sdk/funnelProtocol.d.ts +1 -1
  149. package/lib/core/shared/sdk/funnelProtocol.js +11 -11
  150. package/lib/core/shared/sdk/impersonatedSdk.js +19 -18
  151. package/lib/core/shared/store.js +127 -32
  152. package/lib/core/statistics/index.js +2 -2
  153. package/lib/core/statistics/statistics.js +99 -85
  154. package/lib/core/storage/clientAdapter.js +219 -136
  155. package/lib/core/storage/indexCache.js +3 -3
  156. package/lib/core/storage/storageEngine.js +10 -13
  157. package/lib/core/storage/storeScopeEnum.js +3 -3
  158. package/lib/core/validation/baseType.js +12 -10
  159. package/lib/core/validation/index.js +2 -2
  160. package/lib/core/validation/types/anything.js +4 -4
  161. package/lib/core/validation/types/boolean.js +7 -7
  162. package/lib/core/validation/types/date.js +165 -131
  163. package/lib/core/validation/types/email.js +18 -21
  164. package/lib/core/validation/types/enum.js +34 -21
  165. package/lib/core/validation/types/geoPoint.js +7 -7
  166. package/lib/core/validation/types/geoShape.js +148 -125
  167. package/lib/core/validation/types/integer.js +9 -9
  168. package/lib/core/validation/types/ipAddress.js +17 -19
  169. package/lib/core/validation/types/numeric.js +36 -29
  170. package/lib/core/validation/types/object.js +19 -19
  171. package/lib/core/validation/types/string.js +36 -29
  172. package/lib/core/validation/types/url.js +17 -19
  173. package/lib/core/validation/validation.js +422 -378
  174. package/lib/kerror/codes/1-services.json +7 -1
  175. package/lib/kerror/codes/4-plugin.json +2 -2
  176. package/lib/kerror/codes/index.js +85 -63
  177. package/lib/kerror/errors/badRequestError.d.ts +1 -1
  178. package/lib/kerror/errors/externalServiceError.d.ts +1 -1
  179. package/lib/kerror/errors/forbiddenError.d.ts +1 -1
  180. package/lib/kerror/errors/gatewayTimeoutError.d.ts +1 -1
  181. package/lib/kerror/errors/index.d.ts +15 -15
  182. package/lib/kerror/errors/internalError.d.ts +1 -1
  183. package/lib/kerror/errors/kuzzleError.d.ts +1 -1
  184. package/lib/kerror/errors/multipleErrorsError.d.ts +1 -1
  185. package/lib/kerror/errors/multipleErrorsError.js +1 -1
  186. package/lib/kerror/errors/notFoundError.d.ts +1 -1
  187. package/lib/kerror/errors/partialError.d.ts +1 -1
  188. package/lib/kerror/errors/partialError.js +1 -1
  189. package/lib/kerror/errors/pluginImplementationError.d.ts +1 -1
  190. package/lib/kerror/errors/pluginImplementationError.js +2 -1
  191. package/lib/kerror/errors/preconditionError.d.ts +1 -1
  192. package/lib/kerror/errors/serviceUnavailableError.d.ts +1 -1
  193. package/lib/kerror/errors/sizeLimitError.d.ts +1 -1
  194. package/lib/kerror/errors/tooManyRequestsError.d.ts +1 -1
  195. package/lib/kerror/errors/unauthorizedError.d.ts +1 -1
  196. package/lib/kerror/index.d.ts +3 -3
  197. package/lib/kerror/index.js +17 -16
  198. package/lib/kuzzle/dumpGenerator.js +130 -114
  199. package/lib/kuzzle/event/kuzzleEventEmitter.js +96 -70
  200. package/lib/kuzzle/event/pipeRunner.js +25 -24
  201. package/lib/kuzzle/event/waterfall.js +13 -15
  202. package/lib/kuzzle/index.js +2 -2
  203. package/lib/kuzzle/internalIndexHandler.js +80 -59
  204. package/lib/kuzzle/kuzzle.js +99 -99
  205. package/lib/kuzzle/kuzzleStateEnum.js +1 -1
  206. package/lib/kuzzle/log.js +23 -18
  207. package/lib/kuzzle/vault.js +34 -19
  208. package/lib/model/security/profile.d.ts +3 -3
  209. package/lib/model/security/profile.js +38 -37
  210. package/lib/model/security/rights.js +5 -5
  211. package/lib/model/security/role.d.ts +3 -3
  212. package/lib/model/security/role.js +25 -26
  213. package/lib/model/security/token.d.ts +1 -1
  214. package/lib/model/security/token.js +4 -4
  215. package/lib/model/security/user.d.ts +2 -2
  216. package/lib/model/security/user.js +9 -9
  217. package/lib/model/storage/apiKey.js +43 -33
  218. package/lib/model/storage/baseModel.js +49 -45
  219. package/lib/service/cache/redis.js +60 -55
  220. package/lib/service/service.js +17 -17
  221. package/lib/service/storage/elasticsearch.js +839 -755
  222. package/lib/service/storage/esWrapper.js +103 -86
  223. package/lib/service/storage/queryTranslator.js +52 -59
  224. package/lib/types/Controller.d.ts +3 -3
  225. package/lib/types/ControllerDefinition.d.ts +3 -3
  226. package/lib/types/DebugModule.d.ts +2 -2
  227. package/lib/types/DebugModule.js +1 -1
  228. package/lib/types/Global.d.ts +1 -1
  229. package/lib/types/HttpStream.d.ts +2 -1
  230. package/lib/types/HttpStream.js +7 -5
  231. package/lib/types/Kuzzle.d.ts +1 -1
  232. package/lib/types/KuzzleDocument.d.ts +1 -1
  233. package/lib/types/OpenApiDefinition.d.ts +1 -1
  234. package/lib/types/PasswordPolicy.d.ts +1 -1
  235. package/lib/types/Plugin.d.ts +6 -6
  236. package/lib/types/Plugin.js +2 -2
  237. package/lib/types/Policy.d.ts +1 -1
  238. package/lib/types/RequestPayload.d.ts +1 -1
  239. package/lib/types/ResponsePayload.d.ts +1 -1
  240. package/lib/types/Token.d.ts +1 -1
  241. package/lib/types/User.d.ts +1 -1
  242. package/lib/types/config/DumpConfiguration.d.ts +8 -8
  243. package/lib/types/config/HttpConfiguration.d.ts +1 -1
  244. package/lib/types/config/KuzzleConfiguration.d.ts +1 -1
  245. package/lib/types/config/LimitsConfiguration.d.ts +8 -8
  246. package/lib/types/config/PluginsConfiguration.d.ts +4 -4
  247. package/lib/types/config/SecurityConfiguration.d.ts +62 -62
  248. package/lib/types/config/ServerConfiguration.d.ts +55 -55
  249. package/lib/types/config/ServicesConfiguration.d.ts +2 -2
  250. package/lib/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +10 -10
  251. package/lib/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +3 -3
  252. package/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +194 -110
  253. package/lib/types/errors/ErrorDefinition.d.ts +1 -1
  254. package/lib/types/errors/ErrorDomains.d.ts +1 -1
  255. package/lib/types/index.d.ts +38 -38
  256. package/lib/types/realtime/RealtimeScope.d.ts +1 -1
  257. package/lib/types/realtime/RealtimeUsers.d.ts +1 -1
  258. package/lib/util/assertType.js +13 -11
  259. package/lib/util/async.d.ts +1 -0
  260. package/lib/util/async.js +61 -0
  261. package/lib/util/asyncStore.js +19 -21
  262. package/lib/util/bufferedPassThrough.d.ts +2 -2
  263. package/lib/util/bufferedPassThrough.js +4 -4
  264. package/lib/util/bytes.js +9 -13
  265. package/lib/util/crypto.js +1 -1
  266. package/lib/util/debug.js +5 -5
  267. package/lib/util/deprecate.js +24 -21
  268. package/lib/util/didYouMean.js +7 -7
  269. package/lib/util/dump-collection.d.ts +2 -2
  270. package/lib/util/dump-collection.js +26 -26
  271. package/lib/util/esRequest.d.ts +1 -0
  272. package/lib/util/esRequest.js +62 -0
  273. package/lib/util/extractFields.js +24 -25
  274. package/lib/util/inflector.js +5 -5
  275. package/lib/util/koncordeCompat.d.ts +2 -2
  276. package/lib/util/koncordeCompat.js +5 -5
  277. package/lib/util/memoize.js +3 -5
  278. package/lib/util/mutex.d.ts +19 -1
  279. package/lib/util/mutex.js +39 -12
  280. package/lib/util/name-generator.js +1331 -1331
  281. package/lib/util/promback.js +8 -10
  282. package/lib/util/readYamlFile.d.ts +1 -1
  283. package/lib/util/readYamlFile.js +1 -1
  284. package/lib/util/requestAssertions.js +34 -34
  285. package/lib/util/safeObject.js +5 -5
  286. package/lib/util/stackTrace.js +20 -22
  287. package/lib/util/wildcard.js +15 -15
  288. package/package.json +6 -6
  289. package/npm-shrinkwrap.json +0 -19422
@@ -19,55 +19,55 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const crypto = require('crypto');
24
+ const crypto = require("crypto");
25
25
 
26
- const Bluebird = require('bluebird');
26
+ const Bluebird = require("bluebird");
27
27
 
28
- const debug = require('../util/debug')('kuzzle:bootstrap:internalIndex');
29
- const Store = require('../core/shared/store');
30
- const { Mutex } = require('../util/mutex');
31
- const scopeEnum = require('../core/storage/storeScopeEnum');
32
- const kerror = require('../kerror');
28
+ const debug = require("../util/debug")("kuzzle:bootstrap:internalIndex");
29
+ const Store = require("../core/shared/store");
30
+ const { Mutex } = require("../util/mutex");
31
+ const scopeEnum = require("../core/storage/storeScopeEnum");
32
+ const kerror = require("../kerror");
33
33
 
34
34
  const securitiesBootstrap = {
35
35
  profiles: {
36
36
  admin: {
37
- policies: [ { roleId: 'admin' } ],
37
+ policies: [{ roleId: "admin" }],
38
38
  rateLimit: 0,
39
39
  },
40
40
  anonymous: {
41
- policies: [ { roleId: 'anonymous' } ],
41
+ policies: [{ roleId: "anonymous" }],
42
42
  },
43
43
  default: {
44
- policies: [ { roleId: 'default' } ],
45
- }
44
+ policies: [{ roleId: "default" }],
45
+ },
46
46
  },
47
47
  roles: {
48
48
  admin: {
49
49
  controllers: {
50
- '*': {
50
+ "*": {
51
51
  actions: {
52
- '*': true,
52
+ "*": true,
53
53
  },
54
54
  },
55
55
  },
56
56
  },
57
57
  anonymous: {
58
58
  controllers: {
59
- '*': {
59
+ "*": {
60
60
  actions: {
61
- '*': true,
61
+ "*": true,
62
62
  },
63
63
  },
64
64
  },
65
65
  },
66
66
  default: {
67
67
  controllers: {
68
- '*': {
68
+ "*": {
69
69
  actions: {
70
- '*': true,
70
+ "*": true,
71
71
  },
72
72
  },
73
73
  },
@@ -75,30 +75,32 @@ const securitiesBootstrap = {
75
75
  },
76
76
  };
77
77
 
78
- const dataModelVersion = '2.0.0';
78
+ const dataModelVersion = "2.0.0";
79
79
 
80
80
  class InternalIndexHandler extends Store {
81
- constructor () {
81
+ constructor() {
82
82
  super(
83
83
  global.kuzzle.config.services.storageEngine.internalIndex.name,
84
- scopeEnum.PRIVATE);
84
+ scopeEnum.PRIVATE
85
+ );
85
86
 
86
- this.timeout = global.kuzzle.config.services.internalIndex.bootstrapLockTimeout;
87
+ this.timeout =
88
+ global.kuzzle.config.services.internalIndex.bootstrapLockTimeout;
87
89
  this.config = global.kuzzle.config.services.storageEngine.internalIndex;
88
90
 
89
91
  // IDs for config documents
90
92
  this._BOOTSTRAP_DONE_ID = `${this.index}.done`;
91
- this._DATAMODEL_VERSION_ID = 'internalIndex.dataModelVersion';
92
- this._JWT_SECRET_ID = 'security.jwt.secret';
93
+ this._DATAMODEL_VERSION_ID = "internalIndex.dataModelVersion";
94
+ this._JWT_SECRET_ID = "security.jwt.secret";
93
95
  }
94
96
 
95
97
  /**
96
98
  * @returns {Promise}
97
99
  */
98
- async init () {
100
+ async init() {
99
101
  await super.init(this.config.collections);
100
102
 
101
- const mutex = new Mutex('InternalIndexBootstrap', {
103
+ const mutex = new Mutex("InternalIndexBootstrap", {
102
104
  timeout: -1,
103
105
  ttl: 30000,
104
106
  });
@@ -106,7 +108,7 @@ class InternalIndexHandler extends Store {
106
108
  await mutex.lock();
107
109
 
108
110
  try {
109
- const bootstrapped = await this.exists('config', this._BOOTSTRAP_DONE_ID);
111
+ const bootstrapped = await this.exists("config", this._BOOTSTRAP_DONE_ID);
110
112
 
111
113
  if (bootstrapped) {
112
114
  return;
@@ -114,18 +116,25 @@ class InternalIndexHandler extends Store {
114
116
 
115
117
  await Bluebird.resolve(this._bootstrapSequence()).timeout(this.timeout);
116
118
 
117
- await this.create('config', { timestamp: Date.now() }, {
118
- id: this._BOOTSTRAP_DONE_ID,
119
- });
120
- }
121
- catch (error) {
119
+ await this.create(
120
+ "config",
121
+ { timestamp: Date.now() },
122
+ {
123
+ id: this._BOOTSTRAP_DONE_ID,
124
+ }
125
+ );
126
+ } catch (error) {
122
127
  if (error instanceof Bluebird.TimeoutError) {
123
- throw kerror.get('services', 'storage', 'bootstrap_timeout', 'internalIndex');
128
+ throw kerror.get(
129
+ "services",
130
+ "storage",
131
+ "bootstrap_timeout",
132
+ "internalIndex"
133
+ );
124
134
  }
125
135
 
126
136
  throw error;
127
- }
128
- finally {
137
+ } finally {
129
138
  await mutex.unlock();
130
139
  }
131
140
  }
@@ -133,44 +142,50 @@ class InternalIndexHandler extends Store {
133
142
  /**
134
143
  * @override
135
144
  */
136
- async _bootstrapSequence () {
137
- debug('Bootstrapping security structure');
145
+ async _bootstrapSequence() {
146
+ debug("Bootstrapping security structure");
138
147
  await this.createInitialSecurities();
139
148
 
140
- debug('Bootstrapping document validation structure');
149
+ debug("Bootstrapping document validation structure");
141
150
  await this.createInitialValidations();
142
151
 
143
- debug('Bootstrapping JWT secret');
152
+ debug("Bootstrapping JWT secret");
144
153
  await this._persistSecret();
145
154
 
146
155
  // Create datamodel version
147
- await this.create('config', { version: dataModelVersion }, {
148
- id: this._DATAMODEL_VERSION_ID,
149
- });
156
+ await this.create(
157
+ "config",
158
+ { version: dataModelVersion },
159
+ {
160
+ id: this._DATAMODEL_VERSION_ID,
161
+ }
162
+ );
150
163
  }
151
164
 
152
165
  /**
153
166
  * Creates initial roles and profiles as specified in Kuzzle configuration
154
167
  */
155
- async createInitialSecurities () {
168
+ async createInitialSecurities() {
156
169
  await Bluebird.map(
157
170
  Object.entries(securitiesBootstrap.roles),
158
171
  ([roleId, content]) => {
159
- return this.createOrReplace('roles', roleId, content, {
160
- refresh: 'wait_for',
172
+ return this.createOrReplace("roles", roleId, content, {
173
+ refresh: "wait_for",
161
174
  });
162
- });
175
+ }
176
+ );
163
177
 
164
178
  await Bluebird.map(
165
179
  Object.entries(securitiesBootstrap.profiles),
166
180
  ([profileId, content]) => {
167
- return this.createOrReplace('profiles', profileId, content, {
168
- refresh: 'wait_for',
181
+ return this.createOrReplace("profiles", profileId, content, {
182
+ refresh: "wait_for",
169
183
  });
170
- });
184
+ }
185
+ );
171
186
  }
172
187
 
173
- async createInitialValidations () {
188
+ async createInitialValidations() {
174
189
  const initialValidations = global.kuzzle.config.validation;
175
190
  const promises = [];
176
191
 
@@ -179,26 +194,32 @@ class InternalIndexHandler extends Store {
179
194
  const validationId = `${index}#${collectionName}`;
180
195
 
181
196
  promises.push(
182
- this.createOrReplace('validations', validationId, validation));
197
+ this.createOrReplace("validations", validationId, validation)
198
+ );
183
199
  }
184
200
  }
185
201
 
186
202
  await Bluebird.all(promises);
187
203
  }
188
204
 
189
- async getSecret () {
190
- const response = await this.get('config', this._JWT_SECRET_ID);
205
+ async getSecret() {
206
+ const response = await this.get("config", this._JWT_SECRET_ID);
191
207
 
192
208
  return response._source.seed;
193
209
  }
194
210
 
195
- async _persistSecret () {
196
- const seed = global.kuzzle.config.security.jwt.secret
197
- || crypto.randomBytes(512).toString('hex');
211
+ async _persistSecret() {
212
+ const seed =
213
+ global.kuzzle.config.security.jwt.secret ||
214
+ crypto.randomBytes(512).toString("hex");
198
215
 
199
- await this.create('config', { seed }, {
200
- id: this._JWT_SECRET_ID,
201
- });
216
+ await this.create(
217
+ "config",
218
+ { seed },
219
+ {
220
+ id: this._JWT_SECRET_ID,
221
+ }
222
+ );
202
223
  }
203
224
  }
204
225