kuzzle-device-manager 2.4.0-beta.8 → 2.4.0-dev.1

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 (158) hide show
  1. package/dist/lib/modules/asset/AssetHistoryService.js +2 -1
  2. package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -1
  3. package/dist/lib/modules/asset/AssetModule.js +30 -0
  4. package/dist/lib/modules/asset/AssetModule.js.map +1 -1
  5. package/dist/lib/modules/asset/AssetService.d.ts +18 -4
  6. package/dist/lib/modules/asset/AssetService.js +91 -12
  7. package/dist/lib/modules/asset/AssetService.js.map +1 -1
  8. package/dist/lib/modules/asset/AssetsController.d.ts +7 -1
  9. package/dist/lib/modules/asset/AssetsController.js +132 -1
  10. package/dist/lib/modules/asset/AssetsController.js.map +1 -1
  11. package/dist/lib/modules/asset/AssetsGroupsController.js +1 -1
  12. package/dist/lib/modules/asset/AssetsGroupsController.js.map +1 -1
  13. package/dist/lib/modules/asset/model/AssetSerializer.js.map +1 -1
  14. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +3 -0
  15. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
  16. package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +4 -0
  17. package/dist/lib/modules/asset/roles/RoleAssetsReader.js +8 -0
  18. package/dist/lib/modules/asset/roles/RoleAssetsReader.js.map +1 -1
  19. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.d.ts +8 -0
  20. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.js +20 -0
  21. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.js.map +1 -0
  22. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.d.ts +8 -0
  23. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.js +24 -0
  24. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.js.map +1 -0
  25. package/dist/lib/modules/asset/roles/specificRoles/index.d.ts +2 -0
  26. package/dist/lib/modules/asset/roles/specificRoles/index.js +19 -0
  27. package/dist/lib/modules/asset/roles/specificRoles/index.js.map +1 -0
  28. package/dist/lib/modules/asset/types/AssetApi.d.ts +31 -2
  29. package/dist/lib/modules/decoder/DecodedPayload.js.map +1 -1
  30. package/dist/lib/modules/decoder/Decoder.d.ts +11 -0
  31. package/dist/lib/modules/decoder/Decoder.js +1 -0
  32. package/dist/lib/modules/decoder/Decoder.js.map +1 -1
  33. package/dist/lib/modules/decoder/DecodersRegister.js.map +1 -1
  34. package/dist/lib/modules/decoder/DecodingState.js +1 -1
  35. package/dist/lib/modules/decoder/DecodingState.js.map +1 -1
  36. package/dist/lib/modules/decoder/PayloadService.d.ts +1 -1
  37. package/dist/lib/modules/decoder/PayloadService.js +12 -6
  38. package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
  39. package/dist/lib/modules/decoder/PayloadsController.js.map +1 -1
  40. package/dist/lib/modules/decoder/types/DecoderContent.d.ts +1 -0
  41. package/dist/lib/modules/device/DeviceModule.js +30 -0
  42. package/dist/lib/modules/device/DeviceModule.js.map +1 -1
  43. package/dist/lib/modules/device/DeviceService.d.ts +14 -5
  44. package/dist/lib/modules/device/DeviceService.js +73 -18
  45. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  46. package/dist/lib/modules/device/DevicesController.d.ts +7 -1
  47. package/dist/lib/modules/device/DevicesController.js +134 -3
  48. package/dist/lib/modules/device/DevicesController.js.map +1 -1
  49. package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +4 -0
  50. package/dist/lib/modules/device/roles/RoleDevicesReader.js +8 -0
  51. package/dist/lib/modules/device/roles/RoleDevicesReader.js.map +1 -1
  52. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.d.ts +8 -0
  53. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js +20 -0
  54. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js.map +1 -0
  55. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.d.ts +8 -0
  56. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.js +20 -0
  57. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.js.map +1 -0
  58. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.d.ts +8 -0
  59. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.js +24 -0
  60. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.js.map +1 -0
  61. package/dist/lib/modules/device/roles/specificRoles/index.d.ts +3 -0
  62. package/dist/lib/modules/device/roles/specificRoles/index.js +20 -0
  63. package/dist/lib/modules/device/roles/specificRoles/index.js.map +1 -0
  64. package/dist/lib/modules/device/types/DeviceApi.d.ts +23 -2
  65. package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -4
  66. package/dist/lib/modules/measure/MeasureExporter.js +35 -14
  67. package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
  68. package/dist/lib/modules/measure/MeasureService.js +4 -2
  69. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  70. package/dist/lib/modules/measure/collections/measuresMappings.d.ts +3 -0
  71. package/dist/lib/modules/measure/collections/measuresMappings.js +5 -0
  72. package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
  73. package/dist/lib/modules/measure/measures/BatteryMeasure.js +12 -0
  74. package/dist/lib/modules/measure/measures/BatteryMeasure.js.map +1 -1
  75. package/dist/lib/modules/measure/measures/HumidityMeasure.js +12 -0
  76. package/dist/lib/modules/measure/measures/HumidityMeasure.js.map +1 -1
  77. package/dist/lib/modules/measure/measures/MovementMeasure.js +10 -0
  78. package/dist/lib/modules/measure/measures/MovementMeasure.js.map +1 -1
  79. package/dist/lib/modules/measure/measures/PositionMeasure.js +22 -0
  80. package/dist/lib/modules/measure/measures/PositionMeasure.js.map +1 -1
  81. package/dist/lib/modules/measure/measures/TemperatureMeasure.js +12 -0
  82. package/dist/lib/modules/measure/measures/TemperatureMeasure.js.map +1 -1
  83. package/dist/lib/modules/measure/types/MeasureContent.d.ts +4 -0
  84. package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +28 -3
  85. package/dist/lib/modules/model/MappingsConflictsError.d.ts +7 -0
  86. package/dist/lib/modules/model/MappingsConflictsError.js +20 -0
  87. package/dist/lib/modules/model/MappingsConflictsError.js.map +1 -0
  88. package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
  89. package/dist/lib/modules/model/ModelService.d.ts +16 -6
  90. package/dist/lib/modules/model/ModelService.js +246 -34
  91. package/dist/lib/modules/model/ModelService.js.map +1 -1
  92. package/dist/lib/modules/model/ModelsConflicts.d.ts +30 -0
  93. package/dist/lib/modules/model/ModelsConflicts.js +106 -0
  94. package/dist/lib/modules/model/ModelsConflicts.js.map +1 -0
  95. package/dist/lib/modules/model/ModelsController.d.ts +5 -1
  96. package/dist/lib/modules/model/ModelsController.js +54 -3
  97. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  98. package/dist/lib/modules/model/ModelsRegister.d.ts +28 -3
  99. package/dist/lib/modules/model/ModelsRegister.js +50 -5
  100. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  101. package/dist/lib/modules/model/collections/modelsMappings.js +24 -0
  102. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  103. package/dist/lib/modules/model/types/ModelApi.d.ts +50 -4
  104. package/dist/lib/modules/model/types/ModelContent.d.ts +263 -2
  105. package/dist/lib/modules/model/types/ModelContent.js +15 -0
  106. package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
  107. package/dist/lib/modules/model/types/ModelDefinition.d.ts +141 -5
  108. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +141 -5
  109. package/dist/lib/modules/plugin/DeviceManagerEngine.js +235 -37
  110. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  111. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +113 -8
  112. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +141 -19
  113. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  114. package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +18 -4
  115. package/dist/lib/modules/plugin/types/InternalCollection.js +1 -1
  116. package/dist/lib/modules/plugin/types/InternalCollection.js.map +1 -1
  117. package/dist/lib/modules/shared/exports.d.ts +2 -0
  118. package/dist/lib/modules/shared/exports.js +2 -0
  119. package/dist/lib/modules/shared/exports.js.map +1 -1
  120. package/dist/lib/modules/shared/index.d.ts +6 -4
  121. package/dist/lib/modules/shared/index.js +6 -4
  122. package/dist/lib/modules/shared/index.js.map +1 -1
  123. package/dist/lib/modules/shared/services/AbstractExporter.d.ts +1 -2
  124. package/dist/lib/modules/shared/services/AbstractExporter.js +7 -1
  125. package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
  126. package/dist/lib/modules/shared/services/BaseService.js.map +1 -1
  127. package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +0 -2
  128. package/dist/lib/modules/shared/services/DigitalTwinExporter.js +8 -2
  129. package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
  130. package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +21 -0
  131. package/dist/lib/modules/shared/services/DigitalTwinService.js +162 -0
  132. package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -0
  133. package/dist/lib/modules/shared/services/index.d.ts +1 -0
  134. package/dist/lib/modules/shared/services/index.js +1 -0
  135. package/dist/lib/modules/shared/services/index.js.map +1 -1
  136. package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +34 -0
  137. package/dist/lib/modules/shared/types/DigitalTwinApi.js +3 -0
  138. package/dist/lib/modules/shared/types/DigitalTwinApi.js.map +1 -0
  139. package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +2 -4
  140. package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +9 -0
  141. package/dist/lib/modules/shared/types/DigitalTwinEvents.js +3 -0
  142. package/dist/lib/modules/shared/types/DigitalTwinEvents.js.map +1 -0
  143. package/dist/lib/modules/shared/types/DigitalTwinMeasures.d.ts +5 -0
  144. package/dist/lib/modules/shared/types/DigitalTwinMeasures.js +3 -0
  145. package/dist/lib/modules/shared/types/DigitalTwinMeasures.js.map +1 -0
  146. package/dist/lib/modules/shared/utils/flattenObject.js +1 -2
  147. package/dist/lib/modules/shared/utils/flattenObject.js.map +1 -1
  148. package/dist/lib/modules/shared/utils/keepStack.js +1 -2
  149. package/dist/lib/modules/shared/utils/keepStack.js.map +1 -1
  150. package/dist/lib/modules/shared/utils/lock.js +1 -2
  151. package/dist/lib/modules/shared/utils/lock.js.map +1 -1
  152. package/dist/lib/modules/shared/utils/objectDiff.js +1 -2
  153. package/dist/lib/modules/shared/utils/objectDiff.js.map +1 -1
  154. package/dist/tsconfig.tsbuildinfo +1 -0
  155. package/package.json +26 -26
  156. package/dist/lib/modules/shared/utils/ask.d.ts +0 -8
  157. package/dist/lib/modules/shared/utils/ask.js +0 -12
  158. package/dist/lib/modules/shared/utils/ask.js.map +0 -1
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DeviceManagerEngine = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
7
  const kuzzle_1 = require("kuzzle");
