@twin.org/dataspace-models 0.9.2-next.1 → 0.9.2-next.11

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 (46) hide show
  1. package/dist/es/entities/dataspaceAppDataset.js +1 -1
  2. package/dist/es/entities/dataspaceAppDataset.js.map +1 -1
  3. package/dist/es/entities/dataspaceAppDatasetV0.js +1 -1
  4. package/dist/es/entities/dataspaceAppDatasetV0.js.map +1 -1
  5. package/dist/es/entities/transferProcess.js +12 -19
  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/index.js +1 -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/controlPlane/IDataspaceControlPlaneComponent.js.map +1 -1
  14. package/dist/es/models/controlPlane/INegotiationCallback.js.map +1 -1
  15. package/dist/es/models/controlPlane/ITransferProcess.js.map +1 -1
  16. package/dist/es/models/controlPlane/dataspaceControlPlaneMetricIds.js +5 -1
  17. package/dist/es/models/controlPlane/dataspaceControlPlaneMetricIds.js.map +1 -1
  18. package/dist/es/models/controlPlane/dataspaceControlPlaneMetrics.js +5 -0
  19. package/dist/es/models/controlPlane/dataspaceControlPlaneMetrics.js.map +1 -1
  20. package/dist/es/models/dataPlane/IDataspaceDataPlaneComponent.js.map +1 -1
  21. package/dist/types/entities/dataspaceAppDataset.d.ts +1 -1
  22. package/dist/types/entities/dataspaceAppDatasetV0.d.ts +1 -1
  23. package/dist/types/entities/transferProcess.d.ts +8 -12
  24. package/dist/types/entities/transferProcessV0.d.ts +83 -0
  25. package/dist/types/index.d.ts +1 -0
  26. package/dist/types/models/IPushDeliveryPayload.d.ts +1 -1
  27. package/dist/types/models/api/controlPlane/IAppDatasetCreateRequest.d.ts +2 -2
  28. package/dist/types/models/controlPlane/IDataspaceControlPlaneComponent.d.ts +3 -3
  29. package/dist/types/models/controlPlane/INegotiationCallback.d.ts +4 -2
  30. package/dist/types/models/controlPlane/ITransferProcess.d.ts +0 -7
  31. package/dist/types/models/controlPlane/dataspaceControlPlaneMetricIds.d.ts +4 -0
  32. package/dist/types/models/dataPlane/IDataspaceDataPlaneComponent.d.ts +1 -1
  33. package/docs/changelog.md +70 -0
  34. package/docs/reference/classes/DataspaceAppDataset.md +1 -1
  35. package/docs/reference/classes/DataspaceAppDatasetV0.md +1 -1
  36. package/docs/reference/classes/TransferProcess.md +10 -17
  37. package/docs/reference/classes/TransferProcessV0.md +156 -0
  38. package/docs/reference/index.md +1 -0
  39. package/docs/reference/interfaces/IAppDatasetCreateRequest.md +2 -2
  40. package/docs/reference/interfaces/IDataspaceControlPlaneComponent.md +3 -3
  41. package/docs/reference/interfaces/IDataspaceDataPlaneComponent.md +1 -1
  42. package/docs/reference/interfaces/INegotiationCallback.md +9 -2
  43. package/docs/reference/interfaces/IPushDeliveryPayload.md +1 -1
  44. package/docs/reference/interfaces/ITransferProcess.md +0 -10
  45. package/docs/reference/variables/DataspaceControlPlaneMetricIds.md +6 -0
  46. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"dataspaceControlPlaneMetrics.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/dataspaceControlPlaneMetrics.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAyB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAuB;IAC/D;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,iBAAiB;QACpD,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,gBAAgB;QACnD,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,mBAAmB;QACtD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,qBAAqB;QACxD,KAAK,EAAE,wBAAwB;QAC/B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;CACD,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { type ITelemetryMetric, MetricType } from \"@twin.org/telemetry-models\";\nimport { DataspaceControlPlaneMetricIds } from \"./dataspaceControlPlaneMetricIds.js\";\n\n/**\n * Metrics registered by the dataspace control plane service.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const DataspaceControlPlaneMetrics: ITelemetryMetric[] = [\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersRequested,\n\t\tlabel: \"Transfers requested\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersPrepared,\n\t\tlabel: \"Transfers prepared\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersStarted,\n\t\tlabel: \"Transfers started\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersCompleted,\n\t\tlabel: \"Transfers completed\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersSuspended,\n\t\tlabel: \"Transfers suspended\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersTerminated,\n\t\tlabel: \"Transfers terminated\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.NegotiationsInitiated,\n\t\tlabel: \"Negotiations initiated\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.AppDatasetsCreated,\n\t\tlabel: \"App datasets created\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.AppDatasetsUpdated,\n\t\tlabel: \"App datasets updated\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.AppDatasetsDeleted,\n\t\tlabel: \"App datasets deleted\",\n\t\ttype: MetricType.Counter\n\t}\n];\n"]}
