Lampros Smyrnaios d1c336f4e7 | ||
---|---|---|
src | ||
.gitignore | ||
Dockerfile | ||
LICENSE.txt | ||
README.md | ||
pom.xml |
README.md
uoa-repository-manager-service (Provide backend)
Introduction
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:
- 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
- Provide all not-set or redacted configurations, inside the src/main/resources/application.yml file.
- 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:
- 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
- Provide all not-set or redacted configurations, inside the src/main/resources/application.yml file.
- Build Docker image
docker build . -t <docker-image-name>
Deployment
Prerequisites
- PostgreSQL 9.5+ [...]
Instructions
Execute java -jar ./target/uoa-repository-manager-service.jar
Installation
Prerequisites
Infrastructure Installation and Configuration
Install all software found in the list of Prerequisites using the official documentation.
PostgreSQL - Configuration
[...]
Installation
No additional installation steps are needed.
Configuration
The configuration can be set inside the src/main/resources/application.yml file.
Server-related configuration.
server:
port: 8480
servlet:
context-path: /uoa-repository-manager-service
Swagger UI - related configuration
springdoc:
swagger-ui:
disable-swagger-default-url: true
path: /swagger-ui.html
displayRequestDuration: true
api-docs:
path: /api-docs
Datasource -related configuration
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/
[...]
adminEmail: XX
analyticsURL: https://analytics.openaire.eu/addsite.php?
baseUrl: ${services.openaireServicesBaseUrl}/openaire
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
[...]
topic_types:
url: ${services.openaireServicesBaseUrl}/provision/mvc/vocabularies/dnet:topic_types.json # TODO - Check this! The requested json file does not exist in the DEV-url below)
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 - related configuration.
validator:
results:
url: https://beta.provide.openaire.eu/compatibility/browseHistory/
validatorService:
url: http://${services.provide.dev-machine}:8080/uoa-validator-service/services/validatorWebService
Security
Maintenance
Recovery
References
Notes for Swagger-UI:
- Access it through this url: http://localhost:8480/uoa-repository-manager-service/swagger-ui/index.html
- In order to request data from most endpoints, you have to be a "REGISTERED_USER", otherwise you will get a 403 error code.
- In order to be a registered user, you have to run the UI-service , in the same machine, at the same time and login through a browser, using the following url: http://localhost:8480/uoa-repository-manager-service/openid_connect_login