@twin.org/node 0.0.3-next.54 → 0.0.3-next.55

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.
@@ -62,8 +62,7 @@
62
62
  "notAvailableInMultiTenantMode": "The set-node-org-id command is not available in multi-tenant mode, use set-tenant-org-id instead."
63
63
  },
64
64
  "applyOrganizationIdToTenant": {
65
- "tenantAdminComponentNotRegistered": "Multi-tenant support must be enabled to use this command.",
66
- "organizationIdAlreadyInUse": "The organization ID \"{organizationId}\" is already assigned to tenant \"{conflictingTenantId}\"."
65
+ "tenantAdminComponentNotRegistered": "Multi-tenant support must be enabled to use this command."
67
66
  },
68
67
  "removeTenantOrgAlias": {
69
68
  "tenantAdminComponentNotRegistered": "Multi-tenant support must be enabled to use this command.",
@@ -237,6 +236,11 @@
237
236
  "lockTimeout": "Failed to acquire lock for key \"{key}\" within the timeout of {timeout} milliseconds",
238
237
  "bufferFetchFailed": "Failed to retrieve shared buffer for key \"{key}\" from the main thread"
239
238
  },
239
+ "sharedObjectBuffer": {
240
+ "notCreated": "The shared buffer for object \"{objectId}\" has not been created",
241
+ "capacityExceeded": "The payload size of {required} bytes exceeds the maximum capacity of {capacity} bytes for object \"{objectId}\"",
242
+ "bufferFetchFailed": "Failed to retrieve shared buffer for object \"{objectId}\" from the main thread"
243
+ },
240
244
  "fetchHelper": {
241
245
  "decodingJSON": "Decoding JSON failed for route \"{url}\"",
242
246
  "failureStatusText": "The request to the API failed: \"{statusText}\"",
@@ -350,7 +354,9 @@
350
354
  },
351
355
  "tenantAdminService": {
352
356
  "apiKeyAlreadyInUse": "The provided API key is already in use by another tenant.",
353
- "tenantNotFound": "Tenant with ID \"{notFoundId}\" not found."
357
+ "tenantAlreadyExists": "Tenant with ID \"{existingId}\" already exists.",
358
+ "tenantNotFound": "Tenant with ID \"{notFoundId}\" not found.",
359
+ "organizationIdAlreadyExists": "A tenant with organization ID \"{existingId}\" already exists."
354
360
  },
