kuzzle-device-manager 2.7.1 → 2.8.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/lib/modules/asset/AssetService.d.ts +0 -1
  2. package/dist/lib/modules/asset/AssetService.js +80 -83
  3. package/dist/lib/modules/asset/AssetService.js.map +1 -1
  4. package/dist/lib/modules/asset/AssetsGroupsController.js +69 -21
  5. package/dist/lib/modules/asset/AssetsGroupsController.js.map +1 -1
  6. package/dist/lib/modules/asset/collections/assetsGroupsMapping.js +6 -1
  7. package/dist/lib/modules/asset/collections/assetsGroupsMapping.js.map +1 -1
  8. package/dist/lib/modules/asset/types/AssetGroupContent.d.ts +5 -3
  9. package/dist/lib/modules/device/DeviceService.d.ts +1 -18
  10. package/dist/lib/modules/device/DeviceService.js +129 -148
  11. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  12. package/dist/lib/modules/measure/MeasureService.js +2 -2
  13. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  14. package/dist/lib/modules/model/ModelSerializer.js +6 -0
  15. package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
  16. package/dist/lib/modules/model/ModelService.d.ts +6 -1
  17. package/dist/lib/modules/model/ModelService.js +95 -1
  18. package/dist/lib/modules/model/ModelService.js.map +1 -1
  19. package/dist/lib/modules/model/ModelsConflicts.d.ts +9 -1
  20. package/dist/lib/modules/model/ModelsConflicts.js +15 -1
  21. package/dist/lib/modules/model/ModelsConflicts.js.map +1 -1
  22. package/dist/lib/modules/model/ModelsController.d.ts +6 -1
  23. package/dist/lib/modules/model/ModelsController.js +52 -0
  24. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  25. package/dist/lib/modules/model/ModelsRegister.d.ts +14 -0
  26. package/dist/lib/modules/model/ModelsRegister.js +31 -0
  27. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  28. package/dist/lib/modules/model/collections/modelsMappings.js +28 -0
  29. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  30. package/dist/lib/modules/model/types/ModelApi.d.ts +40 -1
  31. package/dist/lib/modules/model/types/ModelContent.d.ts +125 -1
  32. package/dist/lib/modules/model/types/ModelDefinition.d.ts +91 -0
  33. package/dist/lib/modules/model/types/ModelEvents.d.ts +8 -1
  34. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +18 -1
  35. package/dist/lib/modules/plugin/DeviceManagerEngine.js +56 -2
  36. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  37. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +54 -1
  38. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +56 -0
  39. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  40. package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +1 -0
  41. package/dist/lib/modules/shared/types/Models.d.ts +2 -1
  42. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
