# 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 [...] ## 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](https://code-repo.d4science.org/MaDgIK/uoa-repository-manager-ui) , 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 ## Introduction ## Architecture ## Bulding ## Deployment ## Installation ## Configuration ## Security ## Maintenance ## Recovery ## References