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

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 (81) 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 +12 -12
  8. package/dist/lib/modules/asset/AssetService.js +72 -72
  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/types/AssetApi.d.ts +6 -6
  14. package/dist/lib/modules/asset/types/AssetEvents.d.ts +1 -1
  15. package/dist/lib/modules/decoder/PayloadService.js +16 -16
  16. package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
  17. package/dist/lib/modules/device/DeviceService.d.ts +11 -11
  18. package/dist/lib/modules/device/DeviceService.js +63 -63
  19. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  20. package/dist/lib/modules/device/DevicesController.js +60 -64
  21. package/dist/lib/modules/device/DevicesController.js.map +1 -1
  22. package/dist/lib/modules/device/collections/deviceMappings.js +2 -2
  23. package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
  24. package/dist/lib/modules/device/types/DeviceApi.d.ts +2 -2
  25. package/dist/lib/modules/device/types/DeviceContent.d.ts +2 -2
  26. package/dist/lib/modules/device/types/DeviceEvents.d.ts +1 -1
  27. package/dist/lib/modules/group/GroupsController.d.ts +3 -3
  28. package/dist/lib/modules/group/GroupsController.js +66 -66
  29. package/dist/lib/modules/group/GroupsController.js.map +1 -1
  30. package/dist/lib/modules/group/GroupsService.d.ts +14 -14
  31. package/dist/lib/modules/group/GroupsService.js +64 -64
  32. package/dist/lib/modules/group/GroupsService.js.map +1 -1
  33. package/dist/lib/modules/group/types/GroupsApi.d.ts +1 -1
  34. package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -5
  35. package/dist/lib/modules/measure/MeasureExporter.js +20 -20
  36. package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
  37. package/dist/lib/modules/measure/MeasureService.d.ts +2 -2
  38. package/dist/lib/modules/measure/MeasureService.js +5 -5
  39. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  40. package/dist/lib/modules/measure/MeasureTargetBuilder.d.ts +1 -1
  41. package/dist/lib/modules/measure/MeasureTargetBuilder.js +2 -2
  42. package/dist/lib/modules/measure/MeasureTargetBuilder.js.map +1 -1
  43. package/dist/lib/modules/measure/types/MeasureTarget.d.ts +1 -1
  44. package/dist/lib/modules/measure/types/MeasureTarget.js +1 -1
  45. package/dist/lib/modules/measure/types/MeasureTarget.js.map +1 -1
  46. package/dist/lib/modules/model/ModelSerializer.js +13 -13
  47. package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
  48. package/dist/lib/modules/model/ModelService.d.ts +17 -21
  49. package/dist/lib/modules/model/ModelService.js +85 -101
  50. package/dist/lib/modules/model/ModelService.js.map +1 -1
  51. package/dist/lib/modules/model/ModelsController.js +46 -47
  52. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  53. package/dist/lib/modules/model/ModelsRegister.d.ts +4 -4
  54. package/dist/lib/modules/model/ModelsRegister.js +6 -6
  55. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  56. package/dist/lib/modules/model/collections/modelsMappings.js +8 -1
  57. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  58. package/dist/lib/modules/model/types/ModelApi.d.ts +13 -13
  59. package/dist/lib/modules/model/types/ModelContent.d.ts +6 -6
  60. package/dist/lib/modules/model/types/ModelEvents.d.ts +3 -3
  61. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +25 -25
  62. package/dist/lib/modules/plugin/DeviceManagerEngine.js +79 -79
  63. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  64. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +10 -3
  65. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +30 -9
  66. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  67. package/dist/lib/modules/shared/services/AbstractExporter.d.ts +8 -8
  68. package/dist/lib/modules/shared/services/AbstractExporter.js +9 -9
  69. package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
  70. package/dist/lib/modules/shared/services/BaseService.d.ts +7 -7
  71. package/dist/lib/modules/shared/services/BaseService.js +20 -17
  72. package/dist/lib/modules/shared/services/BaseService.js.map +1 -1
  73. package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +3 -3
  74. package/dist/lib/modules/shared/services/DigitalTwinExporter.js +18 -18
  75. package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
  76. package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +8 -8
  77. package/dist/lib/modules/shared/services/DigitalTwinService.js +39 -39
  78. package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -1
  79. package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +1 -1
  80. package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +2 -2
  81. package/package.json +3 -2
