@twin.org/node-core 0.9.1-next.8 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,6 +38,10 @@ export interface IEngineEnvironmentVariables {
38
38
  * Is multi-tenant support enabled, defaults to false.
39
39
  */
40
40
  tenantEnabled?: string;
41
+ /**
42
+ * Enable schema migration, defaults to true.
43
+ */
44
+ schemaMigrationEnabled?: string;
41
45
  /**
42
46
  * The type of the entity storage to create, comma separate for more than one connector.
43
47
  * values: file, memory, aws-dynamodb, azure-cosmosdb, gcp-firestoredb, scylladb, mysql, mongodb, postgresql
@@ -289,7 +293,7 @@ export interface IEngineEnvironmentVariables {
289
293
  */
290
294
  hashicorpVaultEndpoint?: string;
291
295
  /**
292
- * The type of logging task connector, can be a comma separated list: console, entity-storage.
296
+ * The type of logging task connector, can be a comma separated list: console, entity-storage, otel, file.
293
297
  */
294
298
  loggingConnector?: string;
295
299
  /**
@@ -300,10 +304,50 @@ export interface IEngineEnvironmentVariables {
300
304
  * The batch flush interval in seconds for the logging task, how often to flush the logs when using batching, defaults to 5 seconds.
301
305
  */
302
306
  loggingBatchFlushInterval?: string;
307
+ /**
308
+ * Delete log entries older than this many minutes for the entity-storage logging connector.
309
+ * Set to 0 to disable age-based retention.
310
+ * @default 2880 (2 days)
311
+ */
312
+ loggingRetainFor?: string;
313
+ /**
314
+ * Keep at most this many log entries for the entity-storage logging connector.
315
+ * Set to 0 to disable count-based retention.
316
+ * @default 10000
317
+ */
318
+ loggingMaxEntries?: string;
319
+ /**
320
+ * How often the retention cleanup task runs in minutes for the entity-storage logging connector.
321
+ * Set to 0 to disable periodic cleanup.
322
+ * @default 5
323
+ */
324
+ loggingRetentionInterval?: string;
325
+ /**
326
+ * Maximum number of entries deleted per cleanup batch for the entity-storage logging connector.
327
+ * Keeping this value smaller helps avoid spikes in database load.
328
+ * @default 1000
329
+ */
330
+ loggingRetentionBatchSize?: string;
303
331
  /**
304
332
  * A list of components to exclude from logging, can be a comma separated list of component Class names e.g. "ComponentA,ComponentB".
305
333
  */
306
334
  loggingSilentComponents?: string;
335
+ /**
336
+ * The directory to write log files into when using the file logging connector. Required when TWIN_LOGGING_CONNECTOR includes "file".
337
+ */
338
+ loggingFileDirectory?: string;
339
+ /**
340
+ * The log filename when using the file logging connector, defaults to "app.log".
341
+ */
342
+ loggingFileFilename?: string;
343
+ /**
344
+ * The maximum log file size in bytes before rotation when using the file logging connector, defaults to 10485760 (10 MB). Set to 0 or negative to disable rotation.
345
+ */
346
+ loggingFileMaxFileSizeBytes?: string;
347
+ /**
348
+ * The number of rotated log files to retain when using the file logging connector, defaults to 5. Set to 0 or negative to keep all rotated files.
349
+ */
350
+ loggingFileMaxRetainedFiles?: string;
307
351
  /**
308
352
  * The name of the OpenTelemetry logger, only required if using open-telemetry as logging connector, defaults to twin-logging.
309
353
  */
@@ -428,6 +472,10 @@ export interface IEngineEnvironmentVariables {
428
472
  * The index of the wallet address to use, defaults to 0.
429
473
  */
430
474
  identityWalletAddressIndex?: string;
475
+ /**
476
+ * The TTL in milliseconds for caching resolved DIDs when using the IOTA identity connector. Omit to use the connector default.
477
+ */
478
+ identityDidResolutionCacheTtlMs?: string;
431
479
  /**
432
480
  * The type of identity resolver connector: entity-storage, iota.
433
481
  */
@@ -448,6 +496,14 @@ export interface IEngineEnvironmentVariables {
448
496
  * IOTA coin type.
449
497
  */
450
498
  iotaCoinType?: string;
499
+ /**
500
+ * IOTA gas budget, in nanos.
501
+ */
502
+ iotaGasBudget?: string;
503
+ /**
504
+ * IOTA gas reservation duration, in seconds.
505
+ */
506
+ iotaGasReservationDuration?: string;
451
507
  /**
452
508
  * IOTA Explorer Endpoint.
453
509
  */
@@ -524,6 +580,10 @@ export interface IEngineEnvironmentVariables {
524
580
  * Federated catalog remote endpoint, if set will use a REST client instead of local service.
525
581
  */
526
582
  federatedCatalogueRemoteEndpoint?: string;
583
+ /**
584
+ * The path prefix used by the federated catalogue REST client when forwarding requests to the remote endpoint, defaults to "federated-catalogue".
585
+ */
586
+ federatedCatalogueRestClientPathPrefix?: string;
527
587
  /**
528
588
  * The trust generators to add to the factory, comma separated list.
529
589
  */
package/docs/changelog.md CHANGED
@@ -1,5 +1,65 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.1](https://github.com/iotaledger/twin-node/compare/node-core-v0.9.1...node-core-v0.9.1) (2026-07-27)
4
+
5
+
6
+ ### Features
7
+
8
+ * add auth admin component ([1661e57](https://github.com/iotaledger/twin-node/commit/1661e57a699d5cf9ebde333e3cbc3aaea89d7c9c))
9
+ * add extend engine and server methods ([ec09c7e](https://github.com/iotaledger/twin-node/commit/ec09c7eb882d9f5797f2fd372e96cad1a3716f59))
10
+ * add extend engine and server methods ([0136a6f](https://github.com/iotaledger/twin-node/commit/0136a6f3f4e1a82b1427ee9618b8a17c79bc7fda))
11
+ * additional run options ([c35e5bb](https://github.com/iotaledger/twin-node/commit/c35e5bbb8a80fe6a36628d41f64585b3723d9ad7))
12
+ * additional startup logging ([0740293](https://github.com/iotaledger/twin-node/commit/0740293b366032f2907046603abf587c9c324aff))
13
+ * improve default options and spec ([b538721](https://github.com/iotaledger/twin-node/commit/b538721902e7f65021d2715148ba59409ccce035))
14
+ * improve error reporting ([fcd39a1](https://github.com/iotaledger/twin-node/commit/fcd39a18da2a6ce33965a99ca5f2f36f4aba712f))
15
+ * initial commit ([522f1e5](https://github.com/iotaledger/twin-node/commit/522f1e515348f9b1dd1eeb3170b1249e2b0b5371))
16
+ * migrate env config from engine to node ([5da29b8](https://github.com/iotaledger/twin-node/commit/5da29b8d714495308320d237a68e84355bba2b47))
17
+ * node app use JavaScript ([14fe08c](https://github.com/iotaledger/twin-node/commit/14fe08cb760dd885a5dac9056a4d5dbc3d61df64))
18
+ * release to production ([6319a38](https://github.com/iotaledger/twin-node/commit/6319a38490a2c2809622f8acd170cb92bfa06942))
19
+ * release to production ([4f44403](https://github.com/iotaledger/twin-node/commit/4f444039832edce8fae562baa7c900ccdc2181da))
20
+ * release to production ([2d96e37](https://github.com/iotaledger/twin-node/commit/2d96e3737bd9663bc0d1171c2ff2c7f8b2ab01bb))
21
+ * release to production ([#253](https://github.com/iotaledger/twin-node/issues/253)) ([230efd0](https://github.com/iotaledger/twin-node/commit/230efd0f99af6114e707999b4c1a83a391cc1741))
22
+ * release to production ([#300](https://github.com/iotaledger/twin-node/issues/300)) ([4d2b09f](https://github.com/iotaledger/twin-node/commit/4d2b09f92c7815ad3fe48d54eca0972fefc782f7))
23
+ * update dependencies ([9d25f16](https://github.com/iotaledger/twin-node/commit/9d25f16f1d554cd38f3bec28fdf7f8fff892ceaf))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * adding a condition to verify if the password exists when bootstrapping ([6030a42](https://github.com/iotaledger/twin-node/commit/6030a42bdaf581678d96932fd0b809396bf7b8b0))
29
+ * adding a condition to verify if the password exists when bootstrapping ([c66f396](https://github.com/iotaledger/twin-node/commit/c66f396717394161a7647d1f08b3d87729d96e96))
30
+ * broken docs ([61479fd](https://github.com/iotaledger/twin-node/commit/61479fd618f766d22c5aafec5277e1a89e22b453))
31
+ * pr comments [#1](https://github.com/iotaledger/twin-node/issues/1) ([66e795b](https://github.com/iotaledger/twin-node/commit/66e795b16c372ab131ec1de30085aee90e4dbbd0))
32
+
33
+ ## [0.9.1-next.12](https://github.com/iotaledger/twin-node/compare/node-core-v0.9.1-next.11...node-core-v0.9.1-next.12) (2026-07-27)
34
+
35
+
36
+ ### Features
37
+
38
+ * update logging retention units in config ([0b9bb69](https://github.com/iotaledger/twin-node/commit/0b9bb696db0722f6b33e37e1ebd1f4d6ffbcf7cc))
39
+
40
+ ## [0.9.1-next.11](https://github.com/iotaledger/twin-node/compare/node-core-v0.9.1-next.10...node-core-v0.9.1-next.11) (2026-07-24)
41
+
42
+
43
+ ### Features
44
+
45
+ * migration options ([#293](https://github.com/iotaledger/twin-node/issues/293)) ([91acc88](https://github.com/iotaledger/twin-node/commit/91acc881f665be0177b2e895e2810dd4d6145105))
46
+
47
+ ## [0.9.1-next.10](https://github.com/iotaledger/twin-node/compare/node-core-v0.9.1-next.9...node-core-v0.9.1-next.10) (2026-07-21)
48
+
49
+
50
+ ### Features
51
+
52
+ * update dependencies ([64c8ea8](https://github.com/iotaledger/twin-node/commit/64c8ea8c8b5e918f7ad419c4e3b8d08faf5e3fdd))
53
+
54
+ ## [0.9.1-next.9](https://github.com/iotaledger/twin-node/compare/node-core-v0.9.1-next.8...node-core-v0.9.1-next.9) (2026-07-21)
55
+
56
+
57
+ ### Features
58
+
59
+ * enhanced cli commands ([#288](https://github.com/iotaledger/twin-node/issues/288)) ([479fb34](https://github.com/iotaledger/twin-node/commit/479fb3448c493a134aee35b69ae39458e493a4ad))
60
+ * expose gasBudget and gasReservationDuration as configurable env vars ([#286](https://github.com/iotaledger/twin-node/issues/286)) ([d678b27](https://github.com/iotaledger/twin-node/commit/d678b27d629930a6ce85eeab9caf89d1187c3461))
61
+ * file logging config ([#287](https://github.com/iotaledger/twin-node/issues/287)) ([a567b25](https://github.com/iotaledger/twin-node/commit/a567b253cbb8b9af872bb0e494c013212f4f55a2))
62
+
3
63
  ## [0.9.1-next.8](https://github.com/iotaledger/twin-node/compare/node-core-v0.9.1-next.7...node-core-v0.9.1-next.8) (2026-07-10)
4
64
 
5
65
 
@@ -107,3 +107,11 @@ Indicates whether the engine needs the organization identity to be set.
107
107
  ```ts
108
108
  true
109
109
  ```
110
+
111
+ ***
112
+
113
+ ### singleTenantOnly? {#singletenantonly}
114
+
115
+ > `optional` **singleTenantOnly?**: `boolean`
116
+
117
+ Indicates whether this command is only available in single-tenant mode.
@@ -73,6 +73,14 @@ Is multi-tenant support enabled, defaults to false.
73
73
 
74
74
  ***
75
75
 
76
+ ### schemaMigrationEnabled? {#schemamigrationenabled}
77
+
78
+ > `optional` **schemaMigrationEnabled?**: `string`
79
+
80
+ Enable schema migration, defaults to true.
81
+
82
+ ***
83
+
76
84
  ### entityStorageConnectorType? {#entitystorageconnectortype}
77
85
 
78
86
  > `optional` **entityStorageConnectorType?**: `string`
@@ -575,7 +583,7 @@ Hashicorp Vault endpoint.
575
583
 
576
584
  > `optional` **loggingConnector?**: `string`
577
585
 
578
- The type of logging task connector, can be a comma separated list: console, entity-storage.
586
+ The type of logging task connector, can be a comma separated list: console, entity-storage, otel, file.
579
587
 
580
588
  ***
581
589
 
@@ -595,6 +603,66 @@ The batch flush interval in seconds for the logging task, how often to flush the
595
603
 
596
604
  ***
597
605
 
606
+ ### loggingRetainFor? {#loggingretainfor}
607
+
608
+ > `optional` **loggingRetainFor?**: `string`
609
+
610
+ Delete log entries older than this many minutes for the entity-storage logging connector.
611
+ Set to 0 to disable age-based retention.
612
+
613
+ #### Default
614
+
615
+ ```ts
616
+ 2880 (2 days)
617
+ ```
618
+
619
+ ***
620
+
621
+ ### loggingMaxEntries? {#loggingmaxentries}
622
+
623
+ > `optional` **loggingMaxEntries?**: `string`
624
+
625
+ Keep at most this many log entries for the entity-storage logging connector.
626
+ Set to 0 to disable count-based retention.
627
+
628
+ #### Default
629
+
630
+ ```ts
631
+ 10000
632
+ ```
633
+
634
+ ***
635
+
636
+ ### loggingRetentionInterval? {#loggingretentioninterval}
637
+
638
+ > `optional` **loggingRetentionInterval?**: `string`
639
+
640
+ How often the retention cleanup task runs in minutes for the entity-storage logging connector.
641
+ Set to 0 to disable periodic cleanup.
642
+
643
+ #### Default
644
+
645
+ ```ts
646
+ 5
647
+ ```
648
+
649
+ ***
650
+
651
+ ### loggingRetentionBatchSize? {#loggingretentionbatchsize}
652
+
653
+ > `optional` **loggingRetentionBatchSize?**: `string`
654
+
655
+ Maximum number of entries deleted per cleanup batch for the entity-storage logging connector.
656
+ Keeping this value smaller helps avoid spikes in database load.
657
+
658
+ #### Default
659
+
660
+ ```ts
661
+ 1000
662
+ ```
663
+
664
+ ***
665
+
598
666
  ### loggingSilentComponents? {#loggingsilentcomponents}
599
667
 
600
668
  > `optional` **loggingSilentComponents?**: `string`
@@ -603,6 +671,38 @@ A list of components to exclude from logging, can be a comma separated list of c
603
671
 
604
672
  ***
605
673
 
674
+ ### loggingFileDirectory? {#loggingfiledirectory}
675
+
676
+ > `optional` **loggingFileDirectory?**: `string`
677
+
678
+ The directory to write log files into when using the file logging connector. Required when TWIN_LOGGING_CONNECTOR includes "file".
679
+
680
+ ***
681
+
682
+ ### loggingFileFilename? {#loggingfilefilename}
683
+
684
+ > `optional` **loggingFileFilename?**: `string`
685
+
686
+ The log filename when using the file logging connector, defaults to "app.log".
687
+
688
+ ***
689
+
690
+ ### loggingFileMaxFileSizeBytes? {#loggingfilemaxfilesizebytes}
691
+
692
+ > `optional` **loggingFileMaxFileSizeBytes?**: `string`
693
+
694
+ The maximum log file size in bytes before rotation when using the file logging connector, defaults to 10485760 (10 MB). Set to 0 or negative to disable rotation.
695
+
696
+ ***
697
+
698
+ ### loggingFileMaxRetainedFiles? {#loggingfilemaxretainedfiles}
699
+
700
+ > `optional` **loggingFileMaxRetainedFiles?**: `string`
701
+
702
+ The number of rotated log files to retain when using the file logging connector, defaults to 5. Set to 0 or negative to keep all rotated files.
703
+
704
+ ***
705
+
606
706
  ### openTelemetryLoggingLoggerName? {#opentelemetryloggingloggername}
607
707
 
608
708
  > `optional` **openTelemetryLoggingLoggerName?**: `string`
@@ -851,6 +951,14 @@ The index of the wallet address to use, defaults to 0.
851
951
 
852
952
  ***
853
953
 
954
+ ### identityDidResolutionCacheTtlMs? {#identitydidresolutioncachettlms}
955
+
956
+ > `optional` **identityDidResolutionCacheTtlMs?**: `string`
957
+
958
+ The TTL in milliseconds for caching resolved DIDs when using the IOTA identity connector. Omit to use the connector default.
959
+
960
+ ***
961
+
854
962
  ### identityResolverConnector? {#identityresolverconnector}
855
963
 
856
964
  > `optional` **identityResolverConnector?**: `string`
@@ -891,6 +999,22 @@ IOTA coin type.
891
999
 
892
1000
  ***
893
1001
 
1002
+ ### iotaGasBudget? {#iotagasbudget}
1003
+
1004
+ > `optional` **iotaGasBudget?**: `string`
1005
+
1006
+ IOTA gas budget, in nanos.
1007
+
1008
+ ***
1009
+
1010
+ ### iotaGasReservationDuration? {#iotagasreservationduration}
1011
+
1012
+ > `optional` **iotaGasReservationDuration?**: `string`
1013
+
1014
+ IOTA gas reservation duration, in seconds.
1015
+
1016
+ ***
1017
+
894
1018
  ### iotaExplorerEndpoint? {#iotaexplorerendpoint}
895
1019
 
896
1020
  > `optional` **iotaExplorerEndpoint?**: `string`
@@ -1043,6 +1167,14 @@ Federated catalog remote endpoint, if set will use a REST client instead of loca
1043
1167
 
1044
1168
  ***
1045
1169
 
1170
+ ### federatedCatalogueRestClientPathPrefix? {#federatedcataloguerestclientpathprefix}
1171
+
1172
+ > `optional` **federatedCatalogueRestClientPathPrefix?**: `string`
1173
+
1174
+ The path prefix used by the federated catalogue REST client when forwarding requests to the remote endpoint, defaults to "federated-catalogue".
1175
+
1176
+ ***
1177
+
1046
1178
  ### trustGenerators? {#trustgenerators}
1047
1179
 
1048
1180
  > `optional` **trustGenerators?**: `string`
package/locales/en.json CHANGED
@@ -125,7 +125,8 @@
125
125
  "optional": "optional",
126
126
  "required": "required",
127
127
  "default": "default",
128
- "options": "options"
128
+ "options": "options",
129
+ "singleTenantOnly": "single-tenant only"
129
130
  }
130
131
  },
131
132
  "bootstrap-legacy": {
@@ -880,12 +881,14 @@
880
881
  },
881
882
  "load-env": {
882
883
  "description": "Comma separated list of paths to .env files to read input parameters from."
884
+ },
885
+ "output-json": {
886
+ "description": "Path to a .json file to store the resolved DID document."
883
887
  }
884
888
  },
885
889
  "labels": {
886
890
  "resolving": "Resolving identity",
887
- "did": "DID",
888
- "verificationMethods": "Verification Methods"
891
+ "did": "DID"
889
892
  }
890
893
  },
891
894
  "org-users-list": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/node-core",
3
- "version": "0.9.1-next.8",
3
+ "version": "0.9.1",
4
4
  "description": "TWIN Node Core for serving APIs using the specified configuration",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,35 +11,34 @@
11
11
  "license": "Apache-2.0",
12
12
  "type": "module",
13
13
  "engines": {
14
- "node": ">=20.0.0"
14
+ "node": ">=24.0.0"
15
15
  },
16
16
  "dependencies": {
17
- "@twin.org/api-auth-entity-storage-service": "next",
18
- "@twin.org/api-tenant-processor": "next",
19
- "@twin.org/cli-core": "next",
20
- "@twin.org/context": "next",
21
- "@twin.org/core": "next",
22
- "@twin.org/crypto": "next",
23
- "@twin.org/dataspace-models": "next",
24
- "@twin.org/engine": "next",
25
- "@twin.org/engine-core": "next",
26
- "@twin.org/engine-models": "next",
27
- "@twin.org/engine-server": "next",
28
- "@twin.org/engine-server-types": "next",
29
- "@twin.org/engine-types": "next",
30
- "@twin.org/entity": "next",
31
- "@twin.org/entity-storage-models": "next",
32
- "@twin.org/identity-models": "next",
33
- "@twin.org/logging-connector-opentelemetry": "next",
34
- "@twin.org/modules": "next",
35
- "@twin.org/rights-management-rest-client": "next",
36
- "@twin.org/standards-w3c-did": "next",
37
- "@twin.org/standards-w3c-odrl": "next",
38
- "@twin.org/telemetry-connector-opentelemetry": "next",
39
- "@twin.org/telemetry-models": "next",
40
- "@twin.org/trust-models": "next",
41
- "@twin.org/vault-models": "next",
42
- "@twin.org/wallet-models": "next",
17
+ "@twin.org/api-auth-entity-storage-service": "^0.9.1",
18
+ "@twin.org/api-tenant-processor": "^0.9.1",
19
+ "@twin.org/cli-core": "^0.9.1",
20
+ "@twin.org/context": "^0.9.1",
21
+ "@twin.org/core": "^0.9.1",
22
+ "@twin.org/crypto": "^0.9.1",
23
+ "@twin.org/dataspace-models": "^0.9.1",
24
+ "@twin.org/engine": "^0.9.1",
25
+ "@twin.org/engine-core": "^0.9.1",
26
+ "@twin.org/engine-models": "^0.9.1",
27
+ "@twin.org/engine-server": "^0.9.1",
28
+ "@twin.org/engine-server-types": "^0.9.1",
29
+ "@twin.org/engine-types": "^0.9.1",
30
+ "@twin.org/entity": "^0.9.1",
31
+ "@twin.org/entity-storage-models": "^0.9.1",
32
+ "@twin.org/identity-models": "^0.9.1",
33
+ "@twin.org/logging-connector-opentelemetry": "^0.9.1",
34
+ "@twin.org/modules": "^0.9.1",
35
+ "@twin.org/standards-w3c-did": "^0.9.1",
36
+ "@twin.org/standards-w3c-odrl": "^0.9.1",
37
+ "@twin.org/telemetry-connector-opentelemetry": "^0.9.1",
38
+ "@twin.org/telemetry-models": "^0.9.1",
39
+ "@twin.org/trust-models": "^0.9.1",
40
+ "@twin.org/vault-models": "^0.9.1",
41
+ "@twin.org/wallet-models": "^0.9.1",
43
42
  "dotenv": "17.4.2",
44
43
  "schema-dts": "2.0.0"
45
44
  },