kuzzle-device-manager 2.4.3-dev.1 → 2.5.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 (62) hide show
  1. package/dist/lib/modules/asset/AssetsController.d.ts +12 -0
  2. package/dist/lib/modules/asset/AssetsController.js +133 -0
  3. package/dist/lib/modules/asset/AssetsController.js.map +1 -1
  4. package/dist/lib/modules/asset/types/AssetApi.d.ts +30 -1
  5. package/dist/lib/modules/device/DevicesController.js +6 -0
  6. package/dist/lib/modules/device/DevicesController.js.map +1 -1
  7. package/dist/lib/modules/measure/MeasureService.d.ts +53 -3
  8. package/dist/lib/modules/measure/MeasureService.js +202 -25
  9. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  10. package/dist/lib/modules/measure/MeasureSourcesBuilder.d.ts +10 -0
  11. package/dist/lib/modules/measure/MeasureSourcesBuilder.js +36 -0
  12. package/dist/lib/modules/measure/MeasureSourcesBuilder.js.map +1 -0
  13. package/dist/lib/modules/measure/MeasureTargetBuilder.d.ts +3 -0
  14. package/dist/lib/modules/measure/MeasureTargetBuilder.js +20 -0
  15. package/dist/lib/modules/measure/MeasureTargetBuilder.js.map +1 -0
  16. package/dist/lib/modules/measure/MeasureValidationError.d.ts +12 -0
  17. package/dist/lib/modules/measure/MeasureValidationError.js +20 -0
  18. package/dist/lib/modules/measure/MeasureValidationError.js.map +1 -0
  19. package/dist/lib/modules/measure/collections/measuresMappings.d.ts +4 -0
  20. package/dist/lib/modules/measure/collections/measuresMappings.js +4 -0
  21. package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
  22. package/dist/lib/modules/measure/types/MeasureContent.d.ts +32 -20
  23. package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +19 -0
  24. package/dist/lib/modules/measure/types/MeasureEvents.d.ts +126 -0
  25. package/dist/lib/modules/measure/types/MeasureSources.d.ts +20 -0
  26. package/dist/lib/modules/measure/types/MeasureSources.js +28 -0
  27. package/dist/lib/modules/measure/types/MeasureSources.js.map +1 -0
  28. package/dist/lib/modules/measure/types/MeasureTarget.d.ts +18 -0
  29. package/dist/lib/modules/measure/types/MeasureTarget.js +27 -0
  30. package/dist/lib/modules/measure/types/MeasureTarget.js.map +1 -0
  31. package/dist/lib/modules/model/MappingsConflictsError.d.ts +4 -3
  32. package/dist/lib/modules/model/MappingsConflictsError.js.map +1 -1
  33. package/dist/lib/modules/model/MeasuresDuplicates.d.ts +3 -0
  34. package/dist/lib/modules/model/MeasuresDuplicates.js +18 -0
  35. package/dist/lib/modules/model/MeasuresDuplicates.js.map +1 -0
  36. package/dist/lib/modules/model/MeasuresNamesDuplicatesError.d.ts +7 -0
  37. package/dist/lib/modules/model/MeasuresNamesDuplicatesError.js +20 -0
  38. package/dist/lib/modules/model/MeasuresNamesDuplicatesError.js.map +1 -0
  39. package/dist/lib/modules/model/ModelService.d.ts +5 -3
  40. package/dist/lib/modules/model/ModelService.js +22 -1
  41. package/dist/lib/modules/model/ModelService.js.map +1 -1
  42. package/dist/lib/modules/model/ModelsController.js +6 -5
  43. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  44. package/dist/lib/modules/model/ModelsRegister.js +24 -2
  45. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  46. package/dist/lib/modules/model/collections/modelsMappings.js +4 -0
  47. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  48. package/dist/lib/modules/model/types/ModelApi.d.ts +2 -0
  49. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +1 -0
  50. package/dist/lib/modules/plugin/DeviceManagerEngine.js +16 -0
  51. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  52. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +1 -1
  53. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +2 -1
  54. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  55. package/dist/lib/modules/shared/errors/SchemaValidationError.d.ts +8 -0
  56. package/dist/lib/modules/shared/errors/SchemaValidationError.js +20 -0
  57. package/dist/lib/modules/shared/errors/SchemaValidationError.js.map +1 -0
  58. package/dist/lib/modules/shared/utils/AJValidator.d.ts +26 -0
  59. package/dist/lib/modules/shared/utils/AJValidator.js +63 -0
  60. package/dist/lib/modules/shared/utils/AJValidator.js.map +1 -0
  61. package/dist/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +3 -1