9
8
  const kuzzle_plugin_commons_1 = require("kuzzle-plugin-commons");
9
+ const lodash_1 = __importDefault(require("lodash"));
10
10
  const asset_1 = require("../asset");
11
11
  const measure_1 = require("../measure");
12
- const shared_1 = require("../shared");
13
12
  const InternalCollection_1 = require("./types/InternalCollection");
13
+ const ModelsConflicts_1 = require("../model/ModelsConflicts");
14
14
  class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
15
15
  get app() {
16
16
  return global.app;
@@ -18,22 +18,98 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
18
18
  constructor(plugin, adminConfigManager, engineConfigManager) {
19
19
  super("device-manager", plugin, plugin.config.adminIndex, adminConfigManager, engineConfigManager);
20
20
  this.context = plugin.context;
21
- (0, shared_1.onAsk)("ask:device-manager:engine:list", async ({ group }) => this.list(group));
22
- (0, shared_1.onAsk)("ask:device-manager:engine:updateAll", async () => {
21
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:engine:list", async ({ group }) => this.list(group));
22
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:engine:updateAll", async () => {
23
23
  await this.updateEngines();
24
24
  await this.createDevicesCollection(this.config.adminIndex);
25
25
  });
26
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:engine:doesUpdateConflict", async (payload) => {
27
+ if (!payload) {
28
+ return [];
29
+ }
30
+ if (payload.twin === undefined &&
31
+ payload.measuresModels === undefined) {
32
+ return [];
33
+ }
34
+ const measureModels = await this.getModels(this.config.adminIndex, "measure");
35
+ const results = await this.getEngines();
36
+ const engineGroups = results.map((elt) => elt.engine.group);
37
+ const groups = [undefined, ...engineGroups];
38
+ for (const group of groups) {
39
+ if (payload.twin) {
40
+ const twinModels = await this.getModels(this.config.adminIndex, payload.twin.type, group);
41
+ const conflicts = await this.doesTwinUpdateConflicts(payload.twin.type, twinModels, payload.twin.models, measureModels);
42
+ if (conflicts.length > 0) {
43
+ return conflicts;
44
+ }
45
+ }
46
+ }
47
+ if (payload.measuresModels) {
48
+ return this.doesMeasuresUpdateConflicts(measureModels, payload.measuresModels);
49
+ }
50
+ return [];
51
+ });
52
+ }
53
+ /**
54
+ * Return conflicts between the new and already present twin models
55
+ *
56
+ * @param twinType The target twin type
57
+ * @param twinModels The already present twin models
58
+ * @param additionalModels The new or updated twin models
59
+ * @param measureModels The already present measures models
60
+ *
61
+ * @throws If a measure type declared in the twin does not exists
62
+ * @returns An array of conflict chunk
63
+ */
64
+ async doesTwinUpdateConflicts(twinType, twinModels, additionalModels, measureModels) {
65
+ const conflicts = [];
66
+ for (const additional of additionalModels) {
67
+ for (const { type: measureType } of additional[twinType]
68
+ .measures) {
69
+ const measureModel = measureModels.find((m) => m.measure.type === measureType);
70
+ if (!measureModel) {
71
+ throw new kuzzle_1.InternalError(`Cannot find measure "${measureType}" declared in ${[
72
+ twinType,
73
+ ]} "${additional[twinType].model}"`);
74
+ }
75
+ }
76
+ conflicts.push(...(0, ModelsConflicts_1.getTwinConflicts)(twinType, twinModels, additional));
77
+ }
78
+ return conflicts;
79
+ }
80
+ /**
81
+ * Return conflicts between the new and already present measure models
82
+ *
83
+ * @param measuresModels The already present measure models
84
+ * @param additionalMeasures The new or updated measure models
85
+ * @returns An array of ConflictChunk
86
+ */
87
+ async doesMeasuresUpdateConflicts(measuresModels, additionalMeasures) {
88
+ const conflicts = [];
89
+ for (const model of additionalMeasures) {
90
+ conflicts.push(...(0, ModelsConflicts_1.getMeasureConflicts)(measuresModels, model));
91
+ }
92
+ return conflicts;
26
93
  }
