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.
- package/dist/bin/migration/migrate-tenant-classes.d.ts +2 -0
- package/dist/bin/migration/migrate-tenant-classes.js +133 -0
- package/dist/bin/migration/migrate-tenant-classes.js.map +1 -0
- package/dist/lib/modules/asset/AssetHistoryService.d.ts +1 -1
- package/dist/lib/modules/asset/AssetHistoryService.js +3 -3
- package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -1
- package/dist/lib/modules/asset/AssetService.d.ts +18 -12
- package/dist/lib/modules/asset/AssetService.js +115 -115
- package/dist/lib/modules/asset/AssetService.js.map +1 -1
- package/dist/lib/modules/asset/AssetsController.d.ts +1 -1
- package/dist/lib/modules/asset/AssetsController.js +72 -74
- package/dist/lib/modules/asset/AssetsController.js.map +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.d.ts +1 -0
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +2 -0
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +1 -0
- package/dist/lib/modules/asset/roles/RoleAssetsReader.js +2 -0
- package/dist/lib/modules/asset/roles/RoleAssetsReader.js.map +1 -1
- package/dist/lib/modules/asset/types/AssetApi.d.ts +6 -6
- package/dist/lib/modules/asset/types/AssetEvents.d.ts +1 -1
- package/dist/lib/modules/decoder/PayloadService.js +16 -16
- package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
- package/dist/lib/modules/device/DeviceService.d.ts +11 -11
- package/dist/lib/modules/device/DeviceService.js +86 -86
- package/dist/lib/modules/device/DeviceService.js.map +1 -1
- package/dist/lib/modules/device/DevicesController.js +60 -64
- package/dist/lib/modules/device/DevicesController.js.map +1 -1
- package/dist/lib/modules/device/collections/deviceMappings.js +2 -2
- package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +1 -0
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js +2 -0
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.js.map +1 -1
- package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +1 -0
- package/dist/lib/modules/device/roles/RoleDevicesReader.js +2 -0
- package/dist/lib/modules/device/roles/RoleDevicesReader.js.map +1 -1
- package/dist/lib/modules/device/types/DeviceApi.d.ts +2 -2
- package/dist/lib/modules/device/types/DeviceContent.d.ts +2 -2
- package/dist/lib/modules/device/types/DeviceEvents.d.ts +1 -1
- package/dist/lib/modules/group/GroupsController.d.ts +3 -3
- package/dist/lib/modules/group/GroupsController.js +66 -66
- package/dist/lib/modules/group/GroupsController.js.map +1 -1
- package/dist/lib/modules/group/GroupsService.d.ts +19 -14
- package/dist/lib/modules/group/GroupsService.js +103 -64
- package/dist/lib/modules/group/GroupsService.js.map +1 -1
- package/dist/lib/modules/group/index.d.ts +1 -0
- package/dist/lib/modules/group/index.js +1 -0
- package/dist/lib/modules/group/index.js.map +1 -1
- package/dist/lib/modules/group/roles/RoleGroupsAdmin.d.ts +1 -0
- package/dist/lib/modules/group/roles/RoleGroupsAdmin.js +2 -0
- package/dist/lib/modules/group/roles/RoleGroupsAdmin.js.map +1 -1
- package/dist/lib/modules/group/roles/RoleGroupsReader.d.ts +1 -0
- package/dist/lib/modules/group/roles/RoleGroupsReader.js +2 -0
- package/dist/lib/modules/group/roles/RoleGroupsReader.js.map +1 -1
- package/dist/lib/modules/group/types/GroupEvents.d.ts +8 -0
- package/dist/lib/modules/group/types/GroupEvents.js +3 -0
- package/dist/lib/modules/group/types/GroupEvents.js.map +1 -0
- package/dist/lib/modules/group/types/GroupsApi.d.ts +1 -1
- package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -5
- package/dist/lib/modules/measure/MeasureExporter.js +20 -20
- package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
- package/dist/lib/modules/measure/MeasureService.d.ts +2 -2
- package/dist/lib/modules/measure/MeasureService.js +5 -5
- package/dist/lib/modules/measure/MeasureService.js.map +1 -1
- package/dist/lib/modules/measure/MeasureTargetBuilder.d.ts +1 -1
- package/dist/lib/modules/measure/MeasureTargetBuilder.js +2 -2
- package/dist/lib/modules/measure/MeasureTargetBuilder.js.map +1 -1
- package/dist/lib/modules/measure/types/MeasureTarget.d.ts +1 -1
- package/dist/lib/modules/measure/types/MeasureTarget.js +1 -1
- package/dist/lib/modules/measure/types/MeasureTarget.js.map +1 -1
- package/dist/lib/modules/model/MetadataReferential.d.ts +119 -0
- package/dist/lib/modules/model/MetadataReferential.js +342 -0
- package/dist/lib/modules/model/MetadataReferential.js.map +1 -0
- package/dist/lib/modules/model/ModelSerializer.js +13 -13
- package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
- package/dist/lib/modules/model/ModelService.d.ts +120 -22
- package/dist/lib/modules/model/ModelService.js +548 -263
- package/dist/lib/modules/model/ModelService.js.map +1 -1
- package/dist/lib/modules/model/ModelsConflicts.d.ts +23 -0
- package/dist/lib/modules/model/ModelsConflicts.js +54 -4
- package/dist/lib/modules/model/ModelsConflicts.js.map +1 -1
- package/dist/lib/modules/model/ModelsController.d.ts +11 -2
- package/dist/lib/modules/model/ModelsController.js +151 -54
- package/dist/lib/modules/model/ModelsController.js.map +1 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +37 -5
- package/dist/lib/modules/model/ModelsRegister.js +107 -9
- package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
- package/dist/lib/modules/model/collections/modelsMappings.js +15 -1
- package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
- package/dist/lib/modules/model/types/ModelApi.d.ts +105 -14
- package/dist/lib/modules/model/types/ModelContent.d.ts +73 -7
- package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +6 -3
- package/dist/lib/modules/model/types/ModelEvents.d.ts +9 -4
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +58 -25
- package/dist/lib/modules/plugin/DeviceManagerEngine.js +184 -88
- package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +46 -4
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js +72 -9
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +11 -0
- package/dist/lib/modules/shared/services/AbstractExporter.d.ts +8 -8
- package/dist/lib/modules/shared/services/AbstractExporter.js +9 -9
- package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/BaseService.d.ts +7 -7
- package/dist/lib/modules/shared/services/BaseService.js +20 -17
- package/dist/lib/modules/shared/services/BaseService.js.map +1 -1
- package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +3 -3
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js +18 -18
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +8 -8
- package/dist/lib/modules/shared/services/DigitalTwinService.js +39 -39
- package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -1
- package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +1 -1
- package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +2 -2
- package/dist/lib/modules/shared/utils/lock.d.ts +7 -1
- package/dist/lib/modules/shared/utils/lock.js +2 -2
- package/dist/lib/modules/shared/utils/lock.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/* eslint-disable no-console */
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
/**
|
|
6
|
+
* Renames the `engineGroups` field of the model documents to `tenantClasses`,
|
|
7
|
+
* then updates every device-manager engine so the tenant collections get the
|
|
8
|
+
* mappings of the migrated models.
|
|
9
|
+
*
|
|
10
|
+
* Run it against a Kuzzle that already runs the new Device Manager version.
|
|
11
|
+
* See doc/3/guides/rename-engine-groups-to-tenant-classes.
|
|
12
|
+
*/
|
|
13
|
+
const kuzzle_sdk_1 = require("kuzzle-sdk");
|
|
14
|
+
const args = {};
|
|
15
|
+
for (const val of process.argv.slice(2)) {
|
|
16
|
+
if (val.startsWith("--")) {
|
|
17
|
+
const [key, ...value] = val.slice(2).split("=");
|
|
18
|
+
args[key] = value.length > 0 ? value.join("=") : true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function option(name, env, defaultValue) {
|
|
22
|
+
const value = args[name] ?? process.env[env] ?? defaultValue;
|
|
23
|
+
return typeof value === "string" ? value : undefined;
|
|
24
|
+
}
|
|
25
|
+
const host = option("host", "KUZZLE_HOST", "localhost");
|
|
26
|
+
const port = Number(option("port", "KUZZLE_PORT", "7512"));
|
|
27
|
+
const protocol = option("protocol", "KUZZLE_PROTOCOL", "websocket");
|
|
28
|
+
const ssl = args.ssl === true || process.env.KUZZLE_SSL === "true";
|
|
29
|
+
const username = option("username", "KUZZLE_USERNAME");
|
|
30
|
+
const password = option("password", "KUZZLE_PASSWORD");
|
|
31
|
+
const platformIndex = option("platform-index", "PLATFORM_INDEX", "device-manager");
|
|
32
|
+
const dryRun = args["dry-run"] === true;
|
|
33
|
+
const skipEngines = args["skip-engines"] === true;
|
|
34
|
+
const MODELS = "models";
|
|
35
|
+
const CHUNK_SIZE = 200;
|
|
36
|
+
async function connect() {
|
|
37
|
+
const Protocol = protocol === "http" ? kuzzle_sdk_1.Http : kuzzle_sdk_1.WebSocket;
|
|
38
|
+
const sdk = new kuzzle_sdk_1.Kuzzle(new Protocol(host, { port, ssl }));
|
|
39
|
+
await sdk.connect();
|
|
40
|
+
if (username) {
|
|
41
|
+
await sdk.auth.login("local", { password, username });
|
|
42
|
+
}
|
|
43
|
+
return sdk;
|
|
44
|
+
}
|
|
45
|
+
async function assertNewMappings(sdk) {
|
|
46
|
+
const mappings = await sdk.collection.getMapping(platformIndex, MODELS);
|
|
47
|
+
if (!mappings.properties?.tenantClasses) {
|
|
48
|
+
throw new Error(`The "${platformIndex}:${MODELS}" collection has no "tenantClasses" field. ` +
|
|
49
|
+
"Start Kuzzle with the new Device Manager version before running this script.");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async function fetchLegacyModels(sdk) {
|
|
53
|
+
const documents = [];
|
|
54
|
+
let result = await sdk.document.search(platformIndex, MODELS, { query: { exists: { field: "engineGroups" } } }, { lang: "elasticsearch", scroll: "1m", size: CHUNK_SIZE });
|
|
55
|
+
while (result) {
|
|
56
|
+
documents.push(...result.hits);
|
|
57
|
+
result = await result.next();
|
|
58
|
+
}
|
|
59
|
+
return documents;
|
|
60
|
+
}
|
|
61
|
+
async function migrateModels(sdk) {
|
|
62
|
+
const legacyModels = await fetchLegacyModels(sdk);
|
|
63
|
+
console.info(`${legacyModels.length} model(s) still use "engineGroups"`);
|
|
64
|
+
const documents = legacyModels.map(({ _id, _source }) => {
|
|
65
|
+
const { engineGroups, ...body } = _source;
|
|
66
|
+
delete body._kuzzle_info;
|
|
67
|
+
// A model registered by the application at startup may already have
|
|
68
|
+
// been rewritten with `tenantClasses`: the new value wins.
|
|
69
|
+
body.tenantClasses ?? (body.tenantClasses = engineGroups);
|
|
70
|
+
console.info(` ${_id}: ${JSON.stringify(body.tenantClasses)}`);
|
|
71
|
+
return { _id, body };
|
|
72
|
+
});
|
|
73
|
+
if (dryRun) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
for (let i = 0; i < documents.length; i += CHUNK_SIZE) {
|
|
77
|
+
const { errors } = await sdk.document.mReplace(platformIndex, MODELS, documents.slice(i, i + CHUNK_SIZE), { refresh: "wait_for" });
|
|
78
|
+
if (errors.length > 0) {
|
|
79
|
+
for (const error of errors) {
|
|
80
|
+
console.error(` Cannot migrate ${error.document._id}: ${error.reason}`);
|
|
81
|
+
}
|
|
82
|
+
throw new Error(`${errors.length} model(s) could not be migrated`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const remaining = await sdk.document.count(platformIndex, MODELS, {
|
|
86
|
+
query: { exists: { field: "engineGroups" } },
|
|
87
|
+
});
|
|
88
|
+
if (remaining > 0) {
|
|
89
|
+
throw new Error(`${remaining} model(s) still use "engineGroups"`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async function updateEngines(sdk) {
|
|
93
|
+
const { result } = await sdk.query({
|
|
94
|
+
action: "list",
|
|
95
|
+
controller: "device-manager/engine",
|
|
96
|
+
});
|
|
97
|
+
const engines = result.engines;
|
|
98
|
+
console.info(`Updating ${engines.length} engine(s)`);
|
|
99
|
+
for (const engine of engines) {
|
|
100
|
+
console.info(` ${engine.index} (${engine.group})`);
|
|
101
|
+
if (dryRun) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
await sdk.query({
|
|
105
|
+
action: "update",
|
|
106
|
+
controller: "device-manager/engine",
|
|
107
|
+
group: engine.group,
|
|
108
|
+
index: engine.index,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async function run() {
|
|
113
|
+
const sdk = await connect();
|
|
114
|
+
try {
|
|
115
|
+
if (dryRun) {
|
|
116
|
+
console.info("Dry run: nothing will be written");
|
|
117
|
+
}
|
|
118
|
+
await assertNewMappings(sdk);
|
|
119
|
+
await migrateModels(sdk);
|
|
120
|
+
if (!skipEngines) {
|
|
121
|
+
await updateEngines(sdk);
|
|
122
|
+
}
|
|
123
|
+
console.info("Done");
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
sdk.disconnect();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
run().catch((error) => {
|
|
130
|
+
console.error(error.message ?? error);
|
|
131
|
+
process.exitCode = 1;
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=migrate-tenant-classes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-tenant-classes.js","sourceRoot":"","sources":["../../../bin/migration/migrate-tenant-classes.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ import { KuzzleLogger } from "kuzzle-logger";
|
|
|
5
5
|
export declare class AssetHistoryService extends BaseService {
|
|
6
6
|
readonly logger: KuzzleLogger;
|
|
7
7
|
constructor(plugin: DeviceManagerPlugin, assetLogger: KuzzleLogger);
|
|
8
|
-
add<TAssetHistoryEvent extends AssetHistoryEvent>(
|
|
8
|
+
add<TAssetHistoryEvent extends AssetHistoryEvent>(index: string, histories: AssetHistoryContent[]): Promise<void>;
|
|
9
9
|
}
|
|
@@ -8,9 +8,9 @@ class AssetHistoryService extends shared_1.BaseService {
|
|
|
8
8
|
constructor(plugin, assetLogger) {
|
|
9
9
|
super(plugin);
|
|
10
10
|
this.logger = assetLogger;
|
|
11
|
-
(0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:asset:history:add", async ({
|
|
11
|
+
(0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:asset:history:add", async ({ index, histories }) => this.add(index, histories));
|
|
12
12
|
}
|
|
13
|
-
async add(
|
|
13
|
+
async add(index, histories) {
|
|
14
14
|
const contents = [];
|
|
15
15
|
for (const { asset, event, id, timestamp } of histories) {
|
|
16
16
|
contents.push({
|
|
@@ -22,7 +22,7 @@ class AssetHistoryService extends shared_1.BaseService {
|
|
|
22
22
|
},
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
await this.sdk.document.mCreate(
|
|
25
|
+
await this.sdk.document.mCreate(index, plugin_1.InternalCollection.ASSETS_HISTORY, contents, { strict: true });
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
exports.AssetHistoryService = AssetHistoryService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetHistoryService.js","sourceRoot":"","sources":["../../../../lib/modules/asset/AssetHistoryService.ts"],"names":[],"mappings":";;;AAAA,iEAA8C;AAG9C,sCAAoE;AACpE,sCAAwC;AASxC,MAAa,mBAAoB,SAAQ,oBAAW;IAElD,YAAY,MAA2B,EAAE,WAAyB;QAChE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAA,6BAAK,EACH,sCAAsC,EACtC,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"AssetHistoryService.js","sourceRoot":"","sources":["../../../../lib/modules/asset/AssetHistoryService.ts"],"names":[],"mappings":";;;AAAA,iEAA8C;AAG9C,sCAAoE;AACpE,sCAAwC;AASxC,MAAa,mBAAoB,SAAQ,oBAAW;IAElD,YAAY,MAA2B,EAAE,WAAyB;QAChE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAA,6BAAK,EACH,sCAAsC,EACtC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,KAAa,EACb,SAAgC;QAEhC,MAAM,QAAQ,GAEV,EAAE,CAAC;QAEP,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE;oBACJ,KAAK;oBACL,KAAK;oBACL,EAAE;oBACF,SAAS;iBACV;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAC7B,KAAK,EACL,2BAAkB,CAAC,cAAc,EACjC,QAAQ,EACR,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;IACJ,CAAC;CACF;AArCD,kDAqCC"}
|
|
@@ -11,35 +11,35 @@ export declare class AssetService extends DigitalTwinService {
|
|
|
11
11
|
readonly logger: KuzzleLogger;
|
|
12
12
|
constructor(plugin: DeviceManagerPlugin, assetHistoryService: AssetHistoryService, assetLogger: KuzzleLogger);
|
|
13
13
|
registerAskEvents(): void;
|
|
14
|
-
get(
|
|
14
|
+
get(index: string, assetId: string, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
15
15
|
/**
|
|
16
16
|
* Update an asset metadata
|
|
17
17
|
*/
|
|
18
|
-
update(
|
|
18
|
+
update(index: string, assetId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
19
19
|
/**
|
|
20
20
|
* Replace an asset metadata
|
|
21
21
|
*/
|
|
22
|
-
replaceMetadata(
|
|
22
|
+
replaceMetadata(index: string, assetId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
23
23
|
/**
|
|
24
24
|
* Update or Create an asset metadata
|
|
25
25
|
*/
|
|
26
|
-
upsert(
|
|
26
|
+
upsert(index: string, model: string, reference: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
27
27
|
private _create;
|
|
28
28
|
/**
|
|
29
29
|
* Create an asset metadata
|
|
30
30
|
*/
|
|
31
|
-
create(
|
|
31
|
+
create(index: string, model: string, reference: string, metadata: JSONObject, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
32
32
|
/**
|
|
33
33
|
* Delete an asset metadata
|
|
34
34
|
*/
|
|
35
|
-
delete(
|
|
36
|
-
search(
|
|
35
|
+
delete(index: string, assetId: string, request: KuzzleRequest): Promise<void>;
|
|
36
|
+
search(index: string, searchParams: SearchParams, request: KuzzleRequest): Promise<SearchResult<KHit<AssetContent>>>;
|
|
37
37
|
unlinkDevices(assetId: string, allMeasures: boolean, deviceIds: string[], measureSlots: string[], request: KuzzleRequest): Promise<ApiAssetUnlinkDevicesResult>;
|
|
38
|
-
migrateTenant(user: User, assetsList: string[],
|
|
38
|
+
migrateTenant(user: User, assetsList: string[], index: string, newIndex: string, includeDevices: boolean, request: KuzzleRequest): Promise<ApiAssetMigrateTenantResult>;
|
|
39
39
|
/**
|
|
40
40
|
* Replace an asset metadata
|
|
41
41
|
*/
|
|
42
|
-
mReplaceAndHistorize(
|
|
42
|
+
mReplaceAndHistorize(index: string, assets: KDocument<AssetContent>[], removedMetadata: string[], { refresh }: {
|
|
43
43
|
refresh: any;
|
|
44
44
|
}): Promise<mReplaceResponse>;
|
|
45
45
|
/**
|
|
@@ -49,13 +49,19 @@ export declare class AssetService extends DigitalTwinService {
|
|
|
49
49
|
* @param model
|
|
50
50
|
*/
|
|
51
51
|
updateModelLocales(request: KuzzleRequest, model: string): Promise<ApiAssetUpdateModelLocales[]>;
|
|
52
|
-
addMeasureSlot(assetId: string, measureSlot: AssetContent["measureSlots"][0],
|
|
53
|
-
removeMeasureSlot(assetId: string, measureSlotName: string,
|
|
52
|
+
addMeasureSlot(assetId: string, measureSlot: AssetContent["measureSlots"][0], index: string, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
53
|
+
removeMeasureSlot(assetId: string, measureSlotName: string, index: string, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
54
54
|
/**
|
|
55
55
|
* Update the display name of a measure slot on an asset
|
|
56
56
|
*/
|
|
57
57
|
updateMeasureSlotDisplayName(assetId: string, measureSlotName: string, displayName: {
|
|
58
58
|
[locale: string]: string;
|
|
59
|
-
},
|
|
59
|
+
}, index: string, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
60
60
|
private refreshModel;
|
|
61
|
+
/**
|
|
62
|
+
* Lists the engines whose assets use the given model:
|
|
63
|
+
* the model indexes for a tenant-scoped model, every engine for a commons model,
|
|
64
|
+
* and the engines of the model tenantClasses otherwise.
|
|
65
|
+
*/
|
|
66
|
+
private getModelEngines;
|
|
61
67
|
}
|