@twin.org/node-core 0.0.3-next.4 → 0.0.3-next.40

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.
Files changed (186) hide show
  1. package/README.md +3 -1
  2. package/dist/es/builders/engineEnvBuilder.js +443 -126
  3. package/dist/es/builders/engineEnvBuilder.js.map +1 -1
  4. package/dist/es/builders/engineServerEnvBuilder.js +89 -32
  5. package/dist/es/builders/engineServerEnvBuilder.js.map +1 -1
  6. package/dist/es/builders/extensionsBuilder.js.map +1 -1
  7. package/dist/es/cli.js +247 -0
  8. package/dist/es/cli.js.map +1 -0
  9. package/dist/es/commands/bootstrapLegacy.js +199 -0
  10. package/dist/es/commands/bootstrapLegacy.js.map +1 -0
  11. package/dist/es/commands/help.js +85 -0
  12. package/dist/es/commands/help.js.map +1 -0
  13. package/dist/es/commands/identityCreate.js +327 -0
  14. package/dist/es/commands/identityCreate.js.map +1 -0
  15. package/dist/es/commands/identityImports.js +82 -0
  16. package/dist/es/commands/identityImports.js.map +1 -0
  17. package/dist/es/commands/identityVerifiableCredentialCreate.js +146 -0
  18. package/dist/es/commands/identityVerifiableCredentialCreate.js.map +1 -0
  19. package/dist/es/commands/identityVerificationMethodCreate.js +228 -0
  20. package/dist/es/commands/identityVerificationMethodCreate.js.map +1 -0
  21. package/dist/es/commands/identityVerificationMethodImport.js +126 -0
  22. package/dist/es/commands/identityVerificationMethodImport.js.map +1 -0
  23. package/dist/es/commands/nodeSetIdentity.js +64 -0
  24. package/dist/es/commands/nodeSetIdentity.js.map +1 -0
  25. package/dist/es/commands/nodeSetTenant.js +68 -0
  26. package/dist/es/commands/nodeSetTenant.js.map +1 -0
  27. package/dist/es/commands/tenantCreate.js +139 -0
  28. package/dist/es/commands/tenantCreate.js.map +1 -0
  29. package/dist/es/commands/tenantImport.js +97 -0
  30. package/dist/es/commands/tenantImport.js.map +1 -0
  31. package/dist/es/commands/tenantUpdate.js +94 -0
  32. package/dist/es/commands/tenantUpdate.js.map +1 -0
  33. package/dist/es/commands/userCreate.js +239 -0
  34. package/dist/es/commands/userCreate.js.map +1 -0
  35. package/dist/es/commands/userUpdate.js +154 -0
  36. package/dist/es/commands/userUpdate.js.map +1 -0
  37. package/dist/es/commands/vaultKeyCreate.js +191 -0
  38. package/dist/es/commands/vaultKeyCreate.js.map +1 -0
  39. package/dist/es/commands/vaultKeyImport.js +104 -0
  40. package/dist/es/commands/vaultKeyImport.js.map +1 -0
  41. package/dist/es/defaults.js +19 -1
  42. package/dist/es/defaults.js.map +1 -1
  43. package/dist/es/index.js +11 -4
  44. package/dist/es/index.js.map +1 -1
  45. package/dist/es/models/ICliArgs.js +4 -0
  46. package/dist/es/models/ICliArgs.js.map +1 -0
  47. package/dist/es/models/ICliCommand.js +2 -0
  48. package/dist/es/models/ICliCommand.js.map +1 -0
  49. package/dist/es/models/ICliCommandDefinition.js +2 -0
  50. package/dist/es/models/ICliCommandDefinition.js.map +1 -0
  51. package/dist/es/models/ICliCommandDefinitionParam.js +2 -0
  52. package/dist/es/models/ICliCommandDefinitionParam.js.map +1 -0
  53. package/dist/es/models/IEngineEnvironmentVariables.js.map +1 -1
  54. package/dist/es/models/IEngineServerEnvironmentVariables.js.map +1 -1
  55. package/dist/es/models/INodeEngineState.js.map +1 -1
  56. package/dist/es/models/INodeEnvironmentVariables.js.map +1 -1
  57. package/dist/es/models/INodeOptions.js.map +1 -1
  58. package/dist/es/models/cliCommandParamType.js +4 -0
  59. package/dist/es/models/cliCommandParamType.js.map +1 -0
  60. package/dist/es/models/nodeExtensionInitialiseEngineMethod.js +2 -0
  61. package/dist/es/models/nodeExtensionInitialiseEngineMethod.js.map +1 -0
  62. package/dist/es/models/nodeExtensionInitialiseEngineServerMethod.js +2 -0
  63. package/dist/es/models/nodeExtensionInitialiseEngineServerMethod.js.map +1 -0
  64. package/dist/es/models/nodeExtensionInitialiseMethod.js +2 -0
  65. package/dist/es/models/nodeExtensionInitialiseMethod.js.map +1 -0
  66. package/dist/es/models/nodeExtensionShutdownMethod.js +4 -0
  67. package/dist/es/models/nodeExtensionShutdownMethod.js.map +1 -0
  68. package/dist/es/node.js +86 -39
  69. package/dist/es/node.js.map +1 -1
  70. package/dist/es/start.js +139 -0
  71. package/dist/es/start.js.map +1 -0
  72. package/dist/es/utils.js +12 -22
  73. package/dist/es/utils.js.map +1 -1
  74. package/dist/types/builders/engineEnvBuilder.d.ts +64 -1
  75. package/dist/types/builders/engineServerEnvBuilder.d.ts +11 -2
  76. package/dist/types/cli.d.ts +56 -0
  77. package/dist/types/commands/bootstrapLegacy.d.ts +66 -0
  78. package/dist/types/commands/help.d.ts +23 -0
  79. package/dist/types/commands/identityCreate.d.ts +39 -0
  80. package/dist/types/commands/identityImports.d.ts +24 -0
  81. package/dist/types/commands/identityVerifiableCredentialCreate.d.ts +43 -0
  82. package/dist/types/commands/identityVerificationMethodCreate.d.ts +47 -0
  83. package/dist/types/commands/identityVerificationMethodImport.d.ts +31 -0
  84. package/dist/types/commands/nodeSetIdentity.d.ts +22 -0
  85. package/dist/types/commands/nodeSetTenant.d.ts +22 -0
  86. package/dist/types/commands/tenantCreate.d.ts +38 -0
  87. package/dist/types/commands/tenantImport.d.ts +26 -0
  88. package/dist/types/commands/tenantUpdate.d.ts +26 -0
  89. package/dist/types/commands/userCreate.d.ts +51 -0
  90. package/dist/types/commands/userUpdate.d.ts +40 -0
  91. package/dist/types/commands/vaultKeyCreate.d.ts +43 -0
  92. package/dist/types/commands/vaultKeyImport.d.ts +28 -0
  93. package/dist/types/defaults.d.ts +10 -1
  94. package/dist/types/index.d.ts +11 -4
  95. package/dist/types/models/ICliArgs.d.ts +20 -0
  96. package/dist/types/models/ICliCommand.d.ts +17 -0
  97. package/dist/types/models/ICliCommandDefinition.d.ts +46 -0
  98. package/dist/types/models/ICliCommandDefinitionParam.d.ts +35 -0
  99. package/dist/types/models/IEngineEnvironmentVariables.d.ts +117 -60
  100. package/dist/types/models/IEngineServerEnvironmentVariables.d.ts +8 -0
  101. package/dist/types/models/INodeEngineState.d.ts +0 -8
  102. package/dist/types/models/INodeEnvironmentVariables.d.ts +0 -38
  103. package/dist/types/models/INodeOptions.d.ts +6 -2
  104. package/dist/types/models/cliCommandParamType.d.ts +4 -0
  105. package/dist/types/models/nodeExtensionInitialiseEngineMethod.d.ts +7 -0
  106. package/dist/types/models/nodeExtensionInitialiseEngineServerMethod.d.ts +8 -0
  107. package/dist/types/models/nodeExtensionInitialiseMethod.d.ts +8 -0
  108. package/dist/types/models/nodeExtensionShutdownMethod.d.ts +5 -0
  109. package/dist/types/node.d.ts +5 -4
  110. package/dist/types/{server.d.ts → start.d.ts} +4 -2
  111. package/dist/types/utils.d.ts +6 -8
  112. package/docs/changelog.md +532 -176
  113. package/docs/examples.md +99 -1
  114. package/docs/reference/functions/buildConfiguration.md +1 -1
  115. package/docs/reference/functions/buildEngineServerConfiguration.md +1 -1
  116. package/docs/reference/functions/constructCliCommand.md +27 -0
  117. package/docs/reference/functions/executeCommand.md +29 -0
  118. package/docs/reference/functions/getEnvDefaults.md +19 -0
  119. package/docs/reference/functions/getScriptDirectory.md +19 -0
  120. package/docs/reference/functions/isAuthEntityStorageRequired.md +20 -0
  121. package/docs/reference/functions/isAutomationRequired.md +20 -0
  122. package/docs/reference/functions/isBackgroundTasksRequired.md +20 -0
  123. package/docs/reference/functions/isFederatedCatalogueRequired.md +20 -0
  124. package/docs/reference/functions/isImmutableProofRequired.md +20 -0
  125. package/docs/reference/functions/isRightsManagementRequired.md +20 -0
  126. package/docs/reference/functions/isTaskSchedulerRequired.md +20 -0
  127. package/docs/reference/functions/isTelemetryRequired.md +20 -0
  128. package/docs/reference/functions/isTrustRequired.md +20 -0
  129. package/docs/reference/functions/isUrlTransformerRequired.md +20 -0
  130. package/docs/reference/functions/parseCommandLineArgs.md +19 -0
  131. package/docs/reference/functions/processEnvOptions.md +27 -0
  132. package/docs/reference/functions/registerCommands.md +9 -0
  133. package/docs/reference/functions/resolvePackageEntryPoint.md +2 -2
  134. package/docs/reference/functions/run.md +8 -2
  135. package/docs/reference/functions/start.md +9 -3
  136. package/docs/reference/functions/substituteEnvOptions.md +25 -0
  137. package/docs/reference/index.md +26 -13
  138. package/docs/reference/interfaces/ICacheMetadata.md +3 -3
  139. package/docs/reference/interfaces/ICliArgs.md +35 -0
  140. package/docs/reference/interfaces/ICliCommand.md +23 -0
  141. package/docs/reference/interfaces/ICliCommandDefinition.md +101 -0
  142. package/docs/reference/interfaces/ICliCommandDefinitionParam.md +65 -0
  143. package/docs/reference/interfaces/IEngineEnvironmentVariables.md +420 -311
  144. package/docs/reference/interfaces/IEngineServerEnvironmentVariables.md +545 -368
  145. package/docs/reference/interfaces/IModuleProtocol.md +3 -3
  146. package/docs/reference/interfaces/INodeEngineState.md +4 -20
  147. package/docs/reference/interfaces/INodeEnvironmentVariables.md +551 -450
  148. package/docs/reference/interfaces/INodeOptions.md +44 -36
  149. package/docs/reference/interfaces/IProtocolHandlerResult.md +2 -2
  150. package/docs/reference/type-aliases/CliCommandParamType.md +5 -0
  151. package/docs/reference/type-aliases/NodeExtensionInitialiseEngineMethod.md +1 -1
  152. package/docs/reference/type-aliases/NodeExtensionInitialiseEngineServerMethod.md +1 -1
  153. package/docs/reference/type-aliases/NodeExtensionInitialiseMethod.md +1 -1
  154. package/docs/reference/type-aliases/NodeExtensionShutdownMethod.md +1 -1
  155. package/docs/reference/variables/ModuleProtocol.md +5 -5
  156. package/docs/reference/variables/TRUST_VERIFICATION_METHOD_ID.md +3 -0
  157. package/docs/reference/variables/URL_TRANSFORMER_ENCRYPTION_KEY_ID.md +3 -0
  158. package/locales/en.json +600 -30
  159. package/package.json +10 -6
  160. package/dist/es/bootstrap.js +0 -366
  161. package/dist/es/bootstrap.js.map +0 -1
  162. package/dist/es/identity.js +0 -182
  163. package/dist/es/identity.js.map +0 -1
  164. package/dist/es/models/nodeExtensionMethods.js +0 -2
  165. package/dist/es/models/nodeExtensionMethods.js.map +0 -1
  166. package/dist/es/models/nodeFeatures.js +0 -21
  167. package/dist/es/models/nodeFeatures.js.map +0 -1
  168. package/dist/es/server.js +0 -81
  169. package/dist/es/server.js.map +0 -1
  170. package/dist/types/bootstrap.d.ts +0 -68
  171. package/dist/types/identity.d.ts +0 -14
  172. package/dist/types/models/nodeExtensionMethods.d.ts +0 -27
  173. package/dist/types/models/nodeFeatures.d.ts +0 -21
  174. package/docs/detailed-guide.md +0 -129
  175. package/docs/reference/functions/bootstrap.md +0 -29
  176. package/docs/reference/functions/bootstrapAuth.md +0 -35
  177. package/docs/reference/functions/bootstrapBlobEncryption.md +0 -35
  178. package/docs/reference/functions/bootstrapImmutableProofMethod.md +0 -35
  179. package/docs/reference/functions/bootstrapNodeAdminUser.md +0 -35
  180. package/docs/reference/functions/bootstrapNodeId.md +0 -35
  181. package/docs/reference/functions/bootstrapSynchronisedStorage.md +0 -35
  182. package/docs/reference/functions/bootstrapTenantId.md +0 -35
  183. package/docs/reference/functions/getFeatures.md +0 -19
  184. package/docs/reference/type-aliases/NodeFeatures.md +0 -5
  185. package/docs/reference/variables/NodeFeatures.md +0 -25
  186. package/docs/reference/variables/VC_AUTHENTICATION_VERIFICATION_METHOD_ID.md +0 -3
