Sign inSign up

mosaicgreifswald/gpas

By mosaicgreifswald

•Updated 11 days ago

Image
0

10K+

mosaicgreifswald/gpas repository overview

context

Current Docker-Version of gPAS: 2026.1.0 (Jul 2026)
Current Docker-Version of TTP-FHIR-Gateway: 2026.1.0, Details from ReleaseNotes⁠

⁠About

The use of pseudonyms is a privacy-enhancing technique supporting privacy-by-design and ensuring non-attribution. Pseudonymisation allows storing directly person identifying data separately and securely from medical data and supports the data controller to meet the GDPR’s data security requirements (Art. 32 lit. 1 EU GDPR).

To facilitate the generation and administration of appropriate pseudonyms the Institute for Community Medicine of the University Medicine Greifswald (UMG) developed the web-service-based gPAS.

The use of pseudonymization domains, the specification of individual alphabets and generator algorithms allow for the free generation of different pseudonyms per data source, application context or study site.

⁠General

This gPAS image is completely identical to the image mosaicgreifswald/wildfly:40⁠,
except that it already contains the deployments and JBoss-CLIs from our gPAS⁠.

⁠API

⁠SOAP

All functionalities of the gPAS are provided for external use via SOAP-interfaces. The JavaDoc specs for the Services⁠ are available online (see package org.emau.icmvc.ganimed.ttp.psn).

Use SOAP-UI to create sample requests based on the WSDL files.

⁠Standard-Service-Interface

The WSDL URL is http://<YOUR IPADDRESS>:8080/gpas/gpasService?wsdl⁠

⁠Standard-Service-Interface with Notifications

The WSDL URL is http://<YOUR IPADDRESS>:8080/gpas/gpasServiceWithNotification?wsdl⁠

⁠Management-Management-Interface

The WSDL URL is http://<YOUR IPADDRESS>:8080/gpas/DomainService?wsdl⁠

⁠FHIR

More details from https://www.ths-greifswald.de/gpas/fhir⁠

⁠IT-Security Recommendations

Access to relevant application and database servers of the Trusted Third Party tools should only be possible for authorised personnel and via authorised end devices. We therefore recommend additionally implementing the following IT security measures:

  • Operation of the relevant servers in separate network zones (separate from the research and supply network).
  • Use of firewalls and IP filters
  • Access restriction at URL level with Basic Authentication (e.g. with NGINX or Apache)
  • use of Keycloak to restrict access to Web-Frontends and technical interfaces

⁠Relevant for this Image

⁠ENV-Variables and defaults