2
- import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
2
+ import { AssetModelContent, DeviceModelContent, GroupModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
3
3
  import { SchemaObject } from "ajv";
4
4
  import { MeasureValuesDetails } from "../../measure/types/MeasureDefinition";
5
5
  interface ModelsControllerRequest {
@@ -16,6 +16,11 @@ export interface ApiModelGetDeviceRequest extends ModelsControllerRequest {
16
16
  model: string;
17
17
  }
18
18
  export type ApiModelGetDeviceResult = KDocument<DeviceModelContent>;
19
+ export interface ApiModelGetGroupRequest extends ModelsControllerRequest {
20
+ action: "getGroup";
21
+ model: string;
22
+ }
23
+ export type ApiModelGetGroupResult = KDocument<GroupModelContent>;
19
24
  export interface ApiModelGetMeasureRequest extends ModelsControllerRequest {
20
25
  action: "getMeasure";
21
26
  type: string;
@@ -47,6 +52,18 @@ export interface ApiModelWriteDeviceRequest extends ModelsControllerRequest {
47
52
  };
48
53
  }
49
54
  export type ApiModelWriteDeviceResult = KDocument<DeviceModelContent>;
55
+ export interface ApiModelWriteGroupRequest extends ModelsControllerRequest {
56
+ action: "writeGroup";
57
+ body: {
58
+ engineGroup: string;
59
+ model: string;
60
+ metadataDetails?: MetadataDetails;
61
+ metadataGroups?: MetadataGroups;
62
+ metadataMappings?: MetadataMappings;
63
+ defaultValues?: JSONObject;
64
+ };
65
+ }
66
+ export type ApiModelWriteGroupResult = KDocument<GroupModelContent>;
50
67
  export interface ApiModelWriteMeasureRequest extends ModelsControllerRequest {
51
68
  action: "writeMeasure";
52
69
  body: {
@@ -81,6 +98,11 @@ export interface ApiModelDeleteDeviceRequest extends ModelsControllerRequest {
81
98
  _id: string;
82
99
  }
83
100
  export type ApiModelDeleteDeviceResult = void;
101
+ export interface ApiModelDeleteGroupRequest extends ModelsControllerRequest {
102
+ action: "deleteGroup";
103
+ _id: string;
104
+ }
105
+ export type ApiModelDeleteGroupResult = void;
84
106
  export interface ApiModelDeleteMeasureRequest extends ModelsControllerRequest {
85
107
  action: "deleteMeasure";
86
108
  _id: string;
@@ -101,6 +123,14 @@ export type ApiModelListDevicesResult = {
101
123
  models: KDocument<DeviceModelContent>[];
102
124
  total: number;
103
125
  };
126
+ export interface ApiModelListGroupsRequest extends ModelsControllerRequest {
127
+ action: "listGroups";
128
+ engineGroup: string;
129
+ }
130
+ export type ApiModelListGroupsResult = {
131
+ models: KDocument<GroupModelContent>[];
132
+ total: number;
133
+ };
104
134
  export interface ApiModelListMeasuresRequest extends ModelsControllerRequest {
105
135
  action: "listMeasures";
106
136
  }
@@ -125,6 +155,15 @@ export interface ApiModelSearchDevicesRequest extends ModelsControllerRequest {
125
155
  body?: JSONObject;
126
156
  }
127
157
  export type ApiModelSearchDevicesResult = SearchResult<KHit<DeviceModelContent>>;
158
+ export interface ApiModelSearchGroupsRequest extends ModelsControllerRequest {
159
+ action: "searchGroups";
160
+ engineGroup: string;
161
+ from?: number;
162
+ size?: number;
163
+ scrollTTL?: string;
164
+ body?: JSONObject;
165
+ }
166
+ export type ApiModelSearchGroupsResult = SearchResult<KHit<GroupModelContent>>;
128
167
  export interface ApiModelSearchMeasuresRequest extends ModelsControllerRequest {
129
168
  action: "searchMeasures";
130
169
  from?: number;
@@ -356,4 +356,128 @@ export interface DeviceModelContent extends KDocumentContent {
356
356
  measures: NamedMeasures;
357
357
  };
358
358
  }
359
- export type ModelContent = MeasureModelContent | AssetModelContent | DeviceModelContent;
359
+ export interface GroupModelContent extends KDocumentContent {
360
+ type: "group";
361
+ engineGroup: string;
362
+ group: {
363
+ /**
364
+ * Name of the model
365
+ */
366
+ model: string;
367
+ /**
368
+ * Metadata mappings.
369
+ *
370
+ * @example
371
+ * {
372
+ * "company": {
373
+ * "properties": {
374
+ * "name": { "type": "keyword" },
375
+ * }
376
+ * }
377
+ * }
378
+ */
379
+ metadataMappings: MetadataMappings;
380
+ /**
381
+ * Default values for metadata.
382
+ *
383
+ * @example
384
+ * {
385
+ * "company.name": "Firebird"
386
+ * }
387
+ */
388
+ defaultMetadata: JSONObject;
389
+ /**
390
+ * Metadata details
391
+ * @example
392
+ * {
393
+ * "extTemp": {
394
+ * "group": "buildingEnv",
395
+ * "locales": {
396
+ * "en": {
397
+ * "friendlyName": "External temperature",
398
+ * "description": "Building external temperature"
399
+ * },
400
+ * "fr": {
401
+ * "friendlyName": "Température extérieure",
402
+ * "description": "Température à l'exterieur du bâtiment"
403
+ * },
404
+ * },
405
+ * "editorHint": {
406
+ * "readOnly": true,
407
+ * "type": EditorHintEnum.OPTION_SELECTOR,
408
+ * "values": ["red", "blue"],
409
+ * "customValueAllowed": true,
410
+ * },
411
+ * },
412
+ * }
413
+ */
414
+ metadataDetails?: MetadataDetails;
415
+ /**
416
+ * Metadata groups list
417
+ * @example
418
+ * {
419
+ * "buildingEnv": {
420
+ * "locales": {
421
+ * "en": {
422
+ * "groupFriendlyName": "Building environment",
423
+ * "description": "The building environment"
424
+ * },
425
+ * "fr": {
426
+ * "groupFriendlyName": "Environnement du bâtiment",
427
+ * "description": "L'environnement du bâtiment"
428
+ * }
429
+ * }
430
+ * }
431
+ * }
432
+ */
433
+ metadataGroups?: MetadataGroups;
434
+ /**
435
+ * List of tooltip models for this asset model
436
+ *
437
+ * @example
438
+ * [
439
+ * "defaultTooltipKey": {
440
+ * "tooltipLabel": "Default tooltip model",
441
+ * "content": [
442
+ * {
443
+ * "metadataPath": "geolocation",
444
+ * "label": {
445
+ * "locales": {
446
+ * "en": {
447
+ * "description": "",
448
+ * "friendlyName": "Container position"
449
+ * },
450
+ * "fr": {
451
+ * "description": "",
452
+ * "friendlyName": "Position du conteneur"
453
+ * }
454
+ * }
455
+ * },
456
+ * "category": "metadata"
457
+ * },
458
+ * {
459
+ * "measureValuePath": "externalTemperature",
460
+ * "measureSlot": "externalTemperature",
461
+ * "label": {
462
+ * "locales": {
463
+ * "en": {
464
+ * "description": "",
465
+ * "friendlyName": "External temperature"
466
+ * },
467
+ * "fr": {
468
+ * "description": "",
469
+ * "friendlyName": "Température extérieure"
470
+ * }
471
+ * }
472
+ * },
473
+ * "category": "measure",
474
+ * "suffix": "°C"
475
+ * }
476
+ * ]
477
+ * }
478
+ * ]
479
+ */
480
+ tooltipModels?: TooltipModels;
481
+ };
482
+ }
483
+ export type ModelContent = MeasureModelContent | AssetModelContent | DeviceModelContent | GroupModelContent;
@@ -196,3 +196,94 @@ export type DeviceModelDefinition = {
196
196
  */
197
197
  metadataGroups?: MetadataGroups;
198
198
  };
199
+ /**
200
+ * Define a group model
201
+ *
202
+ * @example
203
+ * {
204
+ * metadataMappings: {
205
+ * position: { type: "geo_point" },
206
+ * },
207
+ * defaultMetadata: {
208
+ * position: {
209
+ * lat: 41.12,
210
+ * lon: -71.34
211
+ * }
212
+ * },
213
+ * metadataDetails: {
214
+ * "position": {
215
+ * "group": "geolocation",
216
+ * "locales": {
217
+ * "en": {
218
+ * "friendlyName": "Parking position",
219
+ * "description": "The coordinates of the parking"
220
+ * },
221
+ * "fr": {
222
+ * "friendlyName": "Position du parking",
223
+ * "description": "Les coordonnées GPS du parking"
224
+ * }
225
+ * },
226
+ * },
227
+ * },
228
+ * metadataGroups: {
229
+ * geolocation: {
230
+ * locales: {
231
+ * en: {
232
+ * groupFriendlyName: "Parking geolocation",
233
+ * description: "The parking geolocation"
234
+ * },
235
+ * fr: {
236
+ * groupFriendlyName: "Localisation du parking",
237
+ * description: "La localisation du parking"
238
+ * }
239
+ * }
240
+ * }
241
+ * },
242
+ * tooltipModels: {
243
+ * "defaultTooltipKey": {
244
+ * "tooltipLabel": "Default Tooltip Model",
245
+ * "content": [
246
+ * {
247
+ * "category": "metadata",
248
+ * "label": {
249
+ * "locales": {
250
+ * "en": {
251
+ * "friendlyName": "Parking position",
252
+ * "description": ""
253
+ * },
254
+ * "fr": {
255
+ * "friendlyName": "Position du parking",
256
+ * "description": ""
257
+ * }
258
+ * }
259
+ * },
260
+ * "metadataPath": "position"
261
+ * },
262
+ * ]
263
+ * }
264
+ * }
265
+ * }
266
+ *
267
+ */
268
+ export type GroupModelDefinition = {
269
+ /**
270
+ * Metadata mappings definition
271
+ */
272
+ metadataMappings?: MetadataMappings;
273
+ /**
274
+ * Default metadata values
275
+ */
276
+ defaultMetadata?: JSONObject;
277
+ /**
278
+ * Metadata details including tanslations and group.
279
+ */
280
+ metadataDetails?: MetadataDetails;
281
+ /**
282
+ * Metadata groups
283
+ */
284
+ metadataGroups?: MetadataGroups;
285
+ /**
286
+ * Tooltip models
287
+ */
288
+ tooltipModels?: TooltipModels;
289
+ };
@@ -1,4 +1,4 @@
1
- import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./ModelContent";
1
+ import { AssetModelContent, DeviceModelContent, GroupModelContent, MeasureModelContent } from "./ModelContent";
2
2
  export type AskModelAssetGet = {
3
3
  name: "ask:device-manager:model:asset:get";
4
4
  payload: {
@@ -21,3 +21,10 @@ export type AskModelMeasureGet = {
21
21
  };
22
22
  result: MeasureModelContent;
23
23
  };
24
+ export type AskModelGroupGet = {
25
+ name: "ask:device-manager:model:group:get";
26
+ payload: {
27
+ model: string;
28
+ };
29
+ result: GroupModelContent;
30
+ };
@@ -1,6 +1,6 @@
1
1
  import { Backend, KDocumentContent, Plugin } from "kuzzle";
2
2
  import { AbstractEngine, ConfigManager, EngineContent } from "kuzzle-plugin-commons";
3
- import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "../model";
3
+ import { AssetModelContent, DeviceModelContent, GroupModelContent, MeasureModelContent } from "../model";
4
4
  import { DeviceManagerPlugin } from "./DeviceManagerPlugin";
5
5
  import { DeviceManagerConfiguration } from "./types/DeviceManagerConfiguration";
6
6
  import { InternalCollection } from "./types/InternalCollection";
@@ -35,6 +35,7 @@ export type AskEngineUpdateConflict = {
35
35
  models: TwinModelContent[];
36
36
  };
37
37
  measuresModels?: MeasureModelContent[];
38
+ groupModels?: GroupModelContent[];
38
39
  };
39
40
  result: ConflictChunk[];
40
41
  };
@@ -54,6 +55,14 @@ export declare class DeviceManagerEngine extends AbstractEngine<DeviceManagerPlu
54
55
  * @returns An array of conflict chunk
55
56
  */
56
57
  private doesTwinUpdateConflicts;
58
+ /**
59
+ * Return conflicts between the new and already present group models
60
+ *
61
+ * @param groupModels The already present group models
62
+ * @param additionalGroups The new or updated group models
63
+ * @returns An array of ConflictChunk
64
+ */
65
+ private doesGroupsUpdateConflicts;
57
66
  /**
58
67
  * Return conflicts between the new and already present measure models
59
68
  *
@@ -166,6 +175,7 @@ export declare class DeviceManagerEngine extends AbstractEngine<DeviceManagerPlu
166
175
  * @returns The complete ES mappings produced by merging models mappings
167
176
  */
168
177
  private getMeasuresMappings;
178
+ getAssetGroupsMappingFromDB(): Promise<any>;
169
179
  /**
170
180
  * Retrieve a certain type of models associated to an engine
171
181
  *
@@ -175,4 +185,11 @@ export declare class DeviceManagerEngine extends AbstractEngine<DeviceManagerPlu
175
185
  * @returns An array of the generic type provided
176
186
  */
177
187
  private getModels;
188
+ /**
189
+ * Detach all devices of an index in the admin index
190
+ *
191
+ * @param engineId The target engine Id
192
+ * @returns {any}
193
+ */
194
+ private detachDevicesFromAdminIndex;
178
195
  }
@@ -30,7 +30,8 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
30
30
  return [];
31
31
  }
32
32
  if (payload.twin === undefined &&
33
- payload.measuresModels === undefined) {
33
+ payload.measuresModels === undefined &&
34
+ payload.groupModels === undefined) {
34
35
  return [];
35
36
  }
36
37
  const measureModels = await this.getModels(this.config.adminIndex, "measure");
@@ -49,6 +50,10 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
49
50
  if (payload.measuresModels) {
50
51
  return this.doesMeasuresUpdateConflicts(measureModels, payload.measuresModels);
51
52
  }
53
+ if (payload.groupModels) {
54
+ const groupModels = await this.getModels(this.config.adminIndex, "group");
55
+ return this.doesGroupsUpdateConflicts(groupModels, payload.groupModels);
56
+ }
52
57
  return [];
53
58
  });
