@twin.org/dataspace-models 0.9.1 → 0.9.2-next.10

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 (65) hide show
  1. package/dist/es/entities/dataspaceAppDataset.js +11 -2
  2. package/dist/es/entities/dataspaceAppDataset.js.map +1 -1
  3. package/dist/es/entities/dataspaceAppDatasetV0.js +73 -0
  4. package/dist/es/entities/dataspaceAppDatasetV0.js.map +1 -0
  5. package/dist/es/entities/transferProcess.js +14 -20
  6. package/dist/es/entities/transferProcess.js.map +1 -1
  7. package/dist/es/entities/transferProcessV0.js +156 -0
  8. package/dist/es/entities/transferProcessV0.js.map +1 -0
  9. package/dist/es/entities/transferRetrieval.js +38 -0
  10. package/dist/es/entities/transferRetrieval.js.map +1 -0
  11. package/dist/es/index.js +5 -0
  12. package/dist/es/index.js.map +1 -1
  13. package/dist/es/models/IPushDeliveryPayload.js.map +1 -1
  14. package/dist/es/models/api/controlPlane/IAppDatasetCreateRequest.js.map +1 -1
  15. package/dist/es/models/api/controlPlane/IAppDatasetUpdateRequest.js.map +1 -1
  16. package/dist/es/models/controlPlane/IDataspaceAppDataset.js.map +1 -1
  17. package/dist/es/models/controlPlane/IDataspaceControlPlaneComponent.js.map +1 -1
  18. package/dist/es/models/controlPlane/ITransferCallback.js.map +1 -1
  19. package/dist/es/models/controlPlane/ITransferProcess.js.map +1 -1
  20. package/dist/es/models/controlPlane/ITransferQueryResult.js +2 -0
  21. package/dist/es/models/controlPlane/ITransferQueryResult.js.map +1 -0
  22. package/dist/es/models/controlPlane/dataspaceControlPlaneMetricIds.js +5 -1
  23. package/dist/es/models/controlPlane/dataspaceControlPlaneMetricIds.js.map +1 -1
  24. package/dist/es/models/controlPlane/dataspaceControlPlaneMetrics.js +5 -0
  25. package/dist/es/models/controlPlane/dataspaceControlPlaneMetrics.js.map +1 -1
  26. package/dist/es/models/controlPlane/transferTerminationCode.js +14 -0
  27. package/dist/es/models/controlPlane/transferTerminationCode.js.map +1 -0
  28. package/dist/es/models/dataPlane/IDataspaceDataPlaneComponent.js.map +1 -1
  29. package/dist/types/entities/dataspaceAppDataset.d.ts +6 -1
  30. package/dist/types/entities/dataspaceAppDatasetV0.d.ts +39 -0
  31. package/dist/types/entities/transferProcess.d.ts +10 -13
  32. package/dist/types/entities/transferProcessV0.d.ts +83 -0
  33. package/dist/types/entities/transferRetrieval.d.ts +18 -0
  34. package/dist/types/index.d.ts +5 -0
  35. package/dist/types/models/IPushDeliveryPayload.d.ts +1 -1
  36. package/dist/types/models/api/controlPlane/IAppDatasetCreateRequest.d.ts +7 -2
  37. package/dist/types/models/api/controlPlane/IAppDatasetUpdateRequest.d.ts +5 -0
  38. package/dist/types/models/controlPlane/IDataspaceAppDataset.d.ts +5 -0
  39. package/dist/types/models/controlPlane/IDataspaceControlPlaneComponent.d.ts +36 -6
  40. package/dist/types/models/controlPlane/ITransferCallback.d.ts +3 -3
  41. package/dist/types/models/controlPlane/ITransferProcess.d.ts +2 -11
  42. package/dist/types/models/controlPlane/ITransferQueryResult.d.ts +14 -0
  43. package/dist/types/models/controlPlane/dataspaceControlPlaneMetricIds.d.ts +4 -0
  44. package/dist/types/models/controlPlane/transferTerminationCode.d.ts +14 -0
  45. package/dist/types/models/dataPlane/IDataspaceDataPlaneComponent.d.ts +1 -1
  46. package/docs/changelog.md +110 -0
  47. package/docs/reference/classes/DataspaceAppDataset.md +10 -1
  48. package/docs/reference/classes/DataspaceAppDatasetV0.md +77 -0
  49. package/docs/reference/classes/TransferProcess.md +12 -18
  50. package/docs/reference/classes/TransferProcessV0.md +156 -0
  51. package/docs/reference/classes/TransferRetrieval.md +38 -0
  52. package/docs/reference/index.md +6 -0
  53. package/docs/reference/interfaces/IAppDatasetCreateRequest.md +9 -2
  54. package/docs/reference/interfaces/IAppDatasetUpdateRequest.md +7 -0
  55. package/docs/reference/interfaces/IDataspaceAppDataset.md +9 -0
  56. package/docs/reference/interfaces/IDataspaceControlPlaneComponent.md +77 -5
  57. package/docs/reference/interfaces/IDataspaceDataPlaneComponent.md +1 -1
  58. package/docs/reference/interfaces/IPushDeliveryPayload.md +1 -1
  59. package/docs/reference/interfaces/ITransferCallback.md +3 -3
  60. package/docs/reference/interfaces/ITransferProcess.md +2 -14
  61. package/docs/reference/interfaces/ITransferQueryResult.md +19 -0
  62. package/docs/reference/type-aliases/TransferTerminationCode.md +5 -0
  63. package/docs/reference/variables/DataspaceControlPlaneMetricIds.md +6 -0
  64. package/docs/reference/variables/TransferTerminationCode.md +14 -0
  65. package/package.json +15 -14
