kuzzle-device-manager 3.0.0-3-dev.19 → 3.0.0-3-dev.21

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 (118) hide show
  1. package/dist/bin/migration/migrate-tenant-classes.d.ts +2 -0
  2. package/dist/bin/migration/migrate-tenant-classes.js +133 -0
  3. package/dist/bin/migration/migrate-tenant-classes.js.map +1 -0
  4. package/dist/lib/modules/asset/AssetHistoryService.d.ts +1 -1
  5. package/dist/lib/modules/asset/AssetHistoryService.js +3 -3
  6. package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -1
  7. package/dist/lib/modules/asset/AssetService.d.ts +18 -12
  8. package/dist/lib/modules/asset/AssetService.js +115 -115
  9. package/dist/lib/modules/asset/AssetService.js.map +1 -1
  10. package/dist/lib/modules/asset/AssetsController.d.ts +1 -1
  11. package/dist/lib/modules/asset/AssetsController.js +72 -74
  12. package/dist/lib/modules/asset/AssetsController.js.map +1 -1
  13. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.d.ts +1 -0
  14. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +2 -0
  15. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
  16. package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +1 -0
  17. package/dist/lib/modules/asset/roles/RoleAssetsReader.js +2 -0
  18. package/dist/lib/modules/asset/roles/RoleAssetsReader.js.map +1 -1
  19. package/dist/lib/modules/asset/types/AssetApi.d.ts +6 -6
  20. package/dist/lib/modules/asset/types/AssetEvents.d.ts +1 -1
  21. package/dist/lib/modules/decoder/PayloadService.js +16 -16
  22. package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
  23. package/dist/lib/modules/device/DeviceService.d.ts +11 -11
  24. package/dist/lib/modules/device/DeviceService.js +86 -86
  25. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  26. package/dist/lib/modules/device/DevicesController.js +60 -64
  27. package/dist/lib/modules/device/DevicesController.js.map +1 -1
  28. package/dist/lib/modules/device/collections/deviceMappings.js +2 -2
  29. package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
  30. package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +1 -0
  31. package/dist/lib/modules/device/roles/RoleDevicesAdmin.js +2 -0
  32. package/dist/lib/modules/device/roles/RoleDevicesAdmin.js.map +1 -1
  33. package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +1 -0
  34. package/dist/lib/modules/device/roles/RoleDevicesReader.js +2 -0
  35. package/dist/lib/modules/device/roles/RoleDevicesReader.js.map +1 -1
  36. package/dist/lib/modules/device/types/DeviceApi.d.ts +2 -2
  37. package/dist/lib/modules/device/types/DeviceContent.d.ts +2 -2
  38. package/dist/lib/modules/device/types/DeviceEvents.d.ts +1 -1
  39. package/dist/lib/modules/group/GroupsController.d.ts +3 -3
  40. package/dist/lib/modules/group/GroupsController.js +66 -66
  41. package/dist/lib/modules/group/GroupsController.js.map +1 -1
  42. package/dist/lib/modules/group/GroupsService.d.ts +19 -14
  43. package/dist/lib/modules/group/GroupsService.js +103 -64
  44. package/dist/lib/modules/group/GroupsService.js.map +1 -1
  45. package/dist/lib/modules/group/index.d.ts +1 -0
  46. package/dist/lib/modules/group/index.js +1 -0
  47. package/dist/lib/modules/group/index.js.map +1 -1
  48. package/dist/lib/modules/group/roles/RoleGroupsAdmin.d.ts +1 -0
  49. package/dist/lib/modules/group/roles/RoleGroupsAdmin.js +2 -0
  50. package/dist/lib/modules/group/roles/RoleGroupsAdmin.js.map +1 -1
  51. package/dist/lib/modules/group/roles/RoleGroupsReader.d.ts +1 -0
  52. package/dist/lib/modules/group/roles/RoleGroupsReader.js +2 -0
  53. package/dist/lib/modules/group/roles/RoleGroupsReader.js.map +1 -1
  54. package/dist/lib/modules/group/types/GroupEvents.d.ts +8 -0
  55. package/dist/lib/modules/group/types/GroupEvents.js +3 -0
  56. package/dist/lib/modules/group/types/GroupEvents.js.map +1 -0
  57. package/dist/lib/modules/group/types/GroupsApi.d.ts +1 -1
  58. package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -5
  59. package/dist/lib/modules/measure/MeasureExporter.js +20 -20
  60. package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
  61. package/dist/lib/modules/measure/MeasureService.d.ts +2 -2
  62. package/dist/lib/modules/measure/MeasureService.js +5 -5
  63. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  64. package/dist/lib/modules/measure/MeasureTargetBuilder.d.ts +1 -1
  65. package/dist/lib/modules/measure/MeasureTargetBuilder.js +2 -2
  66. package/dist/lib/modules/measure/MeasureTargetBuilder.js.map +1 -1
  67. package/dist/lib/modules/measure/types/MeasureTarget.d.ts +1 -1
  68. package/dist/lib/modules/measure/types/MeasureTarget.js +1 -1
  69. package/dist/lib/modules/measure/types/MeasureTarget.js.map +1 -1
  70. package/dist/lib/modules/model/MetadataReferential.d.ts +119 -0
  71. package/dist/lib/modules/model/MetadataReferential.js +342 -0
  72. package/dist/lib/modules/model/MetadataReferential.js.map +1 -0
  73. package/dist/lib/modules/model/ModelSerializer.js +13 -13
  74. package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
  75. package/dist/lib/modules/model/ModelService.d.ts +120 -22
  76. package/dist/lib/modules/model/ModelService.js +548 -263
  77. package/dist/lib/modules/model/ModelService.js.map +1 -1
  78. package/dist/lib/modules/model/ModelsConflicts.d.ts +23 -0
  79. package/dist/lib/modules/model/ModelsConflicts.js +54 -4
  80. package/dist/lib/modules/model/ModelsConflicts.js.map +1 -1
  81. package/dist/lib/modules/model/ModelsController.d.ts +11 -2
  82. package/dist/lib/modules/model/ModelsController.js +151 -54
  83. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  84. package/dist/lib/modules/model/ModelsRegister.d.ts +37 -5
  85. package/dist/lib/modules/model/ModelsRegister.js +107 -9
  86. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  87. package/dist/lib/modules/model/collections/modelsMappings.js +15 -1
  88. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  89. package/dist/lib/modules/model/types/ModelApi.d.ts +105 -14
  90. package/dist/lib/modules/model/types/ModelContent.d.ts +73 -7
  91. package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
  92. package/dist/lib/modules/model/types/ModelDefinition.d.ts +6 -3
  93. package/dist/lib/modules/model/types/ModelEvents.d.ts +9 -4
  94. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +58 -25
  95. package/dist/lib/modules/plugin/DeviceManagerEngine.js +184 -88
  96. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  97. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +46 -4
  98. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +72 -9
  99. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  100. package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +11 -0
  101. package/dist/lib/modules/shared/services/AbstractExporter.d.ts +8 -8
  102. package/dist/lib/modules/shared/services/AbstractExporter.js +9 -9
  103. package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
  104. package/dist/lib/modules/shared/services/BaseService.d.ts +7 -7
  105. package/dist/lib/modules/shared/services/BaseService.js +20 -17
  106. package/dist/lib/modules/shared/services/BaseService.js.map +1 -1
  107. package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +3 -3
  108. package/dist/lib/modules/shared/services/DigitalTwinExporter.js +18 -18
  109. package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
  110. package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +8 -8
  111. package/dist/lib/modules/shared/services/DigitalTwinService.js +39 -39
  112. package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -1
  113. package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +1 -1
  114. package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +2 -2
  115. package/dist/lib/modules/shared/utils/lock.d.ts +7 -1
  116. package/dist/lib/modules/shared/utils/lock.js +2 -2
  117. package/dist/lib/modules/shared/utils/lock.js.map +1 -1
  118. package/package.json +3 -2