54
59
  }
@@ -79,6 +84,20 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
79
84
  }
80
85
  return conflicts;
81
86
  }
87
+ /**
88
+ * Return conflicts between the new and already present group models
89
+ *
90
+ * @param groupModels The already present group models
91
+ * @param additionalGroups The new or updated group models
92
+ * @returns An array of ConflictChunk
93
+ */
94
+ async doesGroupsUpdateConflicts(groupModels, additionalGroups) {
95
+ const conflicts = [];
96
+ for (const model of additionalGroups) {
97
+ conflicts.push(...(0, ModelsConflicts_1.getGroupConflicts)(groupModels, model));
98
+ }
99
+ return conflicts;
100
+ }
82
101
  /**
83
102
  * Return conflicts between the new and already present measure models
84
103
  *
@@ -162,6 +181,7 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
162
181
  await this.sdk.collection.delete(index, collection);
163
182
  }
164
183
  }));
184
+ await this.detachDevicesFromAdminIndex(index);
165
185
  return {
166
186
  collections,
167
187
  };
@@ -212,8 +232,9 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
212
232
  */
213
233
  async createAssetsGroupsCollection(engineId) {
214
234
  const settings = this.config.engineCollections.assetGroups.settings;
235
+ const mappings = await this.getAssetGroupsMappingFromDB();
215
236
  await this.tryCreateCollection(engineId, InternalCollection_1.InternalCollection.ASSETS_GROUPS, {
216
- mappings: asset_1.assetGroupsMappings,
237
+ mappings,
217
238
  settings,
218
239
  });
219
240
  return InternalCollection_1.InternalCollection.ASSETS_GROUPS;
@@ -340,6 +361,14 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
340
361
  deviceMappings.properties.metadata.properties;
341
362
  return mappings;
342
363
  }
