https://github.com/dissco/datacite-publisher

https://github.com/dissco/datacite-publisher

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.7%) to scientific vocabulary
Last synced: 4 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: DiSSCo
  • License: apache-2.0
  • Language: Java
  • Default Branch: main
  • Size: 410 KB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 2
Created almost 2 years ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

DataCite Publisher

Overview

The DataCite Publisher acts as the intermediary between the DiSSCo PID API and the DataCite API. The Publisher receives messages from the DiSSCo PID API through a RabbitMQ Queue. These messages contain the records of 200-400 PIDs minted through the specimen ingestion process, and may either be a batch of PIDs for Digital Specimens or Media Objects. These messages are mapped from the DiSSCo FDO Profile to the DataCite metadata schema. Once messages are mapped, they are sent, one at a time, to the DataCite API via POST request. This process informs DataCite of the minting of new DOIs that must be available within their system.

Thanks to the RabbitMQ queue, this process is done asynchronously from the rest of the ingestion process. The PID records are created in the DiSSCo PID API during ingestion, and are upgraded to DataCite APIs when the message reaches this Publisher.

Infrastructure Diagram

Error Handling

In the event of an exception during this process, a critical error is logged. Manual action will be needed to amend the issue. It is not possible to rollback previously minted PIDs, as this publication process is asynchronous, so the PID may already be in active use by the time the message is received by this Publisher.

Owner

  • Name: DiSSCo
  • Login: DiSSCo
  • Kind: organization
  • Email: info@dissco.eu
  • Location: Europe

Distributed System of Scientific Collections - pan-European Research Infrastructure. Updates on DiSSCo and natural science collections

GitHub Events

Total
  • Release event: 2
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 24
  • Push event: 34
  • Pull request review comment event: 2
  • Pull request review event: 13
  • Pull request event: 27
  • Create event: 26
Last Year
  • Release event: 2
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 24
  • Push event: 34
  • Pull request review comment event: 2
  • Pull request review event: 13
  • Pull request event: 27
  • Create event: 26

Dependencies

.github/workflows/build.yaml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • anothrNick/github-tag-action 1.36.0 composite
  • aquasecurity/trivy-action master composite
  • docker/build-push-action v3 composite
  • docker/login-action v1 composite
  • docker/metadata-action v4 composite
Dockerfile docker
  • eclipse-temurin 21-jdk-alpine build
pom.xml maven
  • com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  • jakarta.validation:jakarta.validation-api
  • org.projectlombok:lombok
  • org.springframework.boot:spring-boot-starter-actuator
  • org.springframework.boot:spring-boot-starter-validation
  • org.springframework.boot:spring-boot-starter-web
  • org.springframework.boot:spring-boot-starter-webflux
  • org.springframework.kafka:spring-kafka
  • com.squareup.okhttp3:mockwebserver test
  • com.squareup.okhttp3:okhttp test
  • org.springframework.boot:spring-boot-starter-test test
  • org.springframework.kafka:spring-kafka-test test