Skip to content

Catalogue discovery

Before initiating a contract negotiation, a consumer must discover which providers offer relevant datasets. The consumer queries FC-Service directly to retrieve provider self-descriptions and service offerings.

Sequence

sequenceDiagram
    participant C as Consumer application
    participant FC as FC-Service
    participant P as Provider (RUN-DSP)

    C->>FC: GET /participants/ — list registered providers
    FC-->>C: List of provider self-descriptions

    C->>FC: POST /query/ — query offerings by dataset type
    FC-->>C: Matching service offerings with provider endpoints

    C->>P: DSP catalogue request (GET /dsp/v1alpha2/catalog)
    P-->>C: Catalogue response with datasets and transfer terms

Steps

  1. The consumer retrieves the list of registered providers from FC-Service via GET /participants.
  2. The consumer queries FC-Service for service offerings using a Cypher query against the catalogue graph. Service offerings follow the Gaia-X ontology — each gx__ServiceOffering node carries a gx__endpoint and optional keywords. For example, to find all connector endpoints tagged cloud-processing:

    curl --request POST \
      --url https://fed-cat.dataspace.fun/query \
      --header 'content-type: application/json' \
      --data '{
      "statement": "MATCH (p) <-[:gx__providedBy]- (n:gx__ServiceOffering) -[:gx__endpoint]-> (m:gx__Endpoint) -[:gx__standardConformity]-> (s:gx__StandardConformity) WHERE apoc.coll.contains(n.gx__keyword, '\''cloud-processing'\'') RETURN m.gx__endpointURL as url, s.gx__standardReference as standard"
    }'
    

    The response contains the provider's RUN-DSP endpoint URL, which is the address used for the next step.

  3. For each relevant provider, the consumer sends a DSP catalogue request directly to that provider's RUN-DSP instance.

  4. RUN-DSP forwards the request to the provider backend (e.g. rdsp-s3) via gRPC and returns the catalogue response with available datasets and their transfer terms.

The consumer now has the dataset identifier and provider endpoint needed to start a contract negotiation.