364
+ async getAssetGroupsMappingFromDB() {
365
+ const models = await this.getModels(this.config.adminIndex, "group");
366
+ const mappings = JSON.parse(JSON.stringify(this.config.engineCollections.assetGroups.mappings));
367
+ for (const model of models) {
368
+ lodash_1.default.merge(mappings.properties.metadata.properties, model.group.metadataMappings);
369
+ }
370
+ return mappings;
371
+ }
343
372
  /**
344
373
  * Retrieve a certain type of models associated to an engine
345
374
  *
@@ -363,6 +392,31 @@ class DeviceManagerEngine extends kuzzle_plugin_commons_1.AbstractEngine {
363
392
  const result = await this.sdk.document.search(engineId, InternalCollection_1.InternalCollection.MODELS, { query }, { lang: "koncorde", size: 5000 });
364
393
  return result.hits.map((elt) => elt._source);
365
394
  }
395
+ /**
396
+ * Detach all devices of an index in the admin index
397
+ *
398
+ * @param engineId The target engine Id
399
+ * @returns {any}
400
+ */
401
+ async detachDevicesFromAdminIndex(engineId) {
402
+ const devices = [];
403
+ let result = await this.sdk.document.search(this.adminIndex, "devices", {
404
+ _source: false,
405
+ query: { bool: { must: { term: { engineId } } } },
406
+ }, {
407
+ scroll: "2s",
408
+ size: 100,
409
+ });
410
+ while (result !== null) {
411
+ devices.push(...result.hits);
412
+ result = await result.next();
413
+ }
414
+ if (devices.length > 0) {
415
+ void this.sdk.document.mUpdate(this.adminIndex, "devices", devices.map((device) => {
416
+ return { _id: device._id, body: { assetId: null, engineId: null } };
417
+ }));
418
+ }
419
+ }
366
420
  }