27
94
  async updateEngines() {
95
+ const results = await this.getEngines();
96
+ this.context.log.info(`Update ${results.length} existing engines`);
97
+ for (const document of results) {
98
+ await this.onUpdate(document.engine.index, document.engine.group);
99
+ }
100
+ }
101
+ /**
102
+ * Search and return every engines in use
103
+ *
104
+ * @returns An array of the available engines
105
+ */
106
+ async getEngines() {
28
107
  const result = await this.sdk.document.search(this.config.adminIndex, InternalCollection_1.InternalCollection.CONFIG, {
29
108
  query: {
30
109
  equals: { type: "engine-device-manager" },
31
110
  },
32
111
  }, { lang: "koncorde", size: 5000 });
33
- this.context.log.info(`Update ${result.fetched} existing engines`);
34
- for (const engine of result.hits) {
35
- await this.onUpdate(engine._source.engine.index, engine._source.engine.group);
36
- }
112
+ return result.hits.map((elt) => elt._source);
37
113
  }
38
114
  async onCreate(index, group = "commons") {
39
115
  const promises = [];
@@ -74,66 +150,188 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
74
150
  collections,
75
151
  };
76
152
  }
153
+ /**
154
+ * Generate assets mappings and create the assets collection in the engine
155
+ *
156
+ * @param engineId The target engine Id
157
+ * @param engineGroup The engine group
158
+ *
159
+ * @throws If it failed during the assets collection creation
160
+ */
77
161
  async createAssetsCollection(engineId, engineGroup) {
78
- const mappings = await this.getDigitalTwinMappings("asset", engineGroup);
79
- await this.sdk.collection.create(engineId, InternalCollection_1.InternalCollection.ASSETS, mappings);
162
+ const mappings = await this.getDigitalTwinMappingsFromDB("asset", engineGroup);
163
+ const settings = this.config.engineCollections.asset.settings;
164
+ await this.tryCreateCollection(engineId, InternalCollection_1.InternalCollection.ASSETS, {
165
+ mappings,
166
+ settings,
167
+ });
80
168
  return InternalCollection_1.InternalCollection.ASSETS;
81
169
  }
