parent
7b299bb338
commit
8c5e8ed833
|
@ -1,10 +1,7 @@
|
||||||
##Ignore site configuration
|
|
||||||
.gitmodules
|
|
||||||
site-config
|
|
||||||
|
|
||||||
## Ignore site configuration
|
## Ignore site configuration
|
||||||
config/**/*
|
config/**/*
|
||||||
!config/**/*.default
|
!config/**/*.default
|
||||||
docker-compose.override.yml
|
docker-compose.override.yml
|
||||||
site.conf
|
site.conf
|
||||||
|
lading/*
|
||||||
|
certs/*
|
|
@ -1,159 +0,0 @@
|
||||||
version: "3.7"
|
|
||||||
volumes:
|
|
||||||
c4-connector-db-data:
|
|
||||||
c4-connector-logs:
|
|
||||||
patientlist-db-data:
|
|
||||||
patientlist-logs:
|
|
||||||
id-manager-logs:
|
|
||||||
c4-store-db-data:
|
|
||||||
c4-store-logs:
|
|
||||||
|
|
||||||
services:
|
|
||||||
traefik:
|
|
||||||
image: traefik:2.4
|
|
||||||
command:
|
|
||||||
- --api.insecure=true
|
|
||||||
- --entrypoints.web.address=:80
|
|
||||||
- --entrypoints.web-secure.address=:443
|
|
||||||
- --providers.docker=true
|
|
||||||
ports:
|
|
||||||
- 80:80
|
|
||||||
- 443:443
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
||||||
|
|
||||||
landing:
|
|
||||||
image: nginx:stable
|
|
||||||
volumes:
|
|
||||||
- ../landing/:/usr/share/nginx/html
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.landing.rule=PathPrefix(`/`)"
|
|
||||||
- "traefik.http.services.landing.loadbalancer.server.port=80"
|
|
||||||
|
|
||||||
c4-connector:
|
|
||||||
image: "samply/share-client:c4-feature-environmentPreconfigurationTorben"
|
|
||||||
environment:
|
|
||||||
POSTGRES_HOST: "c4-connector-db"
|
|
||||||
ID_MANAGER_APIKEY: ${MAGICPL_API_KEY_CONNECTOR}
|
|
||||||
POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS}
|
|
||||||
HTTP_PROXY_USER: ${HTTP_PROXY_USER}
|
|
||||||
HTTP_PROXY_PASSWORD: ${HTTP_PROXY_PASSWORD}
|
|
||||||
HTTPS_PROXY_USER: ${HTTPS_PROXY_USER}
|
|
||||||
HTTPS_PROXY_PASSWORD: ${HTTPS_PROXY_PASSWORD}
|
|
||||||
LDM_URL: "${PROTOCOL}://${HOST}/c4-localdatamanagement"
|
|
||||||
POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS}
|
|
||||||
env_file:
|
|
||||||
- ../site-config/c4.env
|
|
||||||
# Necessary for the connector to successful check the status of other components on the same host
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
- "${HOST}:${HOSTIP}"
|
|
||||||
volumes:
|
|
||||||
- "c4-connector-logs:/usr/local/tomcat/logs"
|
|
||||||
depends_on:
|
|
||||||
- connector-db
|
|
||||||
restart: always
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.c4_connector.rule=PathPrefix(`/c4-connector`)"
|
|
||||||
- "traefik.http.services.c4_connector.loadbalancer.server.port=8080"
|
|
||||||
|
|
||||||
c4-connector-db:
|
|
||||||
image: postgres:10.17
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: "share_v2"
|
|
||||||
POSTGRES_USER: "samplyweb"
|
|
||||||
POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS}
|
|
||||||
volumes:
|
|
||||||
- "c4-connector-db-data:/var/lib/postgresql/data"
|
|
||||||
restart: always
|
|
||||||
|
|
||||||
id-manager:
|
|
||||||
image: docker.verbis.dkfz.de/ccp/idmanager:bridgehead-develop
|
|
||||||
environment:
|
|
||||||
MAGICPL_SITE: ${SITE}
|
|
||||||
MAGICPL_MAINZELLISTE_API_KEY: ${MAGICPL_MAINZELLISTE_API_KEY}
|
|
||||||
MAGICPL_API_KEY: ${MAGICPL_API_KEY}
|
|
||||||
MAGICPL_API_KEY_CONNECTOR: ${MAGICPL_API_KEY_CONNECTOR}
|
|
||||||
MAGICPL_MAINZELLISTE_CENTRAL_API_KEY: ${MAGICPL_MAINZELLISTE_CENTRAL_API_KEY}
|
|
||||||
MAGICPL_CENTRAL_API_KEY: ${MAGICPL_CENTRAL_API_KEY}
|
|
||||||
MAGICPL_OIDC_CLIENT_ID: ${MAGICPL_OIDC_CLIENT_ID}
|
|
||||||
MAGICPL_OIDC_CLIENT_SECRET: ${MAGICPL_OIDC_CLIENT_SECRET}
|
|
||||||
TOMCAT_REVERSEPROXY_FQDN: "${HOST}"
|
|
||||||
HTTP_PROXY_USER: ${HTTP_PROXY_USER}
|
|
||||||
HTTP_PROXY_PASSWORD: ${HTTP_PROXY_PASSWORD}
|
|
||||||
HTTPS_PROXY_USER: ${HTTPS_PROXY_USER}
|
|
||||||
HTTPS_PROXY_PASSWORD: ${HTTPS_PROXY_PASSWORD}
|
|
||||||
env_file:
|
|
||||||
- ../site-config/dktk.env
|
|
||||||
volumes:
|
|
||||||
- "id-manager-logs:/usr/local/tomcat/logs"
|
|
||||||
depends_on:
|
|
||||||
- patientlist
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.idmanager.rule=PathPrefix(`/ID-Manager`)"
|
|
||||||
- "traefik.http.services.idmanager.loadbalancer.server.port=8080"
|
|
||||||
|
|
||||||
patientlist:
|
|
||||||
image: docker.verbis.dkfz.de/ccp/patientlist:bridgehead-develop
|
|
||||||
environment:
|
|
||||||
ML_SITE: ${SITE}
|
|
||||||
ML_API_KEY: ${MAGICPL_MAINZELLISTE_API_KEY}
|
|
||||||
ML_DB_PASS: ${ML_DB_PASS}
|
|
||||||
TOMCAT_REVERSEPROXY_FQDN: "${HOST}"
|
|
||||||
env_file:
|
|
||||||
- ../site-config/dktk.env
|
|
||||||
# TODO: Implement automatic seed generation in mainzelliste
|
|
||||||
- ../site-config/patientlist.env
|
|
||||||
volumes:
|
|
||||||
- "patientlist-logs:/usr/local/tomcat/logs"
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.patientlist.rule=PathPrefix(`/Patientlist`)"
|
|
||||||
- "traefik.http.services.patientlist.loadbalancer.server.port=8080"
|
|
||||||
depends_on:
|
|
||||||
- patientlist-db
|
|
||||||
|
|
||||||
patientlist-db:
|
|
||||||
image: postgres:13.1-alpine
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: mainzelliste
|
|
||||||
POSTGRES_USER: mainzelliste
|
|
||||||
POSTGRES_PASSWORD: ${ML_DB_PASS}
|
|
||||||
TZ: "Europe/Berlin"
|
|
||||||
volumes:
|
|
||||||
- "patientlist-db-data:/var/lib/postgresql/data"
|
|
||||||
|
|
||||||
c4-store:
|
|
||||||
image: docker.verbis.dkfz.de/ccp/samply.store:release-5.1.2
|
|
||||||
environment:
|
|
||||||
MDR_NAMESPACE: "adt,dktk,marker"
|
|
||||||
MDR_VALIDATION: false
|
|
||||||
DEPLOYMENT_CONTEXT: "c4-localdatamanagement"
|
|
||||||
POSTGRES_HOST: c4-store-db
|
|
||||||
POSTGRES_PORT: 5432
|
|
||||||
POSTGRES_DB: samplystore
|
|
||||||
POSTGRES_USER: samplystore
|
|
||||||
POSTGRES_PASSWORD: ${STORE_POSTGRES_PASS}
|
|
||||||
TZ: "Europe/Berlin"
|
|
||||||
volumes:
|
|
||||||
- "c4-store-logs:/usr/local/tomcat/logs"
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.store_c4.rule=PathPrefix(`/c4-localdatamanagement`)"
|
|
||||||
depends_on:
|
|
||||||
- store-db
|
|
||||||
restart: always
|
|
||||||
|
|
||||||
c4-store-db:
|
|
||||||
image: postgres:9.5-alpine
|
|
||||||
command: postgres -c datestyle='iso, dmy'
|
|
||||||
environment:
|
|
||||||
TZ: "Europe/Berlin"
|
|
||||||
POSTGRES_DB: samplystore
|
|
||||||
POSTGRES_USER: samplystore
|
|
||||||
POSTGRES_PASSWORD: ${STORE_POSTGRES_PASS}
|
|
||||||
volumes:
|
|
||||||
- "c4-store-db-data:/var/lib/postgresql/data"
|
|
||||||
restart: always
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
### Does not need proxy settings
|
||||||
|
traefik:
|
||||||
|
container_name: bridgehead-traefik
|
||||||
|
image: traefik:2.4
|
||||||
|
command:
|
||||||
|
- --entrypoints.web.address=:80
|
||||||
|
- --entrypoints.websecure.address=:443
|
||||||
|
- --providers.docker=true
|
||||||
|
- --api.dashboard=true
|
||||||
|
- --accesslog=true # print access-logs
|
||||||
|
- --entrypoints.web.http.redirections.entrypoint.to=websecure
|
||||||
|
- --entrypoints.web.http.redirections.entrypoint.scheme=https
|
||||||
|
labels:
|
||||||
|
- "traefik.http.routers.dashboard.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
|
||||||
|
- "traefik.http.routers.dashboard.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.dashboard.service=api@internal"
|
||||||
|
- "traefik.http.routers.dashboard.tls=true"
|
||||||
|
- "traefik.http.routers.dashboard.middlewares=auth"
|
||||||
|
- "traefik.http.middlewares.auth.basicauth.users=${bc_auth_users}"
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
volumes:
|
||||||
|
- ../certs:/tools/certs
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
|
|
||||||
|
### Does need to know the outside proxy to connect central components
|
||||||
|
forward_proxy:
|
||||||
|
container_name: bridgehead-squid
|
||||||
|
image: ubuntu/squid
|
||||||
|
environment:
|
||||||
|
http_proxy: ${http_proxy}
|
||||||
|
https_proxy: ${https_proxy}
|
||||||
|
volumes:
|
||||||
|
- "bridgehead-proxy:/var/log/squid"
|
||||||
|
|
||||||
|
## Needs internal proxy config
|
||||||
|
landing:
|
||||||
|
container_name: bridgehead-landingpage
|
||||||
|
image: nginx:stable
|
||||||
|
volumes:
|
||||||
|
- ../landing/:/usr/share/nginx/html
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.landing.rule=PathPrefix(`/`)"
|
||||||
|
- "traefik.http.services.landing.loadbalancer.server.port=80"
|
||||||
|
- "traefik.http.routers.landing.tls=true"
|
||||||
|
|
||||||
|
## Needs internal proxy config
|
||||||
|
blaze:
|
||||||
|
image: "samply/blaze:0.17"
|
||||||
|
container_name: bridgehead-ccp-blaze
|
||||||
|
environment:
|
||||||
|
BASE_URL: "http://blaze:8080"
|
||||||
|
JAVA_TOOL_OPTIONS: "-Xmx4g"
|
||||||
|
LOG_LEVEL: "debug"
|
||||||
|
ENFORCE_REFERENTIAL_INTEGRITY: "false"
|
||||||
|
volumes:
|
||||||
|
- "blaze-data:/app/data"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.test-auth.basicauth.users=${bc_auth_users}"
|
||||||
|
- "traefik.http.routers.blaze_ccp.rule=PathPrefix(`/ccp-localdatamanagement`)"
|
||||||
|
- "traefik.http.middlewares.ccp_b_strip.stripprefix.prefixes=/ccp-localdatamanagement"
|
||||||
|
- "traefik.http.services.blaze_ccp.loadbalancer.server.port=8080"
|
||||||
|
- "traefik.http.routers.blaze_ccp.middlewares=ccp_b_strip,test-auth"
|
||||||
|
- "traefik.http.routers.blaze_ccp.tls=true"
|
||||||
|
|
||||||
|
ccp-search-share:
|
||||||
|
image: "ghcr.io/samply/dktk-fed-search-share:main"
|
||||||
|
container_name: bridgehead_ccp_share
|
||||||
|
environment:
|
||||||
|
APP_BASE_URL: "http://dktk-fed-search-share:8080"
|
||||||
|
APP_BROKER_BASEURL: "http://dktk-fed-search.verbis.dkfz.de/broker/rest/searchbroker"
|
||||||
|
APP_BROKER_MAIL: "foo@bar.de"
|
||||||
|
APP_STORE_BASEURL: "http://bridgehead-dktk-blaze:8080/fhir"
|
||||||
|
SPRING_DATASOURCE_URL: "jdbc:postgresql://bridgehead_ccp_share_db:5432/dktk-fed-search-share"
|
||||||
|
JAVA_TOOL_OPTIONS: "-Xmx1g"
|
||||||
|
# http_proxy: "http://bridgehead-squid:3128"
|
||||||
|
# https_proxy: "http://bridgehead-squid:3128"
|
||||||
|
# HTTP_PROXY: "http://bridgehead-squid:3128"
|
||||||
|
# HTTPS_PROXY: "http://bridgehead-squid:3128"
|
||||||
|
depends_on:
|
||||||
|
- ccp-search-share-db
|
||||||
|
- blaze
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.dktk-fed-search.rule=PathPrefix(`/dktk-connector`)"
|
||||||
|
- "traefik.http.services.dktk-fed-search.loadbalancer.server.port=8080"
|
||||||
|
extra_hosts:
|
||||||
|
- "dktk-fed-search.verbis.dkfz.de:10.133.193.8"
|
||||||
|
|
||||||
|
ccp-search-share-db:
|
||||||
|
image: "postgres:14"
|
||||||
|
container_name: bridgehead_ccp_share_db
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: "dktk-fed-search-share"
|
||||||
|
POSTGRES_PASSWORD: "dktk-fed-search-share"
|
||||||
|
POSTGRES_DB: "dktk-fed-search-share"
|
||||||
|
volumes:
|
||||||
|
- "ccp-search-share-db-data:/var/lib/postgresql/data"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
blaze-data:
|
||||||
|
bridgehead-proxy:
|
||||||
|
ccp-search-share-db-data:
|
|
@ -1,144 +0,0 @@
|
||||||
version: "3.7"
|
|
||||||
|
|
||||||
services:
|
|
||||||
### Does not need proxy settings
|
|
||||||
traefik:
|
|
||||||
container_name: bridgehead-traefik
|
|
||||||
image: traefik:2.4
|
|
||||||
command:
|
|
||||||
- --entrypoints.web.address=:80
|
|
||||||
- --entrypoints.websecure.address=:443
|
|
||||||
- --providers.docker=true
|
|
||||||
- --api.dashboard=true
|
|
||||||
- --accesslog=true # print access-logs
|
|
||||||
- --entrypoints.web.http.redirections.entrypoint.to=websecure
|
|
||||||
- --entrypoints.web.http.redirections.entrypoint.scheme=https
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.dashboard.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
|
|
||||||
- "traefik.http.routers.dashboard.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.dashboard.service=api@internal"
|
|
||||||
- "traefik.http.routers.dashboard.tls=true"
|
|
||||||
- "traefik.http.routers.dashboard.middlewares=auth"
|
|
||||||
- "traefik.http.middlewares.auth.basicauth.users=${bc_auth_users}"
|
|
||||||
ports:
|
|
||||||
- 80:80
|
|
||||||
- 443:443
|
|
||||||
volumes:
|
|
||||||
- ../certs:/tools/certs
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
|
|
||||||
|
|
||||||
### Does need to know the outside proxy to connect central components
|
|
||||||
forward_proxy:
|
|
||||||
container_name: bridgehead-squid
|
|
||||||
image: ubuntu/squid
|
|
||||||
environment:
|
|
||||||
http_proxy: ${http_proxy}
|
|
||||||
https_proxy: ${https_proxy}
|
|
||||||
volumes:
|
|
||||||
- "bridgehead-proxy:/var/log/squid"
|
|
||||||
|
|
||||||
## Needs internal proxy config
|
|
||||||
landing:
|
|
||||||
container_name: bridgehead-landingpage
|
|
||||||
image: nginx:stable
|
|
||||||
volumes:
|
|
||||||
- ../landing/:/usr/share/nginx/html
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.landing.rule=PathPrefix(`/`)"
|
|
||||||
- "traefik.http.services.landing.loadbalancer.server.port=80"
|
|
||||||
- "traefik.http.routers.landing.tls=true"
|
|
||||||
|
|
||||||
## Needs internal proxy config
|
|
||||||
blaze:
|
|
||||||
image: "samply/blaze:0.16"
|
|
||||||
container_name: bridgehead-dktk-blaze
|
|
||||||
environment:
|
|
||||||
BASE_URL: "http://blaze:8080"
|
|
||||||
JAVA_TOOL_OPTIONS: "-Xmx4g"
|
|
||||||
LOG_LEVEL: "debug"
|
|
||||||
ENFORCE_REFERENTIAL_INTEGRITY: "false"
|
|
||||||
volumes:
|
|
||||||
- "blaze-data:/app/data"
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.test-auth.basicauth.users=${bc_auth_users}"
|
|
||||||
- "traefik.http.routers.blaze_dktk.rule=PathPrefix(`/dktk-localdatamanagement`)"
|
|
||||||
- "traefik.http.middlewares.dktk_b_strip.stripprefix.prefixes=/dktk-localdatamanagement"
|
|
||||||
- "traefik.http.services.blaze_dktk.loadbalancer.server.port=8080"
|
|
||||||
- "traefik.http.routers.blaze_dktk.middlewares=dktk_b_strip,test-auth"
|
|
||||||
- "traefik.http.routers.blaze_dktk.tls=true"
|
|
||||||
|
|
||||||
|
|
||||||
dktk-connector:
|
|
||||||
image: "samply/share-client:gbn-feature-environmentPreconfiguration"
|
|
||||||
environment:
|
|
||||||
POSTGRES_HOST: "dktk-connector-db"
|
|
||||||
POSTGRES_PASSWORD: "123"
|
|
||||||
STORE_URL: "http://bridgehead-blaze:8080/fhir"
|
|
||||||
MDR_URL: "https://mdr.ccp-it.dktk.dkfz.de/v3/api/mdr"
|
|
||||||
DEPLOYMENT_CONTEXT: "dktk-connector"
|
|
||||||
volumes:
|
|
||||||
- "dktk-connector-logs:/usr/local/tomcat/logs"
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.dktk_connector.rule=PathPrefix(`/dktk-connector`)"
|
|
||||||
- "traefik.http.services.dktk_connector.loadbalancer.server.port=8080"
|
|
||||||
- "traefik.http.routers.landing.tls=true"
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- "dktk-connector-db"
|
|
||||||
- "forward_proxy"
|
|
||||||
restart: "always"
|
|
||||||
|
|
||||||
dktk-connector-db:
|
|
||||||
image: "postgres:10.17"
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: "samply.connector"
|
|
||||||
POSTGRES_USER: "samply"
|
|
||||||
POSTGRES_PASSWORD: "123"
|
|
||||||
volumes:
|
|
||||||
- "dktk-connector-db-data:/var/lib/postgresql/data"
|
|
||||||
restart: "always"
|
|
||||||
|
|
||||||
|
|
||||||
# dktk-fed-search-share:
|
|
||||||
# image: "ghcr.io/samply/dktk-fed-search-share:pr-1"
|
|
||||||
# container_name: bridgehead_dktk_share
|
|
||||||
# environment:
|
|
||||||
# APP_BASE_URL: "http://dktk-fed-search-share:8080"
|
|
||||||
# APP_STORE_URL: "http://blaze:8080/fhir"
|
|
||||||
# APP_BROKER_BASEURL: "http://e260-serv-11.inet.dkfz-heidelberg.de:8080/broker/rest/searchbroker"
|
|
||||||
# APP_BROKER_MAIL: "foo@bar.de"
|
|
||||||
# APP_STORE_BASEURL: "http://bridgehead_dktk_blaze:8080/fhir"
|
|
||||||
# SPRING_DATASOURCE_URL: "jdbc:postgresql://dktk-fed-search-share-db:5432/dktk-fed-search-share"
|
|
||||||
# JAVA_TOOL_OPTIONS: "-Xmx1g"
|
|
||||||
# http_proxy: "http://www-int2.inet.dkfz-heidelberg.de:3128"
|
|
||||||
# https_proxy: "http://www-int2.inet.dkfz-heidelberg.de:3128"
|
|
||||||
# HTTP_PROXY: "http://www-int2.inet.dkfz-heidelberg.de:3128"
|
|
||||||
# HTTPS_PROXY: "http://www-int2.inet.dkfz-heidelberg.de:3128"
|
|
||||||
# depends_on:
|
|
||||||
# - dktk-fed-search-share-db
|
|
||||||
# - blaze
|
|
||||||
# labels:
|
|
||||||
# - "traefik.enable=true"
|
|
||||||
# - "traefik.http.routers.dktk-fed-search.rule=PathPrefix(`/dktk-connector`)"
|
|
||||||
# - "traefik.http.services.dktk-fed-search.loadbalancer.server.port=8080"
|
|
||||||
|
|
||||||
# dktk-fed-search-share-db:
|
|
||||||
# image: "postgres:14"
|
|
||||||
# environment:
|
|
||||||
# POSTGRES_USER: "dktk-fed-search-share"
|
|
||||||
# POSTGRES_PASSWORD: "dktk-fed-search-share"
|
|
||||||
# POSTGRES_DB: "dktk-fed-search-share"
|
|
||||||
# volumes:
|
|
||||||
# - "dktk-fed-search-share-db-data:/var/lib/postgresql/data"
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
blaze-data:
|
|
||||||
dktk-connector-logs:
|
|
||||||
dktk-connector-db-data:
|
|
||||||
# dktk-fed-search-share-db-data:
|
|
|
@ -1,122 +0,0 @@
|
||||||
version: "3.7"
|
|
||||||
volumes:
|
|
||||||
dktk-connector-db-data:
|
|
||||||
dktk-connector-logs:
|
|
||||||
patientlist-db-data:
|
|
||||||
patientlist-logs:
|
|
||||||
id-manager-logs:
|
|
||||||
|
|
||||||
services:
|
|
||||||
traefik:
|
|
||||||
image: traefik:2.4
|
|
||||||
command:
|
|
||||||
- --api.insecure=true
|
|
||||||
- --entrypoints.web.address=:80
|
|
||||||
- --entrypoints.web-secure.address=:443
|
|
||||||
- --providers.docker=true
|
|
||||||
ports:
|
|
||||||
- 80:80
|
|
||||||
- 443:443
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
||||||
|
|
||||||
landing:
|
|
||||||
image: nginx:stable
|
|
||||||
volumes:
|
|
||||||
- ../landing/:/usr/share/nginx/html
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.landing.rule=PathPrefix(`/`)"
|
|
||||||
- "traefik.http.services.landing.loadbalancer.server.port=80"
|
|
||||||
|
|
||||||
dktk-connector:
|
|
||||||
image: "samply/share-client:dktk-feature-environmentPreconfigurationTorben"
|
|
||||||
environment:
|
|
||||||
POSTGRES_HOST: "dktk-connector-db"
|
|
||||||
ID_MANAGER_APIKEY: ${MAGICPL_API_KEY_CONNECTOR}
|
|
||||||
POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS}
|
|
||||||
HTTP_PROXY_USER: ${HTTP_PROXY_USER}
|
|
||||||
HTTP_PROXY_PASSWORD: ${HTTP_PROXY_PASSWORD}
|
|
||||||
HTTPS_PROXY_USER: ${HTTPS_PROXY_USER}
|
|
||||||
HTTPS_PROXY_PASSWORD: ${HTTPS_PROXY_PASSWORD}
|
|
||||||
env_file:
|
|
||||||
- ../site-config/dktk.env
|
|
||||||
# Necessary for the connector to successful check the status of other components on the same host
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
- "${HOST}:${HOSTIP}"
|
|
||||||
volumes:
|
|
||||||
- "dktk-connector-logs:/usr/local/tomcat/logs"
|
|
||||||
depends_on:
|
|
||||||
- connector-db
|
|
||||||
restart: always
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.dktk_connector.rule=PathPrefix(`/dktk-connector`)"
|
|
||||||
- "traefik.http.services.dktk_connector.loadbalancer.server.port=8080"
|
|
||||||
|
|
||||||
dktk-connector-db:
|
|
||||||
image: postgres:10.17
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: "share_v2"
|
|
||||||
POSTGRES_USER: "samplyweb"
|
|
||||||
POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS}
|
|
||||||
volumes:
|
|
||||||
- "dktk-connector-db-data:/var/lib/postgresql/data"
|
|
||||||
restart: always
|
|
||||||
|
|
||||||
id-manager:
|
|
||||||
image: docker.verbis.dkfz.de/ccp/idmanager:bridgehead-develop
|
|
||||||
environment:
|
|
||||||
MAGICPL_SITE: ${SITE}
|
|
||||||
MAGICPL_MAINZELLISTE_API_KEY: ${MAGICPL_MAINZELLISTE_API_KEY}
|
|
||||||
MAGICPL_API_KEY: ${MAGICPL_API_KEY}
|
|
||||||
MAGICPL_API_KEY_CONNECTOR: ${MAGICPL_API_KEY_CONNECTOR}
|
|
||||||
MAGICPL_MAINZELLISTE_CENTRAL_API_KEY: ${MAGICPL_MAINZELLISTE_CENTRAL_API_KEY}
|
|
||||||
MAGICPL_CENTRAL_API_KEY: ${MAGICPL_CENTRAL_API_KEY}
|
|
||||||
MAGICPL_OIDC_CLIENT_ID: ${MAGICPL_OIDC_CLIENT_ID}
|
|
||||||
MAGICPL_OIDC_CLIENT_SECRET: ${MAGICPL_OIDC_CLIENT_SECRET}
|
|
||||||
TOMCAT_REVERSEPROXY_FQDN: "${HOST}"
|
|
||||||
HTTP_PROXY_USER: ${HTTP_PROXY_USER}
|
|
||||||
HTTP_PROXY_PASSWORD: ${HTTP_PROXY_PASSWORD}
|
|
||||||
HTTPS_PROXY_USER: ${HTTPS_PROXY_USER}
|
|
||||||
HTTPS_PROXY_PASSWORD: ${HTTPS_PROXY_PASSWORD}
|
|
||||||
env_file:
|
|
||||||
- ../site-config/dktk.env
|
|
||||||
volumes:
|
|
||||||
- "id-manager-logs:/usr/local/tomcat/logs"
|
|
||||||
depends_on:
|
|
||||||
- patientlist
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.id-manager.rule=PathPrefix(`/ID-Manager`)"
|
|
||||||
- "traefik.http.services.id-manager.loadbalancer.server.port=8080"
|
|
||||||
|
|
||||||
patientlist:
|
|
||||||
image: docker.verbis.dkfz.de/ccp/patientlist:bridgehead-develop
|
|
||||||
environment:
|
|
||||||
ML_SITE: ${SITE}
|
|
||||||
ML_API_KEY: ${MAGICPL_MAINZELLISTE_API_KEY}
|
|
||||||
ML_DB_PASS: ${ML_DB_PASS}
|
|
||||||
TOMCAT_REVERSEPROXY_FQDN: "${HOST}"
|
|
||||||
env_file:
|
|
||||||
- ../site-config/dktk.env
|
|
||||||
# TODO: Implement automatic seed generation in mainzelliste
|
|
||||||
- ../site-config/patientlist.env
|
|
||||||
volumes:
|
|
||||||
- "patientlist-logs:/usr/local/tomcat/logs"
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.patientlist.rule=PathPrefix(`/Patientlist`)"
|
|
||||||
- "traefik.http.services.patientlist.loadbalancer.server.port=8080"
|
|
||||||
depends_on:
|
|
||||||
- patientlist-db
|
|
||||||
|
|
||||||
patientlist-db:
|
|
||||||
image: postgres:13.1-alpine
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: mainzelliste
|
|
||||||
POSTGRES_USER: mainzelliste
|
|
||||||
POSTGRES_PASSWORD: ${ML_DB_PASS}
|
|
||||||
TZ: "Europe/Berlin"
|
|
||||||
volumes:
|
|
||||||
- "patientlist-db-data:/var/lib/postgresql/data"
|
|
|
@ -1,444 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pathconfig [
|
|
||||||
<!ENTITY localPatientListUrl "MAGICPL_MAINZELLISTE_URL">
|
|
||||||
<!ENTITY localPatientlistApiKey "MAGICPL_MAINZELLISTE_API_KEY">
|
|
||||||
<!ENTITY magicplApiKey "MAGICPL_API_KEY">
|
|
||||||
<!ENTITY magicplApiKeyConnector "MAGICPL_API_KEY_CONNECTOR">
|
|
||||||
<!ENTITY centralPatientListUrl "MAGICPL_MAINZELLISTE_CENTRAL_URL">
|
|
||||||
<!ENTITY centralPatientListApiKey "MAGICPL_MAINZELLISTE_CENTRAL_API_KEY">
|
|
||||||
<!ENTITY centralKNEUrl "MAGICPL_CENTRAL_URL">
|
|
||||||
<!ENTITY centralKNEApiKey "MAGICPL_CENTRAL_API_KEY">
|
|
||||||
<!ENTITY site "MAGICPL_SITE">
|
|
||||||
]>
|
|
||||||
<pathconfig xmlns="http://www.example.org/Pfade" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://www.example.org/Pfade magicpl.xsd ">
|
|
||||||
<paths>
|
|
||||||
<multipath>
|
|
||||||
<name>getId</name>
|
|
||||||
<input>
|
|
||||||
<iorecord ref="IDAT" name="IDAT"/>
|
|
||||||
<iosingle ref="extIDs" name="extIDs"/>
|
|
||||||
<iosingle ref="idTypes" name="idTypes"/>
|
|
||||||
<iosingle ref="consented" name="consented"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
<iosingle ref="sureness" name="sureness"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</output>
|
|
||||||
<step>
|
|
||||||
<name>getRequestedId</name>
|
|
||||||
<parameters/>
|
|
||||||
<input>
|
|
||||||
<iorecord ref="IDAT" name="IDAT"/>
|
|
||||||
<iosingle ref="idTypes" name="idTypes"/>
|
|
||||||
<iosingle ref="consented" name="consented"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
<iosingle ref="sureness" name="sureness"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</output>
|
|
||||||
<switch>
|
|
||||||
<evaluator name="de.pseudonymisierung.magicpl.evaluator.IsConsentedEvaluator">
|
|
||||||
<parameters>
|
|
||||||
<parameter name="key">consented</parameter>
|
|
||||||
</parameters>
|
|
||||||
</evaluator>
|
|
||||||
<!-- eventuell muss hier andere unterscheidung genommen werden -->
|
|
||||||
<case value="true">
|
|
||||||
<multipath>
|
|
||||||
<name>getDktkIdWithIdat</name>
|
|
||||||
<parameters/>
|
|
||||||
<input>
|
|
||||||
<iorecord ref="IDAT"/>
|
|
||||||
<iosingle ref="idTypes" name="idTypes"/>
|
|
||||||
<iosingle ref="extIDs" name="extIDs"/>
|
|
||||||
<iosingle ref="consented"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
<iosingle ref="sureness" name="sureness"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</output>
|
|
||||||
<step>
|
|
||||||
<name>getIdToken</name>
|
|
||||||
<parameters>
|
|
||||||
<!-- Hier war lokale Pfade URL angegeben, es soll aber eigentlich zentraler KNE aufgerufen werden -->
|
|
||||||
<parameter name="url">¢ralKNEUrl;/paths/getIdToken</parameter>
|
|
||||||
<parameter name="method">POST</parameter>
|
|
||||||
<parameter name="apiKey">¢ralKNEApiKey;</parameter>
|
|
||||||
<parameter name="excludeIdTypes">BK_&site;_L-ID</parameter>
|
|
||||||
<parameter name="excludeIDAT">locallyUniqueId</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iorecord ref="IDAT" name="IDAT"/>
|
|
||||||
<iosingle ref="idTypes" name="idTypes"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.PathClient</implementation>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<name>getDktkId</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">¢ralPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">¢ralPatientListApiKey;</parameter>
|
|
||||||
<parameter name="mainzellisteApiVersion">3.2</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
<iosingle ref="sureness" name="sureness"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteClient</implementation>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<name>mapIdStringToExternalId</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="map">ids->extIDs</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="extIDs" name="extIDs"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.InputMapperProcessor</implementation>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<name>getLocalTKTExternalId</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">&localPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">&localPatientlistApiKey;</parameter>
|
|
||||||
<parameter name="fieldType">plain</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iorecord ref="IDAT" name="IDAT"/>
|
|
||||||
<iosingle ref="extIDs" name="extIDs"/>
|
|
||||||
<iosingle ref="idTypes" name="idTypes"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
</output>
|
|
||||||
<!-- TODO: Implementation für Ticket Erzeugung ohne Kontrolnummer -->
|
|
||||||
<!-- Wird hier eine neue Klasse benötigt oder kann diese hier entsprechend angepasst werden? -->
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteKNTicketClient</implementation>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<name>generateLocalIdExternalId</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">&localPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">&localPatientlistApiKey;</parameter>
|
|
||||||
<parameter name="mainzellisteApiVersion">3.2</parameter>
|
|
||||||
<parameter name="idType">BK_&site;_L-ID</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
<iosingle ref="extIDs" name="extIDs"/>
|
|
||||||
<iosingle ref="sureness" name="sureness"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteClient</implementation>
|
|
||||||
</step>
|
|
||||||
</multipath>
|
|
||||||
</case>
|
|
||||||
<case value="false">
|
|
||||||
<multipath>
|
|
||||||
<name>getLocalIdWithIDAT</name>
|
|
||||||
<input>
|
|
||||||
<iorecord ref="IDAT" name="IDAT"/>
|
|
||||||
<iosingle ref="idTypes" name="idTypes"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
<iosingle ref="sureness" name="sureness"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</output>
|
|
||||||
<step>
|
|
||||||
<name>getTKT</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">&localPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">&localPatientlistApiKey;</parameter>
|
|
||||||
<parameter name="fieldType">plain</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iorecord ref="IDAT" name="IDAT"/>
|
|
||||||
<iosingle ref="idTypes" name="idTypes"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
</output>
|
|
||||||
<!-- Wird hier eine neue Klasse benötigt oder kann diese hier entsprechend angepasst werden? -->
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteKNTicketClient</implementation>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<name>generateLocalId</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">&localPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">&localPatientlistApiKey;</parameter>
|
|
||||||
<parameter name="mainzellisteApiVersion">3.2</parameter>
|
|
||||||
<parameter name="idType">BK_&site;_L-ID</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
<iosingle ref="sureness" name="sureness"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="ids" name="ids"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteClient</implementation>
|
|
||||||
</step>
|
|
||||||
</multipath>
|
|
||||||
</case>
|
|
||||||
</switch>
|
|
||||||
</step>
|
|
||||||
</multipath>
|
|
||||||
<multipath>
|
|
||||||
<name>readPatients</name>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="searchIds" name="searchIds"/>
|
|
||||||
<iosingle ref="resultIds" name="resultIds"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="patients" name="patients"/>
|
|
||||||
</output>
|
|
||||||
<step>
|
|
||||||
<name>DecideLocalOrCentralRequest</name>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="searchIds" name="searchIds"/>
|
|
||||||
<iosingle ref="resultIds" name="resultIds"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="patients" name="patients"/>
|
|
||||||
</output>
|
|
||||||
<switch>
|
|
||||||
<evaluator name="de.pseudonymisierung.magicpl.evaluator.RegexEvaluator">
|
|
||||||
<parameters>
|
|
||||||
<parameter name="regex">MDS_\*_G-ID</parameter>
|
|
||||||
<parameter name="fieldName">resultIds</parameter>
|
|
||||||
</parameters>
|
|
||||||
</evaluator>
|
|
||||||
<case value="true">
|
|
||||||
<multipath>
|
|
||||||
<name>readPatientsCentrally</name>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="searchIds" name="searchIds"/>
|
|
||||||
<iosingle ref="resultIds" name="resultIds"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="patients" name="patients"/>
|
|
||||||
</output>
|
|
||||||
<step>
|
|
||||||
<name>createReadTokenCentral</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">¢ralPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">¢ralPatientListApiKey;</parameter>
|
|
||||||
<parameter name="ignoredIdTypeCheck">true</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="searchIds" name="searchIds"/>
|
|
||||||
<iosingle ref="resultIds" name="resultIds"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteReadTokenClient</implementation>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<name>resolveReadTokenCentral</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">¢ralPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">¢ralPatientListApiKey;</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="patients"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteReadClient</implementation>
|
|
||||||
</step>
|
|
||||||
</multipath>
|
|
||||||
</case>
|
|
||||||
<case value="false">
|
|
||||||
<multipath>
|
|
||||||
<name>readPatientsLocally</name>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="searchIds" name="searchIds"/>
|
|
||||||
<iosingle ref="resultIds" name="resultIds"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="patients" name="patients"/>
|
|
||||||
</output>
|
|
||||||
<step>
|
|
||||||
<name>createReadToken</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">&localPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">&localPatientlistApiKey;</parameter>
|
|
||||||
<parameter name="ignoredIdTypeCheck">true</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="searchIds" name="searchIds"/>
|
|
||||||
<iosingle ref="resultIds" name="resultIds"/>
|
|
||||||
<iosingle ref="auditTrail" name="auditTrail"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteReadTokenClient</implementation>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<name>resolveReadToken</name>
|
|
||||||
<parameters>
|
|
||||||
<parameter name="mainzellisteURL">&localPatientListUrl;</parameter>
|
|
||||||
<parameter name="mainzellisteApiKey">&localPatientlistApiKey;</parameter>
|
|
||||||
</parameters>
|
|
||||||
<input>
|
|
||||||
<iosingle ref="tokenId"/>
|
|
||||||
</input>
|
|
||||||
<output>
|
|
||||||
<iosingle ref="patients"/>
|
|
||||||
</output>
|
|
||||||
<implementation>de.pseudonymisierung.magicpl.processor.MainzellisteReadClient</implementation>
|
|
||||||
</step>
|
|
||||||
</multipath>
|
|
||||||
</case>
|
|
||||||
</switch>
|
|
||||||
</step>
|
|
||||||
</multipath>
|
|
||||||
</paths>
|
|
||||||
|
|
||||||
<iodefinitions>
|
|
||||||
<iorecord name="IDAT">
|
|
||||||
<iosingle name="Vorname"/>
|
|
||||||
<iosingle name="Nachname"/>
|
|
||||||
<iosingle name="Fruehere_Namen"/>
|
|
||||||
<iosingle name="Geburtstag"/>
|
|
||||||
<iosingle name="Geburtsmonat"/>
|
|
||||||
<iosingle name="Geburtsjahr"/>
|
|
||||||
<iosingle name="Staatsangehoerigkeit"/>
|
|
||||||
<iosingle name="Geschlecht"/>
|
|
||||||
<!-- external id which will be inputed into paths -->
|
|
||||||
<iosingle name="locallyUniqueId"/>
|
|
||||||
</iorecord>
|
|
||||||
<iosingle name="idTypes" type="ArrayList"/>
|
|
||||||
<iosingle name="ids"/>
|
|
||||||
<!-- iosingle for external Ids which will be transferred between two steps -->
|
|
||||||
<iosingle name="extIDs"/>
|
|
||||||
<iosingle name="consented"/>
|
|
||||||
<iosingle name="tokenId"/>
|
|
||||||
<iosingle name="auditTrail"/>
|
|
||||||
<iosingle name="searchIds"/>
|
|
||||||
<iosingle name="resultIds"/>
|
|
||||||
<iosingle name="patients"/>
|
|
||||||
<iosingle name="sureness"/>
|
|
||||||
</iodefinitions>
|
|
||||||
<authentication>
|
|
||||||
<client>
|
|
||||||
<permissions>getId</permissions>
|
|
||||||
<restrictions>
|
|
||||||
<restriction path="getId">
|
|
||||||
<inputRestriction input="idTypes">
|
|
||||||
<permissibleValues>
|
|
||||||
<value>DKTK000001950_&site;_L-ID</value>
|
|
||||||
<value>DKTK000001950_&site;_G-ID</value>
|
|
||||||
</permissibleValues>
|
|
||||||
</inputRestriction>
|
|
||||||
</restriction>
|
|
||||||
</restrictions>
|
|
||||||
<roles>DKTK000001950_USER</roles>
|
|
||||||
</client>
|
|
||||||
<client>
|
|
||||||
<permissions>getId</permissions>
|
|
||||||
<restrictions>
|
|
||||||
<restriction path="getId">
|
|
||||||
<inputRestriction input="idTypes">
|
|
||||||
<permissibleValues>
|
|
||||||
<value>DKTK000001951_&site;_L-ID</value>
|
|
||||||
<value>DKTK000001951_&site;_G-ID</value>
|
|
||||||
</permissibleValues>
|
|
||||||
</inputRestriction>
|
|
||||||
</restriction>
|
|
||||||
</restrictions>
|
|
||||||
<roles>DKTK000001951_USER</roles>
|
|
||||||
</client>
|
|
||||||
<client>
|
|
||||||
<permissions>getId</permissions>
|
|
||||||
<restrictions>
|
|
||||||
<restriction path="getId">
|
|
||||||
<inputRestriction input="idTypes">
|
|
||||||
<permissibleValues>
|
|
||||||
<value>DKTK000001985_&site;_L-ID</value>
|
|
||||||
<value>DKTK000001985_&site;_G-ID</value>
|
|
||||||
</permissibleValues>
|
|
||||||
</inputRestriction>
|
|
||||||
</restriction>
|
|
||||||
</restrictions>
|
|
||||||
<roles>DKTK000001985_USER</roles>
|
|
||||||
</client>
|
|
||||||
<client>
|
|
||||||
<permissions>getId</permissions>
|
|
||||||
<restrictions>
|
|
||||||
<restriction path="getId">
|
|
||||||
<inputRestriction input="idTypes">
|
|
||||||
<permissibleValues>
|
|
||||||
<value>DKTK000001986_&site;_L-ID</value>
|
|
||||||
<value>DKTK000001986_&site;_G-ID</value>
|
|
||||||
</permissibleValues>
|
|
||||||
</inputRestriction>
|
|
||||||
</restriction>
|
|
||||||
</restrictions>
|
|
||||||
<roles>DKTK000001986_USER</roles>
|
|
||||||
</client>
|
|
||||||
<client>
|
|
||||||
<permissions>getId</permissions>
|
|
||||||
<restrictions>
|
|
||||||
<restriction path="getId">
|
|
||||||
<inputRestriction input="idTypes">
|
|
||||||
<permissibleValues>
|
|
||||||
<value>DKTK999999999_&site;_L-ID</value>
|
|
||||||
<value>DKTK999999999_&site;_G-ID</value>
|
|
||||||
</permissibleValues>
|
|
||||||
</inputRestriction>
|
|
||||||
</restriction>
|
|
||||||
</restrictions>
|
|
||||||
<roles>DKTK999999999_USER</roles>
|
|
||||||
</client>
|
|
||||||
<client>
|
|
||||||
<permissions>getId</permissions>
|
|
||||||
<restrictions>
|
|
||||||
<restriction path="getId">
|
|
||||||
<inputRestriction input="idTypes">
|
|
||||||
<permissibleValues>
|
|
||||||
<value>DKTK000002089_&site;_L-ID</value>
|
|
||||||
<value>DKTK000002089_&site;_G-ID</value>
|
|
||||||
</permissibleValues>
|
|
||||||
</inputRestriction>
|
|
||||||
</restriction>
|
|
||||||
</restrictions>
|
|
||||||
<roles>DKTK000002089_USER</roles>
|
|
||||||
</client>
|
|
||||||
<client>
|
|
||||||
<permissions>getId</permissions>
|
|
||||||
<apiKey>&magicplApiKey;</apiKey>
|
|
||||||
</client>
|
|
||||||
<client>
|
|
||||||
<permissions>readPatients</permissions>
|
|
||||||
<apiKey>&magicplApiKeyConnector;</apiKey>
|
|
||||||
</client>
|
|
||||||
</authentication>
|
|
||||||
</pathconfig>
|
|
|
@ -1,37 +0,0 @@
|
||||||
# Konfiguration for the bridgehead
|
|
||||||
server {
|
|
||||||
|
|
||||||
# this is the internal Docker DNS, cache only for 30s
|
|
||||||
resolver 127.0.0.11 valid=30s;
|
|
||||||
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Host $proxy_host;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
|
|
||||||
### Defining the urls like this, will stop nginx from failing on startup if one service isn't started.
|
|
||||||
set $internal_connector_url http://connector:8080;
|
|
||||||
set $internal_idmanager_url http://idmanager:8080;
|
|
||||||
set $internal_patientlist_url http://patientlist:8080;
|
|
||||||
set $internal_ldm_url http://ldm:8080;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass $internal_connector_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /ID-Manager/ {
|
|
||||||
proxy_pass $internal_idmanager_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /Patientlist/ {
|
|
||||||
proxy_pass $internal_patientlist_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /LocalDatamanagement/ {
|
|
||||||
proxy_pass $internal_ldm_url;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -67,11 +67,11 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Bridgehead</td>
|
<td>Bridgehead</td>
|
||||||
<td>Reverse Proxy <a href="http://e260-serv-05:8080/">Traefik</a></td>
|
<td>Reverse Proxy <a href="https://e260-serv-05/dashboard/">Traefik</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>DKTK</td>
|
<td>DKTK</td>
|
||||||
<td><a href="http://e260-serv-05/dktk-localdatamanagement/fhir/">Blaze</a></td>
|
<td><a href="https://e260-serv-05/dktk-localdatamanagement/fhir/">Blaze</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit cef02f04b52f4984e0a10560e0335f5248dde9c5
|
|
Loading…
Reference in New Issue