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¶
- The consumer retrieves the list of registered providers from FC-Service via
GET /participants. -
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__ServiceOfferingnode carries agx__endpointand optional keywords. For example, to find all connector endpoints taggedcloud-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.
-
For each relevant provider, the consumer sends a DSP catalogue request directly to that provider's RUN-DSP instance.
- 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.