Compare commits

..

11 Commits

Author SHA1 Message Date
Torben Brenner
70df0cded0 fix: use RECEIVER_PROXY_ID instead of $1 2025-09-09 08:43:04 +02:00
Torben Brenner
f17ff3fcd8 fix: added missing -f arg 2025-09-09 08:43:04 +02:00
Torben Brenner
c23ef2f251 fix: don't attach to network use project instead 2025-09-09 08:43:04 +02:00
Torben Brenner
4b4dab0fec fix: add beam-send to project network 2025-09-09 08:43:04 +02:00
Torben Brenner
7717b0c528 fix: make a persistent send secret per bridgehead 2025-09-09 08:43:04 +02:00
Torben Brenner
6195f698dc refactor: beam file send is only an executable command 2025-09-09 08:43:04 +02:00
Torben Brenner
b64d848760 feat: added commands for beam-file send mode 2025-09-09 08:43:04 +02:00
Torben Brenner
ae738aa98f fix: pass outdir path as separate token 2025-09-09 08:43:04 +02:00
Torben Brenner
efb381246f fix: added quotes to data directory option 2025-09-09 08:43:04 +02:00
Torben Brenner
3d336bf233 fix: now properly reading variables for the check 2025-09-09 08:43:04 +02:00
Torben Brenner
c9a6a03628 prototype: module for beam-file 2025-09-09 08:42:53 +02:00
13 changed files with 59 additions and 158 deletions

View File

@@ -35,9 +35,6 @@ case "$PROJECT" in
cce)
#nothing extra to do
;;
pscc)
#nothing extra to do
;;
itcc)
#nothing extra to do
;;
@@ -179,6 +176,13 @@ case "$ACTION" in
;;
postRun | postUpdate)
;;
send-file)
loadVars
log "WARNING" "Your are about to send a file to another bridgehead in your network!"
read -p "Please name the bridgehead you want to send the file to (proxy-id): " RECEIVER_PROXY_ID
read -p "Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1
exec $COMPOSE -p $PROJECT -f ./modules/beam-file-compose.yml --profile beam-file-sender run beam-file-sender send --to beamfile.$RECEIVER_PROXY_ID /data/outfile
;;
*)
printUsage
exit 1

View File

@@ -45,6 +45,7 @@ services:
BROKER_URL: ${BROKER_URL}
PROXY_ID: ${PROXY_ID}
APP_focus_KEY: ${FOCUS_BEAM_SECRET_SHORT}
APP_beamfilesend_KEY: ${BEAM_FILE_SEND_SECRET}
PRIVKEY_FILE: /run/secrets/proxy.pem
ALL_PROXY: http://forward_proxy:3128
TLS_CA_CERTIFICATES_DIR: /conf/trusted-ca-certs

View File

@@ -5,6 +5,7 @@ FOCUS_BEAM_SECRET_SHORT="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | h
FOCUS_RETRY_COUNT=${FOCUS_RETRY_COUNT:-64}
SUPPORT_EMAIL=support-ccp@dkfz-heidelberg.de
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
BEAM_FILE_SEND_SECRET="$(echo \"beam-file-send-salt\" | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
BROKER_URL_FOR_PREREQ=$BROKER_URL
@@ -24,4 +25,5 @@ do
done
transfairSetup
scoutSetup
scoutSetup
beamFileSetup

View File

@@ -55,9 +55,6 @@ case "$PROJECT" in
cce)
site_configuration_repository_middle="git.verbis.dkfz.de/cce-sites/"
;;
pscc)
site_configuration_repository_middle="git.verbis.dkfz.de/pscc-sites/"
;;
itcc)
site_configuration_repository_middle="git.verbis.dkfz.de/itcc-sites/"
;;

View File

@@ -59,4 +59,3 @@ services:
PROJECT: ${PROJECT}
SITE_NAME: ${SITE_NAME}
ENVIRONMENT: ${ENVIRONMENT}
profiles: [deactivated]

View File

