@twin.org/node-core 0.0.3-next.5 → 0.0.3-next.51

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 +472 -198
  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 +178 -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 +326 -0
  14. package/dist/es/commands/identityCreate.js.map +1 -0
  15. package/dist/es/commands/identityImports.js +81 -0
  16. package/dist/es/commands/identityImports.js.map +1 -0
  17. package/dist/es/commands/identityVerifiableCredentialCreate.js +145 -0
  18. package/dist/es/commands/identityVerifiableCredentialCreate.js.map +1 -0
  19. package/dist/es/commands/identityVerificationMethodCreate.js +227 -0
  20. package/dist/es/commands/identityVerificationMethodCreate.js.map +1 -0
  21. package/dist/es/commands/identityVerificationMethodImport.js +125 -0
  22. package/dist/es/commands/identityVerificationMethodImport.js.map +1 -0
  23. package/dist/es/commands/nodeSetIdentity.js +63 -0
  24. package/dist/es/commands/nodeSetIdentity.js.map +1 -0
  25. package/dist/es/commands/tenantCreate.js +137 -0
  26. package/dist/es/commands/tenantCreate.js.map +1 -0
  27. package/dist/es/commands/tenantImport.js +95 -0
  28. package/dist/es/commands/tenantImport.js.map +1 -0
  29. package/dist/es/commands/tenantToken.js +97 -0
  30. package/dist/es/commands/tenantToken.js.map +1 -0
  31. package/dist/es/commands/tenantUpdate.js +93 -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 +190 -0
  38. package/dist/es/commands/vaultKeyCreate.js.map +1 -0
  39. package/dist/es/commands/vaultKeyImport.js +103 -0
  40. package/dist/es/commands/vaultKeyImport.js.map +1 -0
  41. package/dist/es/defaults.js +18 -2
  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/{server.js → start.js} +72 -27
  71. package/dist/es/start.js.map +1 -0
  72. package/dist/es/utils.js +21 -25
  73. package/dist/es/utils.js.map +1 -1
  74. package/dist/types/builders/engineEnvBuilder.d.ts +67 -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/tenantCreate.d.ts +38 -0
  86. package/dist/types/commands/tenantImport.d.ts +26 -0
  87. package/dist/types/commands/tenantToken.d.ts +28 -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 -2
  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 +41 -0
  98. package/dist/types/models/ICliCommandDefinitionParam.d.ts +35 -0
  99. package/dist/types/models/IEngineEnvironmentVariables.d.ts +132 -99
  100. package/dist/types/models/IEngineServerEnvironmentVariables.d.ts +8 -0
  101. package/dist/types/models/INodeEngineState.d.ts +0 -12
  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 +611 -178
  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 +23 -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 -14
  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 +87 -0
  142. package/docs/reference/interfaces/ICliCommandDefinitionParam.md +65 -0
  143. package/docs/reference/interfaces/IEngineEnvironmentVariables.md +418 -369
  144. package/docs/reference/interfaces/IEngineServerEnvironmentVariables.md +546 -445
  145. package/docs/reference/interfaces/IModuleProtocol.md +3 -3
  146. package/docs/reference/interfaces/INodeEngineState.md +2 -26
  147. package/docs/reference/interfaces/INodeEnvironmentVariables.md +564 -539
  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 +605 -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.map +0 -1
  169. package/dist/types/bootstrap.d.ts +0 -68
  170. package/dist/types/identity.d.ts +0 -14
  171. package/dist/types/models/nodeExtensionMethods.d.ts +0 -27
  172. package/dist/types/models/nodeFeatures.d.ts +0 -21
  173. package/docs/detailed-guide.md +0 -129
  174. package/docs/reference/functions/bootstrap.md +0 -29
  175. package/docs/reference/functions/bootstrapAuth.md +0 -35
  176. package/docs/reference/functions/bootstrapBlobEncryption.md +0 -35
  177. package/docs/reference/functions/bootstrapImmutableProofMethod.md +0 -35
  178. package/docs/reference/functions/bootstrapNodeAdminUser.md +0 -35
  179. package/docs/reference/functions/bootstrapNodeId.md +0 -35
  180. package/docs/reference/functions/bootstrapSynchronisedStorage.md +0 -35
  181. package/docs/reference/functions/bootstrapTenantId.md +0 -35
  182. package/docs/reference/functions/getFeatures.md +0 -19
  183. package/docs/reference/type-aliases/NodeFeatures.md +0 -5
  184. package/docs/reference/variables/NodeFeatures.md +0 -25
  185. package/docs/reference/variables/SYNCHRONISED_STORAGE_BLOB_STORAGE_ENCRYPTION_KEY_ID.md +0 -3
  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.