367
421
  exports.DeviceManagerEngine = DeviceManagerEngine;
368
422
  //# sourceMappingURL=DeviceManagerEngine.js.map
@@ -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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"}
@@ -1,7 +1,7 @@
1
1
  import { Plugin, PluginContext } from "kuzzle";
2
2
  import { JSONObject } from "kuzzle-sdk";
3
3
  import { MeasureDefinition } from "../measure";
4
- import { AssetModelDefinition, DeviceModelDefinition } from "../model";
4
+ import { AssetModelDefinition, DeviceModelDefinition, GroupModelDefinition } from "../model";
5
5
  import { DeviceManagerConfiguration } from "./types/DeviceManagerConfiguration";
6
6
  export declare class DeviceManagerPlugin extends Plugin {
7
7
  config: DeviceManagerConfiguration;
@@ -177,6 +177,59 @@ export declare class DeviceManagerPlugin extends Plugin {
177
177
  * ```
178
178
  */
179
179
  registerDevice: (model: string, definition: DeviceModelDefinition) => void;
180
+ /**
181
+ * Register a group.
182
+ *
183
+ * @param model Name of the group model
184
+ * @param definition Object containing the group model definition, including:
185
+ * - metadataMappings: Metadata mappings definition
186
+ * - defaultMetadata: Default metadata values
187
+ * - metadataDetails: Localizations, detailed metadata descriptions and definition
188
+ * - metadataGroups: Groups for organizing metadata, with localizations
189
+ *
190
+ * @example
191
+ * ```
192
+ * deviceManager.models.registerGroup(
193
+ * "Parking",
194
+ * {
195
+ * metadataMappings: {
196
+ * geolocation: { type: "geo_point" },
197
+ * },
198
+ * defaultMetadata: {
199
+ *
200
+ * },
201
+ * metadataDetails: {
202
+ * geolocation: {
203
+ * group: "access",
204
+ * locales: {
205
+ * en: {
206
+ * friendlyName: "Parking location",
207
+ * description: "GPS position of the parking"
208
+ * },
209
+ * fr: {
210
+ * friendlyName: "Emplacement du parking",
211
+ * description: "Position GPS du parking"
212
+ * }
213
+ * }
214
+ * }
215
+ * },
216
+ * metadataGroups: {
217
+ * access: {
218
+ * locales: {
219
+ * en: {
220
+ * groupFriendlyName: "Parking access info"
221
+ * },
222
+ * fr: {
223
+ * groupFriendlyName: "Information d'accès au parking"
224
+ * }
225
+ * }
226
+ * }
227
+ * }
228
+ * }
229
+ * );
230
+ * ```
231
+ */
232
+ registerGroup: (engineGroup: string, model: string, definition: GroupModelDefinition) => void;
180
233
  /**
181
234
  * Register a new measure
182
235
  *
@@ -187,6 +187,61 @@ class DeviceManagerPlugin extends kuzzle_1.Plugin {
187
187
  definition.decoder.log = this.context?.log;
188
188
  this.modelsRegister.registerDevice(model, definition.decoder.measures, definition.metadataMappings, definition.defaultMetadata, definition.metadataDetails, definition.metadataGroups);
189
189
  },
190
+ /**
191
+ * Register a group.
192
+ *
193
+ * @param model Name of the group model
194
+ * @param definition Object containing the group model definition, including:
195
+ * - metadataMappings: Metadata mappings definition
196
+ * - defaultMetadata: Default metadata values
197
+ * - metadataDetails: Localizations, detailed metadata descriptions and definition
198
+ * - metadataGroups: Groups for organizing metadata, with localizations
199
+ *
200
+ * @example
201
+ * ```
202
+ * deviceManager.models.registerGroup(
203
+ * "Parking",
204
+ * {
205
+ * metadataMappings: {
206
+ * geolocation: { type: "geo_point" },
207
+ * },
208
+ * defaultMetadata: {
209
+ *
210
+ * },
211
+ * metadataDetails: {
212
+ * geolocation: {
213
+ * group: "access",
214
+ * locales: {
215
+ * en: {
216
+ * friendlyName: "Parking location",
217
+ * description: "GPS position of the parking"
218
+ * },
219
+ * fr: {
220
+ * friendlyName: "Emplacement du parking",
221
+ * description: "Position GPS du parking"
222
+ * }
223
+ * }
224
+ * }
225
+ * },
226
+ * metadataGroups: {
227
+ * access: {
228
+ * locales: {
229
+ * en: {
230
+ * groupFriendlyName: "Parking access info"
231
+ * },
232
+ * fr: {
233
+ * groupFriendlyName: "Information d'accès au parking"
234
+ * }
235
+ * }
236
+ * }
237
+ * }
238
+ * }
239
+ * );
240
+ * ```
241
+ */
242
+ registerGroup: (engineGroup, model, definition) => {
243
+ this.modelsRegister.registerGroup(engineGroup, model, definition.metadataMappings, definition.defaultMetadata, definition.metadataDetails, definition.metadataGroups);
244
+ },
190
245
  /**
191
246
  * Register a new measure
192
247
  *
@@ -262,6 +317,7 @@ class DeviceManagerPlugin extends kuzzle_1.Plugin {
262
317
  },
263
318
  assetGroups: {
264
319
  name: InternalCollection_1.InternalCollection.ASSETS_GROUPS,
320
+ mappings: asset_1.assetGroupsMappings,
265
321
  },
266
322
  assetHistory: {
267
323
  name: InternalCollection_1.InternalCollection.ASSETS_HISTORY,