CategoryVariableAvailable values or schemeDefaultPurpose
WF-AdminWF_NO_ADMINtrue | falsefalseset true if you don't need wildfly-admin
WF-AdminWF_ADMIN_USER<STRING>admindefine username for wildfly-admin
WF-AdminWF_ADMIN_PASS<STRING>-random-to set password for wildfly-admin
QualityWF_HEALTHCHECK_URLS<NEWLINE-SEPARATED-URLs>-contain a list of urls to check the health of this container
OptimizingWF_MAX_POST_SIZE<BYTES>10485760the maximum size of a post that will be accepted, in bytes
OptimizingWF_MAX_PARAMETERS<NUMBER>100000the maximum number of parameters that will be parsed
OptimizingWF_MAX_CHILD_ELEMENTS<NUMBER>50000the maximum number of children that will be allow in xml-post
OptimizingWF_BLOCKING_TIMEOUT<SECONDS>300this can be used to change the time until processes are cancelled
OptimizingWF_TRANSACTION_TIMEOUT<SECONDS>300this can be used to change the time after which a transaction is automatically terminated
OptimizingWF_DATASOURCES_QUERY_TIMEOUT <-- new<SECONDS>30timeout for datasource queries
OptimizingWF_DEPLOYMENT_TIMEOUT <-- new<SECONDS>600timeout for the deployment scanner to allow a deployment attempt before being canceled
OptimizingWF_ENABLE_HTTP2true | falsefalseHTTP2 support
OptimizingWF_ENABLE_PROXY_ADDRESS_FORWARDING <-- newtrue | falsefalseuse this option when the wildfly is running behind a reverse proxy or load balancer (e.g., NGINX, Apache, etc.)
SecurityWF_SERVER_KEYSTORE_PASSWORD<STRING>-this password is only used in combination with /entrypoint-wildfly-server-keystore to access the keystore
SecurityWF_SERVER_KEYSTORE_ALIAS<STRING>-if there is more than one certificate in the keystore, this alias must be specified
LoggingWF_SYSTEM_LOG_TO <-- improvedCONSOLE;FILE;SYSLOGCONSOLEmultiple values semicolon-separated possible
LoggingWF_SYSTEM_LOG_LEVEL <-- improvedSEVERE|FATAL|ERROR|WARN|INFO|DEBUG|TRACE|FINEINFOthis can be used to set the log level of the console
LoggingWF_SYSTEM_LOG_PATTERN<STRING>%d %-5.5p %-4.4L %-40.40c{2.} | %m%n
LoggingWF_SYSTEM_LOG_COLORS <-- new<LEVEL>:<COLOR>[,<LEVEL>:<COLOR>[,...]]-this map allows a comma delimited list of colors to be used for different levels with a pattern formatter
LoggingWF_SYSTEM_SYSLOG_HOST <-- new<HOST>syslog
LoggingWF_SYSTEM_SYSLOG_PORT <-- new<PORT>514
LoggingWF_SYSTEM_SYSLOG_FORMAT <-- newRFC3164|RFC5424RFC3164
SecurityWF_SERVER_KEYSTORE_PASSWORD<STRING>-this password is only used in combination with /entrypoint-wildfly-server-keystore to access the keystore
SecurityWF_SERVER_KEYSTORE_ALIAS<STRING>-if there is more than one certificate in the keystore, this alias must be specified
ProcessingMOS_WAIT_FOR_PORTS<HOST>:<PORT>[:<TIMEOUT>[:<SLEEP>]],...-comma delimited list of endpoints that should wait before starting wildfly. defaults: timeout=300,sleep=0
ProcessingWF_WAIT_FOR_PORTS<HOST>:<PORT>[:<TIMEOUT>[:<SLEEP>]],...-just like MOS_WAIT_FOR_PORTS, but waits after JBoss-CLI
DebuggingWF_DEBUGtrue | falsefalseset true to enable debug-mode in wildfly
DebuggingDEBUG_PORT<IP>:<PORT>*:8787for debugging you can change the ip:port
OptimizingTZ<STRING>Europe/Berlin
OptimizingJAVA_OPTS<STRING>-you need more memory? then give yourself more memory or define any system-variables
LoggingTTP_GPAS_LOG_TOCONSOLE;FILEfalse
LoggingTTP_GPAS_LOG_LEVELTRACE | DEBUG | INFO | WARN | ERROR | FATALINFO
LoggingTTP_GPAS_LOG_PATTERN<STRING>%d %-5p [%c] (%t) %s%E%n
DatabaseTTP_GPAS_DB_DBMS <-- newmysql | mariadb | postgresqlmysql
DatabaseTTP_GPAS_DB_HOST<STRING>mysql
DatabaseTTP_GPAS_DB_PORT0-655353306
DatabaseTTP_GPAS_DB_NAME<STRING>gpas
DatabaseTTP_GPAS_DB_USER<STRING>gpas_user
DatabaseTTP_GPAS_DB_PASS<STRING>gpas_password
DatabaseTTP_GPAS_DB_URI <-- new<DBMS://HOST:PORT/DB_NAME?PARAMS>(builded from above values)if TTP_GPAS_DB_URI is set, the other variables (TTP_GPAS_DB_*) are mostly ignored
SecurityTTP_GPAS_WEB_AUTH_MODEgras | keycloak-
SecurityTTP_GPAS_SOAP_KEYCLOAK_ENABLEtrue | false-
SecurityTTP_GPAS_SOAP_ROLE_USER_NAME<STRING>role.gpas.user
SecurityTTP_GPAS_SOAP_ROLE_USER_SERVICES<STRING>/gpas/gpasService,/gpas/gpasServiceWithNotification
SecurityTTP_GPAS_SOAP_ROLE_ADMIN_NAME<STRING>role.gpas.admin
SecurityTTP_GPAS_SOAP_ROLE_ADMIN_SERVICES<STRING>/gpas/DomainService
OptimizingTTP_GPAS_WEB_CONTEXT<STRING>gpas-web
OptimizingTTP_GPAS_REST_CONTEXT <-- new<STRING>gpas-rest
OptimizingTTP_GPAS_SOAP_CONTEXT<STRING>gpas
OptimizingTTP_DISABLE_FHIR_GATEWAYtrue | falsefalseset true if you don't need fhir-gateway
OptimizingTTP_DISABLE_NOTI_CLIENTtrue | falsefalseset true if you don't need notification-client
OptimizingTTP_DISABLE_NOTI_SERVICEtrue | falsefalseset true if you don't need notification-service
SecurityTTP_GPAS_AUTH_DOMAIN_ROLES <-- newDISABLED|FORCED|IMPLIED(from TTP_AUTH_DOMAIN_ROLES=IMPLIED)

⁠Relevant Entrypoints