@@ -18,8 +18,8 @@ class ModelService extends shared_1.BaseService {
18
18
  this.registerAskEvents();
19
19
  }
20
20
  registerAskEvents() {
21
- (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:asset:get", async ({ engineGroups, engineId, model }) => {
22
- const assetModel = await this.getAsset(engineGroups, engineId, model);
21
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:asset:get", async ({ tenantClasses, index, model }) => {
22
+ const assetModel = await this.getAsset(tenantClasses, index, model);
23
23
  return assetModel._source;
24
24
  });
25
25
  (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:device:get", async ({ model }) => {
@@ -30,8 +30,8 @@ class ModelService extends shared_1.BaseService {
30
30
  const groupModel = await this.getGroup(model);
31
31
  return groupModel._source;
32
32
  });
33
- (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:measure:get", async ({ type, engineId }) => {
34
- const measureModel = await this.getMeasure(type, engineId);
33
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:measure:get", async ({ type, index }) => {
34
+ const measureModel = await this.getMeasure(type, index);
35
35
  return measureModel._source;
36
36
  });
37
37
  const genericModelsHandler = async (documents, request) => {
@@ -155,24 +155,24 @@ class ModelService extends shared_1.BaseService {
155
155
  }
156
156
  return { models, strict, type };
157
157
  }