@@ -0,0 +1,35 @@
# NOTE: Current implementation is restricted to a bridgehead only being able to either upload or download data
services:
beam-file-sender:
image: samply/beam-file:${BEAM_FILE_TAG}
container_name: bridgehead-beam-file-sender
environment:
- BEAM_ID=beamfilesend.${PROXY_ID}
- BEAM_SECRET=${BEAM_FILE_SEND_SECRET}
- BEAM_URL=http://beam-proxy:8081
- BIND_ADDR=0.0.0.0:8085
- API_KEY=${BEAM_FILE_API_KEY}
# Only uncomment if your are sure what to do
# ports:
# - 8085:8085
volumes:
- /var/cache/bridgehead/beam-file-out/:/data
profiles: ["beam-file-sender"]
beam-file-receiver:
image: samply/beam-file:${BEAM_FILE_TAG}
container_name: bridgehead-beam-file-receiver
environment:
- BEAM_ID=beamfile.${PROXY_ID}
- BEAM_SECRET=${BEAM_FILE_SECRET}
- BEAM_URL=http://beam-proxy:8081
- API_KEY=${BEAM_FILE_API_KEY}
command: ["receive", "save", "--outdir", "/data"]
volumes:
- /var/cache/bridgehead/beam-file/:/data
profiles: ["beam-file-receiver"]
beam-proxy:
environment:
APP_beamfile_KEY: ${BEAM_FILE_SECRET}
profiles: ["beam-file-receiver"]

View File

@@ -0,0 +1,11 @@
#!/bin/bash -e
function beamFileSetup() {
if [ -n "$ENABLE_BEAM_FILE_RECEIVER" ]; then
echo "Starting beam file in receiver mode"
OVERRIDE+=" -f ./modules/beam-file-compose.yml --profile beam-file-receiver"
BEAM_FILE_SECRET="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
BEAM_FILE_API_KEY="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
log INFO "Beam File in Receiver Mode available uses ApiKey ${BEAM_FILE_API_KEY}"
fi
}

View File

@@ -1,65 +0,0 @@
version: "3.7"
services:
blaze:
image: docker.verbis.dkfz.de/cache/samply/blaze:${BLAZE_TAG}
container_name: bridgehead-pscc-blaze
environment:
BASE_URL: "http://bridgehead-pscc-blaze:8080"
JAVA_TOOL_OPTIONS: "-Xmx${BLAZE_MEMORY_CAP:-4096}m"
DB_RESOURCE_CACHE_SIZE: ${BLAZE_RESOURCE_CACHE_CAP:-2500000}
DB_BLOCK_CACHE_SIZE: ${BLAZE_MEMORY_CAP}
CQL_EXPR_CACHE_SIZE: ${BLAZE_CQL_CACHE_CAP:-32}
ENFORCE_REFERENTIAL_INTEGRITY: "false"
volumes:
- "blaze-data:/app/data"
labels:
- "traefik.enable=true"
- "traefik.http.routers.blaze_pscc.rule=PathPrefix(`/pscc-localdatamanagement`)"
- "traefik.http.middlewares.pscc_b_strip.stripprefix.prefixes=/pscc-localdatamanagement"
- "traefik.http.services.blaze_pscc.loadbalancer.server.port=8080"
- "traefik.http.routers.blaze_pscc.middlewares=pscc_b_strip,auth"
- "traefik.http.routers.blaze_pscc.tls=true"
focus:
image: docker.verbis.dkfz.de/cache/samply/focus:${FOCUS_TAG}
container_name: bridgehead-focus
environment:
API_KEY: ${FOCUS_BEAM_SECRET_SHORT}
BEAM_APP_ID_LONG: focus.${PROXY_ID}
PROXY_ID: ${PROXY_ID}
BLAZE_URL: "http://bridgehead-pscc-blaze:8080/fhir/"
BEAM_PROXY_URL: http://beam-proxy:8081
RETRY_COUNT: ${FOCUS_RETRY_COUNT}
EPSILON: 0.28
ENDPOINT_TYPE: ${FOCUS_ENDPOINT_TYPE:-blaze}
depends_on:
- "beam-proxy"
- "blaze"
beam-proxy:
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:${BEAM_TAG}
container_name: bridgehead-beam-proxy
environment:
BROKER_URL: ${BROKER_URL}
PROXY_ID: ${PROXY_ID}
APP_focus_KEY: ${FOCUS_BEAM_SECRET_SHORT}
PRIVKEY_FILE: /run/secrets/proxy.pem
ALL_PROXY: http://forward_proxy:3128
TLS_CA_CERTIFICATES_DIR: /conf/trusted-ca-certs
ROOTCERT_FILE: /conf/root.crt.pem
secrets:
- proxy.pem
depends_on:
- "forward_proxy"
volumes:
- /etc/bridgehead/trusted-ca-certs:/conf/trusted-ca-certs:ro
- /srv/docker/bridgehead/pscc/root.crt.pem:/conf/root.crt.pem:ro
volumes:
blaze-data:
secrets:
proxy.pem:
file: /etc/bridgehead/pki/${SITE_ID}.priv.pem

View File