170
+ /**
171
+ * Generate assets mappings and create the assets history collection in the engine
172
+ *
173
+ * @param engineId The target engine Id
174
+ * @param engineGroup The engine group
175
+ *
176
+ * @throws If it failed during the assets history collection creation
177
+ */
82
178
  async createAssetsHistoryCollection(engineId, engineGroup) {
83
- const assetsCollectionMappings = await this.getDigitalTwinMappings("asset", engineGroup);
179
+ const assetsMappings = await this.getDigitalTwinMappingsFromDB("asset", engineGroup);
84
180
  const mappings = JSON.parse(JSON.stringify(asset_1.assetsHistoryMappings));
85
- lodash_1.default.merge(mappings.properties.asset, assetsCollectionMappings);
86
- await this.sdk.collection.create(engineId, InternalCollection_1.InternalCollection.ASSETS_HISTORY, mappings);
181
+ lodash_1.default.merge(mappings.properties.asset, assetsMappings);
182
+ const settings = this.config.engineCollections.assetHistory.settings;
183
+ await this.tryCreateCollection(engineId, InternalCollection_1.InternalCollection.ASSETS_HISTORY, {
184
+ mappings,
185
+ settings,
186
+ });
87
187
  return InternalCollection_1.InternalCollection.ASSETS_HISTORY;
88
188
  }
