@twin.org/node-core 0.0.3-next.2 → 0.0.3-next.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/builders/engineEnvBuilder.js +168 -105
- package/dist/es/builders/engineEnvBuilder.js.map +1 -1
- package/dist/es/builders/engineServerEnvBuilder.js +49 -25
- package/dist/es/builders/engineServerEnvBuilder.js.map +1 -1
- package/dist/es/cli.js +247 -0
- package/dist/es/cli.js.map +1 -0
- package/dist/es/commands/bootstrapLegacy.js +183 -0
- package/dist/es/commands/bootstrapLegacy.js.map +1 -0
- package/dist/es/commands/help.js +85 -0
- package/dist/es/commands/help.js.map +1 -0
- package/dist/es/commands/identityCreate.js +316 -0
- package/dist/es/commands/identityCreate.js.map +1 -0
- package/dist/es/commands/identityImports.js +82 -0
- package/dist/es/commands/identityImports.js.map +1 -0
- package/dist/es/commands/identityVerifiableCredentialCreate.js +146 -0
- package/dist/es/commands/identityVerifiableCredentialCreate.js.map +1 -0
- package/dist/es/commands/identityVerificationMethodCreate.js +214 -0
- package/dist/es/commands/identityVerificationMethodCreate.js.map +1 -0
- package/dist/es/commands/identityVerificationMethodImport.js +126 -0
- package/dist/es/commands/identityVerificationMethodImport.js.map +1 -0
- package/dist/es/commands/nodeSetIdentity.js +64 -0
- package/dist/es/commands/nodeSetIdentity.js.map +1 -0
- package/dist/es/commands/nodeSetTenant.js +68 -0
- package/dist/es/commands/nodeSetTenant.js.map +1 -0
- package/dist/es/commands/tenantCreate.js +139 -0
- package/dist/es/commands/tenantCreate.js.map +1 -0
- package/dist/es/commands/tenantImport.js +97 -0
- package/dist/es/commands/tenantImport.js.map +1 -0
- package/dist/es/commands/tenantUpdate.js +94 -0
- package/dist/es/commands/tenantUpdate.js.map +1 -0
- package/dist/es/commands/userCreate.js +212 -0
- package/dist/es/commands/userCreate.js.map +1 -0
- package/dist/es/commands/userUpdate.js +132 -0
- package/dist/es/commands/userUpdate.js.map +1 -0
- package/dist/es/commands/vaultKeyCreate.js +191 -0
- package/dist/es/commands/vaultKeyCreate.js.map +1 -0
- package/dist/es/commands/vaultKeyImport.js +104 -0
- package/dist/es/commands/vaultKeyImport.js.map +1 -0
- package/dist/es/defaults.js +19 -1
- package/dist/es/defaults.js.map +1 -1
- package/dist/es/index.js +7 -3
- package/dist/es/index.js.map +1 -1
- package/dist/es/models/ICliArgs.js +4 -0
- package/dist/es/models/ICliArgs.js.map +1 -0
- package/dist/es/models/ICliCommand.js +2 -0
- package/dist/es/models/ICliCommand.js.map +1 -0
- package/dist/es/models/ICliCommandDefinition.js +2 -0
- package/dist/es/models/ICliCommandDefinition.js.map +1 -0
- package/dist/es/models/ICliCommandDefinitionParam.js +2 -0
- package/dist/es/models/ICliCommandDefinitionParam.js.map +1 -0
- package/dist/es/models/IEngineEnvironmentVariables.js.map +1 -1
- package/dist/es/models/IEngineServerEnvironmentVariables.js.map +1 -1
- package/dist/es/models/INodeEngineState.js.map +1 -1
- package/dist/es/models/INodeEnvironmentVariables.js.map +1 -1
- package/dist/es/models/INodeOptions.js.map +1 -1
- package/dist/es/models/cliCommandParamType.js +4 -0
- package/dist/es/models/cliCommandParamType.js.map +1 -0
- package/dist/es/node.js +78 -41
- package/dist/es/node.js.map +1 -1
- package/dist/es/start.js +139 -0
- package/dist/es/start.js.map +1 -0
- package/dist/es/utils.js +11 -21
- package/dist/es/utils.js.map +1 -1
- package/dist/types/builders/engineEnvBuilder.d.ts +4 -1
- package/dist/types/builders/engineServerEnvBuilder.d.ts +5 -2
- package/dist/types/cli.d.ts +56 -0
- package/dist/types/commands/bootstrapLegacy.d.ts +66 -0
- package/dist/types/commands/help.d.ts +23 -0
- package/dist/types/commands/identityCreate.d.ts +39 -0
- package/dist/types/commands/identityImports.d.ts +24 -0
- package/dist/types/commands/identityVerifiableCredentialCreate.d.ts +43 -0
- package/dist/types/commands/identityVerificationMethodCreate.d.ts +47 -0
- package/dist/types/commands/identityVerificationMethodImport.d.ts +31 -0
- package/dist/types/commands/nodeSetIdentity.d.ts +22 -0
- package/dist/types/commands/nodeSetTenant.d.ts +22 -0
- package/dist/types/commands/tenantCreate.d.ts +38 -0
- package/dist/types/commands/tenantImport.d.ts +26 -0
- package/dist/types/commands/tenantUpdate.d.ts +26 -0
- package/dist/types/commands/userCreate.d.ts +49 -0
- package/dist/types/commands/userUpdate.d.ts +38 -0
- package/dist/types/commands/vaultKeyCreate.d.ts +43 -0
- package/dist/types/commands/vaultKeyImport.d.ts +28 -0
- package/dist/types/defaults.d.ts +11 -1
- package/dist/types/index.d.ts +7 -3
- package/dist/types/models/ICliArgs.d.ts +20 -0
- package/dist/types/models/ICliCommand.d.ts +17 -0
- package/dist/types/models/ICliCommandDefinition.d.ts +46 -0
- package/dist/types/models/ICliCommandDefinitionParam.d.ts +35 -0
- package/dist/types/models/IEngineEnvironmentVariables.d.ts +62 -53
- package/dist/types/models/IEngineServerEnvironmentVariables.d.ts +4 -0
- package/dist/types/models/INodeEngineState.d.ts +0 -8
- package/dist/types/models/INodeEnvironmentVariables.d.ts +0 -38
- package/dist/types/models/INodeOptions.d.ts +6 -2
- package/dist/types/models/cliCommandParamType.d.ts +4 -0
- package/dist/types/node.d.ts +8 -4
- package/dist/types/{server.d.ts → start.d.ts} +7 -2
- package/dist/types/utils.d.ts +6 -8
- package/docs/changelog.md +136 -0
- package/docs/reference/functions/buildConfiguration.md +3 -3
- package/docs/reference/functions/buildEngineConfiguration.md +1 -1
- package/docs/reference/functions/buildEngineServerConfiguration.md +3 -3
- package/docs/reference/functions/constructCliCommand.md +27 -0
- package/docs/reference/functions/executeCommand.md +29 -0
- package/docs/reference/functions/getEnvDefaults.md +19 -0
- package/docs/reference/functions/getScriptDirectory.md +19 -0
- package/docs/reference/functions/parseCommandLineArgs.md +19 -0
- package/docs/reference/functions/processEnvOptions.md +27 -0
- package/docs/reference/functions/registerCommands.md +9 -0
- package/docs/reference/functions/run.md +8 -2
- package/docs/reference/functions/start.md +10 -4
- package/docs/reference/functions/substituteEnvOptions.md +25 -0
- package/docs/reference/index.md +16 -13
- package/docs/reference/interfaces/ICliArgs.md +35 -0
- package/docs/reference/interfaces/ICliCommand.md +23 -0
- package/docs/reference/interfaces/ICliCommandDefinition.md +101 -0
- package/docs/reference/interfaces/ICliCommandDefinitionParam.md +65 -0
- package/docs/reference/interfaces/IEngineEnvironmentVariables.md +110 -85
- package/docs/reference/interfaces/IEngineServerEnvironmentVariables.md +166 -117
- package/docs/reference/interfaces/INodeEngineState.md +0 -16
- package/docs/reference/interfaces/INodeEnvironmentVariables.md +170 -201
- package/docs/reference/interfaces/INodeOptions.md +10 -2
- package/docs/reference/type-aliases/CliCommandParamType.md +5 -0
- package/docs/reference/variables/CONTEXT_ID_HANDLER_FEATURE_DID.md +3 -0
- package/docs/reference/variables/CONTEXT_ID_HANDLER_FEATURE_TENANT.md +3 -0
- package/docs/reference/variables/TRUST_VERIFICATION_METHOD_ID.md +3 -0
- package/locales/en.json +589 -30
- package/package.json +3 -1
- package/dist/es/bootstrap.js +0 -374
- package/dist/es/bootstrap.js.map +0 -1
- package/dist/es/identity.js +0 -169
- package/dist/es/identity.js.map +0 -1
- package/dist/es/models/nodeFeatures.js +0 -21
- package/dist/es/models/nodeFeatures.js.map +0 -1
- package/dist/es/server.js +0 -78
- package/dist/es/server.js.map +0 -1
- package/dist/types/bootstrap.d.ts +0 -76
- package/dist/types/identity.d.ts +0 -14
- package/dist/types/models/nodeFeatures.d.ts +0 -21
- package/docs/reference/functions/bootstrap.md +0 -29
- package/docs/reference/functions/bootstrapAuth.md +0 -35
- package/docs/reference/functions/bootstrapBlobEncryption.md +0 -35
- package/docs/reference/functions/bootstrapContextIdHandlers.md +0 -35
- package/docs/reference/functions/bootstrapImmutableProofMethod.md +0 -35
- package/docs/reference/functions/bootstrapNodeAdminUser.md +0 -35
- package/docs/reference/functions/bootstrapNodeId.md +0 -35
- package/docs/reference/functions/bootstrapSynchronisedStorage.md +0 -35
- package/docs/reference/functions/bootstrapTenantId.md +0 -35
- package/docs/reference/functions/getFeatures.md +0 -19
- package/docs/reference/type-aliases/NodeFeatures.md +0 -5
- package/docs/reference/variables/NodeFeatures.md +0 -25
- package/docs/reference/variables/VC_AUTHENTICATION_VERIFICATION_METHOD_ID.md +0 -3
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0.
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { Coerce, Is } from "@twin.org/core";
|
|
5
|
-
import { AttestationComponentType, AttestationConnectorType, AuditableItemGraphComponentType, AuditableItemStreamComponentType,
|
|
6
|
-
import {
|
|
7
|
-
import { ATTESTATION_VERIFICATION_METHOD_ID, BLOB_STORAGE_ENCRYPTION_KEY_ID, IMMUTABLE_PROOF_VERIFICATION_METHOD_ID, SYNCHRONISED_STORAGE_BLOB_STORAGE_ENCRYPTION_KEY_ID, VC_AUTHENTICATION_VERIFICATION_METHOD_ID } from "../defaults.js";
|
|
5
|
+
import { AttestationComponentType, AttestationConnectorType, AuditableItemGraphComponentType, AuditableItemStreamComponentType, BackgroundTaskComponentType, BlobStorageComponentType, BlobStorageConnectorType, ContextIdHandlerComponentType, DataProcessingComponentType, DataSpaceConnectorComponentType, DltConfigType, DocumentManagementComponentType, EngineTypeHelper, EntityStorageConnectorType, EventBusComponentType, EventBusConnectorType, FaucetConnectorType, FederatedCatalogueComponentType, IdentityComponentType, IdentityConnectorType, IdentityProfileComponentType, IdentityProfileConnectorType, IdentityResolverComponentType, IdentityResolverConnectorType, ImmutableProofComponentType, LoggingComponentType, LoggingConnectorType, MessagingAdminComponentType, MessagingComponentType, MessagingEmailConnectorType, MessagingPushNotificationConnectorType, MessagingSmsConnectorType, NftComponentType, NftConnectorType, RightsManagementPapComponentType, RightsManagementPdpComponentType, RightsManagementPepComponentType, RightsManagementPipComponentType, RightsManagementPmpComponentType, RightsManagementPnapComponentType, RightsManagementPnpComponentType, RightsManagementPxpComponentType, SynchronisedStorageComponentType, TaskSchedulerComponentType, TelemetryComponentType, TelemetryConnectorType, TenantAdminComponentType, TrustComponentType, VaultConnectorType, VerifiableStorageComponentType, VerifiableStorageConnectorType, WalletConnectorType } from "@twin.org/engine-types";
|
|
6
|
+
import { CONTEXT_ID_HANDLER_FEATURE_DID, CONTEXT_ID_HANDLER_FEATURE_TENANT } from "../defaults.js";
|
|
8
7
|
/**
|
|
9
8
|
* Build the engine core configuration from environment variables.
|
|
10
9
|
* @param envVars The environment variables.
|
|
@@ -19,9 +18,11 @@ export async function buildEngineConfiguration(envVars, contextIdKeys) {
|
|
|
19
18
|
}
|
|
20
19
|
const coreConfig = {
|
|
21
20
|
debug: Coerce.boolean(envVars.debug) ?? false,
|
|
21
|
+
silent: Coerce.boolean(envVars.silent) ?? false,
|
|
22
22
|
types: {}
|
|
23
23
|
};
|
|
24
24
|
await configureTenant(coreConfig, envVars);
|
|
25
|
+
await configureContextIdHandlers(coreConfig, envVars);
|
|
25
26
|
await configureEntityStorage(coreConfig, envVars);
|
|
26
27
|
await configureBlobStorage(coreConfig, envVars);
|
|
27
28
|
await configureVault(coreConfig, envVars);
|
|
@@ -44,7 +45,7 @@ export async function buildEngineConfiguration(envVars, contextIdKeys) {
|
|
|
44
45
|
await configureAuditableItemGraph(coreConfig, envVars);
|
|
45
46
|
await configureAuditableItemStream(coreConfig, envVars);
|
|
46
47
|
await configureDocumentManagement(coreConfig, envVars);
|
|
47
|
-
await
|
|
48
|
+
await configureTrust(coreConfig, envVars);
|
|
48
49
|
await configureRightsManagement(coreConfig, envVars);
|
|
49
50
|
await configureSynchronisedStorage(coreConfig, envVars);
|
|
50
51
|
await configureFederatedCatalogue(coreConfig, envVars);
|
|
@@ -59,7 +60,7 @@ export async function buildEngineConfiguration(envVars, contextIdKeys) {
|
|
|
59
60
|
async function configureEntityStorage(coreConfig, envVars) {
|
|
60
61
|
coreConfig.types ??= {};
|
|
61
62
|
coreConfig.types.entityStorageConnector ??= [];
|
|
62
|
-
const entityStorageConnectorTypes = envVars.entityStorageConnectorType
|
|
63
|
+
const entityStorageConnectorTypes = commaSeparatedListToArray(envVars.entityStorageConnectorType);
|
|
63
64
|
if (entityStorageConnectorTypes.includes(EntityStorageConnectorType.Memory)) {
|
|
64
65
|
coreConfig.types.entityStorageConnector.push({
|
|
65
66
|
type: EntityStorageConnectorType.Memory
|
|
@@ -83,7 +84,8 @@ async function configureEntityStorage(coreConfig, envVars) {
|
|
|
83
84
|
authMode: envVars.awsDynamodbAuthMode,
|
|
84
85
|
accessKeyId: envVars.awsDynamodbAccessKeyId,
|
|
85
86
|
secretAccessKey: envVars.awsDynamodbSecretAccessKey,
|
|
86
|
-
endpoint: envVars.awsDynamodbEndpoint
|
|
87
|
+
endpoint: envVars.awsDynamodbEndpoint,
|
|
88
|
+
connectionTimeoutMs: Coerce.integer(envVars.awsDynamodbConnectionTimeoutMs)
|
|
87
89
|
},
|
|
88
90
|
tablePrefix: envVars.entityStorageTablePrefix
|
|
89
91
|
}
|
|
@@ -123,7 +125,7 @@ async function configureEntityStorage(coreConfig, envVars) {
|
|
|
123
125
|
type: EntityStorageConnectorType.ScyllaDb,
|
|
124
126
|
options: {
|
|
125
127
|
config: {
|
|
126
|
-
hosts: envVars.scylladbHosts
|
|
128
|
+
hosts: commaSeparatedListToArray(envVars.scylladbHosts),
|
|
127
129
|
localDataCenter: envVars.scylladbLocalDataCenter ?? "",
|
|
128
130
|
keyspace: envVars.scylladbKeyspace ?? "",
|
|
129
131
|
port: Coerce.integer(envVars.scylladbPort)
|
|
@@ -203,7 +205,7 @@ async function configureEntityStorage(coreConfig, envVars) {
|
|
|
203
205
|
*/
|
|
204
206
|
async function configureBlobStorage(coreConfig, envVars) {
|
|
205
207
|
coreConfig.types.blobStorageConnector ??= [];
|
|
206
|
-
const blobStorageConnectorTypes = envVars.blobStorageConnectorType
|
|
208
|
+
const blobStorageConnectorTypes = commaSeparatedListToArray(envVars.blobStorageConnectorType);
|
|
207
209
|
if (blobStorageConnectorTypes.includes(BlobStorageConnectorType.Memory)) {
|
|
208
210
|
coreConfig.types.blobStorageConnector.push({
|
|
209
211
|
type: BlobStorageConnectorType.Memory
|
|
@@ -300,7 +302,7 @@ async function configureBlobStorage(coreConfig, envVars) {
|
|
|
300
302
|
options: {
|
|
301
303
|
config: {
|
|
302
304
|
vaultKeyId: (envVars.blobStorageEnableEncryption ?? false)
|
|
303
|
-
?
|
|
305
|
+
? envVars.blobStorageEncryptionKeyId
|
|
304
306
|
: undefined
|
|
305
307
|
}
|
|
306
308
|
}
|
|
@@ -314,7 +316,7 @@ async function configureBlobStorage(coreConfig, envVars) {
|
|
|
314
316
|
*/
|
|
315
317
|
async function configureLogging(coreConfig, envVars) {
|
|
316
318
|
coreConfig.types.loggingConnector ??= [];
|
|
317
|
-
const loggingConnectorTypes = (envVars.loggingConnector
|
|
319
|
+
const loggingConnectorTypes = commaSeparatedListToArray(envVars.loggingConnector);
|
|
318
320
|
let additionalConnectorCount = 0;
|
|
319
321
|
for (const loggingConnector of loggingConnectorTypes) {
|
|
320
322
|
if (loggingConnector === LoggingConnectorType.Console) {
|
|
@@ -368,7 +370,12 @@ async function configureVault(coreConfig, envVars) {
|
|
|
368
370
|
coreConfig.types.vaultConnector ??= [];
|
|
369
371
|
if (envVars.vaultConnector === VaultConnectorType.EntityStorage) {
|
|
370
372
|
coreConfig.types.vaultConnector.push({
|
|
371
|
-
type: VaultConnectorType.EntityStorage
|
|
373
|
+
type: VaultConnectorType.EntityStorage,
|
|
374
|
+
options: {
|
|
375
|
+
config: {
|
|
376
|
+
prefix: envVars.vaultPrefix
|
|
377
|
+
}
|
|
378
|
+
}
|
|
372
379
|
});
|
|
373
380
|
}
|
|
374
381
|
else if (envVars.vaultConnector === VaultConnectorType.Hashicorp) {
|
|
@@ -377,7 +384,8 @@ async function configureVault(coreConfig, envVars) {
|
|
|
377
384
|
options: {
|
|
378
385
|
config: {
|
|
379
386
|
endpoint: envVars.hashicorpVaultEndpoint ?? "",
|
|
380
|
-
token: envVars.hashicorpVaultToken ?? ""
|
|
387
|
+
token: envVars.hashicorpVaultToken ?? "",
|
|
388
|
+
prefix: envVars.vaultPrefix
|
|
381
389
|
}
|
|
382
390
|
}
|
|
383
391
|
});
|
|
@@ -389,10 +397,10 @@ async function configureVault(coreConfig, envVars) {
|
|
|
389
397
|
* @param envVars The environment variables.
|
|
390
398
|
*/
|
|
391
399
|
async function configureBackgroundTask(coreConfig, envVars) {
|
|
392
|
-
coreConfig.types.
|
|
393
|
-
if (envVars.
|
|
394
|
-
coreConfig.types.
|
|
395
|
-
type:
|
|
400
|
+
coreConfig.types.backgroundTaskComponent ??= [];
|
|
401
|
+
if (Coerce.boolean(envVars.backgroundTasksEnabled) ?? false) {
|
|
402
|
+
coreConfig.types.backgroundTaskComponent.push({
|
|
403
|
+
type: BackgroundTaskComponentType.Service
|
|
396
404
|
});
|
|
397
405
|
}
|
|
398
406
|
}
|
|
@@ -445,6 +453,24 @@ async function configureTenant(coreConfig, envVars) {
|
|
|
445
453
|
coreConfig.types.tenantComponent.push({ type: TenantAdminComponentType.Service });
|
|
446
454
|
}
|
|
447
455
|
}
|
|
456
|
+
/**
|
|
457
|
+
* Configures the context id handlers.
|
|
458
|
+
* @param coreConfig The core config.
|
|
459
|
+
* @param envVars The environment variables.
|
|
460
|
+
*/
|
|
461
|
+
async function configureContextIdHandlers(coreConfig, envVars) {
|
|
462
|
+
coreConfig.types.contextIdHandlerComponent ??= [];
|
|
463
|
+
coreConfig.types.contextIdHandlerComponent.push({
|
|
464
|
+
type: ContextIdHandlerComponentType.Did,
|
|
465
|
+
features: [CONTEXT_ID_HANDLER_FEATURE_DID]
|
|
466
|
+
});
|
|
467
|
+
if (Coerce.boolean(envVars.tenantEnabled) ?? false) {
|
|
468
|
+
coreConfig.types.contextIdHandlerComponent.push({
|
|
469
|
+
type: ContextIdHandlerComponentType.Tenant,
|
|
470
|
+
features: [CONTEXT_ID_HANDLER_FEATURE_TENANT]
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
}
|
|
448
474
|
/**
|
|
449
475
|
* Configures the messaging.
|
|
450
476
|
* @param coreConfig The core config.
|
|
@@ -629,7 +655,7 @@ async function configureVerifiableStorage(coreConfig, envVars) {
|
|
|
629
655
|
type: ImmutableProofComponentType.Service,
|
|
630
656
|
options: {
|
|
631
657
|
config: {
|
|
632
|
-
verificationMethodId: envVars.immutableProofVerificationMethodId
|
|
658
|
+
verificationMethodId: envVars.immutableProofVerificationMethodId
|
|
633
659
|
}
|
|
634
660
|
}
|
|
635
661
|
});
|
|
@@ -652,7 +678,10 @@ async function configureIdentity(coreConfig, envVars) {
|
|
|
652
678
|
coreConfig.types.identityConnector.push({
|
|
653
679
|
type: IdentityConnectorType.Iota,
|
|
654
680
|
options: {
|
|
655
|
-
config:
|
|
681
|
+
config: {
|
|
682
|
+
...(dltConfig?.options?.config ?? {}),
|
|
683
|
+
walletAddressIndex: Coerce.integer(envVars.identityWalletAddressIndex) ?? 0
|
|
684
|
+
}
|
|
656
685
|
}
|
|
657
686
|
});
|
|
658
687
|
}
|
|
@@ -734,7 +763,7 @@ async function configureAttestation(coreConfig, envVars) {
|
|
|
734
763
|
type: AttestationComponentType.Service,
|
|
735
764
|
options: {
|
|
736
765
|
config: {
|
|
737
|
-
verificationMethodId: envVars.attestationVerificationMethodId
|
|
766
|
+
verificationMethodId: envVars.attestationVerificationMethodId
|
|
738
767
|
}
|
|
739
768
|
}
|
|
740
769
|
});
|
|
@@ -776,27 +805,18 @@ async function configureDataProcessing(coreConfig, envVars) {
|
|
|
776
805
|
coreConfig.types.dataProcessingComponent ??= [];
|
|
777
806
|
coreConfig.types.dataProcessingComponent.push({ type: DataProcessingComponentType.Service });
|
|
778
807
|
coreConfig.types.dataConverterConnector ??= [];
|
|
779
|
-
const converterConnectors = envVars.dataConverterConnectors
|
|
808
|
+
const converterConnectors = commaSeparatedListToArray(envVars.dataConverterConnectors);
|
|
780
809
|
for (const converterConnector of converterConnectors) {
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
});
|
|
785
|
-
}
|
|
786
|
-
else if (converterConnector === DataConverterConnectorType.Xml) {
|
|
787
|
-
coreConfig.types.dataConverterConnector.push({
|
|
788
|
-
type: DataConverterConnectorType.Xml
|
|
789
|
-
});
|
|
790
|
-
}
|
|
810
|
+
coreConfig.types.dataConverterConnector.push({
|
|
811
|
+
type: converterConnector
|
|
812
|
+
});
|
|
791
813
|
}
|
|
792
814
|
coreConfig.types.dataExtractorConnector ??= [];
|
|
793
|
-
const extractorConnectors = envVars.dataExtractorConnectors
|
|
815
|
+
const extractorConnectors = commaSeparatedListToArray(envVars.dataExtractorConnectors);
|
|
794
816
|
for (const extractorConnector of extractorConnectors) {
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
});
|
|
799
|
-
}
|
|
817
|
+
coreConfig.types.dataExtractorConnector.push({
|
|
818
|
+
type: extractorConnector
|
|
819
|
+
});
|
|
800
820
|
}
|
|
801
821
|
}
|
|
802
822
|
}
|
|
@@ -814,23 +834,36 @@ async function configureDocumentManagement(coreConfig, envVars) {
|
|
|
814
834
|
}
|
|
815
835
|
}
|
|
816
836
|
/**
|
|
817
|
-
* Configures the
|
|
837
|
+
* Configures the trust components.
|
|
818
838
|
* @param coreConfig The core config.
|
|
819
839
|
* @param envVars The environment variables.
|
|
820
840
|
*/
|
|
821
|
-
async function
|
|
822
|
-
if (Coerce.boolean(envVars.
|
|
823
|
-
|
|
824
|
-
coreConfig.types.
|
|
825
|
-
|
|
826
|
-
type: AuthenticationGeneratorComponentType.VerifiableCredential,
|
|
827
|
-
options: {
|
|
828
|
-
config: {
|
|
829
|
-
verificationMethodId: envVars.vcAuthenticationVerificationMethodId ?? VC_AUTHENTICATION_VERIFICATION_METHOD_ID
|
|
830
|
-
}
|
|
831
|
-
},
|
|
832
|
-
features: ["verifiable-credential"]
|
|
841
|
+
async function configureTrust(coreConfig, envVars) {
|
|
842
|
+
if (Coerce.boolean(envVars.trustEnabled) ?? false) {
|
|
843
|
+
coreConfig.types.trustComponent ??= [];
|
|
844
|
+
coreConfig.types.trustComponent.push({
|
|
845
|
+
type: TrustComponentType.Service
|
|
833
846
|
});
|
|
847
|
+
coreConfig.types.trustGeneratorComponent ??= [];
|
|
848
|
+
const trustGeneratorTypes = commaSeparatedListToArray(envVars.trustGenerators);
|
|
849
|
+
for (const trustGeneratorType of trustGeneratorTypes) {
|
|
850
|
+
coreConfig.types.trustGeneratorComponent.push({
|
|
851
|
+
type: trustGeneratorType,
|
|
852
|
+
options: {
|
|
853
|
+
config: {
|
|
854
|
+
verificationMethodId: envVars.trustVerificationMethodId ?? "",
|
|
855
|
+
tokenTtlInSeconds: Coerce.integer(envVars.trustJwtTtlSeconds)
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
});
|
|
859
|
+
}
|
|
860
|
+
coreConfig.types.trustVerifierComponent ??= [];
|
|
861
|
+
const trustVerifierTypes = commaSeparatedListToArray(envVars.trustVerifiers);
|
|
862
|
+
for (const trustVerifierType of trustVerifierTypes) {
|
|
863
|
+
coreConfig.types.trustVerifierComponent.push({
|
|
864
|
+
type: trustVerifierType
|
|
865
|
+
});
|
|
866
|
+
}
|
|
834
867
|
}
|
|
835
868
|
}
|
|
836
869
|
/**
|
|
@@ -850,56 +883,37 @@ async function configureRightsManagement(coreConfig, envVars) {
|
|
|
850
883
|
});
|
|
851
884
|
coreConfig.types.rightsManagementPipComponent ??= [];
|
|
852
885
|
coreConfig.types.rightsManagementPipComponent.push({
|
|
853
|
-
type: RightsManagementPipComponentType.Service
|
|
854
|
-
options: {
|
|
855
|
-
informationModulesConfig: Is.arrayValue(envVars.rightsManagementInformationSources)
|
|
856
|
-
? envVars.rightsManagementInformationSources
|
|
857
|
-
: undefined
|
|
858
|
-
}
|
|
886
|
+
type: RightsManagementPipComponentType.Service
|
|
859
887
|
});
|
|
860
888
|
coreConfig.types.rightsManagementPxpComponent ??= [];
|
|
861
889
|
coreConfig.types.rightsManagementPxpComponent.push({
|
|
862
|
-
type: RightsManagementPxpComponentType.Service
|
|
863
|
-
options: {
|
|
864
|
-
actionModulesConfig: Is.arrayValue(envVars.rightsManagementExecutionActions)
|
|
865
|
-
? envVars.rightsManagementExecutionActions
|
|
866
|
-
: undefined
|
|
867
|
-
}
|
|
890
|
+
type: RightsManagementPxpComponentType.Service
|
|
868
891
|
});
|
|
869
892
|
coreConfig.types.rightsManagementPdpComponent ??= [];
|
|
870
893
|
coreConfig.types.rightsManagementPdpComponent.push({
|
|
871
|
-
type: RightsManagementPdpComponentType.Service
|
|
872
|
-
options: {
|
|
873
|
-
arbiterModulesConfig: Is.arrayValue(envVars.rightsManagementArbiters)
|
|
874
|
-
? envVars.rightsManagementArbiters
|
|
875
|
-
: undefined
|
|
876
|
-
}
|
|
894
|
+
type: RightsManagementPdpComponentType.Service
|
|
877
895
|
});
|
|
878
896
|
coreConfig.types.rightsManagementPepComponent ??= [];
|
|
879
897
|
coreConfig.types.rightsManagementPepComponent.push({
|
|
880
|
-
type: RightsManagementPepComponentType.Service
|
|
881
|
-
options: {
|
|
882
|
-
processorModulesConfig: Is.arrayValue(envVars.rightsManagementEnforcementProcessors)
|
|
883
|
-
? envVars.rightsManagementEnforcementProcessors
|
|
884
|
-
: undefined
|
|
885
|
-
}
|
|
898
|
+
type: RightsManagementPepComponentType.Service
|
|
886
899
|
});
|
|
887
900
|
coreConfig.types.rightsManagementPnpComponent ??= [];
|
|
901
|
+
// We add a multi instance REST client for the remote negotiations
|
|
902
|
+
// use a dummy endpoint for now as the actual endpoint will be provided in the config
|
|
903
|
+
// of the policy negotiator when it is used for remote negotiations
|
|
904
|
+
coreConfig.types.rightsManagementPnpComponent.push({
|
|
905
|
+
type: RightsManagementPnpComponentType.RestClient,
|
|
906
|
+
options: {
|
|
907
|
+
endpoint: "http://localhost"
|
|
908
|
+
},
|
|
909
|
+
isMultiInstance: true,
|
|
910
|
+
features: ["remote"]
|
|
911
|
+
});
|
|
888
912
|
coreConfig.types.rightsManagementPnpComponent.push({
|
|
889
913
|
type: RightsManagementPnpComponentType.Service,
|
|
890
914
|
options: {
|
|
891
|
-
negotiatorModulesConfig: Is.arrayValue(envVars.rightsManagementNegotiators)
|
|
892
|
-
? envVars.rightsManagementNegotiators
|
|
893
|
-
: undefined,
|
|
894
|
-
requesterModulesConfig: Is.arrayValue(envVars.rightsManagementRequesters)
|
|
895
|
-
? envVars.rightsManagementRequesters
|
|
896
|
-
: undefined,
|
|
897
915
|
config: {
|
|
898
|
-
|
|
899
|
-
offers: Is.arrayValue(envVars.rightsManagementOffers)
|
|
900
|
-
? envVars.rightsManagementOffers
|
|
901
|
-
: [],
|
|
902
|
-
negotiationComponentCreator: async (url) => new PolicyNegotiationPointRestClient({ endpoint: url })
|
|
916
|
+
callbackPath: envVars.rightsManagementCallbackPath ?? ""
|
|
903
917
|
}
|
|
904
918
|
}
|
|
905
919
|
});
|
|
@@ -907,19 +921,55 @@ async function configureRightsManagement(coreConfig, envVars) {
|
|
|
907
921
|
coreConfig.types.rightsManagementPnapComponent.push({
|
|
908
922
|
type: RightsManagementPnapComponentType.Service
|
|
909
923
|
});
|
|
910
|
-
coreConfig.types.
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
924
|
+
coreConfig.types.rightsManagementPolicyArbiterComponent ??= [];
|
|
925
|
+
const policyArbiterTypes = commaSeparatedListToArray(envVars.rightsManagementPolicyArbiters);
|
|
926
|
+
for (const policyArbiterType of policyArbiterTypes) {
|
|
927
|
+
coreConfig.types.rightsManagementPolicyArbiterComponent.push({
|
|
928
|
+
type: policyArbiterType
|
|
929
|
+
});
|
|
930
|
+
}
|
|
931
|
+
coreConfig.types.rightsManagementPolicyObligationEnforcerComponent ??= [];
|
|
932
|
+
const policyObligationEnforcerTypes = commaSeparatedListToArray(envVars.rightsManagementPolicyObligationEnforcers);
|
|
933
|
+
for (const policyObligationEnforcerType of policyObligationEnforcerTypes) {
|
|
934
|
+
coreConfig.types.rightsManagementPolicyObligationEnforcerComponent.push({
|
|
935
|
+
type: policyObligationEnforcerType
|
|
936
|
+
});
|
|
937
|
+
}
|
|
938
|
+
coreConfig.types.rightsManagementPolicyEnforcementProcessorComponent ??= [];
|
|
939
|
+
const policyEnforcementProcessTypes = commaSeparatedListToArray(envVars.rightsManagementPolicyEnforcementProcessors);
|
|
940
|
+
for (const policyEnforcementProcessorType of policyEnforcementProcessTypes) {
|
|
941
|
+
coreConfig.types.rightsManagementPolicyEnforcementProcessorComponent.push({
|
|
942
|
+
type: policyEnforcementProcessorType
|
|
943
|
+
});
|
|
944
|
+
}
|
|
945
|
+
coreConfig.types.rightsManagementPolicyExecutionActionComponent ??= [];
|
|
946
|
+
const policyExecutionActionTypes = commaSeparatedListToArray(envVars.rightsManagementPolicyExecutionActions);
|
|
947
|
+
for (const policyExecutionActionType of policyExecutionActionTypes) {
|
|
948
|
+
coreConfig.types.rightsManagementPolicyExecutionActionComponent.push({
|
|
949
|
+
type: policyExecutionActionType
|
|
950
|
+
});
|
|
951
|
+
}
|
|
952
|
+
coreConfig.types.rightsManagementPolicyInformationSourceComponent ??= [];
|
|
953
|
+
const policyInformationSourceTypes = commaSeparatedListToArray(envVars.rightsManagementPolicyInformationSources);
|
|
954
|
+
for (const policyInformationSourceType of policyInformationSourceTypes) {
|
|
955
|
+
coreConfig.types.rightsManagementPolicyInformationSourceComponent.push({
|
|
956
|
+
type: policyInformationSourceType
|
|
957
|
+
});
|
|
958
|
+
}
|
|
959
|
+
coreConfig.types.rightsManagementPolicyRequesterComponent ??= [];
|
|
960
|
+
const policyRequesterTypes = commaSeparatedListToArray(envVars.rightsManagementPolicyRequesters);
|
|
961
|
+
for (const policyRequesterType of policyRequesterTypes) {
|
|
962
|
+
coreConfig.types.rightsManagementPolicyRequesterComponent.push({
|
|
963
|
+
type: policyRequesterType
|
|
964
|
+
});
|
|
965
|
+
}
|
|
966
|
+
coreConfig.types.rightsManagementPolicyNegotiatorComponent ??= [];
|
|
967
|
+
const policyNegotiatorTypes = commaSeparatedListToArray(envVars.rightsManagementPolicyNegotiators);
|
|
968
|
+
for (const policyNegotiatorType of policyNegotiatorTypes) {
|
|
969
|
+
coreConfig.types.rightsManagementPolicyNegotiatorComponent.push({
|
|
970
|
+
type: policyNegotiatorType
|
|
971
|
+
});
|
|
972
|
+
}
|
|
923
973
|
}
|
|
924
974
|
}
|
|
925
975
|
/**
|
|
@@ -955,8 +1005,7 @@ async function configureSynchronisedStorage(coreConfig, envVars) {
|
|
|
955
1005
|
options: {
|
|
956
1006
|
config: {
|
|
957
1007
|
verifiableStorageKeyId: verifiableStorageKeyId ?? "",
|
|
958
|
-
blobStorageEncryptionKeyId: envVars.synchronisedStorageBlobStorageEncryptionKeyId
|
|
959
|
-
SYNCHRONISED_STORAGE_BLOB_STORAGE_ENCRYPTION_KEY_ID,
|
|
1008
|
+
blobStorageEncryptionKeyId: envVars.synchronisedStorageBlobStorageEncryptionKeyId,
|
|
960
1009
|
entityUpdateIntervalMinutes: Coerce.number(envVars.synchronisedStorageEntityUpdateIntervalMinutes),
|
|
961
1010
|
consolidationIntervalMinutes: Coerce.number(envVars.synchronisedStorageConsolidationIntervalMinutes),
|
|
962
1011
|
consolidationBatchSize: Coerce.number(envVars.synchronisedStorageConsolidationBatchSize),
|
|
@@ -988,13 +1037,16 @@ async function configureFederatedCatalogue(coreConfig, envVars) {
|
|
|
988
1037
|
coreConfig.types.federatedCatalogueComponent ??= [];
|
|
989
1038
|
coreConfig.types.federatedCatalogueComponent.push({
|
|
990
1039
|
type: FederatedCatalogueComponentType.Service,
|
|
991
|
-
options: {
|
|
992
|
-
config: {
|
|
993
|
-
subResourceCacheTtlMs: Coerce.number(envVars.federatedCatalogueCacheTtlMs),
|
|
994
|
-
clearingHouseApproverList: Coerce.object(envVars.federatedCatalogueClearingHouseApproverList) ?? []
|
|
995
|
-
}
|
|
996
|
-
}
|
|
1040
|
+
options: {}
|
|
997
1041
|
});
|
|
1042
|
+
coreConfig.types.federatedCatalogueFilterComponent ??= [];
|
|
1043
|
+
const filters = commaSeparatedListToArray(envVars.federatedCatalogueFilters);
|
|
1044
|
+
for (const filter of filters) {
|
|
1045
|
+
coreConfig.types.federatedCatalogueFilterComponent.push({
|
|
1046
|
+
type: filter,
|
|
1047
|
+
options: {}
|
|
1048
|
+
});
|
|
1049
|
+
}
|
|
998
1050
|
}
|
|
999
1051
|
}
|
|
1000
1052
|
/**
|
|
@@ -1048,4 +1100,15 @@ async function configureDlt(coreConfig, envVars) {
|
|
|
1048
1100
|
});
|
|
1049
1101
|
}
|
|
1050
1102
|
}
|
|
1103
|
+
/**
|
|
1104
|
+
* Converts a comma separated list to an array.
|
|
1105
|
+
* @param value The comma separated list.
|
|
1106
|
+
* @returns The array.
|
|
1107
|
+
*/
|
|
1108
|
+
function commaSeparatedListToArray(value) {
|
|
1109
|
+
return (value ?? "")
|
|
1110
|
+
.split(",")
|
|
1111
|
+
.map(item => item.trim())
|
|
1112
|
+
.filter(item => item.length > 0);
|
|
1113
|
+
}
|
|
1051
1114
|
//# sourceMappingURL=engineEnvBuilder.js.map
|