1
+ {"version":3,"file":"dataspaceControlPlaneMetrics.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/dataspaceControlPlaneMetrics.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAyB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAuB;IAC/D;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,iBAAiB;QACpD,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,gBAAgB;QACnD,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,mBAAmB;QACtD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,qBAAqB;QACxD,KAAK,EAAE,wBAAwB;QAC/B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,kBAAkB;QACrD,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;IACD;QACC,EAAE,EAAE,8BAA8B,CAAC,eAAe;QAClD,KAAK,EAAE,iCAAiC;QACxC,IAAI,EAAE,UAAU,CAAC,OAAO;KACxB;CACD,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { type ITelemetryMetric, MetricType } from \"@twin.org/telemetry-models\";\nimport { DataspaceControlPlaneMetricIds } from \"./dataspaceControlPlaneMetricIds.js\";\n\n/**\n * Metrics registered by the dataspace control plane service.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const DataspaceControlPlaneMetrics: ITelemetryMetric[] = [\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersRequested,\n\t\tlabel: \"Transfers requested\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersPrepared,\n\t\tlabel: \"Transfers prepared\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersStarted,\n\t\tlabel: \"Transfers started\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersCompleted,\n\t\tlabel: \"Transfers completed\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersSuspended,\n\t\tlabel: \"Transfers suspended\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.TransfersTerminated,\n\t\tlabel: \"Transfers terminated\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.NegotiationsInitiated,\n\t\tlabel: \"Negotiations initiated\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.AppDatasetsCreated,\n\t\tlabel: \"App datasets created\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.AppDatasetsUpdated,\n\t\tlabel: \"App datasets updated\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.AppDatasetsDeleted,\n\t\tlabel: \"App datasets deleted\",\n\t\ttype: MetricType.Counter\n\t},\n\t{\n\t\tid: DataspaceControlPlaneMetricIds.AgreementsSwept,\n\t\tlabel: \"Agreements removed by the sweep\",\n\t\ttype: MetricType.Counter\n\t}\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IDataspaceDataPlaneComponent.js","sourceRoot":"","sources":["../../../../src/models/dataPlane/IDataspaceDataPlaneComponent.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IJsonLdContextDefinitionElement } from \"@twin.org/data-json-ld\";\nimport type { IActivityStreamsActivity } from \"@twin.org/standards-w3c-activity-streams\";\nimport type { IActivityLogEntry } from \"../IActivityLogEntry.js\";\nimport type { IActivityLogStatusNotification } from \"../IActivityLogStatusNotification.js\";\nimport type { IDataAssetItemListResult } from \"../IDataAssetItemListResult.js\";\nimport type { IEntitySet } from \"../IEntitySet.js\";\nimport type { IFilteringQuery } from \"../IFilteringQuery.js\";\n\n/**\n * Dataspace Data Plane component interface.\n * Implements the Data Plane functionality for the Eclipse Dataspace Protocol.\n */\nexport interface IDataspaceDataPlaneComponent extends IComponent {\n\t/**\n\t * Notify an Activity to the Dataspace Data Plane Activity Stream.\n\t * @param activity The Activity notified.\n\t * @param trustPayload Trust payload to verify the requesters identity.\n\t * @returns The activity's entry.\n\t */\n\tnotifyActivity(\n\t\tactivity: IActivityStreamsActivity,\n\t\ttrustPayload?: unknown\n\t): Promise<string | IActivityLogEntry>;\n\n\t/**\n\t * Subscribes to the activity log.\n\t * @param callback The callback to be called when Activity Log is called.\n\t * @param subscriptionId The subscription Id.\n\t * @returns The subscription Id.\n\t */\n\tsubscribeToActivityLog(\n\t\tcallback: (notification: IActivityLogStatusNotification) => Promise<void>,\n\t\tsubscriptionId?: string\n\t): Promise<string>;\n\n\t/**\n\t * Unsubscribes from the activity log.\n\t * @param subscriptionId The subscription Id to remove.\n\t * @returns A promise that resolves when the subscription has been removed.\n\t */\n\tunSubscribeToActivityLog(subscriptionId: string): Promise<void>;\n\n\t/**\n\t * Returns Activity Log Entry which contains the Activity processing details.\n\t * @param logEntryId The Id of the Activity Log Entry (a URI).\n\t * @param trustPayload Trust payload to verify the requester's identity.\n\t * @returns the Activity Log Entry with the processing details.\n\t * @throws NotFoundError if activity log entry is not known.\n\t * @throws UnauthorizedError if trustPayload is absent or the verified identity is not the entry generator.\n\t */\n\tgetActivityLogEntry(logEntryId: string, trustPayload?: unknown): Promise<IActivityLogEntry>;\n\n\t/**\n\t * Get Data Asset entities. Allows to retrieve entities by their type or id.\n\t * @param entitySet The set of entities to be retrieved.\n\t * @param entitySet.jsonLdContext The JSON-LD Context to be used to expand the referred entityType.\n\t * @param consumerPid The consumer Process ID from the DSP Transfer Process.\n\t * Used to resolve datasetId from the Transfer Process.\n\t * @param cursor Pagination details - cursor.\n\t * @param limit Pagination details - max number of entities.\n\t * @param trustPayload Trust payload to verify the requesters identity.\n\t * @returns The item list and optional cursor for pagination via Link headers.\n\t */\n\tgetDataAssetEntities(\n\t\tentitySet: IEntitySet & {\n\t\t\tjsonLdContext?: IJsonLdContextDefinitionElement[];\n\t\t},\n\t\tconsumerPid: string,\n\t\tcursor?: string,\n\t\tlimit?: number,\n\t\ttrustPayload?: unknown\n\t): Promise<IDataAssetItemListResult>;\n\n\t/**\n\t * Queries a data asset controlled by this Dataspace App.\n\t * @param consumerPid The consumer Process ID from the DSP Transfer Process.\n\t * Used to resolve datasetId from the Transfer Process.\n\t * @param query The filtering query.\n\t * @param cursor Pagination details - cursor.\n\t * @param limit Pagination details - max number of entities.\n\t * @param trustPayload Trust payload to verify the requesters identity.\n\t * @returns The item list and optional cursor for pagination via Link headers.\n\t */\n\tqueryDataAsset(\n\t\tconsumerPid: string,\n\t\tquery: IFilteringQuery,\n\t\tcursor?: string,\n\t\tlimit?: number,\n\t\ttrustPayload?: unknown\n\t): Promise<IDataAssetItemListResult>;\n\n\t/**\n\t * Set up a push subscription after a transfer enters STARTED from REQUESTED.\n\t * Reads the TransferProcess, builds an IFollowActivity, calls the app's\n\t * subscribeToData, and persists a PushSubscription entity.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is created.\n\t */\n\tsetupPushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Pause deliveries for a push subscription. The subscription entity stays\n\t * alive with status=Paused. No app unsubscribe call.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is paused.\n\t */\n\tsuspendPushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Resume deliveries after a SUSPENDED → STARTED transition. Flips status\n\t * back to Active. No app subscribeToData call.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is resumed.\n\t */\n\tresumePushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Tear down a push subscription. Builds an IUndoActivity, calls the app's\n\t * unsubscribeToData, and deletes the PushSubscription entity.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is torn down.\n\t */\n\tteardownPushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Called by the app when new data is available for a follower.\n\t * The activity's `to` attribute contains the consumerPid URN. This method\n\t * looks up the matching PushSubscription, validates transfer state, and\n\t * schedules a Background Task that POSTs the activity to the consumer.\n\t * @param activity The outbound activity carrying the data payload.\n\t * @returns Promise that resolves when the delivery task is scheduled.\n\t */\n\tprocessOutboxActivity(activity: IActivityStreamsActivity): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"IDataspaceDataPlaneComponent.js","sourceRoot":"","sources":["../../../../src/models/dataPlane/IDataspaceDataPlaneComponent.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IJsonLdContextDefinitionElement } from \"@twin.org/data-json-ld\";\nimport type { IActivityStreamsActivity } from \"@twin.org/standards-w3c-activity-streams\";\nimport type { IActivityLogEntry } from \"../IActivityLogEntry.js\";\nimport type { IActivityLogStatusNotification } from \"../IActivityLogStatusNotification.js\";\nimport type { IDataAssetItemListResult } from \"../IDataAssetItemListResult.js\";\nimport type { IEntitySet } from \"../IEntitySet.js\";\nimport type { IFilteringQuery } from \"../IFilteringQuery.js\";\n\n/**\n * Dataspace Data Plane component interface.\n * Implements the Data Plane functionality for the Eclipse Dataspace Protocol.\n */\nexport interface IDataspaceDataPlaneComponent extends IComponent {\n\t/**\n\t * Notify an Activity to the Dataspace Data Plane Activity Stream.\n\t * @param activity The Activity notified.\n\t * @param trustPayload Trust payload to verify the requesters identity.\n\t * @returns The activity's entry.\n\t */\n\tnotifyActivity(\n\t\tactivity: IActivityStreamsActivity,\n\t\ttrustPayload?: unknown\n\t): Promise<string | IActivityLogEntry>;\n\n\t/**\n\t * Subscribes to the activity log.\n\t * @param callback The callback to be called when Activity Log is called.\n\t * @param subscriptionId The subscription Id.\n\t * @returns The subscription Id.\n\t */\n\tsubscribeToActivityLog(\n\t\tcallback: (notification: IActivityLogStatusNotification) => Promise<void>,\n\t\tsubscriptionId?: string\n\t): Promise<string>;\n\n\t/**\n\t * Unsubscribes from the activity log.\n\t * @param subscriptionId The subscription Id to remove.\n\t * @returns A promise that resolves when the subscription has been removed.\n\t */\n\tunSubscribeToActivityLog(subscriptionId: string): Promise<void>;\n\n\t/**\n\t * Returns Activity Log Entry which contains the Activity processing details.\n\t * @param logEntryId The Id of the Activity Log Entry (a URI).\n\t * @param trustPayload Trust payload to verify the requester's identity.\n\t * @returns the Activity Log Entry with the processing details.\n\t * @throws NotFoundError if activity log entry is not known.\n\t * @throws UnauthorizedError if trustPayload is absent or the verified identity is not authorised for the entry.\n\t */\n\tgetActivityLogEntry(logEntryId: string, trustPayload?: unknown): Promise<IActivityLogEntry>;\n\n\t/**\n\t * Get Data Asset entities. Allows to retrieve entities by their type or id.\n\t * @param entitySet The set of entities to be retrieved.\n\t * @param entitySet.jsonLdContext The JSON-LD Context to be used to expand the referred entityType.\n\t * @param consumerPid The consumer Process ID from the DSP Transfer Process.\n\t * Used to resolve datasetId from the Transfer Process.\n\t * @param cursor Pagination details - cursor.\n\t * @param limit Pagination details - max number of entities.\n\t * @param trustPayload Trust payload to verify the requesters identity.\n\t * @returns The item list and optional cursor for pagination via Link headers.\n\t */\n\tgetDataAssetEntities(\n\t\tentitySet: IEntitySet & {\n\t\t\tjsonLdContext?: IJsonLdContextDefinitionElement[];\n\t\t},\n\t\tconsumerPid: string,\n\t\tcursor?: string,\n\t\tlimit?: number,\n\t\ttrustPayload?: unknown\n\t): Promise<IDataAssetItemListResult>;\n\n\t/**\n\t * Queries a data asset controlled by this Dataspace App.\n\t * @param consumerPid The consumer Process ID from the DSP Transfer Process.\n\t * Used to resolve datasetId from the Transfer Process.\n\t * @param query The filtering query.\n\t * @param cursor Pagination details - cursor.\n\t * @param limit Pagination details - max number of entities.\n\t * @param trustPayload Trust payload to verify the requesters identity.\n\t * @returns The item list and optional cursor for pagination via Link headers.\n\t */\n\tqueryDataAsset(\n\t\tconsumerPid: string,\n\t\tquery: IFilteringQuery,\n\t\tcursor?: string,\n\t\tlimit?: number,\n\t\ttrustPayload?: unknown\n\t): Promise<IDataAssetItemListResult>;\n\n\t/**\n\t * Set up a push subscription after a transfer enters STARTED from REQUESTED.\n\t * Reads the TransferProcess, builds an IFollowActivity, calls the app's\n\t * subscribeToData, and persists a PushSubscription entity.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is created.\n\t */\n\tsetupPushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Pause deliveries for a push subscription. The subscription entity stays\n\t * alive with status=Paused. No app unsubscribe call.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is paused.\n\t */\n\tsuspendPushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Resume deliveries after a SUSPENDED → STARTED transition. Flips status\n\t * back to Active. No app subscribeToData call.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is resumed.\n\t */\n\tresumePushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Tear down a push subscription. Builds an IUndoActivity, calls the app's\n\t * unsubscribeToData, and deletes the PushSubscription entity.\n\t * @param consumerPid The consumer process ID identifying the transfer.\n\t * @returns Promise that resolves when the subscription is torn down.\n\t */\n\tteardownPushSubscription(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Called by the app when new data is available for a follower.\n\t * The activity's `to` attribute contains the consumerPid URN. This method\n\t * looks up the matching PushSubscription, validates transfer state, and\n\t * schedules a Background Task that POSTs the activity to the consumer.\n\t * @param activity The outbound activity carrying the data payload.\n\t * @returns Promise that resolves when the delivery task is scheduled.\n\t */\n\tprocessOutboxActivity(activity: IActivityStreamsActivity): Promise<void>;\n}\n"]}
@@ -12,7 +12,7 @@ export declare class DataspaceAppDataset {
12
12
  organizationIdentity: string;
13
13
  /**
14
14
  * The tenant that owns this dataset, captured from the request context at
15
- * write time. Optional single-tenant nodes (no `TWIN_TENANT_ENABLED`)
15
+ * write time. Optional - single-tenant nodes (no `TWIN_TENANT_ENABLED`)
16
16
  * register datasets without a tenant context.
17
17
  */
18
18
  tenantId?: string;
@@ -12,7 +12,7 @@ export declare class DataspaceAppDatasetV0 {
12
12
  organizationIdentity: string;
13
13
  /**
14
14
  * The tenant that owns this dataset, captured from the request context at
15
- * write time. Optional single-tenant nodes (no `TWIN_TENANT_ENABLED`)
15
+ * write time. Optional - single-tenant nodes (no `TWIN_TENANT_ENABLED`)
16
16
  * register datasets without a tenant context.
17
17
  */
18
18
  tenantId?: string;
@@ -1,4 +1,3 @@
1
- import type { IRightsManagementPolicy } from "@twin.org/rights-management-models";
2
1
  import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolDataAddress } from "@twin.org/standards-dataspace-protocol";
3
2
  import type { TransferProcessRole } from "../models/controlPlane/transferProcessRole.js";
4
3
  /**
@@ -7,14 +6,15 @@ import type { TransferProcessRole } from "../models/controlPlane/transferProcess
7
6
  */
8
7
  export declare class TransferProcess {
9
8
  /**
10
- * The consumer PID is the primary key.
11
- * Used for direct lookup by consumerPid.
9
+ * Internal id, the primary key. Both role records of a self transfer share consumerPid and
10
+ * providerPid, so only the internal id is collision-free within one partition.
12
11
  */
13
- consumerPid: string;
12
+ id: string;
14
13
  /**
15
- * Internal UUID for storage (secondary key for providerPid lookup).
14
+ * Consumer Process ID from the DSP protocol.
15
+ * Indexed for lookup by consumerPid.
16
16
  */
17
- id: string;
17
+ consumerPid: string;
18
18
  /**
19
19
  * Provider Process ID from the DSP protocol.
20
20
  * Indexed for lookup by providerPid.
@@ -47,8 +47,8 @@ export declare class TransferProcess {
47
47
  providerIdentity?: string;
48
48
  /**
49
49
  * This node's role in the transfer, captured at write time so state transitions and async delivery
50
- * can tell which party we are without inferring it from the matched PID (consumerPid is the primary
51
- * key on both nodes). Optional for back-compat with records written before this field existed.
50
+ * can tell which party we are without inferring it from the matched PID (a self transfer stores two
51
+ * records sharing both pids). Optional for back-compat with records written before this field existed.
52
52
  */
53
53
  localRole?: TransferProcessRole;
54
54
  /**
@@ -71,10 +71,6 @@ export declare class TransferProcess {
71
71
  * Last update timestamp (ISO string format).
72
72
  */
73
73
  dateModified: string;
74
- /**
75
- * Policies from the Agreement (stored as JSON).
76
- */
77
- policies?: IRightsManagementPolicy[];
78
74
  /**
79
75
  * Data address for the transfer (stored as JSON): the consumer's inbox for PUSH, or the
80
76
  * provider-built address persisted at start for PULL/POST; may expire while STARTED.
@@ -0,0 +1,83 @@
1
+ import type { IRightsManagementPolicy } from "@twin.org/rights-management-models";
2
+ import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolDataAddress } from "@twin.org/standards-dataspace-protocol";
3
+ import type { TransferProcessRole } from "../models/controlPlane/transferProcessRole.js";
4
+ /**
5
+ * Transfer Process for shared storage between Control Plane and Data Plane, version 0.
6
+ * Keyed on consumerPid; superseded by the version keyed on the internal id.
7
+ */
8
+ export declare class TransferProcessV0 {
9
+ /**
10
+ * The consumer PID is the primary key.
11
+ * Used for direct lookup by consumerPid.
12
+ */
13
+ consumerPid: string;
14
+ /**
15
+ * Internal UUID for storage (secondary key for providerPid lookup).
16
+ */
17
+ id: string;
18
+ /**
19
+ * Provider Process ID from the DSP protocol.
20
+ * Indexed for lookup by providerPid.
21
+ */
22
+ providerPid: string;
23
+ /**
24
+ * Agreement ID linking to the rights-management Agreement.
25
+ */
26
+ agreementId: string;
27
+ /**
28
+ * Transfer Process state from the DSP protocol.
29
+ * One of: REQUESTED, STARTED, COMPLETED, SUSPENDED, TERMINATED.
30
+ */
31
+ state: DataspaceProtocolTransferProcessStateType;
32
+ /**
33
+ * Dataset ID for DSC resolution.
34
+ */
35
+ datasetId: string;
36
+ /**
37
+ * Offer ID from the original Catalog offer.
38
+ */
39
+ offerId: string;
40
+ /**
41
+ * Consumer identity (DID or URI).
42
+ */
43
+ consumerIdentity?: string;
44
+ /**
45
+ * Provider identity (DID or URI).
46
+ */
47
+ providerIdentity?: string;
48
+ /**
49
+ * This node's role in the transfer, captured at write time so state transitions and async delivery
50
+ * can tell which party we are without inferring it from the matched PID (consumerPid is the primary
51
+ * key on both nodes). Optional for back-compat with records written before this field existed.
52
+ */
53
+ localRole?: TransferProcessRole;
54
+ /**
55
+ * Data format from the Dataset Distribution.
56
+ */
57
+ format?: string;
58
+ /**
59
+ * Callback address for Consumer notifications.
60
+ */
61
+ callbackAddress?: string;
62
+ /**
63
+ * The organization that owns this transfer process, captured from the request context at write time.
64
+ */
65
+ organizationIdentity: string;
66
+ /**
67
+ * Creation timestamp (ISO string format).
68
+ */
69
+ dateCreated: string;
70
+ /**
71
+ * Last update timestamp (ISO string format).
72
+ */
73
+ dateModified: string;
74
+ /**
75
+ * Policies from the Agreement (stored as JSON).
76
+ */
77
+ policies?: IRightsManagementPolicy[];
78
+ /**
79
+ * Data address for the transfer (stored as JSON): the consumer's inbox for PUSH, or the
80
+ * provider-built address persisted at start for PULL/POST; may expire while STARTED.
81
+ */
82
+ dataAddress?: IDataspaceProtocolDataAddress;
83
+ }
@@ -1,6 +1,7 @@
1
1
  export * from "./entities/dataspaceAppDataset.js";
2
2
  export * from "./entities/dataspaceAppDatasetV0.js";
3
3
  export * from "./entities/transferProcess.js";
4
+ export * from "./entities/transferProcessV0.js";
4
5
  export * from "./entities/transferRetrieval.js";
5
6
  export * from "./models/controlPlane/api/ITransferContextResponse.js";
6
7
  export * from "./models/controlPlane/dataspaceControlPlaneMetricIds.js";
@@ -44,7 +44,7 @@ export interface IPushDeliveryPayload {
44
44
  * The tenant that owns this push delivery, captured at schedule time from the active
45
45
  * `ContextIdStore` context (typically from the subscription's `tenantId` field).
46
46
  * The runner re-establishes this tenant context via `ContextIdStore.run` before invoking
47
- * tenant-scoped operations (PEP, trust signing, vault lookups). Optional single-tenant
47
+ * tenant-scoped operations (PEP, trust signing, vault lookups). Optional - single-tenant
48
48
  * nodes operate without a tenant context.
49
49
  */
50
50
  tenantId?: string;
@@ -3,7 +3,7 @@ import type { IDataspaceProtocolDataset } from "@twin.org/standards-dataspace-pr
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
  export interface IAppDatasetCreateRequest {
9
9
  /**
@@ -24,7 +24,7 @@ export interface IAppDatasetCreateRequest {
24
24
  appId: string;
25
25
  /**
26
26
  * The dataset payload. System-stamped fields like `dcterms:publisher`
27
- * may be omitted the Control Plane fills them in at publish time.
27
+ * may be omitted - the Control Plane fills them in at publish time.
28
28
  */
29
29
  dataset: IDataspaceProtocolDataset;
30
30
  /**
@@ -41,7 +41,7 @@ export interface IDataspaceControlPlaneComponent extends IComponent {
41
41
  * notified via the registered INegotiationCallback when the negotiation completes.
42
42
  * The negotiation follows DSP state machine: REQUESTED → OFFERED → AGREED → VERIFIED → FINALIZED.
43
43
  *
44
- * The REST client does not support this method and throws a not supported error
44
+ * The REST client does not support this method and throws a not supported error -
45
45
  * use ComponentFactory.get() for the in-process service.
46
46
  *
47
47
  * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiation-protocol
@@ -99,7 +99,7 @@ export interface IDataspaceControlPlaneComponent extends IComponent {
99
99
  * consumer-initiated transfer changes state (STARTED, COMPLETED, SUSPENDED,
100
100
  * TERMINATED).
101
101
  *
102
- * The REST client does not support this method and throws a not supported error
102
+ * The REST client does not support this method and throws a not supported error -
103
103
  * use ComponentFactory.get() for the in-process service.
104
104
  * @param key A unique key identifying this callback registration.
105
105
  * @param callback The callback interface to register.
@@ -124,7 +124,7 @@ export interface IDataspaceControlPlaneComponent extends IComponent {
124
124
  * via the registered ITransferCallback. The transfer moves to STARTED when the
125
125
  * provider POSTs a TransferStartMessage back to this node's callback address.
126
126
  *
127
- * The REST client does not support this method and throws a not supported error
127
+ * The REST client does not support this method and throws a not supported error -
128
128
  * use ComponentFactory.get() for the in-process service.
129
129
  *
130
130
  * @param agreementId The finalized agreement ID (from contract negotiation).
@@ -21,11 +21,13 @@ export interface INegotiationCallback {
21
21
  }): Promise<void>;
22
22
  /**
23
23
  * Called when the negotiation finalizes.
24
- * @param negotiationId The negotiation ID, or undefined for implicit-trust agreements.
24
+ * @param negotiationId The negotiation ID, or undefined for implicit-trust or agreement-reuse paths.
25
25
  * @param agreementId The agreement ID (from agreement.uid).
26
+ * @param offerId The offer ID that triggered the negotiation; present when negotiationId is undefined so
27
+ * callers with concurrent negotiations can discriminate which finalization belongs to them.
26
28
  * @returns Nothing.
27
29
  */
28
- onFinalized(negotiationId: string | undefined, agreementId: string): Promise<void>;
30
+ onFinalized(negotiationId: string | undefined, agreementId: string, offerId?: string): Promise<void>;
29
31
  /**
30
32
  * Called when the negotiation fails (terminated or stalled).
31
33
  * @param negotiationId The negotiation ID.
@@ -1,4 +1,3 @@
1
- import type { IRightsManagementPolicy } from "@twin.org/rights-management-models";
2
1
  import type { DataspaceProtocolTransferProcessStateType, IDataspaceProtocolDataAddress } from "@twin.org/standards-dataspace-protocol";
3
2
  import type { TransferProcessRole } from "./transferProcessRole.js";
4
3
  /**
@@ -28,7 +27,6 @@ export interface ITransferProcess {
28
27
  state: DataspaceProtocolTransferProcessStateType;
29
28
  /**
30
29
  * Agreement ID linking to the rights-management Agreement.
31
- * Used to resolve policies and permissions.
32
30
  */
33
31
  agreementId: string;
34
32
  /**
@@ -40,11 +38,6 @@ export interface ITransferProcess {
40
38
  * Offer ID from the original Catalog offer.
41
39
  */
42
40
  offerId: string;
43
- /**
44
- * Policies from the Agreement.
45
- * Used by DSC for runtime policy enforcement.
46
- */
47
- policies?: IRightsManagementPolicy[];
48
41
  /**
49
42
  * Consumer identity (DID or URI).
50
43
  * Used for auditing and access control.
@@ -42,6 +42,10 @@ export declare const DataspaceControlPlaneMetricIds: {
42
42
  * Number of app datasets deleted.
43
43
  */
44
44
  readonly AppDatasetsDeleted: "dcp_app_datasets_deleted";
45
+ /**
46
+ * Number of agreements removed by the agreement sweep.
47
+ */
48
+ readonly AgreementsSwept: "dcp_agreements_swept";
45
49
  };
46
50
  /**
47
51
  * Metric IDs for the dataspace control plane service.
@@ -37,7 +37,7 @@ export interface IDataspaceDataPlaneComponent extends IComponent {
37
37
  * @param trustPayload Trust payload to verify the requester's identity.
38
38
  * @returns the Activity Log Entry with the processing details.
39
39
  * @throws NotFoundError if activity log entry is not known.
40
- * @throws UnauthorizedError if trustPayload is absent or the verified identity is not the entry generator.
40
+ * @throws UnauthorizedError if trustPayload is absent or the verified identity is not authorised for the entry.
41
41
  */
42
42
  getActivityLogEntry(logEntryId: string, trustPayload?: unknown): Promise<IActivityLogEntry>;
43
43
  /**
package/docs/changelog.md CHANGED
@@ -1,5 +1,75 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.2-next.11](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.10...dataspace-models-v0.9.2-next.11) (2026-08-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * add correlation callbacks ([#354](https://github.com/iotaledger/twin-dataspace/issues/354)) ([d362fb6](https://github.com/iotaledger/twin-dataspace/commit/d362fb6b0816a62f72a77478d78fb3959a437b3c))
9
+
10
+ ## [0.9.2-next.10](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.9...dataspace-models-v0.9.2-next.10) (2026-08-16)
11
+
12
+
13
+ ### Features
14
+
15
+ * add unused agreement sweep to the control plane ([#344](https://github.com/iotaledger/twin-dataspace/issues/344)) ([8633642](https://github.com/iotaledger/twin-dataspace/commit/86336424ced7aeab3259c78373447074f4140e90))
16
+
17
+ ## [0.9.2-next.9](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.8...dataspace-models-v0.9.2-next.9) (2026-08-13)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * get activity log auth ([#343](https://github.com/iotaledger/twin-dataspace/issues/343)) ([9514679](https://github.com/iotaledger/twin-dataspace/commit/95146790ccf7b54fd5dce923af64fdaa607ca555))
23
+
24
+ ## [0.9.2-next.8](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.7...dataspace-models-v0.9.2-next.8) (2026-08-11)
25
+
26
+
27
+ ### Features
28
+
29
+ * transfer process remove inline agreement ([#340](https://github.com/iotaledger/twin-dataspace/issues/340)) ([332eaf6](https://github.com/iotaledger/twin-dataspace/commit/332eaf67e5cf0b13545d013d107658b232ae32ff))
30
+
31
+ ## [0.9.2-next.7](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.6...dataspace-models-v0.9.2-next.7) (2026-08-10)
32
+
33
+
34
+ ### Miscellaneous Chores
35
+
36
+ * **dataspace-models:** Synchronize repo versions
37
+
38
+ ## [0.9.2-next.6](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.5...dataspace-models-v0.9.2-next.6) (2026-08-10)
39
+
40
+
41
+ ### Miscellaneous Chores
42
+
43
+ * **dataspace-models:** Synchronize repo versions
44
+
45
+ ## [0.9.2-next.5](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.4...dataspace-models-v0.9.2-next.5) (2026-08-07)
46
+
47
+
48
+ ### Features
49
+
50
+ * linting and dependency update ([adf8ee0](https://github.com/iotaledger/twin-dataspace/commit/adf8ee04f657f22fb051978591749a4cf19d67a1))
51
+
52
+ ## [0.9.2-next.4](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.3...dataspace-models-v0.9.2-next.4) (2026-08-03)
53
+
54
+
55
+ ### Miscellaneous Chores
56
+
57
+ * **dataspace-models:** Synchronize repo versions
58
+
59
+ ## [0.9.2-next.3](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.2...dataspace-models-v0.9.2-next.3) (2026-07-31)
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * keep one TransferProcess record per role in self transfers ([#321](https://github.com/iotaledger/twin-dataspace/issues/321)) ([91ccc87](https://github.com/iotaledger/twin-dataspace/commit/91ccc87e47d94c6a015e3f974f0dd4cf680c4603))
65
+
66
+ ## [0.9.2-next.2](https://github.com/iotaledger/twin-dataspace/compare/dataspace-models-v0.9.2-next.1...dataspace-models-v0.9.2-next.2) (2026-07-30)
67
+
68
+
69
+ ### Miscellaneous Chores
70
+
71
+ * **dataspace-models:** Synchronize repo versions
72
+
3
73
  ## [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
74
 
5
75
 
@@ -35,7 +35,7 @@ The identity of the organization that owns this entity.
35
35
  > `optional` **tenantId?**: `string`
36
36
 
37
37
  The tenant that owns this dataset, captured from the request context at
38
- write time. Optional single-tenant nodes (no `TWIN_TENANT_ENABLED`)
38
+ write time. Optional - single-tenant nodes (no `TWIN_TENANT_ENABLED`)
39
39
  register datasets without a tenant context.
40
40
 
41
41
  ***
@@ -35,7 +35,7 @@ The identity of the organization that owns this entity.
35
35
  > `optional` **tenantId?**: `string`
36
36
 
37
37
  The tenant that owns this dataset, captured from the request context at
38
- write time. Optional single-tenant nodes (no `TWIN_TENANT_ENABLED`)
38
+ write time. Optional - single-tenant nodes (no `TWIN_TENANT_ENABLED`)
39
39
  register datasets without a tenant context.
40
40
 
41
41
  ***
@@ -15,20 +15,21 @@ This entity is the persistent representation of ITransferProcess.
15
15
 
16
16
  ## Properties
17
17
 
18
- ### consumerPid {#consumerpid}
18
+ ### id {#id}
19
19
 
20
- > **consumerPid**: `string`
20
+ > **id**: `string`
21
21
 
22
- The consumer PID is the primary key.
23
- Used for direct lookup by consumerPid.
22
+ Internal id, the primary key. Both role records of a self transfer share consumerPid and
23
+ providerPid, so only the internal id is collision-free within one partition.
24
24
 
25
25
  ***
26
26
 
27
- ### id {#id}
27
+ ### consumerPid {#consumerpid}
28
28
 
29
- > **id**: `string`
29
+ > **consumerPid**: `string`
30
30
 
31
- Internal UUID for storage (secondary key for providerPid lookup).
31
+ Consumer Process ID from the DSP protocol.
32
+ Indexed for lookup by consumerPid.
32
33
 
33
34
  ***
34
35
 
@@ -95,8 +96,8 @@ Provider identity (DID or URI).
95
96
  > `optional` **localRole?**: [`TransferProcessRole`](../type-aliases/TransferProcessRole.md)
96
97
 
97
98
  This node's role in the transfer, captured at write time so state transitions and async delivery
98
- can tell which party we are without inferring it from the matched PID (consumerPid is the primary
99
- key on both nodes). Optional for back-compat with records written before this field existed.
99
+ can tell which party we are without inferring it from the matched PID (a self transfer stores two
100
+ records sharing both pids). Optional for back-compat with records written before this field existed.
100
101
 
101
102
  ***
102
103
 
@@ -140,14 +141,6 @@ Last update timestamp (ISO string format).
140
141
 
141
142
  ***
142
143
 
143
- ### policies? {#policies}
144
-
145
- > `optional` **policies?**: `IRightsManagementPolicy`[]
146
-
147
- Policies from the Agreement (stored as JSON).
148
-
149
- ***
150
-
151
144
  ### dataAddress? {#dataaddress}
152
145
 
153
146
  > `optional` **dataAddress?**: `IDataspaceProtocolDataAddress`
@@ -0,0 +1,156 @@
1
+ # Class: TransferProcessV0
2
+
3
+ Transfer Process for shared storage between Control Plane and Data Plane, version 0.
4
+ Keyed on consumerPid; superseded by the version keyed on the internal id.
5
+
6
+ ## Constructors
7
+
8
+ ### Constructor
9
+
10
+ > **new TransferProcessV0**(): `TransferProcessV0`
11
+
12
+ #### Returns
13
+
14
+ `TransferProcessV0`
15
+
16
+ ## Properties
17
+
18
+ ### consumerPid {#consumerpid}
19
+
20
+ > **consumerPid**: `string`
21
+
22
+ The consumer PID is the primary key.
23
+ Used for direct lookup by consumerPid.
24
+
25
+ ***
26
+
27
+ ### id {#id}
28
+
29
+ > **id**: `string`
30
+
31
+ Internal UUID for storage (secondary key for providerPid lookup).
32
+
33
+ ***
34
+
35
+ ### providerPid {#providerpid}
36
+
37
+ > **providerPid**: `string`
38
+
39
+ Provider Process ID from the DSP protocol.
40
+ Indexed for lookup by providerPid.
41
+
42
+ ***
43
+
44
+ ### agreementId {#agreementid}
45
+
46
+ > **agreementId**: `string`
47
+
48
+ Agreement ID linking to the rights-management Agreement.
49
+
50
+ ***
51
+
52
+ ### state {#state}
53
+
54
+ > **state**: `DataspaceProtocolTransferProcessStateType`
55
+
56
+ Transfer Process state from the DSP protocol.
57
+ One of: REQUESTED, STARTED, COMPLETED, SUSPENDED, TERMINATED.
58
+
59
+ ***
60
+
61
+ ### datasetId {#datasetid}
62
+
63
+ > **datasetId**: `string`
64
+
65
+ Dataset ID for DSC resolution.
66
+
67
+ ***
68
+
69
+ ### offerId {#offerid}
70
+
71
+ > **offerId**: `string`
72
+
73
+ Offer ID from the original Catalog offer.
74
+
75
+ ***
76
+
77
+ ### consumerIdentity? {#consumeridentity}
78
+
79
+ > `optional` **consumerIdentity?**: `string`
80
+
81
+ Consumer identity (DID or URI).
82
+
83
+ ***
84
+
85
+ ### providerIdentity? {#provideridentity}
86
+
87
+ > `optional` **providerIdentity?**: `string`
88
+
89
+ Provider identity (DID or URI).
90
+
91
+ ***
92
+
93
+ ### localRole? {#localrole}
94
+
95
+ > `optional` **localRole?**: [`TransferProcessRole`](../type-aliases/TransferProcessRole.md)
96
+
97
+ This node's role in the transfer, captured at write time so state transitions and async delivery
98
+ can tell which party we are without inferring it from the matched PID (consumerPid is the primary
99
+ key on both nodes). Optional for back-compat with records written before this field existed.
100
+
101
+ ***
102
+
103
+ ### format? {#format}
104
+
105
+ > `optional` **format?**: `string`
106
+
107
+ Data format from the Dataset Distribution.
108
+
109
+ ***
110
+
111
+ ### callbackAddress? {#callbackaddress}
112
+
113
+ > `optional` **callbackAddress?**: `string`
114
+
115
+ Callback address for Consumer notifications.
116
+
117
+ ***
118
+
119
+ ### organizationIdentity {#organizationidentity}
120
+
121
+ > **organizationIdentity**: `string`
122
+
123
+ The organization that owns this transfer process, captured from the request context at write time.
124
+
125
+ ***
126
+
127
+ ### dateCreated {#datecreated}
128
+
129
+ > **dateCreated**: `string`
130
+
131
+ Creation timestamp (ISO string format).
132
+
133
+ ***
134
+
135
+ ### dateModified {#datemodified}
136
+
137
+ > **dateModified**: `string`
138
+
139
+ Last update timestamp (ISO string format).
140
+
141
+ ***
142
+
143
+ ### policies? {#policies}
144
+
145
+ > `optional` **policies?**: `IRightsManagementPolicy`[]
146
+
147
+ Policies from the Agreement (stored as JSON).
148
+
149
+ ***
150
+
151
+ ### dataAddress? {#dataaddress}
152
+
153
+ > `optional` **dataAddress?**: `IDataspaceProtocolDataAddress`
154
+
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.
@@ -6,6 +6,7 @@
6
6
  - [DataspaceAppDataset](classes/DataspaceAppDataset.md)
7
7
  - [DataspaceAppDatasetV0](classes/DataspaceAppDatasetV0.md)
8
8
  - [TransferProcess](classes/TransferProcess.md)
9
+ - [TransferProcessV0](classes/TransferProcessV0.md)
9
10
  - [TransferRetrieval](classes/TransferRetrieval.md)
10
11
 
11
12
  ## Interfaces