@@ -0,0 +1,38 @@
1
+ # Class: TransferRetrieval
2
+
3
+ Records the consumer's first successful retrieval for a transfer.
4
+ Written by the Data Plane, read by the Control Plane's one-shot policy sweep.
5
+
6
+ ## Constructors
7
+
8
+ ### Constructor
9
+
10
+ > **new TransferRetrieval**(): `TransferRetrieval`
11
+
12
+ #### Returns
13
+
14
+ `TransferRetrieval`
15
+
16
+ ## Properties
17
+
18
+ ### consumerPid {#consumerpid}
19
+
20
+ > **consumerPid**: `string`
21
+
22
+ The consumer PID of the transfer, primary key.
23
+
24
+ ***
25
+
26
+ ### dateFirstRetrieved {#datefirstretrieved}
27
+
28
+ > **dateFirstRetrieved**: `string`
29
+
30
+ When the first successful retrieval happened (ISO string format).
31
+
32
+ ***
33
+
34
+ ### dateLastRetrieved {#datelastretrieved}
35
+
36
+ > **dateLastRetrieved**: `string`
37
+
38
+ When the most recent successful retrieval happened (ISO string format).
@@ -4,7 +4,10 @@
4
4
 
5
5
  - [DataspaceDataTypes](classes/DataspaceDataTypes.md)
6
6
  - [DataspaceAppDataset](classes/DataspaceAppDataset.md)
7
+ - [DataspaceAppDatasetV0](classes/DataspaceAppDatasetV0.md)
7
8
  - [TransferProcess](classes/TransferProcess.md)
9
+ - [TransferProcessV0](classes/TransferProcessV0.md)
10
+ - [TransferRetrieval](classes/TransferRetrieval.md)
8
11
 
9
12
  ## Interfaces
10
13
 
@@ -65,6 +68,7 @@
65
68
  - [ITransferCallback](interfaces/ITransferCallback.md)
66
69
  - [ITransferContext](interfaces/ITransferContext.md)
67
70
  - [ITransferProcess](interfaces/ITransferProcess.md)
71
+ - [ITransferQueryResult](interfaces/ITransferQueryResult.md)
68
72
  - [ITransferContextResponse](interfaces/ITransferContextResponse.md)
69
73
  - [IDataspaceDataPlaneComponent](interfaces/IDataspaceDataPlaneComponent.md)
70
74
 
@@ -76,6 +80,7 @@
76
80
  - [DataRequestType](type-aliases/DataRequestType.md)
77
81
  - [DataspaceControlPlaneMetricIds](type-aliases/DataspaceControlPlaneMetricIds.md)
