@twin.org/dataspace-control-plane-service 0.0.3-next.42 → 0.0.3-next.44
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.
- package/dist/es/dataspaceControlPlanePolicyRequester.js +1 -1
- package/dist/es/dataspaceControlPlanePolicyRequester.js.map +1 -1
- package/dist/es/dataspaceControlPlaneService.js +178 -329
- package/dist/es/dataspaceControlPlaneService.js.map +1 -1
- package/dist/es/models/IDataspaceControlPlaneServiceConstructorOptions.js.map +1 -1
- package/dist/types/dataspaceControlPlaneService.d.ts +5 -9
- package/dist/types/models/IDataspaceControlPlaneServiceConstructorOptions.d.ts +5 -6
- package/docs/changelog.md +28 -0
- package/docs/reference/classes/DataspaceControlPlaneService.md +5 -9
- package/docs/reference/interfaces/IDataspaceControlPlaneServiceConstructorOptions.md +9 -15
- package/locales/en.json +4 -8
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDataspaceControlPlaneServiceConstructorOptions.js","sourceRoot":"","sources":["../../../src/models/IDataspaceControlPlaneServiceConstructorOptions.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceControlPlaneServiceConfig } from \"./IDataspaceControlPlaneServiceConfig.js\";\n\n/**\n * Dataspace Control Plane service constructor options.\n */\nexport interface IDataspaceControlPlaneServiceConstructorOptions {\n\t/**\n\t * Policy Administration Point component type.\n\t * Used for Agreement lookup and validation during Transfer Process initiation.\n\t * @default policy-administration-point\n\t */\n\tpolicyAdministrationPointComponentType?: string;\n\n\t/**\n\t * Policy Negotiation Point component type.\n\t * Used for contract negotiation to create agreements before transfer processes.\n\t * @default policy-negotiation-point\n\t */\n\tpolicyNegotiationPointComponentType?: string;\n\n\t/**\n\t * Policy Negotiation Admin Point component type.\n\t * Used for querying negotiation history.\n\t * @default policy-negotiation-admin-point\n\t */\n\tpolicyNegotiationAdminPointComponentType?: string;\n\n\t/**\n\t * Federated Catalogue component type.\n\t * Used for dataset validation during Transfer Process initiation.\n\t * Validates that Agreements reference valid catalog datasets.\n\t * @default federated-catalogue\n\t */\n\tfederatedCatalogueComponentType?: string;\n\n\t/**\n\t * Logging component type.\n\t
|
|
1
|
+
{"version":3,"file":"IDataspaceControlPlaneServiceConstructorOptions.js","sourceRoot":"","sources":["../../../src/models/IDataspaceControlPlaneServiceConstructorOptions.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceControlPlaneServiceConfig } from \"./IDataspaceControlPlaneServiceConfig.js\";\n\n/**\n * Dataspace Control Plane service constructor options.\n */\nexport interface IDataspaceControlPlaneServiceConstructorOptions {\n\t/**\n\t * Policy Administration Point component type.\n\t * Used for Agreement lookup and validation during Transfer Process initiation.\n\t * @default policy-administration-point\n\t */\n\tpolicyAdministrationPointComponentType?: string;\n\n\t/**\n\t * Policy Negotiation Point component type.\n\t * Used for contract negotiation to create agreements before transfer processes.\n\t * @default policy-negotiation-point\n\t */\n\tpolicyNegotiationPointComponentType?: string;\n\n\t/**\n\t * Policy Negotiation Admin Point component type.\n\t * Used for querying negotiation history.\n\t * @default policy-negotiation-admin-point\n\t */\n\tpolicyNegotiationAdminPointComponentType?: string;\n\n\t/**\n\t * Federated Catalogue component type.\n\t * Used for dataset validation during Transfer Process initiation.\n\t * Validates that Agreements reference valid catalog datasets.\n\t * @default federated-catalogue\n\t */\n\tfederatedCatalogueComponentType?: string;\n\n\t/**\n\t * Logging component type.\n\t */\n\tloggingComponentType?: string;\n\n\t/**\n\t * Identity component type (for token signing/verification).\n\t * @default identity\n\t */\n\tidentityComponentType?: string;\n\n\t/**\n\t * Identity Authentication component type (for token validation).\n\t * @default identity-authentication\n\t */\n\tidentityAuthenticationComponentType?: string;\n\n\t/**\n\t * Trust component type for trust verification.\n\t * Used to verify JWT/VC tokens and extract identity information.\n\t * @default trust\n\t */\n\ttrustComponentType?: string;\n\n\t/**\n\t * Entity storage type for Transfer Process entities.\n\t * Used to persist transfer state for the consumerPid flow.\n\t * Must match the Data Plane's transferProcessEntityStorageType for shared storage.\n\t * @default transfer-process\n\t */\n\ttransferProcessEntityStorageType?: string;\n\n\t/**\n\t * Entity storage type for Dataspace App Dataset entities.\n\t * @default dataspace-app-dataset\n\t */\n\tdataspaceAppDatasetEntityStorageType?: string;\n\n\t/**\n\t * Task scheduler component type for periodic cleanup of stalled negotiations.\n\t * @default task-scheduler\n\t */\n\ttaskSchedulerComponentType?: string;\n\n\t/**\n\t * Data Plane component type, used to invoke push subscription lifecycle methods.\n\t * @default dataspace-data-plane\n\t */\n\tdataPlaneComponentType?: string;\n\n\t/**\n\t * Remote control plane component type used to make outbound DSP transfer requests.\n\t * Created dynamically via ComponentFactory.create() with the provider endpoint as config.\n\t * @default dataspace-control-plane-rest-client\n\t */\n\tremoteControlPlaneComponentType?: string;\n\n\t/**\n\t * Platform component type, used to retrieve public origin for constructing data plane URLs.\n\t * @default platform\n\t */\n\tplatformComponentType?: string;\n\n\t/**\n\t * The configuration of the Dataspace Control Plane Service.\n\t */\n\tconfig?: IDataspaceControlPlaneServiceConfig;\n}\n"]}
|
|
@@ -48,10 +48,6 @@ export declare class DataspaceControlPlaneService implements IDataspaceControlPl
|
|
|
48
48
|
unregisterTransferCallback(key: string): void;
|
|
49
49
|
/**
|
|
50
50
|
* The service needs to be started when the application is initialized.
|
|
51
|
-
* Populates the Federated Catalogue with datasets from registered apps
|
|
52
|
-
* and starts the stalled negotiation cleanup task. Also captures the node
|
|
53
|
-
* identity from ContextIdStore when tenant-token encryption is configured
|
|
54
|
-
* (required to derive the vault key name `${nodeId}/${signingKeyName}`).
|
|
55
51
|
* @param nodeLoggingComponentType The node logging component type.
|
|
56
52
|
*/
|
|
57
53
|
start(nodeLoggingComponentType?: string): Promise<void>;
|
|
@@ -187,7 +183,7 @@ export declare class DataspaceControlPlaneService implements IDataspaceControlPl
|
|
|
187
183
|
*/
|
|
188
184
|
resolveProviderPid(providerPid: string, trustPayload: unknown): Promise<ITransferContext>;
|
|
189
185
|
/**
|
|
190
|
-
* Register a dataset for a dataspace app, owned by the calling
|
|
186
|
+
* Register a dataset for a dataspace app, owned by the calling organization.
|
|
191
187
|
* @param id Optional explicit id. If omitted, derived from `dataset["@id"]`
|
|
192
188
|
* or generated.
|
|
193
189
|
* @param appId The dataspace app this dataset belongs to.
|
|
@@ -196,13 +192,13 @@ export declare class DataspaceControlPlaneService implements IDataspaceControlPl
|
|
|
196
192
|
*/
|
|
197
193
|
createAppDataset(id: string | undefined, appId: string, dataset: IDataspaceProtocolDataset): Promise<string>;
|
|
198
194
|
/**
|
|
199
|
-
* Get a dataset record owned by the calling
|
|
195
|
+
* Get a dataset record owned by the calling organization.
|
|
200
196
|
* @param id The stored dataset id.
|
|
201
197
|
* @returns The stored dataset record.
|
|
202
198
|
*/
|
|
203
199
|
getAppDataset(id: string): Promise<IDataspaceAppDataset>;
|
|
204
200
|
/**
|
|
205
|
-
* List the dataspace app datasets owned by the calling
|
|
201
|
+
* List the dataspace app datasets owned by the calling organization.
|
|
206
202
|
* @param cursor Optional pagination cursor.
|
|
207
203
|
* @param limit Optional maximum number of entries to return.
|
|
208
204
|
* @returns The stored datasets and the next-page cursor if more exist.
|
|
@@ -212,14 +208,14 @@ export declare class DataspaceControlPlaneService implements IDataspaceControlPl
|
|
|
212
208
|
cursor?: string;
|
|
213
209
|
}>;
|
|
214
210
|
/**
|
|
215
|
-
* Update a dataset record owned by the calling
|
|
211
|
+
* Update a dataset record owned by the calling organization.
|
|
216
212
|
* @param id The stored dataset id.
|
|
217
213
|
* @param appId The dataspace app this dataset belongs to.
|
|
218
214
|
* @param dataset The dataset payload.
|
|
219
215
|
*/
|
|
220
216
|
updateAppDataset(id: string, appId: string, dataset: IDataspaceProtocolDataset): Promise<void>;
|
|
221
217
|
/**
|
|
222
|
-
* Delete a dataspace app dataset owned by the calling
|
|
218
|
+
* Delete a dataspace app dataset owned by the calling organization.
|
|
223
219
|
* @param id The stored app dataset id.
|
|
224
220
|
*/
|
|
225
221
|
deleteAppDataset(id: string): Promise<void>;
|
|
@@ -30,7 +30,6 @@ export interface IDataspaceControlPlaneServiceConstructorOptions {
|
|
|
30
30
|
federatedCatalogueComponentType?: string;
|
|
31
31
|
/**
|
|
32
32
|
* Logging component type.
|
|
33
|
-
* @default logging
|
|
34
33
|
*/
|
|
35
34
|
loggingComponentType?: string;
|
|
36
35
|
/**
|
|
@@ -71,17 +70,17 @@ export interface IDataspaceControlPlaneServiceConstructorOptions {
|
|
|
71
70
|
* @default dataspace-data-plane
|
|
72
71
|
*/
|
|
73
72
|
dataPlaneComponentType?: string;
|
|
74
|
-
/**
|
|
75
|
-
* URL Transformer component type used to encrypt the tenant token into the data-plane.
|
|
76
|
-
* @default url-transformer
|
|
77
|
-
*/
|
|
78
|
-
urlTransformerComponentType?: string;
|
|
79
73
|
/**
|
|
80
74
|
* Remote control plane component type used to make outbound DSP transfer requests.
|
|
81
75
|
* Created dynamically via ComponentFactory.create() with the provider endpoint as config.
|
|
82
76
|
* @default dataspace-control-plane-rest-client
|
|
83
77
|
*/
|
|
84
78
|
remoteControlPlaneComponentType?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Platform component type, used to retrieve public origin for constructing data plane URLs.
|
|
81
|
+
* @default platform
|
|
82
|
+
*/
|
|
83
|
+
platformComponentType?: string;
|
|
85
84
|
/**
|
|
86
85
|
* The configuration of the Dataspace Control Plane Service.
|
|
87
86
|
*/
|
package/docs/changelog.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.3-next.44](https://github.com/iotaledger/twin-dataspace/compare/dataspace-control-plane-service-v0.0.3-next.43...dataspace-control-plane-service-v0.0.3-next.44) (2026-06-12)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Miscellaneous Chores
|
|
7
|
+
|
|
8
|
+
* **dataspace-control-plane-service:** Synchronize repo versions
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* dependencies
|
|
15
|
+
* @twin.org/dataspace-models bumped from 0.0.3-next.43 to 0.0.3-next.44
|
|
16
|
+
|
|
17
|
+
## [0.0.3-next.43](https://github.com/iotaledger/twin-dataspace/compare/dataspace-control-plane-service-v0.0.3-next.42...dataspace-control-plane-service-v0.0.3-next.43) (2026-06-11)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* organization identifiers ([#188](https://github.com/iotaledger/twin-dataspace/issues/188)) ([af643d3](https://github.com/iotaledger/twin-dataspace/commit/af643d3bb7f212d6cbb672e362a9e1bbe886d1a5))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Dependencies
|
|
26
|
+
|
|
27
|
+
* The following workspace dependencies were updated
|
|
28
|
+
* dependencies
|
|
29
|
+
* @twin.org/dataspace-models bumped from 0.0.3-next.42 to 0.0.3-next.43
|
|
30
|
+
|
|
3
31
|
## [0.0.3-next.42](https://github.com/iotaledger/twin-dataspace/compare/dataspace-control-plane-service-v0.0.3-next.41...dataspace-control-plane-service-v0.0.3-next.42) (2026-06-10)
|
|
4
32
|
|
|
5
33
|
|
|
@@ -173,10 +173,6 @@ The key used when registering the callback.
|
|
|
173
173
|
> **start**(`nodeLoggingComponentType?`): `Promise`\<`void`\>
|
|
174
174
|
|
|
175
175
|
The service needs to be started when the application is initialized.
|
|
176
|
-
Populates the Federated Catalogue with datasets from registered apps
|
|
177
|
-
and starts the stalled negotiation cleanup task. Also captures the node
|
|
178
|
-
identity from ContextIdStore when tenant-token encryption is configured
|
|
179
|
-
(required to derive the vault key name `${nodeId}/${signingKeyName}`).
|
|
180
176
|
|
|
181
177
|
#### Parameters
|
|
182
178
|
|
|
@@ -676,7 +672,7 @@ Transfer Context with Agreement, datasetId, and Transfer Process metadata.
|
|
|
676
672
|
|
|
677
673
|
> **createAppDataset**(`id`, `appId`, `dataset`): `Promise`\<`string`\>
|
|
678
674
|
|
|
679
|
-
Register a dataset for a dataspace app, owned by the calling
|
|
675
|
+
Register a dataset for a dataspace app, owned by the calling organization.
|
|
680
676
|
|
|
681
677
|
#### Parameters
|
|
682
678
|
|
|
@@ -715,7 +711,7 @@ The resolved dataset id.
|
|
|
715
711
|
|
|
716
712
|
> **getAppDataset**(`id`): `Promise`\<`IDataspaceAppDataset`\>
|
|
717
713
|
|
|
718
|
-
Get a dataset record owned by the calling
|
|
714
|
+
Get a dataset record owned by the calling organization.
|
|
719
715
|
|
|
720
716
|
#### Parameters
|
|
721
717
|
|
|
@@ -741,7 +737,7 @@ The stored dataset record.
|
|
|
741
737
|
|
|
742
738
|
> **listAppDatasets**(`cursor?`, `limit?`): `Promise`\<\{ `entities`: `IDataspaceAppDataset`[]; `cursor?`: `string`; \}\>
|
|
743
739
|
|
|
744
|
-
List the dataspace app datasets owned by the calling
|
|
740
|
+
List the dataspace app datasets owned by the calling organization.
|
|
745
741
|
|
|
746
742
|
#### Parameters
|
|
747
743
|
|
|
@@ -773,7 +769,7 @@ The stored datasets and the next-page cursor if more exist.
|
|
|
773
769
|
|
|
774
770
|
> **updateAppDataset**(`id`, `appId`, `dataset`): `Promise`\<`void`\>
|
|
775
771
|
|
|
776
|
-
Update a dataset record owned by the calling
|
|
772
|
+
Update a dataset record owned by the calling organization.
|
|
777
773
|
|
|
778
774
|
#### Parameters
|
|
779
775
|
|
|
@@ -809,7 +805,7 @@ The dataset payload.
|
|
|
809
805
|
|
|
810
806
|
> **deleteAppDataset**(`id`): `Promise`\<`void`\>
|
|
811
807
|
|
|
812
|
-
Delete a dataspace app dataset owned by the calling
|
|
808
|
+
Delete a dataspace app dataset owned by the calling organization.
|
|
813
809
|
|
|
814
810
|
#### Parameters
|
|
815
811
|
|
|
@@ -71,12 +71,6 @@ federated-catalogue
|
|
|
71
71
|
|
|
72
72
|
Logging component type.
|
|
73
73
|
|
|
74
|
-
#### Default
|
|
75
|
-
|
|
76
|
-
```ts
|
|
77
|
-
logging
|
|
78
|
-
```
|
|
79
|
-
|
|
80
74
|
***
|
|
81
75
|
|
|
82
76
|
### identityComponentType? {#identitycomponenttype}
|
|
@@ -180,31 +174,31 @@ dataspace-data-plane
|
|
|
180
174
|
|
|
181
175
|
***
|
|
182
176
|
|
|
183
|
-
###
|
|
177
|
+
### remoteControlPlaneComponentType? {#remotecontrolplanecomponenttype}
|
|
184
178
|
|
|
185
|
-
> `optional` **
|
|
179
|
+
> `optional` **remoteControlPlaneComponentType?**: `string`
|
|
186
180
|
|
|
187
|
-
|
|
181
|
+
Remote control plane component type used to make outbound DSP transfer requests.
|
|
182
|
+
Created dynamically via ComponentFactory.create() with the provider endpoint as config.
|
|
188
183
|
|
|
189
184
|
#### Default
|
|
190
185
|
|
|
191
186
|
```ts
|
|
192
|
-
|
|
187
|
+
dataspace-control-plane-rest-client
|
|
193
188
|
```
|
|
194
189
|
|
|
195
190
|
***
|
|
196
191
|
|
|
197
|
-
###
|
|
192
|
+
### platformComponentType? {#platformcomponenttype}
|
|
198
193
|
|
|
199
|
-
> `optional` **
|
|
194
|
+
> `optional` **platformComponentType?**: `string`
|
|
200
195
|
|
|
201
|
-
|
|
202
|
-
Created dynamically via ComponentFactory.create() with the provider endpoint as config.
|
|
196
|
+
Platform component type, used to retrieve public origin for constructing data plane URLs.
|
|
203
197
|
|
|
204
198
|
#### Default
|
|
205
199
|
|
|
206
200
|
```ts
|
|
207
|
-
|
|
201
|
+
platform
|
|
208
202
|
```
|
|
209
203
|
|
|
210
204
|
***
|
package/locales/en.json
CHANGED
|
@@ -73,11 +73,8 @@
|
|
|
73
73
|
"datasetNotInCatalog": "Dataset \"{datasetId}\" not found in Federated Catalogue (Agreement: {agreementId})",
|
|
74
74
|
"catalogLookupFailed": "Failed to lookup dataset in Federated Catalogue: {datasetId} (Agreement: {agreementId})",
|
|
75
75
|
"agreementNotMatchingOffer": "Agreement \"{agreementId}\" does not match any Catalog Offer for dataset {datasetId}. Available Offers: {availableOffers}",
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"agreementAssignerMismatch": "Agreement assigner does not match current caller identity. Agreement: {agreementId}, consumerPid: {consumerPid}, expected: {expectedComposite}, actual: {actualAssigner}",
|
|
79
|
-
"agreementAssignerMismatchProvider": "Agreement assigner does not match current caller identity. Agreement: {agreementId}, providerPid: {providerPid}, expected: {expectedComposite}, actual: {actualAssigner}",
|
|
80
|
-
"invalidCompositeIdentifier": "Composite tenant identifier is not in a recognised shape (expected `nodeDid` or `nodeDid:tenantIdHash`, where `nodeDid` starts with `did:`). Got: \"{composite}\"",
|
|
76
|
+
"agreementAssignerMismatch": "Agreement assigner does not match current caller identity. Agreement: {agreementId}, consumerPid: {consumerPid}, expected: {organizationIdentity}, actual: {actualAssigner}",
|
|
77
|
+
"agreementAssignerMismatchProvider": "Agreement assigner does not match current caller identity. Agreement: {agreementId}, providerPid: {providerPid}, expected: {organizationIdentity}, actual: {actualAssigner}",
|
|
81
78
|
"agreementAssigneeMismatch": "Agreement assignee does not match expected consumer identity. Agreement: {agreementId}, providerPid: {providerPid}, expected: {expectedConsumerIdentity}, actual: {actualAssignee}",
|
|
82
79
|
"negotiationInitiationFailed": "Failed to initiate contract negotiation",
|
|
83
80
|
"datasetNotFoundInCatalog": "Dataset/Offer \"{offerId}\" not found in Federated Catalogue. Cannot initiate negotiation for non-existent offer.",
|
|
@@ -102,11 +99,10 @@
|
|
|
102
99
|
"dataPlaneNotRegistered": "Push-mode transfer requires the data plane component to be registered (factory key: \"dataspace-data-plane\"). This deployment was configured without a data plane — register one to enable push, or use pull-mode transfers only.",
|
|
103
100
|
"datasetPublishFailed": "Failed to publish dataset \"{datasetId}\" for app \"{appId}\" (tenant: \"{tenantId}\")",
|
|
104
101
|
"datasetRemoveFailed": "Failed to remove dataset \"{datasetId}\" from the Federated Catalogue (tenant: \"{tenantId}\")",
|
|
105
|
-
"datasetNodeContextRequired": "A node context is required to register a dataset.",
|
|
106
102
|
"datasetAlreadyExists": "A dataset with id \"{existingId}\" already exists.",
|
|
107
103
|
"datasetNotFound": "Dataset not found",
|
|
108
|
-
"
|
|
109
|
-
"
|
|
104
|
+
"datasetWrongOrganization": "The calling organization does not own this dataset.",
|
|
105
|
+
"transferWrongOrganization": "The calling organization does not own this transfer.",
|
|
110
106
|
"invalidDatasetId": "Dataset ID \"{id}\" is not a valid URN or URL"
|
|
111
107
|
},
|
|
112
108
|
"dataspaceControlPlanePolicyRequester": {}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twin.org/dataspace-control-plane-service",
|
|
3
|
-
"version": "0.0.3-next.
|
|
3
|
+
"version": "0.0.3-next.44",
|
|
4
4
|
"description": "Implements agreement negotiation and transfer process lifecycle management for control plane operations.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"@twin.org/context": "next",
|
|
20
20
|
"@twin.org/core": "next",
|
|
21
21
|
"@twin.org/crypto": "next",
|
|
22
|
-
"@twin.org/dataspace-models": "0.0.3-next.
|
|
22
|
+
"@twin.org/dataspace-models": "0.0.3-next.44",
|
|
23
23
|
"@twin.org/entity": "next",
|
|
24
24
|
"@twin.org/entity-storage-models": "next",
|
|
25
25
|
"@twin.org/federated-catalogue-models": "next",
|