diff --git a/README.md b/README.md index 169b22b..5cb53f4 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,238 @@ # uoa-repository-manager-service (Provide backend) +## Introduction +## Architecture + + +
+
+
+ +## Building +The backend is a [Maven](https://maven.apache.org/index.html) 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 ` + + +## Deployment + +### Prerequisites +* [PostgreSQL 9.5+](https://www.postgresql.org/) + [...] + + +### Instructions +Execute `java -jar ./target/uoa-repository-manager-service.jar` + + +## Installation + +### Prerequisites +* [PostgreSQL 9.5+](https://www.postgresql.org/) + + +### Infrastructure Installation and Configuration +Install all software found in the list of [Prerequisites](#Prerequisites) using the official documentation. + + +#### PostgreSQL - Configuration [...] -## Install and run: -- Run **git clone** and then **cd uoa-repository-manager-service**. -- Provide all not-set or redacted configurations, inside the **src/main/resources/application.yml** file. -- Build the app with: `mvn clean install` -- Run the app with: `java -jar ./target/uoa-repository-manager-service.jar` +### 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. diff --git a/pom.xml b/pom.xml index cfa3754..8dc28ea 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,7 @@ org.springframework.boot spring-boot-starter-parent 2.7.17 + 4.0.0