@@ -10,13 +10,98 @@ const lodash_1 = __importDefault(require("lodash"));
10
10
  const asset_1 = require("../asset");
11
11
  const plugin_1 = require("../plugin");
12
12
  const shared_1 = require("../shared");
13
+ const MeasureSources_1 = require("./types/MeasureSources");
14
+ const MeasureSourcesBuilder_1 = require("./MeasureSourcesBuilder");
15
+ const MeasureTarget_1 = require("./types/MeasureTarget");
16
+ const MeasureTargetBuilder_1 = require("./MeasureTargetBuilder");
13
17
  class MeasureService extends shared_1.BaseService {
14
18
  constructor(plugin) {
15
19
  super(plugin);
20
+ (0, kuzzle_plugin_commons_1.onAsk)("device-manager:measures:sourceIngest", async (payload) => {
21
+ if (!payload) {
22
+ return;
23
+ }
24
+ if ((0, MeasureSources_1.isSourceApi)(payload.source) && (0, MeasureTarget_1.isTargetApi)(payload.target)) {
25
+ await this.ingestApi(payload.source, payload.target, payload.measurements, payload.payloadUuids);
26
+ }
27
+ });
16
28
  (0, kuzzle_plugin_commons_1.onAsk)("device-manager:measures:ingest", async (payload) => {
29
+ if (!payload) {
30
+ return;
31
+ }
17
32
  await this.ingest(payload.device, payload.measurements, payload.metadata, payload.payloadUuids);
18
33
  });
19
34
  }
35
+ /**
36
+ * Register new measures from an API, updates :
37
+ * - asset
38
+ * - engine measures
39
+ *
40
+ * This method represents the ingestion pipeline:
41
+ * - trigger events `before` (measure enrichment)
42
+ * - save documents (measures and asset)
43
+ * - trigger events `after`
44
+ */
45
+ async ingestApi(source, target, measurements, payloadUuids) {
46
+ const { id: dataSourceId } = source;
47
+ const { indexId, assetId } = target;
48
+ if (!measurements) {
49
+ this.app.log.warn(`No measurements provided for "${dataSourceId}" API measures ingest`);
50
+ return;
51
+ }
52
+ const assetDocument = await this.findAsset(indexId, assetId);
53
+ if (!assetDocument) {
54
+ throw new kuzzle_1.BadRequestError(`Asset "${assetId}" does not exists on index "${indexId}"`);
55
+ }
56
+ const asset = assetDocument._source;
57
+ const measures = await this.buildApiMeasures(source, assetDocument, measurements, payloadUuids, target.engineGroup);
58
+ asset.measures || (asset.measures = {});
59
+ /**
60
+ * Event before starting to process new measures.
61
+ *
62
+ * Useful to enrich measures before they are saved.
63
+ */
64
+ await this.app.trigger("device-manager:measures:process:sourceBefore", { asset, measures, source, target });
65
+ if (indexId) {
66
+ await this.app.trigger(`engine:${indexId}:device-manager:measures:process:sourceBefore`, { asset, measures, source, target });
67
+ }
68
+ const assetStates = this.updateAssetMeasures(assetDocument, measures);
69
+ await this.app.trigger("device-manager:measures:persist:sourceBefore", { asset, measures, source, target });
70
+ if (indexId) {
71
+ await this.app.trigger(`engine:${indexId}:device-manager:measures:persist:sourceBefore`, { asset, measures, source, target });
72
+ }
73
+ const promises = [];
74
+ if (indexId) {
75
+ promises.push(this.sdk.document
76
+ .mCreate(indexId, plugin_1.InternalCollection.MEASURES, measures.map((measure) => ({ body: measure })))
77
+ .then(({ errors }) => {
78
+ if (errors.length !== 0) {
79
+ throw new kuzzle_1.BadRequestError(`Cannot save measures: ${errors[0].reason}`);
80
+ }
81
+ }));
82
+ // @todo potential race condition if 2 differents device are linked
83
+ // to the same asset and get processed at the same time
84
+ // asset measures update could be protected by mutex
85
+ promises.push(this.sdk.document
86
+ .update(indexId, plugin_1.InternalCollection.ASSETS, assetId, asset)
87
+ .catch((error) => {
88
+ throw (0, shared_1.keepStack)(error, new kuzzle_1.BadRequestError(`Cannot update asset "${assetId}": ${error.message}`));
89
+ }));
90
+ promises.push(historizeAssetStates(assetStates, indexId, JSON.parse(JSON.stringify(asset.metadata)), asset.metadata));
91
+ }
92
+ await Promise.all(promises);
93
+ /**
94
+ * Event at the end of the measure process pipeline.
95
+ *
96
+ * Useful to trigger business rules like alerts
97
+ *
98
+ * @todo test this
99
+ */
100
+ await this.app.trigger("device-manager:measures:process:sourceAfter", { asset, measures, source, target });
101
+ if (indexId) {
102
+ await this.app.trigger(`engine:${indexId}:device-manager:measures:process:sourceAfter`, { asset, measures, source, target });
103
+ }
104
+ }
20
105
  /**
21
106
  * Register new measures from a device, updates :
22
107
  * - admin device
@@ -31,6 +116,8 @@ class MeasureService extends shared_1.BaseService {
31
116
  * - trigger events `before` (measure enrichment)
32
117
  * - save documents (measures, device and asset)
33
118
  * - trigger events `after`
119
+ *
120
+ * @deprecated
34
121
  */
35
122
  async ingest(device, measurements, metadata, payloadUuids) {
36
123
  await (0, shared_1.lock)(`measure:ingest:${device._id}`, async () => {
@@ -39,8 +126,9 @@ class MeasureService extends shared_1.BaseService {
39
126
  this.app.log.warn(`Cannot find measurements for device "${device._source.reference}"`);
40
127
  return;
41
128
  }
42
- const engineId = device._source.engineId;
43
- const asset = await this.tryGetLinkedAsset(engineId, device._source.assetId);
129
+ const { engineId, reference, model, assetId, lastMeasuredAt } = device._source;
130
+ const asset = assetId ? await this.findAsset(engineId, assetId) : null;
131
+ const assetContent = asset?._source;
44
132
  const originalAssetMetadata = asset === null
45
133
  ? {}
46
134
  : JSON.parse(JSON.stringify(asset._source.metadata));
@@ -49,6 +137,8 @@ class MeasureService extends shared_1.BaseService {
49
137
  if (asset) {
50
138
  (_a = asset._source).measures || (_a.measures = {});
51
139
  }
140
+ const source = (0, MeasureSourcesBuilder_1.toDeviceSource)(device._id, reference, model, device._source.metadata, lastMeasuredAt);
141
+ const target = (0, MeasureTargetBuilder_1.toDeviceTarget)(device._source.engineId, device._source.assetId ?? undefined);
52
142
  /**
53
143
  * Event before starting to process new measures.
54
144
  *
@@ -58,6 +148,17 @@ class MeasureService extends shared_1.BaseService {
58
148
  if (engineId) {
59
149
  await this.app.trigger(`engine:${engineId}:device-manager:measures:process:before`, { asset, device, measures });
60
150
  }
151
+ /**
152
+ * Here are the new process before triggers using sources
153
+ *
154
+ * Event before starting to process new measures.
155
+ *
156
+ * Useful to enrich measures before they are saved.
157
+ */
158
+ await this.app.trigger("device-manager:measures:process:sourceBefore", { asset: assetContent, measures, source, target });
159
+ if (engineId) {
160
+ await this.app.trigger(`engine:${engineId}:device-manager:measures:process:sourceBefore`, { asset: assetContent, measures, source, target });
161
+ }
61
162
  await this.updateDeviceMeasures(device, measures);
62
163
  let assetStates = new Map();
63
164
  if (asset) {
@@ -71,6 +172,13 @@ class MeasureService extends shared_1.BaseService {
71
172
  if (engineId) {
72
173
  await this.app.trigger(`engine:${engineId}:device-manager:measures:persist:before`, { asset, device, measures });
73
174
  }
175
+ /**
176
+ * Here are the new persist before triggers using sources
177
+ */
178
+ await this.app.trigger("device-manager:measures:persist:sourceBefore", { asset: assetContent, measures, source, target });
179
+ if (engineId) {
180
+ await this.app.trigger(`engine:${engineId}:device-manager:measures:persist:sourceBefore`, { asset: assetContent, measures, source, target });
181
+ }
74
182
  const promises = [];
75
183
  promises.push(this.sdk.document
76
184
  .update(this.config.adminIndex, plugin_1.InternalCollection.DEVICES, device._id, device._source)
@@ -118,6 +226,19 @@ class MeasureService extends shared_1.BaseService {
118
226
  if (engineId) {
119
227
  await this.app.trigger(`engine:${engineId}:device-manager:measures:process:after`, { asset, device, measures });
120
228
  }
229
+ /**
230
+ * Here are the new process after triggers using sources
231
+ *
232
+ * Event at the end of the measure process pipeline.
233
+ *
234
+ * Useful to trigger business rules like alerts
235
+ *
236
+ * @todo test this
237
+ */
238
+ await this.app.trigger("device-manager:measures:process:sourceAfter", { asset: assetContent, measures, source, target });
239
+ if (engineId) {
240
+ await this.app.trigger(`engine:${engineId}:device-manager:measures:process:sourceAfter`, { asset: assetContent, measures, source, target });
241
+ }
121
242
  });
122
243
  }
123
244
  updateDeviceMeasures(device, measurements) {
@@ -126,7 +247,7 @@ class MeasureService extends shared_1.BaseService {
126
247
  }
127
248
  let lastMeasuredAt = 0;
128
249
  for (const measurement of measurements) {
129
- if (measurement.origin.type === "computed") {
250
+ if (measurement.origin.type !== "device") {
130
251
  continue;
131
252
  }
132
253
  const measureName = measurement.origin.measureName;
@@ -169,7 +290,7 @@ class MeasureService extends shared_1.BaseService {
169
290
  if (measurement.asset === null) {
170
291
  continue;
171
292
  }
172
- const measureName = measurement.asset.measureName;
293
+ const measureName = measurement.asset?.measureName ?? null;
173
294
  // The measurement was not present in the asset device links so it should
174
295
  // not be saved in the asset measures
175
296
  if (measureName === null) {
@@ -196,6 +317,35 @@ class MeasureService extends shared_1.BaseService {
196
317
  asset._source.lastMeasuredAt = lastMeasuredAt;
197
318
  return assetStates;
198
319
  }
320
+ /**
321
+ * Build the measures document received from the API
322
+ *
323
+ * @param source The API data source
324
+ * @param asset The target asset to build the measure for
325
+ * @param measure The decoded raw measures
326
+ * @param payloadUuids The uuid's of the payloads used to create the measure
327
+ *
328
+ * @returns A MeasurementContent builded from parameters
329
+ */
330
+ async buildApiMeasures(source, asset, measures, payloadUuids, engineGroup) {
331
+ const apiMeasures = [];
332
+ for (const measure of measures) {
333
+ let assetContext = null;
334
+ const isInModel = await this.isMeasureNameInModel(measure.measureName, asset._source.model, engineGroup);
335
+ if (isInModel) {
336
+ assetContext = asset_1.AssetSerializer.measureContext(asset, measure.measureName);
337
+ }
338
+ const measureSource = (0, MeasureSourcesBuilder_1.apiSourceToOriginApi)(source, payloadUuids);
339
+ apiMeasures.push({
340
+ asset: assetContext,
341
+ measuredAt: measure.measuredAt,
342
+ origin: measureSource,
343
+ type: measure.type,
344
+ values: measure.values,
345
+ });
346
+ }
347
+ return apiMeasures;
348
+ }
199
349
  /**
200
350
  * Build the measures documents to save
201
351
  */
@@ -203,10 +353,13 @@ class MeasureService extends shared_1.BaseService {
203
353
  const measures = [];
204
354
  for (const measurement of measurements) {
205
355
  // @todo check if measure type exists
206
- const assetMeasureName = this.tryFindAssetMeasureName(device, asset, measurement.measureName);
207
- const assetContext = asset === null || assetMeasureName === null
208
- ? null
209
- : asset_1.AssetSerializer.measureContext(asset, assetMeasureName);
356
+ let assetContext = null;
357
+ if (asset) {
358
+ const assetMeasureName = this.findAssetMeasureNameFromDevice(device._id, measurement.measureName, asset._source);
359
+ if (assetMeasureName) {
360
+ assetContext = asset_1.AssetSerializer.measureContext(asset, assetMeasureName);
361
+ }
362
+ }
210
363
  const measureContent = {
211
364
  asset: assetContext,
212
365
  measuredAt: measurement.measuredAt,
@@ -226,10 +379,14 @@ class MeasureService extends shared_1.BaseService {
226
379
  }
227
380
  return measures.sort((measureA, measureB) => measureA.measuredAt - measureB.measuredAt);
228
381
  }
229
- async tryGetLinkedAsset(engineId, assetId) {
230
- if (!assetId) {
231
- return null;
232
- }
382
+ /**
383
+ * Find an asset by its ID and its engine ID.
384
+ *
385
+ * @param engineId The target index ID
386
+ * @param assetId the target asset ID
387
+ * @returns The asset or null if not found
388
+ */
389
+ async findAsset(engineId, assetId) {
233
390
  try {
234
391
  const asset = await this.sdk.document.get(engineId, plugin_1.InternalCollection.ASSETS, assetId);
235
392
  return asset;
@@ -240,22 +397,42 @@ class MeasureService extends shared_1.BaseService {
240
397
  }
241
398
  }
242
399
  /**
243
- * Retrieve the measure name for the asset
400
+ * Check if the asset measure name is associated to the asset model
401
+ *
402
+ * @param measureName The measure name to check
403
+ * @param model The asset model the measureName should belong
404
+ *
405
+ * @returns True if the asset measure name belongs to the asset model, false otherwise
406
+ * @throws If the model does not exists
244
407
  */
245
- tryFindAssetMeasureName(device, asset, deviceMeasureName) {
246
- if (!asset) {
247
- return null;
248
- }
249
- const deviceLink = asset._source.linkedDevices.find((link) => link._id === device._id);
250
- if (!deviceLink) {
251
- throw new kuzzle_1.BadRequestError(`Device "${device._id}" is not linked to asset "${asset._id}"`);
408
+ async isMeasureNameInModel(measureName, model, engineGroup = "commons") {
409
+ const assetModel = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:model:asset:get", {
410
+ engineGroup,
411
+ model: model,
412
+ });
413
+ if (!assetModel) {
414
+ throw new kuzzle_1.BadRequestError(`Model "${model}" does not exists`);
252
415
  }
253
- const measureName = deviceLink.measureNames.find((m) => m.device === deviceMeasureName);
254
- // The measure is decoded by the device but is not linked to the asset
255
- if (!measureName) {
256
- return null;
416
+ const assetMeasureName = assetModel.asset.measures.find((m) => m.name === measureName);
417
+ return assetMeasureName?.name ? true : false;
418
+ }
419
+ /**
420
+ * Find the asset measure name from the device and its measure type
421
+ *
422
+ * @param deviceId The source device ID
423
+ * @param measureType The device measure type
424
+ * @param asset The asset the device is linked to
425
+ *
426
+ * @returns The asset measure name or null if it does not belong to the link
427
+ * @throws If the device is not linked to the asset
428
+ */
429
+ findAssetMeasureNameFromDevice(deviceId, measureType, asset) {
430
+ const linkedDevice = asset.linkedDevices.find((link) => link._id === deviceId);
431
+ if (!linkedDevice) {
432
+ throw new kuzzle_1.BadRequestError(`Device "${deviceId}" is not linked to "${asset.model}" asset: "${asset.reference}"`);
257
433
  }
258
- return measureName.asset;
434
+ const assetMeasureName = linkedDevice.measureNames.find((m) => m.device === measureType);
435
+ return assetMeasureName?.asset ?? null;
259
436
  }
260
437
  }
261
438
  exports.MeasureService = MeasureService;
@@ -1 +1 @@
1
- {"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MeasureService.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Metadata } from "../shared";
2
+ import { MeasureOriginApi, MeasureOriginDevice } from "./types/MeasureContent";
3
+ import { ApiMeasureSource, DeviceMeasureSource } from "./types/MeasureSources";
4
+ export declare const enum DATA_SOURCE_METADATA_TYPE {
5
+ API = "api",
6
+ DEVICE = "device"
7
+ }
8
+ export declare function apiSourceToOriginApi(source: ApiMeasureSource, payloadUuids: string[]): MeasureOriginApi;
9
+ export declare function toDeviceSource(dataSourceId: string, reference: string, model: string, metadata?: Metadata, lastMeasuredAt?: number): DeviceMeasureSource;
10
+ export declare function deviceSourceToOriginDevice(source: DeviceMeasureSource, measureName: string, payloadUuids: string[]): MeasureOriginDevice;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.apiSourceToOriginApi = apiSourceToOriginApi;
4
+ exports.toDeviceSource = toDeviceSource;
5
+ exports.deviceSourceToOriginDevice = deviceSourceToOriginDevice;
6
+ function apiSourceToOriginApi(source, payloadUuids) {
7
+ return {
8
+ _id: source.id,
9
+ apiMetadata: source.metadata,
10
+ payloadUuids: payloadUuids,
11
+ type: "api" /* DATA_SOURCE_METADATA_TYPE.API */,
12
+ };
13
+ }
14
+ function toDeviceSource(dataSourceId, reference, model, metadata, lastMeasuredAt) {
15
+ return {
16
+ id: dataSourceId,
17
+ lastMeasuredAt,
18
+ metadata,
19
+ model,
20
+ reference,
21
+ type: "device" /* DATA_SOURCE_METADATA_TYPE.DEVICE */,
22
+ };
23
+ }
24
+ function deviceSourceToOriginDevice(source, measureName, payloadUuids) {
25
+ const { id: dataSourceId, model, reference } = source;
26
+ return {
27
+ _id: dataSourceId,
28
+ deviceModel: model,
29
+ measureName,
30
+ metadata: source.metadata,
31
+ payloadUuids,
32
+ reference: reference,
33
+ type: "device" /* DATA_SOURCE_METADATA_TYPE.DEVICE */,
34
+ };
35
+ }
36
+ //# sourceMappingURL=MeasureSourcesBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeasureSourcesBuilder.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureSourcesBuilder.ts"],"names":[],"mappings":";;AASA,oDAUC;AAED,wCAeC;AAED,gEAeC;AA5CD,SAAgB,oBAAoB,CAClC,MAAwB,EACxB,YAAsB;IAEtB,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC,QAAQ;QAC5B,YAAY,EAAE,YAAY;QAC1B,IAAI,2CAA+B;KACpC,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,YAAoB,EACpB,SAAiB,EACjB,KAAa,EACb,QAAmB,EACnB,cAAuB;IAEvB,OAAO;QACL,EAAE,EAAE,YAAY;QAChB,cAAc;QACd,QAAQ;QACR,KAAK;QACL,SAAS;QACT,IAAI,iDAAkC;KACvC,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B,CACxC,MAA2B,EAC3B,WAAmB,EACnB,YAAsB;IAEtB,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACtD,OAAO;QACL,GAAG,EAAE,YAAY;QACjB,WAAW,EAAE,KAAK;QAClB,WAAW;QACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY;QACZ,SAAS,EAAE,SAAS;QACpB,IAAI,iDAAkC;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ApiMeasureTarget, DeviceMeasureTarget } from "./types/MeasureTarget";
2
+ export declare function toApiTarget(indexId: string, assetId: string, engineGroup?: string): ApiMeasureTarget;
3
+ export declare function toDeviceTarget(indexId: string, assetId?: string): DeviceMeasureTarget;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toApiTarget = toApiTarget;
4
+ exports.toDeviceTarget = toDeviceTarget;
5
+ function toApiTarget(indexId, assetId, engineGroup) {
6
+ return {
7
+ assetId,
8
+ engineGroup,
9
+ indexId,
10
+ type: "api",
11
+ };
12
+ }
13
+ function toDeviceTarget(indexId, assetId) {
14
+ return {
15
+ assetId,
16
+ indexId,
17
+ type: "device",
18
+ };
19
+ }
20
+ //# sourceMappingURL=MeasureTargetBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeasureTargetBuilder.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureTargetBuilder.ts"],"names":[],"mappings":";;AAEA,kCAWC;AAED,wCASC;AAtBD,SAAgB,WAAW,CACzB,OAAe,EACf,OAAe,EACf,WAAoB;IAEpB,OAAO;QACL,OAAO;QACP,WAAW;QACX,OAAO;QACP,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,OAAe,EACf,OAAgB;IAEhB,OAAO;QACL,OAAO;QACP,OAAO;QACP,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ErrorObject } from "ajv";
2
+ import { KuzzleError } from "kuzzle";
3
+ export interface MeasureValidationChunks {
4
+ measureName: string;
5
+ validationErrors: ErrorObject[];
6
+ }
7
+ export declare class MeasureValidationError extends KuzzleError {
8
+ private errors;
9
+ constructor(message: string, errors: MeasureValidationChunks[], id?: string, code?: number);
10
+ get name(): string;
11
+ toJSON(): import("kuzzle").JSONObject;
12
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MeasureValidationError = void 0;
4
+ const kuzzle_1 = require("kuzzle");
5
+ class MeasureValidationError extends kuzzle_1.KuzzleError {
6
+ constructor(message, errors, id, code) {
7
+ super(message, 400, id, code);
8
+ this.errors = errors;
9
+ }
10
+ get name() {
11
+ return "MeasureValidationError";
12
+ }
13
+ toJSON() {
14
+ const json = super.toJSON();
15
+ json.errors = this.errors;
16
+ return json;
17
+ }
18
+ }
19
+ exports.MeasureValidationError = MeasureValidationError;
20
+ //# sourceMappingURL=MeasureValidationError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeasureValidationError.js","sourceRoot":"","sources":["../../../../lib/modules/measure/MeasureValidationError.ts"],"names":[],"mappings":";;;AACA,mCAAqC;AAOrC,MAAa,sBAAuB,SAAQ,oBAAW;IAErD,YACE,OAAe,EACf,MAAiC,EACjC,EAAW,EACX,IAAa;QAEb,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAEM,MAAM;QACX,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAvBD,wDAuBC"}
@@ -66,6 +66,10 @@ export declare const measuresMappings: {
66
66
  deviceMetadata: {
67
67
  properties: {};
68
68
  };
69
+ apiMetadata: {
70
+ dynamic: string;
71
+ properties: {};
72
+ };
69
73
  payloadUuids: {
70
74
  type: string;
71
75
  };
@@ -53,6 +53,10 @@ exports.measuresMappings = {
53
53
  // populated with device models metadata mappings
54
54
  },
55
55
  },
56
+ apiMetadata: {
57
+ dynamic: "false",
58
+ properties: {},
59
+ },
56
60
  payloadUuids: { type: "keyword" },
57
61
  deviceModel: { type: "keyword" },
58
62
  reference: { type: "keyword" },
@@ -1 +1 @@
1
- {"version":3,"file":"measuresMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/collections/measuresMappings.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAEzB,MAAM,EAAE;YACN,UAAU,EAAE;YACV,yCAAyC;aAC1C;SACF;QAED;;WAEG;QACH,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAE5B,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChC,QAAQ,EAAE;oBACR,UAAU,EAAE;oBACV,gDAAgD;qBACjD;iBACF;gBACD,MAAM,EAAE;oBACN,UAAU,EAAE;wBACV,EAAE,EAAE;4BACF,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;yBACnC;wBACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;qBACvB;iBACF;aACF;SACF;QAED;;WAEG;QACH,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEzB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,cAAc,EAAE;oBACd,UAAU,EAAE;oBACV,iDAAiD;qBAClD;iBACF;gBAED,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEjC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAE9B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACzB;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"measuresMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/collections/measuresMappings.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAEzB,MAAM,EAAE;YACN,UAAU,EAAE;YACV,yCAAyC;aAC1C;SACF;QAED;;WAEG;QACH,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAE5B,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChC,QAAQ,EAAE;oBACR,UAAU,EAAE;oBACV,gDAAgD;qBACjD;iBACF;gBACD,MAAM,EAAE;oBACN,UAAU,EAAE;wBACV,EAAE,EAAE;4BACF,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;yBACnC;wBACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;qBACvB;iBACF;aACF;SACF;QAED;;WAEG;QACH,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEzB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,cAAc,EAAE;oBACd,UAAU,EAAE;oBACV,iDAAiD;qBAClD;iBACF;gBAED,WAAW,EAAE;oBACX,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBAED,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEjC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAE9B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACzB;SACF;KACF;CACF,CAAC"}
@@ -1,58 +1,69 @@
1
1
  import { JSONObject, KDocumentContent } from "kuzzle-sdk";
2
2
  import { Metadata } from "../../../modules/shared";
3
3
  import { AssetMeasureContext } from "../../../modules/asset";
4
- export type MeasureOriginDevice = {
4
+ interface AbstractMeasureOrigin {
5
5
  /**
6
6
  * Origin of the measure
7
7
  */
8
- type: "device";
9
- /**
10
- * Name of the measure in the device
11
- */
12
- measureName: string;
13
- /**
14
- * Origin device metadata
15
- */
16
- deviceMetadata?: Metadata;
8
+ type: string;
17
9
  /**
18
10
  * Payload uuids that were used to create this measure.
19
11
  */
20
12
  payloadUuids: Array<string>;
13
+ /**
14
+ * Custom metadata provided by the user
15
+ */
16
+ metadata?: Metadata;
17
+ }
18
+ export interface MeasureOriginDevice extends AbstractMeasureOrigin {
19
+ type: "device";
21
20
  /**
22
21
  * Model of the device
23
22
  *
24
23
  * @example "AbeewayTemp"
25
24
  */
26
25
  deviceModel: string;
26
+ /**
27
+ * Name of the measure
28
+ */
29
+ measureName: string;
27
30
  /**
28
31
  * Reference of the device
29
32
  */
30
33
  reference: string;
34
+ /**
35
+ * Origin device metadata
36
+ */
37
+ deviceMetadata?: Metadata;
31
38
  /**
32
39
  * Device ID
33
40
  */
34
41
  _id: string;
35
- };
36
- export type MeasureOriginComputed = {
42
+ }
43
+ export interface MeasureOriginComputed extends AbstractMeasureOrigin {
37
44
  /**
38
45
  * Computed measures are not automatically added into the asset and device
39
46
  * documents at the end of the ingestion pipeline.
40
47
  */
41
48
  type: "computed";
42
- /**
43
- * String that identify the rule used to compute the measure
44
- */
45
- _id: string;
46
49
  /**
47
50
  * Name of the measure
48
51
  */
49
52
  measureName: string;
50
53
  /**
51
- * Payload uuids that were used to create this measure for traceability.
54
+ * String that identify the rule used to compute the measure
52
55
  */
53
- payloadUuids: Array<string>;
54
- };
55
- export type MeasureOrigin = MeasureOriginDevice | MeasureOriginComputed;
56
+ _id: string;
57
+ }
58
+ export interface MeasureOriginApi extends AbstractMeasureOrigin {
59
+ type: "api";
60
+ apiMetadata?: Metadata;
61
+ /**
62
+ * API ID
63
+ */
64
+ _id: string;
65
+ }
66
+ export type MeasureOrigin = MeasureOriginDevice | MeasureOriginComputed | MeasureOriginApi;
56
67
  /**
57
68
  * Represents the content of a measure document.
58
69
  */
@@ -88,3 +99,4 @@ export type Measurement<TMeasureValues extends JSONObject = any> = {
88
99
  export type DecodedMeasurement<TMeasureValues extends JSONObject = JSONObject> = {
89
100
  measureName: string;
90
101
  } & Measurement<TMeasureValues>;
102
+ export {};