Go to file
Konstantinos Spyrou 768004de62 removed try-catch and reused existing restTemplate 2024-09-23 12:15:32 +03:00
src removed try-catch and reused existing restTemplate 2024-09-23 12:15:32 +03:00
.gitignore created basic .gitignore 2022-11-24 15:58:30 +02:00
Dockerfile merged branch springboot - 61629:HEAD 2021-10-22 11:32:44 +00:00
LICENSE.txt Add 'LICENSE.txt' 2023-02-14 20:39:36 +01:00
README.md Fix conflicts in README. 2024-04-04 16:15:17 +03:00
pom.xml java 11 compatible 2024-09-09 16:19:31 +03:00

README.md

OpenAIRE Provide - backend service

Introduction

OpenAIRE PROVIDE is the content gateway service of OpenAIRE, where data providers are invited to connect scholarly content with OpenAIRE.
OpenAIRE PROVIDE allows repositories, data archives, journals, aggregators, CRIS systems, to enter the OpenAIRE and European Open Science (EOSC) ecosystem and be accessible by millions of researchers, research institutes and networks, research funders, policy makers and citizens.
OpenAIRE PROVIDE lowers any technological barriers, by supporting a series of integrations, therefore, enabling its users to visually access OpenAIRE's services that are responsible for the data harvesting process.

There are four distinctive steps from the initial express of interest for OpenAIRE PROVIDE to the actual content availability on OpenAIRE and EOSC.
The steps indicate the important subservices of OpenAIRE that perform the following functionalities:

  • Validation of data sources with the OpenAIRE guidelines (via the OpenAIRE Validator)
  • Registration of data sources to OpenAIRE and global interlinked networks provides links to content for text and data mining, view history of validations, status of harvesting Enrichment of metadata information that describes the data sources to be available through OpenAIRE.
  • Subscribe and view/receive notifications to enrich the metadata or the content of the data source (via the OpenAIRE Broker)
  • View usage statistics of Open research impact by subscribing to the OpenAIRE UsageCounts service; view aggregated, cleaned usage stats for repository access and broaden your mechanisms for impact assessment.

Architecture

[...]


Building

The backend is a Maven project. It has been tested using Java 8.

Manual Build Instructions

Requirements:
  • Java 8
  • Apache Maven 3+
Build Instructions:
  1. Clone the repository and move inside the directory
    git clone https://code-repo.d4science.org/MaDgIK/uoa-repository-manager-service.git && cd uoa-repository-manager-service
  2. Provide all not-set or redacted configurations, inside the src/main/resources/application.yml file.
  3. Build Maven project
    mvn clean package
    Produces the file "./target/uoa-repository-manager-service.jar" which can be run with: - Run the app with: java -jar ./target/uoa-repository-manager-service.jar

Build using Docker

The repository contains a Dockerfile which can be used to build an image containing the compiled project.

Requirements:
  • Docker
Build Instructions:
  1. Clone the repository and move inside the directory
    git clone https://code-repo.d4science.org/MaDgIK/uoa-repository-manager-service.git && cd uoa-repository-manager-service
  2. Provide all not-set or redacted configurations, inside the src/main/resources/application.yml file.
  3. Build Docker image
    docker build . -t <docker-image-name>

Configuration

The configuration can be set inside the src/main/resources/application.yml file.

server:
   port: 8480
   servlet:
      context-path: /uoa-repository-manager-service
springdoc:
   swagger-ui:
      disable-swagger-default-url: true
      path: /swagger-ui.html
      displayRequestDuration: true
   api-docs:
      path: /api-docs
spring:
   jpa:
      hibernate:
         ddl-auto: update
    datasource:
        url: ${services.provide.db.url}
        username: ${services.provide.db.username}
        password: ${services.provide.db.password}
        driverClassName: ${services.provide.db.driverClassName}

Configurations about the provide service.

services:
   openaireServicesBaseUrl: https://beta.services.openaire.eu
   provide:
      dev-machine: 88.197.53.71   # VM-71

Configuration about Authentication and authorization infrastructure (AAI).

      aai:
         baseURL: https://aai.openaire.eu
         oidc:
            domain: .openaire.eu # use empty value for local, otherwise: ".openaire.eu"
            id: XX
            issuer: ${services.provide.aai.baseURL}/oidc/
            redirectURL: http://localhost:${server.port}${server.servlet.context-path}/openid_connect_login
            secret: XX
            webURL: http://localhost:4200/join
         registry:
            coid: XX
            username: XX
            password: XX
            production: false
            url: ${services.provide.aai.baseURL}/registry/

Broker's configuration

      broker:
         api: api/
         openaire: openaireBroker
         port: 443
         url: https://beta.broker.openaire.eu

Client's configuration

      clients:
         dsm: ${services.provide.baseUrl}
         search: ${services.openaireServicesBaseUrl}/search/v2/api
         usageEvents: http://beta.lbs.openaire.eu:8080/ajax/summary
         usagestats: ${services.openaireServicesBaseUrl}/usagestats

Database configuration for Provide.

      db:
         driverClassName: org.postgresql.Driver
         password: dnetPwd
         url: jdbc:postgresql://${services.provide.dev-machine}:5432/repomanager
         username: dnet

Configuration for the IS LookUp service.

      iSLookUpService:
         url: https://dev-openaire.d4science.org:443/is/services/isLookUp

Mail-server configuration.

      mail:
         authenticate: true
         debug: false
         from: XX
         host: smtp.gmail.com
         mode: ssl
         password: XX
         port: 465
         replyTo: XX
         username: XX

Redis's configuration

      redis:
         host: vereniki.athenarc.gr
         password: XX
         port: 6379

Usage statistics

      usageStatisticsDiagramsBaseURL: https://beta.openaire.eu/stats3/
      usageStatisticsNumbersBaseURL: ${services.openaireServicesBaseUrl}/usagestats/datasources/
      usagestats:
         adminEmail: XX
         sushiliteEndpoint: ${services.openaireServicesBaseUrl}/usagestats/sushilite/
         sushiliteR5Endpoint: ${services.openaireServicesBaseUrl}/usagestats_r5/sushilite/r5/
      validator:
         results:
            url: https://beta.provide.openaire.eu/compatibility/browseHistory/
      validatorService:
         url: http://${services.provide.dev-machine}:8080/uoa-validator-service/services/validatorWebService

Miscellaneous

      topic_types:
         url: ${services.openaireServicesBaseUrl}/provision/mvc/vocabularies/dnet:topic_types.json
      adminEmail: XX
      analyticsURL: https://analytics.openaire.eu/addsite.php?
      baseUrl: ${services.openaireServicesBaseUrl}/openaire

Deployment

Prerequisites

  • install PostgreSQL 9.5+
  • Run the app with: java -jar ./target/uoa-repository-manager-service.jar --spring.config.location=application.yml

misc

Notes for Swagger-UI: