From e740c0410e97156652fc7f7f93ca2407098ed354 Mon Sep 17 00:00:00 2001
From: "p.delpy@dkfz-heidelberg.de"
Date: Fri, 13 Sep 2024 08:17:12 +0200
Subject: [PATCH] refactor: put all modules in a common directory to remove
redundancy
---
cce/modules/lens-compose.yml | 33 --------
cce/modules/lens-setup.sh | 5 --
cce/vars | 2 +-
ccp/modules/exporter-setup.sh | 8 --
ccp/modules/teiler-setup.sh | 9 ---
ccp/vars | 2 +-
.../blaze-secondary-compose.yml | 0
.../blaze-secondary-setup.sh | 2 +-
.../modules => common}/datashield-compose.yml | 0
{ccp/modules => common}/datashield-setup.sh | 4 +-
common/datashield-sites.json | 15 ++++
{ccp/modules => common}/datashield.md | 0
{ccp/modules => common}/dnpm-compose.yml | 0
{ccp/modules => common}/dnpm-node-compose.yml | 0
{ccp/modules => common}/dnpm-node-setup.sh | 2 +-
{ccp/modules => common}/dnpm-setup.sh | 2 +-
.../export-and-qb.curl-templates | 0
{ccp/modules => common}/exporter-compose.yml | 0
{kr/modules => common}/exporter-setup.sh | 2 +-
{ccp/modules => common}/exporter.md | 0
{ccp/modules => common}/fhir2sql-compose.yml | 0
{ccp/modules => common}/fhir2sql-setup.sh | 2 +-
{ccp/modules => common}/fhir2sql.md | 0
.../id-management-compose.yml | 0
.../modules => common}/id-management-setup.sh | 2 +-
{ccp/modules => common}/id-management.md | 0
{itcc/modules => common}/lens-compose.yml | 0
common/lens-setup.sh | 5 ++
{ccp/modules => common}/mtba-compose.yml | 0
{ccp/modules => common}/mtba-setup.sh | 2 +-
{ccp/modules => common}/mtba.md | 0
{ccp/modules => common}/nngm-compose.yml | 0
{ccp/modules => common}/nngm-setup.sh | 2 +-
.../obds2fhir-rest-compose.yml | 0
.../obds2fhir-rest-setup.sh | 2 +-
{ccp/modules => common}/teiler-compose.yml | 0
{kr/modules => common}/teiler-setup.sh | 2 +-
{ccp/modules => common}/teiler.md | 0
dhki/vars | 2 +-
itcc/modules/lens-setup.sh | 5 --
itcc/vars | 2 +-
kr/modules/exporter-compose.yml | 67 ---------------
kr/modules/exporter.md | 15 ----
kr/modules/lens-compose.yml | 33 --------
kr/modules/lens-setup.sh | 5 --
kr/modules/obds2fhir-rest-compose.yml | 20 -----
kr/modules/obds2fhir-rest-setup.sh | 13 ---
kr/modules/teiler-compose.yml | 81 -------------------
kr/modules/teiler.md | 19 -----
kr/vars | 2 +-
50 files changed, 37 insertions(+), 330 deletions(-)
delete mode 100644 cce/modules/lens-compose.yml
delete mode 100644 cce/modules/lens-setup.sh
delete mode 100644 ccp/modules/exporter-setup.sh
delete mode 100644 ccp/modules/teiler-setup.sh
rename {ccp/modules => common}/blaze-secondary-compose.yml (100%)
rename {ccp/modules => common}/blaze-secondary-setup.sh (82%)
rename {ccp/modules => common}/datashield-compose.yml (100%)
rename {ccp/modules => common}/datashield-setup.sh (94%)
create mode 100644 common/datashield-sites.json
rename {ccp/modules => common}/datashield.md (100%)
rename {ccp/modules => common}/dnpm-compose.yml (100%)
rename {ccp/modules => common}/dnpm-node-compose.yml (100%)
rename {ccp/modules => common}/dnpm-node-setup.sh (96%)
rename {ccp/modules => common}/dnpm-setup.sh (90%)
rename {kr/modules => common}/export-and-qb.curl-templates (100%)
rename {ccp/modules => common}/exporter-compose.yml (100%)
rename {kr/modules => common}/exporter-setup.sh (91%)
rename {ccp/modules => common}/exporter.md (100%)
rename {ccp/modules => common}/fhir2sql-compose.yml (100%)
rename {ccp/modules => common}/fhir2sql-setup.sh (78%)
rename {ccp/modules => common}/fhir2sql.md (100%)
rename {ccp/modules => common}/id-management-compose.yml (100%)
rename {ccp/modules => common}/id-management-setup.sh (96%)
rename {ccp/modules => common}/id-management.md (100%)
rename {itcc/modules => common}/lens-compose.yml (100%)
create mode 100644 common/lens-setup.sh
rename {ccp/modules => common}/mtba-compose.yml (100%)
rename {ccp/modules => common}/mtba-setup.sh (85%)
rename {ccp/modules => common}/mtba.md (100%)
rename {ccp/modules => common}/nngm-compose.yml (100%)
rename {ccp/modules => common}/nngm-setup.sh (68%)
rename {ccp/modules => common}/obds2fhir-rest-compose.yml (100%)
rename {ccp/modules => common}/obds2fhir-rest-setup.sh (88%)
rename {ccp/modules => common}/teiler-compose.yml (100%)
rename {kr/modules => common}/teiler-setup.sh (82%)
rename {ccp/modules => common}/teiler.md (100%)
delete mode 100644 itcc/modules/lens-setup.sh
delete mode 100644 kr/modules/exporter-compose.yml
delete mode 100644 kr/modules/exporter.md
delete mode 100644 kr/modules/lens-compose.yml
delete mode 100644 kr/modules/lens-setup.sh
delete mode 100644 kr/modules/obds2fhir-rest-compose.yml
delete mode 100644 kr/modules/obds2fhir-rest-setup.sh
delete mode 100644 kr/modules/teiler-compose.yml
delete mode 100644 kr/modules/teiler.md
diff --git a/cce/modules/lens-compose.yml b/cce/modules/lens-compose.yml
deleted file mode 100644
index 12b95ce..0000000
--- a/cce/modules/lens-compose.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-version: "3.7"
-services:
- landing:
- container_name: lens_federated-search
- image: docker.verbis.dkfz.de/ccp/lens:${SITE_ID}
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.landing.rule=PathPrefix(`/`)"
- - "traefik.http.services.landing.loadbalancer.server.port=80"
- - "traefik.http.routers.landing.tls=true"
-
- spot:
- image: docker.verbis.dkfz.de/ccp-private/central-spot
- environment:
- BEAM_SECRET: "${FOCUS_BEAM_SECRET_SHORT}"
- BEAM_URL: http://beam-proxy:8081
- BEAM_PROXY_ID: ${SITE_ID}
- BEAM_BROKER_ID: ${BROKER_ID}
- BEAM_APP_ID: "focus"
- PROJECT_METADATA: "cce_supervisors"
- depends_on:
- - "beam-proxy"
- labels:
- - "traefik.enable=true"
- - "traefik.http.services.spot.loadbalancer.server.port=8080"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowmethods=GET,OPTIONS,POST"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolalloworiginlist=https://${HOST}"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowcredentials=true"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolmaxage=-1"
- - "traefik.http.routers.spot.rule=Host(`${HOST}`) && PathPrefix(`/backend`)"
- - "traefik.http.middlewares.stripprefix_spot.stripprefix.prefixes=/backend"
- - "traefik.http.routers.spot.tls=true"
- - "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot"
diff --git a/cce/modules/lens-setup.sh b/cce/modules/lens-setup.sh
deleted file mode 100644
index c19dc4b..0000000
--- a/cce/modules/lens-setup.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-if [ -n "$ENABLE_LENS" ];then
- OVERRIDE+=" -f ./$PROJECT/modules/lens-compose.yml"
-fi
\ No newline at end of file
diff --git a/cce/vars b/cce/vars
index 7d0c1a3..70a7c30 100644
--- a/cce/vars
+++ b/cce/vars
@@ -7,7 +7,7 @@ SUPPORT_EMAIL=manoj.waikar@dkfz-heidelberg.de
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
BROKER_URL_FOR_PREREQ=$BROKER_URL
-for module in $PROJECT/modules/*.sh
+for module in common/*.sh
do
log DEBUG "sourcing $module"
source $module
diff --git a/ccp/modules/exporter-setup.sh b/ccp/modules/exporter-setup.sh
deleted file mode 100644
index 9b947a6..0000000
--- a/ccp/modules/exporter-setup.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash -e
-
-if [ "$ENABLE_EXPORTER" == true ]; then
- log INFO "Exporter setup detected -- will start Exporter service."
- OVERRIDE+=" -f ./$PROJECT/modules/exporter-compose.yml"
- EXPORTER_DB_PASSWORD="$(echo \"This is a salt string to generate one consistent password for the exporter. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
- EXPORTER_API_KEY="$(echo \"This is a salt string to generate one consistent API KEY for the exporter. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 64)"
-fi
diff --git a/ccp/modules/teiler-setup.sh b/ccp/modules/teiler-setup.sh
deleted file mode 100644
index eed3f81..0000000
--- a/ccp/modules/teiler-setup.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash -e
-
-if [ "$ENABLE_TEILER" == true ];then
- log INFO "Teiler setup detected -- will start Teiler services."
- OVERRIDE+=" -f ./$PROJECT/modules/teiler-compose.yml"
- TEILER_DEFAULT_LANGUAGE=DE
- TEILER_DEFAULT_LANGUAGE_LOWER_CASE=${TEILER_DEFAULT_LANGUAGE,,}
- add_public_oidc_redirect_url "/ccp-teiler/*"
-fi
diff --git a/ccp/vars b/ccp/vars
index 0900914..012a963 100644
--- a/ccp/vars
+++ b/ccp/vars
@@ -20,7 +20,7 @@ OIDC_GROUP_CLAIM="groups"
POSTGRES_TAG=15.6-alpine
-for module in $PROJECT/modules/*.sh
+for module in common/*.sh
do
log DEBUG "sourcing $module"
source $module
diff --git a/ccp/modules/blaze-secondary-compose.yml b/common/blaze-secondary-compose.yml
similarity index 100%
rename from ccp/modules/blaze-secondary-compose.yml
rename to common/blaze-secondary-compose.yml
diff --git a/ccp/modules/blaze-secondary-setup.sh b/common/blaze-secondary-setup.sh
similarity index 82%
rename from ccp/modules/blaze-secondary-setup.sh
rename to common/blaze-secondary-setup.sh
index 307da01..08ebc23 100644
--- a/ccp/modules/blaze-secondary-setup.sh
+++ b/common/blaze-secondary-setup.sh
@@ -3,7 +3,7 @@
function blazeSecondarySetup() {
if [ -n "$ENABLE_SECONDARY_BLAZE" ]; then
log INFO "Secondary Blaze setup detected -- will start second blaze."
- OVERRIDE+=" -f ./$PROJECT/modules/blaze-secondary-compose.yml"
+ OVERRIDE+=" -f ./common/blaze-secondary-compose.yml"
#make oBDS2FHIR ignore ID-Management and replace target Blaze
PATIENTLIST_URL=" "
STORE_PATH="http://blaze-secondary:8080/fhir"
diff --git a/ccp/modules/datashield-compose.yml b/common/datashield-compose.yml
similarity index 100%
rename from ccp/modules/datashield-compose.yml
rename to common/datashield-compose.yml
diff --git a/ccp/modules/datashield-setup.sh b/common/datashield-setup.sh
similarity index 94%
rename from ccp/modules/datashield-setup.sh
rename to common/datashield-setup.sh
index 9692fb9..17b2ab4 100644
--- a/ccp/modules/datashield-setup.sh
+++ b/common/datashield-setup.sh
@@ -10,7 +10,7 @@ if [ "$ENABLE_DATASHIELD" == true ]; then
add_private_oidc_redirect_url "${OAUTH2_CALLBACK}"
log INFO "DataSHIELD setup detected -- will start DataSHIELD services."
- OVERRIDE+=" -f ./$PROJECT/modules/datashield-compose.yml"
+ OVERRIDE+=" -f ./common/datashield-compose.yml"
EXPORTER_OPAL_PASSWORD="$(generate_password \"exporter in Opal\")"
TOKEN_MANAGER_OPAL_PASSWORD="$(generate_password \"Token Manager in Opal\")"
OPAL_DB_PASSWORD="$(echo \"Opal DB\" | generate_simple_password)"
@@ -23,7 +23,7 @@ if [ "$ENABLE_DATASHIELD" == true ]; then
openssl req -x509 -newkey rsa:4096 -nodes -keyout /tmp/bridgehead/opal-key.pem -out /tmp/bridgehead/opal-cert.pem -days 3650 -subj "/CN=opal/C=DE"
fi
mkdir -p /tmp/bridgehead/opal-map
- sites="$(cat ./$PROJECT/modules/datashield-sites.json)"
+ sites="$(cat ./common/datashield-sites.json)"
echo "$sites" | docker_jq -n --args '{"sites": input | map({
"name": .,
"id": .,
diff --git a/common/datashield-sites.json b/common/datashield-sites.json
new file mode 100644
index 0000000..600534d
--- /dev/null
+++ b/common/datashield-sites.json
@@ -0,0 +1,15 @@
+[
+ "berlin",
+ "muenchen-lmu",
+ "dresden",
+ "freiburg",
+ "muenchen-tum",
+ "tuebingen",
+ "mainz",
+ "frankfurt",
+ "essen",
+ "dktk-datashield-test",
+ "dktk-test",
+ "mannheim",
+ "central-ds-orchestrator"
+]
diff --git a/ccp/modules/datashield.md b/common/datashield.md
similarity index 100%
rename from ccp/modules/datashield.md
rename to common/datashield.md
diff --git a/ccp/modules/dnpm-compose.yml b/common/dnpm-compose.yml
similarity index 100%
rename from ccp/modules/dnpm-compose.yml
rename to common/dnpm-compose.yml
diff --git a/ccp/modules/dnpm-node-compose.yml b/common/dnpm-node-compose.yml
similarity index 100%
rename from ccp/modules/dnpm-node-compose.yml
rename to common/dnpm-node-compose.yml
diff --git a/ccp/modules/dnpm-node-setup.sh b/common/dnpm-node-setup.sh
similarity index 96%
rename from ccp/modules/dnpm-node-setup.sh
rename to common/dnpm-node-setup.sh
index bf8fd26..918963d 100644
--- a/ccp/modules/dnpm-node-setup.sh
+++ b/common/dnpm-node-setup.sh
@@ -2,7 +2,7 @@
if [ -n "${ENABLE_DNPM_NODE}" ]; then
log INFO "DNPM setup detected (BwHC Node) -- will start BwHC node."
- OVERRIDE+=" -f ./$PROJECT/modules/dnpm-node-compose.yml"
+ OVERRIDE+=" -f ./common/dnpm-node-compose.yml"
# Set variables required for BwHC Node. ZPM_SITE is assumed to be set in /etc/bridgehead/.conf
DNPM_APPLICATION_SECRET="$(echo \"This is a salt string to generate one consistent password for DNPM. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
diff --git a/ccp/modules/dnpm-setup.sh b/common/dnpm-setup.sh
similarity index 90%
rename from ccp/modules/dnpm-setup.sh
rename to common/dnpm-setup.sh
index 9ca4767..58b60e9 100644
--- a/ccp/modules/dnpm-setup.sh
+++ b/common/dnpm-setup.sh
@@ -2,7 +2,7 @@
if [ -n "${ENABLE_DNPM}" ]; then
log INFO "DNPM setup detected (Beam.Connect) -- will start Beam.Connect for DNPM."
- OVERRIDE+=" -f ./$PROJECT/modules/dnpm-compose.yml"
+ OVERRIDE+=" -f ./common/dnpm-compose.yml"
# Set variables required for Beam-Connect
DNPM_BEAM_SECRET_SHORT="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
diff --git a/kr/modules/export-and-qb.curl-templates b/common/export-and-qb.curl-templates
similarity index 100%
rename from kr/modules/export-and-qb.curl-templates
rename to common/export-and-qb.curl-templates
diff --git a/ccp/modules/exporter-compose.yml b/common/exporter-compose.yml
similarity index 100%
rename from ccp/modules/exporter-compose.yml
rename to common/exporter-compose.yml
diff --git a/kr/modules/exporter-setup.sh b/common/exporter-setup.sh
similarity index 91%
rename from kr/modules/exporter-setup.sh
rename to common/exporter-setup.sh
index 9b947a6..57cad2f 100644
--- a/kr/modules/exporter-setup.sh
+++ b/common/exporter-setup.sh
@@ -2,7 +2,7 @@
if [ "$ENABLE_EXPORTER" == true ]; then
log INFO "Exporter setup detected -- will start Exporter service."
- OVERRIDE+=" -f ./$PROJECT/modules/exporter-compose.yml"
+ OVERRIDE+=" -f ./common/exporter-compose.yml"
EXPORTER_DB_PASSWORD="$(echo \"This is a salt string to generate one consistent password for the exporter. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
EXPORTER_API_KEY="$(echo \"This is a salt string to generate one consistent API KEY for the exporter. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 64)"
fi
diff --git a/ccp/modules/exporter.md b/common/exporter.md
similarity index 100%
rename from ccp/modules/exporter.md
rename to common/exporter.md
diff --git a/ccp/modules/fhir2sql-compose.yml b/common/fhir2sql-compose.yml
similarity index 100%
rename from ccp/modules/fhir2sql-compose.yml
rename to common/fhir2sql-compose.yml
diff --git a/ccp/modules/fhir2sql-setup.sh b/common/fhir2sql-setup.sh
similarity index 78%
rename from ccp/modules/fhir2sql-setup.sh
rename to common/fhir2sql-setup.sh
index 64fa7c0..4cc700a 100644
--- a/ccp/modules/fhir2sql-setup.sh
+++ b/common/fhir2sql-setup.sh
@@ -2,6 +2,6 @@
if [ "$ENABLE_FHIR2SQL" == true ]; then
log INFO "Dashboard setup detected -- will start Dashboard backend and FHIR2SQL service."
- OVERRIDE+=" -f ./$PROJECT/modules/fhir2sql-compose.yml"
+ OVERRIDE+=" -f ./common/fhir2sql-compose.yml"
DASHBOARD_DB_PASSWORD="$(generate_simple_password 'fhir2sql')"
fi
diff --git a/ccp/modules/fhir2sql.md b/common/fhir2sql.md
similarity index 100%
rename from ccp/modules/fhir2sql.md
rename to common/fhir2sql.md
diff --git a/ccp/modules/id-management-compose.yml b/common/id-management-compose.yml
similarity index 100%
rename from ccp/modules/id-management-compose.yml
rename to common/id-management-compose.yml
diff --git a/ccp/modules/id-management-setup.sh b/common/id-management-setup.sh
similarity index 96%
rename from ccp/modules/id-management-setup.sh
rename to common/id-management-setup.sh
index 333b512..ed844fe 100644
--- a/ccp/modules/id-management-setup.sh
+++ b/common/id-management-setup.sh
@@ -3,7 +3,7 @@
function idManagementSetup() {
if [ -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
log INFO "id-management setup detected -- will start id-management (mainzelliste & magicpl)."
- OVERRIDE+=" -f ./ccp/modules/id-management-compose.yml"
+ OVERRIDE+=" -f ./common/id-management-compose.yml"
# Auto Generate local Passwords
PATIENTLIST_POSTGRES_PASSWORD="$(echo \"id-management-module-db-password-salt\" | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
diff --git a/ccp/modules/id-management.md b/common/id-management.md
similarity index 100%
rename from ccp/modules/id-management.md
rename to common/id-management.md
diff --git a/itcc/modules/lens-compose.yml b/common/lens-compose.yml
similarity index 100%
rename from itcc/modules/lens-compose.yml
rename to common/lens-compose.yml
diff --git a/common/lens-setup.sh b/common/lens-setup.sh
new file mode 100644
index 0000000..e9cf41b
--- /dev/null
+++ b/common/lens-setup.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+if [ -n "$ENABLE_LENS" ];then
+ OVERRIDE+=" -f ./common/lens-compose.yml"
+fi
\ No newline at end of file
diff --git a/ccp/modules/mtba-compose.yml b/common/mtba-compose.yml
similarity index 100%
rename from ccp/modules/mtba-compose.yml
rename to common/mtba-compose.yml
diff --git a/ccp/modules/mtba-setup.sh b/common/mtba-setup.sh
similarity index 85%
rename from ccp/modules/mtba-setup.sh
rename to common/mtba-setup.sh
index d2acbe2..f6c5728 100644
--- a/ccp/modules/mtba-setup.sh
+++ b/common/mtba-setup.sh
@@ -6,7 +6,7 @@ function mtbaSetup() {
if [ ! -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
log ERROR "Missing ID-Management Module! Fix this by setting up ID Management:"
fi
- OVERRIDE+=" -f ./$PROJECT/modules/mtba-compose.yml"
+ OVERRIDE+=" -f ./common/mtba-compose.yml"
add_private_oidc_redirect_url "/mtba/*"
fi
}
diff --git a/ccp/modules/mtba.md b/common/mtba.md
similarity index 100%
rename from ccp/modules/mtba.md
rename to common/mtba.md
diff --git a/ccp/modules/nngm-compose.yml b/common/nngm-compose.yml
similarity index 100%
rename from ccp/modules/nngm-compose.yml
rename to common/nngm-compose.yml
diff --git a/ccp/modules/nngm-setup.sh b/common/nngm-setup.sh
similarity index 68%
rename from ccp/modules/nngm-setup.sh
rename to common/nngm-setup.sh
index 48fc45e..aa32fe1 100644
--- a/ccp/modules/nngm-setup.sh
+++ b/common/nngm-setup.sh
@@ -2,5 +2,5 @@
if [ -n "$NNGM_CTS_APIKEY" ]; then
log INFO "nNGM setup detected -- will start nNGM Connector."
- OVERRIDE+=" -f ./$PROJECT/modules/nngm-compose.yml"
+ OVERRIDE+=" -f ./common/nngm-compose.yml"
fi
diff --git a/ccp/modules/obds2fhir-rest-compose.yml b/common/obds2fhir-rest-compose.yml
similarity index 100%
rename from ccp/modules/obds2fhir-rest-compose.yml
rename to common/obds2fhir-rest-compose.yml
diff --git a/ccp/modules/obds2fhir-rest-setup.sh b/common/obds2fhir-rest-setup.sh
similarity index 88%
rename from ccp/modules/obds2fhir-rest-setup.sh
rename to common/obds2fhir-rest-setup.sh
index 6120f31..8bdfb60 100644
--- a/ccp/modules/obds2fhir-rest-setup.sh
+++ b/common/obds2fhir-rest-setup.sh
@@ -7,7 +7,7 @@ function obds2fhirRestSetup() {
log ERROR "Missing ID-Management Module! Fix this by setting up ID Management:"
PATIENTLIST_URL=" "
fi
- OVERRIDE+=" -f ./ccp/modules/obds2fhir-rest-compose.yml"
+ OVERRIDE+=" -f ./common/obds2fhir-rest-compose.yml"
LOCAL_SALT="$(echo \"local-random-salt\" | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
fi
}
diff --git a/ccp/modules/teiler-compose.yml b/common/teiler-compose.yml
similarity index 100%
rename from ccp/modules/teiler-compose.yml
rename to common/teiler-compose.yml
diff --git a/kr/modules/teiler-setup.sh b/common/teiler-setup.sh
similarity index 82%
rename from kr/modules/teiler-setup.sh
rename to common/teiler-setup.sh
index eed3f81..613b472 100644
--- a/kr/modules/teiler-setup.sh
+++ b/common/teiler-setup.sh
@@ -2,7 +2,7 @@
if [ "$ENABLE_TEILER" == true ];then
log INFO "Teiler setup detected -- will start Teiler services."
- OVERRIDE+=" -f ./$PROJECT/modules/teiler-compose.yml"
+ OVERRIDE+=" -f ./common/teiler-compose.yml"
TEILER_DEFAULT_LANGUAGE=DE
TEILER_DEFAULT_LANGUAGE_LOWER_CASE=${TEILER_DEFAULT_LANGUAGE,,}
add_public_oidc_redirect_url "/ccp-teiler/*"
diff --git a/ccp/modules/teiler.md b/common/teiler.md
similarity index 100%
rename from ccp/modules/teiler.md
rename to common/teiler.md
diff --git a/dhki/vars b/dhki/vars
index b728925..9790848 100644
--- a/dhki/vars
+++ b/dhki/vars
@@ -10,7 +10,7 @@ BROKER_URL_FOR_PREREQ=$BROKER_URL
POSTGRES_TAG=15.6-alpine
-for module in ccp/modules/*.sh
+for module in common/*.sh
do
log DEBUG "sourcing $module"
source $module
diff --git a/itcc/modules/lens-setup.sh b/itcc/modules/lens-setup.sh
deleted file mode 100644
index c19dc4b..0000000
--- a/itcc/modules/lens-setup.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-if [ -n "$ENABLE_LENS" ];then
- OVERRIDE+=" -f ./$PROJECT/modules/lens-compose.yml"
-fi
\ No newline at end of file
diff --git a/itcc/vars b/itcc/vars
index b03403b..576890c 100644
--- a/itcc/vars
+++ b/itcc/vars
@@ -7,7 +7,7 @@ SUPPORT_EMAIL=arturo.macias@dkfz-heidelberg.de
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
BROKER_URL_FOR_PREREQ=$BROKER_URL
-for module in $PROJECT/modules/*.sh
+for module in common/*.sh
do
log DEBUG "sourcing $module"
source $module
diff --git a/kr/modules/exporter-compose.yml b/kr/modules/exporter-compose.yml
deleted file mode 100644
index d5eb227..0000000
--- a/kr/modules/exporter-compose.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-version: "3.7"
-
-services:
- exporter:
- image: docker.verbis.dkfz.de/ccp/dktk-exporter:latest
- container_name: bridgehead-ccp-exporter
- environment:
- JAVA_OPTS: "-Xms1G -Xmx8G -XX:+UseG1GC"
- LOG_LEVEL: "INFO"
- EXPORTER_API_KEY: "${EXPORTER_API_KEY}" # Set in exporter-setup.sh
- CROSS_ORIGINS: "https://${HOST}"
- EXPORTER_DB_USER: "exporter"
- EXPORTER_DB_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh
- EXPORTER_DB_URL: "jdbc:postgresql://exporter-db:5432/exporter"
- HTTP_RELATIVE_PATH: "/ccp-exporter"
- SITE: "${SITE_ID}"
- HTTP_SERVLET_REQUEST_SCHEME: "https"
- OPAL_PASSWORD: "${EXPORTER_OPAL_PASSWORD}"
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.exporter_ccp.rule=PathPrefix(`/ccp-exporter`)"
- - "traefik.http.services.exporter_ccp.loadbalancer.server.port=8092"
- - "traefik.http.routers.exporter_ccp.tls=true"
- - "traefik.http.middlewares.exporter_ccp_strip.stripprefix.prefixes=/ccp-exporter"
- - "traefik.http.routers.exporter_ccp.middlewares=exporter_ccp_strip"
- volumes:
- - "/var/cache/bridgehead/ccp/exporter-files:/app/exporter-files/output"
-
- exporter-db:
- image: docker.verbis.dkfz.de/cache/postgres:${POSTGRES_TAG}
- container_name: bridgehead-ccp-exporter-db
- environment:
- POSTGRES_USER: "exporter"
- POSTGRES_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh
- POSTGRES_DB: "exporter"
- volumes:
- # Consider removing this volume once we find a solution to save Lens-queries to be executed in the explorer.
- - "/var/cache/bridgehead/ccp/exporter-db:/var/lib/postgresql/data"
-
- reporter:
- image: docker.verbis.dkfz.de/ccp/dktk-reporter:latest
- container_name: bridgehead-ccp-reporter
- environment:
- JAVA_OPTS: "-Xms1G -Xmx8G -XX:+UseG1GC"
- LOG_LEVEL: "INFO"
- CROSS_ORIGINS: "https://${HOST}"
- HTTP_RELATIVE_PATH: "/ccp-reporter"
- SITE: "${SITE_ID}"
- EXPORTER_API_KEY: "${EXPORTER_API_KEY}" # Set in exporter-setup.sh
- EXPORTER_URL: "http://exporter:8092"
- LOG_FHIR_VALIDATION: "false"
- HTTP_SERVLET_REQUEST_SCHEME: "https"
-
- # In this initial development state of the bridgehead, we are trying to have so many volumes as possible.
- # However, in the first executions in the CCP sites, this volume seems to be very important. A report is
- # a process that can take several hours, because it depends on the exporter.
- # There is a risk that the bridgehead restarts, losing the already created export.
-
- volumes:
- - "/var/cache/bridgehead/ccp/reporter-files:/app/reports"
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.reporter_ccp.rule=PathPrefix(`/ccp-reporter`)"
- - "traefik.http.services.reporter_ccp.loadbalancer.server.port=8095"
- - "traefik.http.routers.reporter_ccp.tls=true"
- - "traefik.http.middlewares.reporter_ccp_strip.stripprefix.prefixes=/ccp-reporter"
- - "traefik.http.routers.reporter_ccp.middlewares=reporter_ccp_strip"
diff --git a/kr/modules/exporter.md b/kr/modules/exporter.md
deleted file mode 100644
index 24e81b0..0000000
--- a/kr/modules/exporter.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Exporter and Reporter
-
-
-## Exporter
-The exporter is a REST API that exports the data of the different databases of the bridgehead in a set of tables.
-It can accept different output formats as CSV, Excel, JSON or XML. It can also export data into Opal.
-
-## Exporter-DB
-It is a database to save queries for its execution in the exporter.
-The exporter manages also the different executions of the same query in through the database.
-
-## Reporter
-This component is a plugin of the exporter that allows to create more complex Excel reports described in templates.
-It is compatible with different template engines as Groovy, Thymeleaf,...
-It is perfect to generate a document as our traditional CCP quality report.
diff --git a/kr/modules/lens-compose.yml b/kr/modules/lens-compose.yml
deleted file mode 100644
index 180dd67..0000000
--- a/kr/modules/lens-compose.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-version: "3.7"
-services:
- landing:
- container_name: lens_federated-search
- image: docker.verbis.dkfz.de/ccp/lens:${SITE_ID}
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.landing.rule=PathPrefix(`/`)"
- - "traefik.http.services.landing.loadbalancer.server.port=80"
- - "traefik.http.routers.landing.tls=true"
-
- spot:
- image: docker.verbis.dkfz.de/ccp-private/central-spot
- environment:
- BEAM_SECRET: "${FOCUS_BEAM_SECRET_SHORT}"
- BEAM_URL: http://beam-proxy:8081
- BEAM_PROXY_ID: ${SITE_ID}
- BEAM_BROKER_ID: ${BROKER_ID}
- BEAM_APP_ID: "focus"
- PROJECT_METADATA: "kr_supervisors"
- depends_on:
- - "beam-proxy"
- labels:
- - "traefik.enable=true"
- - "traefik.http.services.spot.loadbalancer.server.port=8080"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowmethods=GET,OPTIONS,POST"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolalloworiginlist=https://${HOST}"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowcredentials=true"
- - "traefik.http.middlewares.corsheaders2.headers.accesscontrolmaxage=-1"
- - "traefik.http.routers.spot.rule=Host(`${HOST}`) && PathPrefix(`/backend`)"
- - "traefik.http.middlewares.stripprefix_spot.stripprefix.prefixes=/backend"
- - "traefik.http.routers.spot.tls=true"
- - "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot"
diff --git a/kr/modules/lens-setup.sh b/kr/modules/lens-setup.sh
deleted file mode 100644
index c19dc4b..0000000
--- a/kr/modules/lens-setup.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-if [ -n "$ENABLE_LENS" ];then
- OVERRIDE+=" -f ./$PROJECT/modules/lens-compose.yml"
-fi
\ No newline at end of file
diff --git a/kr/modules/obds2fhir-rest-compose.yml b/kr/modules/obds2fhir-rest-compose.yml
deleted file mode 100644
index f201e23..0000000
--- a/kr/modules/obds2fhir-rest-compose.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-version: "3.7"
-
-services:
- obds2fhir-rest:
- container_name: bridgehead-obds2fhir-rest
- image: docker.verbis.dkfz.de/ccp/obds2fhir-rest:main
- environment:
- IDTYPE: BK_${IDMANAGEMENT_FRIENDLY_ID}_L-ID
- MAINZELLISTE_APIKEY: ${IDMANAGER_LOCAL_PATIENTLIST_APIKEY}
- SALT: ${LOCAL_SALT}
- KEEP_INTERNAL_ID: ${KEEP_INTERNAL_ID:-false}
- MAINZELLISTE_URL: ${PATIENTLIST_URL:-http://patientlist:8080/patientlist}
- restart: always
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.obds2fhir-rest.rule=PathPrefix(`/obds2fhir-rest`) || PathPrefix(`/adt2fhir-rest`)"
- - "traefik.http.middlewares.obds2fhir-rest_strip.stripprefix.prefixes=/obds2fhir-rest,/adt2fhir-rest"
- - "traefik.http.services.obds2fhir-rest.loadbalancer.server.port=8080"
- - "traefik.http.routers.obds2fhir-rest.tls=true"
- - "traefik.http.routers.obds2fhir-rest.middlewares=obds2fhir-rest_strip,auth"
diff --git a/kr/modules/obds2fhir-rest-setup.sh b/kr/modules/obds2fhir-rest-setup.sh
deleted file mode 100644
index 677ea63..0000000
--- a/kr/modules/obds2fhir-rest-setup.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-function obds2fhirRestSetup() {
- if [ -n "$ENABLE_OBDS2FHIR_REST" ]; then
- log INFO "oBDS2FHIR-REST setup detected -- will start obds2fhir-rest module."
- if [ ! -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
- log ERROR "Missing ID-Management Module! Fix this by setting up ID Management:"
- PATIENTLIST_URL=" "
- fi
- OVERRIDE+=" -f ./$PROJECT/modules/obds2fhir-rest-compose.yml"
- LOCAL_SALT="$(echo \"local-random-salt\" | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
- fi
-}
diff --git a/kr/modules/teiler-compose.yml b/kr/modules/teiler-compose.yml
deleted file mode 100644
index f415ee9..0000000
--- a/kr/modules/teiler-compose.yml
+++ /dev/null
@@ -1,81 +0,0 @@
-version: "3.7"
-
-services:
-
- teiler-orchestrator:
- image: docker.verbis.dkfz.de/cache/samply/teiler-orchestrator:latest
- container_name: bridgehead-teiler-orchestrator
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.teiler_orchestrator_ccp.rule=PathPrefix(`/ccp-teiler`)"
- - "traefik.http.services.teiler_orchestrator_ccp.loadbalancer.server.port=9000"
- - "traefik.http.routers.teiler_orchestrator_ccp.tls=true"
- - "traefik.http.middlewares.teiler_orchestrator_ccp_strip.stripprefix.prefixes=/ccp-teiler"
- - "traefik.http.routers.teiler_orchestrator_ccp.middlewares=teiler_orchestrator_ccp_strip"
- environment:
- TEILER_BACKEND_URL: "https://${HOST}/ccp-teiler-backend"
- TEILER_DASHBOARD_URL: "https://${HOST}/ccp-teiler-dashboard"
- DEFAULT_LANGUAGE: "${TEILER_DEFAULT_LANGUAGE_LOWER_CASE}"
- HTTP_RELATIVE_PATH: "/ccp-teiler"
-
- teiler-dashboard:
- image: docker.verbis.dkfz.de/cache/samply/teiler-dashboard:develop
- container_name: bridgehead-teiler-dashboard
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.teiler_dashboard_ccp.rule=PathPrefix(`/ccp-teiler-dashboard`)"
- - "traefik.http.services.teiler_dashboard_ccp.loadbalancer.server.port=80"
- - "traefik.http.routers.teiler_dashboard_ccp.tls=true"
- - "traefik.http.middlewares.teiler_dashboard_ccp_strip.stripprefix.prefixes=/ccp-teiler-dashboard"
- - "traefik.http.routers.teiler_dashboard_ccp.middlewares=teiler_dashboard_ccp_strip"
- environment:
- DEFAULT_LANGUAGE: "${TEILER_DEFAULT_LANGUAGE}"
- TEILER_BACKEND_URL: "https://${HOST}/ccp-teiler-backend"
- OIDC_URL: "${OIDC_URL}"
- OIDC_REALM: "${OIDC_REALM}"
- OIDC_CLIENT_ID: "${OIDC_PUBLIC_CLIENT_ID}"
- OIDC_TOKEN_GROUP: "${OIDC_GROUP_CLAIM}"
- TEILER_ADMIN_NAME: "${OPERATOR_FIRST_NAME} ${OPERATOR_LAST_NAME}"
- TEILER_ADMIN_EMAIL: "${OPERATOR_EMAIL}"
- TEILER_ADMIN_PHONE: "${OPERATOR_PHONE}"
- TEILER_PROJECT: "${PROJECT}"
- EXPORTER_API_KEY: "${EXPORTER_API_KEY}"
- TEILER_ORCHESTRATOR_URL: "https://${HOST}/ccp-teiler"
- TEILER_DASHBOARD_HTTP_RELATIVE_PATH: "/ccp-teiler-dashboard"
- TEILER_ORCHESTRATOR_HTTP_RELATIVE_PATH: "/ccp-teiler"
- TEILER_USER: "${OIDC_USER_GROUP}"
- TEILER_ADMIN: "${OIDC_ADMIN_GROUP}"
- REPORTER_DEFAULT_TEMPLATE_ID: "ccp-qb"
- EXPORTER_DEFAULT_TEMPLATE_ID: "ccp"
-
-
- teiler-backend:
- image: docker.verbis.dkfz.de/ccp/dktk-teiler-backend:latest
- container_name: bridgehead-teiler-backend
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.teiler_backend_ccp.rule=PathPrefix(`/ccp-teiler-backend`)"
- - "traefik.http.services.teiler_backend_ccp.loadbalancer.server.port=8085"
- - "traefik.http.routers.teiler_backend_ccp.tls=true"
- - "traefik.http.middlewares.teiler_backend_ccp_strip.stripprefix.prefixes=/ccp-teiler-backend"
- - "traefik.http.routers.teiler_backend_ccp.middlewares=teiler_backend_ccp_strip"
- environment:
- LOG_LEVEL: "INFO"
- APPLICATION_PORT: "8085"
- APPLICATION_ADDRESS: "${HOST}"
- DEFAULT_LANGUAGE: "${TEILER_DEFAULT_LANGUAGE}"
- CONFIG_ENV_VAR_PATH: "/run/secrets/ccp.conf"
- TEILER_ORCHESTRATOR_HTTP_RELATIVE_PATH: "/ccp-teiler"
- TEILER_ORCHESTRATOR_URL: "https://${HOST}/ccp-teiler"
- TEILER_DASHBOARD_DE_URL: "https://${HOST}/ccp-teiler-dashboard/de"
- TEILER_DASHBOARD_EN_URL: "https://${HOST}/ccp-teiler-dashboard/en"
- CENTRAX_URL: "${CENTRAXX_URL}"
- HTTP_PROXY: "http://forward_proxy:3128"
- ENABLE_MTBA: "${ENABLE_MTBA}"
- ENABLE_DATASHIELD: "${ENABLE_DATASHIELD}"
- secrets:
- - ccp.conf
-
-secrets:
- ccp.conf:
- file: /etc/bridgehead/ccp.conf
diff --git a/kr/modules/teiler.md b/kr/modules/teiler.md
deleted file mode 100644
index 51e94e4..0000000
--- a/kr/modules/teiler.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Teiler
-This module orchestrates the different microfrontends of the bridgehead as a single page application.
-
-## Teiler Orchestrator
-Single SPA component that consists on the root HTML site of the single page application and a javascript code that
-gets the information about the microfrontend calling the teiler backend and is responsible for registering them. With the
-resulting mapping, it can initialize, mount and unmount the required microfrontends on the fly.
-
-The microfrontends run independently in different containers and can be based on different frameworks (Angular, Vue, React,...)
-This microfrontends can run as single alone but need an extension with Single-SPA (https://single-spa.js.org/docs/ecosystem).
-There are also available three templates (Angular, Vue, React) to be directly extended to be used directly in the teiler.
-
-## Teiler Dashboard
-It consists on the main dashboard and a set of embedded services.
-### Login
-user and password in ccp.local.conf
-
-## Teiler Backend
-In this component, the microfrontends are configured.
diff --git a/kr/vars b/kr/vars
index d4e5a27..c3f5153 100644
--- a/kr/vars
+++ b/kr/vars
@@ -7,7 +7,7 @@ SUPPORT_EMAIL=arturo.macias@dkfz-heidelberg.de
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
BROKER_URL_FOR_PREREQ=$BROKER_URL
-for module in $PROJECT/modules/*.sh
+for module in common/*.sh
do
log DEBUG "sourcing $module"
source $module