Pathref. ENV-VariableTypePurpose
/entrypoint-logsENTRY_LOGSfolderall further layers can store their own log files here in subdirectories.
/entrypoint-help-and-usageENTRY_USAGEfolderHere you will find README-files for each docker-image-layer, including examples.
/entrypoint-java-cacertsENTRY_JAVA_CACERTSfilethe entrypoint can be used to store its own cacerts, e.g. containing public-keys of server certificates for specific web requests or CA.
/entrypoint-wildfly-cliENTRY_WILDFLY_CLIfolderto execute JBoss-cli-files before start WildFly (read-only access)
/entrypoint-wildfly-deploymentsENTRY_WILDFLY_DEPLOYSfolderto import your deployments, also ear- and/or war-files (read-only access, optional write access)
/entrypoint-wildfly-addinsENTRY_WILDFLY_ADDINSfolderto import additional files for deployments (read-only access)
/entrypoint-wildfly-logsENTRY_WILDFLY_LOGSfolderto export all available log-files (read/write access)
/entrypoint-wildfly-server-keystoreENTRY_WILDFLY_SERVER_KEYSTOREfileto use your own keystore for server certificate (read-only access) <-- experimental

⁠Usage

"versions" shows all installed tools and components, with their versions.

docker run --rm mosaicgreifswald/gpas versions
  last updated               : 2026-07-20 16:46:59
  Architecture               : x86_64
  Distribution               : Debian GNU/Linux 13.6 (trixie)
  zulu-jre                   : 25.0.3 
  WildFly                    : 40.0.1.Final
  MySQL-Connector            : 9.7.0
  MariaDB-Connector          : 3.5.9
  PostgreSQL-Connector       : 42.7.13
  EclipseLink                : 4.0.9
  gPAS                       : 2026.1.0
  FHIR-Gateway               : 2026.1.0
  Notification-Client        : 2026.1.0
  Notification-Service       : 2026.1.0

⁠Change write permissions

If data is stored on the host-system (via volume), it is created by default with the internal mosaic-user (UID:GID = 1111:1111). You can change the write-user by using the Docker parameter --user/-u.

# change write-user (UID:GID) for writable volumes like logs/
> docker run --rm -d \
    -u 1006:1001 \
    -e WF_SYSTEM_LOG_TO=FILE \
    -v /path/to/your/logs:/entrypoint-wildfly-logs \
    mosaicgreifswald/gpas

> ls -l /path/to/your/logs
insgesamt 8
-rw-r--r--  1 1006 1001    0 13. Jun 10:25 gpas.log

⁠Database

You need a prepared MySQL database to start the gPAS successfully.

# with external db
> docker run --rm -it \
    -e TTP_DB_HOST=host_or_ip \
    -e TTP_DB_PORT=3306 \
    -e TTP_DB_USER=gpas \
    -e TTP_DB_PASS=top-secret \
    -p 8080:8080 \
    mosaicgreifswald/gpas

If you don't have an gPAS database, you can create one yourself. Everything you need to create your own database is already included in this image:

# explore all additional files
> docker run --rm -it mosaicgreifswald/gpas examples

# explore and copy interesting files to your local host
> docker run --rm -it -v "/your/local/path/:/tmp/" -u "$(id -u):$(id -g)" mosaicgreifswald/gpas examples --target-dir /tmp

# or copy directly all files to your host
> docker run --rm -v "/your/local/path/:/tmp/" -u "$(id -u):$(id -g)" mosaicgreifswald/gpas examples --target-dir /tmp --copy-all

You will receive the following directory-tree and can start playing immediately:

|____layer-readme/
|  |____README-gpas.md
|____examples/
  |____compose-gpas/
    |____addins/
    |____demo/
    | |____demo_gpas.sql
    |____docs/
    | |____Docker-Update.md
    | |____gRAS-Einrichtung.md
    | |____TTP-Tools-Keycloak-Einrichtung.md
    | |____TTP-Tools-Keycloak-Realm.json
    |____envs/
    | |____mysql.env
    | |____ttp_commons.env
    | |____ttp_fhir.env
    | |____ttp_gpas.env
    | |____ttp_gras.env
    | |____ttp_noti.env
    |____logs/
    |____sqls/
    | |____create_database_gpas.sql
    | |____create_database_gras.sql
    | |____create_database_noti.sql
    | |____init_database_gras_for_gpas.sql
    |____update_sqls/
    | |____update_database_gpas.sql
    |____docker-compose.yml

You can then start up an empty system directly:

# go to compose-dir and start compose
> cd examples/compose-gpas
> docker compose up

⁠Usage with docker compose

over docker-compose with dependent on mysql-db (example)

