@twin.org/dataspace-models 0.9.1-next.9 → 0.9.2-next.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.
Files changed (55) hide show
  1. package/dist/es/entities/dataspaceAppDataset.js +10 -1
  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 +2 -1
  6. package/dist/es/entities/transferProcess.js.map +1 -1
  7. package/dist/es/entities/transferRetrieval.js +38 -0
  8. package/dist/es/entities/transferRetrieval.js.map +1 -0
  9. package/dist/es/index.js +4 -0
  10. package/dist/es/index.js.map +1 -1
  11. package/dist/es/models/IPushDeliveryPayload.js.map +1 -1
  12. package/dist/es/models/api/controlPlane/IAppDatasetCreateRequest.js.map +1 -1
  13. package/dist/es/models/api/controlPlane/IAppDatasetUpdateRequest.js.map +1 -1
  14. package/dist/es/models/controlPlane/IDataspaceAppDataset.js.map +1 -1
  15. package/dist/es/models/controlPlane/IDataspaceControlPlaneComponent.js.map +1 -1
  16. package/dist/es/models/controlPlane/ITransferCallback.js.map +1 -1
  17. package/dist/es/models/controlPlane/ITransferContext.js.map +1 -1
  18. package/dist/es/models/controlPlane/ITransferProcess.js.map +1 -1
  19. package/dist/es/models/controlPlane/ITransferQueryResult.js +2 -0
  20. package/dist/es/models/controlPlane/ITransferQueryResult.js.map +1 -0
  21. package/dist/es/models/controlPlane/transferTerminationCode.js +14 -0
  22. package/dist/es/models/controlPlane/transferTerminationCode.js.map +1 -0
  23. package/dist/types/entities/dataspaceAppDataset.d.ts +5 -0
  24. package/dist/types/entities/dataspaceAppDatasetV0.d.ts +39 -0
  25. package/dist/types/entities/transferProcess.d.ts +5 -3
  26. package/dist/types/entities/transferRetrieval.d.ts +18 -0
  27. package/dist/types/index.d.ts +4 -0
  28. package/dist/types/models/IPushDeliveryPayload.d.ts +2 -2
  29. package/dist/types/models/api/controlPlane/IAppDatasetCreateRequest.d.ts +5 -0
  30. package/dist/types/models/api/controlPlane/IAppDatasetUpdateRequest.d.ts +5 -0
  31. package/dist/types/models/controlPlane/IDataspaceAppDataset.d.ts +5 -0
  32. package/dist/types/models/controlPlane/IDataspaceControlPlaneComponent.d.ts +33 -3
  33. package/dist/types/models/controlPlane/ITransferCallback.d.ts +3 -3
  34. package/dist/types/models/controlPlane/ITransferContext.d.ts +3 -2
  35. package/dist/types/models/controlPlane/ITransferProcess.d.ts +5 -6
  36. package/dist/types/models/controlPlane/ITransferQueryResult.d.ts +14 -0
  37. package/dist/types/models/controlPlane/transferTerminationCode.d.ts +14 -0
  38. package/docs/changelog.md +111 -0
  39. package/docs/reference/classes/DataspaceAppDataset.md +9 -0
  40. package/docs/reference/classes/DataspaceAppDatasetV0.md +77 -0
  41. package/docs/reference/classes/TransferProcess.md +3 -2
  42. package/docs/reference/classes/TransferRetrieval.md +38 -0
  43. package/docs/reference/index.md +5 -0
  44. package/docs/reference/interfaces/IAppDatasetCreateRequest.md +7 -0
  45. package/docs/reference/interfaces/IAppDatasetUpdateRequest.md +7 -0
  46. package/docs/reference/interfaces/IDataspaceAppDataset.md +9 -0
  47. package/docs/reference/interfaces/IDataspaceControlPlaneComponent.md +74 -2
  48. package/docs/reference/interfaces/IPushDeliveryPayload.md +1 -1
  49. package/docs/reference/interfaces/ITransferCallback.md +3 -3
  50. package/docs/reference/interfaces/ITransferContext.md +1 -1
  51. package/docs/reference/interfaces/ITransferProcess.md +3 -5
  52. package/docs/reference/interfaces/ITransferQueryResult.md +19 -0
  53. package/docs/reference/type-aliases/TransferTerminationCode.md +5 -0
  54. package/docs/reference/variables/TransferTerminationCode.md +14 -0
  55. package/package.json +3 -2
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Records the consumer's first successful retrieval for a transfer.
3
+ * Written by the Data Plane, read by the Control Plane's one-shot policy sweep.
4
+ */
5
+ export declare class TransferRetrieval {
6
+ /**
7
+ * The consumer PID of the transfer, primary key.
8
+ */
9
+ consumerPid: string;
10
+ /**
11
+ * When the first successful retrieval happened (ISO string format).
12
+ */
13
+ dateFirstRetrieved: string;
14
+ /**
15
+ * When the most recent successful retrieval happened (ISO string format).
16
+ */
17
+ dateLastRetrieved: string;
18
+ }
@@ -1,5 +1,7 @@
1
1
  export * from "./entities/dataspaceAppDataset.js";
2
+ export * from "./entities/dataspaceAppDatasetV0.js";
2
3
  export * from "./entities/transferProcess.js";
4
+ export * from "./entities/transferRetrieval.js";
3
5
  export * from "./models/controlPlane/api/ITransferContextResponse.js";
4
6
  export * from "./models/controlPlane/dataspaceControlPlaneMetricIds.js";
