From 755c79b7affc049ae38a66385b103b47c7ebe31c Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 10 Oct 2023 16:49:48 +0300 Subject: [PATCH] Separate configuration to different files --- .../main/resources/config/actuator-dev.yml | 3 + .../src/main/resources/config/actuator.yml | 25 ++ .../resources/config/application-devel.yml | 20 +- .../src/main/resources/config/application.yml | 230 ++---------------- .../web/src/main/resources/config/db-dev.yml | 5 + .../web/src/main/resources/config/db.yml | 6 + .../main/resources/config/elasticsearch.yml | 10 + .../src/main/resources/config/email-dev.yml | 7 + .../web/src/main/resources/config/email.yml | 53 ++++ .../src/main/resources/config/external.yml | 8 + .../src/main/resources/config/file-path.yml | 31 +++ .../web/src/main/resources/config/logging.yml | 2 + .../src/main/resources/config/security.yml | 62 +++++ .../web/src/main/resources/config/server.yml | 12 + 14 files changed, 239 insertions(+), 235 deletions(-) create mode 100644 dmp-backend/web/src/main/resources/config/actuator-dev.yml create mode 100644 dmp-backend/web/src/main/resources/config/actuator.yml create mode 100644 dmp-backend/web/src/main/resources/config/db-dev.yml create mode 100644 dmp-backend/web/src/main/resources/config/db.yml create mode 100644 dmp-backend/web/src/main/resources/config/elasticsearch.yml create mode 100644 dmp-backend/web/src/main/resources/config/email-dev.yml create mode 100644 dmp-backend/web/src/main/resources/config/email.yml create mode 100644 dmp-backend/web/src/main/resources/config/external.yml create mode 100644 dmp-backend/web/src/main/resources/config/file-path.yml create mode 100644 dmp-backend/web/src/main/resources/config/logging.yml create mode 100644 dmp-backend/web/src/main/resources/config/security.yml create mode 100644 dmp-backend/web/src/main/resources/config/server.yml diff --git a/dmp-backend/web/src/main/resources/config/actuator-dev.yml b/dmp-backend/web/src/main/resources/config/actuator-dev.yml new file mode 100644 index 000000000..557561f50 --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/actuator-dev.yml @@ -0,0 +1,3 @@ +endpoints: + prometheus: + sensitive: false \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/actuator.yml b/dmp-backend/web/src/main/resources/config/actuator.yml new file mode 100644 index 000000000..63dbe1eee --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/actuator.yml @@ -0,0 +1,25 @@ +management: + endpoint: + metrics: + enabled: true + prometheus: + enabled: true + health: + show-details: always + metrics: + enable: + http: true + jvm: true + jdbc: true + tomcat: true + logback: true + hikaricp: true + cache: true + export: + prometheus: + enabled: true + endpoints: + web: + base-path: / + exposure: + include: prometheus,health,metrics \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/application-devel.yml b/dmp-backend/web/src/main/resources/config/application-devel.yml index 6f663646e..7ccd5cfec 100644 --- a/dmp-backend/web/src/main/resources/config/application-devel.yml +++ b/dmp-backend/web/src/main/resources/config/application-devel.yml @@ -1,20 +1,2 @@ -spring: - datasource: - maxIdle: 10 - minIdle: 5 - maxActive: 10 - audit: - enable: false - -email: - invite: classpath:templates/email/email.html - confirmation: classpath:templates/email/emailConfirmation.html - merge: classpath:templates/email/emailMergeConfirmation.html - unlink: classpath:templates/email/emailUnlinkConfirmation.html - dataset: - template: classpath:templates/email/emailAdmin.html - -endpoints: - prometheus: - sensitive: false \ No newline at end of file + enable: false \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/application.yml b/dmp-backend/web/src/main/resources/config/application.yml index adaf0a0b4..e4637e137 100644 --- a/dmp-backend/web/src/main/resources/config/application.yml +++ b/dmp-backend/web/src/main/resources/config/application.yml @@ -1,217 +1,15 @@ -server: - port: 8081 - tomcat: - threads: - max: 20 - max-connections: 10000 - -management: - endpoint: - metrics: - enabled: true - prometheus: - enabled: true - health: - show-details: always - metrics: - enable: - http: true - jvm: true - jdbc: true - tomcat: true - logback: true - hikaricp: true - cache: true - export: - prometheus: - enabled: true - endpoints: - web: - base-path: / - exposure: - include: prometheus,health,metrics - -mail: - subject: "Invitation to DMP Plan {dmpname}" - from: opendmp-dev@cite.gr - -admin: - mail: - subject: "You have been invited to the Dataset Template {templateName}" - spring: - servlet: - multipart: - max-file-size: 10MB - max-request-size: 10MB - mail: - default-encoding: UTF-8 - host: hermes.local.cite.gr - port: 25 - protocol: smtp - test-connection: false - properties: - mail: - smtp: - auth: false - starttls: - enable: false - -elasticsearch: - host: localhost - port: 9200 - username: elastic - password: ${ELASTIC_PASS:} - index: ${ELASTIC_INDEX:} - usingssl: false - certPath: ${ELASTIC_CERT_PATH:} - certKey: ${ELASTIC_CERT_KEY:} - innerHitsSize: 100 - -configuration: - externalUrls: externalUrls/ExternalUrls.xml - semantics: Semantics.json - h2020template: documents/h2020.docx - h2020datasettemplate: documents/h2020_dataset.docx - configurable_login_providers: configurableLoginProviders.json - pid_links: pidLinks.json - -email: - invite: file:templates/email/email.html - confirmation: file:templates/email/emailConfirmation.html - merge: file:templates/email/emailMergeConfirmation.html - unlink: classpath:templates/email/emailUnlinkConfirmation.html - dataset: - template: file:templates/email/emailAdmin.html - -notification: - finalised: - subject: "[OpenDMP] The {name} has been finalised" - template: classpath:templates/notifications/finalisedNotification.html - modified_finalised: - template: classpath:templates/notifications/modifiedFinalisedNotification.html - modified: - subject: "[OpenDMP] The {name} has been modified" - template: classpath:templates/notifications/modifiedNotification.html - publish: - subject: "[OpenDMP] The {name} has been published" - template: classpath:templates/notifications/publishNotification.html - rateInterval: 30000 - maxRetries: 10 - modifiedFinalised: - subject: "[OpenDMP] The {name} has been modified and finalised" - - -autouser: - root: - email: ${AUTOUSER_EMAIL:} - username: ${AUTOUSER_USER:} - password: ${AUTOUSER_PASS:} - -facebook: - login: - clientId: ${FACEBOOK_CLIENT_ID:} - clientSecret: ${FACEBOOK_CLIENT_SECRET:} - namespace: ${FACEBOOK_NAMESPACE:} - -google: - login: - clientId: ${GOOGLE_CLIENT_ID:} - -linkedin: - login: - clientId: ${LINKEDIN_CLIENT_ID:} - clientSecret: ${LINKEDIN_CLIENT_SECRET:} - redirect_uri: http://localhost:4200/login/linkedin - user_info_url: https://api.linkedin.com/v2/me - user_email: https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) - access_token_url: https://www.linkedin.com/uas/oauth2/accessToken - -twitter: - login: - clientId: ${TWITTER_CLIENT_ID:} - clientSecret: ${TWITTER_CLIENT_SECRET:} - redirect_uri: http://localhost:4200/login/twitter - -b2access: - externallogin: - user_info_url: https://b2access-integration.fz-juelich.de:443/oauth2/userinfo - access_token_url: https://b2access-integration.fz-juelich.de:443/oauth2/token - redirect_uri: http://opendmp.eu/api/oauth/authorized/b2access - clientid: ${B2ACCESS_CLIENT_ID:} - clientSecret: ${B2ACCESS_CLIENT_SECRET:} - -database: - driver-class-name: org.postgresql.Driver - lock-fail-interval: 120000 - url: ${DB_URL:} - username: ${DB_USER:} - password: ${DB_PASS:} - -userguide: - path: dmp-backend/web/src/main/resources/material/user-guide - -about: - path: dmp-backend/web/src/main/resources/material/about - -termsofservice: - path: dmp-backend/web/src/main/resources/material/terms-of-service - -glossary: - path: dmp-backend/web/src/main/resources/material/glossary - -faq: - path: dmp-backend/web/src/main/resources/material/faq - -logging: - config: classpath:logging/logback-${spring.profiles.active}.xml - -temp: - temp: ${TEMP_STORAGE:} - -file: - storage: ${FILE_STORAGE:} - - -zenodo: - affiliation: ARGOS - community: argos - login: - access_token_url: ${ZENODO_ACCESS_TOKEN_URL:} - client_id: ${ZENODO_CLIENT_ID:} - client_secret: ${ZENODO_CLIENT_SECRET:} - redirect_uri: http://localhost:4200/login/external/zenodo - -pdf: - converter: - url: ${PDF_CONVERTER_URL:} - -orcid: - login: - client_id: ${ORCID_CLIENT_ID:} - client_secret: ${ORCID_CLIENT_SECRET:} - access_token_url: https://orcid.org/oauth/token - redirect_uri: http://localhost:4200/login/external/orcid - -openaire: - login: - client_id: ${OPENAIRE_CLIENT_ID:} - client_secret: ${OPENAIRE_CLIENT_SECRET:} - access_token_url: ${OPENAIRE_ACCESS_TOKEN_URL:} - redirect_uri: ${OPENAIRE_REDIRECT_URI:} - user_info_url: ${OPENAIRE_USER_INFO_URI:} - -conf_email: - expiration_time_seconds: 14400 - subject: "OpenDMP email confirmation" - -publicapi: - host: devel.opendmp.eu - basePath: /srv - schema: https - -contact_email: - mail: ${CONTACT_EMAIL:} - -language: - path: dmp-frontend/src/assets/i18n/ \ No newline at end of file + jackson: + default-property-inclusion: non_null + config: + import: optional:classpath:config/app.env[.properties], optional:file:../config/app.env[.properties], + optional:classpath:config/db.yml[.yml], optional:classpath:config/db-${spring.profiles.active}.yml[.yml], optional:file:../config/db-${spring.profiles.active}.yml[.yml], + optional:classpath:config/security.yml[.yml], optional:classpath:config/security-${spring.profiles.active}.yml[.yml], optional:file:../config/security-${spring.profiles.active}.yml[.yml], + optional:classpath:config/server.yml[.yml], optional:classpath:config/server-${spring.profiles.active}.yml[.yml], optional:file:../config/server-${spring.profiles.active}.yml[.yml], + optional:classpath:config/logging.yml[.yml], optional:classpath:config/logging-${spring.profiles.active}.yml[.yml], optional:file:../config/logging-${spring.profiles.active}.yml[.yml], + optional:classpath:config/cache.yml[.yml], optional:classpath:config/cache-${spring.profiles.active}.yml[.yml], optional:file:../config/cache-${spring.profiles.active}.yml[.yml], + optional:classpath:config/actuator.yml[.yml], optional:classpath:config/actuator-${spring.profiles.active}.yml[.yml], optional:file:../config/actuator-${spring.profiles.active}.yml[.yml], + optional:classpath:config/email.yml[.yml], optional:classpath:config/email-${spring.profiles.active}.yml[.yml], optional:file:../config/email-${spring.profiles.active}.yml[.yml], + optional:classpath:config/elasticsearch.yml[.yml], optional:classpath:config/elasticsearch-${spring.profiles.active}.yml[.yml], optional:file:../config/elasticsearch-${spring.profiles.active}.yml[.yml], + optional:classpath:config/file-path.yml[.yml], optional:classpath:config/file-path-${spring.profiles.active}.yml[.yml], optional:file:../config/file-path-${spring.profiles.active}.yml[.yml], + optional:classpath:config/external.yml[.yml], optional:classpath:config/external-${spring.profiles.active}.yml[.yml], optional:file:../config/external-${spring.profiles.active}.yml[.yml] \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/db-dev.yml b/dmp-backend/web/src/main/resources/config/db-dev.yml new file mode 100644 index 000000000..c5d78eea6 --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/db-dev.yml @@ -0,0 +1,5 @@ +spring: + datasource: + maxIdle: 10 + minIdle: 5 + maxActive: 10 \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/db.yml b/dmp-backend/web/src/main/resources/config/db.yml new file mode 100644 index 000000000..47699b50f --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/db.yml @@ -0,0 +1,6 @@ +database: + driver-class-name: org.postgresql.Driver + lock-fail-interval: 120000 + url: ${DB_URL:} + username: ${DB_USER:} + password: ${DB_PASS:} \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/elasticsearch.yml b/dmp-backend/web/src/main/resources/config/elasticsearch.yml new file mode 100644 index 000000000..43312d25b --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/elasticsearch.yml @@ -0,0 +1,10 @@ +elasticsearch: + host: localhost + port: 9200 + username: elastic + password: ${ELASTIC_PASS:} + index: ${ELASTIC_INDEX:} + usingssl: false + certPath: ${ELASTIC_CERT_PATH:} + certKey: ${ELASTIC_CERT_KEY:} + innerHitsSize: 100 \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/email-dev.yml b/dmp-backend/web/src/main/resources/config/email-dev.yml new file mode 100644 index 000000000..9662401bc --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/email-dev.yml @@ -0,0 +1,7 @@ +email: + invite: classpath:templates/email/email.html + confirmation: classpath:templates/email/emailConfirmation.html + merge: classpath:templates/email/emailMergeConfirmation.html + unlink: classpath:templates/email/emailUnlinkConfirmation.html + dataset: + template: classpath:templates/email/emailAdmin.html \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/email.yml b/dmp-backend/web/src/main/resources/config/email.yml new file mode 100644 index 000000000..a0c958c8f --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/email.yml @@ -0,0 +1,53 @@ +spring: + mail: + default-encoding: UTF-8 + host: hermes.local.cite.gr + port: 25 + protocol: smtp + test-connection: false + properties: + mail: + smtp: + auth: false + starttls: + enable: false + +mail: + subject: "Invitation to DMP Plan {dmpname}" + from: opendmp-dev@cite.gr + +admin: + mail: + subject: "You have been invited to the Dataset Template {templateName}" + +email: + invite: file:templates/email/email.html + confirmation: file:templates/email/emailConfirmation.html + merge: file:templates/email/emailMergeConfirmation.html + unlink: classpath:templates/email/emailUnlinkConfirmation.html + dataset: + template: file:templates/email/emailAdmin.html + +conf_email: + expiration_time_seconds: 14400 + subject: "OpenDMP email confirmation" + +contact_email: + mail: ${CONTACT_EMAIL:} + +notification: + finalised: + subject: "[OpenDMP] The {name} has been finalised" + template: classpath:templates/notifications/finalisedNotification.html + modified_finalised: + template: classpath:templates/notifications/modifiedFinalisedNotification.html + modified: + subject: "[OpenDMP] The {name} has been modified" + template: classpath:templates/notifications/modifiedNotification.html + publish: + subject: "[OpenDMP] The {name} has been published" + template: classpath:templates/notifications/publishNotification.html + rateInterval: 30000 + maxRetries: 10 + modifiedFinalised: + subject: "[OpenDMP] The {name} has been modified and finalised" \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/external.yml b/dmp-backend/web/src/main/resources/config/external.yml new file mode 100644 index 000000000..8c40185a5 --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/external.yml @@ -0,0 +1,8 @@ +pdf: + converter: + url: ${PDF_CONVERTER_URL:} + +publicapi: + host: devel.opendmp.eu + basePath: /srv + schema: https \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/file-path.yml b/dmp-backend/web/src/main/resources/config/file-path.yml new file mode 100644 index 000000000..47c43ebff --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/file-path.yml @@ -0,0 +1,31 @@ +configuration: + externalUrls: externalUrls/ExternalUrls.xml + semantics: Semantics.json + h2020template: documents/h2020.docx + h2020datasettemplate: documents/h2020_dataset.docx + configurable_login_providers: configurableLoginProviders.json + pid_links: pidLinks.json + +userguide: + path: dmp-backend/web/src/main/resources/material/user-guide + +about: + path: dmp-backend/web/src/main/resources/material/about + +termsofservice: + path: dmp-backend/web/src/main/resources/material/terms-of-service + +glossary: + path: dmp-backend/web/src/main/resources/material/glossary + +faq: + path: dmp-backend/web/src/main/resources/material/faq + +temp: + temp: ${TEMP_STORAGE:} + +file: + storage: ${FILE_STORAGE:} + +language: + path: dmp-frontend/src/assets/i18n/ \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/logging.yml b/dmp-backend/web/src/main/resources/config/logging.yml new file mode 100644 index 000000000..1910ce38d --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/logging.yml @@ -0,0 +1,2 @@ +logging: + config: classpath:logging/logback-${spring.profiles.active}.xml \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/security.yml b/dmp-backend/web/src/main/resources/config/security.yml new file mode 100644 index 000000000..1ff6a8a3e --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/security.yml @@ -0,0 +1,62 @@ +autouser: + root: + email: ${AUTOUSER_EMAIL:} + username: ${AUTOUSER_USER:} + password: ${AUTOUSER_PASS:} + +facebook: + login: + clientId: ${FACEBOOK_CLIENT_ID:} + clientSecret: ${FACEBOOK_CLIENT_SECRET:} + namespace: ${FACEBOOK_NAMESPACE:} + +google: + login: + clientId: ${GOOGLE_CLIENT_ID:} + +linkedin: + login: + clientId: ${LINKEDIN_CLIENT_ID:} + clientSecret: ${LINKEDIN_CLIENT_SECRET:} + redirect_uri: http://localhost:4200/login/linkedin + user_info_url: https://api.linkedin.com/v2/me + user_email: https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) + access_token_url: https://www.linkedin.com/uas/oauth2/accessToken + +twitter: + login: + clientId: ${TWITTER_CLIENT_ID:} + clientSecret: ${TWITTER_CLIENT_SECRET:} + redirect_uri: http://localhost:4200/login/twitter + +b2access: + externallogin: + user_info_url: https://b2access-integration.fz-juelich.de:443/oauth2/userinfo + access_token_url: https://b2access-integration.fz-juelich.de:443/oauth2/token + redirect_uri: http://opendmp.eu/api/oauth/authorized/b2access + clientid: ${B2ACCESS_CLIENT_ID:} + clientSecret: ${B2ACCESS_CLIENT_SECRET:} + +zenodo: + affiliation: ARGOS + community: argos + login: + access_token_url: ${ZENODO_ACCESS_TOKEN_URL:} + client_id: ${ZENODO_CLIENT_ID:} + client_secret: ${ZENODO_CLIENT_SECRET:} + redirect_uri: http://localhost:4200/login/external/zenodo + +orcid: + login: + client_id: ${ORCID_CLIENT_ID:} + client_secret: ${ORCID_CLIENT_SECRET:} + access_token_url: https://orcid.org/oauth/token + redirect_uri: http://localhost:4200/login/external/orcid + +openaire: + login: + client_id: ${OPENAIRE_CLIENT_ID:} + client_secret: ${OPENAIRE_CLIENT_SECRET:} + access_token_url: ${OPENAIRE_ACCESS_TOKEN_URL:} + redirect_uri: ${OPENAIRE_REDIRECT_URI:} + user_info_url: ${OPENAIRE_USER_INFO_URI:} \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/server.yml b/dmp-backend/web/src/main/resources/config/server.yml new file mode 100644 index 000000000..96a0b7cba --- /dev/null +++ b/dmp-backend/web/src/main/resources/config/server.yml @@ -0,0 +1,12 @@ +server: + port: 8081 + tomcat: + threads: + max: 20 + max-connections: 10000 + +spring: + servlet: + multipart: + max-file-size: 10MB + max-request-size: 10MB \ No newline at end of file