Skip to main content

Technical aspects


Data model

The data model of the SSH Open Marketplace was designed to be generic and flexible enough to support a variety of sources. The data model v1.5 is presented in the Marketplace – Implementation report.


Data ingestion workflow

The SSH Open Marketplace provides a REST API at the backend where data can not only be read but also inserted or updated. This approach allows technology-agnostic ingestion. During the development phase, two main ingestion pipelines - covering the gathering of the data at the source (e.g. via an API or a Git repository), the mapping of the data to the SSH Open Marketplace data model including transformation of parts of the data (e.g. connecting terms from the source to a vocabulary like TaDiRAH) and the integration of the processed data into the SSH Open Marketplace via the API - were used:

Data ingestion workflow
Illustration: Overview of the different components of the ingestion workflow

Information about the development of the website

The development of the SSH Open Marketplace is managed via GitLab. If you want to know more, pay a visit to our GitLab instance:


API documentation

The SSH Open Marketplace also includes an Application Programming Interface (API), which is opened for anyone to use. Some of the functionalities are closed, but most are opened, such as searching and retrieving detailed information on all items of the Marketplace.

You can inspect the API Swagger documentation here:

The endpoint of the SSH Open Marketplace API is:

The API responses are in JSON and follow the data model that we have created for the Marketplace (see “Data model” section above).

For example, you can request a description of all the “tools and services” that the SSH Open Marketplace provides at and following pages

The API also includes some endpoints that are only accessible to logged in users. To use them, you need to ask for a JWT (JSON Web Token) to the authentication endpoint and then use the Token to connect to the other endpoint, by passing the Token as a Bearer Authentication.

curl -i --request POST '' --header 'Content-Type: application/json' --data-raw '{"username": "SomeUserName","password": "xxxxxxxx"}'

Will respond with a Token as such:

Authorization: Bearer xxxyyyyzzzhfdsklmgdflkngfdngdfklngfdfgdf,gfdngfndkljgn

And this is then used in the following requests to prove you are authenticated, for example:

curl -X DELETE '' --header 'Authorization: Bearer xxxyyyyzzzhfdsklmgdflkngfdngdfklngfdfgdf,gfdngfndkljgn'
European Union flag

The SSH Open Marketplace is maintained and will be further developed by three European Research Infrastructures - DARIAH, CLARIN and CESSDA - and their national partners. It was developed as part of the "Social Sciences and Humanities Open Cloud" SSHOC project, European Union's Horizon 2020 project call H2020-INFRAEOSC-04-2018, grant agreement #823782.