kuzzle-device-manager-types 2.11.0-dev.1 → 3.0.0-3-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/lib/modules/asset/AssetModule.d.ts +1 -4
- package/dist/lib/modules/asset/AssetService.d.ts +7 -4
- package/dist/lib/modules/asset/AssetsController.d.ts +25 -7
- 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 +124 -9
- package/dist/lib/modules/asset/types/AssetContent.d.ts +9 -16
- package/dist/lib/modules/asset/types/AssetHistoryContent.d.ts +4 -11
- package/dist/lib/modules/decoder/DecodedPayload.d.ts +2 -0
- package/dist/lib/modules/decoder/Decoder.d.ts +1 -1
- package/dist/lib/modules/decoder/DecodersController.d.ts +4 -1
- package/dist/lib/modules/decoder/PayloadService.d.ts +1 -0
- package/dist/lib/modules/device/DeviceService.d.ts +6 -47
- package/dist/lib/modules/device/DevicesController.d.ts +5 -5
- package/dist/lib/modules/device/collections/deviceMappings.d.ts +6 -0
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +2 -2
- package/dist/lib/modules/device/types/DeviceApi.d.ts +69 -41
- package/dist/lib/modules/device/types/DeviceContent.d.ts +56 -5
- package/dist/lib/modules/device/types/DeviceEvents.d.ts +9 -24
- package/dist/lib/modules/group/GroupsController.d.ts +37 -0
- package/dist/lib/modules/group/GroupsModule.d.ts +10 -0
- package/dist/lib/modules/group/GroupsService.d.ts +118 -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 +141 -0
- package/dist/lib/modules/measure/MeasureService.d.ts +11 -43
- package/dist/lib/modules/measure/MeasureSourcesBuilder.d.ts +1 -2
- package/dist/lib/modules/measure/MeasureTargetBuilder.d.ts +1 -1
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +2 -91
- package/dist/lib/modules/measure/exports.d.ts +0 -1
- package/dist/lib/modules/measure/index.d.ts +0 -1
- package/dist/lib/modules/measure/types/MeasureContent.d.ts +9 -2
- package/dist/lib/modules/measure/types/MeasureEvents.d.ts +6 -149
- package/dist/lib/modules/measure/types/MeasureSources.d.ts +5 -0
- package/dist/lib/modules/measure/types/MeasureTarget.d.ts +1 -1
- package/dist/lib/modules/model/ModelService.d.ts +20 -14
- package/dist/lib/modules/model/ModelsController.d.ts +1 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +6 -5
- package/dist/lib/modules/model/types/ModelApi.d.ts +14 -9
- package/dist/lib/modules/model/types/ModelContent.d.ts +34 -3
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +6 -2
- package/dist/lib/modules/model/types/ModelEvents.d.ts +3 -1
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +15 -6
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +10 -8
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +9 -14
- 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/services/AbstractExporter.d.ts +3 -1
- package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +6 -1
- package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +70 -2
- package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +4 -5
- package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +30 -0
- package/dist/tests/application/assets/Container.d.ts +3 -2
- package/dist/tests/application/decoders/DummyTempDecoder.d.ts +10 -0
- package/dist/tests/application/decoders/DummyTempPositionDecoder.d.ts +10 -0
- package/dist/tests/application/decoders/EmptyTempDecoder.d.ts +8 -0
- package/dist/tests/application/devices/EmptyTemp.d.ts +2 -0
- package/dist/tests/application/devices/index.d.ts +1 -0
- 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 +2 -2
- package/dist/tests/application/groups/index.d.ts +2 -0
- package/dist/tests/application/measures/BatteryMeasure.d.ts +5 -0
- package/dist/tests/application/measures/HumidityMeasure.d.ts +5 -0
- package/dist/tests/application/measures/MovementMeasure.d.ts +5 -0
- package/dist/{lib/modules/measure → tests/application}/measures/PositionMeasure.d.ts +2 -2
- package/dist/tests/application/measures/TemperatureMeasure.d.ts +5 -0
- package/dist/tests/application/measures/index.d.ts +5 -0
- package/dist/tests/application/tests/controller.d.ts +0 -1
- package/package.json +1 -1
- package/dist/lib/modules/asset/AssetsGroupsController.d.ts +0 -24
- package/dist/lib/modules/asset/AssetsGroupsService.d.ts +0 -49
- package/dist/lib/modules/asset/collections/assetsGroupsMapping.d.ts +0 -2
- package/dist/lib/modules/asset/types/AssetGroupContent.d.ts +0 -11
- package/dist/lib/modules/asset/types/AssetGroupsApi.d.ts +0 -59
- package/dist/lib/modules/measure/measures/BatteryMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/HumidityMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/MovementMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/TemperatureMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/index.d.ts +0 -5
|
@@ -1,50 +1,27 @@
|
|
|
1
|
-
import { JSONObject
|
|
2
|
-
import { DeviceContent } from "../device";
|
|
1
|
+
import { JSONObject } from "kuzzle";
|
|
3
2
|
import { DeviceManagerPlugin } from "../plugin";
|
|
4
|
-
import { BaseService
|
|
3
|
+
import { BaseService } from "../shared";
|
|
5
4
|
import { DecodedMeasurement } from "./types/MeasureContent";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { MeasureSource } from "./types/MeasureSources";
|
|
6
|
+
import { MeasureTarget } from "./types/MeasureTarget";
|
|
8
7
|
import { KuzzleLogger } from "kuzzle-logger";
|
|
9
8
|
export declare class MeasureService extends BaseService {
|
|
10
9
|
readonly logger: KuzzleLogger;
|
|
11
10
|
constructor(plugin: DeviceManagerPlugin, logger: KuzzleLogger);
|
|
12
11
|
/**
|
|
13
|
-
* Register new measures
|
|
12
|
+
* Register new measures updates :
|
|
14
13
|
* - asset
|
|
15
14
|
* - engine measures
|
|
16
15
|
*
|
|
17
16
|
* This method represents the ingestion pipeline:
|
|
18
17
|
* - trigger events `before` (measure enrichment)
|
|
19
|
-
* - save documents (measures
|
|
18
|
+
* - save documents (measures & device metadata)
|
|
20
19
|
* - trigger events `after`
|
|
21
20
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* - engine device
|
|
27
|
-
* - linked asset
|
|
28
|
-
* - engine measures
|
|
29
|
-
*
|
|
30
|
-
* A mutex ensure that a device can ingest one measure at a time.
|
|
31
|
-
*
|
|
32
|
-
* This method represents the ingestion pipeline:
|
|
33
|
-
* - build measures documents and update digital twins (device and asset)
|
|
34
|
-
* - trigger events `before` (measure enrichment)
|
|
35
|
-
* - save documents (measures, device and asset)
|
|
36
|
-
* - trigger events `after`
|
|
37
|
-
*
|
|
38
|
-
* @deprecated
|
|
39
|
-
*/
|
|
40
|
-
ingest(device: KDocument<DeviceContent>, measurements: DecodedMeasurement<JSONObject>[], metadata: Metadata, payloadUuids: string[]): Promise<void>;
|
|
41
|
-
private updateDeviceMeasures;
|
|
42
|
-
/**
|
|
43
|
-
* Update asset with each non-null non-computed measures.
|
|
44
|
-
*
|
|
45
|
-
* @returns A map of each asset state by measuredAt timestamp.
|
|
46
|
-
*/
|
|
47
|
-
private updateAssetMeasures;
|
|
21
|
+
ingest(source: MeasureSource, target: MeasureTarget, measurements: DecodedMeasurement<JSONObject>[], payloadUuids: string[]): Promise<void>;
|
|
22
|
+
private buildDeviceMeasures;
|
|
23
|
+
private ingestDeviceMeasures;
|
|
24
|
+
private ingestApiMeasures;
|
|
48
25
|
/**
|
|
49
26
|
* Build the measures document received from the API
|
|
50
27
|
*
|
|
@@ -52,14 +29,10 @@ export declare class MeasureService extends BaseService {
|
|
|
52
29
|
* @param asset The target asset to build the measure for
|
|
53
30
|
* @param measure The decoded raw measures
|
|
54
31
|
* @param payloadUuids The uuid's of the payloads used to create the measure
|
|
55
|
-
*
|
|
32
|
+
* @param engineGroup engineGroup of model
|
|
56
33
|
* @returns A MeasurementContent builded from parameters
|
|
57
34
|
*/
|
|
58
35
|
private buildApiMeasures;
|
|
59
|
-
/**
|
|
60
|
-
* Build the measures documents to save
|
|
61
|
-
*/
|
|
62
|
-
private buildMeasures;
|
|
63
36
|
/**
|
|
64
37
|
* Find an asset by its ID and its engine ID.
|
|
65
38
|
*
|
|
@@ -89,9 +62,4 @@ export declare class MeasureService extends BaseService {
|
|
|
89
62
|
* @throws If the device is not linked to the asset
|
|
90
63
|
*/
|
|
91
64
|
private findAssetMeasureNameFromDevice;
|
|
92
|
-
private mutexUpdateAsset;
|
|
93
|
-
/**
|
|
94
|
-
* Create a new document in the collection asset-history, for each asset state
|
|
95
|
-
*/
|
|
96
|
-
private historizeAssetStates;
|
|
97
65
|
}
|
|
@@ -6,5 +6,4 @@ export declare const enum DATA_SOURCE_METADATA_TYPE {
|
|
|
6
6
|
DEVICE = "device"
|
|
7
7
|
}
|
|
8
8
|
export declare function apiSourceToOriginApi(source: ApiMeasureSource, payloadUuids: string[]): MeasureOriginApi;
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function deviceSourceToOriginDevice(source: DeviceMeasureSource, measureName: string, payloadUuids: string[]): MeasureOriginDevice;
|
|
9
|
+
export declare function deviceSourceToOriginDevice(source: DeviceMeasureSource, measureName: string, payloadUuids: string[], deviceMetadata: Metadata): MeasureOriginDevice;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ApiMeasureTarget, DeviceMeasureTarget } from "./types/MeasureTarget";
|
|
2
|
-
export declare function toApiTarget(indexId: string, assetId: string,
|
|
2
|
+
export declare function toApiTarget(indexId: string, assetId: string, engineGroups?: string[]): ApiMeasureTarget;
|
|
3
3
|
export declare function toDeviceTarget(indexId: string, assetId?: string): DeviceMeasureTarget;
|
|
@@ -1,96 +1,7 @@
|
|
|
1
|
+
import { CollectionMappings } from "kuzzle-sdk";
|
|
1
2
|
/**
|
|
2
3
|
* Base mappings for the "measures" collection.
|
|
3
4
|
*
|
|
4
5
|
* Those mappings does not contains the `values` mappings and `asset.metadata` mappings.
|
|
5
6
|
*/
|
|
6
|
-
export declare const measuresMappings:
|
|
7
|
-
dynamic: string;
|
|
8
|
-
properties: {
|
|
9
|
-
type: {
|
|
10
|
-
type: string;
|
|
11
|
-
};
|
|
12
|
-
values: {
|
|
13
|
-
properties: {};
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Micro Timestamp of the measurement time.
|
|
17
|
-
*/
|
|
18
|
-
measuredAt: {
|
|
19
|
-
type: string;
|
|
20
|
-
};
|
|
21
|
-
asset: {
|
|
22
|
-
properties: {
|
|
23
|
-
_id: {
|
|
24
|
-
type: string;
|
|
25
|
-
};
|
|
26
|
-
model: {
|
|
27
|
-
type: string;
|
|
28
|
-
};
|
|
29
|
-
reference: {
|
|
30
|
-
type: string;
|
|
31
|
-
};
|
|
32
|
-
measureName: {
|
|
33
|
-
type: string;
|
|
34
|
-
};
|
|
35
|
-
metadata: {
|
|
36
|
-
properties: {};
|
|
37
|
-
};
|
|
38
|
-
groups: {
|
|
39
|
-
properties: {
|
|
40
|
-
id: {
|
|
41
|
-
type: string;
|
|
42
|
-
fields: {
|
|
43
|
-
text: {
|
|
44
|
-
type: string;
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
date: {
|
|
49
|
-
type: string;
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
softTenant: {
|
|
54
|
-
type: string;
|
|
55
|
-
fields: {
|
|
56
|
-
text: {
|
|
57
|
-
type: string;
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Define the origin of the measure.
|
|
65
|
-
*/
|
|
66
|
-
origin: {
|
|
67
|
-
properties: {
|
|
68
|
-
type: {
|
|
69
|
-
type: string;
|
|
70
|
-
};
|
|
71
|
-
measureName: {
|
|
72
|
-
type: string;
|
|
73
|
-
};
|
|
74
|
-
deviceMetadata: {
|
|
75
|
-
properties: {};
|
|
76
|
-
};
|
|
77
|
-
apiMetadata: {
|
|
78
|
-
dynamic: string;
|
|
79
|
-
properties: {};
|
|
80
|
-
};
|
|
81
|
-
payloadUuids: {
|
|
82
|
-
type: string;
|
|
83
|
-
};
|
|
84
|
-
deviceModel: {
|
|
85
|
-
type: string;
|
|
86
|
-
};
|
|
87
|
-
reference: {
|
|
88
|
-
type: string;
|
|
89
|
-
};
|
|
90
|
-
_id: {
|
|
91
|
-
type: string;
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
};
|
|
7
|
+
export declare const measuresMappings: CollectionMappings;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from "./types/MeasureEvents";
|
|
2
2
|
export * from "./types/MeasureContent";
|
|
3
3
|
export * from "./types/MeasureDefinition";
|
|
4
|
-
export * from "./measures";
|
|
5
4
|
export * from "./roles/RoleMeasuresAdmin";
|
|
6
5
|
export * from "./roles/RoleMeasuresReader";
|
|
7
6
|
export * from "./collections/measuresMappings";
|
|
@@ -2,7 +2,6 @@ export * from "./collections/measuresMappings";
|
|
|
2
2
|
export * from "./types/MeasureEvents";
|
|
3
3
|
export * from "./types/MeasureContent";
|
|
4
4
|
export * from "./types/MeasureDefinition";
|
|
5
|
-
export * from "./measures";
|
|
6
5
|
export * from "./MeasureModule";
|
|
7
6
|
export * from "./roles/RoleMeasuresAdmin";
|
|
8
7
|
export * from "./roles/RoleMeasuresReader";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSONObject, KDocumentContent } from "kuzzle-sdk";
|
|
2
|
-
import { Metadata } from "
|
|
3
|
-
import { AssetMeasureContext } from "
|
|
2
|
+
import { Metadata } from "../../shared";
|
|
3
|
+
import { AssetMeasureContext } from "../../asset";
|
|
4
4
|
interface AbstractMeasureOrigin {
|
|
5
5
|
/**
|
|
6
6
|
* Origin of the measure
|
|
@@ -35,6 +35,13 @@ export interface MeasureOriginDevice extends AbstractMeasureOrigin {
|
|
|
35
35
|
* Origin device metadata
|
|
36
36
|
*/
|
|
37
37
|
deviceMetadata?: Metadata;
|
|
38
|
+
/**
|
|
39
|
+
* Origin device groups
|
|
40
|
+
*/
|
|
41
|
+
groups: Array<{
|
|
42
|
+
path: string;
|
|
43
|
+
date: number;
|
|
44
|
+
}>;
|
|
38
45
|
/**
|
|
39
46
|
* Device ID
|
|
40
47
|
*/
|
|
@@ -1,25 +1,8 @@
|
|
|
1
|
-
import { JSONObject
|
|
2
|
-
import {
|
|
3
|
-
import { AssetContent } from "../../../modules/asset";
|
|
4
|
-
import { Metadata } from "../../../modules/shared";
|
|
1
|
+
import { JSONObject } from "kuzzle-sdk";
|
|
2
|
+
import { AssetContent } from "../../asset";
|
|
5
3
|
import { DecodedMeasurement, MeasureContent } from "./MeasureContent";
|
|
6
4
|
import { MeasureSource } from "./MeasureSources";
|
|
7
5
|
import { MeasureTarget } from "./MeasureTarget";
|
|
8
|
-
/**
|
|
9
|
-
* @internal
|
|
10
|
-
*
|
|
11
|
-
* @deprecated Replaced by new Ask implementing data sources
|
|
12
|
-
*/
|
|
13
|
-
export type AskMeasureIngest = {
|
|
14
|
-
name: "device-manager:measures:ingest";
|
|
15
|
-
payload: {
|
|
16
|
-
device: KDocument<DeviceContent>;
|
|
17
|
-
measurements: DecodedMeasurement<JSONObject>[];
|
|
18
|
-
metadata: Metadata;
|
|
19
|
-
payloadUuids: string[];
|
|
20
|
-
};
|
|
21
|
-
result: void;
|
|
22
|
-
};
|
|
23
6
|
/**
|
|
24
7
|
* @internal
|
|
25
8
|
*/
|
|
@@ -34,29 +17,12 @@ export type AskMeasureSourceIngest = {
|
|
|
34
17
|
result: void;
|
|
35
18
|
};
|
|
36
19
|
/**
|
|
37
|
-
* Event before starting to process new measures.
|
|
20
|
+
* Event before starting to process new measures from data source.
|
|
38
21
|
*
|
|
39
22
|
* Useful to enrich measures before they are saved.
|
|
40
|
-
*
|
|
41
|
-
* @deprecated Replaced by new triggers implementing data sources
|
|
42
23
|
*/
|
|
43
24
|
export type EventMeasureProcessBefore = {
|
|
44
25
|
name: "device-manager:measures:process:before";
|
|
45
|
-
args: [
|
|
46
|
-
{
|
|
47
|
-
asset: KDocument<AssetContent>;
|
|
48
|
-
device: KDocument<DeviceContent>;
|
|
49
|
-
measures: MeasureContent[];
|
|
50
|
-
}
|
|
51
|
-
];
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Event before starting to process new measures from data source.
|
|
55
|
-
*
|
|
56
|
-
* Useful to enrich measures before they are saved.
|
|
57
|
-
*/
|
|
58
|
-
export type EventMeasureProcessSourceBefore = {
|
|
59
|
-
name: "device-manager:measures:process:sourceBefore";
|
|
60
26
|
args: [
|
|
61
27
|
{
|
|
62
28
|
source: MeasureSource;
|
|
@@ -67,60 +33,12 @@ export type EventMeasureProcessSourceBefore = {
|
|
|
67
33
|
];
|
|
68
34
|
};
|
|
69
35
|
/**
|
|
70
|
-
* Tenant event before starting to process new measures.
|
|
36
|
+
* Tenant event before starting to process new measures from data source.
|
|
71
37
|
*
|
|
72
38
|
* Useful to enrich measures before they are saved.
|
|
73
|
-
*
|
|
74
|
-
* @deprecated Replaced by new triggers implementing data sources
|
|
75
39
|
*/
|
|
76
40
|
export type TenantEventMeasureProcessBefore = {
|
|
77
41
|
name: `engine:${string}:device-manager:measures:process:before`;
|
|
78
|
-
args: [
|
|
79
|
-
{
|
|
80
|
-
asset: KDocument<AssetContent>;
|
|
81
|
-
device: KDocument<DeviceContent>;
|
|
82
|
-
measures: MeasureContent[];
|
|
83
|
-
}
|
|
84
|
-
];
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Tenant event before starting to process new measures from data source.
|
|
88
|
-
*
|
|
89
|
-
* Useful to enrich measures before they are saved.
|
|
90
|
-
*/
|
|
91
|
-
export type TenantEventMeasureProcessSourceBefore = {
|
|
92
|
-
name: `engine:${string}:device-manager:measures:process:sourceBefore`;
|
|
93
|
-
args: [
|
|
94
|
-
{
|
|
95
|
-
source: MeasureSource;
|
|
96
|
-
target: MeasureTarget;
|
|
97
|
-
asset?: AssetContent;
|
|
98
|
-
measures: MeasureContent[];
|
|
99
|
-
}
|
|
100
|
-
];
|
|
101
|
-
};
|
|
102
|
-
/**
|
|
103
|
-
* Event triggered after updating device and asset with new measures but
|
|
104
|
-
* before persistence in database.
|
|
105
|
-
*
|
|
106
|
-
* @deprecated Replaced by new triggers implementing data sources
|
|
107
|
-
*/
|
|
108
|
-
export type EventMeasurePersistBefore = {
|
|
109
|
-
name: "device-manager:measures:persist:before";
|
|
110
|
-
args: [
|
|
111
|
-
{
|
|
112
|
-
asset: KDocument<AssetContent>;
|
|
113
|
-
device: KDocument<DeviceContent>;
|
|
114
|
-
measures: MeasureContent[];
|
|
115
|
-
}
|
|
116
|
-
];
|
|
117
|
-
};
|
|
118
|
-
/**
|
|
119
|
-
* Event triggered after updating the data source and asset with new measures but
|
|
120
|
-
* before persistence in database.
|
|
121
|
-
*/
|
|
122
|
-
export type EventMeasurePersistSourceBefore = {
|
|
123
|
-
name: "device-manager:measures:persist:sourceBefore";
|
|
124
42
|
args: [
|
|
125
43
|
{
|
|
126
44
|
source: MeasureSource;
|
|
@@ -131,56 +49,10 @@ export type EventMeasurePersistSourceBefore = {
|
|
|
131
49
|
];
|
|
132
50
|
};
|
|
133
51
|
/**
|
|
134
|
-
*
|
|
135
|
-
* before persistence in database.
|
|
136
|
-
*
|
|
137
|
-
* @deprecated Replaced by new triggers implementing data sources
|
|
138
|
-
*/
|
|
139
|
-
export type TenantEventMeasurePersistBefore = {
|
|
140
|
-
name: `engine:${string}:device-manager:measures:persist:before`;
|
|
141
|
-
args: [
|
|
142
|
-
{
|
|
143
|
-
asset: KDocument<AssetContent>;
|
|
144
|
-
device: KDocument<DeviceContent>;
|
|
145
|
-
measures: MeasureContent[];
|
|
146
|
-
}
|
|
147
|
-
];
|
|
148
|
-
};
|
|
149
|
-
/**
|
|
150
|
-
* Tenant event triggered after updating the data source and asset with new measures but
|
|
151
|
-
* before persistence in database.
|
|
152
|
-
*/
|
|
153
|
-
export type TenantEventMeasurePersistSourceBefore = {
|
|
154
|
-
name: `engine:${string}:device-manager:measures:persist:sourceBefore`;
|
|
155
|
-
args: [
|
|
156
|
-
{
|
|
157
|
-
source: MeasureSource;
|
|
158
|
-
target: MeasureTarget;
|
|
159
|
-
asset?: AssetContent;
|
|
160
|
-
measures: MeasureContent[];
|
|
161
|
-
}
|
|
162
|
-
];
|
|
163
|
-
};
|
|
164
|
-
/**
|
|
165
|
-
* Event after processing new measures.
|
|
166
|
-
*
|
|
167
|
-
* @deprecated Replaced by new triggers implementing data sources
|
|
52
|
+
* Event after processing new measures from data source.
|
|
168
53
|
*/
|
|
169
54
|
export type EventMeasureProcessAfter = {
|
|
170
55
|
name: "device-manager:measures:process:after";
|
|
171
|
-
args: [
|
|
172
|
-
{
|
|
173
|
-
asset: KDocument<AssetContent>;
|
|
174
|
-
device: KDocument<DeviceContent>;
|
|
175
|
-
measures: MeasureContent[];
|
|
176
|
-
}
|
|
177
|
-
];
|
|
178
|
-
};
|
|
179
|
-
/**
|
|
180
|
-
* Event after processing new measures from data source.
|
|
181
|
-
*/
|
|
182
|
-
export type EventMeasureProcessSourceAfter = {
|
|
183
|
-
name: "device-manager:measures:process:sourceAfter";
|
|
184
56
|
args: [
|
|
185
57
|
{
|
|
186
58
|
source: MeasureSource;
|
|
@@ -191,26 +63,11 @@ export type EventMeasureProcessSourceAfter = {
|
|
|
191
63
|
];
|
|
192
64
|
};
|
|
193
65
|
/**
|
|
194
|
-
* Tenant event after processing new measures.
|
|
66
|
+
* Tenant event after processing new measures from data source.
|
|
195
67
|
*
|
|
196
|
-
* @deprecated Replaced by new triggers implementing data sources
|
|
197
68
|
*/
|
|
198
69
|
export type TenantEventMeasureProcessAfter = {
|
|
199
70
|
name: `engine:${string}:device-manager:measures:process:after`;
|
|
200
|
-
args: [
|
|
201
|
-
{
|
|
202
|
-
asset: KDocument<AssetContent>;
|
|
203
|
-
device: KDocument<DeviceContent>;
|
|
204
|
-
measures: MeasureContent[];
|
|
205
|
-
}
|
|
206
|
-
];
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* Tenant event after processing new measures from data source.
|
|
210
|
-
*
|
|
211
|
-
*/
|
|
212
|
-
export type TenantEventMeasureProcessSourceAfter = {
|
|
213
|
-
name: `engine:${string}:device-manager:measures:process:sourceAfter`;
|
|
214
71
|
args: [
|
|
215
72
|
{
|
|
216
73
|
source: MeasureSource;
|
|
@@ -7,8 +7,13 @@ interface AbstractMeasureSource {
|
|
|
7
7
|
export interface DeviceMeasureSource extends AbstractMeasureSource {
|
|
8
8
|
type: "device";
|
|
9
9
|
reference: string;
|
|
10
|
+
deviceMetadata: Metadata;
|
|
10
11
|
model: string;
|
|
11
12
|
lastMeasuredAt?: number;
|
|
13
|
+
groups: Array<{
|
|
14
|
+
path: string;
|
|
15
|
+
date: number;
|
|
16
|
+
}>;
|
|
12
17
|
}
|
|
13
18
|
export interface ApiMeasureSource extends AbstractMeasureSource {
|
|
14
19
|
type: "api";
|
|
@@ -9,7 +9,7 @@ export interface DeviceMeasureTarget extends AbstractMeasureTarget {
|
|
|
9
9
|
export interface ApiMeasureTarget extends AbstractMeasureTarget {
|
|
10
10
|
type: "api";
|
|
11
11
|
assetId: string;
|
|
12
|
-
|
|
12
|
+
engineGroups?: string[];
|
|
13
13
|
}
|
|
14
14
|
export declare function isTarget(target: any): target is AbstractMeasureTarget;
|
|
15
15
|
export declare function isTargetDevice(target: any): target is DeviceMeasureTarget;
|
|
@@ -12,37 +12,43 @@ export declare class ModelService extends BaseService {
|
|
|
12
12
|
constructor(plugin: DeviceManagerPlugin, logger: KuzzleLogger);
|
|
13
13
|
registerAskEvents(): void;
|
|
14
14
|
private checkModelsConflicts;
|
|
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>>;
|
|
18
15
|
private checkDefaultValues;
|
|
16
|
+
private checkGroupAffinity;
|
|
17
|
+
writeAsset(engineGroups: string[], model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures, tooltipModels: TooltipModels, locales: {
|
|
18
|
+
[valueName: string]: LocaleDetails;
|
|
19
|
+
}, engineIds?: string[]): Promise<KDocument<AssetModelContent>>;
|
|
19
20
|
writeDevice(model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: NamedMeasures): Promise<KDocument<DeviceModelContent>>;
|
|
20
|
-
writeGroup(
|
|
21
|
+
writeGroup(engineGroups: string[], model: string, affinity: JSONObject, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups): Promise<KDocument<GroupModelContent>>;
|
|
21
22
|
writeMeasure(type: string, valuesMappings: JSONObject, validationSchema?: SchemaObject, valuesDetails?: MeasureValuesDetails, locales?: {
|
|
22
23
|
[valueName: string]: LocaleDetails;
|
|
23
|
-
}): Promise<KDocument<MeasureModelContent>>;
|
|
24
|
+
}, engineIds?: string[]): Promise<KDocument<MeasureModelContent>>;
|
|
24
25
|
deleteAsset(_id: string): Promise<void>;
|
|
25
26
|
deleteDevice(_id: string): Promise<void>;
|
|
26
27
|
deleteGroup(_id: string): Promise<void>;
|
|
27
28
|
deleteMeasure(_id: string): Promise<void>;
|
|
28
|
-
listAsset(
|
|
29
|
+
listAsset(engineGroups: string[], engineId?: string): Promise<KDocument<AssetModelContent>[]>;
|
|
29
30
|
listDevices(): Promise<KDocument<DeviceModelContent>[]>;
|
|
30
|
-
listGroups(
|
|
31
|
-
listMeasures(): Promise<KDocument<MeasureModelContent>[]>;
|
|
32
|
-
searchAssets(
|
|
31
|
+
listGroups(engineGroups: string[]): Promise<KDocument<GroupModelContent>[]>;
|
|
32
|
+
listMeasures(engineId?: string): Promise<KDocument<MeasureModelContent>[]>;
|
|
33
|
+
searchAssets(engineGroups: string[], engineId: string | undefined, searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<AssetModelContent>>>;
|
|
33
34
|
searchDevices(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<DeviceModelContent>>>;
|
|
34
|
-
searchGroups(
|
|
35
|
-
searchMeasures(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<MeasureModelContent>>>;
|
|
35
|
+
searchGroups(engineGroups: string[], searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<GroupModelContent>>>;
|
|
36
|
+
searchMeasures(engineId: string | undefined, searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<MeasureModelContent>>>;
|
|
36
37
|
assetExists(model: string): Promise<boolean>;
|
|
37
38
|
deviceExists(model: string): Promise<boolean>;
|
|
38
|
-
getAsset(
|
|
39
|
+
getAsset(engineGroups: string[], engineId: string | undefined, model: string): Promise<KDocument<AssetModelContent>>;
|
|
39
40
|
getDevice(model: string): Promise<KDocument<DeviceModelContent>>;
|
|
40
41
|
getGroup(model: string): Promise<KDocument<GroupModelContent>>;
|
|
41
|
-
getMeasure(type: string): Promise<KDocument<MeasureModelContent>>;
|
|
42
|
+
getMeasure(type: string, engineId?: string): Promise<KDocument<MeasureModelContent>>;
|
|
43
|
+
/**
|
|
44
|
+
* Checks that creating/updating a measure model does not shadow an existing
|
|
45
|
+
* one at a different scope (global vs tenant-scoped).
|
|
46
|
+
*/
|
|
47
|
+
private checkMeasureShadowing;
|
|
42
48
|
/**
|
|
43
49
|
* Update an asset model
|
|
44
50
|
*/
|
|
45
|
-
updateAsset(
|
|
51
|
+
updateAsset(engineGroups: string[], model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, locales: {
|
|
46
52
|
[valueName: string]: LocaleDetails;
|
|
47
53
|
}, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
|
|
48
54
|
}
|
|
@@ -22,7 +22,7 @@ export declare class ModelsController {
|
|
|
22
22
|
listAssets(request: KuzzleRequest): Promise<ApiModelListAssetsResult>;
|
|
23
23
|
listDevices(): Promise<ApiModelListDevicesResult>;
|
|
24
24
|
listGroups(request: KuzzleRequest): Promise<ApiModelListGroupsResult>;
|
|
25
|
-
listMeasures(): Promise<ApiModelListMeasuresResult>;
|
|
25
|
+
listMeasures(request: KuzzleRequest): Promise<ApiModelListMeasuresResult>;
|
|
26
26
|
searchAssets(request: KuzzleRequest): Promise<ApiModelSearchAssetsResult>;
|
|
27
27
|
searchDevices(request: KuzzleRequest): Promise<ApiModelSearchDevicesResult>;
|
|
28
28
|
searchGroups(request: KuzzleRequest): Promise<ApiModelSearchGroupsResult>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DeviceManagerPlugin } from "../plugin";
|
|
2
2
|
import { NamedMeasures } from "../decoder";
|
|
3
3
|
import { MeasureDefinition } from "../measure";
|
|
4
|
-
import { LocaleDetails, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
4
|
+
import { GroupAffinity, LocaleDetails, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
5
5
|
import { JSONObject } from "kuzzle-sdk";
|
|
6
6
|
export declare class ModelsRegister {
|
|
7
7
|
private config;
|
|
@@ -17,7 +17,7 @@ export declare class ModelsRegister {
|
|
|
17
17
|
/**
|
|
18
18
|
* Registers an asset model.
|
|
19
19
|
*
|
|
20
|
-
* @param
|
|
20
|
+
* @param engineGroups - The engine group names.
|
|
21
21
|
* @param model - The name of the asset model, which must be in PascalCase.
|
|
22
22
|
* @param measures - The measures associated with this asset model.
|
|
23
23
|
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
@@ -27,7 +27,7 @@ export declare class ModelsRegister {
|
|
|
27
27
|
* @param tooltipModels - Optional model list for tooltip, containing labels and tooltip content.
|
|
28
28
|
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
29
29
|
*/
|
|
30
|
-
registerAsset(
|
|
30
|
+
registerAsset(engineGroups: string[], model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups, tooltipModels?: TooltipModels, locales?: {
|
|
31
31
|
[valueName: string]: LocaleDetails;
|
|
32
32
|
}): void;
|
|
33
33
|
/**
|
|
@@ -46,15 +46,16 @@ export declare class ModelsRegister {
|
|
|
46
46
|
* Registers a group model.
|
|
47
47
|
*
|
|
48
48
|
*
|
|
49
|
-
* @param
|
|
49
|
+
* @param engineGroups - The engine group names.
|
|
50
50
|
* @param model - The name of the group model, which must be in PascalCase.
|
|
51
|
+
* @param affinity - The type of object accepted and their model affinity.
|
|
51
52
|
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
52
53
|
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
53
54
|
* @param metadataDetails - Optional detailed metadata descriptions, localizations and definition.
|
|
54
55
|
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
55
56
|
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
56
57
|
*/
|
|
57
|
-
registerGroup(
|
|
58
|
+
registerGroup(engineGroups: string[], model: string, affinity: GroupAffinity, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups): void;
|
|
58
59
|
registerMeasure(type: string, measureDefinition: MeasureDefinition): void;
|
|
59
60
|
private load;
|
|
60
61
|
}
|