@@ -18,9 +18,9 @@ class DeviceService extends shared_1.DigitalTwinService {
18
18
  const request = new kuzzle_1.KuzzleRequest({ refresh: "false" }, { user });
19
19
  await this.detachEngine(deviceId, request);
20
20
  });
21
- (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:device:attach-engine", async ({ deviceId, engineId, user }) => {
21
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:device:attach-engine", async ({ deviceId, index, user }) => {
22
22
  const request = new kuzzle_1.KuzzleRequest({ refresh: "false" }, { user });
23
- await this.attachEngine(engineId, deviceId, request);
23
+ await this.attachEngine(index, deviceId, request);
24
24
  });
25
25
  (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:device:refresh-model", this.refreshModel.bind(this));
26
26
  }
@@ -28,7 +28,7 @@ class DeviceService extends shared_1.DigitalTwinService {
28
28
  let device = {
29
29
  _id: deviceId,
30
30
  _source: {
31
- engineId: null,
31
+ index: null,
32
32
  groups: [],
33
33
  linkedMeasures: [],
34
34
  measureSlots: [],
@@ -38,7 +38,7 @@ class DeviceService extends shared_1.DigitalTwinService {
38
38
  },
39
39
  };
40
40
  const deviceModel = await this.getDeviceModel(model);
41
- const engineId = request.getString("engineId", "");
41
+ const index = request.getString("index", "");
42
42
  device._source.measureSlots = deviceModel.device.measures;
43
43
  const refreshableCollections = [];
44
44
  await this._createDeviceProvisioning(device, request);
@@ -46,15 +46,15 @@ class DeviceService extends shared_1.DigitalTwinService {
46
46
  collection: plugin_1.InternalCollection.DEVICES,
47
47
  index: this.config.platformIndex,
48
48
  });
49
- if (engineId.trim() !== "" && engineId !== this.config.platformIndex) {
50
- device = await this._attachEngine(engineId, device._id, request, metadata);
49
+ if (index.trim() !== "" && index !== this.config.platformIndex) {
50
+ device = await this._attachEngine(index, device._id, request, metadata);
51
51
  refreshableCollections.push({
52
52
  collection: plugin_1.InternalCollection.DEVICES,
53
- index: engineId,
53
+ index: index,
54
54
  });
55
55
  }
56
56
  if (request.getRefresh() === "wait_for") {
57
- await Promise.all(refreshableCollections.map(({ index, collection }) => this.sdk.collection.refresh(index, collection)));
57
+ await Promise.all(refreshableCollections.map((target) => this.sdk.collection.refresh(target.index, target.collection)));
58
58
  }
59
59
  return device;
60
60
  }
@@ -62,7 +62,7 @@ class DeviceService extends shared_1.DigitalTwinService {
62
62
  const deviceProvisioning = await this.createDocument(request, {
63
63
  _id: device._id,
64
64
  _source: {
65
- engineId: null,
65
+ index: null,
66
66
  lastMeasuredAt: null,
67
67
  lastMeasures: [],
68
68
  measureSlots: device._source.measureSlots,
@@ -72,7 +72,7 @@ class DeviceService extends shared_1.DigitalTwinService {
72
72
  },
73
73
  }, {
74
74
  collection: plugin_1.InternalCollection.DEVICES,
75
- engineId: this.config.platformIndex,
75
+ index: this.config.platformIndex,
76
76
  });
77
77
  return deviceProvisioning;
78
78
  }
@@ -85,25 +85,25 @@ class DeviceService extends shared_1.DigitalTwinService {
85
85
  const device = await (0, shared_1.lock)(`device:${deviceId}`, async () => this._create(deviceId, model, reference, metadata, request));
86
86
  return device;
87
87
  }
88
- async get(engineId, deviceId, request) {
88
+ async get(index, deviceId, request) {
89
89
  return this.getDocument(request, deviceId, {
90
90
  collection: plugin_1.InternalCollection.DEVICES,
91
- engineId,
91
+ index,
92
92
  });
93
93
  }
94
94
  /**
95
95
  * Replace a device metadata
96
96
  */
97
- async replaceMetadata(engineId, deviceId, metadata, request) {
97
+ async replaceMetadata(index, deviceId, metadata, request) {
98
98
  return (0, shared_1.lock)(`device:${deviceId}`, async () => {
99
- const device = await this.get(engineId, deviceId, request);
99
+ const device = await this.get(index, deviceId, request);
100
100
  for (const key in metadata) {
101
101
  if (key in device._source.metadata) {
102
102
  device._source.metadata[key] = metadata[key];
103
103
  }
104
104
  }
105
105
  const updatedPayload = await this.app.trigger("device-manager:device:update:before", { device: device, metadata });
106
- const updatedDevice = await this.sdk.document.replace(engineId, plugin_1.InternalCollection.DEVICES, deviceId, updatedPayload.device._source);
106
+ const updatedDevice = await this.sdk.document.replace(index, plugin_1.InternalCollection.DEVICES, deviceId, updatedPayload.device._source);
107
107
  await this.app.trigger("device-manager:device:update:after", {
108
108
  device: updatedDevice,
109
109
  metadata: updatedPayload.metadata,
@@ -114,9 +114,9 @@ class DeviceService extends shared_1.DigitalTwinService {
114
114
  /**
115
115
  * Update the display name of a measure slot on a device
116
116
  */
117
- async updateMeasureSlotDisplayName(engineId, deviceId, measureSlotName, displayName, request) {
117
+ async updateMeasureSlotDisplayName(index, deviceId, measureSlotName, displayName, request) {
118
118
  return (0, shared_1.lock)(`device:${deviceId}`, async () => {
119
- const device = await this.get(engineId, deviceId, request);
119
+ const device = await this.get(index, deviceId, request);
120
120
  const slot = device._source.measureSlots.find((s) => s.name === measureSlotName);
121
121
  if (!slot) {
122
122
  throw new kuzzle_1.BadRequestError(`Device ${deviceId} does not have a measure slot named ${measureSlotName}`);
@@ -124,7 +124,7 @@ class DeviceService extends shared_1.DigitalTwinService {
124
124
  slot.displayName = displayName;
125
125
  const updatedDevice = await this.updateDocument(request, device, {
126
126
  collection: plugin_1.InternalCollection.DEVICES,
127
- engineId,
127
+ index,
128
128
  });
129
129
  return updatedDevice;
130
130
  });
@@ -132,20 +132,20 @@ class DeviceService extends shared_1.DigitalTwinService {
132
132
  /**
133
133
  * Update or Create an device metadata
134
134
  */
135
- async upsert(engineId, model, reference, metadata, request) {
135
+ async upsert(index, model, reference, metadata, request) {
136
136
  const deviceId = DeviceSerializer_1.DeviceSerializer.id(model, reference);
137
137
  return (0, shared_1.lock)(`device:${deviceId}`, async () => {
138
138
  const deviceProvisioning = await this.get(this.config.platformIndex, deviceId, request).catch(() => null);
139
139
  if (!deviceProvisioning) {
140
140
  return this._create(deviceId, model, reference, metadata, request);
141
141
  }
142
- if (deviceProvisioning._source.engineId &&
143
- deviceProvisioning._source.engineId !== engineId) {
142
+ if (deviceProvisioning._source.index &&
143
+ deviceProvisioning._source.index !== index) {
144
144
  throw new kuzzle_1.BadRequestError(`Device "${deviceProvisioning._id}" already exists on another engine. Abort`);
145
145
  }
146
- const engineDevice = await this.get(engineId, deviceId, request).catch(() => null);
146
+ const engineDevice = await this.get(index, deviceId, request).catch(() => null);
147
147
  if (!engineDevice) {
148
- await this._attachEngine(engineId, deviceId, request);
148
+ await this._attachEngine(index, deviceId, request);
149
149
  }
150
150
  const updatedPayload = await this.app.trigger("device-manager:device:update:before", { device: deviceProvisioning, metadata });
151
151
  const updatedDevice = await this.updateDocument(request, {
@@ -153,7 +153,7 @@ class DeviceService extends shared_1.DigitalTwinService {
153
153
  _source: { metadata: updatedPayload.metadata },
154
154
  }, {
155
155
  collection: plugin_1.InternalCollection.DEVICES,
156
- engineId,
156
+ index,
157
157
  }, { source: true });
158
158
  await this.app.trigger("device-manager:device:update:after", {
159
159
  device: updatedDevice,
@@ -162,14 +162,14 @@ class DeviceService extends shared_1.DigitalTwinService {
162
162
  return updatedDevice;
163
163
  });
164
164
  }
165
- async update(engineId, deviceId, metadata, request) {
165
+ async update(index, deviceId, metadata, request) {
166
166
  return (0, shared_1.lock)(`device:${deviceId}`, async () => {
167
- const device = await this.get(engineId, deviceId, request);
167
+ const device = await this.get(index, deviceId, request);
168
168
  const updatedPayload = await this.app.trigger("device-manager:device:update:before", { device, metadata });
169
169
  const updatedDevice = await this.updateDocument(request, {
170
170
  _id: deviceId,
171
171
  _source: { metadata: updatedPayload.metadata },
172
- }, { collection: plugin_1.InternalCollection.DEVICES, engineId }, { source: true });
172
+ }, { collection: plugin_1.InternalCollection.DEVICES, index }, { source: true });
173
173
  await this.app.trigger("device-manager:device:update:after", {
174
174
  device: updatedDevice,
175
175
  metadata: updatedPayload.metadata,
@@ -177,18 +177,18 @@ class DeviceService extends shared_1.DigitalTwinService {
177
177
  return updatedDevice;
178
178
  });
179
179
  }
180
- async delete(engineId, deviceId, request) {
180
+ async delete(index, deviceId, request) {
181
181
  return (0, shared_1.lock)(`device:${deviceId}`, async () => {
182
- const device = await this.get(engineId, deviceId, request);
182
+ const device = await this.get(index, deviceId, request);
183
183
  const promises = [];
184
184
  if (device._source.linkedMeasures?.length) {
185
- const { successes: assets } = await this.sdk.document.mGet(engineId, plugin_1.InternalCollection.ASSETS, device._source.linkedMeasures.map((link) => link.assetId));
185
+ const { successes: assets } = await this.sdk.document.mGet(index, plugin_1.InternalCollection.ASSETS, device._source.linkedMeasures.map((link) => link.assetId));
186
186
  for (const asset of assets) {
187
187
  const linkedDevices = asset._source.linkedMeasures.filter((link) => link.deviceId !== device._id);
188
- promises.push((0, shared_1.lock)(`asset:${engineId}:${asset._id}`, async () => this.updateDocument(request, {
188
+ promises.push((0, shared_1.lock)(`asset:${index}:${asset._id}`, async () => this.updateDocument(request, {
189
189
  _id: asset._id,
190
190
  _source: { linkedMeasures: linkedDevices },
191
- }, { collection: plugin_1.InternalCollection.ASSETS, engineId }).then(async (updatedAsset) => {
191
+ }, { collection: plugin_1.InternalCollection.ASSETS, index }).then(async (updatedAsset) => {
192
192
  const event = {
193
193
  name: "unlink",
194
194
  unlink: {
@@ -196,7 +196,7 @@ class DeviceService extends shared_1.DigitalTwinService {
196
196
  },
197
197
  };
198
198
  await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:asset:history:add", {
199
- engineId,
199
+ index,
200
200
  histories: [
201
201
  {
202
202
  asset: updatedAsset._source,
@@ -211,24 +211,24 @@ class DeviceService extends shared_1.DigitalTwinService {
211
211
  }
212
212
  promises.push(this.deleteDocument(request, deviceId, {
213
213
  collection: plugin_1.InternalCollection.DEVICES,
214
- engineId: this.config.platformIndex,
214
+ index: this.config.platformIndex,
215
215
  }));
216
216
  promises.push(this.deleteDocument(request, deviceId, {
217
217
  collection: plugin_1.InternalCollection.DEVICES,
218
- engineId,
218
+ index,
219
219
  }));
220
220
  await Promise.all(promises);
221
221
  });
222
222
  }
223
- async search(engineId, searchParams, request) {
223
+ async search(index, searchParams, request) {
224
224
  return this.searchDocument(request, searchParams, {
225
225
  collection: plugin_1.InternalCollection.DEVICES,
226
- engineId,
226
+ index,
227
227
  });
228
228
  }
229
229
  async unlinkAssets(deviceId, allMeasures, assetIds, measureSlots, request) {
230
- const engineId = request.getString("engineId");
231
- let device = await this.get(engineId, deviceId, request);
230
+ const index = request.getIndex();
231
+ let device = await this.get(index, deviceId, request);
232
232
  const assets = [];
233
233
  // CASE ALL MEASURES TO UNLINK
234
234
  if (allMeasures) {
@@ -261,26 +261,26 @@ class DeviceService extends shared_1.DigitalTwinService {
261
261
  /**
262
262
  * Internal logic to attach the device to an engine
263
263
  *
264
- * @param engineId Engine id to attach to
264
+ * @param index Engine id to attach to
265
265
  * @param deviceId Device id to attach
266
266
  * @param options.refresh Wait for ES indexation
267
267
  */
268
- async _attachEngine(engineId, deviceId, request, metadata) {
268
+ async _attachEngine(index, deviceId, request, metadata) {
269
269
  const device = await this.getDeviceProvisioning(deviceId);
270
- if (device._source.engineId) {
270
+ if (device._source.index) {
271
271
  throw new kuzzle_1.BadRequestError(`Device "${device._id}" is already attached to an engine.`);
272
272
  }
273
- await this.checkEngineExists(engineId);
274
- device._source.engineId = engineId;
273
+ await this.checkEngineExists(index);
274
+ device._source.index = index;
275
275
  await this.updateDocument(request, device, {
276
276
  collection: plugin_1.InternalCollection.DEVICES,
277
- engineId: this.config.platformIndex,
277
+ index: this.config.platformIndex,
278
278
  });
279
279
  // Make sure the device is cleaned when attached to tenant
280
280
  const engineDevice = {
281
281
  _id: device._id,
282
282
  _source: {
283
- engineId,
283
+ index,
284
284
  groups: [],
285
285
  linkedMeasures: [],
286
286
  measureSlots: device._source.measureSlots,
@@ -299,12 +299,12 @@ class DeviceService extends shared_1.DigitalTwinService {
299
299
  }
300
300
  const updatedDevice = await this.createDocument(request, engineDevice, {
301
301
  collection: plugin_1.InternalCollection.DEVICES,
302
- engineId,
302
+ index,
303
303
  });
304
304
  if (request.getRefresh() === "wait_for") {
305
305
  await Promise.all([
306
306
  this.sdk.collection.refresh(this.config.platformIndex, plugin_1.InternalCollection.DEVICES),
307
- this.sdk.collection.refresh(device._source.engineId, plugin_1.InternalCollection.DEVICES),
307
+ this.sdk.collection.refresh(device._source.index, plugin_1.InternalCollection.DEVICES),
308
308
  ]);
309
309
  }
310
310
  return updatedDevice;
@@ -312,13 +312,13 @@ class DeviceService extends shared_1.DigitalTwinService {
312
312
  /**
313
313
  * Attach the device to an engine
314
314
  *
315
- * @param engineId Engine id to attach to
315
+ * @param index Engine id to attach to
316
316
  * @param deviceId Device id to attach
317
317
  * @param options.refresh Wait for ES indexation
318
318
  * @param options.strict If true, throw if an operation isn't possible
319
319
  */
320
- async attachEngine(engineId, deviceId, request) {
321
- return (0, shared_1.lock)(`device:${deviceId}`, async () => this._attachEngine(engineId, deviceId, request));
320
+ async attachEngine(index, deviceId, request) {
321
+ return (0, shared_1.lock)(`device:${deviceId}`, async () => this._attachEngine(index, deviceId, request));
322
322
  }
323
323
  /**
324
324
  * Detach a device from its attached engine
@@ -330,31 +330,31 @@ class DeviceService extends shared_1.DigitalTwinService {
330
330
  return (0, shared_1.lock)(`device:${deviceId}`, async () => {
331
331
  const deviceProvisioning = await this.getDeviceProvisioning(deviceId);
332
332
  this.checkAttachedToEngine(deviceProvisioning);
333
- const device = await this.sdk.document.get(deviceProvisioning._source.engineId, plugin_1.InternalCollection.DEVICES, deviceId);
333
+ const device = await this.sdk.document.get(deviceProvisioning._source.index, plugin_1.InternalCollection.DEVICES, deviceId);
334
334
  if (device._source.linkedMeasures?.length) {
335
335
  await Promise.all(device._source.linkedMeasures.map((link) => this.unlinkAssetDevice(deviceId, link.assetId, [], true, request)));
336
336
  }
337
337
  await Promise.all([
338
338
  this.updateDocument(request, {
339
339
  _id: deviceProvisioning._id,
340
- _source: { engineId: null },
340
+ _source: { index: null },
341
341
  }, {
342
342
  collection: plugin_1.InternalCollection.DEVICES,
343
- engineId: this.config.platformIndex,
343
+ index: this.config.platformIndex,
344
344
  }),
345
- this.sdk.document.delete(deviceProvisioning._source.engineId, plugin_1.InternalCollection.DEVICES, deviceProvisioning._id),
345
+ this.sdk.document.delete(deviceProvisioning._source.index, plugin_1.InternalCollection.DEVICES, deviceProvisioning._id),
346
346
  ]);
347
347
  if (request.getRefresh() === "wait_for") {
348
348
  await Promise.all([
349
349
  this.sdk.collection.refresh(this.config.platformIndex, plugin_1.InternalCollection.DEVICES),
350
- this.sdk.collection.refresh(deviceProvisioning._source.engineId, plugin_1.InternalCollection.DEVICES),
350
+ this.sdk.collection.refresh(deviceProvisioning._source.index, plugin_1.InternalCollection.DEVICES),
351
351
  ]);
352
352
  }
353
353
  return deviceProvisioning;
354
354
  });
355
355
  }
356
- async receiveMeasures(engineId, deviceId, measures, payloadUuids, request) {
357
- const device = await this.get(engineId, deviceId, request);
356
+ async receiveMeasures(index, deviceId, measures, payloadUuids, request) {
357
+ const device = await this.get(index, deviceId, request);
358
358
  const deviceModel = await this.getDeviceModel(device._source.model);
359
359
  for (const measure of measures) {
360
360
  const declaredMeasure = deviceModel.device.measures.some((m) => m.name === measure.measureName && m.type === measure.type);
@@ -368,48 +368,48 @@ class DeviceService extends shared_1.DigitalTwinService {
368
368
  payloadUuids,
369
369
  });
370
370
  }
371
- async checkEngineExists(engineId) {
371
+ async checkEngineExists(index) {
372
372
  const { result: { exists }, } = await this.sdk.query({
373
373
  action: "exists",
374
374
  controller: "device-manager/engine",
375
- index: engineId,
375
+ index: index,
376
376
  });
377
377
  if (!exists) {
378
- throw new kuzzle_1.BadRequestError(`Engine "${engineId}" does not exists.`);
378
+ throw new kuzzle_1.BadRequestError(`Engine "${index}" does not exists.`);
379
379
  }
380
380
  }
381
381
  checkAttachedToEngine(device) {
382
- if (!device._source.engineId) {
382
+ if (!device._source.index) {
383
383
  throw new kuzzle_1.BadRequestError(`Device "${device._id}" is not attached to an engine.`);
384
384
  }
385
385
  }
386
386
  async refreshModel({ deviceModel, }) {
387
387
  const engines = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:list", {
388
- group: null,
388
+ tenantClass: null,
389
389
  });
390
- const targets = engines.map((engine) => ({
391
- collections: [plugin_1.InternalCollection.DEVICES],
392
- index: engine.index,
393
- }));
394
- const devices = await this.sdk.query({
395
- action: "search",
396
- body: { query: { equals: { model: deviceModel.device.model } } },
397
- controller: "document",
398
- lang: "koncorde",
399
- targets,
400
- });
401
- const updatedDevicesPerIndex = devices.result.hits.reduce((acc, device) => {
402
- device._source.measureSlots = deviceModel.device.measures;
403
- acc[device.index].push(device);
404
- return acc;
405
- }, Object.fromEntries(engines.map((engine) => [
406
- engine.index,
407
- [],
408
- ])));
409
- await Promise.all(Object.entries(updatedDevicesPerIndex).map(([index, updatedDevices]) => this.sdk.document.mReplace(index, plugin_1.InternalCollection.DEVICES, updatedDevices.map((device) => ({
410
- _id: device._id,
411
- body: device._source,
412
- })), { refresh: "wait_for" })));
390
+ // ? Metadata are only added: a device keeps the metadata missing from its model
391
+ const modelMetadata = {};
392
+ for (const metadataName of Object.keys(deviceModel.device.metadataMappings ?? {})) {
393
+ modelMetadata[metadataName] =
394
+ deviceModel.device.defaultMetadata?.[metadataName] ?? null;
395
+ }
396
+ for (const engine of engines) {
397
+ // ? Scroll by pages matching the write limit, the default search size (10) would miss devices
398
+ let result = await this.sdk.document.search(engine.index, plugin_1.InternalCollection.DEVICES, { query: { equals: { model: deviceModel.device.model } } }, { lang: "koncorde", scroll: "10s", size: 200 });
399
+ while (result) {
400
+ if (result.hits.length > 0) {
401
+ await this.sdk.document.mReplace(engine.index, plugin_1.InternalCollection.DEVICES, result.hits.map((device) => ({
402
+ _id: device._id,
403
+ body: {
404
+ ...device._source,
405
+ measureSlots: deviceModel.device.measures,
406
+ metadata: { ...modelMetadata, ...device._source.metadata },
407
+ },
408
+ })), { refresh: "wait_for" });
409
+ }
410
+ result = await result.next();
411
+ }
412
+ }
413
413
  }
414
414
  }
415
415
  exports.DeviceService = DeviceService;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceService.js","sourceRoot":"","sources":["../../../../lib/modules/device/DeviceService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeviceService.js","sourceRoot":"","sources":["../../../../lib/modules/device/DeviceService.ts"],"names":[],"mappings":"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"}