Design & Architecture

The API goes about minting DOI’s in the following fashion:

We create the draft and commit that to the DB first due to the following “chicken and egg” issue:

  • To create a DataPublication we need a DOI [mandatory field]

  • To create a DOI we need a URL for the landing page which will have the DataPublication ID in it

Various ICAT tables need other entities to be created first as they are needed as a mandatory relationship. Below is a diagram of what is needed to create a DataPublication and how the api goes about it.

example of automatic DP creation

 

  • Facility is taken directly from the investigation for /mint/{investigation_id} or specified in the api config for user-defined DPs

  • DataPublicationType is a constant so is only retreived from the ICATDB once and appended to any DataPublications