forked from medizininformatik-initiative/feasibility-backend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
92 lines (91 loc) · 7.05 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
version: '3.7'
services:
feasibility-gui-backend:
container_name: feasibility-gui-backend
build: .
ports:
- ${CODEX_FEASIBILITY_BACKEND_PORT:-127.0.0.1:8091}:8090
depends_on:
- feasibility-db
environment:
SPRING_DATASOURCE_URL: ${CODEX_FEASIBILITY_BACKEND_DATASOURCE_URL:-jdbc:postgresql://feasibility-db:5432/codex_ui?currentSchema=codex}
SPRING_DATASOURCE_USERNAME: ${CODEX_FEASIBILITY_BACKEND_DATASOURCE_USERNAME:-codex-postgres}
SPRING_DATASOURCE_PASSWORD: ${CODEX_FEASIBILITY_BACKEND_DATASOURCE_PASSWORD:-codex-password}
LOG_LEVEL: ${CODEX_FEASIBILITY_BACKEND_LOG_LEVEL:-warn}
BROKER_CLIENT_MOCK_ENABLED: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_MOCK_ENABLED:-true}
BROKER_CLIENT_DIRECT_ENABLED: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_DIRECT_ENABLED:-false}
BROKER_CLIENT_AKTIN_ENABLED: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_AKTIN_ENABLED:-false}
BROKER_CLIENT_DSF_ENABLED: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_DSF_ENABLED:-false}
KEYCLOAK_ENABLED: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_ENABLED:-true}
KEYCLOAK_BASE_URL: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_BASE_URL:-http://keycloak:8080}
KEYCLOAK_REALM: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_REALM:-feasibility}
KEYCLOAK_BASE_URL_ISSUER: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_BASE_URL_ISSUER:-http://localhost:8080/auth}
KEYCLOAK_BASE_URL_JWK: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_BASE_URL_JWK:-http://localhost:8080/auth}
KEYCLOAK_CLIENT_ID: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_CLIENT_ID:-feasibility-gui}
KEYCLOAK_ALLOWED_ROLE: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_ALLOWED_ROLE:-CODEX_USER}
KEYCLOAK_POWER_ROLE: ${CODEX_FEASIBILITY_BACKEND_KEYCLOAK_POWER_ROLE:-CODEX_POWER_USER}
ONTOLOGY_FILES_FOLDER_UI: ${CODEX_FEASIBILITY_BACKEND_ONTOLOGY_FILES_FOLDER:-/opt/codex-feasibility-backend/ontology}
ONTOLOGY_DB_MIGRATION_FOLDER: ${CODEX_FEASIBILITY_BACKEND_ONTOLOGY_DB_MIGRATION_FOLDER:-/opt/codex-feasibility-backend/ontology/migration}
MAPPINGS_FILE: ${CODEX_FEASIBILITY_BACKEND_ONTOLOGY_FILES_FOLDER:-/opt/codex-feasibility-backend/ontology}/codex-term-code-mapping.json
CONCEPT_TREE_FILE: ${CODEX_FEASIBILITY_BACKEND_ONTOLOGY_FILES_FOLDER:-/opt/codex-feasibility-backend/ontology}/codex-code-tree.json
CQL_TRANSLATE_ENABLED: ${CODEX_FEASIBILITY_BACKEND_CQL_TRANSLATE_ENABLED:-true}
FHIR_TRANSLATE_ENABLED: ${CODEX_FEASIBILITY_BACKEND_FHIR_TRANSLATE_ENABLED:-false}
FLARE_WEBSERVICE_BASE_URL: ${CODEX_FEASIBILITY_BACKEND_FLARE_WEBSERVICE_BASE_URL:-http://flare:5000}
CQL_SERVER_BASE_URL: ${CODEX_FEASIBILITY_BACKEND_CQL_SERVER_BASE_URL:-http://cql}
API_BASE_URL: ${CODEX_FEASIBILITY_BACKEND_API_BASE_URL:-}
QUERY_VALIDATION_ENABLED: ${CODEX_FEASIBILITY_BACKEND_QUERY_VALIDATION_ENABLED:-true}
QUERYRESULT_EXPIRY_MINUTES: ${CODEX_FEASIBILITY_BACKEND_QUERYRESULT_EXPIRY_MINUTES:-5}
MAX_SAVED_QUERIES_PER_USER: ${CODEX_FEASIBILITY_BACKEND_MAX_SAVED_QUERIES_PER_USER:-10}
# ---- Direct
BROKER_CLIENT_DIRECT_AUTH_BASIC_USERNAME: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_DIRECT_AUTH_BASIC_USERNAME}
BROKER_CLIENT_DIRECT_AUTH_BASIC_PASSWORD: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_DIRECT_AUTH_BASIC_PASSWORD}
BROKER_CLIENT_DIRECT_USE_CQL: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_DIRECT_USE_CQL:-false}
BROKER_CLIENT_OBFUSCATE_RESULT_COUNT: ${CODEX_FEASIBILITY_BACKEND_BROKER_CLIENT_OBFUSCATE_RESULT_COUNT:-false}
# ---- Aktin
AKTIN_BROKER_BASE_URL: ${CODEX_FEASIBILITY_BACKEND_AKTIN_BROKER_BASE_URL:-http://aktin:8080/broker}
AKTIN_BROKER_API_KEY: ${CODEX_FEASIBILITY_BACKEND_AKTIN_BROKER_API_KEY:-abc123}
# ---- DSF
DSF_SECURITY_CACERT: /opt/codex-feasibility-backend/dsf-security/${CODEX_FEASIBILITY_BACKEND_DSF_SECURITY_CACERT}
DSF_SECURITY_KEYSTORE_P12FILE: /opt/codex-feasibility-backend/dsf-security/${CODEX_FEASIBILITY_BACKEND_DSF_SECURITY_KEYSTORE_P12FILE}
DSF_SECURITY_KEYSTORE_PASSWORD: ${CODEX_FEASIBILITY_BACKEND_DSF_SECURITY_KEYSTORE_PASSWORD}
DSF_PROXY_HOST: ${CODEX_FEASIBILITY_BACKEND_DSF_PROXY_HOST:-}
DSF_PROXY_USERNAME: ${CODEX_FEASIBILITY_BACKEND_DSF_PROXY_USERNAME:-}
DSF_PROXY_PASSWORD: ${CODEX_FEASIBILITY_BACKEND_DSF_PROXY_PASSWORD:-}
DSF_WEBSERVICE_BASE_URL: ${CODEX_FEASIBILITY_BACKEND_DSF_WEBSERVICE_BASE_URL:-https://dsf:8080/fhir}
DSF_WEBSOCKET_URL: ${CODEX_FEASIBILITY_BACKEND_DSF_WEBSOCKET_URL:-wws://dsf:8080/fhir/ws}
DSF_ORGANIZATION_ID: ${CODEX_FEASIBILITY_BACKEND_DSF_ORGANIZATION_ID}
# ---- Privacy and Obfuscation
PRIVACY_QUOTA_SOFT_CREATE_AMOUNT: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_SOFT_CREATE_AMOUNT}
PRIVACY_QUOTA_SOFT_CREATE_INTERVALMINUTES: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_SOFT_CREATE_INTERVALMINUTES}
PRIVACY_QUOTA_HARD_CREATE_AMOUNT: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_HARD_CREATE_AMOUNT}
PRIVACY_QUOTA_HARD_CREATE_INTERVALMINUTES: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_HARD_CREATE_INTERVALMINUTES}
PRIVACY_QUOTA_READ_SUMMARY_POLLINGINTERVALSECONDS: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_READ_SUMMARY_POLLINGINTERVALSECONDS}
PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_POLLINGINTERVALSECONDS: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_POLLINGINTERVALSECONDS}
PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_AMOUNT: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_AMOUNT}
PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_INTERVALSECONDS: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_INTERVALSECONDS}
# If the total result for a query is below this number, return an empty result instead.
PRIVACY_THRESHOLD_RESULTS: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_THRESHOLD_RESULTS}
PRIVACY_THRESHOLD_SITES: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_THRESHOLD_SITES}
PRIVACY_THRESHOLD_SITES_RESULT: ${CODEX_FEASIBILITY_BACKEND_PRIVACY_THRESHOLD_SITES_RESULT}
QUERYRESULT_DISABLE_LOG_FILE_ENCRYPTION: "false"
volumes:
- ${CODEX_FEASIBILITY_BACKEND_LOCAL_CONCEPT_TREE_PATH:-./ontology/codex-code-tree.json}:${CODEX_FEASIBILITY_BACKEND_ONTOLOGY_FILES_FOLDER:-/opt/codex-feasibility-backend/ontology}/codex-code-tree.json
- ${CODEX_FEASIBILITY_BACKEND_LOCAL_TERM_CODE_MAPPING_PATH:-./ontology/codex-term-code-mapping.json}:${CODEX_FEASIBILITY_BACKEND_ONTOLOGY_FILES_FOLDER:-/opt/codex-feasibility-backend/ontology}/codex-term-code-mapping.json
- ${CODEX_FEASIBILITY_BACKEND_DSF_SECURITY_DIR:-/dev/null}:/opt/codex-feasibility-backend/dsf-security/
- ${CODEX_FEASIBILITY_BACKEND_ONTOLOGY_DB_MIGRATION_FOLDER:-../ontology/migration}:/opt/codex-feasibility-backend/ontology/migration
feasibility-db:
image: 'postgres:15-alpine'
container_name: feasibility-db
ports:
- ${CODEX_FEASIBILITY_BACKEND_DATABASE_PORT:-5432}:5432
environment:
- POSTGRES_USER=codex-postgres
- POSTGRES_PASSWORD=codex-password
- POSTGRES_DB=codex_ui
volumes:
- type: volume
source: feas-backend-db-data
target: /var/lib/postgresql/data
volumes:
feas-backend-db-data:
name: "feas-backend-db-data"