eclipse-edc/Connector

[Potential bug] - Fail to deprovision the provisioned asset (HttpData-PULL)

Opened this issue · 0 comments

Discussed in #4613

Originally posted by xdxxxdx November 10, 2024
Hello EDC team,

I'm working with a connector configured using the HTTP Provision extension (link). The asset and its associated contract are published and accessible:

{
  "@context": {
    "@vocab": "https://w3id.org/edc/v0.0.1/ns/"
  },
  "@id": "asset-pro",
  "properties": {
    "name": "provision product description",
    "contenttype": "application/json"
  },
  "dataAddress": {
    "name": "Test asset",
    "type": "HttpProvision",
    "baseUrl": "https://jsonplaceholder.typicode.com/users"
  }
}

The connector is configured with:

provisioner.http.entries.default.data.address.type=HttpProvision

Steps to reproduce:

  1. When the consumer connector initiates the transfer with the following request:

    {
      "@context": {
        "@vocab": "https://w3id.org/edc/v0.0.1/ns/"
      },
      "@type": "TransferRequest",
      "connectorId": "did:web:localhost%3A7093",
      "counterPartyAddress": "http://localhost:19194/protocol",
      "contractId": "c772dd07-d05b-4a63-a542-4b06f44ff8ec",
      "assetId": "asset-pro",
      "protocol": "dataspace-protocol-http",
      "transferType": "HttpData-PULL"
    }

    The connector successfully calls the external provisioner to provision the asset. The provisioner responds with:

    {
        "edctype": "dataspaceconnector:provisioner-callback-request",
        "resourceDefinitionId": "626d96ea-9955-4524-b5a1-2a37cf2efa7e",
        "assetId": "asset-pro-3",
        "resourceName": "ProvisionedResource",
        "contentDataAddress": {
          "properties": {
            "https://w3id.org/edc/v0.0.1/ns/type": "HttpData",
            "https://w3id.org/edc/v0.0.1/ns/baseUrl": "https://jsonplaceholder.typicode.com/users"
          }
        },
        "apiKeyJwt": "unused",
        "hasToken": "false"
    }
  2. I attempt to terminate the transfer process with:

curl --location 'http://localhost:19193/management/v3/transferprocesses/e382b099-82b9-43d3-a965-23ae640555e4/terminate' \
--header 'Content-Type: application/json' \
--data-raw '{
  "@context": {
    "@vocab": "https://w3id.org/edc/v0.0.1/ns/"
  },
  "@type": "https://w3id.org/edc/v0.0.1/ns/TerminateTransfer",
  "reason": "a reason to terminate"
}'

This operation results in an error:

SEVERE 2024-11-10T14:36:45.708589406 Error deprovisioning resource 30f2fc2d-cb66-4598-b0a5-3aaffdfea5e0 for process e382b099-82b9-43d3-a965-23ae640555e4: Unknown provision type org.eclipse.edc.connector.controlplane.provision.http.impl.HttpProvisionedContentResource

My questions:

  1. Is it possible for the provisioning control plane to work with the HTTP data plane?
  2. If so, what would be the correct approach to deprovision the asset?

Thank you so much !