@@ -6,6 +6,10 @@ export interface IEngineEnvironmentVariables {
6
6
  * Start the engine in debug mode.
7
7
  */
8
8
  debug?: string;
9
+ /**
10
+ * Start the engine in silent mode.
11
+ */
12
+ silent?: string;
9
13
  /**
10
14
  * The root directory for storing items like state file.
11
15
  */
@@ -15,17 +19,13 @@ export interface IEngineEnvironmentVariables {
15
19
  */
16
20
  stateFilename?: string;
17
21
  /**
18
- * Is multi-tenant support enabled, defaults to false.
19
- */
20
- tenantEnabled?: string;
21
- /**
22
- * A tenant id to use as a default for the node.
22
+ * Does the node have a unique ID, defaults to true.
23
23
  */
24
- tenantId?: string;
24
+ nodeIdentityEnabled?: string;
25
25
  /**
26
- * A tenant api key to use as a default for the node.
26
+ * Is multi-tenant support enabled, defaults to false.
27
27
  */
28
- tenantApiKey?: string;
28
+ tenantEnabled?: string;
29
29
  /**
30
30
  * The type of the entity storage to create, comma separate for more than one connector.
31
31
  * values: file, memory, aws-dynamodb, azure-cosmosdb, gcp-firestoredb, scylladb, mysql, mongodb, postgresql
@@ -59,6 +59,10 @@ export interface IEngineEnvironmentVariables {
59
59
  * AWS Dynamo DB secret access key.
60
60
  */
61
61
  awsDynamodbSecretAccessKey?: string;
62
+ /**
63
+ * AWS Dynamo DB connection timeout.
64
+ */
65
+ awsDynamodbConnectionTimeoutMs?: string;
62
66
  /**
63
67
  * Azure Cosmos DB key.
64
68
  */
@@ -200,11 +204,6 @@ export interface IEngineEnvironmentVariables {
200
204
  * The id of the encryption key for the blob storage.
201
205
  */
202
206
  blobStorageEncryptionKeyId?: string;
203
- /**
204
- * A symmetric encryption key for the blob storage, should be ChaCha20Poly1305 in base64 format.
205
- * If encryption is enabled but a key is not provided one will be generated.
206
- */
207
- blobStorageSymmetricEncryptionKey?: string;
208
207
  /**
209
208
  * A prefix for all the blobs in blob-storage, can be empty.
210
209
  */
@@ -269,6 +268,10 @@ export interface IEngineEnvironmentVariables {
269
268
  * The type of the default vault connector: entity-storage, hashicorp.
270
269
  */
271
270
  vaultConnector?: string;
271
+ /**
272
+ * Prefix to prepend to entries in the vault.
273
+ */
274
+ vaultPrefix?: string;
272
275
  /**
273
276
  * Hashicorp Vault token.
274
277
  */
@@ -281,10 +284,6 @@ export interface IEngineEnvironmentVariables {
281
284
  * The type of logging task connector, can be a comma separated list: console, entity-storage.
282
285
  */
283
286
  loggingConnector?: string;
284
- /**
285
- * The type of background task connector: entity-storage.
286
- */
287
- backgroundTaskConnector?: string;
288
287
  /**
289
288
  * The type of event bus connector: local.
290
289
  */
@@ -318,7 +317,7 @@ export interface IEngineEnvironmentVariables {
318
317
  */
319
318
  awsSesEndpoint?: string;
320
319
  /**
321
- * The applications for the push notifications JSON stringified array of IAwsApplicationSettings.
320
+ * The applications for the push notifications reference a separate json with @json: prefix.
322
321
  */
323
322
  awsMessagingPushNotificationApplications?: string;
324
323
  /**
@@ -337,6 +336,34 @@ export interface IEngineEnvironmentVariables {
337
336
  * The type of telemetry connector: entity-storage.
338
337
  */
339
338
  telemetryConnector?: string;
339
+ /**
340
+ * The name of the Open Telemetry meter to use, only required if using open-telemetry as telemetry connector, defaults to twin-node.
341
+ */
342
+ openTelemetryMeterName?: string;
343
+ /**
344
+ * The version of the Open Telemetry metrics specification to use, only required if using open-telemetry as telemetry connector, defaults to 1.0.0.
345
+ */
346
+ openTelemetryMeterVersion?: string;
347
+ /**
348
+ * The type of Open Telemetry metric reader to use, only required if using open-telemetry as telemetry connector, values: prometheus.
349
+ */
350
+ openTelemetryReader?: string;
351
+ /**
352
+ * The port to use for the Open Telemetry Prometheus metrics server, only required if using open-telemetry as telemetry connector and prometheus as reader, defaults to 9464.
353
+ */
354
+ openTelemetryPrometheusPort?: string;
355
+ /**
356
+ * Polling interval in seconds for the telemetry metrics collector. Defaults to 60.
357
+ */
358
+ telemetryMetricsCollectorIntervalSeconds?: string;
359
+ /**
360
+ * The type of telemetry metrics producers, can be a comma separated list: system, process.
361
+ */
362
+ telemetryMetricsProducers?: string;
363
+ /**
364
+ * Maximum number of values retained per telemetry metric (count-based history cap). Defaults to 1440.
365
+ */
366
+ telemetryMetricsProducerMaxHistory?: string;
340
367
  /**
341
368
  * The type of faucet connector: entity-storage, iota.
342
369
  */
@@ -349,10 +376,18 @@ export interface IEngineEnvironmentVariables {
349
376
  * The type of NFT connector: entity-storage, iota.
350
377
  */
351
378
  nftConnector?: string;
379
+ /**
380
+ * The type of notarization connector: entity-storage, iota.
381
+ */
382
+ notarizationConnector?: string;
352
383
  /**
353
384
  * The type of identity connector: entity-storage, iota.
354
385
  */
355
386
  identityConnector?: string;
387
+ /**
388
+ * The index of the wallet address to use, defaults to 0.
389
+ */
390
+ identityWalletAddressIndex?: string;
356
391
  /**
357
392
  * The type of identity resolver connector: entity-storage, iota.
358
393
  */
@@ -478,87 +513,109 @@ export interface IEngineEnvironmentVariables {
478
513
  */
479
514
  synchronisedStorageMaxConsolidations?: string;
480
515
  /**
481
- * Is the federated catalogue enabled, defaults to false.
516
+ * Federated catalog filters, command separated list of filters to add.
482
517
  */
483
- federatedCatalogueEnabled?: string;
518
+ federatedCatalogueFilters?: string;
484
519
  /**
485
- * Federated catalog TTL for the cache.
520
+ * The trust generators to add to the factory, comma separated list.
486
521
  */
487
- federatedCatalogueCacheTtlMs?: number;
522
+ trustGenerators?: string;
488
523
  /**
489
- * Federated catalog clearing house approver list, stringified array of DIDs.
524
+ * The trust verifiers to add to the factory, comma separated list.
490
525
  */
491
- federatedCatalogueClearingHouseApproverList?: string;
526
+ trustVerifiers?: string;
492
527
  /**
493
- * Is the rights management enabled, defaults to false.
528
+ * The verification method to use for trust identities.
529
+ * Defaults to trust-assertion.
494
530
  */
495
- rightsManagementEnabled?: string;
531
+ trustVerificationMethodId?: string;
496
532
  /**
497
- * What is the base callback url for rights management negotiations e.g. https://my-node/rights-management.
533
+ * The trust time to live for generating JWTs.
534
+ * Defaults to undefined for never expiring.
498
535
  */
499
- rightsManagementBaseCallbackUrl?: string;
536
+ trustJwtTtlSeconds?: string;
500
537
  /**
501
- * The rights management configuration which includes the information sources modules to load.
502
- * Use the @json: prefix to specify the path to the JSON configuration file.
538
+ * Path under which the rights management service is mounted (single source
539
+ * of truth). The same value drives:
540
+ * - the server route mount (via engine config)
541
+ * - the PNP service's callback URL builder (`buildCallbackUrl`)
542
+ * - the PNP rest-client's pathPrefix (consumer side)
543
+ * Defaults to `rights-management`. Set when deploying behind a reverse proxy
544
+ * with path rewriting, K8s ingress with path-based routing, or any custom
545
+ * mount point.
503
546
  */
504
- rightsManagementInformationSources?: string;
547
+ rightsManagementCallbackPath?: string;
505
548
  /**
506
- * The rights management configuration which includes the negotiator modules to load.
507
- * Use the @json: prefix to specify the path to the JSON configuration file.
549
+ * The rights management policy information sources to add to the factory.
508
550
  */
509
- rightsManagementNegotiators?: string;
551
+ rightsManagementPolicyInformationSources?: string;
510
552
  /**
511
- * The rights management configuration which includes the requester modules to load.
512
- * Use the @json: prefix to specify the path to the JSON configuration file.
553
+ * The rights management policy negotiators sources to add to the factory.
513
554
  */
514
- rightsManagementRequesters?: string;
555
+ rightsManagementPolicyNegotiators?: string;
515
556
  /**
516
- * The rights management configuration which includes the execution actions modules to load.
517
- * Use the @json: prefix to specify the path to the JSON configuration file.
557
+ * The rights management policy requesters to add to the factory.
518
558
  */
519
- rightsManagementExecutionActions?: string;
559
+ rightsManagementPolicyRequesters?: string;
520
560
  /**
521
- * The rights management configuration which includes the enforcement processor modules to load.
522
- * Use the @json: prefix to specify the path to the JSON configuration file.
561
+ * The rights management policy execution actions to add to the factory.
523
562
  */
524
- rightsManagementEnforcementProcessors?: string;
563
+ rightsManagementPolicyExecutionActions?: string;
525
564
  /**
526
- * The rights management configuration which includes the arbiter modules to load.
527
- * Use the @json: prefix to specify the path to the JSON configuration file.
565
+ * The rights management policy enforcement processors to add to the factory.
528
566
  */
529
- rightsManagementArbiters?: string;
567
+ rightsManagementPolicyEnforcementProcessors?: string;
530
568
  /**
531
- * The rights management configuration which includes the offer modules to load.
532
- * Use the @json: prefix to specify the path to the JSON configuration file.
569
+ * The rights management policy arbiters to add to the factory.
533
570
  */
534
- rightsManagementOffers?: string;
571
+ rightsManagementPolicyArbiters?: string;
535
572
  /**
536
- * Is the task scheduler enabled, defaults to false.
573
+ * The rights management policy obligation enforcers to add to the factory.
537
574
  */
538
- taskSchedulerEnabled?: string;
575
+ rightsManagementPolicyObligationEnforcers?: string;
539
576
  /**
540
- * Is the data space connector enabled, defaults to false.
577
+ * Is the dataspace enabled, defaults to false.
541
578
  */
542
- dataSpaceConnectorEnabled?: string;
579
+ dataspaceEnabled?: string;
543
580
  /**
544
581
  * The length of time to retain the activity logs for in minutes, set to -1 to keep forever.
545
582
  * @default 10
546
583
  */
547
- dataSpaceConnectorRetainActivityLogsFor?: string;
584
+ dataspaceRetainActivityLogsFor?: string;
548
585
  /**
549
586
  * The interval for cleaning up the activity logs.
550
587
  * @default 60
551
588
  */
552
- dataSpaceConnectorActivityLogsCleanUpInterval?: string;
589
+ dataspaceActivityLogsCleanUpInterval?: string;
590
+ /**
591
+ * The data plane path for PULL transfers (path only, not full URL).
592
+ * Will be combined with public origin from hosting component.
593
+ * Required if PULL transfers should be supported.
594
+ * Example: "dataspace/entities"
595
+ */
596
+ dataspaceDataPlanePath?: string;
597
+ /**
598
+ * Are the health components enabled, defaults to false.
599
+ */
600
+ healthEnabled?: string;
601
+ /**
602
+ * The interval in seconds for performing health checks, defaults to 60.
603
+ */
604
+ healthIntervalSeconds?: string;
605
+ /**
606
+ * The interval in seconds for performing health checks at startup, defaults to 2.
607
+ * This allows components that take a long time to initialize to be healthy before the first health check is performed.
608
+ */
609
+ healthStartupIntervalSeconds?: string;
553
610
  /**
554
- * Enable verifiable credential authentication for the API.
611
+ * The id of the key in the vault to use for encrypting parameters in url transformer.
555
612
  */
556
- vcAuthenticationEnabled?: string;
613
+ urlTransformerEncryptionKeyId?: string;
557
614
  /**
558
- * Verifiable credential assertion for node to node communication.
559
- * Defaults to node-authentication-assertion.
615
+ * The type of the automation action to create, comma separate for more than one connector.
616
+ * values: fetch
560
617
  */
561
- vcAuthenticationVerificationMethodId?: string;
618
+ automationActionTypes?: string;
562
619
  /**
563
620
  * A comma separated list of additional node extensions to load, the initialiseExtension method will be called for each extension.
564
621
  */
@@ -27,6 +27,10 @@ export interface IEngineServerEnvironmentVariables extends IEngineEnvironmentVar
27
27
  * The CORS headers to expose.
28
28
  */
29
29
  httpExposedHeaders?: string;
30
+ /**
31
+ * The public origin URL for the API e.g. https://api.example.com:1234
32
+ */
33
+ publicOrigin?: string;
30
34
  /**
31
35
  * The type of auth admin processor to use on the API: entity-storage.
32
36
  */
@@ -39,6 +43,10 @@ export interface IEngineServerEnvironmentVariables extends IEngineEnvironmentVar
39
43
  * The id of the key in the vault to use for signing in auth operations.
40
44
  */
41
45
  authSigningKeyId?: string;
46
+ /**
47
+ * The id of the key in the vault to use for encrypting hosting parameters in auth operations.
48
+ */
49
+ hostingParamEncryptionKeyId?: string;
42
50
  /**
43
51
  * Additional MIME type processors to include, comma separated.
44
52
  */
@@ -11,12 +11,4 @@ export interface INodeEngineState extends IEngineState {
11
11
  * The tenant id for the node.
12
12
  */
13
13
  nodeTenantId?: string;
14
- /**
15
- * The identity for the organization.
16
- */
17
- nodeOrganizationId?: string;
18
- /**
19
- * The identity for the admin user.
20
- */
21
- nodeAdminUserId?: string;
22
14
  }
@@ -3,44 +3,6 @@ import type { IEngineServerEnvironmentVariables } from "./IEngineServerEnvironme
3
3
  * The environment variables for the node.
4
4
  */
5
5
  export interface INodeEnvironmentVariables extends IEngineServerEnvironmentVariables {
6
- /**
7
- * The features that are enabled on the node.
8
- * @default []
9
- */
10
- features?: string;
11
- /**
12
- * The identity of the node which, if empty and node-identity feature is enabled it will be generated.
13
- */
14
- nodeIdentity?: string;
15
- /**
16
- * The mnemonic for the identity, if empty and node-identity feature is enabled it will be randomly generated.
17
- */
18
- nodeMnemonic?: string;
19
- /**
20
- * If the node-admin-user feature is enabled, this will be the organization of the user, if one is not provided it will be generated
21
- */
22
- organizationIdentity?: string;
23
- /**
24
- * The mnemonic for the organization, if empty and node-admin-user feature is enabled it will be randomly generated.
25
- */
26
- organizationMnemonic?: string;
27
- /**
28
- * If the node-admin-user feature is enabled, this will be the identity of the user, if one is not provided it will be generated
29
- */
30
- adminUserIdentity?: string;
31
- /**
32
- * The mnemonic for the admin user, if empty and node-admin-user feature is enabled it will be randomly generated.
33
- */
34
- adminUserMnemonic?: string;
35
- /**
36
- * If the node-admin-user feature is enabled, this will be the name of the user.
37
- * @default admin@node
38
- */
39
- adminUserName?: string;
40
- /**
41
- * If the node-admin-user feature is enabled, this will be the password of the user, if empty it will be randomly generated.
42
- */
43
- adminUserPassword?: string;
44
6
  /**
45
7
  * Maximum size in MB for HTTPS extensions downloads.
46
8
  * @default 10
@@ -7,8 +7,8 @@ import type { INodeEnvironmentVariables } from "./INodeEnvironmentVariables.js";
7
7
  */
8
8
  export interface INodeOptions {
9
9
  /**
10
- * The name of the server, defaults to "TWIN Node Server".
11
- * @default "TWIN Node Server"
10
+ * The name of the server, defaults to "TWIN Node".
11
+ * @default "TWIN Node"
12
12
  */
13
13
  serverName?: string;
14
14
  /**
@@ -40,6 +40,10 @@ export interface INodeOptions {
40
40
  * This will be merged with any configuration loaded from the environment variables.
41
41
  */
42
42
  config?: IEngineConfig;
43
+ /**
44
+ * The directory to override the script location, defaults to location of index.js.
45
+ */
46
+ scriptDirectory?: string;
43
47
  /**
44
48
  * The directory to override the execution location, defaults to process directory.
45
49
  */
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Type for the properties in commands.
3
+ */
4
+ export type CliCommandParamType = string | number | boolean;
@@ -0,0 +1,7 @@
1
+ import type { IEngineCore } from "@twin.org/engine-models";
2
+ /**
3
+ * The type for the initialise engine method of an extension module.
4
+ * This is called when the engine has been constructed but not yet started.
5
+ * @param engineCore The engine core instance.
6
+ */
7
+ export type NodeExtensionInitialiseEngineMethod = (engineCore: IEngineCore) => Promise<void>;
@@ -0,0 +1,8 @@
1
+ import type { IEngineCore, IEngineServer } from "@twin.org/engine-models";
2
+ /**
3
+ * The type for the initialise engine server method of an extension module.
4
+ * This is called when the engine server has been constructed but not yet started.
5
+ * @param engineCore The engine core instance.
6
+ * @param engineServer The engine server instance.
7
+ */
8
+ export type NodeExtensionInitialiseEngineServerMethod = (engineCore: IEngineCore, engineServer: IEngineServer) => Promise<void>;
@@ -0,0 +1,8 @@
1
+ import type { INodeEngineConfig } from "./INodeEngineConfig.js";
2
+ import type { INodeEnvironmentVariables } from "./INodeEnvironmentVariables.js";
3
+ /**
4
+ * The type for the initialise method of an extension module.
5
+ * @param envVars The environment variables for the node.
6
+ * @param nodeEngineConfig The node engine config.
7
+ */
8
+ export type NodeExtensionInitialiseMethod = (envVars: INodeEnvironmentVariables, nodeEngineConfig: INodeEngineConfig) => Promise<void>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * The type for the shutdown method of an extension module.
3
+ * This is called when the engine is shutting down.
4
+ */
5
+ export type NodeExtensionShutdownMethod = () => Promise<void>;
@@ -7,17 +7,18 @@ import type { INodeEngineState } from "./models/INodeEngineState.js";
7
7
  import type { INodeEnvironmentVariables } from "./models/INodeEnvironmentVariables.js";
8
8
  import type { INodeOptions } from "./models/INodeOptions.js";
9
9
  /**
10
- * Run the TWIN Node server.
10
+ * Run the TWIN Node.
11
11
  * @param nodeOptions Optional configuration options for running the server.
12
+ * @param args Optional command line arguments.
12
13
  * @returns A promise that resolves when the server is started containing a shutdown method.
13
14
  */
14
- export declare function run(nodeOptions?: INodeOptions): Promise<{
15
+ export declare function run(nodeOptions?: INodeOptions, args?: string[]): Promise<{
15
16
  engine: Engine<IEngineServerConfig, INodeEngineState>;
16
17
  server: EngineServer;
17
18
  shutdown: () => Promise<void>;
18
19
  } | undefined>;
19
20
  /**
20
- * Build the configuration for the TWIN Node server.
21
+ * Build the configuration for the TWIN Node.
21
22
  * @param processEnv The environment variables from the process.
22
23
  * @param options The options for running the server.
23
24
  * @param serverInfo The server information.
@@ -33,7 +34,7 @@ export declare function buildConfiguration(processEnv: {
33
34
  nodeEngineConfig: INodeEngineConfig;
34
35
  availableContextIdKeys: {
35
36
  key: string;
36
- componentFeatures: string[];
37
+ requiredHandlerFeatures: string[];
37
38
  }[];
38
39
  }>;
39
40
  /**
@@ -1,6 +1,7 @@
1
1
  import { Engine } from "@twin.org/engine";
2
2
  import { EngineServer } from "@twin.org/engine-server";
3
3
  import type { IEngineServerConfig } from "@twin.org/engine-server-types";
4
+ import type { ICliCommand } from "./models/ICliCommand.js";
4
5
  import type { INodeEngineConfig } from "./models/INodeEngineConfig.js";
5
6
  import type { INodeEngineState } from "./models/INodeEngineState.js";
6
7
  import type { INodeEnvironmentVariables } from "./models/INodeEnvironmentVariables.js";
@@ -10,12 +11,13 @@ import type { INodeOptions } from "./models/INodeOptions.js";
10
11
  * @param nodeOptions Optional run options for the engine server.
11
12
  * @param nodeEngineConfig The configuration for the engine server.
12
13
  * @param envVars The environment variables.
14
+ * @param cliCommand The constructed CLI command (optional).
13
15
  * @param availableContextIdKeys The context ID keys available for operation.
14
16
  * @returns The engine server.
15
17
  */
16
- export declare function start(nodeOptions: INodeOptions | undefined, nodeEngineConfig: INodeEngineConfig, envVars: INodeEnvironmentVariables, availableContextIdKeys?: {
18
+ export declare function start(nodeOptions: INodeOptions | undefined, nodeEngineConfig: INodeEngineConfig, envVars: INodeEnvironmentVariables, cliCommand?: ICliCommand, availableContextIdKeys?: {
17
19
  key: string;
18
- componentFeatures: string[];
20
+ requiredHandlerFeatures: string[];
19
21
  }[]): Promise<{
20
22
  engine: Engine<IEngineServerConfig, INodeEngineState>;
21
23
  server: EngineServer;
@@ -1,8 +1,6 @@
1
1
  import type { IModuleProtocol } from "./models/IModuleProtocol.js";
2
- import type { INodeEnvironmentVariables } from "./models/INodeEnvironmentVariables.js";
3
2
  import type { IProtocolHandlerResult } from "./models/IProtocolHandlerResult.js";
4
3
  import { ModuleProtocol } from "./models/moduleProtocol.js";
5
- import { NodeFeatures } from "./models/nodeFeatures.js";
6
4
  /**
7
5
  * Initialise the locales for the application.
8
6
  * @param localesDirectory The directory containing the locales.
@@ -13,6 +11,12 @@ export declare function initialiseLocales(localesDirectory: string): Promise<voi
13
11
  * @returns The execution directory.
14
12
  */
15
13
  export declare function getExecutionDirectory(): string;
14
+ /**
15
+ * Get the directory where the script is located.
16
+ * @param args The command line arguments.
17
+ * @returns The execution directory.
18
+ */
19
+ export declare function getScriptDirectory(args?: string[]): string;
16
20
  /**
17
21
  * Does the specified file exist.
18
22
  * @param filename The filename to check for existence.
@@ -49,12 +53,6 @@ export declare function loadTextFile(filename: string): Promise<string>;
49
53
  * @returns The contents of the JSON file or null if it could not be loaded.
50
54
  */
51
55
  export declare function loadJsonFile<T>(filename: string): Promise<T>;
52
- /**
53
- * Get the features that are enabled on the node.
54
- * @param env The environment variables for the node.
55
- * @returns The features that are enabled on the node.
56
- */
57
- export declare function getFeatures(env: INodeEnvironmentVariables): NodeFeatures[];
58
56
  /**
59
57
  * Parse the protocol from a module name.
60
58
  * @param moduleName The module name to parse.