78
82
  - [TransferProcessRole](type-aliases/TransferProcessRole.md)
83
+ - [TransferTerminationCode](type-aliases/TransferTerminationCode.md)
79
84
  - [DataspaceDataPlaneMetricIds](type-aliases/DataspaceDataPlaneMetricIds.md)
80
85
  - [DataspaceContexts](type-aliases/DataspaceContexts.md)
81
86
  - [DataspaceTransferFormat](type-aliases/DataspaceTransferFormat.md)
@@ -90,6 +95,7 @@
90
95
  - [DataspaceControlPlaneMetricIds](variables/DataspaceControlPlaneMetricIds.md)
91
96
  - [DataspaceControlPlaneMetrics](variables/DataspaceControlPlaneMetrics.md)
92
97
  - [TransferProcessRole](variables/TransferProcessRole.md)
98
+ - [TransferTerminationCode](variables/TransferTerminationCode.md)
93
99
  - [DataspaceDataPlaneMetricIds](variables/DataspaceDataPlaneMetricIds.md)
94
100
  - [DataspaceDataPlaneMetrics](variables/DataspaceDataPlaneMetrics.md)
95
101
  - [DataspaceContexts](variables/DataspaceContexts.md)
@@ -3,7 +3,7 @@
3
3
  API request to register an app dataset.
4
4
 
5
5
  The owning `tenantId` is captured automatically from the request's tenant
6
- context callers do not supply it.
6
+ context - callers do not supply it.
7
7
 
8
8
  ## Properties
9
9
 