@@ -1,45 +0,0 @@
version: "3.7"
services:
landing:
container_name: lens_federated-search
image: docker.verbis.dkfz.de/dashboard/pscc-explorer
labels:
- "traefik.enable=true"
- "traefik.http.routers.landing.rule=PathPrefix(`/`)"
- "traefik.http.services.landing.loadbalancer.server.port=5173"
- "traefik.http.routers.landing.middlewares=auth"
- "traefik.http.routers.landing.tls=true"
spot:
image: samply/rustyspot:main
platform: linux/amd64
ports:
- "8055:8055"
environment:
HTTP_PROXY: ${http_proxy}
HTTPS_PROXY: ${https_proxy}
NO_PROXY: beam-proxy
BEAM_SECRET: "${FOCUS_BEAM_SECRET_SHORT}"
BEAM_PROXY_URL: http://beam-proxy:8081
BEAM_APP_ID: "focus"
CORS_ORIGIN: "https://${GUI_HOST}"
SITES: "pscc-dkfz"
TRANSFORM: LENS
BIND_ADDR: 0.0.0.0:8055
RUST_LOG: "debug"
LOG_FILE: /logs/requests.log
volumes:
- ./logs:/logs
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"

View File

@@ -1,5 +0,0 @@
#!/bin/bash
if [ -n "$ENABLE_LENS" ];then
OVERRIDE+=" -f ./$PROJECT/modules/lens-compose.yml"
fi

View File

@@ -1,20 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDNTCCAh2gAwIBAgIUW34NEb7bl0+Ywx+I1VKtY5vpAOowDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAxMLQnJva2VyLVJvb3QwHhcNMjQwMTIyMTMzNzEzWhcNMzQw
MTE5MTMzNzQzWjAWMRQwEgYDVQQDEwtCcm9rZXItUm9vdDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAL5UegLXTlq3XRRj8LyFs3aF0tpRPVoW9RXp5kFI
TnBvyO6qjNbMDT/xK+4iDtEX4QQUvsxAKxfXbe9i1jpdwjgH7JHaSGm2IjAiKLqO
OXQQtguWwfNmmp96Ql13ArLj458YH08xMO/w2NFWGwB/hfARa4z/T0afFuc/tKJf
XbGCG9xzJ9tmcG45QN8NChGhVvaTweNdVxGWlpHxmi0Mn8OM9CEuB7nPtTTiBuiu
pRC2zVVmNjVp4ktkAqL7IHOz+/F5nhiz6tOika9oD3376Xj055lPznLcTQn2+4d7
K7ZrBopCFxIQPjkgmYRLfPejbpdUjK1UVJw7hbWkqWqH7JMCAwEAAaN7MHkwDgYD
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGjvRcaIP4HM
poIguUAK9YL2n7fbMB8GA1UdIwQYMBaAFGjvRcaIP4HMpoIguUAK9YL2n7fbMBYG
A1UdEQQPMA2CC0Jyb2tlci1Sb290MA0GCSqGSIb3DQEBCwUAA4IBAQCbzycJSaDm
AXXNJqQ88djrKs5MDXS8RIjS/cu2ayuLaYDe+BzVmUXNA0Vt9nZGdaz63SLLcjpU
fNSxBfKbwmf7s30AK8Cnfj9q4W/BlBeVizUHQsg1+RQpDIdMrRQrwkXv8mfLw+w5
3oaXNW6W/8KpBp/H8TBZ6myl6jCbeR3T8EMXBwipMGop/1zkbF01i98Xpqmhx2+l
n+80ofPsSspOo5XmgCZym8CD/m/oFHmjcvOfpOCvDh4PZ+i37pmbSlCYoMpla3u/
7MJMP5lugfLBYNDN2p+V4KbHP/cApCDT5UWLOeAWjgiZQtHH5ilDeYqEc1oPjyJt
Rtup0MTxSJtN
-----END CERTIFICATE-----

View File

@@ -1,14 +0,0 @@
BROKER_ID=test-no-real-data.broker.samply.de
BROKER_URL=https://${BROKER_ID}
PROXY_ID=${SITE_ID}.${BROKER_ID}
FOCUS_BEAM_SECRET_SHORT="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
FOCUS_RETRY_COUNT=${FOCUS_RETRY_COUNT:-64}
SUPPORT_EMAIL=denis.koether@dkfz-heidelberg.de
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
BROKER_URL_FOR_PREREQ=$BROKER_URL
for module in $PROJECT/modules/*.sh
do
log DEBUG "sourcing $module"
source $module
done

View File

@@ -3,4 +3,5 @@ BEAM_TAG=develop
BLAZE_TAG=main
POSTGRES_TAG=15.13-alpine
TEILER_DASHBOARD_TAG=develop
MTBA_TAG=develop
MTBA_TAG=develop
BEAM_FILE_TAG=task-based-files