@twin.org/dataspace-control-plane-service 0.0.3-next.18 → 0.0.3-next.20
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/README.md +4 -100
- package/dist/es/dataspaceControlPlaneRoutes.js +274 -21
- package/dist/es/dataspaceControlPlaneRoutes.js.map +1 -1
- package/dist/es/dataspaceControlPlaneService.js +44 -25
- package/dist/es/dataspaceControlPlaneService.js.map +1 -1
- package/docs/changelog.md +29 -1
- package/docs/examples.md +144 -1
- package/docs/reference/classes/DataspaceControlPlanePolicyRequester.md +9 -9
- package/docs/reference/classes/DataspaceControlPlaneService.md +17 -17
- package/docs/reference/interfaces/IDataspaceControlPlaneServiceConfig.md +2 -2
- package/docs/reference/interfaces/IDataspaceControlPlaneServiceConstructorOptions.md +11 -71
- package/docs/reference/interfaces/INegotiationState.md +5 -5
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContextIdKeys, ContextIdStore } from "@twin.org/context";
|
|
2
|
-
import { ArrayHelper, BaseError, ComponentFactory, Converter, GeneralError, Guards, Is, NotFoundError, RandomHelper, StringHelper, UnauthorizedError } from "@twin.org/core";
|
|
2
|
+
import { ArrayHelper, BaseError, ComponentFactory, Converter, GeneralError, Guards, Is, NotFoundError, RandomHelper, StringHelper, UnauthorizedError, ValidationError } from "@twin.org/core";
|
|
3
3
|
import { JsonLdHelper } from "@twin.org/data-json-ld";
|
|
4
4
|
import { DataspaceAppFactory, TransferProcessRole } from "@twin.org/dataspace-models";
|
|
5
5
|
import { EngineCoreFactory } from "@twin.org/engine-models";
|
|
@@ -334,9 +334,8 @@ export class DataspaceControlPlaneService {
|
|
|
334
334
|
*/
|
|
335
335
|
async requestTransfer(request, trustPayload) {
|
|
336
336
|
const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "requestTransfer");
|
|
337
|
-
const validationFailures =
|
|
338
|
-
|
|
339
|
-
if (!isConformant) {
|
|
337
|
+
const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(request));
|
|
338
|
+
if (validationFailures.length > 0) {
|
|
340
339
|
await this._loggingComponent?.log({
|
|
341
340
|
level: "error",
|
|
342
341
|
source: DataspaceControlPlaneService.CLASS_NAME,
|
|
@@ -344,9 +343,7 @@ export class DataspaceControlPlaneService {
|
|
|
344
343
|
message: "invalidTransferRequest",
|
|
345
344
|
data: { validationFailures }
|
|
346
345
|
});
|
|
347
|
-
|
|
348
|
-
validationFailures
|
|
349
|
-
});
|
|
346
|
+
return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "request", validationFailures), request);
|
|
350
347
|
}
|
|
351
348
|
const providerPid = `urn:uuid:${RandomHelper.generateUuidV7()}`;
|
|
352
349
|
let datasetId;
|
|
@@ -446,12 +443,16 @@ export class DataspaceControlPlaneService {
|
|
|
446
443
|
*/
|
|
447
444
|
async startTransfer(message, publicOrigin, trustPayload) {
|
|
448
445
|
const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "startTransfer");
|
|
449
|
-
const validationFailures =
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
446
|
+
const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
|
|
447
|
+
if (validationFailures.length > 0) {
|
|
448
|
+
await this._loggingComponent?.log({
|
|
449
|
+
level: "error",
|
|
450
|
+
source: DataspaceControlPlaneService.CLASS_NAME,
|
|
451
|
+
ts: Date.now(),
|
|
452
|
+
message: "invalidTransferStartMessage",
|
|
453
|
+
data: { validationFailures }
|
|
454
|
+
});
|
|
455
|
+
return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
|
|
455
456
|
}
|
|
456
457
|
try {
|
|
457
458
|
const { entity, role } = await this.lookupTransferByMessage(message);
|
|
@@ -604,10 +605,16 @@ export class DataspaceControlPlaneService {
|
|
|
604
605
|
*/
|
|
605
606
|
async completeTransfer(message, trustPayload) {
|
|
606
607
|
const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "completeTransfer");
|
|
607
|
-
const validationFailures =
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
608
|
+
const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
|
|
609
|
+
if (validationFailures.length > 0) {
|
|
610
|
+
await this._loggingComponent?.log({
|
|
611
|
+
level: "error",
|
|
612
|
+
source: DataspaceControlPlaneService.CLASS_NAME,
|
|
613
|
+
ts: Date.now(),
|
|
614
|
+
message: "invalidTransferCompletionMessage",
|
|
615
|
+
data: { validationFailures }
|
|
616
|
+
});
|
|
617
|
+
return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
|
|
611
618
|
}
|
|
612
619
|
try {
|
|
613
620
|
const { entity, role } = await this.lookupTransferByMessage(message);
|
|
@@ -653,10 +660,16 @@ export class DataspaceControlPlaneService {
|
|
|
653
660
|
*/
|
|
654
661
|
async suspendTransfer(message, trustPayload) {
|
|
655
662
|
const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "suspendTransfer");
|
|
656
|
-
const validationFailures =
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
663
|
+
const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
|
|
664
|
+
if (validationFailures.length > 0) {
|
|
665
|
+
await this._loggingComponent?.log({
|
|
666
|
+
level: "error",
|
|
667
|
+
source: DataspaceControlPlaneService.CLASS_NAME,
|
|
668
|
+
ts: Date.now(),
|
|
669
|
+
message: "invalidTransferSuspensionMessage",
|
|
670
|
+
data: { validationFailures }
|
|
671
|
+
});
|
|
672
|
+
return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
|
|
660
673
|
}
|
|
661
674
|
try {
|
|
662
675
|
const { entity, role } = await this.lookupTransferByMessage(message);
|
|
@@ -703,10 +716,16 @@ export class DataspaceControlPlaneService {
|
|
|
703
716
|
*/
|
|
704
717
|
async terminateTransfer(message, trustPayload) {
|
|
705
718
|
const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "terminateTransfer");
|
|
706
|
-
const validationFailures =
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
719
|
+
const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
|
|
720
|
+
if (validationFailures.length > 0) {
|
|
721
|
+
await this._loggingComponent?.log({
|
|
722
|
+
level: "error",
|
|
723
|
+
source: DataspaceControlPlaneService.CLASS_NAME,
|
|
724
|
+
ts: Date.now(),
|
|
725
|
+
message: "invalidTransferTerminationMessage",
|
|
726
|
+
data: { validationFailures }
|
|
727
|
+
});
|
|
728
|
+
return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
|
|
710
729
|
}
|
|
711
730
|
try {
|
|
712
731
|
const { entity, role } = await this.lookupTransferByMessage(message);
|