189
+ /**
190
+ * Create the assets groups collection with the assets groups mappings in the engine
191
+ *
192
+ * @param engineId The target engine Id
193
+ * @param engineGroup The engine group
194
+ *
195
+ * @throws If it failed during the assets groups collection creation
196
+ */
89
197
  async createAssetsGroupsCollection(engineId) {
90
- await this.sdk.collection.create(engineId, InternalCollection_1.InternalCollection.ASSETS_GROUPS, { mappings: asset_1.assetGroupsMappings });
198
+ const settings = this.config.engineCollections.assetGroups.settings;
199
+ await this.tryCreateCollection(engineId, InternalCollection_1.InternalCollection.ASSETS_GROUPS, {
200
+ mappings: asset_1.assetGroupsMappings,
201
+ settings,
202
+ });
91
203
  return InternalCollection_1.InternalCollection.ASSETS_GROUPS;
92
204
  }
93
- async getDigitalTwinMappings(digitalTwinType, engineGroup) {
205
+ /**
206
+ * Generate devices mappings and create the devices collection in the engine
207
+ *
208
+ * @param engineId The target engine Id
209
+ * @param engineGroup The engine group
210
+ *
211
+ * @throws If it failed during the devices collection creation
212
+ */
213
+ async createDevicesCollection(engineId) {
214
+ const mappings = await this.getDigitalTwinMappingsFromDB("device");
215
+ const settings = this.config.engineCollections.device.settings;
216
+ await this.tryCreateCollection(engineId, InternalCollection_1.InternalCollection.DEVICES, {
217
+ mappings,
218
+ settings,
219
+ });
220
+ return InternalCollection_1.InternalCollection.DEVICES;
221
+ }
222
+ /**
223
+ * Generate measures mappings and create the measures collection in the engine
224
+ *
225
+ * @param engineId The target engine Id
226
+ * @param engineGroup The engine group
227
+ *
228
+ * @throws If it failed during the measures collection creation
229
+ */
230
+ async createMeasuresCollection(engineId, engineGroup) {
231
+ const mappings = await this.getMeasuresMappingsFromDB(engineGroup);
232
+ const settings = this.config.engineCollections.measures.settings;
233
+ await this.tryCreateCollection(engineId, InternalCollection_1.InternalCollection.MEASURES, {
234
+ mappings,
235
+ settings,
236
+ });
237
+ return InternalCollection_1.InternalCollection.MEASURES;
238
+ }
239
+ /**
240
+ * Create a collection with custom mappings in an engine
241
+ *
242
+ * @param engineIndex The target engine
243
+ * @param collection The collection name
244
+ * @param mappings The collection mappings
245
+ *
246
+ * @throws If it failed to create the collection
247
+ */
248
+ async tryCreateCollection(engineIndex, collection, options) {
249
+ try {
250
+ await this.sdk.collection.create(engineIndex, collection, options);
251
+ }
252
+ catch (error) {
253
+ throw new kuzzle_1.InternalError(`Failed to create the collection [${collection}] for engine [${engineIndex}]: ${error.message}`, error);
254
+ }
255
+ }
256
+ /**
257
+ * Generate ES mappings from twin models and theirs associated measures, all fetched from the database
258
+ *
259
+ * @param digitalTwinType The target twin type
260
+ * @param engineGroup The twin engine group
261
+ * @returns The complete ES mappings produces by merging all the target type twins
262
+ */
263
+ async getDigitalTwinMappingsFromDB(digitalTwinType, engineGroup) {
264
+ const models = await this.getModels(this.config.adminIndex, digitalTwinType, engineGroup);
265
+ const measureModels = await this.getModels(this.config.adminIndex, "measure");
266
+ return this.getDigitalTwinMappings(digitalTwinType, models, measureModels);
267
+ }
268
+ /**
269
+ * Generate ES mappings from twin models and theirs associated measures
270
+ *
271
+ * @param digitalTwinType The target twin type
272
+ * @param models The twin models
273
+ * @param measureModels The associated measures
274
+ * @returns The complete ES mappings produces by merging all the target type twins
275
+ */
276
+ async getDigitalTwinMappings(digitalTwinType, models, measureModels) {
94
277
  if (this.config.engineCollections[digitalTwinType] === undefined ||
95
278
  this.config.engineCollections[digitalTwinType].mappings === undefined) {
96
279
  throw new kuzzle_1.InternalError(`Cannot find mapping for "${digitalTwinType}"`);
97
280
  }
98
- const models = await this.getModels(this.config.adminIndex, digitalTwinType, engineGroup);
99
- const measureModels = await this.getModels(this.config.adminIndex, "measure");
100
281
  const mappings = JSON.parse(JSON.stringify(this.config.engineCollections[digitalTwinType].mappings));
101
282
  for (const model of models) {
102
- lodash_1.default.merge(mappings.properties.metadata.properties, model._source[digitalTwinType].metadataMappings);
103
- for (const { name: measureName, type: measureType } of model._source[digitalTwinType].measures) {
104
- const measureModel = measureModels.find((m) => m._source.measure.type === measureType);
283
+ lodash_1.default.merge(mappings.properties.metadata.properties, model[digitalTwinType].metadataMappings);
284
+ for (const { name: measureName, type: measureType } of model[digitalTwinType].measures) {
285
+ const measureModel = measureModels.find((m) => m.measure.type === measureType);
105
286
  if (!measureModel) {
106
287
  throw new kuzzle_1.InternalError(`Cannot find measure "${measureType}" declared in ${[
107
288
  digitalTwinType,
108
- ]} "${model._source[digitalTwinType].model}"`);
289
+ ]} "${model[digitalTwinType].model}"`);
109
290
  }
110
291
  mappings.properties.measures.properties[measureName] =
111
- (0, measure_1.getEmbeddedMeasureMappings)(measureModel._source.measure.valuesMappings);
292
+ (0, measure_1.getEmbeddedMeasureMappings)(measureModel.measure.valuesMappings);
112
293
  }
113
294
  }
114
295
  return mappings;
115
296
  }
116
- async createDevicesCollection(engineId) {
117
- const mappings = await this.getDigitalTwinMappings("device");
118
- await this.sdk.collection.create(engineId, InternalCollection_1.InternalCollection.DEVICES, mappings);
119
- return InternalCollection_1.InternalCollection.DEVICES;
120
- }
121
- async createMeasuresCollection(engineId, engineGroup) {
122
- const mappings = await this.getMeasuresMappings(engineGroup);
123
- await this.sdk.collection.create(engineId, InternalCollection_1.InternalCollection.MEASURES, mappings);
124
- return InternalCollection_1.InternalCollection.MEASURES;
125
- }
126
- async getMeasuresMappings(engineGroup) {
297
+ /**
298
+ * Generate ES mappings from measures and theirs associated assets, all fetched via the database
299
+ *
300
+ * @param engineGroup The target engine group
301
+ * @returns The complete ES mappings produced by merging models mappings
302
+ */
303
+ async getMeasuresMappingsFromDB(engineGroup) {
127
304
  const models = await this.getModels(this.config.adminIndex, "measure");
305
+ const assetsMappings = await this.getDigitalTwinMappingsFromDB("asset", engineGroup);
306
+ const deviceMappings = await this.getDigitalTwinMappingsFromDB("device");
307
+ return this.getMeasuresMappings(models, assetsMappings, deviceMappings);
308
+ }
309
+ /**
310
+ * Generate ES mappings from measures and theirs associated assets
311
+ *
312
+ * @param models The measures models
313
+ * @param assetsMappings The assets complete mappings
314
+ * @returns The complete ES mappings produced by merging models mappings
315
+ */
316
+ async getMeasuresMappings(models, assetsMappings, deviceMappings) {
128
317
  const mappings = JSON.parse(JSON.stringify(measure_1.measuresMappings));
129
318
  for (const model of models) {
130
- lodash_1.default.merge(mappings.properties.values.properties, model._source.measure.valuesMappings);
319
+ lodash_1.default.merge(mappings.properties.values.properties, model.measure.valuesMappings);
131
320
  }
132
- const _assetsMappings = await this.getDigitalTwinMappings("asset", engineGroup);
133
321
  mappings.properties.asset.properties.metadata.properties =
134
- _assetsMappings.properties.metadata.properties;
322
+ assetsMappings.properties.metadata.properties;
323
+ mappings.properties.origin.properties.deviceMetadata.properties =
324
+ deviceMappings.properties.metadata.properties;
135
325
  return mappings;
136
326
  }
327
+ /**
328
+ * Retrieve a certain type of models associated to an engine
329
+ *
330
+ * @param engineId The target engine Id
331
+ * @param type The desired model type
332
+ * @param engineGroup The target engine group
333
+ * @returns An array of the generic type provided
334
+ */
137
335
  async getModels(engineId, type, engineGroup) {
138
336
  const query = {
139
337
  and: [{ equals: { type } }],
@@ -147,7 +345,7 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
147
345
  });
148
346
  }
149
347
  const result = await this.sdk.document.search(engineId, InternalCollection_1.InternalCollection.MODELS, { query }, { lang: "koncorde", size: 5000 });
150
- return result.hits;
348
+ return result.hits.map((elt) => elt._source);
151
349
  }
152
350
  }
153
351
  exports.DeviceManagerEngine = DeviceManagerEngine;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceManagerEngine.js","sourceRoot":"","sources":["../../../../lib/modules/plugin/DeviceManagerEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeviceManagerEngine.js","sourceRoot":"","sources":["../../../../lib/modules/plugin/DeviceManagerEngine.ts"],"names":[],"mappings":"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"}
@@ -22,10 +22,14 @@ export declare class DeviceManagerPlugin extends Plugin {
22
22
  * Register an asset model
23
23
  *
24
24
  * @param engineGroup Engine group name
25
- * @param model Name of the asset model
26
- * @param definition.measures Array describing measures names and types
27
- * @param definition.metadataMappings Metadata mappings definition
28
- * @param definition.defaultMetadata Default metadata values
25
+ * @param model Name of the asset model. Must follow a naming convention in PascalCase.
26
+ * @param definition Object containing the asset model definition, including:
27
+ * - measures: Array describing measure names and their types.
28
+ * - metadataMappings: Definition of metadata mappings, specifying types for each metadata field.
29
+ * - defaultMetadata: Default values for metadata fields, applied when actual data is not provided.
30
+ * - metadataDetails: Optional detailed descriptions for each metadata, including localizations, group association and definition.
31
+ * - metadataGroups: Optional description of metadata groups, organizing metadata logically, with localizations for group names.
32
+ * - tooltipModels: Optional tooltip model list, containing each labels and tooltip content to display.
29
33
  *
30
34
  * @example
31
35
  * ```
@@ -44,6 +48,74 @@ export declare class DeviceManagerPlugin extends Plugin {
44
48
  * },
45
49
  * defaultMetadata: {
46
50
  * height: 20
51
+ * },
52
+ * metadataDetails: {
53
+ * "extTemp": {
54
+ * "group": "environment",
55
+ * "locales": {
56
+ * "en": {
57
+ * "friendlyName": "External Temperature",
58
+ * "description": "The temperature outside the container"
59
+ * },
60
+ * "fr": {
61
+ * "friendlyName": "Température Externe",
62
+ * "description": "La température à l'extérieur du conteneur"
63
+ * }
64
+ * }
65
+ * }
66
+ * },
67
+ * metadataGroups: {
68
+ * "environment": {
69
+ * "locales": {
70
+ * "en": {
71
+ * "groupFriendlyName": "Environment"
72
+ * },
73
+ * "fr": {
74
+ * "groupFriendlyName": "Environnement"
75
+ * }
76
+ * }
77
+ * }
78
+ * },
79
+ * tooltipModels: {
80
+ * "defaultTooltipKey": {
81
+ * "tooltipLabel": "Default Tooltip Model",
82
+ * "content": [
83
+ * {
84
+ * "category": "metadata",
85
+ * "label": {
86
+ * "locales": {
87
+ * "en": {
88
+ * "friendlyName": "Container position",
89
+ * "description": ""
90
+ * },
91
+ * "fr": {
92
+ * "friendlyName": "Position du conteneur",
93
+ * "description": ""
94
+ * }
95
+ * }
96
+ * },
97
+ * "metadataPath": "geolocation"
98
+ * },
99
+ * {
100
+ * "category": "measure",
101
+ * "label": {
102
+ * "locales": {
103
+ * "en": {
104
+ * "friendlyName": "External temperature",
105
+ * "description": ""
106
+ * },
107
+ * "fr": {
108
+ * "friendlyName": "Température extérieure",
109
+ * "description": ""
110
+ * }
111
+ * }
112
+ * },
113
+ * "measureSlot": "externalTemperature",
114
+ * "measureValuePath": "externalTemperature",
115
+ * "suffix": "°C"
116
+ * }
117
+ * ]
118
+ * }
47
119
  * }
48
120
  * }
49
121
  * );
@@ -51,12 +123,15 @@ export declare class DeviceManagerPlugin extends Plugin {
51
123
  */
52
124
  registerAsset: (engineGroup: string, model: string, definition: AssetModelDefinition) => void;
53
125
  /**
54
- * Register a device model
126
+ * Register a device.
55
127
  *
56
128
  * @param model Name of the device model
57
- * @param definition.decoded Decoder used to decode payloads
58
- * @param definition.metadataMappings Metadata mappings definition
59
- * @param definition.defaultMetadata Default metadata values
129
+ * @param definition Object containing the device model definition, including:
130
+ * - decoder: Decoder used to decode payloads
131
+ * - metadataMappings: Metadata mappings definition
132
+ * - defaultMetadata: Default metadata values
133
+ * - metadataDetails: Localizations, detailed metadata descriptions and definition
134
+ * - metadataGroups: Groups for organizing metadata, with localizations
60
135
  *
61
136
  * @example
62
137
  * ```
@@ -66,6 +141,36 @@ export declare class DeviceManagerPlugin extends Plugin {
66
141
  * decoder: new DummyTempPositionDecoder(),
67
142
  * metadataMappings: {
68
143
  * serial: { type: "keyword" },
144
+ * },
145
+ * defaultMetadata: {
146
+ * company: "Acme Inc"
147
+ * },
148
+ * metadataDetails: {
149
+ * sensorVersion: {
150
+ * group: "sensorSpecs",
151
+ * locales: {
152
+ * en: {
153
+ * friendlyName: "Sensor version",
154
+ * description: "Firmware version of the sensor"
155
+ * },
156
+ * fr: {
157
+ * friendlyName: "Version du capteur",
158
+ * description: "Version du micrologiciel du capteur"
159
+ * }
160
+ * }
161
+ * }
162
+ * },
163
+ * metadataGroups: {
164
+ * sensorSpecs: {
165
+ * locales: {
166
+ * en: {
167
+ * groupFriendlyName: "Sensors specifications"
168
+ * },
169
+ * fr: {
170
+ * groupFriendlyName: "Spécifications des capteurs"
171
+ * }
172
+ * }
173
+ * }
69
174
  * }
70
175
  * }
71
176
  * );