# docker-compose.yml
services:
  mysql:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: top-secret
    volumes:
      - /path/to/your/init-sql-files:/docker-entrypoint-initdb.d
  wildfly:
    image: mosaicgreifswald/gpas
    ports:
      - 8080:8080
      - 9990:9990
    depends_on:
      - mysql
    environment:
      WF_ADMIN_PASS: top-secret
      WF_HEALTHCHECK_URLS: http://localhost:8080

⁠Update existing instance

  1. Get all update-sqls from additional files:
# copy all update-scripts to your host
> docker run --rm -v "/your/local/path/:/tmp/" -u "$(id -u):$(id -g)" mosaicgreifswald/gpas examples \
    --source-dir /entrypoint-help-and-usage/examples/compose-gpas/update_sqls/ \
    --target-dir /tmp \
    --copy-all
  1. Create a backup before you start the update.
  2. Run all SQL scripts on your database that are relevant for your current version. Make sure you follow the correct order.
  3. Now you can use the new image.

⁠Current Software-Versions on this Image

DateTagsChanges
2026-07-20









2026.1.0⁠, 2026⁠, latest⁠









Debian 13.6 "trixie"
openJRE 25.0.3
WildFly 40.0.1.Final
MySQL-Connector 9.7.0
MariaDB-Connector 3.5.9
PostgreSQL-Connector 42.7.13
EclipseLink 4.0.9
gPAS 2026.1.0
FHIR-Gateway 2026.1.0
Notification-Service 2026.1.0
2025-12-16









2025.2.0⁠, 2025⁠









Debian 13.2 "trixie"
openJRE 21.0.9
WildFly 38.0.0.Final
MySQL-Connector 9.5.0
MariaDB-Connector 3.5.6
PostgreSQL-Connector 42.7.8
EclipseLink 4.0.8
gPAS 2025.2.0
FHIR-Gateway 2025.2.0
Notification-Service 2025.2.0
2025-10-29







2025.1.3⁠







Debian 13.1 "trixie"
openJRE 21.0.9
WildFly 38.0.0.Final
MySQL-Connector 9.5.0
EclipseLink 4.0.8
gPAS 2025.1.3
FHIR-Gateway 2025.1.1
Notification-Service 2025.1.1
2025-04-15







2024.3.1⁠, 2024⁠







Debian 12.9 "bookworm"
openJRE 21.0.6
WildFly 35.0.1.Final
MySQL-Connector 9.2.0
EclipseLink 4.0.5
gPAS 2024.3.1
FHIR-Gateway 2024.3.2
Notification-Service 2024.2.0
2025-01-24







2024.3.0⁠







Debian 12.9 "bookworm"
openJRE 21.0.6
WildFly 35.0.0.Final
MySQL-Connector 9.2.0
EclipseLink 4.0.5
gPAS 2024.3.0
FHIR-Gateway 2024.3.0
Notification-Service 2024.2.0
2024-10-10






2024.2.1⁠






Debian 12.7 "bookworm"
openJRE 21.0.4
WildFly 32.0.1.Final
EclipseLink 4.0.4
gPAS 2024.2.1
FHIR-Gateway 2024.2.2
Notification-Service 2024.1.1
2024-07-22






2024.1.0⁠






Debian 12.6 "bookworm"
openJRE 21.0.4
WildFly 32.0.1.Final
EclipseLink 4.0.4
gPAS 2024.1.0
FHIR-Gateway 2024.1.0
Notification-Service 2024.1.0
2023-11-27







2023.1.2⁠, 2023⁠







Debian 12.2 "bookworm"
openJRE 17.0.9
WildFly 26.1.3.Final
EclipseLink 2.7.12
KeyCloak-Client 19.0.2
gPAS 2023.1.2
FHIR-Gateway 2023.1.2
Notification-Service 2023.1.1

⁠Additional Information

The gPAS was developed by the University Medicine Greifswald and published in 2013 as part of the MOSAIC-Project⁠ (funded by the DFG HO 1937/2-1).

Selected functionalities of gPAS were developed as part of the following research projects:

  • MIRACUM (funded by the German Federal Ministry of Education and Research 01ZZ1801M)

⁠Credits

Concept and implementation: L. Geidel
Web-Client: A. Blumentritt, M. Bialke, F.M. Moser
Docker: R. Schuldt
TTP-FHIR Gateway für gPAS: M. Bialke, P. Penndorf, L. Geidel, S. Lang, F.M. Moser

⁠License

License: AGPLv3, https://www.gnu.org/licenses/agpl-3.0.en.html⁠
Copyright: 2013 - 2026 University Medicine Greifswald
Contact: https://www.ths-greifswald.de/kontakt/⁠

⁠Publications

⁠Supported languages

German, English

Tag summary

Content type

Image

Digest

sha256:20a2db016…

Size

590.5 MB

Last updated

11 days ago

docker pull mosaicgreifswald/gpas