From dba83fa8ce99f1aebde224e7673a4b6fd05c7609 Mon Sep 17 00:00:00 2001 From: Enrico Risa Date: Mon, 20 Apr 2026 13:08:32 +0200 Subject: [PATCH] chore: remove custom api for control plane --- README.md | 41 +-- docs/images/bruno_certificate_consumer.png | Bin 117578 -> 206607 bytes extensions/api/mgmt/build.gradle.kts | 34 --- .../eclipse/edc/virtualized/ApiExtension.java | 58 ---- .../virtualized/ControlApiUrlExtension.java | 50 --- .../virtualized/api/data/CatalogRequest.java | 47 --- .../api/data/DataApiController.java | 155 ---------- .../edc/virtualized/api/data/DataRequest.java | 24 -- .../eclipse/edc/virtualized/service/Data.java | 54 ---- .../service/DataRequestService.java | 212 ------------- ...rg.eclipse.edc.spi.system.ServiceExtension | 16 - gradle/libs.versions.toml | 9 +- k8s/apps/siglet-config.yaml | 7 +- k8s/apps/siglet.yaml | 16 +- k8s/base/vault.yaml | 5 + launchers/controlplane/build.gradle.kts | 7 - .../Http Certs/Consumer/Fetch Token.bru | 35 +++ .../Http Certs/Consumer/Get Catalog.bru | 11 +- .../Http Certs/Consumer/Get certificate.bru | 2 +- .../Http Certs/Consumer/List certificates.bru | 2 +- .../Consumer/Poll Contract Negotiation.bru | 41 +++ .../Consumer/Setup Contract Negotiation.bru | 70 +++++ .../Http Certs/Consumer/Setup Transfer.bru | 24 +- .../environments/KinD Local.bru | 1 + settings.gradle.kts | 1 - tests/end2end/build.gradle.kts | 2 + .../org/eclipse/edc/jad/tests/Constants.java | 2 + .../jad/tests/DataTransferEndToEndTest.java | 284 +++++++----------- .../edc/jad/tests/DynamicTokenProvider.java | 48 +++ .../edc/jad/tests/model/CatalogResponse.java | 31 -- .../eclipse/edc/jad/tests/model/DataSet.java | 27 -- .../eclipse/edc/jad/tests/model/Offer.java | 22 -- .../src/test/resources/asset-cert.json | 9 - .../src/test/resources/asset-restricted.json | 9 - tests/end2end/src/test/resources/asset.json | 9 - .../src/test/resources/contract-def.json | 16 - .../manufacturer_cel_expression.json | 14 - .../resources/membership_cel_expression.json | 14 - .../resources/policy-def-manufacturer.json | 21 -- .../src/test/resources/policy-def.json | 21 -- 40 files changed, 359 insertions(+), 1092 deletions(-) delete mode 100644 extensions/api/mgmt/build.gradle.kts delete mode 100644 extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ApiExtension.java delete mode 100644 extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ControlApiUrlExtension.java delete mode 100644 extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/CatalogRequest.java delete mode 100644 extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataApiController.java delete mode 100644 extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataRequest.java delete mode 100644 extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/Data.java delete mode 100644 extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/DataRequestService.java delete mode 100644 extensions/api/mgmt/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension create mode 100644 requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Fetch Token.bru create mode 100644 requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Poll Contract Negotiation.bru create mode 100644 requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Contract Negotiation.bru create mode 100644 tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DynamicTokenProvider.java delete mode 100644 tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/CatalogResponse.java delete mode 100644 tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/DataSet.java delete mode 100644 tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/Offer.java delete mode 100644 tests/end2end/src/test/resources/asset-cert.json delete mode 100644 tests/end2end/src/test/resources/asset-restricted.json delete mode 100644 tests/end2end/src/test/resources/asset.json delete mode 100644 tests/end2end/src/test/resources/contract-def.json delete mode 100644 tests/end2end/src/test/resources/manufacturer_cel_expression.json delete mode 100644 tests/end2end/src/test/resources/membership_cel_expression.json delete mode 100644 tests/end2end/src/test/resources/policy-def-manufacturer.json delete mode 100644 tests/end2end/src/test/resources/policy-def.json diff --git a/README.md b/README.md index 73daa76..4ecf538 100644 --- a/README.md +++ b/README.md @@ -338,44 +338,10 @@ to select the ## Transfer Data Now that both participants are set up, we can transfer data from the Provider to the Consumer. -There are two use case supported here: +The only use case supported here: -- Http proxy - Certificates sharing via HTTP -### Http proxy - -EDC-V offers a one-stop-shop API to transfer data. This is achieved by two endpoints, one that fetches the catalog ( -`Data Transfer/Http Todo/Get Catalog`) and another endpoint (`Data Transfer/Http Todo/Get Data`) that initiates the -contract negotiation, -waits for its successful completion, then starts the data transfer. - -Perform the entire sequence by running both requests in the `Data Transfer/Http Todo` folder in Bruno: - -![img.png](docs/images/bruno_transfer.png) - -This will request the catalog, which contains exactly one dataset, then initiates contract negotiation and data -transfer for that asset. If everything went well, the output should contain demo output -from , something like: - -```json lines -[ - { - "userId": 1, - "id": 1, - "title": "delectus aut autem", - "completed": false - }, - { - "userId": 1, - "id": 2, - "title": "quis ut nam facilis et officia qui", - "completed": false - } - //... -] -``` - ### Certificates sharing via HTTP The second use case demonstrates how certificates can be shared between participants using EDC-V's HTTP data @@ -396,7 +362,10 @@ Then perform the entire sequence by running both requests in the `Data Transfer/ which: - Fetches the catalog from the Provider storing the offer id for the certificate asset -- Setup the transfer request using the offer id (contract negotiation + transfer initiation) storing the access token +- Setup the Contract negotiation using the offer id +- Poll the Contract Negotiation for the agreement id if the negotiation is successful +- Setup the transfer request for the agreement id of the previous step +- Fetch the access token for the transfer request (Siglet) - Query the provider for listing the available certificates storing the first certificate id - Finally, download the certificate using the certificate id diff --git a/docs/images/bruno_certificate_consumer.png b/docs/images/bruno_certificate_consumer.png index e660e2a3ee9d5a768533550cf85681b166b59ddc..feef4c9626ee48e9e992ef3740853c6bf0b63d39 100644 GIT binary patch literal 206607 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 z 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%0A~vOJ~P4ELbdIq9gVIz9cMX>DB|<+>Dk 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 F{{gVt_^ki{ diff --git a/extensions/api/mgmt/build.gradle.kts b/extensions/api/mgmt/build.gradle.kts deleted file mode 100644 index 6492733..0000000 --- a/extensions/api/mgmt/build.gradle.kts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -plugins { - `java-library` - id("io.swagger.core.v3.swagger-gradle-plugin") - -} - -dependencies { - // todo: replace with SPI - implementation(libs.edc.vault.hashicorp) - implementation(libs.edc.spi.participantcontext) - implementation(libs.edc.core.jersey) - implementation(libs.edc.core.jetty) - implementation(libs.edc.spi.web) - implementation(libs.edc.spi.controlplane) - implementation(libs.edc.spi.participantcontext.config) - implementation(libs.edc.spi.transaction) - implementation(libs.edc.spi.edrstore) - - implementation(libs.edc.did.core) -} diff --git a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ApiExtension.java b/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ApiExtension.java deleted file mode 100644 index c36f0dc..0000000 --- a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ApiExtension.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.virtualized; - -import org.eclipse.edc.connector.controlplane.services.spi.catalog.CatalogService; -import org.eclipse.edc.connector.controlplane.services.spi.contractnegotiation.ContractNegotiationService; -import org.eclipse.edc.connector.controlplane.services.spi.transferprocess.TransferProcessService; -import org.eclipse.edc.edr.spi.store.EndpointDataReferenceStore; -import org.eclipse.edc.iam.did.spi.resolution.DidResolverRegistry; -import org.eclipse.edc.participantcontext.spi.service.ParticipantContextService; -import org.eclipse.edc.runtime.metamodel.annotation.Inject; -import org.eclipse.edc.spi.system.ServiceExtension; -import org.eclipse.edc.spi.system.ServiceExtensionContext; -import org.eclipse.edc.virtualized.api.data.DataApiController; -import org.eclipse.edc.virtualized.service.DataRequestService; -import org.eclipse.edc.web.spi.WebService; -import org.eclipse.edc.web.spi.configuration.ApiContext; - - -public class ApiExtension implements ServiceExtension { - @Inject - private WebService webService; - - @Inject - private CatalogService catalogService; - @Inject - private DidResolverRegistry didResolverRegistry; - @Inject - private ParticipantContextService participantContextService; - @Inject - private ContractNegotiationService contractNegotiationService; - @Inject - private TransferProcessService transferProcessService; - @Inject - private EndpointDataReferenceStore edrStore; - - @Override - public void initialize(ServiceExtensionContext context) { - var dataRequestService = new DataRequestService(contractNegotiationService, transferProcessService, didResolverRegistry, edrStore); - webService.registerResource(ApiContext.MANAGEMENT, new DataApiController(catalogService, didResolverRegistry, participantContextService, dataRequestService)); - } - - -} - - diff --git a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ControlApiUrlExtension.java b/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ControlApiUrlExtension.java deleted file mode 100644 index e63c72f..0000000 --- a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/ControlApiUrlExtension.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2026 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.virtualized; - -import org.eclipse.edc.runtime.metamodel.annotation.Configuration; -import org.eclipse.edc.runtime.metamodel.annotation.Extension; -import org.eclipse.edc.runtime.metamodel.annotation.Provider; -import org.eclipse.edc.runtime.metamodel.annotation.Setting; -import org.eclipse.edc.runtime.metamodel.annotation.Settings; -import org.eclipse.edc.spi.system.ServiceExtension; -import org.eclipse.edc.web.spi.configuration.ApiContext; -import org.eclipse.edc.web.spi.configuration.context.ControlApiUrl; - -import java.net.URI; - -import static org.eclipse.edc.virtualized.ControlApiUrlExtension.NAME; - -@Extension(value = NAME) -public class ControlApiUrlExtension implements ServiceExtension { - public static final String NAME = "EDC-V Control API URL Extension"; - @Configuration - private ControlApiConfiguration controlApiConfiguration; - - @Provider - public ControlApiUrl controlApiUrl() { - return () -> URI.create("http://controlplane.edc-v.svc.cluster.local:%s%s".formatted(controlApiConfiguration.port(), controlApiConfiguration.path())); - } - - @Settings - record ControlApiConfiguration( - @Setting(key = "web.http." + ApiContext.CONTROL + ".port", description = "Port for " + ApiContext.CONTROL + " api context") - int port, - @Setting(key = "web.http." + ApiContext.CONTROL + ".path", description = "Path for " + ApiContext.CONTROL + " api context") - String path - ) { - - } -} diff --git a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/CatalogRequest.java b/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/CatalogRequest.java deleted file mode 100644 index e5da015..0000000 --- a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/CatalogRequest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.virtualized.api.data; - -import org.eclipse.edc.spi.query.QuerySpec; - -public final class CatalogRequest { - private String counterPartyDid; - private String protocol = "dataspace-protocol-http:2025-1"; - private QuerySpec query = QuerySpec.max(); - - public String getCounterPartyDid() { - return counterPartyDid; - } - - public void setCounterPartyDid(String counterPartyDid) { - this.counterPartyDid = counterPartyDid; - } - - public String getProtocol() { - return protocol; - } - - public void setProtocol(String protocol) { - this.protocol = protocol; - } - - public QuerySpec getQuery() { - return query; - } - - public void setQuery(QuerySpec query) { - this.query = query; - } -} diff --git a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataApiController.java b/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataApiController.java deleted file mode 100644 index a91c971..0000000 --- a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataApiController.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.virtualized.api.data; - -import jakarta.ws.rs.Consumes; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.PathParam; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.container.AsyncResponse; -import jakarta.ws.rs.container.Suspended; -import jakarta.ws.rs.core.Response; -import org.eclipse.edc.connector.controlplane.services.spi.catalog.CatalogService; -import org.eclipse.edc.iam.did.spi.resolution.DidResolverRegistry; -import org.eclipse.edc.participantcontext.spi.service.ParticipantContextService; -import org.eclipse.edc.spi.EdcException; -import org.eclipse.edc.spi.response.StatusResult; -import org.eclipse.edc.virtualized.service.DataRequestService; -import org.eclipse.edc.web.spi.exception.BadGatewayException; - -import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON; - -/** - * This controller is a quick workaround so that we are able to get a catalog from a counter-party, and to trigger the all-in-one data transfer. - * see {@link DataRequestService} for more details. - */ -@Consumes(APPLICATION_JSON) -@Produces(APPLICATION_JSON) -@Path("/v1alpha/participants/{participantContextId}/") -public class DataApiController { - - private final CatalogService service; - private final DidResolverRegistry didResolverRegistry; - private final ParticipantContextService participantContextService; - private final DataRequestService dataRequestService; - - public DataApiController(CatalogService service, DidResolverRegistry didResolverRegistry, ParticipantContextService participantContextService, DataRequestService dataRequestService) { - this.service = service; - this.didResolverRegistry = didResolverRegistry; - this.participantContextService = participantContextService; - this.dataRequestService = dataRequestService; - } - - - @POST - @Path("/catalog") - public void getCatalog(@PathParam("participantContextId") String participantContextId, - CatalogRequest catalogRequest, - @Suspended AsyncResponse response) { - - var participantContext = participantContextService.getParticipantContext(participantContextId); - if (participantContext.failed()) { - response.resume(Response.status(404).entity("Participant context '%s' not found".formatted(participantContextId)).build()); - } - - var counterPartyDid = catalogRequest.getCounterPartyDid(); - var did = didResolverRegistry.resolve(counterPartyDid); - if (did.failed()) { - response.resume(Response.status(400).entity("Could not resolve DID '%s': %s".formatted(counterPartyDid, did.getFailureDetail())).build()); - } - - var doc = did.getContent(); - - var protocolEndpoint = doc.getService().stream().filter(s -> s.getType().equals("ProtocolEndpoint")).findFirst(); - if (protocolEndpoint.isEmpty()) { - response.resume(Response.status(400).entity("No ProtocolEndpoint service found in DID Document for '%s'".formatted(counterPartyDid)).build()); - return; - } - var counterPartyAddress = protocolEndpoint.get().getServiceEndpoint(); - var catalog = service.requestCatalog(participantContext.getContent(), counterPartyDid, counterPartyAddress, catalogRequest.getProtocol(), catalogRequest.getQuery()); - - catalog.whenComplete((result, throwable) -> { - try { - response.resume(toResponse(result, throwable)); - } catch (Throwable mapped) { - response.resume(mapped); - } - }); - - } - - @POST - @Path("/transfer") - public void setupTransfer(@PathParam("participantContextId") String participantContextId, DataRequest dataRequest, @Suspended AsyncResponse response) { - var participantContext = participantContextService.getParticipantContext(participantContextId); - if (participantContext.failed()) { - response.resume(Response.status(404).entity("Participant context '%s' not found".formatted(participantContextId)).build()); - } - dataRequestService.setupTransfer(participantContext.getContent(), dataRequest) - .whenComplete((result, throwable) -> { - try { - if (throwable != null) { - response.resume(Response.status(500).entity(throwable.getMessage()).build()); - - } else if (result.succeeded()) { - response.resume(result.getContent()); - } else { - response.resume(Response.status(500).entity(result.getFailureDetail()).build()); - } - } catch (Throwable mapped) { - response.resume(Response.status(500).entity(mapped.getMessage()).build()); - } - }); - } - - @GET - @Path("/edr/{transferProcessId}") - public void getEdr(@PathParam("participantContextId") String participantContextId, @PathParam("transferProcessId") String transferProcessId, @Suspended AsyncResponse response) { - var participantContext = participantContextService.getParticipantContext(participantContextId); - if (participantContext.failed()) { - response.resume(Response.status(404).entity("Participant context '%s' not found".formatted(participantContextId)).build()); - } - dataRequestService.getEdr(transferProcessId) - .whenComplete((result, throwable) -> { - try { - if (throwable != null) { - response.resume(throwable); - } - response.resume(result); - } catch (Throwable mapped) { - response.resume(mapped); - } - }); - } - - private T toResponse(StatusResult result, Throwable throwable) throws Throwable { - if (throwable == null) { - if (result.succeeded()) { - return result.getContent(); - } else { - throw new BadGatewayException(result.getFailureDetail()); - } - } else { - if (throwable instanceof EdcException || throwable.getCause() instanceof EdcException) { - throw new BadGatewayException(throwable.getMessage()); - } else { - throw throwable; - } - } - } - -} diff --git a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataRequest.java b/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataRequest.java deleted file mode 100644 index 5e3b423..0000000 --- a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/api/data/DataRequest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.virtualized.api.data; - -import org.jetbrains.annotations.Nullable; - -public record DataRequest( - String providerId, - String policyId, - @Nullable String policyType -) { -} diff --git a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/Data.java b/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/Data.java deleted file mode 100644 index 190ba24..0000000 --- a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/Data.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.virtualized.service; - -import org.eclipse.edc.policy.model.Action; -import org.eclipse.edc.policy.model.AtomicConstraint; -import org.eclipse.edc.policy.model.LiteralExpression; -import org.eclipse.edc.policy.model.Operator; -import org.eclipse.edc.policy.model.Permission; -import org.eclipse.edc.policy.model.Policy; - -import java.util.Map; - -public class Data { - public static final Policy MEMBERSHIP_POLICY = Policy.Builder.newInstance() - .permission(Permission.Builder.newInstance() - .action(Action.Builder.newInstance() - .type("http://www.w3.org/ns/odrl/2/use") - .build()) - .constraint(AtomicConstraint.Builder.newInstance() - .leftExpression(new LiteralExpression("MembershipCredential")) - .operator(Operator.EQ) - .rightExpression(new LiteralExpression("active")) - .build()) - .build()) - .build(); - - public static final Policy MANUFACTURER_POLICY = Policy.Builder.newInstance() - .permission(Permission.Builder.newInstance() - .action(Action.Builder.newInstance() - .type("http://www.w3.org/ns/odrl/2/use") - .build()) - .constraint(AtomicConstraint.Builder.newInstance() - .leftExpression(new LiteralExpression("ManufacturerCredential")) - .operator(Operator.EQ) - .rightExpression(new LiteralExpression("active")) - .build()) - .build()) - .build(); - - public static final Map POLICY_MAP = Map.of("membership", MEMBERSHIP_POLICY, "manufacturer", MANUFACTURER_POLICY); -} diff --git a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/DataRequestService.java b/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/DataRequestService.java deleted file mode 100644 index 8948925..0000000 --- a/extensions/api/mgmt/src/main/java/org/eclipse/edc/virtualized/service/DataRequestService.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.virtualized.service; - -import org.eclipse.edc.connector.controlplane.contract.spi.ContractOfferId; -import org.eclipse.edc.connector.controlplane.contract.spi.types.agreement.ContractAgreement; -import org.eclipse.edc.connector.controlplane.contract.spi.types.negotiation.ContractNegotiationStates; -import org.eclipse.edc.connector.controlplane.contract.spi.types.negotiation.ContractRequest; -import org.eclipse.edc.connector.controlplane.contract.spi.types.offer.ContractOffer; -import org.eclipse.edc.connector.controlplane.services.spi.contractnegotiation.ContractNegotiationService; -import org.eclipse.edc.connector.controlplane.services.spi.transferprocess.TransferProcessService; -import org.eclipse.edc.connector.controlplane.transfer.spi.types.TransferProcess; -import org.eclipse.edc.connector.controlplane.transfer.spi.types.TransferProcessStates; -import org.eclipse.edc.connector.controlplane.transfer.spi.types.TransferRequest; -import org.eclipse.edc.edr.spi.store.EndpointDataReferenceStore; -import org.eclipse.edc.iam.did.spi.document.Service; -import org.eclipse.edc.iam.did.spi.resolution.DidResolverRegistry; -import org.eclipse.edc.participantcontext.spi.types.ParticipantContext; -import org.eclipse.edc.policy.model.PolicyType; -import org.eclipse.edc.spi.EdcException; -import org.eclipse.edc.spi.result.Result; -import org.eclipse.edc.spi.result.ServiceResult; -import org.eclipse.edc.spi.types.domain.DataAddress; -import org.eclipse.edc.virtualized.api.data.DataRequest; - -import java.net.URI; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.util.Map; -import java.util.concurrent.CompletableFuture; - -import static java.net.http.HttpClient.newHttpClient; -import static java.util.Optional.ofNullable; -import static org.eclipse.edc.virtualized.service.Data.MEMBERSHIP_POLICY; -import static org.eclipse.edc.virtualized.service.Data.POLICY_MAP; - -/** - * this is a wrapper service that initiates the contract negotiation and the transfer process, waits for its completion, and then downloads the data. - * I implemented this because there is no multi-tenant management API yet that. - */ -public class DataRequestService { - - private final ContractNegotiationService contractNegotiationService; - private final TransferProcessService transferProcessService; - private final DidResolverRegistry didResolverRegistry; - private final EndpointDataReferenceStore edrStore; - - public DataRequestService(ContractNegotiationService contractNegotiationService, TransferProcessService transferProcessService, DidResolverRegistry didResolverRegistry, EndpointDataReferenceStore edrStore) { - this.contractNegotiationService = contractNegotiationService; - this.transferProcessService = transferProcessService; - this.didResolverRegistry = didResolverRegistry; - this.edrStore = edrStore; - } - - public CompletableFuture>> setupTransfer(ParticipantContext participantContext, DataRequest dataRequest) { - return initiateContractNegotiation(participantContext, dataRequest) - .thenCompose(this::waitForContractNegotiation) - .thenCompose(contractNegotiation -> startTransferProcess(participantContext, contractNegotiation)) - .thenCompose(this::waitForTransferProcess) - .thenCompose(transferProcess -> getEdr(transferProcess.getId())) - .thenCompose(edr -> CompletableFuture.completedFuture(edr.getProperties())) - .thenApply(ServiceResult::success); - } - - public CompletableFuture getEdr(String transferProcessId) { - var edr = edrStore.resolveByTransferProcess(transferProcessId); - if (edr.failed()) { - return CompletableFuture.failedFuture(new EdcException("Could not resolve EDR for transfer process: %s".formatted(edr.getFailureDetail()))); - } - return CompletableFuture.completedFuture(edr.getContent()); - } - - private CompletableFuture initiateContractNegotiation(ParticipantContext participantContext, DataRequest dataRequest) { - var addressForDid = getAddressForDid(dataRequest.providerId()); - if (addressForDid.failed()) { - return CompletableFuture.failedFuture(new RuntimeException("Could not resolve address for did: %s".formatted(addressForDid.getFailureDetail()))); - } - - var policy = ofNullable(dataRequest.policyType()).map(POLICY_MAP::get).orElse(MEMBERSHIP_POLICY); - - var offerId = ContractOfferId.parseId(dataRequest.policyId()); - var rq = ContractRequest.Builder.newInstance() - .protocol("dataspace-protocol-http:2025-1") - .counterPartyAddress(addressForDid.getContent()) - .contractOffer(ContractOffer.Builder.newInstance() - .id(dataRequest.policyId()) - .assetId(offerId.getContent().assetIdPart()) - .policy(policy.toBuilder() - .target(offerId.getContent().assetIdPart()) - .assigner(dataRequest.providerId()) - .type(PolicyType.OFFER) - .build()) - .build()) - .build(); - var result = contractNegotiationService.initiateNegotiation(participantContext, rq); - if (result.failed()) { - return CompletableFuture.failedFuture(new EdcException("Could not initiate contract negotiation: %s ".formatted(result.getFailureDetail()))); - } - return CompletableFuture.completedFuture(result.getContent().getId()); - - } - - private Result getAddressForDid(String counterPartyDid) { - var did = didResolverRegistry.resolve(counterPartyDid); - if (did.failed()) { - return did.mapFailure(); - } - - var doc = did.getContent(); - - var protocolEndpoint = doc.getService().stream().filter(s -> s.getType().equals("ProtocolEndpoint")).findFirst(); - return Result.from(protocolEndpoint).map(Service::getServiceEndpoint); - } - - private CompletableFuture waitForContractNegotiation(String contractNegotiationId) { - - try { - ContractNegotiationStates state; - do { - state = ContractNegotiationStates.valueOf(contractNegotiationService.getState(contractNegotiationId)); - Thread.sleep(1000); - } while (state != ContractNegotiationStates.FINALIZED && state != ContractNegotiationStates.TERMINATED); - - if (state == ContractNegotiationStates.TERMINATED) { - return CompletableFuture.failedFuture(new EdcException("Contract negotiation terminated")); - } - - return CompletableFuture.completedFuture(contractNegotiationService.getForNegotiation(contractNegotiationId)); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - return CompletableFuture.failedFuture(e); - } - } - - private CompletableFuture startTransferProcess(ParticipantContext participantContext, ContractAgreement agreement) { - - var request = TransferRequest.Builder.newInstance() - .contractId(agreement.getId()) - .counterPartyAddress(getAddressForDid(agreement.getProviderId()).getContent()) - .protocol("dataspace-protocol-http:2025-1") - .transferType("HttpData-PULL") - .dataDestination(DataAddress.Builder.newInstance().type("httpData").build()) - .build(); - - var result = transferProcessService.initiateTransfer(participantContext, request); - if (result.succeeded()) { - return CompletableFuture.completedFuture(result.getContent()); - } else { - return CompletableFuture.failedFuture(new EdcException("Could not start transfer process: %s".formatted(result.getFailureDetail()))); - } - } - - private CompletableFuture waitForTransferProcess(TransferProcess transferProcess) { - try { - TransferProcessStates state; - do { - state = TransferProcessStates.valueOf(transferProcessService.getState(transferProcess.getId())); - Thread.sleep(1000); - } while (state != TransferProcessStates.STARTED && state != TransferProcessStates.TERMINATED); - - var tp = transferProcessService.findById(transferProcess.getId()); - if (state == TransferProcessStates.TERMINATED) { - return CompletableFuture.failedFuture(new EdcException("Transfer process terminated: %s".formatted(ofNullable(tp).map(TransferProcess::getErrorDetail).orElse("provider terminated")))); - } - return CompletableFuture.completedFuture(tp); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - return CompletableFuture.failedFuture(e); - } - } - - - private CompletableFuture downloadData(DataAddress edr) { - - // make HTTP request - if (edr.getType().equals("https://w3id.org/idsa/v4.1/HTTP")) { - - var endpoint = edr.getStringProperty("https://w3id.org/edc/v0.0.1/ns/endpoint"); - var token = edr.getStringProperty("https://w3id.org/edc/v0.0.1/ns/authorization"); - var authType = edr.getStringProperty("https://w3id.org/edc/v0.0.1/ns/authType"); - - if (endpoint == null) { - return CompletableFuture.failedFuture(new EdcException("Endpoint not found in EDR")); - } - - var request = HttpRequest.newBuilder(URI.create(endpoint)) - .GET() - .header("Authorization", token) - .build(); - return newHttpClient().sendAsync(request, HttpResponse.BodyHandlers.ofString()) - .thenCompose(response -> { - if (response.statusCode() >= 200 && response.statusCode() < 300) { - return CompletableFuture.completedFuture(response.body()); - } - return CompletableFuture.failedFuture(new EdcException("Dataplane request failed: HTTP Status code: %s, message: %s".formatted(response.statusCode(), response.body()))); - }); - } - return CompletableFuture.failedFuture(new EdcException("EDR type not supported: %s".formatted(edr.getType()))); - } -} diff --git a/extensions/api/mgmt/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension b/extensions/api/mgmt/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension deleted file mode 100644 index 436e319..0000000 --- a/extensions/api/mgmt/src/main/resources/META-INF/services/org.eclipse.edc.spi.system.ServiceExtension +++ /dev/null @@ -1,16 +0,0 @@ -# -# Copyright (c) 2025 Metaform Systems, Inc. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# -# Contributors: -# Metaform Systems, Inc. - initial API and implementation -# -# - -org.eclipse.edc.virtualized.ApiExtension -org.eclipse.edc.virtualized.ControlApiUrlExtension \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 142321b..c6cdcb4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,12 +17,10 @@ opentelemetry = "2.26.1" [libraries] # upstream EDC dependencies -edc-did-core = { module = "org.eclipse.edc:identity-did-core", version.ref = "edc" } edc-core-boot = { module = "org.eclipse.edc:boot", version.ref = "edc" } edc-core-runtime = { module = "org.eclipse.edc:runtime-core", version.ref = "edc" } edc-core-token = { module = "org.eclipse.edc:token-core", version.ref = "edc" } edc-core-jersey = { module = "org.eclipse.edc:jersey-core", version.ref = "edc" } -edc-core-jetty = { module = "org.eclipse.edc:jetty-core", version.ref = "edc" } edc-core-api = { module = "org.eclipse.edc:api-core", version.ref = "edc" } edc-core-participantcontext-config = { module = "org.eclipse.edc:participant-context-config-core", version.ref = "edc" } edc-junit = { module = "org.eclipse.edc:junit", version.ref = "edc" } @@ -33,8 +31,6 @@ edc-lib-util = { module = "org.eclipse.edc:util-lib", version.ref = "edc" } edc-lib-sql = { module = "org.eclipse.edc:sql-lib", version.ref = "edc" } edc-lib-token = { module = "org.eclipse.edc:token-lib", version.ref = "edc" } edc-lib-oauth2-authn = { module = "org.eclipse.edc:auth-authentication-oauth2-lib", version.ref = "edc" } -edc-core-edrstore = { module = "org.eclipse.edc:edr-store-core", version.ref = "edc" } -edc-edrstore-receiver = { module = "org.eclipse.edc:edr-store-receiver", version.ref = "edc" } edc-core-sql-bootstrapper = { module = "org.eclipse.edc:sql-bootstrapper", version.ref = "edc" } edc-core-http = { module = "org.eclipse.edc:http", version.ref = "edc" } edc-core-sql = { module = "org.eclipse.edc:sql-core", version.ref = "edc" } @@ -43,16 +39,13 @@ edc-transaction-local = { module = "org.eclipse.edc:transaction-local", version. edc-transaction-pool = { module = "org.eclipse.edc:sql-pool-apache-commons", version.ref = "edc" } edc-api-control-configuration = { module = "org.eclipse.edc:control-api-configuration", version.ref = "edc" } edc-api-observability = { module = "org.eclipse.edc:api-observability", version.ref = "edc" } +edc-fixtures-mgmtapi = { module = "org.eclipse.edc:management-api-test-fixtures", version.ref = "edc" } # EDC spi dependencies -edc-spi-participantcontext = { module = "org.eclipse.edc:connector-participant-context-spi", version.ref = "edc" } -edc-spi-participantcontext-config = { module = "org.eclipse.edc:participant-context-config-spi", version.ref = "edc" } edc-spi-web = { module = "org.eclipse.edc:web-spi", version.ref = "edc" } -edc-spi-controlplane = { module = "org.eclipse.edc:control-plane-spi", version.ref = "edc" } edc-spi-http = { module = "org.eclipse.edc:http-spi", version.ref = "edc" } edc-spi-catalog = { module = "org.eclipse.edc:catalog-spi", version.ref = "edc" } edc-spi-transaction = { module = "org.eclipse.edc:transaction-spi", version.ref = "edc" } -edc-spi-edrstore = { module = "org.eclipse.edc:edr-store-spi", version.ref = "edc" } edc-spi-jwt = { module = "org.eclipse.edc:jwt-spi", version.ref = "edc" } # identityhub SPI modules diff --git a/k8s/apps/siglet-config.yaml b/k8s/apps/siglet-config.yaml index 1e9ad3b..48f05ad 100644 --- a/k8s/apps/siglet-config.yaml +++ b/k8s/apps/siglet-config.yaml @@ -19,11 +19,10 @@ metadata: namespace: edc-v data: siglet.toml: | - storage_backend = "postgres" - postgres_url = "postgresql://siglet:siglet@postgres:5432/sigletdb" - postgres_encryption_password = "mysecretpassword" - postgres_encryption_salt = "6b9768804c86626227e61acd9e06f8ff" token_server_secret = "93d22865c1b0695d3caa1ac5ba648b88942aaeee3b05ba4aff2efc87e2cd1944" + [storage_backend] + type = "postgres-vault" + url = "postgresql://siglet:siglet@postgres:5432/sigletdb" [[transfer_types]] transfer_type = "HttpData-PULL" endpoint_type = "HTTP" diff --git a/k8s/apps/siglet.yaml b/k8s/apps/siglet.yaml index 1c93542..b917a89 100644 --- a/k8s/apps/siglet.yaml +++ b/k8s/apps/siglet.yaml @@ -66,23 +66,23 @@ spec: env: - name: RUST_LOG value: "info,siglet=debug" - - name: SIGLET_SIGLET_API_PORT + - name: SIGLET__SIGLET_API_PORT value: "8080" - - name: SIGLET_SIGNALING_PORT + - name: SIGLET__SIGNALING_PORT value: "8081" - - name: SIGLET_REFRESH_API_PORT + - name: SIGLET__REFRESH_API_PORT value: "8082" - name: SIGLET_CONFIG_FILE value: "/config/siglet.toml" - - name: SIGLET_VAULT_URL + - name: SIGLET__VAULT__URL value: "http://vault:8200" - - name: SIGLET_VAULT_TOKEN_FILE + - name: SIGLET__VAULT__TOKEN_FILE value: "/vault/secrets/.vault-token" - - name: SIGLET_VAULT_SIGNING_KEY_NAME + - name: SIGLET__VAULT__SIGNING_KEY_NAME value: "signing-siglet" - - name: SIGLET_TOKEN_ISSUER + - name: SIGLET__TOKEN__ISSUER value: "siglet-issuer" - - name: SIGLET_TOKEN_REFRESH_ENDPOINT + - name: SIGLET__TOKEN__REFRESH_ENDPOINT value: "http://siglet.edc-v.svc.cluster.local:8082/token/refresh" volumeMounts: - name: siglet-config diff --git a/k8s/base/vault.yaml b/k8s/base/vault.yaml index 11a93fb..2e2f904 100644 --- a/k8s/base/vault.yaml +++ b/k8s/base/vault.yaml @@ -193,6 +193,11 @@ spec: path "sys/health" { capabilities = ["read"] } + + # TODO revisit these permissions, we may want to scope them down further + path "secret/*" { + capabilities = ["create", "read", "update", "delete", "list"] + } # Allow access to Transit engine for JWT signing path "transit/sign/*" { diff --git a/launchers/controlplane/build.gradle.kts b/launchers/controlplane/build.gradle.kts index 49baee0..b403467 100644 --- a/launchers/controlplane/build.gradle.kts +++ b/launchers/controlplane/build.gradle.kts @@ -25,15 +25,8 @@ dependencies { runtimeOnly(libs.edcv.bom.controlplane.nats) runtimeOnly(libs.edcv.bom.controlplane.dcp) runtimeOnly(libs.edc.spi.jwt) - - runtimeOnly(libs.edc.core.edrstore) runtimeOnly(libs.edc.vault.hashicorp) - runtimeOnly(libs.edc.edrstore.receiver) - runtimeOnly(libs.bouncyCastle.bcprovJdk18on) - - runtimeOnly(project(":extensions:api:mgmt")) - runtimeOnly(libs.opentelemetry.exporter.otlp) } diff --git a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Fetch Token.bru b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Fetch Token.bru new file mode 100644 index 0000000..474fcad --- /dev/null +++ b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Fetch Token.bru @@ -0,0 +1,35 @@ +meta { + name: Fetch Token + type: http + seq: 5 +} + +get { + url: {{sigletBaseUrl}}/tokens/{{consumer_id}}/{{TRANSFER_ID}} + body: json + auth: none +} + +script:post-response { + try { + const json = res.getBody(); + const accessToken = json['token']; + + if (accessToken && typeof accessToken === 'string') { + bru.setVar('ACCESS_TOKEN', accessToken); + } else { + console.warn('Access Token not found'); + } + + } catch (e) { + console.error('Failed to parse response or set Access Token:', e); + test('Response is valid JSON', function () { + throw e; + }); + } +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get Catalog.bru b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get Catalog.bru index 5ce6c0f..22cae31 100644 --- a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get Catalog.bru +++ b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get Catalog.bru @@ -5,14 +5,20 @@ meta { } post { - url: {{cpBaseUrl}}/api/mgmt/v1alpha/participants/{{consumer_id}}/catalog + url: {{cpBaseUrl}}/api/mgmt/v5beta/participants/{{consumer_id}}/catalog/request body: json auth: inherit } body:json { { - "counterPartyDid": "did:web:identityhub.edc-v.svc.cluster.local%3A7083:provider" + "@context": [ + "https://w3id.org/edc/connector/management/v2" + ], + "@type": "CatalogRequest", + "protocol": "dataspace-protocol-http:2025-1", + "counterPartyAddress": "http://controlplane.edc-v.svc.cluster.local:8082/api/dsp/{{provider_id}}/2025-1", + "counterPartyId": "did:web:identityhub.edc-v.svc.cluster.local%3A7083:provider" } } @@ -31,6 +37,7 @@ script:post-response { if (policyId && typeof policyId === 'string') { bru.setVar('POLICY_ID', policyId); + bru.setVar("DATASET_ID",assetId); console.log('Offer ID (POLICY_ID) is:', policyId); } else { console.warn('Policy ID not found in response at dataset[0].hasPolicy[0]["@id"]'); diff --git a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get certificate.bru b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get certificate.bru index 41948e6..0aec853 100644 --- a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get certificate.bru +++ b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Get certificate.bru @@ -1,7 +1,7 @@ meta { name: Get certificate type: http - seq: 4 + seq: 7 } get { diff --git a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/List certificates.bru b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/List certificates.bru index 8d7331b..f1bafc3 100644 --- a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/List certificates.bru +++ b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/List certificates.bru @@ -1,7 +1,7 @@ meta { name: List certificates type: http - seq: 3 + seq: 6 } post { diff --git a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Poll Contract Negotiation.bru b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Poll Contract Negotiation.bru new file mode 100644 index 0000000..a166257 --- /dev/null +++ b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Poll Contract Negotiation.bru @@ -0,0 +1,41 @@ +meta { + name: Poll Contract Negotiation + type: http + seq: 3 +} + +get { + url: {{cpBaseUrl}}/api/mgmt/v5beta/participants/{{consumer_id}}/contractnegotiations/{{NEGOTIATION_ID}} + body: json + auth: inherit +} + +script:post-response { + try { + const json = res.getBody(); + const contractAgreementId = json["contractAgreementId"]; + + if (contractAgreementId && typeof contractAgreementId === 'string') { + bru.setVar('AGREEMENT_ID', contractAgreementId); + console.log('Agreement ID (AGREEMENT_ID) is:', contractAgreementId); + } else { + console.warn('Agreement ID not found in response at json["contractAgreementId"]'); + } + + // Optional: assertion to ensure it exists + test('Agreement ID is present and stored', function () { + expect(contractAgreementId, 'Agreement ID should exist').to.be.a('string').and.not.empty; + }); + + } catch (e) { + console.error('Failed to parse response or set AGREEMENT_ID:', e); + test('Response is valid JSON', function () { + throw e; + }); + } +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Contract Negotiation.bru b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Contract Negotiation.bru new file mode 100644 index 0000000..1b634e4 --- /dev/null +++ b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Contract Negotiation.bru @@ -0,0 +1,70 @@ +meta { + name: Setup Contract Negotiation + type: http + seq: 2 +} + +post { + url: {{cpBaseUrl}}/api/mgmt/v5beta/participants/{{consumer_id}}/contractnegotiations + body: json + auth: inherit +} + +body:json { + { + "@context": [ + "https://w3id.org/edc/connector/management/v2" + ], + "@type": "ContractRequest", + "protocol": "dataspace-protocol-http:2025-1", + "counterPartyAddress": "http://controlplane.edc-v.svc.cluster.local:8082/api/dsp/{{provider_id}}/2025-1", + "policy": { + "@id": "{{POLICY_ID}}", + "@type": "Offer", + "target": "{{DATASET_ID}}", + "assigner": "did:web:identityhub.edc-v.svc.cluster.local%3A7083:provider", + "permission": [ + { + "action": "use", + "constraint": [ + { + "leftOperand": "MembershipCredential", + "operator": "eq", + "rightOperand": "active" + } + ] + } + ] + } + } +} + +script:post-response { + try { + const json = res.getBody(); + const negotiationId = json["@id"]; + + if (negotiationId && typeof negotiationId === 'string') { + bru.setVar('NEGOTIATION_ID', negotiationId); + console.log('NegotiationId ID (NEGOTIATION_ID) is:', negotiationId); + } else { + console.warn('Policy ID not found in response at json["@id"]'); + } + + // Optional: assertion to ensure it exists + test('NegotiationId ID is present and stored', function () { + expect(negotiationId, 'NegotiationId ID should exist').to.be.a('string').and.not.empty; + }); + + } catch (e) { + console.error('Failed to parse response or set NEGOTIATION_ID:', e); + test('Response is valid JSON', function () { + throw e; + }); + } +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Transfer.bru b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Transfer.bru index 9d9d476..ef82751 100644 --- a/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Transfer.bru +++ b/requests/EDC-V Onboarding/EDC-V Management/Data Transfer/Http Certs/Consumer/Setup Transfer.bru @@ -1,35 +1,41 @@ meta { name: Setup Transfer type: http - seq: 2 + seq: 4 } post { - url: {{cpBaseUrl}}/api/mgmt/v1alpha/participants/{{consumer_id}}/transfer + url: {{cpBaseUrl}}/api/mgmt/v5beta/participants/{{consumer_id}}/transferprocesses body: json auth: inherit } body:json { { - "providerId":"did:web:identityhub.edc-v.svc.cluster.local%3A7083:provider", - "policyId": "{{POLICY_ID}}" + "@context": [ + "https://w3id.org/edc/connector/management/v2" + ], + "@type": "TransferRequest", + "protocol": "dataspace-protocol-http:2025-1", + "counterPartyAddress": "http://controlplane.edc-v.svc.cluster.local:8082/api/dsp/{{provider_id}}/2025-1", + "contractId": "{{AGREEMENT_ID}}", + "transferType": "HttpData-PULL" } } script:post-response { try { const json = res.getBody(); - const accessToken = json['authorization']; + const transferProcessId = json['@id']; - if (accessToken && typeof accessToken === 'string') { - bru.setVar('ACCESS_TOKEN', accessToken); + if (transferProcessId && typeof transferProcessId === 'string') { + bru.setVar('TRANSFER_ID', transferProcessId); } else { - console.warn('Access token not found'); + console.warn('Transfer Id not found'); } } catch (e) { - console.error('Failed to parse response or set Access token:', e); + console.error('Failed to parse response or set transfer id:', e); test('Response is valid JSON', function () { throw e; }); diff --git a/requests/EDC-V Onboarding/environments/KinD Local.bru b/requests/EDC-V Onboarding/environments/KinD Local.bru index 6dbae38..81d56f2 100644 --- a/requests/EDC-V Onboarding/environments/KinD Local.bru +++ b/requests/EDC-V Onboarding/environments/KinD Local.bru @@ -6,4 +6,5 @@ vars { pmBaseUrl: http://pm.localhost VAULT_TOKEN: root dpBaseUrl: http://dp.localhost + sigletBaseUrl: http://siglet.localhost } diff --git a/settings.gradle.kts b/settings.gradle.kts index 325a21c..ea4a99d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -25,7 +25,6 @@ pluginManagement { } rootProject.name = "jad" -include(":extensions:api:mgmt") include(":extensions:data-plane-certs") include(":tests:end2end") diff --git a/tests/end2end/build.gradle.kts b/tests/end2end/build.gradle.kts index 9680ba4..a1da24f 100644 --- a/tests/end2end/build.gradle.kts +++ b/tests/end2end/build.gradle.kts @@ -25,6 +25,8 @@ dependencies { testImplementation(libs.jackson.annotations) testImplementation(libs.awaitility) testImplementation(libs.restAssured) + testImplementation(testFixtures(libs.edc.fixtures.mgmtapi)) + } edcBuild { diff --git a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/Constants.java b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/Constants.java index b2383ac..a085c81 100644 --- a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/Constants.java +++ b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/Constants.java @@ -23,7 +23,9 @@ public interface Constants { String PM_BASE_URL = "http://pm.localhost:8080"; String VAULT_URL = "http://vault.localhost:8080"; String CONTROLPLANE_BASE_URL = "http://cp.localhost:8080"; + String SIGLET_BASE_URL = "http://siglet.localhost:8080"; String DATAPLANE_BASE_URL = "http://dp.localhost:8080"; String IDENTITYHUB_BASE_URL = "http://ih.localhost:8080"; String KEYCLOAK_URL = "http://keycloak.localhost:8080"; + String CONTROLPLANE_PROTOCOL_URL = "http://controlplane.edc-v.svc.cluster.local:8082/api/dsp/%s/2025-1"; } diff --git a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DataTransferEndToEndTest.java b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DataTransferEndToEndTest.java index fadf62c..971fb6d 100644 --- a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DataTransferEndToEndTest.java +++ b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DataTransferEndToEndTest.java @@ -19,27 +19,41 @@ import io.restassured.RestAssured; import io.restassured.config.ObjectMapperConfig; import io.restassured.config.RestAssuredConfig; -import org.eclipse.edc.jad.tests.model.CatalogResponse; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.ManagementApiClientV5; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.AssetDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.AtomicConstraintDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.CelExpressionDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.ContractDefinitionDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.CriterionDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.DataPlaneRegistrationDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.PermissionDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.PolicyDefinitionDto; +import org.eclipse.edc.connector.controlplane.test.system.utils.client.api.model.PolicyDto; import org.eclipse.edc.jad.tests.model.ClientCredentials; import org.eclipse.edc.junit.annotations.EndToEndTest; +import org.eclipse.edc.junit.utils.LazySupplier; import org.eclipse.edc.spi.monitor.ConsoleMonitor; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import java.io.IOException; +import java.net.URI; import java.time.Instant; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import static io.restassured.RestAssured.given; import static org.assertj.core.api.Assertions.assertThat; import static org.eclipse.edc.jad.tests.Constants.APPLICATION_JSON; import static org.eclipse.edc.jad.tests.Constants.CONTROLPLANE_BASE_URL; +import static org.eclipse.edc.jad.tests.Constants.CONTROLPLANE_PROTOCOL_URL; import static org.eclipse.edc.jad.tests.Constants.DATAPLANE_BASE_URL; +import static org.eclipse.edc.jad.tests.Constants.SIGLET_BASE_URL; import static org.eclipse.edc.jad.tests.Constants.TM_BASE_URL; import static org.eclipse.edc.jad.tests.KeycloakApi.createKeycloakToken; import static org.eclipse.edc.jad.tests.KeycloakApi.getAccessToken; -import static org.eclipse.edc.jsonld.spi.JsonLdKeywords.ID; /** * This test class executes a series of REST requests against several components to verify that an end-to-end @@ -54,12 +68,13 @@ public class DataTransferEndToEndTest { private static final String VAULT_TOKEN = "root"; private static final ConsoleMonitor MONITOR = new ConsoleMonitor(ConsoleMonitor.Level.DEBUG, true); + private static final DynamicTokenProvider DYNAMIC_TOKEN_PROVIDER = new DynamicTokenProvider(); + private static final ManagementApiClientV5 MANAGEMENT_API_CLIENT = new ManagementApiClientV5(DYNAMIC_TOKEN_PROVIDER, new LazySupplier<>(() -> URI.create(CONTROLPLANE_BASE_URL + "/api/mgmt"))); private static ClientCredentials providerCredentials; private static ClientCredentials consumerCredentials; private static String providerContextId; private static ClientCredentials manufacturerCredentials; - static String loadResourceFile(String resourceName) { try (var is = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourceName)) { if (is == null) { @@ -82,11 +97,13 @@ static void prepare() { } )); + var slug = Instant.now().getEpochSecond(); - var adminToken = createKeycloakToken("admin", "edc-v-admin-secret", "issuer-admin-api:write", "identity-api:write", "management-api:write", "identity-api:read"); - createCelExpression(adminToken, "membership_cel_expression.json"); - createCelExpression(adminToken, "manufacturer_cel_expression.json"); + DYNAMIC_TOKEN_PROVIDER.setDefaultTokenGenerator(() -> createKeycloakToken("admin", "edc-v-admin-secret", "issuer-admin-api:write", "identity-api:write", "management-api:write", "identity-api:read")); + + createMembershipCelExpression(); + createManufacturerCelExpression(); MONITOR.info("Create cell and dataspace profile"); var cellId = getCellId(); @@ -113,23 +130,24 @@ static void prepare() { manufacturerCredentials = manufacturerPo.execute(cellId, "manufacturer"); } - /** - * Creates a Common Expression Language (CEL) entry in the control plane - * - * @param accessToken OAuth2 token - * @param resourceName name of the resource file that contains the CEL expression. - */ - private static void createCelExpression(String accessToken, String resourceName) { - var template = loadResourceFile(resourceName); + private static void createMembershipCelExpression() { + var expr = "ctx.agent.claims.vc.filter(c, c.type.exists(t, t == 'MembershipCredential')).exists(c, c.credentialSubject.exists(cs, timestamp(cs.membershipStartDate) < now))"; + var celExpression = new CelExpressionDto("MembershipCredential", + expr, + Set.of("catalog", "contract.negotiation", "transfer.process"), + "Expression for evaluating membership credential" + ); + MANAGEMENT_API_CLIENT.expressions().createExpression(celExpression); + } - given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(accessToken) - .contentType("application/json") - .body(template) - .post("/api/mgmt/v5beta/celexpressions") - .then() - .statusCode(200); + private static void createManufacturerCelExpression() { + var expr = "ctx.agent.claims.vc.filter(c, c.type.exists(t, t == 'ManufacturerCredential')).exists(c, c.credentialSubject.exists(cs, timestamp(cs.since) < now))"; + var celExpression = new CelExpressionDto("ManufacturerCredential", + expr, + Set.of("catalog", "contract.negotiation", "transfer.process"), + "Expression for evaluating manufacturer credential" + ); + MANAGEMENT_API_CLIENT.expressions().createExpression(celExpression); } /** @@ -151,40 +169,33 @@ void testCertDataTransfer() { // seed provider MONITOR.info("Seeding provider"); - var providerAccessToken = getAccessToken(providerCredentials.clientId(), providerCredentials.clientSecret(), "management-api:write").accessToken(); - var consumerAccessToken = getAccessToken(consumerCredentials.clientId(), consumerCredentials.clientSecret(), "management-api:write").accessToken(); - var assetId = createCertAsset(providerCredentials.clientId(), providerAccessToken); - var policyDefId = createPolicyDef(providerCredentials.clientId(), providerAccessToken, "policy-def.json"); - createContractDef(providerCredentials.clientId(), providerAccessToken, policyDefId, policyDefId, assetId); + + DYNAMIC_TOKEN_PROVIDER.registerTokenGenerator(providerCredentials.clientId(), () -> getAccessToken(providerCredentials.clientId(), providerCredentials.clientSecret(), "management-api:write management-api:read").accessToken()); + DYNAMIC_TOKEN_PROVIDER.registerTokenGenerator(consumerCredentials.clientId(), () -> getAccessToken(consumerCredentials.clientId(), consumerCredentials.clientSecret(), "management-api:write management-api:read").accessToken()); + + var assetId = createCertAsset(providerCredentials.clientId()); + var policyDefId = createPolicyDef(providerCredentials.clientId(), "MembershipCredential"); + createContractDef(providerCredentials.clientId(), policyDefId, policyDefId, assetId); // Register dataplanes - registerDataPlane(providerCredentials.clientId(), providerAccessToken); - registerDataPlane(consumerCredentials.clientId(), consumerAccessToken); + registerDataPlane(providerCredentials.clientId()); + registerDataPlane(consumerCredentials.clientId()); + + MONITOR.info("starting data transfer"); + + var transferId = MANAGEMENT_API_CLIENT.startTransfer(consumerCredentials.clientId(), + providerCredentials.clientId(), CONTROLPLANE_PROTOCOL_URL.formatted(providerCredentials.clientId()), providerContextId, assetId, "HttpData-PULL"); - // perform data transfer - MONITOR.info("Starting data transfer"); - var catalog = fetchCatalog(consumerCredentials); - MONITOR.info("Catalog received, starting data transfer"); - var offerId = catalog.datasets().stream().filter(dataSet -> dataSet.id().equals(assetId)).findFirst().get().offers().get(0).id(); - assertThat(offerId).isNotNull(); + MONITOR.info("Fetching siglet token for transferId: " + transferId); - // trigger transfer var transferResponse = given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(consumerAccessToken) - .body(""" - { - "providerId":"%s", - "policyId": "%s" - } - """.formatted(providerContextId, offerId)) - .contentType("application/json") - .post("/api/mgmt/v1alpha/participants/%s/transfer".formatted(consumerCredentials.clientId())) + .baseUri(SIGLET_BASE_URL) + .get("/tokens/%s/%s".formatted(consumerCredentials.clientId(), transferId)) .then() .statusCode(200) .extract().body().as(Map.class); - var accessToken = transferResponse.get("authorization"); + var accessToken = transferResponse.get("token"); var list = given() .baseUri(DATAPLANE_BASE_URL) @@ -203,61 +214,42 @@ void testCertDataTransfer() { void testTransferLimitedAccess() { // seed provider MONITOR.info("Seeding provider"); - var providerAccessToken = getAccessToken(providerCredentials.clientId(), providerCredentials.clientSecret(), "management-api:write").accessToken(); - var consumerAccessToken = getAccessToken(consumerCredentials.clientId(), consumerCredentials.clientSecret(), "management-api:write").accessToken(); - var manufacturerAccessToken = getAccessToken(manufacturerCredentials.clientId(), manufacturerCredentials.clientSecret(), "management-api:write").accessToken(); - var assetId = createAsset(providerCredentials.clientId(), providerAccessToken, "asset-restricted.json"); - var accessPolicyId = createPolicyDef(providerCredentials.clientId(), providerAccessToken, "policy-def.json"); - var contractPolicyId = createPolicyDef(providerCredentials.clientId(), providerAccessToken, "policy-def-manufacturer.json"); - createContractDef(providerCredentials.clientId(), providerAccessToken, accessPolicyId, contractPolicyId, assetId); - - registerDataPlane(providerCredentials.clientId(), providerAccessToken); - registerDataPlane(consumerCredentials.clientId(), consumerAccessToken); - registerDataPlane(manufacturerCredentials.clientId(), manufacturerAccessToken); - - // perform data transfer - MONITOR.info("Starting data transfer"); - var catalog = fetchCatalog(consumerCredentials); - - MONITOR.info("Catalog received, starting data transfer"); - var offerId = catalog.datasets().stream().filter(dataSet -> dataSet.id().equals(assetId)).findFirst().get().offers().get(0).id(); - assertThat(offerId).isNotNull(); - - - // attempt download as a normal consumer - should fail due to missing credentials - given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(consumerAccessToken) - .body(""" - { - "providerId":"%s", - "policyId": "%s", - "policyType": "manufacturer" - } - """.formatted(providerContextId, offerId)) - .contentType("application/json") - .post("/api/mgmt/v1alpha/participants/%s/transfer".formatted(consumerCredentials.clientId())) - .then() - .statusCode(500); - // download the asset as manufacturer - should work because the manufacturer has the necessary credentials + DYNAMIC_TOKEN_PROVIDER.registerTokenGenerator(providerCredentials.clientId(), () -> getAccessToken(providerCredentials.clientId(), providerCredentials.clientSecret(), "management-api:write management-api:read").accessToken()); + DYNAMIC_TOKEN_PROVIDER.registerTokenGenerator(consumerCredentials.clientId(), () -> getAccessToken(consumerCredentials.clientId(), consumerCredentials.clientSecret(), "management-api:write management-api:read").accessToken()); + DYNAMIC_TOKEN_PROVIDER.registerTokenGenerator(manufacturerCredentials.clientId(), () -> getAccessToken(manufacturerCredentials.clientId(), manufacturerCredentials.clientSecret(), "management-api:write management-api:read").accessToken()); + + var assetId = createAsset(providerCredentials.clientId(), "This asset requires the Manufacturer credential to access"); + var accessPolicyId = createPolicyDef(providerCredentials.clientId(), "MembershipCredential"); + var contractPolicyId = createPolicyDef(providerCredentials.clientId(), "ManufacturerCredential"); + createContractDef(providerCredentials.clientId(), accessPolicyId, contractPolicyId, assetId); + + registerDataPlane(providerCredentials.clientId()); + registerDataPlane(consumerCredentials.clientId()); + registerDataPlane(manufacturerCredentials.clientId()); + + var negotiationId = MANAGEMENT_API_CLIENT.initContractNegotiation(consumerCredentials.clientId(), + assetId, CONTROLPLANE_PROTOCOL_URL.formatted(providerCredentials.clientId()), providerContextId); + + + MANAGEMENT_API_CLIENT.waitForContractNegotiationState(consumerCredentials.clientId(), negotiationId, "TERMINATED"); + + MONITOR.info("starting data transfer"); + + var transferId = MANAGEMENT_API_CLIENT.startTransfer(manufacturerCredentials.clientId(), + providerCredentials.clientId(), CONTROLPLANE_PROTOCOL_URL.formatted(providerCredentials.clientId()), providerContextId, assetId, "HttpData-PULL"); + + + MONITOR.info("Fetching siglet token for transferId: " + transferId); + var transferResponse = given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(manufacturerAccessToken) - .body(""" - { - "providerId":"%s", - "policyId": "%s", - "policyType": "manufacturer" - } - """.formatted(providerContextId, offerId)) - .contentType("application/json") - .post("/api/mgmt/v1alpha/participants/%s/transfer".formatted(manufacturerCredentials.clientId())) + .baseUri(SIGLET_BASE_URL) + .get("/tokens/%s/%s".formatted(manufacturerCredentials.clientId(), transferId)) .then() .statusCode(200) .extract().body().as(Map.class); - var accessToken = transferResponse.get("authorization"); + var accessToken = transferResponse.get("token"); var list = given() .baseUri(DATAPLANE_BASE_URL) @@ -273,95 +265,43 @@ void testTransferLimitedAccess() { } - private CatalogResponse fetchCatalog(ClientCredentials consumerCredentials) { - var accessToken = getAccessToken(consumerCredentials.clientId(), consumerCredentials.clientSecret(), "management-api:read"); - - return given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(accessToken.accessToken()) - .contentType("application/json") - .body(""" - { - "counterPartyDid": "%s" - } - """.formatted(providerContextId)) - .post("/api/mgmt/v1alpha/participants/%s/catalog".formatted(consumerCredentials.clientId())) - .then() - .statusCode(200) - .extract().body() - .as(CatalogResponse.class); - } - /** * Registers a data plane for a new participant context. This is a bit of a workaround, until Dataplane Signaling is fully implemented. * Check also the {@code DataplaneRegistrationApiController} in the {@code extensions/api/mgmt} directory * * @param participantContextId Participant context for which the data plane should be registered. - * @param accessToken OAuth2 token */ - private void registerDataPlane(String participantContextId, String accessToken) { - given() - .baseUri(CONTROLPLANE_BASE_URL) - .contentType(APPLICATION_JSON) - .auth().oauth2(accessToken) - .body(""" - { - "id": "dataplane-%s", - "transferTypes": [ "HttpData-PULL" ], - "endpoint": "http://siglet.edc-v.svc.cluster.local:8081/api/v1/%s/dataflows" - } - """.formatted(participantContextId, participantContextId)) - .put("/api/mgmt/v5beta/participants/%s/dataplanes".formatted(participantContextId)) - .then() - .log().ifValidationFails() - .statusCode(200); + private void registerDataPlane(String participantContextId) { + MANAGEMENT_API_CLIENT.dataplanes().registerDataPlane(participantContextId, new DataPlaneRegistrationDto( + "dataplane-%s".formatted(participantContextId), + "http://siglet.edc-v.svc.cluster.local:8081/api/v1/%s/dataflows".formatted(participantContextId), + Set.of("HttpData-PULL"), + Set.of(), + null + )); } - private String createAsset(String participantContextId, String accessToken, String resourceName) { - var template = loadResourceFile(resourceName); - return given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(accessToken) - .contentType("application/json") - .body(template) - .post("/api/mgmt/v5beta/participants/%s/assets".formatted(participantContextId)) - .then() - .statusCode(200) - .extract().jsonPath().getString(ID); + private String createAsset(String participantContextId, String description) { + var properties = new HashMap(); + properties.put("description", description); + var asset = new AssetDto(properties, null); + return MANAGEMENT_API_CLIENT.assets().createAsset(participantContextId, asset); } - private String createCertAsset(String participantContextId, String accessToken) { - return createAsset(participantContextId, accessToken, "asset-cert.json"); + private String createCertAsset(String participantContextId) { + return createAsset(participantContextId, "This asset requires the Membership credential to access"); } - private String createPolicyDef(String participantContextId, String accessToken, String resourceName) { - var template = loadResourceFile(resourceName); - return given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(accessToken) - .contentType("application/json") - .body(template) - .post("/api/mgmt/v5beta/participants/%s/policydefinitions".formatted(participantContextId)) - .then() - .statusCode(200) - .extract().jsonPath().getString(ID); + private String createPolicyDef(String participantContextId, String leftOperand) { + var constraint = new AtomicConstraintDto(leftOperand, "eq", "active"); + var permission = new PermissionDto(constraint); + var policy = new PolicyDto(List.of(permission)); + return MANAGEMENT_API_CLIENT.policies().createPolicyDefinition(participantContextId, new PolicyDefinitionDto(policy)); } - private String createContractDef(String participantContextId, String accessToken, String accessPolicyId, String contractPolicyId, String assetId) { - var template = loadResourceFile("contract-def.json"); - - template = template.replace("{{access_policy_id}}", accessPolicyId); - template = template.replace("{{contract_policy_id}}", contractPolicyId); - template = template.replace("{{asset_id}}", assetId); - - return given() - .baseUri(CONTROLPLANE_BASE_URL) - .auth().oauth2(accessToken) - .contentType("application/json") - .body(template) - .post("/api/mgmt/v5beta/participants/%s/contractdefinitions".formatted(participantContextId)) - .then() - .statusCode(200) - .extract().jsonPath().getString(ID); + private String createContractDef(String participantContextId, String accessPolicyId, String contractPolicyId, String assetId) { + var selector = new CriterionDto("https://w3id.org/edc/v0.0.1/ns/id", "=", assetId); + var contractDef = new ContractDefinitionDto(accessPolicyId, contractPolicyId, List.of(selector)); + return MANAGEMENT_API_CLIENT.contractDefinitions().createContractDefinition(participantContextId, contractDef); } } diff --git a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DynamicTokenProvider.java b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DynamicTokenProvider.java new file mode 100644 index 0000000..7c9d7e9 --- /dev/null +++ b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/DynamicTokenProvider.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2026 Metaform Systems, Inc. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Metaform Systems, Inc. - initial API and implementation + * + */ + +package org.eclipse.edc.jad.tests; + +import org.eclipse.edc.api.authentication.OauthTokenProvider; + +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Supplier; + +public class DynamicTokenProvider implements OauthTokenProvider { + + private final Map> tokenGenerators = new ConcurrentHashMap<>(); + public Supplier defaultTokenGenerator; + + @Override + public String createToken(String participantContextId, String role) { + if (participantContextId == null) { + if (defaultTokenGenerator == null) { + throw new IllegalStateException("No default token generator registered"); + } + return defaultTokenGenerator.get(); + } else { + return Objects.requireNonNull(tokenGenerators.get(participantContextId)).get(); + } + } + + public void registerTokenGenerator(String participantContextId, Supplier tokenGenerator) { + tokenGenerators.put(participantContextId, tokenGenerator); + } + + public void setDefaultTokenGenerator(Supplier defaultTokenGenerator) { + this.defaultTokenGenerator = defaultTokenGenerator; + } +} diff --git a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/CatalogResponse.java b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/CatalogResponse.java deleted file mode 100644 index 1693605..0000000 --- a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/CatalogResponse.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.jad.tests.model; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -import java.util.List; - -/** - * This is a minimal version of an EDC Catalog, ignoring most unneeded fields - */ -@JsonIgnoreProperties(ignoreUnknown = true) -public record CatalogResponse(@JsonProperty("@id") String id, - @JsonProperty("@type") String type, - @JsonProperty(value = "dataset", defaultValue = "[]") List datasets) { - -} diff --git a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/DataSet.java b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/DataSet.java deleted file mode 100644 index 69ae8bc..0000000 --- a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/DataSet.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.jad.tests.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -import java.util.List; - -@JsonIgnoreProperties(ignoreUnknown = true) -public record DataSet(@JsonProperty("@id") String id, @JsonProperty("hasPolicy") List offers) { - -} - - diff --git a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/Offer.java b/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/Offer.java deleted file mode 100644 index 701dc2e..0000000 --- a/tests/end2end/src/test/java/org/eclipse/edc/jad/tests/model/Offer.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2025 Metaform Systems, Inc. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - * - * Contributors: - * Metaform Systems, Inc. - initial API and implementation - * - */ - -package org.eclipse.edc.jad.tests.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(ignoreUnknown = true) -public record Offer(@JsonProperty("@id") String id) { -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/asset-cert.json b/tests/end2end/src/test/resources/asset-cert.json deleted file mode 100644 index da19337..0000000 --- a/tests/end2end/src/test/resources/asset-cert.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "Asset", - "properties": { - "description": "This asset requires the Membership credential to access" - } -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/asset-restricted.json b/tests/end2end/src/test/resources/asset-restricted.json deleted file mode 100644 index f085ca6..0000000 --- a/tests/end2end/src/test/resources/asset-restricted.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "Asset", - "properties": { - "description": "This asset requires the Manufacturer credential to access" - } -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/asset.json b/tests/end2end/src/test/resources/asset.json deleted file mode 100644 index da19337..0000000 --- a/tests/end2end/src/test/resources/asset.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "Asset", - "properties": { - "description": "This asset requires the Membership credential to access" - } -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/contract-def.json b/tests/end2end/src/test/resources/contract-def.json deleted file mode 100644 index f552b79..0000000 --- a/tests/end2end/src/test/resources/contract-def.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "ContractDefinition", - "accessPolicyId": "{{access_policy_id}}", - "contractPolicyId": "{{contract_policy_id}}", - "assetsSelector": [ - { - "@type": "Criterion", - "operandLeft": "https://w3id.org/edc/v0.0.1/ns/id", - "operator": "=", - "operandRight": "{{asset_id}}" - } - ] -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/manufacturer_cel_expression.json b/tests/end2end/src/test/resources/manufacturer_cel_expression.json deleted file mode 100644 index a2e2d0c..0000000 --- a/tests/end2end/src/test/resources/manufacturer_cel_expression.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "CelExpression", - "leftOperand": "ManufacturerCredential", - "description": "Expression for evaluating manufacturer credentials", - "scopes": [ - "catalog", - "contract.negotiation", - "transfer.process" - ], - "expression": "ctx.agent.claims.vc.filter(c, c.type.exists(t, t == 'ManufacturerCredential')).exists(c, c.credentialSubject.exists(cs, timestamp(cs.since) < now))" -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/membership_cel_expression.json b/tests/end2end/src/test/resources/membership_cel_expression.json deleted file mode 100644 index 8d2937f..0000000 --- a/tests/end2end/src/test/resources/membership_cel_expression.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "CelExpression", - "leftOperand": "MembershipCredential", - "description": "Expression for evaluating membership credential", - "scopes": [ - "catalog", - "contract.negotiation", - "transfer.process" - ], - "expression": "ctx.agent.claims.vc.filter(c, c.type.exists(t, t == 'MembershipCredential')).exists(c, c.credentialSubject.exists(cs, timestamp(cs.membershipStartDate) < now))" -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/policy-def-manufacturer.json b/tests/end2end/src/test/resources/policy-def-manufacturer.json deleted file mode 100644 index fd68935..0000000 --- a/tests/end2end/src/test/resources/policy-def-manufacturer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "PolicyDefinition", - "policy": { - "@type": "Set", - "permission": [ - { - "action": "use", - "constraint": [ - { - "leftOperand": "ManufacturerCredential", - "operator": "eq", - "rightOperand": "active" - } - ] - } - ] - } -} \ No newline at end of file diff --git a/tests/end2end/src/test/resources/policy-def.json b/tests/end2end/src/test/resources/policy-def.json deleted file mode 100644 index c46bbeb..0000000 --- a/tests/end2end/src/test/resources/policy-def.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "@context": [ - "https://w3id.org/edc/connector/management/v2" - ], - "@type": "PolicyDefinition", - "policy": { - "@type": "Set", - "permission": [ - { - "action": "use", - "constraint": [ - { - "leftOperand": "MembershipCredential", - "operator": "eq", - "rightOperand": "active" - } - ] - } - ] - } -} \ No newline at end of file