@twin.org/engine-types 0.0.2-next.4 → 0.0.2-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/cjs/index.cjs +159 -53
- package/dist/esm/index.mjs +166 -62
- package/dist/types/components/entityStorage.d.ts +2 -1
- package/dist/types/components/synchronisedStorage.d.ts +13 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/models/IEngineConfig.d.ts +9 -4
- package/dist/types/models/config/entityStorageConnectorConfig.d.ts +4 -0
- package/dist/types/models/config/synchronisedStorageComponentConfig.d.ts +13 -0
- package/dist/types/models/types/entityStorageConnectorType.d.ts +4 -0
- package/dist/types/models/types/synchronisedStorageComponentType.d.ts +17 -0
- package/docs/changelog.md +14 -0
- package/docs/reference/functions/initialiseEntityStorageConnector.md +4 -2
- package/docs/reference/functions/initialiseSynchronisedStorageComponent.md +41 -0
- package/docs/reference/index.md +4 -0
- package/docs/reference/interfaces/IEngineConfig.md +12 -6
- package/docs/reference/type-aliases/EntityStorageConnectorConfig.md +1 -1
- package/docs/reference/type-aliases/SynchronisedStorageComponentConfig.md +5 -0
- package/docs/reference/type-aliases/SynchronisedStorageComponentType.md +5 -0
- package/docs/reference/variables/EntityStorageConnectorType.md +6 -0
- package/docs/reference/variables/SynchronisedStorageComponentType.md +19 -0
- package/package.json +6 -2
package/dist/cjs/index.cjs
CHANGED
|
@@ -17,6 +17,7 @@ var entityStorageConnectorMongodb = require('@twin.org/entity-storage-connector-
|
|
|
17
17
|
var entityStorageConnectorMysql = require('@twin.org/entity-storage-connector-mysql');
|
|
18
18
|
var entityStorageConnectorPostgresql = require('@twin.org/entity-storage-connector-postgresql');
|
|
19
19
|
var entityStorageConnectorScylladb = require('@twin.org/entity-storage-connector-scylladb');
|
|
20
|
+
var entityStorageConnectorSynchronised = require('@twin.org/entity-storage-connector-synchronised');
|
|
20
21
|
var entityStorageModels = require('@twin.org/entity-storage-models');
|
|
21
22
|
var entityStorageRestClient = require('@twin.org/entity-storage-rest-client');
|
|
22
23
|
var entityStorageService = require('@twin.org/entity-storage-service');
|
|
@@ -74,6 +75,8 @@ var nftService = require('@twin.org/nft-service');
|
|
|
74
75
|
var rightsManagementRestClient = require('@twin.org/rights-management-rest-client');
|
|
75
76
|
var rightsManagementService = require('@twin.org/rights-management-service');
|
|
76
77
|
var rightsManagementPapService = require('@twin.org/rights-management-pap-service');
|
|
78
|
+
var synchronisedStorageRestClient = require('@twin.org/synchronised-storage-rest-client');
|
|
79
|
+
var synchronisedStorageService = require('@twin.org/synchronised-storage-service');
|
|
77
80
|
var backgroundTaskScheduler = require('@twin.org/background-task-scheduler');
|
|
78
81
|
var telemetryConnectorEntityStorage = require('@twin.org/telemetry-connector-entity-storage');
|
|
79
82
|
var telemetryModels = require('@twin.org/telemetry-models');
|
|
@@ -138,8 +141,8 @@ function initialiseAttestationConnector(engineCore, context, instanceConfig, ove
|
|
|
138
141
|
let instanceType;
|
|
139
142
|
if (type === AttestationConnectorType.Nft) {
|
|
140
143
|
connector = new attestationConnectorNft.NftAttestationConnector({
|
|
141
|
-
identityConnectorType:
|
|
142
|
-
nftConnectorType:
|
|
144
|
+
identityConnectorType: engineCore.getRegisteredInstanceType("identityConnector"),
|
|
145
|
+
nftConnectorType: engineCore.getRegisteredInstanceType("nftConnector"),
|
|
143
146
|
...instanceConfig.options
|
|
144
147
|
});
|
|
145
148
|
instanceType = attestationConnectorNft.NftAttestationConnector.NAMESPACE;
|
|
@@ -258,7 +261,11 @@ const EntityStorageConnectorType = {
|
|
|
258
261
|
/**
|
|
259
262
|
* Postgre SQL.
|
|
260
263
|
*/
|
|
261
|
-
PostgreSql: "postgresql"
|
|
264
|
+
PostgreSql: "postgresql",
|
|
265
|
+
/**
|
|
266
|
+
* Synchronised.
|
|
267
|
+
*/
|
|
268
|
+
Synchronised: "synchronised"
|
|
262
269
|
};
|
|
263
270
|
|
|
264
271
|
// Copyright 2024 IOTA Stiftung.
|
|
@@ -269,6 +276,7 @@ const EntityStorageConnectorType = {
|
|
|
269
276
|
* @param context The context for the engine.
|
|
270
277
|
* @param typeCustom Override the type of connector to use instead of default configuration.
|
|
271
278
|
* @param schema The schema for the entity storage.
|
|
279
|
+
* @returns The name of the instance type that was created.
|
|
272
280
|
* @throws GeneralError if the connector type is unknown.
|
|
273
281
|
*/
|
|
274
282
|
function initialiseEntityStorageConnector(engineCore, context, typeCustom, schema) {
|
|
@@ -389,6 +397,23 @@ function initialiseEntityStorageConnector(engineCore, context, typeCustom, schem
|
|
|
389
397
|
}
|
|
390
398
|
});
|
|
391
399
|
}
|
|
400
|
+
else if (type === EntityStorageConnectorType.Synchronised) {
|
|
401
|
+
// Create the entity storage that is wrapped by the synchronised connector
|
|
402
|
+
// by removing the custom type it will default to the standard storage
|
|
403
|
+
// mechanism for entity storage
|
|
404
|
+
const wrappedInstanceName = initialiseEntityStorageConnector(engineCore, context, undefined, schema);
|
|
405
|
+
// Use the wrapped instance name as the entity storage connector type
|
|
406
|
+
// for the synchronised connector
|
|
407
|
+
entityStorageConnector = new entityStorageConnectorSynchronised.SynchronisedEntityStorageConnector({
|
|
408
|
+
entitySchema: schema,
|
|
409
|
+
...entityStorageConfig.options,
|
|
410
|
+
entityStorageConnectorType: wrappedInstanceName,
|
|
411
|
+
eventBusComponentType: engineCore.getRegisteredInstanceType("eventBusComponent"),
|
|
412
|
+
config: {
|
|
413
|
+
...entityStorageConfig.options.config
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
}
|
|
392
417
|
else {
|
|
393
418
|
throw new core.GeneralError("engineCore", "connectorUnknownType", {
|
|
394
419
|
type,
|
|
@@ -401,6 +426,7 @@ function initialiseEntityStorageConnector(engineCore, context, typeCustom, schem
|
|
|
401
426
|
});
|
|
402
427
|
entityStorageModels.EntityStorageConnectorFactory.register(instanceName, () => entityStorageConnector);
|
|
403
428
|
}
|
|
429
|
+
return instanceName;
|
|
404
430
|
}
|
|
405
431
|
/**
|
|
406
432
|
* Initialise the entity storage connector.
|
|
@@ -492,8 +518,8 @@ function initialiseAuditableItemGraphComponent(engineCore, context, instanceConf
|
|
|
492
518
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.vertexEntityStorageType, "AuditableItemGraphVertex");
|
|
493
519
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.changesetEntityStorageType, "AuditableItemGraphChangeset");
|
|
494
520
|
component = new auditableItemGraphService.AuditableItemGraphService({
|
|
495
|
-
immutableProofComponentType:
|
|
496
|
-
eventBusComponentType:
|
|
521
|
+
immutableProofComponentType: engineCore.getRegisteredInstanceType("immutableProofComponent"),
|
|
522
|
+
eventBusComponentType: engineCore.getRegisteredInstanceTypeOptional("eventBusComponent"),
|
|
497
523
|
...instanceConfig.options
|
|
498
524
|
});
|
|
499
525
|
instanceType = core.StringHelper.kebabCase("AuditableItemGraphService");
|
|
@@ -555,8 +581,8 @@ function initialiseAuditableItemStreamComponent(engineCore, context, instanceCon
|
|
|
555
581
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.streamEntityStorageType, "AuditableItemStream");
|
|
556
582
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.streamEntryEntityStorageType, "AuditableItemStreamEntry");
|
|
557
583
|
component = new auditableItemStreamService.AuditableItemStreamService({
|
|
558
|
-
immutableProofComponentType:
|
|
559
|
-
eventBusComponentType:
|
|
584
|
+
immutableProofComponentType: engineCore.getRegisteredInstanceType("immutableProofComponent"),
|
|
585
|
+
eventBusComponentType: engineCore.getRegisteredInstanceTypeOptional("eventBusComponent"),
|
|
560
586
|
...instanceConfig.options
|
|
561
587
|
});
|
|
562
588
|
instanceType = core.StringHelper.kebabCase("AuditableItemStreamService");
|
|
@@ -615,7 +641,7 @@ function initialiseBackgroundTaskConnector(engineCore, context, instanceConfig,
|
|
|
615
641
|
backgroundTaskConnectorEntityStorage.initSchema();
|
|
616
642
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.backgroundTaskEntityStorageType, "BackgroundTask");
|
|
617
643
|
connector = new backgroundTaskConnectorEntityStorage.EntityStorageBackgroundTaskConnector({
|
|
618
|
-
loggingConnectorType:
|
|
644
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
619
645
|
...instanceConfig.options
|
|
620
646
|
});
|
|
621
647
|
instanceType = backgroundTaskConnectorEntityStorage.EntityStorageBackgroundTaskConnector.NAMESPACE;
|
|
@@ -784,7 +810,7 @@ function initialiseBlobStorageComponent(engineCore, context, instanceConfig, ove
|
|
|
784
810
|
blobStorageService.initSchema();
|
|
785
811
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.entryEntityStorageType, "BlobStorageEntry");
|
|
786
812
|
component = new blobStorageService.BlobStorageService({
|
|
787
|
-
vaultConnectorType:
|
|
813
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
788
814
|
...instanceConfig.options
|
|
789
815
|
});
|
|
790
816
|
instanceType = core.StringHelper.kebabCase("BlobStorageService");
|
|
@@ -1009,10 +1035,10 @@ function initialiseDocumentManagementComponent(engineCore, context, instanceConf
|
|
|
1009
1035
|
let instanceType;
|
|
1010
1036
|
if (type === DocumentManagementComponentType.Service) {
|
|
1011
1037
|
component = new documentManagementService.DocumentManagementService({
|
|
1012
|
-
auditableItemGraphComponentType:
|
|
1013
|
-
blobStorageComponentType:
|
|
1014
|
-
attestationComponentType:
|
|
1015
|
-
dataProcessingComponentType:
|
|
1038
|
+
auditableItemGraphComponentType: engineCore.getRegisteredInstanceType("auditableItemGraphComponent"),
|
|
1039
|
+
blobStorageComponentType: engineCore.getRegisteredInstanceType("blobStorageComponent"),
|
|
1040
|
+
attestationComponentType: engineCore.getRegisteredInstanceType("attestationComponent"),
|
|
1041
|
+
dataProcessingComponentType: engineCore.getRegisteredInstanceType("dataProcessingComponent"),
|
|
1016
1042
|
...instanceConfig.options
|
|
1017
1043
|
});
|
|
1018
1044
|
instanceType = core.StringHelper.kebabCase("DocumentManagementService");
|
|
@@ -1086,7 +1112,7 @@ function initialiseEventBusConnector(engineCore, context, instanceConfig, overri
|
|
|
1086
1112
|
let instanceType;
|
|
1087
1113
|
if (type === EventBusConnectorType.Local) {
|
|
1088
1114
|
connector = new eventBusConnectorLocal.LocalEventBusConnector({
|
|
1089
|
-
loggingConnectorType:
|
|
1115
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1090
1116
|
...instanceConfig.options
|
|
1091
1117
|
});
|
|
1092
1118
|
instanceType = eventBusConnectorLocal.LocalEventBusConnector.NAMESPACE;
|
|
@@ -1120,14 +1146,14 @@ function initialiseEventBusComponent(engineCore, context, instanceConfig, overri
|
|
|
1120
1146
|
let instanceType;
|
|
1121
1147
|
if (type === EventBusComponentType.Service) {
|
|
1122
1148
|
component = new eventBusService.EventBusService({
|
|
1123
|
-
eventBusConnectorType:
|
|
1149
|
+
eventBusConnectorType: engineCore.getRegisteredInstanceType("eventBusConnector"),
|
|
1124
1150
|
...instanceConfig.options
|
|
1125
1151
|
});
|
|
1126
1152
|
instanceType = core.StringHelper.kebabCase("EventBusService");
|
|
1127
1153
|
}
|
|
1128
1154
|
else if (type === EventBusComponentType.SocketClient) {
|
|
1129
1155
|
component = new eventBusSocketClient.EventBusSocketClient({
|
|
1130
|
-
loggingComponentType:
|
|
1156
|
+
loggingComponentType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1131
1157
|
...instanceConfig.options
|
|
1132
1158
|
});
|
|
1133
1159
|
instanceType = core.StringHelper.kebabCase("EventBusSocketClient");
|
|
@@ -1180,7 +1206,8 @@ function initialiseFaucetConnector(engineCore, context, instanceConfig, override
|
|
|
1180
1206
|
let connector;
|
|
1181
1207
|
let instanceType;
|
|
1182
1208
|
if (type === FaucetConnectorType.Iota) {
|
|
1183
|
-
const
|
|
1209
|
+
const defaultConfigType = engineCore.getRegisteredInstanceType("dltConfig");
|
|
1210
|
+
const dltConfig = context.config.types.dltConfig?.find(dlt => dlt.type === defaultConfigType);
|
|
1184
1211
|
connector = new walletConnectorIota.IotaFaucetConnector({
|
|
1185
1212
|
...instanceConfig.options,
|
|
1186
1213
|
config: {
|
|
@@ -1251,8 +1278,8 @@ function initialiseFederatedCatalogueComponent(engineCore, context, instanceConf
|
|
|
1251
1278
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.serviceOfferingEntityStorageType, "ServiceOfferingEntry");
|
|
1252
1279
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.dataSpaceConnectorStorageType, "DataSpaceConnectorEntry");
|
|
1253
1280
|
component = new federatedCatalogueService.FederatedCatalogueService({
|
|
1254
|
-
loggingConnectorType:
|
|
1255
|
-
identityResolverComponentType:
|
|
1281
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1282
|
+
identityResolverComponentType: engineCore.getRegisteredInstanceType("identityResolverComponent"),
|
|
1256
1283
|
...instanceConfig.options
|
|
1257
1284
|
});
|
|
1258
1285
|
instanceType = core.StringHelper.kebabCase("FederatedCatalogueService");
|
|
@@ -1329,9 +1356,10 @@ function initialiseIdentityConnector(engineCore, context, instanceConfig, overri
|
|
|
1329
1356
|
let connector;
|
|
1330
1357
|
let instanceType;
|
|
1331
1358
|
if (type === IdentityConnectorType.Iota) {
|
|
1332
|
-
const
|
|
1359
|
+
const defaultConfigType = engineCore.getRegisteredInstanceType("dltConfig");
|
|
1360
|
+
const dltConfig = context.config.types.dltConfig?.find(dlt => dlt.type === defaultConfigType);
|
|
1333
1361
|
connector = new identityConnectorIota.IotaIdentityConnector({
|
|
1334
|
-
vaultConnectorType:
|
|
1362
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
1335
1363
|
...instanceConfig.options,
|
|
1336
1364
|
config: {
|
|
1337
1365
|
...dltConfig?.options?.config,
|
|
@@ -1344,7 +1372,7 @@ function initialiseIdentityConnector(engineCore, context, instanceConfig, overri
|
|
|
1344
1372
|
identityConnectorEntityStorage.initSchema({ includeProfile: false });
|
|
1345
1373
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.didDocumentEntityStorageType, "IdentityDocument");
|
|
1346
1374
|
connector = new identityConnectorEntityStorage.EntityStorageIdentityConnector({
|
|
1347
|
-
vaultConnectorType:
|
|
1375
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
1348
1376
|
...instanceConfig.options
|
|
1349
1377
|
});
|
|
1350
1378
|
instanceType = identityConnectorEntityStorage.EntityStorageIdentityConnector.NAMESPACE;
|
|
@@ -1482,7 +1510,7 @@ function initialiseIdentityProfileComponent(engineCore, context, instanceConfig,
|
|
|
1482
1510
|
let instanceType;
|
|
1483
1511
|
if (type === IdentityProfileComponentType.Service) {
|
|
1484
1512
|
component = new identityService.IdentityProfileService({
|
|
1485
|
-
profileEntityConnectorType:
|
|
1513
|
+
profileEntityConnectorType: engineCore.getRegisteredInstanceType("identityProfileConnector"),
|
|
1486
1514
|
...instanceConfig.options
|
|
1487
1515
|
});
|
|
1488
1516
|
instanceType = core.StringHelper.kebabCase("IdentityProfileService");
|
|
@@ -1563,7 +1591,8 @@ function initialiseIdentityResolverConnector(engineCore, context, instanceConfig
|
|
|
1563
1591
|
let connector;
|
|
1564
1592
|
let instanceType;
|
|
1565
1593
|
if (type === IdentityResolverConnectorType.Iota) {
|
|
1566
|
-
const
|
|
1594
|
+
const defaultConfigType = engineCore.getRegisteredInstanceType("dltConfig");
|
|
1595
|
+
const dltConfig = context.config.types.dltConfig?.find(dlt => dlt.type === defaultConfigType);
|
|
1567
1596
|
connector = new identityConnectorIota.IotaIdentityResolverConnector({
|
|
1568
1597
|
...instanceConfig.options,
|
|
1569
1598
|
config: {
|
|
@@ -1577,7 +1606,7 @@ function initialiseIdentityResolverConnector(engineCore, context, instanceConfig
|
|
|
1577
1606
|
identityConnectorEntityStorage.initSchema({ includeProfile: false });
|
|
1578
1607
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.didDocumentEntityStorageType, "IdentityDocument");
|
|
1579
1608
|
connector = new identityConnectorEntityStorage.EntityStorageIdentityResolverConnector({
|
|
1580
|
-
vaultConnectorType:
|
|
1609
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
1581
1610
|
...instanceConfig.options
|
|
1582
1611
|
});
|
|
1583
1612
|
instanceType = identityConnectorEntityStorage.EntityStorageIdentityResolverConnector.NAMESPACE;
|
|
@@ -1616,8 +1645,9 @@ function initialiseIdentityResolverComponent(engineCore, context, instanceConfig
|
|
|
1616
1645
|
let component;
|
|
1617
1646
|
let instanceType;
|
|
1618
1647
|
if (type === IdentityResolverComponentType.Service) {
|
|
1648
|
+
const defaultIdentityResolverType = engineCore.getRegisteredInstanceType("identityResolverConnector");
|
|
1619
1649
|
component = new identityService.IdentityResolverService({
|
|
1620
|
-
fallbackResolverConnectorType:
|
|
1650
|
+
fallbackResolverConnectorType: defaultIdentityResolverType !== IdentityResolverConnectorType.Universal
|
|
1621
1651
|
? IdentityResolverConnectorType.Universal
|
|
1622
1652
|
: undefined,
|
|
1623
1653
|
...instanceConfig.options
|
|
@@ -1679,10 +1709,10 @@ function initialiseImmutableProofComponent(engineCore, context, instanceConfig,
|
|
|
1679
1709
|
immutableProofService.initSchema();
|
|
1680
1710
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.immutableProofEntityStorageType, "ImmutableProof");
|
|
1681
1711
|
component = new immutableProofService.ImmutableProofService({
|
|
1682
|
-
verifiableStorageType:
|
|
1683
|
-
identityConnectorType:
|
|
1684
|
-
backgroundTaskConnectorType:
|
|
1685
|
-
eventBusComponentType:
|
|
1712
|
+
verifiableStorageType: engineCore.getRegisteredInstanceType("verifiableStorageConnector"),
|
|
1713
|
+
identityConnectorType: engineCore.getRegisteredInstanceType("identityConnector"),
|
|
1714
|
+
backgroundTaskConnectorType: engineCore.getRegisteredInstanceType("backgroundTaskConnector"),
|
|
1715
|
+
eventBusComponentType: engineCore.getRegisteredInstanceTypeOptional("eventBusComponent"),
|
|
1686
1716
|
...instanceConfig.options
|
|
1687
1717
|
});
|
|
1688
1718
|
instanceType = core.StringHelper.kebabCase("ImmutableProofService");
|
|
@@ -1805,7 +1835,7 @@ function initialiseLoggingComponent(engineCore, context, instanceConfig, overrid
|
|
|
1805
1835
|
let instanceType;
|
|
1806
1836
|
if (type === LoggingComponentType.Service) {
|
|
1807
1837
|
component = new loggingService.LoggingService({
|
|
1808
|
-
loggingConnectorType:
|
|
1838
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1809
1839
|
...instanceConfig.options
|
|
1810
1840
|
});
|
|
1811
1841
|
instanceType = core.StringHelper.kebabCase("LoggingService");
|
|
@@ -1912,14 +1942,14 @@ function initialiseMessagingEmailConnector(engineCore, context, instanceConfig,
|
|
|
1912
1942
|
messagingConnectorEntityStorage.initSchema({ email: true, sms: false, pushNotification: false });
|
|
1913
1943
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.messagingEmailEntryStorageConnectorType, "EmailEntry");
|
|
1914
1944
|
connector = new messagingConnectorEntityStorage.EntityStorageMessagingEmailConnector({
|
|
1915
|
-
loggingConnectorType:
|
|
1945
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1916
1946
|
...instanceConfig.options
|
|
1917
1947
|
});
|
|
1918
1948
|
instanceType = messagingConnectorEntityStorage.EntityStorageMessagingEmailConnector.NAMESPACE;
|
|
1919
1949
|
}
|
|
1920
1950
|
else if (type === MessagingEmailConnectorType.Aws) {
|
|
1921
1951
|
connector = new messagingConnectorAws.AwsMessagingEmailConnector({
|
|
1922
|
-
loggingConnectorType:
|
|
1952
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1923
1953
|
...instanceConfig.options
|
|
1924
1954
|
});
|
|
1925
1955
|
instanceType = messagingConnectorAws.AwsMessagingEmailConnector.NAMESPACE;
|
|
@@ -1955,14 +1985,14 @@ function initialiseMessagingSmsConnector(engineCore, context, instanceConfig, ov
|
|
|
1955
1985
|
messagingConnectorEntityStorage.initSchema({ email: false, sms: true, pushNotification: false });
|
|
1956
1986
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.messagingSmsEntryStorageConnectorType, "SmsEntry");
|
|
1957
1987
|
connector = new messagingConnectorEntityStorage.EntityStorageMessagingSmsConnector({
|
|
1958
|
-
loggingConnectorType:
|
|
1988
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1959
1989
|
...instanceConfig.options
|
|
1960
1990
|
});
|
|
1961
1991
|
instanceType = messagingConnectorEntityStorage.EntityStorageMessagingSmsConnector.NAMESPACE;
|
|
1962
1992
|
}
|
|
1963
1993
|
else if (type === MessagingSmsConnectorType.Aws) {
|
|
1964
1994
|
connector = new messagingConnectorAws.AwsMessagingSmsConnector({
|
|
1965
|
-
loggingConnectorType:
|
|
1995
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
1966
1996
|
...instanceConfig.options
|
|
1967
1997
|
});
|
|
1968
1998
|
instanceType = messagingConnectorAws.AwsMessagingSmsConnector.NAMESPACE;
|
|
@@ -1999,14 +2029,14 @@ function initialiseMessagingPushNotificationConnector(engineCore, context, insta
|
|
|
1999
2029
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.messagingDeviceEntryStorageConnectorType, "PushNotificationDeviceEntry");
|
|
2000
2030
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.messagingMessageEntryStorageConnectorType, "PushNotificationMessageEntry");
|
|
2001
2031
|
connector = new messagingConnectorEntityStorage.EntityStorageMessagingPushNotificationConnector({
|
|
2002
|
-
loggingConnectorType:
|
|
2032
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
2003
2033
|
...instanceConfig.options
|
|
2004
2034
|
});
|
|
2005
2035
|
instanceType = messagingConnectorEntityStorage.EntityStorageMessagingPushNotificationConnector.NAMESPACE;
|
|
2006
2036
|
}
|
|
2007
2037
|
else if (type === MessagingPushNotificationConnectorType.Aws) {
|
|
2008
2038
|
connector = new messagingConnectorAws.AwsMessagingPushNotificationConnector({
|
|
2009
|
-
loggingConnectorType:
|
|
2039
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
2010
2040
|
...instanceConfig.options
|
|
2011
2041
|
});
|
|
2012
2042
|
instanceType = messagingConnectorAws.AwsMessagingPushNotificationConnector.NAMESPACE;
|
|
@@ -2042,9 +2072,9 @@ function initialiseMessagingComponent(engineCore, context, instanceConfig, overr
|
|
|
2042
2072
|
messagingService.initSchema();
|
|
2043
2073
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.templateEntryStorageConnectorType, "TemplateEntry");
|
|
2044
2074
|
component = new messagingService.MessagingService({
|
|
2045
|
-
messagingEmailConnectorType:
|
|
2046
|
-
messagingSmsConnectorType:
|
|
2047
|
-
messagingPushNotificationConnectorType:
|
|
2075
|
+
messagingEmailConnectorType: engineCore.getRegisteredInstanceTypeOptional("messagingEmailConnector"),
|
|
2076
|
+
messagingSmsConnectorType: engineCore.getRegisteredInstanceTypeOptional("messagingSmsConnector"),
|
|
2077
|
+
messagingPushNotificationConnectorType: engineCore.getRegisteredInstanceTypeOptional("messagingNotificationConnector"),
|
|
2048
2078
|
...instanceConfig.options
|
|
2049
2079
|
});
|
|
2050
2080
|
instanceType = core.StringHelper.kebabCase("MessagingService");
|
|
@@ -2121,8 +2151,8 @@ function initialiseNftConnector(engineCore, context, instanceConfig, overrideIns
|
|
|
2121
2151
|
}
|
|
2122
2152
|
else if (type === NftConnectorType.Iota) {
|
|
2123
2153
|
connector = new nftConnectorIota.IotaNftConnector({
|
|
2124
|
-
vaultConnectorType:
|
|
2125
|
-
walletConnectorType:
|
|
2154
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
2155
|
+
walletConnectorType: engineCore.getRegisteredInstanceType("walletConnector"),
|
|
2126
2156
|
...instanceConfig.options
|
|
2127
2157
|
});
|
|
2128
2158
|
instanceType = nftConnectorIota.IotaNftConnector.NAMESPACE;
|
|
@@ -2217,7 +2247,7 @@ function initialiseRightsManagementComponent(engineCore, context, instanceConfig
|
|
|
2217
2247
|
let instanceType;
|
|
2218
2248
|
if (type === RightsManagementComponentType.Service) {
|
|
2219
2249
|
component = new rightsManagementService.RightsManagementService({
|
|
2220
|
-
papComponentType:
|
|
2250
|
+
papComponentType: engineCore.getRegisteredInstanceType("rightsManagementPapComponent"),
|
|
2221
2251
|
...instanceConfig.options
|
|
2222
2252
|
});
|
|
2223
2253
|
instanceType = core.StringHelper.kebabCase("RightsManagementService");
|
|
@@ -2293,6 +2323,78 @@ function initialiseRightsManagementPapComponent(engineCore, context, instanceCon
|
|
|
2293
2323
|
return finalInstanceType;
|
|
2294
2324
|
}
|
|
2295
2325
|
|
|
2326
|
+
// Copyright 2024 IOTA Stiftung.
|
|
2327
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
2328
|
+
/**
|
|
2329
|
+
* Synchronised storage component types.
|
|
2330
|
+
*/
|
|
2331
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
2332
|
+
const SynchronisedStorageComponentType = {
|
|
2333
|
+
/**
|
|
2334
|
+
* Service.
|
|
2335
|
+
*/
|
|
2336
|
+
Service: "service",
|
|
2337
|
+
/**
|
|
2338
|
+
* REST client.
|
|
2339
|
+
*/
|
|
2340
|
+
RestClient: "rest-client"
|
|
2341
|
+
};
|
|
2342
|
+
|
|
2343
|
+
// Copyright 2024 IOTA Stiftung.
|
|
2344
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
2345
|
+
/**
|
|
2346
|
+
* Initialise the synchronised storage component.
|
|
2347
|
+
* @param engineCore The engine core.
|
|
2348
|
+
* @param context The context for the engine.
|
|
2349
|
+
* @param instanceConfig The instance config.
|
|
2350
|
+
* @param overrideInstanceType The instance type to override the default.
|
|
2351
|
+
* @returns The name of the instance created.
|
|
2352
|
+
* @throws GeneralError if the component type is unknown.
|
|
2353
|
+
*/
|
|
2354
|
+
function initialiseSynchronisedStorageComponent(engineCore, context, instanceConfig, overrideInstanceType) {
|
|
2355
|
+
engineCore.logInfo(core.I18n.formatMessage("engineCore.configuring", {
|
|
2356
|
+
element: `Synchronised Storage Component: ${instanceConfig.type}`
|
|
2357
|
+
}));
|
|
2358
|
+
const type = instanceConfig.type;
|
|
2359
|
+
let component;
|
|
2360
|
+
let instanceType;
|
|
2361
|
+
if (type === SynchronisedStorageComponentType.Service) {
|
|
2362
|
+
synchronisedStorageService.initSchema();
|
|
2363
|
+
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.syncSnapshotStorageConnectorType, "SyncSnapshotEntry");
|
|
2364
|
+
component = new synchronisedStorageService.SynchronisedStorageService({
|
|
2365
|
+
loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent"),
|
|
2366
|
+
eventBusComponentType: engineCore.getRegisteredInstanceType("eventBusComponent"),
|
|
2367
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
2368
|
+
verifiableStorageConnectorType: engineCore.getRegisteredInstanceType("verifiableStorageConnector"),
|
|
2369
|
+
identityConnectorType: engineCore.getRegisteredInstanceType("identityConnector"),
|
|
2370
|
+
taskSchedulerComponentType: engineCore.getRegisteredInstanceType("taskSchedulerComponent"),
|
|
2371
|
+
trustedSynchronisedStorageComponentType: engineCore.getRegisteredInstanceTypeOptional("synchronisedStorageComponent", ["trusted"]),
|
|
2372
|
+
blobStorageConnectorType: engineCore.getRegisteredInstanceType("blobStorageConnector", [
|
|
2373
|
+
"public"
|
|
2374
|
+
]),
|
|
2375
|
+
...instanceConfig.options
|
|
2376
|
+
});
|
|
2377
|
+
instanceType = core.StringHelper.kebabCase("SynchronisedStorageService");
|
|
2378
|
+
}
|
|
2379
|
+
else if (type === SynchronisedStorageComponentType.RestClient) {
|
|
2380
|
+
component = new synchronisedStorageRestClient.SynchronisedStorageClient(instanceConfig.options);
|
|
2381
|
+
instanceType = core.StringHelper.kebabCase("SynchronisedStorageClient");
|
|
2382
|
+
}
|
|
2383
|
+
else {
|
|
2384
|
+
throw new core.GeneralError("engineCore", "componentUnknownType", {
|
|
2385
|
+
type,
|
|
2386
|
+
componentType: "SynchronisedStorageComponent"
|
|
2387
|
+
});
|
|
2388
|
+
}
|
|
2389
|
+
const finalInstanceType = overrideInstanceType ?? instanceType;
|
|
2390
|
+
context.componentInstances.push({
|
|
2391
|
+
instanceType: finalInstanceType,
|
|
2392
|
+
component
|
|
2393
|
+
});
|
|
2394
|
+
core.ComponentFactory.register(finalInstanceType, () => component);
|
|
2395
|
+
return finalInstanceType;
|
|
2396
|
+
}
|
|
2397
|
+
|
|
2296
2398
|
// Copyright 2024 IOTA Stiftung.
|
|
2297
2399
|
// SPDX-License-Identifier: Apache-2.0.
|
|
2298
2400
|
/**
|
|
@@ -2324,7 +2426,7 @@ function initialiseTaskSchedulerComponent(engineCore, context, instanceConfig, o
|
|
|
2324
2426
|
let instanceType;
|
|
2325
2427
|
if (type === TaskSchedulerComponentType.Service) {
|
|
2326
2428
|
component = new backgroundTaskScheduler.TaskSchedulerService({
|
|
2327
|
-
loggingConnectorType:
|
|
2429
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
2328
2430
|
...instanceConfig.options
|
|
2329
2431
|
});
|
|
2330
2432
|
instanceType = core.StringHelper.kebabCase("TaskSchedulerService");
|
|
@@ -2397,7 +2499,7 @@ function initialiseTelemetryConnector(engineCore, context, instanceConfig, overr
|
|
|
2397
2499
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.telemetryMetricStorageConnectorType, "TelemetryMetric");
|
|
2398
2500
|
initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.telemetryMetricValueStorageConnectorType, "TelemetryMetricValue");
|
|
2399
2501
|
connector = new telemetryConnectorEntityStorage.EntityStorageTelemetryConnector({
|
|
2400
|
-
loggingConnectorType:
|
|
2502
|
+
loggingConnectorType: engineCore.getRegisteredInstanceType("loggingConnector"),
|
|
2401
2503
|
...instanceConfig.options
|
|
2402
2504
|
});
|
|
2403
2505
|
instanceType = telemetryConnectorEntityStorage.EntityStorageTelemetryConnector.NAMESPACE;
|
|
@@ -2431,7 +2533,7 @@ function initialiseTelemetryComponent(engineCore, context, instanceConfig, overr
|
|
|
2431
2533
|
let instanceType;
|
|
2432
2534
|
if (type === TelemetryComponentType.Service) {
|
|
2433
2535
|
component = new telemetryService.TelemetryService({
|
|
2434
|
-
telemetryConnectorType:
|
|
2536
|
+
telemetryConnectorType: engineCore.getRegisteredInstanceType("telemetryConnector"),
|
|
2435
2537
|
...instanceConfig.options
|
|
2436
2538
|
});
|
|
2437
2539
|
instanceType = core.StringHelper.kebabCase("TelemetryService");
|
|
@@ -2563,9 +2665,10 @@ function initialiseVerifiableStorageConnector(engineCore, context, instanceConfi
|
|
|
2563
2665
|
let connector;
|
|
2564
2666
|
let instanceType;
|
|
2565
2667
|
if (type === VerifiableStorageConnectorType.Iota) {
|
|
2566
|
-
const
|
|
2668
|
+
const defaultConfigType = engineCore.getRegisteredInstanceType("dltConfig");
|
|
2669
|
+
const dltConfig = context.config.types.dltConfig?.find(dlt => dlt.type === defaultConfigType);
|
|
2567
2670
|
connector = new verifiableStorageConnectorIota.IotaVerifiableStorageConnector({
|
|
2568
|
-
vaultConnectorType:
|
|
2671
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
2569
2672
|
...instanceConfig.options,
|
|
2570
2673
|
config: {
|
|
2571
2674
|
...dltConfig?.options?.config,
|
|
@@ -2671,10 +2774,11 @@ function initialiseWalletConnector(engineCore, context, instanceConfig, override
|
|
|
2671
2774
|
let connector;
|
|
2672
2775
|
let instanceType;
|
|
2673
2776
|
if (type === WalletConnectorType.Iota) {
|
|
2674
|
-
const
|
|
2777
|
+
const defaultConfigType = engineCore.getRegisteredInstanceType("dltConfig");
|
|
2778
|
+
const dltConfig = context.config.types.dltConfig?.find(dlt => dlt.type === defaultConfigType);
|
|
2675
2779
|
connector = new walletConnectorIota.IotaWalletConnector({
|
|
2676
|
-
vaultConnectorType:
|
|
2677
|
-
faucetConnectorType:
|
|
2780
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
2781
|
+
faucetConnectorType: engineCore.getRegisteredInstanceType("faucetConnector"),
|
|
2678
2782
|
...instanceConfig.options,
|
|
2679
2783
|
config: {
|
|
2680
2784
|
...dltConfig?.options?.config,
|
|
@@ -2685,8 +2789,8 @@ function initialiseWalletConnector(engineCore, context, instanceConfig, override
|
|
|
2685
2789
|
}
|
|
2686
2790
|
else if (type === WalletConnectorType.EntityStorage) {
|
|
2687
2791
|
connector = new walletConnectorEntityStorage.EntityStorageWalletConnector({
|
|
2688
|
-
vaultConnectorType:
|
|
2689
|
-
faucetConnectorType:
|
|
2792
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
2793
|
+
faucetConnectorType: engineCore.getRegisteredInstanceType("faucetConnector"),
|
|
2690
2794
|
...instanceConfig.options
|
|
2691
2795
|
});
|
|
2692
2796
|
instanceType = walletConnectorEntityStorage.EntityStorageWalletConnector.NAMESPACE;
|
|
@@ -2778,6 +2882,7 @@ exports.NftComponentType = NftComponentType;
|
|
|
2778
2882
|
exports.NftConnectorType = NftConnectorType;
|
|
2779
2883
|
exports.RightsManagementComponentType = RightsManagementComponentType;
|
|
2780
2884
|
exports.RightsManagementPapComponentType = RightsManagementPapComponentType;
|
|
2885
|
+
exports.SynchronisedStorageComponentType = SynchronisedStorageComponentType;
|
|
2781
2886
|
exports.TaskSchedulerComponentType = TaskSchedulerComponentType;
|
|
2782
2887
|
exports.TelemetryComponentType = TelemetryComponentType;
|
|
2783
2888
|
exports.TelemetryConnectorType = TelemetryConnectorType;
|
|
@@ -2819,6 +2924,7 @@ exports.initialiseNftComponent = initialiseNftComponent;
|
|
|
2819
2924
|
exports.initialiseNftConnector = initialiseNftConnector;
|
|
2820
2925
|
exports.initialiseRightsManagementComponent = initialiseRightsManagementComponent;
|
|
2821
2926
|
exports.initialiseRightsManagementPapComponent = initialiseRightsManagementPapComponent;
|
|
2927
|
+
exports.initialiseSynchronisedStorageComponent = initialiseSynchronisedStorageComponent;
|
|
2822
2928
|
exports.initialiseTaskSchedulerComponent = initialiseTaskSchedulerComponent;
|
|
2823
2929
|
exports.initialiseTelemetryComponent = initialiseTelemetryComponent;
|
|
2824
2930
|
exports.initialiseTelemetryConnector = initialiseTelemetryConnector;
|