@@ -34,4 +34,11 @@ registered name in `DataspaceAppFactory` (typically the app's URI).
34
34
  > **dataset**: `IDataspaceProtocolDataset`
35
35
 
36
36
  The dataset payload. System-stamped fields like `dcterms:publisher`
37
- may be omitted the Control Plane fills them in at publish time.
37
+ may be omitted - the Control Plane fills them in at publish time.
38
+
39
+ #### transferIdleTimeoutMs?
40
+
41
+ > `optional` **transferIdleTimeoutMs?**: `number`
42
+
43
+ Optional idle window (ms) overriding the node-level idle policy for this
44
+ dataset's PULL transfers; 0 disables it for this dataset.
@@ -36,3 +36,10 @@ update if the tenant wants to retarget the dataset.
36
36
  > **dataset**: `IDataspaceProtocolDataset`
37
37
 
38
38
  The dataset payload.
39
+
40
+ #### transferIdleTimeoutMs?
41
+
42
+ > `optional` **transferIdleTimeoutMs?**: `number`
43
+
44
+ Optional idle window (ms) overriding the node-level idle policy for this
45
+ dataset's PULL transfers; 0 disables it for this dataset.
@@ -28,6 +28,15 @@ The dataset payload.
28
28
 
29
29
  ***
30
30
 
31
+ ### transferIdleTimeoutMs? {#transferidletimeoutms}
32
+
33
+ > `optional` **transferIdleTimeoutMs?**: `number`
34
+
35
+ Idle window (ms) for this dataset's PULL transfers, overriding the node-level
36
+ providerTransferIdleTimeoutMs; 0 disables the idle policy for this dataset.
37
+
38
+ ***
39
+
31
40
  ### dateCreated {#datecreated}
32
41
 
33
42
  > **dateCreated**: `string`
@@ -79,7 +79,7 @@ Otherwise the method returns immediately with a `negotiationId`. The caller is
79
79
  notified via the registered INegotiationCallback when the negotiation completes.
80
80
  The negotiation follows DSP state machine: REQUESTED → OFFERED → AGREED → VERIFIED → FINALIZED.
81
81
 
82
- The REST client does not support this method and throws a not supported error
82
+ The REST client does not support this method and throws a not supported error -
83
83
  use ComponentFactory.get() for the in-process service.
84
84
 
85
85
  DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiation-protocol
@@ -200,7 +200,7 @@ Upstream modules register their callback here to be notified when a
200
200
  consumer-initiated transfer changes state (STARTED, COMPLETED, SUSPENDED,
201
201
  TERMINATED).
202
202
 
203
- The REST client does not support this method and throws a not supported error
203
+ The REST client does not support this method and throws a not supported error -
204
204
  use ComponentFactory.get() for the in-process service.
205
205
 
206
206
  #### Parameters
@@ -260,7 +260,7 @@ The caller is notified of subsequent state changes (STARTED, COMPLETED, etc.)
260
260
  via the registered ITransferCallback. The transfer moves to STARTED when the
261
261
  provider POSTs a TransferStartMessage back to this node's callback address.
262
262
 
263
- The REST client does not support this method and throws a not supported error
263
+ The REST client does not support this method and throws a not supported error -
264
264
  use ComponentFactory.get() for the in-process service.
265
265
 
266
266
  #### Parameters
@@ -550,9 +550,59 @@ Transfer Process (DSP compliant) with current state, or TransferError if the ope
550
550
 
551
551
  ***
552
552
 
553
+ ### queryDataTransfer() {#querydatatransfer}
554
+
555
+ > **queryDataTransfer**(`agreementId`, `state`, `cursor`, `trustPayload`): `Promise`\<[`ITransferQueryResult`](ITransferQueryResult.md)\>
556
+
557
+ Query Transfer Processes by agreement id.
558
+ Lets a caller check whether transfers already exist for an agreement
559
+ (e.g. before initiating a new one) without knowing any process ids.
560
+
561
+ Role Performed: Consumer / Provider
562
+ Called by: Consumer orchestration before requesting a new transfer, or either
563
+ party inspecting the transfers attached to an agreement on their side.
564
+
565
+ Results are limited to transfers where the authenticated caller is a party
566
+ (consumer or provider identity). A returned dataAddress is a point-in-time copy;
567
+ if its token has expired the data plane rejects it and a new start is required.
568
+
569
+ #### Parameters
570
+
571
+ ##### agreementId
572
+
573
+ `string`
574
+
575
+ The agreement id to look up transfer processes for.
576
+
577
+ ##### state
578
+
579
+ `DataspaceProtocolTransferProcessStateType` \| `undefined`
580
+
581
+ Optional filter to a single transfer process state.
582
+
583
+ ##### cursor
584
+
585
+ `string` \| `undefined`
586
+
587
+ Optional pagination cursor from a previous result page.
588
+
589
+ ##### trustPayload
590
+
591
+ `unknown`
592
+
593
+ Trust payload containing authorization information (JWT, VC, etc.).
594
+
595
+ #### Returns
596
+
597
+ `Promise`\<[`ITransferQueryResult`](ITransferQueryResult.md)\>
598
+
599
+ The matching transfer processes and a pagination cursor when more pages exist, empty when none match.
600
+
601
+ ***
602
+
553
603
  ### createAppDataset() {#createappdataset}
554
604
 
555
- > **createAppDataset**(`id`, `appId`, `dataset`): `Promise`\<`string`\>
605
+ > **createAppDataset**(`id`, `appId`, `dataset`, `options?`): `Promise`\<`string`\>
556
606
 
557
607
  Register an app dataset for a dataspace app, owned by the calling tenant.
558
608
 
@@ -578,6 +628,17 @@ The dataspace app this dataset belongs to (matches
578
628
 
579
629
  The dataset payload (may omit system-stamped fields).
580
630
 
631
+ ##### options?
632
+
633
+ Optional dataset settings.
634
+
635
+ ###### transferIdleTimeoutMs?
636
+
637
+ `number`
638
+
639
+ Optional idle window (ms) overriding the node-level idle
640
+ policy for this dataset's PULL transfers; 0 disables it for this dataset.
641
+
581
642
  #### Returns
582
643
 
583
644
  `Promise`\<`string`\>
@@ -638,7 +699,7 @@ The stored app datasets and the next-page cursor if more exist.
638
699
 
639
700
  ### updateAppDataset() {#updateappdataset}
640
701
 
641
- > **updateAppDataset**(`id`, `appId`, `dataset`): `Promise`\<`void`\>
702
+ > **updateAppDataset**(`id`, `appId`, `dataset`, `options?`): `Promise`\<`void`\>
642
703
 
643
704
  Update an app dataset record owned by the calling tenant.
644
705
 
@@ -662,6 +723,17 @@ The dataspace app this dataset belongs to.
662
723
 
663
724
  The dataset payload.
664
725
 
726
+ ##### options?
727
+
728
+ Optional dataset settings.
729
+
730
+ ###### transferIdleTimeoutMs?
731
+
732
+ `number`
733
+
734
+ Optional idle window (ms) overriding the node-level idle
735
+ policy for this dataset's PULL transfers; 0 disables it for this dataset.
736
+
665
737
  #### Returns
666
738
 
667
739
  `Promise`\<`void`\>
@@ -119,7 +119,7 @@ NotFoundError if activity log entry is not known.
119
119
 
120
120
  #### Throws
121
121
 
122
- UnauthorizedError if trustPayload is absent or the verified identity is not the entry generator.
122
+ UnauthorizedError if trustPayload is absent or the verified identity is not authorised for the entry.
123
123
 
124
124
  ***
125
125
 
@@ -79,7 +79,7 @@ The JSON-LD
79
79
  The tenant that owns this push delivery, captured at schedule time from the active
80
80
  `ContextIdStore` context (typically from the subscription's `tenantId` field).
81
81
  The runner re-establishes this tenant context via `ContextIdStore.run` before invoking
82
- tenant-scoped operations (PEP, trust signing, vault lookups). Optional single-tenant
82
+ tenant-scoped operations (PEP, trust signing, vault lookups). Optional - single-tenant
83
83
  nodes operate without a tenant context.
84
84
 
85
85
  ***
@@ -174,9 +174,9 @@ Nothing.
174
174
 
175
175
  > `optional` **onTimeout**(`consumerPid`): `Promise`\<`void`\>
176
176
 
177
- Called when the transfer times out, i.e. the provider did not progress it (it sat in REQUESTED)
178
- within the configured window. Optional: implement it to be notified specifically of a non-response
179
- (otherwise the control plane falls back to `onFailed(consumerPid, "transferStalled")`).
177
+ Called when the transfer times out: a consumer-side REQUESTED transfer the provider never
178
+ progressed, or a provider-side STARTED transfer idle beyond the configured window. Optional:
179
+ otherwise the control plane falls back to `onFailed` with the timeout reason.
180
180
 
181
181
  #### Parameters
182
182
 
@@ -46,7 +46,6 @@ One of: REQUESTED, STARTED, COMPLETED, SUSPENDED, TERMINATED.
46
46
  > **agreementId**: `string`
47
47
 
48
48
  Agreement ID linking to the rights-management Agreement.
49
- Used to resolve policies and permissions.
50
49
 
51
50
  ***
52
51
 
@@ -67,15 +66,6 @@ Offer ID from the original Catalog offer.
67
66
 
68
67
  ***
69
68
 
70
- ### policies? {#policies}
71
-
72
- > `optional` **policies?**: `IRightsManagementPolicy`[]
73
-
74
- Policies from the Agreement.
75
- Used by DSC for runtime policy enforcement.
76
-
77
- ***
78
-
79
69
  ### consumerIdentity? {#consumeridentity}
80
70
 
81
71
  > `optional` **consumerIdentity?**: `string`
@@ -134,10 +124,8 @@ Specified by a Distribution for the Dataset associated with the Agreement.
134
124
 
135
125
  > `optional` **dataAddress?**: `IDataspaceProtocolDataAddress`
136
126
 
137
- Data address for consumer-initiated push transfers (HttpData-PUSH).
138
- Contains the consumer's /inbox endpoint as supplied in the TransferRequestMessage.
139
- Absent for PULL (HttpData-PULL) and provider-initiated push (HttpData-POST),
140
- where the consumer deliberately omits a dataAddress.
127
+ Data address for the transfer: the consumer's inbox for PUSH, or the
128
+ provider-built address persisted at start for PULL/POST; may expire while STARTED.
141
129
 
142
130
  ***
143
131
 
@@ -0,0 +1,19 @@
1
+ # Interface: ITransferQueryResult
2
+
3
+ Result of querying Transfer Processes by agreement.
4
+
5
+ ## Properties
6
+
7
+ ### transfers {#transfers}
8
+
9
+ > **transfers**: [`ITransferProcess`](ITransferProcess.md)[]
10
+
11
+ The transfer processes matching the query, empty when none match.
12
+
13
+ ***
14
+
15
+ ### cursor? {#cursor}
16
+
17
+ > `optional` **cursor?**: `string`
18
+
19
+ Pagination cursor for retrieving the next page, omitted when no more results exist.
@@ -0,0 +1,5 @@
1
+ # Type Alias: TransferTerminationCode
2
+
3
+ > **TransferTerminationCode** = *typeof* [`TransferTerminationCode`](../variables/TransferTerminationCode.md)\[keyof *typeof* [`TransferTerminationCode`](../variables/TransferTerminationCode.md)\]
4
+
5
+ Type for TransferTerminationCode values.
@@ -65,3 +65,9 @@ Number of app datasets updated.
65
65
  > `readonly` **AppDatasetsDeleted**: `"dcp_app_datasets_deleted"` = `"dcp_app_datasets_deleted"`
66
66
 
67
67
  Number of app datasets deleted.
68
+
69
+ ### AgreementsSwept {#agreementsswept}
70
+
71
+ > `readonly` **AgreementsSwept**: `"dcp_agreements_swept"` = `"dcp_agreements_swept"`
72
+
73
+ Number of agreements removed by the agreement sweep.
@@ -0,0 +1,14 @@
1
+ # Variable: TransferTerminationCode
2
+
3
+ > `const` **TransferTerminationCode**: `object`
4
+
5
+ Machine-readable codes set on provider-initiated TransferTerminationMessages
6
+ by the control plane's transfer lifecycle policies.
7
+
8
+ ## Type Declaration
9
+
10
+ ### IdleTimeout {#idletimeout}
11
+
12
+ > `readonly` **IdleTimeout**: `"idleTimeout"` = `"idleTimeout"`
13
+
14
+ A Provider-side STARTED transfer had no data-plane activity within the configured idle window.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/dataspace-models",
3
- "version": "0.9.1",
3
+ "version": "0.9.2-next.10",
4
4
  "description": "Defines shared entities, interfaces, and data types used by control plane and data plane components.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,19 +14,20 @@
14
14
  "node": ">=24.0.0"
15
15
  },
16
16
  "dependencies": {
17
- "@twin.org/background-task-models": "^0.9.1",
18
- "@twin.org/core": "^0.9.1",
19
- "@twin.org/data-core": "^0.9.1",
20
- "@twin.org/data-json-ld": "^0.9.1",
21
- "@twin.org/entity": "^0.9.1",
22
- "@twin.org/nameof": "^0.9.1",
23
- "@twin.org/rights-management-models": "^0.9.1",
24
- "@twin.org/standards-dataspace-protocol": "^0.9.1",
25
- "@twin.org/standards-schema-org": "^0.9.1",
26
- "@twin.org/standards-w3c-activity-streams": "^0.9.1",
27
- "@twin.org/standards-w3c-dcat": "^0.9.1",
28
- "@twin.org/standards-w3c-odrl": "^0.9.1",
29
- "@twin.org/telemetry-models": "^0.9.1"
17
+ "@twin.org/background-task-models": "next",
18
+ "@twin.org/core": "next",
19
+ "@twin.org/data-core": "next",
20
+ "@twin.org/data-json-ld": "next",
21
+ "@twin.org/entity": "next",
22
+ "@twin.org/nameof": "next",
23
+ "@twin.org/rights-management-models": "next",
24
+ "@twin.org/standards-dataspace-protocol": "next",
25
+ "@twin.org/standards-schema-org": "next",
26
+ "@twin.org/standards-w3c-activity-streams": "next",
27
+ "@twin.org/standards-w3c-dcat": "next",
28
+ "@twin.org/standards-w3c-odrl": "next",
29
+ "@twin.org/telemetry-models": "next",
30
+ "@twin.org/web": "next"
30
31
  },
31
32
  "main": "./dist/es/index.js",
32
33
  "types": "./dist/types/index.d.ts",