RUN-DSP¶
RUN-DSP is the core connector of the dataLOFT platform. It is a lightweight Go binary that implements the IDSA Dataspace Protocol and runs with minimal resource requirements. The source code is published at codeberg.org/go-dataspace/run-dsp.
Roles¶
RUN-DSP operates in two roles simultaneously:
Provider role: RUN-DSP listens for incoming DSP requests from consumers: catalogue queries, contract negotiation messages, and transfer requests. For each request, it delegates to a backend provider service via gRPC. The provider service implements the run-dsrpc interface and returns catalogue data, dataset metadata, and download instructions. rdsp-s3 is the reference backend for this role.
Consumer role: RUN-DSP accepts commands from consumer applications via a gRPC control interface. The consumer application instructs RUN-DSP to query a provider's catalogue, initiate a contract negotiation, or request a data transfer. RUN-DSP then carries out the DSP protocol exchange on the application's behalf.
Extensibility via hooks¶
RUN-DSP delegates two decisions to pluggable gRPC services:
- Authentication hook: On every incoming DSP request, RUN-DSP calls the Signature-Auth-Handler sidecar to verify the requester's identity. The auth handler can approve or reject the request.
- Contract hook: At each contract negotiation state transition, RUN-DSP calls the Reference Contract Service to determine whether to proceed. In production, this hook can be wired to a policy-enforcing service.
Deployment¶
In the dataLOFT reference deployment, RUN-DSP runs as the main container in a Kubernetes pod. The Signature-Auth-Handler and HST-DID run as sidecar containers in the same pod.
Interface¶
The gRPC provider and consumer interfaces are defined in the run-dsrpc repository: codeberg.org/go-dataspace/run-dsrpc.