5
7
  export * from "./models/controlPlane/dataspaceControlPlaneMetrics.js";
@@ -10,7 +12,9 @@ export * from "./models/controlPlane/INegotiationCallback.js";
10
12
  export * from "./models/controlPlane/ITransferCallback.js";
11
13
  export * from "./models/controlPlane/ITransferContext.js";
12
14
  export * from "./models/controlPlane/ITransferProcess.js";
15
+ export * from "./models/controlPlane/ITransferQueryResult.js";
13
16
  export * from "./models/controlPlane/transferProcessRole.js";
17
+ export * from "./models/controlPlane/transferTerminationCode.js";
14
18
  export * from "./models/dataPlane/dataspaceDataPlaneMetricIds.js";
15
19
  export * from "./models/dataPlane/dataspaceDataPlaneMetrics.js";
16
20
  export * from "./models/dataPlane/IDataspaceDataPlaneComponent.js";
@@ -1,5 +1,5 @@
1
1
  import type { IJsonLdNodeObject } from "@twin.org/data-json-ld";
2
- import type { IDataspaceProtocolAgreement } from "@twin.org/standards-dataspace-protocol";
2
+ import type { IRightsManagementAgreement } from "@twin.org/rights-management-models";
3
3
  /**
4
4
  * Payload handed to pushDeliveryRunner via a Background Task.
5
5
  * Contains everything the runner needs to POST one Activity Streams
@@ -31,7 +31,7 @@ export interface IPushDeliveryPayload {
31
31
  /**
32
32
  * The ODRL agreement governing the data transfer.
33
33
  */
34
- agreement: IDataspaceProtocolAgreement;
34
+ agreement: IRightsManagementAgreement;
35
35
  /**
36
36
  * The JSON-LD data payload to deliver to the consumer.
37
37
  */
@@ -27,5 +27,10 @@ export interface IAppDatasetCreateRequest {
27
27
  * may be omitted — the Control Plane fills them in at publish time.
28
28
  */
29
29
  dataset: IDataspaceProtocolDataset;
30
+ /**
31
+ * Optional idle window (ms) overriding the node-level idle policy for this
32
+ * dataset's PULL transfers; 0 disables it for this dataset.
33
+ */
34
+ transferIdleTimeoutMs?: number;
30
35
  };
31
36
  }
@@ -25,5 +25,10 @@ export interface IAppDatasetUpdateRequest {
25
25
  * The dataset payload.
26
26
  */
27
27
  dataset: IDataspaceProtocolDataset;
28
+ /**
29
+ * Optional idle window (ms) overriding the node-level idle policy for this
30
+ * dataset's PULL transfers; 0 disables it for this dataset.
31
+ */
32
+ transferIdleTimeoutMs?: number;
28
33
  };
29
34
  }
@@ -15,6 +15,11 @@ export interface IDataspaceAppDataset {
15
15
  * The dataset payload.
16
16
  */
17
17
  dataset: IDataspaceProtocolDataset;
18
+ /**
19
+ * Idle window (ms) for this dataset's PULL transfers, overriding the node-level
20
+ * providerTransferIdleTimeoutMs; 0 disables the idle policy for this dataset.
21
+ */
22
+ transferIdleTimeoutMs?: number;
18
23
  /**
19
24
  * Creation timestamp (ISO string).
20
25
  */
@@ -1,8 +1,9 @@
1
1
  import type { IComponent } from "@twin.org/core";
2
- import type { IDataspaceProtocolContractNegotiation, IDataspaceProtocolContractNegotiationError, IDataspaceProtocolDataset, IDataspaceProtocolTransferCompletionMessage, IDataspaceProtocolTransferError, IDataspaceProtocolTransferProcess, IDataspaceProtocolTransferRequestMessage, IDataspaceProtocolTransferStartMessage, IDataspaceProtocolTransferSuspensionMessage, IDataspaceProtocolTransferTerminationMessage, IDataspaceProtocolVersionResponse } from "@twin.org/standards-dataspace-protocol";
2
+ import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolContractNegotiation, IDataspaceProtocolContractNegotiationError, IDataspaceProtocolDataset, IDataspaceProtocolTransferCompletionMessage, IDataspaceProtocolTransferError, IDataspaceProtocolTransferProcess, IDataspaceProtocolTransferRequestMessage, IDataspaceProtocolTransferStartMessage, IDataspaceProtocolTransferSuspensionMessage, IDataspaceProtocolTransferTerminationMessage, IDataspaceProtocolVersionResponse } from "@twin.org/standards-dataspace-protocol";
3
3
  import type { IDataspaceAppDataset } from "./IDataspaceAppDataset.js";
4
4
  import type { INegotiationCallback } from "./INegotiationCallback.js";
5
5
  import type { ITransferCallback } from "./ITransferCallback.js";
6
+ import type { ITransferQueryResult } from "./ITransferQueryResult.js";
6
7
  /**
7
8
  * Dataspace Control Plane Component interface.
8
9
  * Implements Eclipse Dataspace Protocol (DSP) specifications:
@@ -245,6 +246,25 @@ export interface IDataspaceControlPlaneComponent extends IComponent {
245
246
  * @returns Transfer Process (DSP compliant) with current state, or TransferError if the operation fails.
246
247
  */
247
248
  getTransferProcess(pid: string, trustPayload: unknown): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;