355
361
  "commands": {
356
362
  "common": {
@@ -384,9 +390,6 @@
384
390
  "failedLoading": "Failed to load file state storage from \"{filename}\"",
385
391
  "failedSaving": "Failed to save file state storage to \"{filename}\""
386
392
  },
387
- "engineModuleHelper": {
388
- "moduleNotClass": "The module \"{moduleName}\" does not export a class \"{className}\""
389
- },
390
393
  "moduleHelper": {
391
394
  "moduleNotFound": "Failed to load module \"{module}\"",
392
395
  "entryNotFound": "Failed to load entry \"{entry}\" from module \"{module}\"",
@@ -741,8 +744,11 @@
741
744
  "fileEntityStorageConnector": {
742
745
  "directoryCreateFailed": "Creating directory \"{directory}\" failed",
743
746
  "emptyFailed": "Unable to empty entity storage",
747
+ "readStoreCorrupt": "The entity storage store file in directory \"{directory}\" contains corrupt JSON",
748
+ "readStoreFailed": "Unable to read the entity storage store file in directory \"{directory}\"",
744
749
  "removeBatchFailed": "Unable to remove batch of entities",
745
- "teardownFailed": "Unable to teardown entity storage"
750
+ "teardownFailed": "Unable to teardown entity storage",
751
+ "writeStoreFailed": "Unable to write the entity storage store file in directory \"{directory}\""
746
752
  },
747
753
  "firestoreEntityStorageConnector": {
748
754
  "firestoreCreationFailed": "Failed to connect to Firestore",
@@ -1229,7 +1235,8 @@
1229
1235
  },
1230
1236
  "policyNegotiationAdminPointService": {
1231
1237
  "policyNotFound": "Contract negotiation with id: \"{notFoundId}\" not found",
1232
- "cleanupFailed": "Failed to cleanup old negotiations"
1238
+ "cleanupFailed": "Failed to cleanup old negotiations",
1239
+ "negotiationAlreadyExists": "Contract negotiation with correlationId: \"{existingId}\" already exists"
1233
1240
  },
1234
1241
  "policyExecutionPointService": {
1235
1242
  "actionExecutionFailed": "Action execution failed for id: \"{actionId}\", at stage \"{stage}\", policy id: \"{policyId}\""
@@ -1666,7 +1673,7 @@
1666
1673
  },
1667
1674
  "tenant-import": {
1668
1675
  "description": "Import a tenant with associated api key",
1669
- "example": "tenant-import --tenant-id=\"0011..aabb\" --api-key=\"aabb..0099\" --label=\"My Tenant\" --public-origin=\"https://example.com:1234\"",
1676
+ "example": "tenant-import --tenant-id=\"0011..aabb\" --api-key=\"aabb..0099\" --organization-id=\"did:iota:...\" --label=\"My Tenant\" --public-origin=\"https://example.com:1234\"",
1670
1677
  "params": {
1671
1678
  "env-prefix": {
1672
1679
  "description": "Prefix to use for standard .env files e.g. TWIN_."
@@ -1677,6 +1684,9 @@
1677
1684
  "api-key": {
1678
1685
  "description": "The API key to associate with the tenant id."
1679
1686
  },
1687
+ "organization-id": {
1688
+ "description": "The organization DID to associate with the tenant."
1689
+ },
1680
1690
  "label": {
1681
1691
  "description": "A descriptive label for the tenant."
1682
1692
  },
@@ -1705,6 +1715,9 @@
1705
1715
  "api-key": {
1706
1716
  "description": "The API key to associate with the tenant id."
1707
1717
  },
1718
+ "organization-id": {
1719
+ "description": "The organization DID to associate with the tenant."
1720
+ },
1708
1721
  "label": {
1709
1722
  "description": "A descriptive label for the tenant."
1710
1723
  },
@@ -2256,6 +2269,9 @@
2256
2269
  "retrieving": "Retrieving policies for locator \"locator\"",
2257
2270
  "retrieved": "Retrieved {count} policies for locator \"locator\"."
2258
2271
  },
2272
+ "policyNegotiationAdminPointService": {
2273
+ "negotiationCreated": "Contract negotiation pre-registered (id: \"{id}\")"
2274
+ },
2259
2275
  "policyExecutionPointService": {
2260
2276
  "executingActions": "Executing actions for stage: \"{stage}\", policy id: \"{policyId}\"",
2261
2277
  "executingAction": "Executing action for stage: \"{stage}\", policy id: \"{policyId}\""
@@ -2315,6 +2331,9 @@
2315
2331
  },
2316
2332
  "policyNegotiationAdminPointService": {
2317
2333
  "sendTerminateFailed": "Failed to send terminate to consumer for negotiation id: \"{id}\", correlation id: \"{correlationId}\""
2334
+ },
2335
+ "policyNegotiationPointService": {
2336
+ "terminatedCallbackFailed": "Failed to notify requester via terminated() for negotiation id: \"{negotiationId}\""
2318
2337
  }
2319
2338
  },
2320
2339
  "cli": {
package/docs/changelog.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.3-next.55](https://github.com/iotaledger/twin-node/compare/node-v0.0.3-next.54...node-v0.0.3-next.55) (2026-06-16)
4
+
5
+
6
+ ### Miscellaneous Chores
7
+
8
+ * **node:** Synchronize repo versions
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @twin.org/node-core bumped from 0.0.3-next.54 to 0.0.3-next.55
16
+
3
17
  ## [0.0.3-next.54](https://github.com/iotaledger/twin-node/compare/node-v0.0.3-next.53...node-v0.0.3-next.54) (2026-06-12)
4
18
 
5
19
 
@@ -20043,24 +20043,133 @@
20043
20043
  }
20044
20044
  }
20045
20045
  },
20046
- "/rights-management/negotiations/admin/{policyId}": {
20046
+ "/rights-management/negotiations/admin": {
20047
+ "post": {
20048
+ "operationId": "pnapCreate",
20049
+ "summary": "Pre-register a consumer-side policy negotiation entry",
20050
+ "tags": [
20051
+ "Policy Negotiation Administration Point"
20052
+ ],
20053
+ "security": [
20054
+ {
20055
+ "jwtBearerAuthScheme": []
20056
+ }
20057
+ ],
20058
+ "requestBody": {
20059
+ "description": "The request structure for creating a policy negotiation entry.",
20060
+ "required": true,
20061
+ "content": {
20062
+ "application/json": {
20063
+ "schema": {
20064
+ "$ref": "#/components/schemas/PnapCreateRequest"
20065
+ },
20066
+ "examples": {
20067
+ "pnapCreateRequestExample": {
20068
+ "value": {
20069
+ "id": "urn:contract-negotiation:consumer-pid"
20070
+ }
20071
+ }
20072
+ }
20073
+ }
20074
+ }
20075
+ },
20076
+ "responses": {
20077
+ "201": {
20078
+ "description": "The rest request ended in created response.",
20079
+ "headers": {
20080
+ "location": {
20081
+ "schema": {
20082
+ "type": "string"
20083
+ },
20084
+ "description": "e.g. urn:contract-negotiation:01970000-0000-7000-8000-000000000000"
20085
+ }
20086
+ }
20087
+ },
20088
+ "400": {
20089
+ "description": "The server cannot process the request, see the content for more details.",
20090
+ "content": {
20091
+ "application/json": {
20092
+ "schema": {
20093
+ "$ref": "#/components/schemas/Error"
20094
+ },
20095
+ "examples": {
20096
+ "exampleResponse": {
20097
+ "value": {
20098
+ "name": "GeneralError",
20099
+ "message": "errorMessage",
20100
+ "properties": {
20101
+ "foo": "bar"
20102
+ }
20103
+ }
20104
+ }
20105
+ }
20106
+ }
20107
+ }
20108
+ },
20109
+ "401": {
20110
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
20111
+ "content": {
20112
+ "application/json": {
20113
+ "schema": {
20114
+ "$ref": "#/components/schemas/Error"
20115
+ },
20116
+ "examples": {
20117
+ "exampleResponse": {
20118
+ "value": {
20119
+ "name": "UnauthorizedError",
20120
+ "message": "errorMessage"
20121
+ }
20122
+ }
20123
+ }
20124
+ }
20125
+ }
20126
+ },
20127
+ "500": {
20128
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
20129
+ "content": {
20130
+ "application/json": {
20131
+ "schema": {
20132
+ "$ref": "#/components/schemas/Error"
20133
+ },
20134
+ "examples": {
20135
+ "exampleResponse": {
20136
+ "value": {
20137
+ "name": "InternalServerError",
20138
+ "message": "errorMessage"
20139
+ }
20140
+ }
20141
+ }
20142
+ }
20143
+ }
20144
+ }
20145
+ }
20146
+ },
20047
20147
  "get": {
20048
- "operationId": "pnapGet",
20049
- "summary": "Get a policy negotiation",
20148
+ "operationId": "pnapQuery",
20149
+ "summary": "Query policy negotiations",
20050
20150
  "tags": [
20051
20151
  "Policy Negotiation Administration Point"
20052
20152
  ],
20053
20153
  "parameters": [
20054
20154
  {
20055
- "name": "policyId",
20056
- "description": "The ID of the policy being requested.",
20057
- "in": "path",
20058
- "required": true,
20155
+ "name": "state",
20156
+ "description": "The state of the policy negotiations.",
20157
+ "in": "query",
20158
+ "required": false,
20159
+ "schema": {
20160
+ "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolContractNegotiationStateType"
20161
+ },
20162
+ "example": "ACCEPTED"
20163
+ },
20164
+ {
20165
+ "name": "cursor",
20166
+ "description": "The cursor for pagination.",
20167
+ "in": "query",
20168
+ "required": false,
20059
20169
  "schema": {
20060
20170
  "type": "string"
20061
20171
  },
20062
- "style": "simple",
20063
- "example": "policy-1"
20172
+ "example": "next-cursor"
20064
20173
  }
20065
20174
  ],
20066
20175
  "security": [
@@ -20070,21 +20179,23 @@
20070
20179
  ],
20071
20180
  "responses": {
20072
20181
  "200": {
20073
- "description": "The response structure for policy negotiation request.",
20182
+ "description": "The response structure for querying manual policy negotiations.",
20074
20183
  "content": {
20075
20184
  "application/json": {
20076
20185
  "schema": {
20077
- "$ref": "#/components/schemas/PolicyNegotiation"
20186
+ "$ref": "#/components/schemas/PnapQueryResponse"
20078
20187
  },
20079
20188
  "examples": {
20080
- "pnapGetResponseExample": {
20081
- "value": {
20082
- "id": "pid",
20083
- "correlationId": "cid",
20084
- "dateCreated": "2025-09-03T00:00:00.000Z",
20085
- "state": "REQUESTED",
20086
- "organizationIdentity": "did:iota:123456789abcdefghi"
20087
- }
20189
+ "pnapQueryResponseExample": {
20190
+ "value": [
20191
+ {
20192
+ "id": "pid",
20193
+ "correlationId": "cid",
20194
+ "dateCreated": "2025-09-03T00:00:00.000Z",
20195
+ "state": "REQUESTED",
20196
+ "organizationIdentity": "did:iota:123456789abcdefghi"
20197
+ }
20198
+ ]
20088
20199
  }
20089
20200
  }
20090
20201
  }
@@ -20148,10 +20259,12 @@
20148
20259
  }
20149
20260
  }
20150
20261
  }
20151
- },
20152
- "put": {
20153
- "operationId": "pnapSet",
20154
- "summary": "Set a policy negotiation",
20262
+ }
20263
+ },
20264
+ "/rights-management/negotiations/admin/{policyId}": {
20265
+ "get": {
20266
+ "operationId": "pnapGet",
20267
+ "summary": "Get a policy negotiation",
20155
20268
  "tags": [
20156
20269
  "Policy Negotiation Administration Point"
20157
20270
  ],
@@ -20173,31 +20286,27 @@
20173
20286
  "jwtBearerAuthScheme": []
20174
20287
  }
20175
20288
  ],
20176
- "requestBody": {
20177
- "description": "The request structure for setting a policy negotiation.",
20178
- "required": true,
20179
- "content": {
20180
- "application/json": {
20181
- "schema": {
20182
- "$ref": "#/components/schemas/PolicyNegotiation"
20183
- },
20184
- "examples": {
20185
- "pnapSetRequestExample": {
20186
- "value": {
20187
- "id": "pid",
20188
- "correlationId": "cid",
20189
- "dateCreated": "2025-09-03T00:00:00.000Z",
20190
- "state": "REQUESTED",
20191
- "organizationIdentity": "did:iota:123456789abcdefghi"
20289
+ "responses": {
20290
+ "200": {
20291
+ "description": "The response structure for policy negotiation request.",
20292
+ "content": {
20293
+ "application/json": {
20294
+ "schema": {
20295
+ "$ref": "#/components/schemas/PolicyNegotiation"
20296
+ },
20297
+ "examples": {
20298
+ "pnapGetResponseExample": {
20299
+ "value": {
20300
+ "id": "pid",
20301
+ "correlationId": "cid",
20302
+ "dateCreated": "2025-09-03T00:00:00.000Z",
20303
+ "state": "REQUESTED",
20304
+ "organizationIdentity": "did:iota:123456789abcdefghi"
20305
+ }
20192
20306
  }
20193
20307
  }
20194
20308
  }
20195
20309
  }
20196
- }
20197
- },
20198
- "responses": {
20199
- "204": {
20200
- "description": "The rest request ended in success with no data."
20201
20310
  },
20202
20311
  "400": {
20203
20312
  "description": "The server cannot process the request, see the content for more details.",
@@ -20258,16 +20367,16 @@
20258
20367
  }
20259
20368
  }
20260
20369
  },
20261
- "delete": {
20262
- "operationId": "pnapRemove",
20263
- "summary": "Remove a policy negotiation",
20370
+ "put": {
20371
+ "operationId": "pnapSet",
20372
+ "summary": "Set a policy negotiation",
20264
20373
  "tags": [
20265
20374
  "Policy Negotiation Administration Point"
20266
20375
  ],
20267
20376
  "parameters": [
20268
20377
  {
20269
20378
  "name": "policyId",
20270
- "description": "The ID of the policy being removed.",
20379
+ "description": "The ID of the policy being requested.",
20271
20380
  "in": "path",
20272
20381
  "required": true,
20273
20382
  "schema": {
@@ -20282,6 +20391,28 @@
20282
20391
  "jwtBearerAuthScheme": []
20283
20392
  }
20284
20393
  ],
20394
+ "requestBody": {
20395
+ "description": "The request structure for setting a policy negotiation.",
20396
+ "required": true,
20397
+ "content": {
20398
+ "application/json": {
20399
+ "schema": {
20400
+ "$ref": "#/components/schemas/PolicyNegotiation"
20401
+ },
20402
+ "examples": {
20403
+ "pnapSetRequestExample": {
20404
+ "value": {
20405
+ "id": "pid",
20406
+ "correlationId": "cid",
20407
+ "dateCreated": "2025-09-03T00:00:00.000Z",
20408
+ "state": "REQUESTED",
20409
+ "organizationIdentity": "did:iota:123456789abcdefghi"
20410
+ }
20411
+ }
20412
+ }
20413
+ }
20414
+ }
20415
+ },
20285
20416
  "responses": {
20286
20417
  "204": {
20287
20418
  "description": "The rest request ended in success with no data."
@@ -20344,35 +20475,24 @@
20344
20475
  }
20345
20476
  }
20346
20477
  }
20347
- }
20348
- },
20349
- "/rights-management/negotiations/admin": {
20350
- "get": {
20351
- "operationId": "pnapQuery",
20352
- "summary": "Query policy negotiations",
20478
+ },
20479
+ "delete": {
20480
+ "operationId": "pnapRemove",
20481
+ "summary": "Remove a policy negotiation",
20353
20482
  "tags": [
20354
20483
  "Policy Negotiation Administration Point"
20355
20484
  ],
20356
20485
  "parameters": [
20357
20486
  {
20358
- "name": "state",
20359
- "description": "The state of the policy negotiations.",
20360
- "in": "query",
20361
- "required": false,
20362
- "schema": {
20363
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolContractNegotiationStateType"
20364
- },
20365
- "example": "ACCEPTED"
20366
- },
20367
- {
20368
- "name": "cursor",
20369
- "description": "The cursor for pagination.",
20370
- "in": "query",
20371
- "required": false,
20487
+ "name": "policyId",
20488
+ "description": "The ID of the policy being removed.",
20489
+ "in": "path",
20490
+ "required": true,
20372
20491
  "schema": {
20373
20492
  "type": "string"
20374
20493
  },
20375
- "example": "next-cursor"
20494
+ "style": "simple",
20495
+ "example": "policy-1"
20376
20496
  }
20377
20497
  ],
20378
20498
  "security": [
@@ -20381,28 +20501,8 @@
20381
20501
  }
20382
20502
  ],
20383
20503
  "responses": {
20384
- "200": {
20385
- "description": "The response structure for querying manual policy negotiations.",
20386
- "content": {
20387
- "application/json": {
20388
- "schema": {
20389
- "$ref": "#/components/schemas/PnapQueryResponse"
20390
- },
20391
- "examples": {
20392
- "pnapQueryResponseExample": {
20393
- "value": [
20394
- {
20395
- "id": "pid",
20396
- "correlationId": "cid",
20397
- "dateCreated": "2025-09-03T00:00:00.000Z",
20398
- "state": "REQUESTED",
20399
- "organizationIdentity": "did:iota:123456789abcdefghi"
20400
- }
20401
- ]
20402
- }
20403
- }
20404
- }
20405
- }
20504
+ "204": {
20505
+ "description": "The rest request ended in success with no data."
20406
20506
  },
20407
20507
  "400": {
20408
20508
  "description": "The server cannot process the request, see the content for more details.",
@@ -22859,6 +22959,19 @@
22859
22959
  },
22860
22960
  "description": "The body of the response."
22861
22961
  },
22962
+ "PnapCreateRequest": {
22963
+ "type": "object",
22964
+ "properties": {
22965
+ "id": {
22966
+ "type": "string",
22967
+ "description": "The consumer-side negotiation identifier (DSP consumerPid)."
22968
+ }
22969
+ },
22970
+ "required": [
22971
+ "id"
22972
+ ],
22973
+ "description": "The partial negotiation to pre-register."
22974
+ },
22862
22975
  "PnapQueryResponse": {
22863
22976
  "type": "array",
22864
22977
  "items": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/node",
3
- "version": "0.0.3-next.54",
3
+ "version": "0.0.3-next.55",
4
4
  "description": "TWIN Node serving APIs using the specified configuration",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,7 +14,7 @@
14
14
  "node": ">=20.0.0"
15
15
  },
16
16
  "dependencies": {
17
- "@twin.org/node-core": "0.0.3-next.54"
17
+ "@twin.org/node-core": "0.0.3-next.55"
18
18
  },
19
19
  "bugs": {
20
20
  "url": "git+https://github.com/iotaledger/twin-node/issues"