kuzzle-device-manager-types 3.0.0-next.3 → 3.0.0-next.5
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/index.d.ts +1 -0
- package/dist/lib/modules/asset/AssetModule.d.ts +0 -1
- package/dist/lib/modules/asset/AssetService.d.ts +8 -1
- package/dist/lib/modules/asset/AssetsController.d.ts +7 -1
- package/dist/lib/modules/asset/exports.d.ts +0 -4
- package/dist/lib/modules/asset/index.d.ts +1 -3
- package/dist/lib/modules/asset/types/AssetApi.d.ts +5 -6
- package/dist/lib/modules/asset/types/AssetContent.d.ts +3 -8
- package/dist/lib/modules/device/types/DeviceContent.d.ts +7 -0
- package/dist/lib/modules/group/GroupsController.d.ts +31 -0
- package/dist/lib/modules/group/GroupsModule.d.ts +6 -0
- package/dist/lib/modules/group/GroupsService.d.ts +94 -0
- package/dist/lib/modules/group/collections/groupsMappings.d.ts +2 -0
- package/dist/lib/modules/group/exports.d.ts +5 -0
- package/dist/lib/modules/group/index.d.ts +4 -0
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.d.ts → group/roles/RoleGroupsAdmin.d.ts} +3 -3
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsReader.d.ts → group/roles/RoleGroupsReader.d.ts} +3 -3
- package/dist/lib/modules/group/types/GroupContent.d.ts +10 -0
- package/dist/lib/modules/group/types/GroupsApi.d.ts +96 -0
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +1 -9
- package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +4 -0
- package/dist/lib/modules/model/ModelService.d.ts +16 -4
- package/dist/lib/modules/model/ModelsConflicts.d.ts +9 -1
- package/dist/lib/modules/model/ModelsController.d.ts +6 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +19 -2
- package/dist/lib/modules/model/types/ModelApi.d.ts +50 -1
- package/dist/lib/modules/model/types/ModelContent.d.ts +152 -1
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +110 -2
- package/dist/lib/modules/model/types/ModelEvents.d.ts +8 -1
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +22 -5
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +55 -1
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +2 -1
- package/dist/lib/modules/plugin/types/InternalCollection.d.ts +1 -1
- package/dist/lib/modules/plugin/types/exports.d.ts +1 -0
- package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +4 -0
- package/dist/lib/modules/shared/types/Models.d.ts +2 -1
- package/dist/tests/application/groups/AssetRestricted.d.ts +8 -0
- package/dist/tests/application/groups/DeviceRestricted.d.ts +8 -0
- package/dist/tests/application/groups/Parking.d.ts +14 -0
- package/dist/tests/application/groups/index.d.ts +3 -0
- package/package.json +1 -1
- package/dist/lib/modules/asset/AssetsGroupsController.d.ts +0 -20
- package/dist/lib/modules/asset/collections/assetsGroupsMapping.d.ts +0 -2
- package/dist/lib/modules/asset/types/AssetGroupContent.d.ts +0 -9
- package/dist/lib/modules/asset/types/AssetGroupsApi.d.ts +0 -59
- package/dist/tests/application/decoders/index.d.ts +0 -2
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { JSONObject, KDocument, KHit, SearchResult, mReplaceResponse } from "kuz
|
|
|
3
3
|
import { DeviceManagerPlugin } from "../plugin";
|
|
4
4
|
import { DigitalTwinService, Metadata, SearchParams } from "../shared";
|
|
5
5
|
import { AssetHistoryService } from "./AssetHistoryService";
|
|
6
|
-
import { ApiAssetMigrateTenantResult } from "./types/AssetApi";
|
|
6
|
+
import { ApiAssetMigrateTenantResult, ApiAssetUpdateModelLocales } from "./types/AssetApi";
|
|
7
7
|
import { AssetContent } from "./types/AssetContent";
|
|
8
8
|
export declare class AssetService extends DigitalTwinService {
|
|
9
9
|
private assetHistoryService;
|
|
@@ -39,6 +39,13 @@ export declare class AssetService extends DigitalTwinService {
|
|
|
39
39
|
mReplaceAndHistorize(engineId: string, assets: KDocument<AssetContent>[], removedMetadata: string[], { refresh }: {
|
|
40
40
|
refresh: any;
|
|
41
41
|
}): Promise<mReplaceResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* Retrieve locales with the specified model and search all assets related to the model to update the locales.
|
|
44
|
+
* The operation is historized.
|
|
45
|
+
* @param request
|
|
46
|
+
* @param model
|
|
47
|
+
*/
|
|
48
|
+
updateModelLocales(request: KuzzleRequest, model: string): Promise<ApiAssetUpdateModelLocales[]>;
|
|
42
49
|
private getEngine;
|
|
43
50
|
private refreshModel;
|
|
44
51
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { DeviceManagerPlugin } from "../plugin";
|
|
3
3
|
import { AssetService } from "./AssetService";
|
|
4
|
-
import { ApiAssetCreateResult, ApiAssetUpsertResult, ApiAssetDeleteResult, ApiAssetGetMeasuresResult, ApiAssetGetResult, ApiAssetSearchResult, ApiAssetUpdateResult, ApiAssetMigrateTenantResult, ApiAssetMetadataReplaceResult, ApiAssetGetLastMeasuresResult, ApiAssetMGetLastMeasuredAtResult, ApiAssetMGetLastMeasuresResult, ApiAssetGetLastMeasuredAtResult } from "./types/AssetApi";
|
|
4
|
+
import { ApiAssetCreateResult, ApiAssetUpsertResult, ApiAssetDeleteResult, ApiAssetGetMeasuresResult, ApiAssetGetResult, ApiAssetSearchResult, ApiAssetUpdateResult, ApiAssetMigrateTenantResult, ApiAssetMetadataReplaceResult, ApiAssetGetLastMeasuresResult, ApiAssetMGetLastMeasuredAtResult, ApiAssetMGetLastMeasuresResult, ApiAssetGetLastMeasuredAtResult, ApiAssetUpdateModelLocales } from "./types/AssetApi";
|
|
5
5
|
export declare class AssetsController {
|
|
6
6
|
private plugin;
|
|
7
7
|
private assetService;
|
|
@@ -36,4 +36,10 @@ export declare class AssetsController {
|
|
|
36
36
|
migrateTenant(request: KuzzleRequest): Promise<ApiAssetMigrateTenantResult>;
|
|
37
37
|
getLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetGetLastMeasuredAtResult>;
|
|
38
38
|
mGetLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetMGetLastMeasuredAtResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Update modelLocales of all assets related to the specified asset model.
|
|
41
|
+
* This operation is done to make the search assets feature up to date
|
|
42
|
+
* @param request
|
|
43
|
+
*/
|
|
44
|
+
updateModelLocales(request: KuzzleRequest): Promise<ApiAssetUpdateModelLocales[]>;
|
|
39
45
|
}
|
|
@@ -2,11 +2,7 @@ export * from "./types/AssetContent";
|
|
|
2
2
|
export * from "./types/AssetHistoryContent";
|
|
3
3
|
export * from "./types/AssetEvents";
|
|
4
4
|
export * from "./types/AssetApi";
|
|
5
|
-
export * from "./types/AssetGroupContent";
|
|
6
|
-
export * from "./types/AssetGroupsApi";
|
|
7
5
|
export * from "./roles/RoleAssetsAdmin";
|
|
8
6
|
export * from "./roles/RoleAssetsReader";
|
|
9
|
-
export * from "./roles/RoleAssetsGroupsAdmin";
|
|
10
|
-
export * from "./roles/RoleAssetsGroupsReader";
|
|
11
7
|
export * from "./collections/assetsMappings";
|
|
12
8
|
export * from "./collections/assetsHistoryMappings";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./collections/assetsMappings";
|
|
2
2
|
export * from "./collections/assetsHistoryMappings";
|
|
3
|
-
export * from "
|
|
3
|
+
export * from "../group/collections/groupsMappings";
|
|
4
4
|
export * from "./types/AssetContent";
|
|
5
5
|
export * from "./types/AssetHistoryContent";
|
|
6
6
|
export * from "./types/AssetEvents";
|
|
@@ -9,5 +9,3 @@ export * from "./model/AssetSerializer";
|
|
|
9
9
|
export * from "./AssetModule";
|
|
10
10
|
export * from "./roles/RoleAssetsAdmin";
|
|
11
11
|
export * from "./roles/RoleAssetsReader";
|
|
12
|
-
export * from "./roles/RoleAssetsGroupsAdmin";
|
|
13
|
-
export * from "./roles/RoleAssetsGroupsReader";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
1
|
+
import { JSONObject, KDocument, KHit, SearchResult, UpdateByQueryResponse } from "kuzzle-sdk";
|
|
2
2
|
import { MeasureContent, Measurement } from "../../../modules/measure";
|
|
3
3
|
import { ApiDigitalTwinGetLastMeasuredAtRequest, ApiDigitalTwinGetLastMeasuredAtResult, ApiDigitalTwinGetLastMeasuresRequest, ApiDigitalTwinGetLastMeasuresResult, ApiDigitalTwinMGetLastMeasuredAtRequest, ApiDigitalTwinMGetLastMeasuredAtResult, ApiDigitalTwinMGetLastMeasuresRequest, ApiDigitalTwinMGetLastMeasuresResult, Metadata } from "../../shared";
|
|
4
4
|
import { AssetContent } from "./AssetContent";
|
|
@@ -7,11 +7,6 @@ import { ApiMeasureSource } from "../../measure/types/MeasureSources";
|
|
|
7
7
|
interface AssetsControllerRequest {
|
|
8
8
|
controller: AssetsControllerName;
|
|
9
9
|
engineId: string;
|
|
10
|
-
/**
|
|
11
|
-
* ? Request parameter used by SoftTenant module
|
|
12
|
-
* ! Not used directly in this plugin
|
|
13
|
-
*/
|
|
14
|
-
softTenantId?: string | string[] | null;
|
|
15
10
|
}
|
|
16
11
|
export interface ApiAssetGetRequest extends AssetsControllerRequest {
|
|
17
12
|
action: "get";
|
|
@@ -170,4 +165,8 @@ export type ApiAssetGetLastMeasuredAtRequest = ApiDigitalTwinGetLastMeasuredAtRe
|
|
|
170
165
|
export type ApiAssetGetLastMeasuredAtResult = ApiDigitalTwinGetLastMeasuredAtResult;
|
|
171
166
|
export type ApiAssetMGetLastMeasuredAtRequest = ApiDigitalTwinMGetLastMeasuredAtRequest<AssetsControllerName>;
|
|
172
167
|
export type ApiAssetMGetLastMeasuredAtResult = ApiDigitalTwinMGetLastMeasuredAtResult;
|
|
168
|
+
export type ApiAssetUpdateModelLocales = {
|
|
169
|
+
engineIndex: string;
|
|
170
|
+
result: UpdateByQueryResponse<AssetContent>;
|
|
171
|
+
};
|
|
173
172
|
export {};
|
|
@@ -30,17 +30,12 @@ export interface AssetContent<TMeasures extends JSONObject = any, TMetadata exte
|
|
|
30
30
|
}>;
|
|
31
31
|
}>;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Path's of asset groups
|
|
34
34
|
*/
|
|
35
35
|
groups: Array<{
|
|
36
|
-
|
|
36
|
+
path: string;
|
|
37
37
|
date: number;
|
|
38
38
|
}>;
|
|
39
|
-
/**
|
|
40
|
-
* Id's of soft tenants
|
|
41
|
-
* ! Not used directly in this plugin
|
|
42
|
-
*/
|
|
43
|
-
softTenant?: Array<string>;
|
|
44
39
|
}
|
|
45
40
|
/**
|
|
46
41
|
* Asset description used to contextualize each measure data point
|
|
@@ -54,4 +49,4 @@ export type AssetMeasureContext<TMetadata extends Metadata = Metadata> = {
|
|
|
54
49
|
* Name of the measure for the Asset
|
|
55
50
|
*/
|
|
56
51
|
measureName: string;
|
|
57
|
-
} & Pick<AssetContent<JSONObject, TMetadata>, "model" | "reference" | "metadata" | "groups"
|
|
52
|
+
} & Pick<AssetContent<JSONObject, TMetadata>, "model" | "reference" | "metadata" | "groups">;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
3
|
+
import { ApiGroupAddAssetsResult, ApiGroupAddDevicesResult, ApiGroupCreateResult, ApiGroupDeleteResult, ApiGroupGetResult, ApiGroupListItemsResult, ApiGroupRemoveAssetsResult, ApiGroupRemoveDeviceResult, ApiGroupSearchResult, ApiGroupUpdateResult, GroupsBodyRequest } from "./types/GroupsApi";
|
|
4
|
+
import { GroupsService } from "./GroupsService";
|
|
5
|
+
export declare class GroupsController {
|
|
6
|
+
private plugin;
|
|
7
|
+
private groupsService;
|
|
8
|
+
definition: ControllerDefinition;
|
|
9
|
+
constructor(plugin: DeviceManagerPlugin, groupsService: GroupsService);
|
|
10
|
+
private get sdk();
|
|
11
|
+
private get as();
|
|
12
|
+
/**
|
|
13
|
+
* Check that the path property is valid, and closest parent exists.
|
|
14
|
+
* @param {string} engineId Engine ID
|
|
15
|
+
* @param {string} path The path of a group
|
|
16
|
+
* @throws {BadRequestError} If the path is not a string or if the path is not valid.
|
|
17
|
+
* @returns {void}
|
|
18
|
+
*/
|
|
19
|
+
checkPath(engineId: string, path: GroupsBodyRequest["path"], groupId?: string): Promise<void>;
|
|
20
|
+
checkGroupName(engineId: string, name: GroupsBodyRequest["name"], assetId?: string): Promise<void>;
|
|
21
|
+
create(request: KuzzleRequest): Promise<ApiGroupCreateResult>;
|
|
22
|
+
get(request: KuzzleRequest): Promise<ApiGroupGetResult>;
|
|
23
|
+
update(request: KuzzleRequest): Promise<ApiGroupUpdateResult>;
|
|
24
|
+
delete(request: KuzzleRequest): Promise<ApiGroupDeleteResult>;
|
|
25
|
+
search(request: KuzzleRequest): Promise<ApiGroupSearchResult>;
|
|
26
|
+
listItems(request: KuzzleRequest): Promise<ApiGroupListItemsResult>;
|
|
27
|
+
addAsset(request: KuzzleRequest): Promise<ApiGroupAddAssetsResult>;
|
|
28
|
+
removeAsset(request: KuzzleRequest): Promise<ApiGroupRemoveAssetsResult>;
|
|
29
|
+
addDevice(request: KuzzleRequest): Promise<ApiGroupAddDevicesResult>;
|
|
30
|
+
removeDevice(request: KuzzleRequest): Promise<ApiGroupRemoveDeviceResult>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
2
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
3
|
+
import { BaseService, SearchParams } from "../shared";
|
|
4
|
+
import { KuzzleRequest } from "kuzzle";
|
|
5
|
+
import { AssetContent } from "../asset/types/AssetContent";
|
|
6
|
+
import { GroupContent } from "./exports";
|
|
7
|
+
import { DeviceContent } from "../device";
|
|
8
|
+
export declare class GroupsService extends BaseService {
|
|
9
|
+
constructor(plugin: DeviceManagerPlugin);
|
|
10
|
+
create(_id: string, engineId: string, metadata: JSONObject, model: string, name: string, path: string, request: KuzzleRequest): Promise<KDocument<GroupContent>>;
|
|
11
|
+
get(engineId: string, _id: string, request: KuzzleRequest): Promise<KDocument<GroupContent>>;
|
|
12
|
+
update(request: KuzzleRequest, _id: string, engineId: string, updateContent: JSONObject): Promise<KDocument<GroupContent>>;
|
|
13
|
+
delete(_id: string, engineId: string, request: KuzzleRequest): Promise<{
|
|
14
|
+
_id: string;
|
|
15
|
+
}>;
|
|
16
|
+
search(engineId: string, searchParams: SearchParams, request: KuzzleRequest): Promise<import("kuzzle-sdk").SearchResult<import("kuzzle-sdk").KHit<GroupContent>>>;
|
|
17
|
+
listItems(engineId: string, _id: string, includeChildren: boolean, options: {
|
|
18
|
+
from?: number;
|
|
19
|
+
size?: number;
|
|
20
|
+
}, request: KuzzleRequest): Promise<{
|
|
21
|
+
assets: {
|
|
22
|
+
hits: import("kuzzle-sdk").KHit<AssetContent<any, any>>[];
|
|
23
|
+
total: number;
|
|
24
|
+
};
|
|
25
|
+
devices: {
|
|
26
|
+
hits: import("kuzzle-sdk").KHit<DeviceContent<any, any>>[];
|
|
27
|
+
total: number;
|
|
28
|
+
};
|
|
29
|
+
}>;
|
|
30
|
+
addAsset(engineId: string, path: string, assetIds: string[], request: KuzzleRequest): Promise<{
|
|
31
|
+
group: KDocument<GroupContent>;
|
|
32
|
+
successes: {
|
|
33
|
+
_id: string;
|
|
34
|
+
_source: JSONObject;
|
|
35
|
+
_version: number;
|
|
36
|
+
}[];
|
|
37
|
+
errors: {
|
|
38
|
+
document: {
|
|
39
|
+
_id: string;
|
|
40
|
+
_source: JSONObject;
|
|
41
|
+
};
|
|
42
|
+
status: number;
|
|
43
|
+
reason: string;
|
|
44
|
+
}[];
|
|
45
|
+
}>;
|
|
46
|
+
removeAsset(engineId: string, path: string, assetIds: string[], request: KuzzleRequest): Promise<{
|
|
47
|
+
group: KDocument<GroupContent>;
|
|
48
|
+
successes: {
|
|
49
|
+
_id: string;
|
|
50
|
+
_source: JSONObject;
|
|
51
|
+
_version: number;
|
|
52
|
+
}[];
|
|
53
|
+
errors: {
|
|
54
|
+
document: {
|
|
55
|
+
_id: string;
|
|
56
|
+
_source: JSONObject;
|
|
57
|
+
};
|
|
58
|
+
status: number;
|
|
59
|
+
reason: string;
|
|
60
|
+
}[];
|
|
61
|
+
}>;
|
|
62
|
+
addDevice(engineId: string, path: string, deviceIds: string[], request: KuzzleRequest): Promise<{
|
|
63
|
+
group: KDocument<GroupContent>;
|
|
64
|
+
successes: {
|
|
65
|
+
_id: string;
|
|
66
|
+
_source: JSONObject;
|
|
67
|
+
_version: number;
|
|
68
|
+
}[];
|
|
69
|
+
errors: {
|
|
70
|
+
document: {
|
|
71
|
+
_id: string;
|
|
72
|
+
_source: JSONObject;
|
|
73
|
+
};
|
|
74
|
+
status: number;
|
|
75
|
+
reason: string;
|
|
76
|
+
}[];
|
|
77
|
+
}>;
|
|
78
|
+
removeDevice(engineId: string, path: string, deviceIds: string[], request: KuzzleRequest): Promise<{
|
|
79
|
+
group: KDocument<GroupContent>;
|
|
80
|
+
successes: {
|
|
81
|
+
_id: string;
|
|
82
|
+
_source: JSONObject;
|
|
83
|
+
_version: number;
|
|
84
|
+
}[];
|
|
85
|
+
errors: {
|
|
86
|
+
document: {
|
|
87
|
+
_id: string;
|
|
88
|
+
_source: JSONObject;
|
|
89
|
+
};
|
|
90
|
+
status: number;
|
|
91
|
+
reason: string;
|
|
92
|
+
}[];
|
|
93
|
+
}>;
|
|
94
|
+
}
|
package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.d.ts → group/roles/RoleGroupsAdmin.d.ts}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
2
2
|
/**
|
|
3
|
-
* This role allows to manage
|
|
3
|
+
* This role allows to manage groups and their models.
|
|
4
4
|
*
|
|
5
5
|
* It's a tenant role.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
*
|
|
9
|
-
"device-manager/
|
|
9
|
+
"device-manager/groups": {
|
|
10
10
|
actions: {
|
|
11
11
|
"*": true,
|
|
12
12
|
},
|
|
@@ -21,4 +21,4 @@ import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
*/
|
|
24
|
-
export declare const
|
|
24
|
+
export declare const RoleGroupsAdmin: KuzzleRole;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
2
2
|
/**
|
|
3
|
-
* This role allows to manage
|
|
3
|
+
* This role allows to manage groups and their models.
|
|
4
4
|
*
|
|
5
5
|
* It's a tenant role.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
*
|
|
9
|
-
"device-manager/
|
|
9
|
+
"device-manager/groups": {
|
|
10
10
|
actions: {
|
|
11
11
|
"*": true,
|
|
12
12
|
},
|
|
@@ -21,4 +21,4 @@ import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
*/
|
|
24
|
-
export declare const
|
|
24
|
+
export declare const RoleGroupsReader: KuzzleRole;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KDocumentContent } from "kuzzle-sdk";
|
|
2
|
+
import { Metadata } from "lib/modules/shared";
|
|
3
|
+
export interface GroupsBody<TMetadata extends Metadata = Metadata> extends KDocumentContent {
|
|
4
|
+
name: string;
|
|
5
|
+
model?: string | null;
|
|
6
|
+
path: string;
|
|
7
|
+
lastUpdate: number;
|
|
8
|
+
metadata?: TMetadata;
|
|
9
|
+
}
|
|
10
|
+
export type GroupContent<TMetadata extends Metadata = any> = GroupsBody<TMetadata>;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { JSONObject, KDocument, KHit, SearchResult, mUpdateResponse } from "kuzzle-sdk";
|
|
2
|
+
import { GroupsBody, GroupContent } from "./GroupContent";
|
|
3
|
+
import { DeviceContent } from "lib/modules/device";
|
|
4
|
+
import { AssetContent } from "lib/modules/asset";
|
|
5
|
+
type GroupsRequest = Omit<GroupsBody, "lastUpdate">;
|
|
6
|
+
export type GroupsBodyRequest = Partial<GroupsRequest>;
|
|
7
|
+
export type UpdateLinkResponse = mUpdateResponse & {
|
|
8
|
+
group: KDocument<GroupContent>;
|
|
9
|
+
};
|
|
10
|
+
interface GroupControllerRequest {
|
|
11
|
+
controller: "device-manager/groups";
|
|
12
|
+
engineId: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ApiGroupCreateRequest extends GroupControllerRequest {
|
|
15
|
+
action: "create";
|
|
16
|
+
_id?: string;
|
|
17
|
+
body: GroupsBodyRequest;
|
|
18
|
+
}
|
|
19
|
+
export type ApiGroupCreateResult = KDocument<GroupContent>;
|
|
20
|
+
export interface ApiGroupGetRequest extends GroupControllerRequest {
|
|
21
|
+
action: "get";
|
|
22
|
+
_id: string;
|
|
23
|
+
}
|
|
24
|
+
export type ApiGroupGetResult = KDocument<GroupContent>;
|
|
25
|
+
export interface ApiGroupUpdateRequest extends GroupControllerRequest {
|
|
26
|
+
action: "update";
|
|
27
|
+
_id: string;
|
|
28
|
+
body: GroupsBodyRequest;
|
|
29
|
+
}
|
|
30
|
+
export type ApiGroupUpdateResult = KDocument<GroupContent>;
|
|
31
|
+
export interface ApiGroupDeleteRequest extends GroupControllerRequest {
|
|
32
|
+
action: "delete";
|
|
33
|
+
_id: string;
|
|
34
|
+
}
|
|
35
|
+
export type ApiGroupDeleteResult = void;
|
|
36
|
+
export interface ApiGroupSearchRequest extends GroupControllerRequest {
|
|
37
|
+
action: "search";
|
|
38
|
+
from?: number;
|
|
39
|
+
size?: number;
|
|
40
|
+
scrollTTL?: string;
|
|
41
|
+
lang?: "koncorde" | "elasticsearch";
|
|
42
|
+
body: JSONObject;
|
|
43
|
+
}
|
|
44
|
+
export type ApiGroupSearchResult = SearchResult<KHit<GroupContent>>;
|
|
45
|
+
export interface ApiGroupListItemsRequest extends GroupControllerRequest {
|
|
46
|
+
action: "listItems";
|
|
47
|
+
from?: number;
|
|
48
|
+
size?: number;
|
|
49
|
+
body: {
|
|
50
|
+
includeChildren?: boolean;
|
|
51
|
+
};
|
|
52
|
+
_id: string;
|
|
53
|
+
}
|
|
54
|
+
export type ApiGroupListItemsResult = {
|
|
55
|
+
assets: {
|
|
56
|
+
hits: Array<KHit<AssetContent>>;
|
|
57
|
+
total: number;
|
|
58
|
+
};
|
|
59
|
+
devices: {
|
|
60
|
+
hits: Array<KHit<DeviceContent>>;
|
|
61
|
+
total: number;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export interface ApiGroupAddAssetsRequest extends GroupControllerRequest {
|
|
65
|
+
action: "addAsset";
|
|
66
|
+
body: {
|
|
67
|
+
path: string;
|
|
68
|
+
assetIds: string[];
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export type ApiGroupAddAssetsResult = UpdateLinkResponse;
|
|
72
|
+
export interface ApiGroupRemoveAssetsRequest extends GroupControllerRequest {
|
|
73
|
+
action: "removeAsset";
|
|
74
|
+
body: {
|
|
75
|
+
path: string;
|
|
76
|
+
assetIds: string[];
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export type ApiGroupRemoveAssetsResult = UpdateLinkResponse;
|
|
80
|
+
export interface ApiGroupAddDeviceRequest extends GroupControllerRequest {
|
|
81
|
+
action: "addDevice";
|
|
82
|
+
body: {
|
|
83
|
+
path: string;
|
|
84
|
+
deviceIds: string[];
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export type ApiGroupAddDevicesResult = UpdateLinkResponse;
|
|
88
|
+
export interface ApiGroupRemoveDeviceRequest extends GroupControllerRequest {
|
|
89
|
+
action: "removeDevice";
|
|
90
|
+
body: {
|
|
91
|
+
path: string;
|
|
92
|
+
deviceIds: string[];
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export type ApiGroupRemoveDeviceResult = UpdateLinkResponse;
|
|
96
|
+
export {};
|
|
@@ -37,7 +37,7 @@ export declare const measuresMappings: {
|
|
|
37
37
|
};
|
|
38
38
|
groups: {
|
|
39
39
|
properties: {
|
|
40
|
-
|
|
40
|
+
path: {
|
|
41
41
|
type: string;
|
|
42
42
|
fields: {
|
|
43
43
|
text: {
|
|
@@ -50,14 +50,6 @@ export declare const measuresMappings: {
|
|
|
50
50
|
};
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
|
-
softTenant: {
|
|
54
|
-
type: string;
|
|
55
|
-
fields: {
|
|
56
|
-
text: {
|
|
57
|
-
type: string;
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
53
|
};
|
|
62
54
|
};
|
|
63
55
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SchemaObject } from "ajv";
|
|
2
2
|
import { JSONObject } from "kuzzle-sdk";
|
|
3
|
+
import { LocaleDetails } from "lib/modules/model";
|
|
3
4
|
interface MeasureLocales {
|
|
4
5
|
[localeString: string]: {
|
|
5
6
|
friendlyName: string;
|
|
@@ -44,6 +45,9 @@ export interface MeasureValuesDetails {
|
|
|
44
45
|
*}
|
|
45
46
|
*/
|
|
46
47
|
export interface MeasureDefinition {
|
|
48
|
+
locales?: {
|
|
49
|
+
[valueName: string]: LocaleDetails;
|
|
50
|
+
};
|
|
47
51
|
/**
|
|
48
52
|
* Mappings for the measurement values in order to index the fields
|
|
49
53
|
*/
|
|
@@ -2,7 +2,7 @@ import { KuzzleRequest } from "kuzzle";
|
|
|
2
2
|
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
3
3
|
import { DeviceManagerPlugin } from "../plugin";
|
|
4
4
|
import { BaseService, SearchParams } from "../shared";
|
|
5
|
-
import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
5
|
+
import { AssetModelContent, DeviceModelContent, GroupModelContent, LocaleDetails, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
6
6
|
import { SchemaObject } from "ajv";
|
|
7
7
|
import { MeasureValuesDetails } from "../measure";
|
|
8
8
|
import { NamedMeasures } from "../decoder";
|
|
@@ -10,26 +10,38 @@ export declare class ModelService extends BaseService {
|
|
|
10
10
|
constructor(plugin: DeviceManagerPlugin);
|
|
11
11
|
registerAskEvents(): void;
|
|
12
12
|
private checkModelsConflicts;
|
|
13
|
-
writeAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures, tooltipModels: TooltipModels): Promise<KDocument<AssetModelContent>>;
|
|
14
13
|
private checkDefaultValues;
|
|
14
|
+
private checkGroupAffinity;
|
|
15
|
+
writeAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures, tooltipModels: TooltipModels, locales: {
|
|
16
|
+
[valueName: string]: LocaleDetails;
|
|
17
|
+
}): Promise<KDocument<AssetModelContent>>;
|
|
15
18
|
writeDevice(model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures): Promise<KDocument<DeviceModelContent>>;
|
|
16
|
-
|
|
19
|
+
writeGroup(engineGroup: string, model: string, affinity: JSONObject, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups): Promise<KDocument<GroupModelContent>>;
|
|
20
|
+
writeMeasure(type: string, valuesMappings: JSONObject, validationSchema?: SchemaObject, valuesDetails?: MeasureValuesDetails, locales?: {
|
|
21
|
+
[valueName: string]: LocaleDetails;
|
|
22
|
+
}): Promise<KDocument<MeasureModelContent>>;
|
|
17
23
|
deleteAsset(_id: string): Promise<void>;
|
|
18
24
|
deleteDevice(_id: string): Promise<void>;
|
|
25
|
+
deleteGroup(_id: string): Promise<void>;
|
|
19
26
|
deleteMeasure(_id: string): Promise<void>;
|
|
20
27
|
listAsset(engineGroup: string): Promise<KDocument<AssetModelContent>[]>;
|
|
21
28
|
listDevices(): Promise<KDocument<DeviceModelContent>[]>;
|
|
29
|
+
listGroups(engineGroup: string): Promise<KDocument<GroupModelContent>[]>;
|
|
22
30
|
listMeasures(): Promise<KDocument<MeasureModelContent>[]>;
|
|
23
31
|
searchAssets(engineGroup: string, searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<AssetModelContent>>>;
|
|
24
32
|
searchDevices(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<DeviceModelContent>>>;
|
|
33
|
+
searchGroups(engineGroup: string, searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<GroupModelContent>>>;
|
|
25
34
|
searchMeasures(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<MeasureModelContent>>>;
|
|
26
35
|
assetExists(model: string): Promise<boolean>;
|
|
27
36
|
deviceExists(model: string): Promise<boolean>;
|
|
28
37
|
getAsset(engineGroup: string, model: string): Promise<KDocument<AssetModelContent>>;
|
|
29
38
|
getDevice(model: string): Promise<KDocument<DeviceModelContent>>;
|
|
39
|
+
getGroup(model: string): Promise<KDocument<GroupModelContent>>;
|
|
30
40
|
getMeasure(type: string): Promise<KDocument<MeasureModelContent>>;
|
|
31
41
|
/**
|
|
32
42
|
* Update an asset model
|
|
33
43
|
*/
|
|
34
|
-
updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels,
|
|
44
|
+
updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, locales: {
|
|
45
|
+
[valueName: string]: LocaleDetails;
|
|
46
|
+
}, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
|
|
35
47
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TwinModelContent, TwinType } from "../plugin";
|
|
2
|
-
import { MeasureModelContent } from "./exports";
|
|
2
|
+
import { GroupModelContent, MeasureModelContent } from "./exports";
|
|
3
3
|
export type ConflictChunk = {
|
|
4
4
|
sourceModel: string;
|
|
5
5
|
newModel: string;
|
|
@@ -20,6 +20,14 @@ export type MappingsConflict = {
|
|
|
20
20
|
* @returns An array of ConflictChunk between current twins and the new twin
|
|
21
21
|
*/
|
|
22
22
|
export declare function getTwinConflicts<TDigitalTwin extends TwinModelContent>(twinType: TwinType, models: TDigitalTwin[], additional: TDigitalTwin): ConflictChunk[];
|
|
23
|
+
/**
|
|
24
|
+
* Return every conflicts between the mappings of group models and a new group model
|
|
25
|
+
*
|
|
26
|
+
* @param groups The already present group models
|
|
27
|
+
* @param additional The new group model
|
|
28
|
+
* @returns An array of ConflictChunk between current groups and the new group
|
|
29
|
+
*/
|
|
30
|
+
export declare function getGroupConflicts(measures: GroupModelContent[], additional: GroupModelContent): ConflictChunk[];
|
|
23
31
|
/**
|
|
24
32
|
* Return every conflicts between the mappings of measure models and a new measure model
|
|
25
33
|
*
|
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { ModelService } from "./ModelService";
|
|
3
|
-
import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelUpdateAssetResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult, ApiModelSearchAssetsResult, ApiModelSearchDevicesResult, ApiModelSearchMeasuresResult } from "./types/ModelApi";
|
|
3
|
+
import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelUpdateAssetResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult, ApiModelSearchAssetsResult, ApiModelSearchDevicesResult, ApiModelSearchMeasuresResult, ApiModelDeleteGroupResult, ApiModelGetGroupResult, ApiModelListGroupsResult, ApiModelSearchGroupsResult, ApiModelWriteGroupResult } from "./types/ModelApi";
|
|
4
4
|
export declare class ModelsController {
|
|
5
5
|
private modelService;
|
|
6
6
|
definition: ControllerDefinition;
|
|
7
7
|
constructor(modelService: ModelService);
|
|
8
8
|
getAsset(request: KuzzleRequest): Promise<ApiModelGetAssetResult>;
|
|
9
9
|
getDevice(request: KuzzleRequest): Promise<ApiModelGetDeviceResult>;
|
|
10
|
+
getGroup(request: KuzzleRequest): Promise<ApiModelGetGroupResult>;
|
|
10
11
|
getMeasure(request: KuzzleRequest): Promise<ApiModelGetMeasureResult>;
|
|
11
12
|
writeAsset(request: KuzzleRequest): Promise<ApiModelWriteAssetResult>;
|
|
12
13
|
writeDevice(request: KuzzleRequest): Promise<ApiModelWriteDeviceResult>;
|
|
14
|
+
writeGroup(request: KuzzleRequest): Promise<ApiModelWriteGroupResult>;
|
|
13
15
|
writeMeasure(request: KuzzleRequest): Promise<ApiModelWriteMeasureResult>;
|
|
14
16
|
deleteAsset(request: KuzzleRequest): Promise<ApiModelDeleteAssetResult>;
|
|
15
17
|
deleteDevice(request: KuzzleRequest): Promise<ApiModelDeleteDeviceResult>;
|
|
18
|
+
deleteGroup(request: KuzzleRequest): Promise<ApiModelDeleteGroupResult>;
|
|
16
19
|
deleteMeasure(request: KuzzleRequest): Promise<ApiModelDeleteMeasureResult>;
|
|
17
20
|
listAssets(request: KuzzleRequest): Promise<ApiModelListAssetsResult>;
|
|
18
21
|
listDevices(): Promise<ApiModelListDevicesResult>;
|
|
22
|
+
listGroups(request: KuzzleRequest): Promise<ApiModelListGroupsResult>;
|
|
19
23
|
listMeasures(): Promise<ApiModelListMeasuresResult>;
|
|
20
24
|
searchAssets(request: KuzzleRequest): Promise<ApiModelSearchAssetsResult>;
|
|
21
25
|
searchDevices(request: KuzzleRequest): Promise<ApiModelSearchDevicesResult>;
|
|
26
|
+
searchGroups(request: KuzzleRequest): Promise<ApiModelSearchGroupsResult>;
|
|
22
27
|
searchMeasures(request: KuzzleRequest): Promise<ApiModelSearchMeasuresResult>;
|
|
23
28
|
updateAsset(request: KuzzleRequest): Promise<ApiModelUpdateAssetResult>;
|
|
24
29
|
}
|