158
- async writeAsset(engineGroups, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels, locales, engineIds, icon) {
158
+ async writeAsset(tenantClasses, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels, locales, indexes, icon) {
159
159
  if (kuzzle_1.Inflector.pascalCase(model) !== model) {
160
160
  throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
161
161
  }
162
- if (engineIds?.length && engineGroups?.length) {
163
- throw new kuzzle_1.BadRequestError(`"engineIds" and "engineGroups" are mutually exclusive on an asset model.`);
162
+ if (indexes?.length && tenantClasses?.length) {
163
+ throw new kuzzle_1.BadRequestError(`"indexes" and "tenantClasses" are mutually exclusive on an asset model.`);
164
164
  }
165
165
  const duplicates = (0, MeasuresDuplicates_1.getNamedMeasuresDuplicates)(measures);
166
166
  if (duplicates.length > 0) {
167
167
  throw new MeasuresNamesDuplicatesError_1.MeasuresNamesDuplicatesError("Asset model measures contain one or multiple duplicate measure name", duplicates);
168
168
  }
169
- const normalizedEngineGroups = engineGroups.includes("commons")
169
+ const normalizedTenantClasses = tenantClasses.includes("commons")
170
170
  ? ["commons"]
171
- : engineGroups;
171
+ : tenantClasses;
172
172
  // Anti-shadowing: reject if a model with the same name exists at a different scope level
173
- const isGlobal = normalizedEngineGroups.includes("commons") &&
174
- (!engineIds || engineIds.length === 0);
175
- const isTenantScoped = engineIds && engineIds.length > 0;
173
+ const isGlobal = normalizedTenantClasses.includes("commons") &&
174
+ (!indexes || indexes.length === 0);
175
+ const isTenantScoped = indexes && indexes.length > 0;
176
176
  const isGroupScoped = !isGlobal && !isTenantScoped;
177
177
  await this.sdk.collection.refresh(this.config.platformIndex, plugin_1.InternalCollection.MODELS);
178
178
  const existing = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.MODELS, {
@@ -187,9 +187,9 @@ class ModelService extends shared_1.BaseService {
187
187
  }, { size: 10 });
188
188
  for (const hit of existing.hits) {
189
189
  const doc = hit._source;
190
- const docIsGlobal = doc.engineGroups?.includes("commons") &&
191
- (!doc.engineIds || doc.engineIds.length === 0);
192
- const docIsTenantScoped = doc.engineIds && doc.engineIds.length > 0;
190
+ const docIsGlobal = doc.tenantClasses?.includes("commons") &&
191
+ (!doc.indexes || doc.indexes.length === 0);
192
+ const docIsTenantScoped = doc.indexes && doc.indexes.length > 0;
193
193
  const docIsGroupScoped = !docIsGlobal && !docIsTenantScoped;
194
194
  // Same scope level: allow overwrite
195
195
  if (isGlobal && docIsGlobal) {
@@ -227,9 +227,9 @@ class ModelService extends shared_1.BaseService {
227
227
  model,
228
228
  tooltipModels,
229
229
  },
230
- ...(engineIds?.length
231
- ? { engineIds }
232
- : { engineGroups: normalizedEngineGroups }),
230
+ ...(indexes?.length
231
+ ? { indexes }
232
+ : { tenantClasses: normalizedTenantClasses }),
233
233
  type: "asset",
234
234
  };
235
235
  this.checkDefaultValues(metadataMappings, defaultMetadata);
@@ -277,16 +277,16 @@ class ModelService extends shared_1.BaseService {
277
277
  });
278
278
  return deviceModel;
279
279
  }
280
- async writeGroup(engineGroups, model, affinity, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, icon, locales) {
280
+ async writeGroup(tenantClasses, model, affinity, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, icon, locales) {
281
281
  if (kuzzle_1.Inflector.pascalCase(model) !== model) {
282
282
  throw new kuzzle_1.BadRequestError(`Group model "${model}" must be PascalCase.`);
283
283
  }
284
- if (engineGroups.includes("commons")) {
285
- engineGroups = ["commons"];
284
+ if (tenantClasses.includes("commons")) {
285
+ tenantClasses = ["commons"];
286
286
  }
287
287
  const groupAffinity = this.checkGroupAffinity(affinity);
288
288
  const modelContent = {
289
- engineGroups,
289
+ tenantClasses,
290
290
  group: {
291
291
  affinity: groupAffinity,
292
292
  defaultMetadata,
@@ -308,7 +308,7 @@ class ModelService extends shared_1.BaseService {
308
308
  await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
309
309
  return groupModel;
310
310
  }
311
- async writeMeasure(type, valuesMappings, validationSchema, valuesDetails, locales, engineIds, icon) {
311
+ async writeMeasure(type, valuesMappings, validationSchema, valuesDetails, locales, indexes, icon) {
312
312
  const modelContent = {
313
313
  measure: {
314
314
  icon,
@@ -319,11 +319,11 @@ class ModelService extends shared_1.BaseService {
319
319
  },
320
320
  type: "measure",
321
321
  };
322
- if (engineIds?.length) {
323
- modelContent.engineIds = engineIds;
322
+ if (indexes?.length) {
323
+ modelContent.indexes = indexes;
324
324
  }
325
325
  // Anti-shadowing: a measure type must be either global or tenant-scoped, not both
326
- await this.checkMeasureShadowing(type, engineIds);
326
+ await this.checkMeasureShadowing(type, indexes);
327
327
  if (validationSchema) {
328
328
  try {
329
329
  (0, AJValidator_1.addSchemaToCache)(type, validationSchema);
@@ -355,7 +355,7 @@ class ModelService extends shared_1.BaseService {
355
355
  await this.sdk.document.delete(this.config.platformIndex, plugin_1.InternalCollection.MODELS, _id);
356
356
  }
357
357
  /**
358
- * List all asset models regardless of engine group scope.
358
+ * List all asset models regardless of tenant class scope.
359
359
  * Used for super admin global view.
360
360
  */
361
361
  async listAllAssets() {
@@ -365,14 +365,14 @@ class ModelService extends shared_1.BaseService {
365
365
  /**
366
366
  * Check if an engine (tenant) exists by its ID.
367
367
  */
368
- async engineExists(engineId) {
368
+ async engineExists(index) {
369
369
  try {
370
370
  const result = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.CONFIG, {
371
371
  query: {
372
372
  bool: {
373
373
  must: [
374
374
  { term: { type: "engine-device-manager" } },
375
- { term: { "engine.index": engineId } },
375
+ { term: { "engine.index": index } },
376
376
  ],
377
377
  },
378
378
  },
@@ -384,27 +384,11 @@ class ModelService extends shared_1.BaseService {
384
384
  }
385
385
  }
386
386
  /**
387
- * Check if the requesting user has access to an engine.
387
+ * Find tenant classes that don't exist.
388
388
  */
389
- async userHasEngineAccess(request, engineId) {
390
- try {
391
- const result = await this.sdk.security.checkRights(request.context.user?._id, {
392
- controller: "device-manager/assets",
393
- action: "get",
394
- index: engineId,
395
- });
396
- return result;
397
- }
398
- catch {
399
- return false;
400
- }
401
- }
402
- /**
403
- * Find engine groups that don't exist.
404
- */
405
- async findInvalidEngineGroups(engineGroups) {
389
+ async findInvalidTenantClasses(tenantClasses) {
406
390
  // "commons" is always valid
407
- const toCheck = engineGroups.filter((g) => g !== "commons");
391
+ const toCheck = tenantClasses.filter((g) => g !== "commons");
408
392
  if (toCheck.length === 0) {
409
393
  return [];
410
394
  }
@@ -413,11 +397,11 @@ class ModelService extends shared_1.BaseService {
413
397
  equals: { type: "engine-device-manager" },
414
398
  },
415
399
  }, { lang: "koncorde", size: 5000 });
416
- const existingGroups = new Set(result.hits.map((h) => h._source.engine?.group));
417
- return toCheck.filter((g) => !existingGroups.has(g));
400
+ const existingTenantClasses = new Set(result.hits.map((h) => h._source.engine?.group));
401
+ return toCheck.filter((g) => !existingTenantClasses.has(g));
418
402
  }
419
- async listAsset(engineGroups, engineId) {
420
- const result = await this.searchAssets(engineGroups, engineId, {
403
+ async listAsset(tenantClasses, index) {
404
+ const result = await this.searchAssets(tenantClasses, index, {
421
405
  searchBody: {
422
406
  sort: { "asset.model": "asc" },
423
407
  },
@@ -434,8 +418,8 @@ class ModelService extends shared_1.BaseService {
434
418
  });
435
419
  return result.hits;
436
420
  }
437
- async listGroups(engineGroups) {
438
- const result = await this.searchGroups(engineGroups, {
421
+ async listGroups(tenantClasses) {
422
+ const result = await this.searchGroups(tenantClasses, {
439
423
  searchBody: {
440
424
  sort: { "group.model": "asc" },
441
425
  },
@@ -443,8 +427,8 @@ class ModelService extends shared_1.BaseService {
443
427
  });
444
428
  return result.hits;
445
429
  }
446
- async listMeasures(engineId) {
447
- const result = await this.searchMeasures(engineId, {
430
+ async listMeasures(index) {
431
+ const result = await this.searchMeasures(index, {
448
432
  searchBody: {
449
433
  sort: { "measure.type": "asc" },
450
434
  },
@@ -452,26 +436,26 @@ class ModelService extends shared_1.BaseService {
452
436
  });
453
437
  return result.hits;
454
438
  }
455
- async searchAssets(engineGroups, engineId, searchParams) {
456
- const scopeFilter = engineId
439
+ async searchAssets(tenantClasses, index, searchParams) {
440
+ const scopeFilter = index
457
441
  ? {
458
442
  bool: {
459
443
  should: [
460
444
  {
461
445
  bool: {
462
- must: [{ term: { engineIds: engineId } }],
446
+ must: [{ term: { indexes: index } }],
463
447
  },
464
448
  },
465
449
  {
466
450
  bool: {
467
- must: [{ terms: { engineGroups } }],
468
- must_not: [{ exists: { field: "engineIds" } }],
451
+ must: [{ terms: { tenantClasses } }],
452
+ must_not: [{ exists: { field: "indexes" } }],
469
453
  },
470
454
  },
471
455
  {
472
456
  bool: {
473
- must: [{ term: { engineGroups: "commons" } }],
474
- must_not: [{ exists: { field: "engineIds" } }],
457
+ must: [{ term: { tenantClasses: "commons" } }],
458
+ must_not: [{ exists: { field: "indexes" } }],
475
459
  },
476
460
  },
477
461
  ],
@@ -482,14 +466,14 @@ class ModelService extends shared_1.BaseService {
482
466
  should: [
483
467
  {
484
468
  bool: {
485
- must: [{ terms: { engineGroups } }],
486
- must_not: [{ exists: { field: "engineIds" } }],
469
+ must: [{ terms: { tenantClasses } }],
470
+ must_not: [{ exists: { field: "indexes" } }],
487
471
  },
488
472
  },
489
473
  {
490
474
  bool: {
491
- must: [{ term: { engineGroups: "commons" } }],
492
- must_not: [{ exists: { field: "engineIds" } }],
475
+ must: [{ term: { tenantClasses: "commons" } }],
476
+ must_not: [{ exists: { field: "indexes" } }],
493
477
  },
494
478
  },
495
479
  ],
@@ -533,7 +517,7 @@ class ModelService extends shared_1.BaseService {
533
517
  size: searchParams.size,
534
518
  });
535
519
  }
536
- async searchGroups(engineGroups, searchParams) {
520
+ async searchGroups(tenantClasses, searchParams) {
537
521
  const query = {
538
522
  bool: {
539
523
  must: [
@@ -542,8 +526,8 @@ class ModelService extends shared_1.BaseService {
542
526
  {
543
527
  bool: {
544
528
  should: [
545
- { terms: { engineGroups } },
546
- { term: { engineGroups: "commons" } },
529
+ { terms: { tenantClasses } },
530
+ { term: { tenantClasses: "commons" } },
547
531
  ],
548
532
  },
549
533
  },
@@ -560,19 +544,19 @@ class ModelService extends shared_1.BaseService {
560
544
  size: searchParams.size,
561
545
  });
562
546
  }
563
- async searchMeasures(engineId, searchParams) {
564
- const scopeFilter = engineId
547
+ async searchMeasures(index, searchParams) {
548
+ const scopeFilter = index
565
549
  ? {
566
550
  bool: {
567
551
  should: [
568
- { term: { engineIds: engineId } },
569
- { bool: { must_not: [{ exists: { field: "engineIds" } }] } },
552
+ { term: { indexes: index } },
553
+ { bool: { must_not: [{ exists: { field: "indexes" } }] } },
570
554
  ],
571
555
  },
572
556
  }
573
557
  : {
574
558
  bool: {
575
- must_not: [{ exists: { field: "engineIds" } }],
559
+ must_not: [{ exists: { field: "indexes" } }],
576
560
  },
577
561
  };
578
562
  const query = {
@@ -614,16 +598,16 @@ class ModelService extends shared_1.BaseService {
614
598
  const result = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.MODELS, { query }, { lang: "koncorde", size: 1 });
615
599
  return result.total > 0;
616
600
  }
617
- async getAsset(engineGroups, engineId, model) {
601
+ async getAsset(tenantClasses, index, model) {
618
602
  const baseFilter = [
619
603
  { term: { type: "asset" } },
620
604
  { term: { "asset.model": model } },
621
605
  ];
622
606
  // Priority 1: tenant-scoped model for this specific engine
623
- if (engineId) {
607
+ if (index) {
624
608
  const tenantQuery = {
625
609
  bool: {
626
- must: [...baseFilter, { term: { engineIds: engineId } }],
610
+ must: [...baseFilter, { term: { indexes: index } }],
627
611
  },
628
612
  };
629
613
  const tenantResult = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.MODELS, { query: tenantQuery }, { lang: "elasticsearch", size: 1 });
@@ -631,11 +615,11 @@ class ModelService extends shared_1.BaseService {
631
615
  return tenantResult.hits[0];
632
616
  }
633
617
  }
634
- // Priority 2: group-scoped model (no engineIds field)
618
+ // Priority 2: group-scoped model (no indexes field)
635
619
  const groupQuery = {
636
620
  bool: {
637
- must: [...baseFilter, { terms: { engineGroups } }],
638
- must_not: [{ exists: { field: "engineIds" } }],
621
+ must: [...baseFilter, { terms: { tenantClasses } }],
622
+ must_not: [{ exists: { field: "indexes" } }],
639
623
  },
640
624
  };
641
625
  const groupResult = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.MODELS, { query: groupQuery }, { lang: "elasticsearch", size: 1 });
@@ -645,15 +629,15 @@ class ModelService extends shared_1.BaseService {
645
629
  // Priority 3: commons model
646
630
  const commonsQuery = {
647
631
  bool: {
648
- must: [...baseFilter, { term: { engineGroups: "commons" } }],
649
- must_not: [{ exists: { field: "engineIds" } }],
632
+ must: [...baseFilter, { term: { tenantClasses: "commons" } }],
633
+ must_not: [{ exists: { field: "indexes" } }],
650
634
  },
651
635
  };
652
636
  const commonsResult = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.MODELS, { query: commonsQuery }, { lang: "elasticsearch", size: 1 });
653
637
  if (commonsResult.total > 0) {
654
638
  return commonsResult.hits[0];
655
639
  }
656
- throw new kuzzle_1.NotFoundError(`Unknown Asset model "${model}" for engineGroups ${engineGroups.join(", ")}.`);
640
+ throw new kuzzle_1.NotFoundError(`Unknown Asset model "${model}" for tenantClasses ${tenantClasses.join(", ")}.`);
657
641
  }
658
642
  async getDevice(model) {
659
643
  const query = {
@@ -684,23 +668,23 @@ class ModelService extends shared_1.BaseService {
684
668
  }
685
669
  return result.hits[0];
686
670
  }
687
- async getMeasure(type, engineId) {
671
+ async getMeasure(type, index) {
688
672
  const baseFilter = [
689
673
  { term: { type: "measure" } },
690
674
  { term: { "measure.type": type } },
691
675
  ];
692
- const scopeFilter = engineId
676
+ const scopeFilter = index
693
677
  ? {
694
678
  bool: {
695
679
  should: [
696
- { term: { engineIds: engineId } },
697
- { bool: { must_not: [{ exists: { field: "engineIds" } }] } },
680
+ { term: { indexes: index } },
681
+ { bool: { must_not: [{ exists: { field: "indexes" } }] } },
698
682
  ],
699
683
  },
700
684
  }
701
685
  : {
702
686
  bool: {
703
- must_not: [{ exists: { field: "engineIds" } }],
687
+ must_not: [{ exists: { field: "indexes" } }],
704
688
  },
705
689
  };
706
690
  const result = await this.sdk.document.search(this.config.platformIndex, plugin_1.InternalCollection.MODELS, {
@@ -719,8 +703,8 @@ class ModelService extends shared_1.BaseService {
719
703
  * Checks that creating/updating a measure model does not shadow an existing
720
704
  * one at a different scope (global vs tenant-scoped).
721
705
  */
722
- async checkMeasureShadowing(type, engineIds) {
723
- const isNewTenantScoped = engineIds && engineIds.length > 0;
706
+ async checkMeasureShadowing(type, indexes) {
707
+ const isNewTenantScoped = indexes && indexes.length > 0;
724
708
  // Check for existing measures of the same type at the opposite scope
725
709
  const conflictQuery = isNewTenantScoped
726
710
  ? {
@@ -730,7 +714,7 @@ class ModelService extends shared_1.BaseService {
730
714
  { term: { type: "measure" } },
731
715
  { term: { "measure.type": type } },
732
716
  ],
733
- must_not: [{ exists: { field: "engineIds" } }],
717
+ must_not: [{ exists: { field: "indexes" } }],
734
718
  },
735
719
  }
736
720
  : {
@@ -739,7 +723,7 @@ class ModelService extends shared_1.BaseService {
739
723
  must: [
740
724
  { term: { type: "measure" } },
741
725
  { term: { "measure.type": type } },
742
- { exists: { field: "engineIds" } },
726
+ { exists: { field: "indexes" } },
743
727
  ],
744
728
  },
745
729
  };
@@ -752,12 +736,12 @@ class ModelService extends shared_1.BaseService {
752
736
  /**
753
737
  * Update an asset model
754
738
  */
755
- async updateAsset(engineGroups, engineId, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels, locales, icon, request) {
739
+ async updateAsset(tenantClasses, index, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels, locales, icon, request) {
756
740
  if (kuzzle_1.Inflector.pascalCase(model) !== model) {
757
741
  throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
758
742
  }
759
743
  this.checkDefaultValues(metadataMappings, defaultMetadata);
760
- const existingAsset = await this.getAsset(engineGroups, engineId, model);
744
+ const existingAsset = await this.getAsset(tenantClasses, index, model);
761
745
  // The field must be deleted if an element of the table is to be deleted
762
746
  await this.sdk.document.deleteFields(this.config.platformIndex, plugin_1.InternalCollection.MODELS, existingAsset._id, [
763
747
  "asset.tooltipModels",
@@ -767,9 +751,9 @@ class ModelService extends shared_1.BaseService {
767
751
  "asset.metadataGroups",
768
752
  ], { source: true });
769
753
  const measuresUpdated = measures.length === 0 ? existingAsset._source.asset.measures : measures;
770
- // Preserve the existing scope: scope (engineGroups / engineIds) is decided
754
+ // Preserve the existing scope: scope (tenantClasses / indexes) is decided
771
755
  // at write time and must not be silently rewritten by an update payload.
772
- // This also enforces engineGroups / engineIds mutual exclusivity (KZLPRD-1192).
756
+ // This also enforces tenantClasses / indexes mutual exclusivity (KZLPRD-1192).
773
757
  const assetModelContent = {
774
758
  asset: {
775
759
  defaultMetadata,
@@ -782,8 +766,8 @@ class ModelService extends shared_1.BaseService {
782
766
  model,
783
767
  tooltipModels,
784
768
  },
785
- engineGroups: existingAsset._source.engineGroups,
786
- engineIds: existingAsset._source.engineIds,
769
+ tenantClasses: existingAsset._source.tenantClasses,
770
+ indexes: existingAsset._source.indexes,
787
771
  type: "asset",
788
772
  };
789
773
  const assetModel = {
@@ -796,9 +780,9 @@ class ModelService extends shared_1.BaseService {
796
780
  }
797
781
  const endDocument = await this.updateDocument(request, assetModel, {
798
782
  collection: plugin_1.InternalCollection.MODELS,
799
- engineId: this.config.platformIndex,
783
+ index: this.config.platformIndex,
800
784
  }, { source: true });
801
- // ? Only update engineIds and refresh asset models when necessary
785
+ // ? Only update indexes and refresh asset models when necessary
802
786
  if (Object.keys(metadataMappings).length > 0 || measures.length > 0) {
803
787
  await this.sdk.collection.refresh(this.config.platformIndex, plugin_1.InternalCollection.MODELS);
804
788
  await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
@@ -1 +1 @@
1
- {"version":3,"file":"ModelService.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelService.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelService.ts"],"names":[],"mappings":"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"}