249
+ /**
250
+ * Query Transfer Processes by agreement id.
251
+ * Lets a caller check whether transfers already exist for an agreement
252
+ * (e.g. before initiating a new one) without knowing any process ids.
253
+ *
254
+ * Role Performed: Consumer / Provider
255
+ * Called by: Consumer orchestration before requesting a new transfer, or either
256
+ * party inspecting the transfers attached to an agreement on their side.
257
+ *
258
+ * Results are limited to transfers where the authenticated caller is a party
259
+ * (consumer or provider identity). A returned dataAddress is a point-in-time copy;
260
+ * if its token has expired the data plane rejects it and a new start is required.
261
+ * @param agreementId The agreement id to look up transfer processes for.
262
+ * @param state Optional filter to a single transfer process state.
263
+ * @param cursor Optional pagination cursor from a previous result page.
264
+ * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).
265
+ * @returns The matching transfer processes and a pagination cursor when more pages exist, empty when none match.
266
+ */
267
+ queryDataTransfer(agreementId: string, state: DataspaceProtocolTransferProcessStateType | undefined, cursor: string | undefined, trustPayload: unknown): Promise<ITransferQueryResult>;
248
268
  /**
249
269
  * Register an app dataset for a dataspace app, owned by the calling tenant.
250
270
  * @param id Optional explicit id. If omitted, derived from `dataset["@id"]`
@@ -252,9 +272,14 @@ export interface IDataspaceControlPlaneComponent extends IComponent {
252
272
  * @param appId The dataspace app this dataset belongs to (matches
253
273
  * `DataspaceAppFactory` registration name).
254
274
  * @param dataset The dataset payload (may omit system-stamped fields).
275
+ * @param options Optional dataset settings.
276
+ * @param options.transferIdleTimeoutMs Optional idle window (ms) overriding the node-level idle
277
+ * policy for this dataset's PULL transfers; 0 disables it for this dataset.
255
278
  * @returns The resolved dataset id.
256
279
  */
257
- createAppDataset(id: string | undefined, appId: string, dataset: IDataspaceProtocolDataset): Promise<string>;
280
+ createAppDataset(id: string | undefined, appId: string, dataset: IDataspaceProtocolDataset, options?: {
281
+ transferIdleTimeoutMs?: number;
282
+ }): Promise<string>;
258
283
  /**
259
284
  * Get an app dataset record owned by the calling tenant.
260
285
  * @param id The stored app dataset id.
@@ -276,9 +301,14 @@ export interface IDataspaceControlPlaneComponent extends IComponent {
276
301
  * @param id The stored app dataset id.
277
302
  * @param appId The dataspace app this dataset belongs to.
278
303
  * @param dataset The dataset payload.
304
+ * @param options Optional dataset settings.
305
+ * @param options.transferIdleTimeoutMs Optional idle window (ms) overriding the node-level idle
306
+ * policy for this dataset's PULL transfers; 0 disables it for this dataset.
279
307
  * @returns A promise that resolves when the dataset has been updated in storage and the catalogue.
280
308
  */
281
- updateAppDataset(id: string, appId: string, dataset: IDataspaceProtocolDataset): Promise<void>;
309
+ updateAppDataset(id: string, appId: string, dataset: IDataspaceProtocolDataset, options?: {
310
+ transferIdleTimeoutMs?: number;
311
+ }): Promise<void>;
282
312
  /**
283
313
  * Delete an app dataset record owned by the calling tenant.
284
314
  * @param id The stored app dataset id.
@@ -49,9 +49,9 @@ export interface ITransferCallback {
49
49
  */
50
50
  onFailed?(consumerPid: string, reason: string): Promise<void>;
51
51
  /**
52
- * Called when the transfer times out, i.e. the provider did not progress it (it sat in REQUESTED)
53
- * within the configured window. Optional: implement it to be notified specifically of a non-response
54
- * (otherwise the control plane falls back to `onFailed(consumerPid, "transferStalled")`).
52
+ * Called when the transfer times out: a consumer-side REQUESTED transfer the provider never
53
+ * progressed, or a provider-side STARTED transfer idle beyond the configured window. Optional:
54
+ * otherwise the control plane falls back to `onFailed` with the timeout reason.
55
55
  * @param consumerPid The consumer-side process ID.
56
56
  * @returns Nothing.
57
57
  */
@@ -1,4 +1,5 @@
1
- import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolAgreement, IDataspaceProtocolDataAddress } from "@twin.org/standards-dataspace-protocol";
1
+ import type { IRightsManagementAgreement } from "@twin.org/rights-management-models";
2
+ import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolDataAddress } from "@twin.org/standards-dataspace-protocol";
2
3
  /**
3
4
  * Transfer Context data structure.
4
5
  * Contains all information needed by DSC to execute queries.
@@ -18,7 +19,7 @@ export interface ITransferContext {
18
19
  * Agreement associated with this Transfer Process.
19
20
  * Contains permissions, obligations, and prohibitions that DSC uses for runtime policy enforcement.
20
21
  */
21
- agreement: IDataspaceProtocolAgreement;
22
+ agreement: IRightsManagementAgreement;
22
23
  /**
23
24
  * Dataset ID - what the DSC needs to execute the query.
24
25
  * Convenience field extracted from agreement.target for quick access.
@@ -1,4 +1,5 @@
1
- import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolDataAddress, IDataspaceProtocolPolicy } from "@twin.org/standards-dataspace-protocol";
1
+ import type { IRightsManagementPolicy } from "@twin.org/rights-management-models";
2
+ import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolDataAddress } from "@twin.org/standards-dataspace-protocol";
2
3
  import type { TransferProcessRole } from "./transferProcessRole.js";
3
4
  /**
4
5
  * Transfer Process for internal storage.
@@ -43,7 +44,7 @@ export interface ITransferProcess {
43
44
  * Policies from the Agreement.
44
45
  * Used by DSC for runtime policy enforcement.
45
46
  */