22
+ * Does the node have a unique ID, defaults to true.
19
23
  */
20
- tenantEnabled?: string;
24
+ nodeIdentityEnabled?: string;
21
25
  /**
22
- * A tenant id to use as a default for the node.
23
- */
24
- tenantId?: string;
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
@@ -94,7 +94,7 @@ export interface IEngineEnvironmentVariables {
94
94
  /**
95
95
  * GCP Firestore endpoint.
96
96
  */
97
- gcpFirestoreApiEndpoint?: string;
97
+ gcpFirestoreEndpoint?: string;
98
98
  /**
99
99
  * GCP Firestore project id.
100
100
  */
@@ -192,10 +192,6 @@ export interface IEngineEnvironmentVariables {
192
192
  * The default blob storage connector to use, defaults to the first one in the list.
193
193
  */
194
194
  blobStorageConnectorDefault?: string;
195
- /**
196
- * Blog storage connector which has public access.
197
- */
198
- blobStorageConnectorPublic?: string;
199
195
  /**
200
196
  * Enable encryption for the blob storage.
201
197
  */
@@ -204,11 +200,6 @@ export interface IEngineEnvironmentVariables {
204
200
  * The id of the encryption key for the blob storage.
205
201
  */
206
202
  blobStorageEncryptionKeyId?: string;
207
- /**
208
- * A symmetric encryption key for the blob storage, should be ChaCha20Poly1305 in base64 format.
209
- * If encryption is enabled but a key is not provided one will be generated.
210
- */
211
- blobStorageSymmetricEncryptionKey?: string;
212
203
  /**
213
204
  * A prefix for all the blobs in blob-storage, can be empty.
214
205
  */
@@ -273,6 +264,10 @@ export interface IEngineEnvironmentVariables {
273
264
  * The type of the default vault connector: entity-storage, hashicorp.
274
265
  */
275
266
  vaultConnector?: string;
267
+ /**
268
+ * Prefix to prepend to entries in the vault.
269
+ */
270
+ vaultPrefix?: string;
276
271
  /**
277
272
  * Hashicorp Vault token.
278
273
  */
@@ -286,9 +281,13 @@ export interface IEngineEnvironmentVariables {
286
281
  */
287
282
  loggingConnector?: string;
288
283
  /**
289
- * The type of background task connector: entity-storage.
284
+ * The batch size for the logging task, set to 1 for no batching.
290
285
  */
291
- backgroundTaskConnector?: string;
286
+ loggingBatchSize?: string;
287
+ /**
288
+ * The batch flush interval in seconds for the logging task, how often to flush the logs when using batching, defaults to 5 seconds.
289
+ */
290
+ loggingBatchFlushIntervalSeconds?: string;
292
291
  /**
293
292
  * The type of event bus connector: local.
294
293
  */
@@ -322,7 +321,7 @@ export interface IEngineEnvironmentVariables {
322
321
  */
323
322
  awsSesEndpoint?: string;
324
323
  /**
325
- * The applications for the push notifications JSON stringified array of IAwsApplicationSettings.
324
+ * The applications for the push notifications reference a separate json with @json: prefix.
326
325
  */
327
326
  awsMessagingPushNotificationApplications?: string;
328
327
  /**
@@ -341,6 +340,34 @@ export interface IEngineEnvironmentVariables {
341
340
  * The type of telemetry connector: entity-storage.
342
341
  */
343
342
  telemetryConnector?: string;
343
+ /**
344
+ * The name of the Open Telemetry meter to use, only required if using open-telemetry as telemetry connector, defaults to twin-node.
345
+ */
346
+ openTelemetryMeterName?: string;
347
+ /**
348
+ * The version of the Open Telemetry metrics specification to use, only required if using open-telemetry as telemetry connector, defaults to 1.0.0.
349
+ */
350
+ openTelemetryMeterVersion?: string;
351
+ /**
352
+ * The type of Open Telemetry metric reader to use, only required if using open-telemetry as telemetry connector, values: prometheus.
353
+ */
354
+ openTelemetryReader?: string;
355
+ /**
356
+ * 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.
357
+ */
358
+ openTelemetryPrometheusPort?: string;
359
+ /**
360
+ * Polling interval in seconds for the telemetry metrics collector. Defaults to 60.
361
+ */
362
+ telemetryMetricsCollectorIntervalSeconds?: string;
363
+ /**
364
+ * The type of telemetry metrics producers, can be a comma separated list: system, process.
365
+ */
366
+ telemetryMetricsProducers?: string;
367
+ /**
368
+ * Maximum number of values retained per telemetry metric (count-based history cap). Defaults to 1440.
369
+ */
370
+ telemetryMetricsProducerMaxHistory?: string;
344
371
  /**
345
372
  * The type of faucet connector: entity-storage, iota.
346
373
  */
@@ -353,18 +380,26 @@ export interface IEngineEnvironmentVariables {
353
380
  * The type of NFT connector: entity-storage, iota.
354
381
  */
355
382
  nftConnector?: string;
383
+ /**
384
+ * The NFT deployed package id, for custom deployments.
385
+ */
386
+ nftPackageId?: string;
387
+ /**
388
+ * The type of notarization connector: entity-storage, iota.
389
+ */
390
+ notarizationConnector?: string;
356
391
  /**
357
392
  * The type of identity connector: entity-storage, iota.
358
393
  */
359
394
  identityConnector?: string;
360
395
  /**
361
- * The type of identity resolver connector: entity-storage, iota.
396
+ * The index of the wallet address to use, defaults to 0.
362
397
  */
363
- identityResolverConnector?: string;
398
+ identityWalletAddressIndex?: string;
364
399
  /**
365
- * The type of verifiable storage connector: entity-storage, iota.
400
+ * The type of identity resolver connector: entity-storage, iota.
366
401
  */
367
- verifiableStorageConnector?: string;
402
+ identityResolverConnector?: string;
368
403
  /**
369
404
  * IOTA Faucet Endpoint.
370
405
  */
@@ -393,6 +428,10 @@ export interface IEngineEnvironmentVariables {
393
428
  * IOTA Gas Station Authentication Token.
394
429
  */
395
430
  iotaGasStationAuthToken?: string;
431
+ /**
432
+ * The IOTA Identity deployed package id, for custom deployments.
433
+ */
434
+ iotaIdentityPackageId?: string;
396
435
  /**
397
436
  * Universal Resolver Endpoint.
398
437
  */
@@ -438,131 +477,125 @@ export interface IEngineEnvironmentVariables {
438
477
  */
439
478
  documentManagementEnabled?: string;
440
479
  /**
441
- * Is the synchronised storage enabled, defaults to false.
480
+ * Enable the federated catalogue, defaults to false, automatically enabled if remote endpoint, filters or dataspace is enabled.
442
481
  */
443
- synchronisedStorageEnabled?: string;
482
+ federatedCatalogueEnabled?: string;
444
483
  /**
445
- * Url which points to the api for a trusted synchronised storage node, not required if this is a trusted node.
484
+ * Federated catalog filters, command separated list of filters to add.
446
485
  */
447
- synchronisedStorageTrustedUrl?: string;
486
+ federatedCatalogueFilters?: string;
448
487
  /**
449
- * The key for the smart contract which contains the verifiable storage pointer store for synchronised storage.
450
- * This only required if using a custom verifiable storage item, otherwise it will default to the network name.
488
+ * Federated catalog remote endpoint, if set will use a REST client instead of local service.
451
489
  */
452
- synchronisedStorageVerifiableStorageKeyId?: string;
490
+ federatedCatalogueRemoteEndpoint?: string;
453
491
  /**
454
- * The key from the vault which is used to encrypt the synchronised storage blobs.
455
- * Only required for trusted nodes, as regular nodes will request from the trusted nodes.
456
- * Defaults to synchronised-storage-blob-encryption
492
+ * The trust generators to add to the factory, comma separated list.
457
493
  */
458
- synchronisedStorageBlobStorageEncryptionKeyId?: string;
494
+ trustGenerators?: string;
459
495
  /**
460
- * The key used for blob encryption, should be ChaCha20Poly1305 encoded as base64.
461
- * Only required for trusted nodes, as regular nodes will not write encrypted data.
496
+ * The trust verifiers to add to the factory, comma separated list.
462
497
  */
463
- synchronisedStorageBlobStorageKey?: string;
498
+ trustVerifiers?: string;
464
499
  /**
465
- * How often to check for entity updates in minutes.
466
- * @default 5
500
+ * The verification method to use for trust identities.
501
+ * Defaults to trust-assertion.
467
502
  */
468
- synchronisedStorageEntityUpdateIntervalMinutes?: string;
503
+ trustVerificationMethodId?: string;
469
504
  /**
470
- * Interval to perform consolidation of changesets, only used if this is a trusted node.
471
- * @default 60
505
+ * The trust time to live for generating JWTs.
506
+ * Defaults to undefined for never expiring.
472
507
  */
473
- synchronisedStorageConsolidationIntervalMinutes?: string;
508
+ trustJwtTtlSeconds?: string;
474
509
  /**
475
- * The number of entities to process in a single consolidation batch, only used if this is a trusted node.
476
- * @default 1000
510
+ * The allow lists for the trust identity verifier, comma separated list of identities.
477
511
  */
478
- synchronisedStorageConsolidationBatchSize?: string;
512
+ trustIdentitiesAllow?: string;
479
513
  /**
480
- * The maximum number of consolidations to keep in storage, only used if this is a trusted node.
481
- * @default 5
514
+ * The deny lists for the trust identity verifier, comma separated list of identities.
482
515
  */
483
- synchronisedStorageMaxConsolidations?: string;
516
+ trustIdentitiesDeny?: string;
484
517
  /**
485
- * Is the federated catalogue enabled, defaults to false.
518
+ * Path under which the rights management service is mounted (single source
519
+ * of truth). The same value drives:
520
+ * - the server route mount (via engine config)
521
+ * - the PNP service's callback URL builder (`buildCallbackUrl`)
522
+ * - the PNP rest-client's pathPrefix (consumer side)
523
+ * Defaults to `rights-management`. Set when deploying behind a reverse proxy
524
+ * with path rewriting, K8s ingress with path-based routing, or any custom
525
+ * mount point.
486
526
  */
487
- federatedCatalogueEnabled?: string;
527
+ rightsManagementCallbackPath?: string;
488
528
  /**
489
- * Federated catalog TTL for the cache.
529
+ * The rights management policy information sources to add to the factory.
490
530
  */
491
- federatedCatalogueCacheTtlMs?: number;
531
+ rightsManagementPolicyInformationSources?: string;
492
532
  /**
493
- * Federated catalog clearing house approver list, stringified array of DIDs.
533
+ * The rights management policy negotiators sources to add to the factory.
494
534
  */
495
- federatedCatalogueClearingHouseApproverList?: string;
535
+ rightsManagementPolicyNegotiators?: string;
496
536
  /**
497
- * Is the rights management enabled, defaults to false.
537
+ * The rights management policy requesters to add to the factory.
498
538
  */
499
- rightsManagementEnabled?: string;
539
+ rightsManagementPolicyRequesters?: string;
500
540
  /**
501
- * What is the base callback url for rights management negotiations e.g. https://my-node/rights-management.
541
+ * The rights management policy execution actions to add to the factory.
502
542
  */
503
- rightsManagementBaseCallbackUrl?: string;
543
+ rightsManagementPolicyExecutionActions?: string;
504
544
  /**
505
- * The rights management configuration which includes the information sources modules to load.
506
- * Use the @json: prefix to specify the path to the JSON configuration file.
545
+ * The rights management policy enforcement processors to add to the factory.
507
546
  */
508
- rightsManagementInformationSources?: string;
547
+ rightsManagementPolicyEnforcementProcessors?: string;
509
548
  /**
510
- * The rights management configuration which includes the negotiator modules to load.
511
- * Use the @json: prefix to specify the path to the JSON configuration file.
549
+ * The rights management policy arbiters to add to the factory.
512
550
  */
513
- rightsManagementNegotiators?: string;
551
+ rightsManagementPolicyArbiters?: string;
514
552
  /**
515
- * The rights management configuration which includes the requester modules to load.
516
- * Use the @json: prefix to specify the path to the JSON configuration file.
553
+ * The rights management policy obligation enforcers to add to the factory.
517
554
  */
518
- rightsManagementRequesters?: string;
555
+ rightsManagementPolicyObligationEnforcers?: string;
519
556
  /**
520
- * The rights management configuration which includes the execution actions modules to load.
521
- * Use the @json: prefix to specify the path to the JSON configuration file.
557
+ * Is the dataspace enabled, defaults to false.
522
558
  */
523
- rightsManagementExecutionActions?: string;
559
+ dataspaceEnabled?: string;
524
560
  /**
525
- * The rights management configuration which includes the enforcement processor modules to load.
526
- * Use the @json: prefix to specify the path to the JSON configuration file.
527
- */
528
- rightsManagementEnforcementProcessors?: string;
529
- /**
530
- * The rights management configuration which includes the arbiter modules to load.
531
- * Use the @json: prefix to specify the path to the JSON configuration file.
561
+ * The length of time to retain the activity logs for in minutes, set to -1 to keep forever.
562
+ * @default 10
532
563
  */
533
- rightsManagementArbiters?: string;
564
+ dataspaceRetainActivityLogsFor?: string;
534
565
  /**
535
- * The rights management configuration which includes the offer modules to load.
536
- * Use the @json: prefix to specify the path to the JSON configuration file.
566
+ * The interval for cleaning up the activity logs.
567
+ * @default 60
537
568
  */
538
- rightsManagementOffers?: string;
569
+ dataspaceActivityLogsCleanupInterval?: string;
539
570
  /**
540
- * Is the task scheduler enabled, defaults to false.
571
+ * The data plane path for PULL transfers (path only, not full URL).
572
+ * Will be combined with public origin from hosting component.
573
+ * Required if PULL transfers should be supported.
574
+ * Example: "dataspace/entities"
541
575
  */
542
- taskSchedulerEnabled?: string;
576
+ dataspaceDataPlanePath?: string;
543
577
  /**
544
- * Is the data space connector enabled, defaults to false.
578
+ * Are the health components enabled, defaults to false.
545
579
  */
546
- dataSpaceConnectorEnabled?: string;
580
+ healthEnabled?: string;
547
581
  /**
548
- * The length of time to retain the activity logs for in minutes, set to -1 to keep forever.
549
- * @default 10
582
+ * The interval in seconds for performing health checks, defaults to 60.
550
583
  */
551
- dataSpaceConnectorRetainActivityLogsFor?: string;
584
+ healthIntervalSeconds?: string;
552
585
  /**
553
- * The interval for cleaning up the activity logs.
554
- * @default 60
586
+ * The interval in seconds for performing health checks at startup, defaults to 2.
587
+ * This allows components that take a long time to initialize to be healthy before the first health check is performed.
555
588
  */
556
- dataSpaceConnectorActivityLogsCleanUpInterval?: string;
589
+ healthStartupIntervalSeconds?: string;
557
590
  /**
558
- * Enable verifiable credential authentication for the API.
591
+ * The id of the key in the vault to use for encrypting parameters in url transformer.
559
592
  */
560
- vcAuthenticationEnabled?: string;
593
+ urlTransformerEncryptionKeyId?: string;
561
594
  /**
562
- * Verifiable credential assertion for node to node communication.
563
- * Defaults to node-authentication-assertion.
595
+ * The type of the automation action to create, comma separate for more than one connector.
596
+ * values: fetch
564
597
  */
565
- vcAuthenticationVerificationMethodId?: string;
598
+ automationActionTypes?: string;
566
599
  /**
567
600
  * A comma separated list of additional node extensions to load, the initialiseExtension method will be called for each extension.
568
601
  */
@@ -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
  */
@@ -7,16 +7,4 @@ export interface INodeEngineState extends IEngineState {
7
7
  * The identity for the node.
8
8
  */
9
9
  nodeId?: string;
10
- /**
11
- * The tenant id for the node.
12
- */
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
10
  }
@@ -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.