Page 2: Setup Configurations
A. Database:
The only configuration that is used is in /dmp-db-scema/Docker/dmp-db.env
Inside the file it contains configuration for the admin users (database, app), database name and admin passwords.
The values are:
ADMIN_USER: Admin username (app)
ADMIN_PASSWORD: Admin password (app)
POSTGRES_DB: database name
POSTGRES_USER: Admin username (database)
POSTGRES_PASSWORD: Admin password (database)
NOTE: The passwords are ONLY placeholders and MUST be changed
B. Backend
1. App configuration
The app configurations are in the /dmp-backend/web/src/main/resources/config folder.
Inside the folder there are 4 .properties files:
- application.properties: Main configuration file (loads before any other)
- application-devel.properties: Devel Profile (Internal development) configuration
- application-staging.properties: Staging Profile (testing build) configuration
- application-production.properties: Production Profile (main build) configuration
Inside the files you will find the following properties:
Properties with bold are the minimun that have to be configured so as the app works properly
application-staging.properties | application.properties | |
---|---|---|
dmp.domain | the domain name of the server | |
database.url | the url that is used to connect to database (JDBC based) | |
database.username | database admin username | |
database.password | database admin password | |
pdf.converter.url | the url of the PDF converter service | |
server.port | the network port the application is listening to | |
server.tomcat.max-threads | the maximum number of request processing threads to be created | |
server.tomcat.max-connections | the maximum number of connections that the server accepts | |
spring.profiles.active | the active profile of the app (devel, staging, production) | |
elasticsearch.host | the host url of the elastic server | |
elasticsearch.port | the host port of the elastic server | |
elasticsearch.username | the elastic server admin username | |
elasticsearch.password | the elastic server admin password | |
elasticsearch.index | the index which will be used if exists or created | |
elasticsearch.usingssl | whether SSL is used to communicate with the elastic server | |
elasticsearch.certPath | the path of the certification used in SSL | |
elasticsearch.certKey | the key of the certification used in SSL | |
configuration.externalUrls | path to the externalUrls xml file | |
configuration.rda | path to RDACommonStandards.txt | |
configuration.h2020template | path to H2020 export dmp template (.docx) | |
configuration.h2020datasettemplate | path to H2020 export dataset template (.docx) | |
configuration.configurable_login_providers | path to ConfigurableLoginProviders.json | |
configuration.doi_funder | path to DOI_Funder.json | |
autouser.root.* | setup an auto login user (email, username, password) | |
facebook.login.clientId | Facebook API client Id | |
facebook.login.clientSecret | Facebook API client Secret | |
facebook.login.namespace | Facebook API namespace | |
google.login.clientId | Google API client Id | |
linkedin.login.clientId | LinkedIn API client Id | |
linkedin.login.clientSecret | LinkedIn API client Secret | |
linkedin.login.redirect_uri | LinkedIn API redirect uri | |
linkedin.login.user_info_url | LinkedIn API user info url | |
linkedin.login.user_email | LinkedIn API user email | |
linkedin.login.access_token_url | LinkedIn API access token url | |
twitter.login.clientId | Twitter API client Id | |
twitter.login.clientSecret | Twitter API client Secret | |
twitter.login.redirect_uri | Twitter API redirect uri | |
b2access.externallogin.user_info_url | B2 Access API user info url | |
b2access.externallogin.access_token_url | B2 Access API access token url | |
b2access.externallogin.redirect_uri | B2 Access API redirect uri | |
b2access.externallogin.clientid | B2 Access API client Id | |
b2access.externallogin.clientSecret | B2 Access API client Secret | |
database.driver-class-name | database class name | |
database.lock-fail-interval | time before the editor lock to be automatially dleleted (in milliseconds) | |
database.driver-class-name | database class name | |
userguide.path | path to the user manual directory e.g <project's directory>/user-guide | |
notification.rateInterval | time before to retry to send the notifications (in milliseconds) | |
notification.maxRetries | number of maximum retries before it stop sending the notifications | |
notification.modified.subject | default email subject for edited DMP/Dataset notification | |
notification.publish.subject | default email subject for published DMP notification | |
notification.finalised.subject | default email subject for finalised DMP notification | |
notification.modifiedFinalised.subject | default email subject for modified and finalised DMP notification | |
logging.config | path to the logback configuration file | |
temp.temp | path to internal temp folder | |
file.storage | path to internal final folder | |
language.path | path to the language files e.g <project's directory>/dmp-frontend/src/assets/i18n/ |
2. External Urls
The externalUrls are used in order to retrieve data from external sources (funders, grants, organizations etc)
The files are in <project's directory>/dmp-backend/externalUrls folder.
There are 3 files:
ExternalUrls.xml: Default externalUrl configuration
ExternalUrlsStaging.xml: externalUrls configuration for the Staging Profile
ExternalUrlsProduction.xml: externalUrls configuration for the Production Profile
Inside these files there are:
registries: The Dataset external reference for registries
grants: The DMP grants
projects: The DMP projects
funders: The DMP funders
repositories: The Dataset external reference for repositories
services: The Dataset external reference for services
researchers: The DMP researchers
organisations: The DMP organizations
datasets: The Dataset external reference for datasets
Inside each one there are:
urls: list of urls from where the data will be retrieved
fetchMode: How the data will be fetched. Available values are:
FIRST: Load ONLY the first urls configuration
ALL: Load ALL the urls configurations
On each urls there are urlConfigs from which each one is having:
key: Configuration key (lowercase)
Label: Configuration Name
type: type of the data source (usually External)
url: The url template that will be used for retrieving the data
funderQuery: (OpenAIRE only) The Funder search query
firstPage: The default page that is used if none is specified
contenttype: The content Type to be returned by the source
data: the data returned
paginationpath: The path where pagination data are from the response
Inside data there are different fields based on the content type:
JSON:
path: the json path where the data are
fields: the name of the fields to be read and where to be mapped. example : <id>'myid'</id> it will map myid to the id value
XML:
parse-class: The classpath to be used for parsing the xml document
parse-field: The xml field that is used as a root for parsing
merge-fields: The fields that will be merged together (with space character)
merge-field-name: The name of the merged field
B. Frontend
The only configuration that is used is the <project's directory>/dmp-frontend/webapp/config/config.json
Inside the file there are those properties:
production: Enable or Disable Production default configuration
Server: The url to the Backend service
App: The url to the Frontend service
defaultCulture: The default culture
LoginProviders which has:
enabled: An array of the loginproviders to be used. Available values:
1: Google
2: Facebook
3: Twitter
4: LinkedIn
6: B2Access
7: ORCID
8: OpenAIRE
9: Configurable LoginProvider
10: Zenodo
lockInteval: After how much time it will send an editor lock request to the backend (in milliseconds)
guideAssets: path to the folder that contains the user Manual assets (images etc)
allowOrganizationCreator: Allow the user to create custom organizations when creating or updating DMPs
The minimun property that has to be configured is loginProviders.googleConfiguration.clientId which stores the Google API client Id