46
- policies?: IDataspaceProtocolPolicy[];
47
+ policies?: IRightsManagementPolicy[];
47
48
  /**
48
49
  * Consumer identity (DID or URI).
49
50
  * Used for auditing and access control.
@@ -75,10 +76,8 @@ export interface ITransferProcess {
75
76
  */
76
77
  format?: string;
77
78
  /**
78
- * Data address for consumer-initiated push transfers (HttpData-PUSH).
79
- * Contains the consumer's /inbox endpoint as supplied in the TransferRequestMessage.
80
- * Absent for PULL (HttpData-PULL) and provider-initiated push (HttpData-POST),
81
- * where the consumer deliberately omits a dataAddress.
79
+ * Data address for the transfer: the consumer's inbox for PUSH, or the
80
+ * provider-built address persisted at start for PULL/POST; may expire while STARTED.
82
81
  */
83
82
  dataAddress?: IDataspaceProtocolDataAddress;
84
83
  /**
@@ -0,0 +1,14 @@
1
+ import type { ITransferProcess } from "./ITransferProcess.js";
2
+ /**
3
+ * Result of querying Transfer Processes by agreement.
4
+ */
5
+ export interface ITransferQueryResult {
6
+ /**
7
+ * The transfer processes matching the query, empty when none match.
8
+ */
9
+ transfers: ITransferProcess[];
10
+ /**
11
+ * Pagination cursor for retrieving the next page, omitted when no more results exist.
12
+ */
13
+ cursor?: string;
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Machine-readable codes set on provider-initiated TransferTerminationMessages
3
+ * by the control plane's transfer lifecycle policies.
4
+ */
5
+ export declare const TransferTerminationCode: {
6
+ /**
7
+ * A Provider-side STARTED transfer had no data-plane activity within the configured idle window.
8
+ */
9
+ readonly IdleTimeout: "idleTimeout";
10
+ };
11
+ /**
12
+ * Type for TransferTerminationCode values.
13
+ */
14
+ export type TransferTerminationCode = (typeof TransferTerminationCode)[keyof typeof TransferTerminationCode];
package/docs/changelog.md CHANGED
@@ -1,5 +1,116 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.2-next.1](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.0...dataspace-models-v0.9.2-next.1) (2026-07-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * add consumer transfer callbacks and startDataTransfer convenience method ([#151](https://github.com/iotaledger/twin-dataspace/issues/151)) ([0ab66c3](https://github.com/iotaledger/twin-dataspace/commit/0ab66c3636fd1f98f89baca1e99764d77c6f91d9))
9
+ * add dataspace transfer format ([#111](https://github.com/iotaledger/twin-dataspace/issues/111)) ([f59ff5e](https://github.com/iotaledger/twin-dataspace/commit/f59ff5ef10d261d1cebbf5c6bb0689e74a10738a))
10
+ * add inline tasks and concurrent options ([#104](https://github.com/iotaledger/twin-dataspace/issues/104)) ([2227a21](https://github.com/iotaledger/twin-dataspace/commit/2227a212d906f58ba77850c79bb20bf2cb7195a8))
11
+ * add telemetry metrics to dataspace control and data plane services ([#212](https://github.com/iotaledger/twin-dataspace/issues/212)) ([b5b0248](https://github.com/iotaledger/twin-dataspace/commit/b5b024899ed12c0f639c5d51aefa3e509753eac6))
12
+ * add transferStarted provider method to start a data transfer ([#206](https://github.com/iotaledger/twin-dataspace/issues/206)) ([3ec2dc8](https://github.com/iotaledger/twin-dataspace/commit/3ec2dc8943c8531cd8d8e4ab07cb970ef7b11090))
13
+ * add well known versions endpoint ([#251](https://github.com/iotaledger/twin-dataspace/issues/251)) ([4b4cbe9](https://github.com/iotaledger/twin-dataspace/commit/4b4cbe91a40980481dad6e0650c1ee73c53ae360))
14
+ * align all config times to ms ([40238d5](https://github.com/iotaledger/twin-dataspace/commit/40238d59a2b45caedc01792b682ce7206815dfd1))
15
+ * cross-node transfer callbacks and DataTransferManager auto-start ([#199](https://github.com/iotaledger/twin-dataspace/issues/199)) ([1089aa3](https://github.com/iotaledger/twin-dataspace/commit/1089aa344e3598e382f37a82ca03230c5cf6cacd))
16
+ * docs update ([8b44c7a](https://github.com/iotaledger/twin-dataspace/commit/8b44c7a75afb8d377a6f606616f8a78d58439ab4))
17
+ * endpoint encryption + getDatasetTargets multi-target fix ([#112](https://github.com/iotaledger/twin-dataspace/issues/112)) ([3288941](https://github.com/iotaledger/twin-dataspace/commit/328894113c19c7402f7d00dfa77b6a97ae40ca91))
18
+ * get activity log add trust payload ([#201](https://github.com/iotaledger/twin-dataspace/issues/201)) ([cdb5486](https://github.com/iotaledger/twin-dataspace/commit/cdb5486942c1b94ddf6435236b9b9d190bea0407))
19
+ * implement DSP push transfer mode ([#109](https://github.com/iotaledger/twin-dataspace/issues/109)) ([71f5fee](https://github.com/iotaledger/twin-dataspace/commit/71f5feec1d92dfec8ed6899c951809818e1bf2a3))
20
+ * improve error handling and component usage ([544e20e](https://github.com/iotaledger/twin-dataspace/commit/544e20e640d6f09266942bfc698aead6227a7769))
21
+ * improve open-api examples ([1368dbe](https://github.com/iotaledger/twin-dataspace/commit/1368dbed5c36e074b4854942304a19b9ce51e088))
22
+ * improve validation ([#82](https://github.com/iotaledger/twin-dataspace/issues/82)) ([8bfaf7b](https://github.com/iotaledger/twin-dataspace/commit/8bfaf7b830f89b63575f8a51ee96bd8ac4da02f4))
23
+ * organization identifiers ([#188](https://github.com/iotaledger/twin-dataspace/issues/188)) ([af643d3](https://github.com/iotaledger/twin-dataspace/commit/af643d3bb7f212d6cbb672e362a9e1bbe886d1a5))
24
+ * provider-side idle lifecycle policy for STARTED data transfers ([#284](https://github.com/iotaledger/twin-dataspace/issues/284)) ([a9312ef](https://github.com/iotaledger/twin-dataspace/commit/a9312ef7573a92805c99cb2a314e8b289a6ab195))
25
+ * provider-side transfer auto-start and negotiation/transfer timeout callbacks ([#227](https://github.com/iotaledger/twin-dataspace/issues/227)) ([619d858](https://github.com/iotaledger/twin-dataspace/commit/619d858e8d44e59744dc8a0f73e06be976932b53))
26
+ * query existing data transfers by agreement to avoid duplicate preparations ([#289](https://github.com/iotaledger/twin-dataspace/issues/289)) ([53fe251](https://github.com/iotaledger/twin-dataspace/commit/53fe2516b2287b6b6a7a6ca6fc6063ea4a446cf0))
27
+ * remove datasetsHandled method from apps ([9fdc950](https://github.com/iotaledger/twin-dataspace/commit/9fdc95018d38ab49c4a1094642be2ee83ee0e4cd))
28
+ * remove hosting component ([#209](https://github.com/iotaledger/twin-dataspace/issues/209)) ([5e19328](https://github.com/iotaledger/twin-dataspace/commit/5e1932823aa8a0f88f559f096610b9df1f3b8615))
29
+ * rename completed callback ([#147](https://github.com/iotaledger/twin-dataspace/issues/147)) ([f62baad](https://github.com/iotaledger/twin-dataspace/commit/f62baad0ff444e2913439b12dcd06d20c9a4f6a4))
30
+ * resolve DSP transfer flow bugs for cross-node communication ([#76](https://github.com/iotaledger/twin-dataspace/issues/76)) ([506a45c](https://github.com/iotaledger/twin-dataspace/commit/506a45c94e63d5f958b1fc7131adfe452c3e2974))
31
+ * shortcut implicit trust ([#215](https://github.com/iotaledger/twin-dataspace/issues/215)) ([f9bcfea](https://github.com/iotaledger/twin-dataspace/commit/f9bcfeab8f069b62017502833c108b4ee3791414))
32
+ * types update ([77c338e](https://github.com/iotaledger/twin-dataspace/commit/77c338e9244dcc7e3d597fdb06229513b1f13eac))
33
+ * typescript 6 update ([340f10e](https://github.com/iotaledger/twin-dataspace/commit/340f10e4767f6285c694938944f7e044474f9aaa))
34
+ * unification of the data exchange and the data space connector ([#57](https://github.com/iotaledger/twin-dataspace/issues/57)) ([df2644d](https://github.com/iotaledger/twin-dataspace/commit/df2644d989471e07dadd83d27bef736179e31bf4))
35
+ * update DataspaceTransferFormat names ([2c9d424](https://github.com/iotaledger/twin-dataspace/commit/2c9d424a07b97346faa2124048c4675514d58109))
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * always verify trust in notifyActivity, no internal by ([#192](https://github.com/iotaledger/twin-dataspace/issues/192)) ([2cfc160](https://github.com/iotaledger/twin-dataspace/commit/2cfc16082a7c9d417f0b05f90f123e40f47d1e05))
41
+ * avoid compaction of incoming activities ([#77](https://github.com/iotaledger/twin-dataspace/issues/77)) ([ff43d6a](https://github.com/iotaledger/twin-dataspace/commit/ff43d6a3e1563eb9cb185501134b2a53ae88787c))
42
+ * docs ([652f4f2](https://github.com/iotaledger/twin-dataspace/commit/652f4f2fec8601bb3772e054b2c823f599ef68dc))
43
+ * filtering query optional q ([#248](https://github.com/iotaledger/twin-dataspace/issues/248)) ([e9e8ff1](https://github.com/iotaledger/twin-dataspace/commit/e9e8ff1e1bb3b93f0960260c21a46d6f58dbfaa2))
44
+ * implement missing trust check on negotiateAgreement ([#136](https://github.com/iotaledger/twin-dataspace/issues/136)) ([a3589c2](https://github.com/iotaledger/twin-dataspace/commit/a3589c279476d5450b68ea7c2790be7e3125bfe2))
45
+ * missing dependencies ([54e9e9c](https://github.com/iotaledger/twin-dataspace/commit/54e9e9c474b61cce3b9a82f9ccec27c7f8133382))
46
+ * retain cursor after pep enforcement ([#296](https://github.com/iotaledger/twin-dataspace/issues/296)) ([5198cd2](https://github.com/iotaledger/twin-dataspace/commit/5198cd29505ceffa532fa4fa18c97a5c8e78f663))
47
+ * return 422/500 when inline activity processing fails ([#135](https://github.com/iotaledger/twin-dataspace/issues/135)) ([8635187](https://github.com/iotaledger/twin-dataspace/commit/863518724cb90af15edc5f456d9a93c6cad7d661))
48
+ * throw not supported error for in-process only control plane methods ([#185](https://github.com/iotaledger/twin-dataspace/issues/185)) ([130f00a](https://github.com/iotaledger/twin-dataspace/commit/130f00a87412b34defde891855bee7aa3ac34130))
49
+
50
+ ## [0.9.1](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.1...dataspace-models-v0.9.1) (2026-07-27)
51
+
52
+
53
+ ### Features
54
+
55
+ * add consumer transfer callbacks and startDataTransfer convenience method ([#151](https://github.com/iotaledger/twin-dataspace/issues/151)) ([0ab66c3](https://github.com/iotaledger/twin-dataspace/commit/0ab66c3636fd1f98f89baca1e99764d77c6f91d9))
56
+ * add dataspace transfer format ([#111](https://github.com/iotaledger/twin-dataspace/issues/111)) ([f59ff5e](https://github.com/iotaledger/twin-dataspace/commit/f59ff5ef10d261d1cebbf5c6bb0689e74a10738a))
57
+ * add inline tasks and concurrent options ([#104](https://github.com/iotaledger/twin-dataspace/issues/104)) ([2227a21](https://github.com/iotaledger/twin-dataspace/commit/2227a212d906f58ba77850c79bb20bf2cb7195a8))
58
+ * add telemetry metrics to dataspace control and data plane services ([#212](https://github.com/iotaledger/twin-dataspace/issues/212)) ([b5b0248](https://github.com/iotaledger/twin-dataspace/commit/b5b024899ed12c0f639c5d51aefa3e509753eac6))
59
+ * add transferStarted provider method to start a data transfer ([#206](https://github.com/iotaledger/twin-dataspace/issues/206)) ([3ec2dc8](https://github.com/iotaledger/twin-dataspace/commit/3ec2dc8943c8531cd8d8e4ab07cb970ef7b11090))
60
+ * align all config times to ms ([40238d5](https://github.com/iotaledger/twin-dataspace/commit/40238d59a2b45caedc01792b682ce7206815dfd1))
61
+ * cross-node transfer callbacks and DataTransferManager auto-start ([#199](https://github.com/iotaledger/twin-dataspace/issues/199)) ([1089aa3](https://github.com/iotaledger/twin-dataspace/commit/1089aa344e3598e382f37a82ca03230c5cf6cacd))
62
+ * docs update ([8b44c7a](https://github.com/iotaledger/twin-dataspace/commit/8b44c7a75afb8d377a6f606616f8a78d58439ab4))
63
+ * endpoint encryption + getDatasetTargets multi-target fix ([#112](https://github.com/iotaledger/twin-dataspace/issues/112)) ([3288941](https://github.com/iotaledger/twin-dataspace/commit/328894113c19c7402f7d00dfa77b6a97ae40ca91))
64
+ * get activity log add trust payload ([#201](https://github.com/iotaledger/twin-dataspace/issues/201)) ([cdb5486](https://github.com/iotaledger/twin-dataspace/commit/cdb5486942c1b94ddf6435236b9b9d190bea0407))
65
+ * implement DSP push transfer mode ([#109](https://github.com/iotaledger/twin-dataspace/issues/109)) ([71f5fee](https://github.com/iotaledger/twin-dataspace/commit/71f5feec1d92dfec8ed6899c951809818e1bf2a3))
66
+ * improve error handling and component usage ([544e20e](https://github.com/iotaledger/twin-dataspace/commit/544e20e640d6f09266942bfc698aead6227a7769))
67
+ * improve open-api examples ([1368dbe](https://github.com/iotaledger/twin-dataspace/commit/1368dbed5c36e074b4854942304a19b9ce51e088))
68
+ * improve validation ([#82](https://github.com/iotaledger/twin-dataspace/issues/82)) ([8bfaf7b](https://github.com/iotaledger/twin-dataspace/commit/8bfaf7b830f89b63575f8a51ee96bd8ac4da02f4))
69
+ * organization identifiers ([#188](https://github.com/iotaledger/twin-dataspace/issues/188)) ([af643d3](https://github.com/iotaledger/twin-dataspace/commit/af643d3bb7f212d6cbb672e362a9e1bbe886d1a5))
70
+ * provider-side transfer auto-start and negotiation/transfer timeout callbacks ([#227](https://github.com/iotaledger/twin-dataspace/issues/227)) ([619d858](https://github.com/iotaledger/twin-dataspace/commit/619d858e8d44e59744dc8a0f73e06be976932b53))
71
+ * release to production ([#243](https://github.com/iotaledger/twin-dataspace/issues/243)) ([9906476](https://github.com/iotaledger/twin-dataspace/commit/9906476c5b9150f0660f7950a3afd4fa87009d14))
72
+ * release to production ([#308](https://github.com/iotaledger/twin-dataspace/issues/308)) ([fba29a0](https://github.com/iotaledger/twin-dataspace/commit/fba29a083d7e4892f1f06b9e2e3faa6a72185cda))
73
+ * remove datasetsHandled method from apps ([9fdc950](https://github.com/iotaledger/twin-dataspace/commit/9fdc95018d38ab49c4a1094642be2ee83ee0e4cd))
74
+ * remove hosting component ([#209](https://github.com/iotaledger/twin-dataspace/issues/209)) ([5e19328](https://github.com/iotaledger/twin-dataspace/commit/5e1932823aa8a0f88f559f096610b9df1f3b8615))
75
+ * rename completed callback ([#147](https://github.com/iotaledger/twin-dataspace/issues/147)) ([f62baad](https://github.com/iotaledger/twin-dataspace/commit/f62baad0ff444e2913439b12dcd06d20c9a4f6a4))
76
+ * resolve DSP transfer flow bugs for cross-node communication ([#76](https://github.com/iotaledger/twin-dataspace/issues/76)) ([506a45c](https://github.com/iotaledger/twin-dataspace/commit/506a45c94e63d5f958b1fc7131adfe452c3e2974))
77
+ * shortcut implicit trust ([#215](https://github.com/iotaledger/twin-dataspace/issues/215)) ([f9bcfea](https://github.com/iotaledger/twin-dataspace/commit/f9bcfeab8f069b62017502833c108b4ee3791414))
78
+ * types update ([77c338e](https://github.com/iotaledger/twin-dataspace/commit/77c338e9244dcc7e3d597fdb06229513b1f13eac))
79
+ * typescript 6 update ([340f10e](https://github.com/iotaledger/twin-dataspace/commit/340f10e4767f6285c694938944f7e044474f9aaa))
80
+ * unification of the data exchange and the data space connector ([#57](https://github.com/iotaledger/twin-dataspace/issues/57)) ([df2644d](https://github.com/iotaledger/twin-dataspace/commit/df2644d989471e07dadd83d27bef736179e31bf4))
81
+ * update DataspaceTransferFormat names ([2c9d424](https://github.com/iotaledger/twin-dataspace/commit/2c9d424a07b97346faa2124048c4675514d58109))
82
+
83
+
84
+ ### Bug Fixes
85
+
86
+ * always verify trust in notifyActivity, no internal by ([#192](https://github.com/iotaledger/twin-dataspace/issues/192)) ([2cfc160](https://github.com/iotaledger/twin-dataspace/commit/2cfc16082a7c9d417f0b05f90f123e40f47d1e05))
87
+ * avoid compaction of incoming activities ([#77](https://github.com/iotaledger/twin-dataspace/issues/77)) ([ff43d6a](https://github.com/iotaledger/twin-dataspace/commit/ff43d6a3e1563eb9cb185501134b2a53ae88787c))
88
+ * docs ([652f4f2](https://github.com/iotaledger/twin-dataspace/commit/652f4f2fec8601bb3772e054b2c823f599ef68dc))
89
+ * implement missing trust check on negotiateAgreement ([#136](https://github.com/iotaledger/twin-dataspace/issues/136)) ([a3589c2](https://github.com/iotaledger/twin-dataspace/commit/a3589c279476d5450b68ea7c2790be7e3125bfe2))
90
+ * return 422/500 when inline activity processing fails ([#135](https://github.com/iotaledger/twin-dataspace/issues/135)) ([8635187](https://github.com/iotaledger/twin-dataspace/commit/863518724cb90af15edc5f456d9a93c6cad7d661))
91
+ * throw not supported error for in-process only control plane methods ([#185](https://github.com/iotaledger/twin-dataspace/issues/185)) ([130f00a](https://github.com/iotaledger/twin-dataspace/commit/130f00a87412b34defde891855bee7aa3ac34130))
92
+
93
+ ## [0.9.1-next.12](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.1-next.11...dataspace-models-v0.9.1-next.12) (2026-07-26)
94
+
95
+
96
+ ### Bug Fixes
97
+
98
+ * missing dependencies ([54e9e9c](https://github.com/iotaledger/twin-dataspace/commit/54e9e9c474b61cce3b9a82f9ccec27c7f8133382))
99
+
100
+ ## [0.9.1-next.11](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.1-next.10...dataspace-models-v0.9.1-next.11) (2026-07-21)
101
+
102
+
103
+ ### Bug Fixes
104
+
105
+ * retain cursor after pep enforcement ([#296](https://github.com/iotaledger/twin-dataspace/issues/296)) ([5198cd2](https://github.com/iotaledger/twin-dataspace/commit/5198cd29505ceffa532fa4fa18c97a5c8e78f663))
106
+
107
+ ## [0.9.1-next.10](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.1-next.9...dataspace-models-v0.9.1-next.10) (2026-07-20)
108
+
109
+
110
+ ### Miscellaneous Chores
111
+
112
+ * **dataspace-models:** Synchronize repo versions
113
+
3
114
  ## [0.9.1-next.9](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.1-next.8...dataspace-models-v0.9.1-next.9) (2026-07-06)
4
115
 
5
116
 
@@ -62,6 +62,15 @@ opaque object and validated/populated at publish time.
62
62
 
63
63
  ***
64
64
 
65
+ ### transferIdleTimeoutMs? {#transferidletimeoutms}
66
+
67
+ > `optional` **transferIdleTimeoutMs?**: `number`
68
+
69
+ Idle window (ms) for this dataset's PULL transfers, overriding the node-level
70
+ providerTransferIdleTimeoutMs; 0 disables the idle policy for this dataset.
71
+
72
+ ***
73
+
65
74
  ### dateCreated {#datecreated}
66
75
 
67
76
  > **dateCreated**: `string`
@@ -0,0 +1,77 @@
1
+ # Class: DataspaceAppDatasetV0
2
+
3
+ Tenant-supplied Dataset shape persisted by the Control Plane, version 0.
4
+
5
+ ## Constructors
6
+
7
+ ### Constructor
8
+
9
+ > **new DataspaceAppDatasetV0**(): `DataspaceAppDatasetV0`
10
+
11
+ #### Returns
12
+
13
+ `DataspaceAppDatasetV0`
14
+
15
+ ## Properties
16
+
17
+ ### id {#id}
18
+
19
+ > **id**: `string`
20
+
21
+ The unique identifier for the dataset.
22
+
23
+ ***
24
+
25
+ ### organizationIdentity {#organizationidentity}
26
+
27
+ > **organizationIdentity**: `string`
28
+
29
+ The identity of the organization that owns this entity.
30
+
31
+ ***
32
+
33
+ ### tenantId? {#tenantid}
34
+
35
+ > `optional` **tenantId?**: `string`
36
+
37
+ The tenant that owns this dataset, captured from the request context at
38
+ write time. Optional — single-tenant nodes (no `TWIN_TENANT_ENABLED`)
39
+ register datasets without a tenant context.
40
+
41
+ ***
42
+
43
+ ### appId {#appid}
44
+
45
+ > **appId**: `string`
46
+
47
+ The dataspace app that this dataset belongs to. Matches the app's
48
+ registered name in `DataspaceAppFactory` (typically the app's URI).
49
+
50
+ ***
51
+
52
+ ### dataset {#dataset}
53
+
54
+ > **dataset**: `object`
55
+
56
+ The user-controlled JSON-LD dataset payload. Stored as an
57
+ opaque object and validated/populated at publish time.
58
+
59
+ #### Index Signature
60
+
61
+ \[`key`: `string`\]: `unknown`
62
+
63
+ ***
64
+
65
+ ### dateCreated {#datecreated}
66
+
67
+ > **dateCreated**: `string`
68
+
69
+ Creation timestamp (ISO string format).
70
+
71
+ ***
72
+
73
+ ### dateModified {#datemodified}
74
+
75
+ > **dateModified**: `string`
76
+
77
+ Last update timestamp (ISO string format).
@@ -142,7 +142,7 @@ Last update timestamp (ISO string format).
142
142
 
143
143
  ### policies? {#policies}
144
144
 
145
- > `optional` **policies?**: `IDataspaceProtocolPolicy`[]
145
+ > `optional` **policies?**: `IRightsManagementPolicy`[]
146
146
 
147
147
  Policies from the Agreement (stored as JSON).
148
148
 
@@ -152,4 +152,5 @@ Policies from the Agreement (stored as JSON).
152
152
 
153
153
  > `optional` **dataAddress?**: `IDataspaceProtocolDataAddress`
154
154
 
155
- Data address for push mode transfers (stored as JSON).
155
+ Data address for the transfer (stored as JSON): the consumer's inbox for PUSH, or the
156
+ provider-built address persisted at start for PULL/POST; may expire while STARTED.
@@ -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,9 @@
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
+ - [TransferRetrieval](classes/TransferRetrieval.md)
8
10
 
9
11
  ## Interfaces
10
12
 
@@ -65,6 +67,7 @@
65
67
  - [ITransferCallback](interfaces/ITransferCallback.md)
66
68
  - [ITransferContext](interfaces/ITransferContext.md)
67
69
  - [ITransferProcess](interfaces/ITransferProcess.md)
70
+ - [ITransferQueryResult](interfaces/ITransferQueryResult.md)
68
71
  - [ITransferContextResponse](interfaces/ITransferContextResponse.md)
69
72
  - [IDataspaceDataPlaneComponent](interfaces/IDataspaceDataPlaneComponent.md)
70
73
 
@@ -76,6 +79,7 @@
76
79
  - [DataRequestType](type-aliases/DataRequestType.md)
77
80
  - [DataspaceControlPlaneMetricIds](type-aliases/DataspaceControlPlaneMetricIds.md)
78
81
  - [TransferProcessRole](type-aliases/TransferProcessRole.md)
82
+ - [TransferTerminationCode](type-aliases/TransferTerminationCode.md)
79
83
  - [DataspaceDataPlaneMetricIds](type-aliases/DataspaceDataPlaneMetricIds.md)
80
84
  - [DataspaceContexts](type-aliases/DataspaceContexts.md)
81
85
  - [DataspaceTransferFormat](type-aliases/DataspaceTransferFormat.md)
@@ -90,6 +94,7 @@
90
94
  - [DataspaceControlPlaneMetricIds](variables/DataspaceControlPlaneMetricIds.md)
91
95
  - [DataspaceControlPlaneMetrics](variables/DataspaceControlPlaneMetrics.md)
92
96
  - [TransferProcessRole](variables/TransferProcessRole.md)
97
+ - [TransferTerminationCode](variables/TransferTerminationCode.md)
93
98
  - [DataspaceDataPlaneMetricIds](variables/DataspaceDataPlaneMetricIds.md)
94
99
  - [DataspaceDataPlaneMetrics](variables/DataspaceDataPlaneMetrics.md)
95
100
  - [DataspaceContexts](variables/DataspaceContexts.md)
@@ -35,3 +35,10 @@ registered name in `DataspaceAppFactory` (typically the app's URI).
35
35
 
36
36
  The dataset payload. System-stamped fields like `dcterms:publisher`
37
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`