From c7af52166922129b5c493b178b5a330f4ea9e876 Mon Sep 17 00:00:00 2001 From: Lee Surprenant Date: Mon, 10 May 2021 11:57:22 -0400 Subject: [PATCH] enable liberty dev mode for fhir-server-webapp Signed-off-by: Lee Surprenant --- .gitignore | 3 + fhir-parent/pom.xml | 5 + fhir-server-webapp/pom.xml | 36 +++ .../default/extension-search-parameters.json | 9 + .../default/extension-search-parameters.md | 52 +++++ .../fhir-server-config-audit-cicd.json | 146 ++++++++++++ .../fhir-server-config-audit-config.json | 137 ++++++++++++ .../fhir-server-config-audit-environment.json | 124 +++++++++++ .../default/fhir-server-config-db2.json | 203 +++++++++++++++++ ...fhir-server-config-notifications-cicd.json | 156 +++++++++++++ .../fhir-server-config-postgresql.json | 82 +++++++ .../config/default/fhir-server-config.json | 208 ++++++++++++++++++ .../configDropins/defaults/bulkdata.xml | 40 ++++ .../configDropins/defaults/datasource.xml | 15 ++ .../configDropins/defaults/keystore.xml | 4 + .../config/configDropins/defaults/openapi.xml | 9 + .../defaults/transaction-manager.xml | 7 + .../configDropins/defaults/trustDefault.xml | 4 + .../config/configDropins/disabled/README.md | 13 ++ .../config/configDropins/disabled/cors.xml | 6 + .../configDropins/disabled/datasource-db2.xml | 18 ++ .../disabled/datasource-derby.xml | 28 +++ .../disabled/datasource-postgresql.xml | 17 ++ .../disabled/db2-cloud/bulkdata.xml | 55 +++++ .../configDropins/disabled/db2/bulkdata.xml | 58 +++++ .../config/configDropins/disabled/jvm.options | 7 + .../config/configDropins/disabled/jwtRS.xml | 31 +++ .../disabled/postgres/bulkdata.xml | 54 +++++ .../config/configDropins/overrides/.empty | 0 .../resources/security/fhirKeyStore.p12 | Bin 0 -> 6868 bytes .../resources/security/fhirTrustStore.p12 | Bin 0 -> 8898 bytes .../security/kafka.client.keystore.p12 | Bin 0 -> 5514 bytes .../security/kafka.client.truststore.p12 | Bin 0 -> 2904 bytes .../src/main/liberty/config/server.env | 1 + .../src/main/liberty/config/server.xml | 119 ++++++++++ 35 files changed, 1647 insertions(+) create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.json create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.md create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-cicd.json create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-config.json create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-environment.json create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-db2.json create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-notifications-cicd.json create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-postgresql.json create mode 100644 fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config.json create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/defaults/keystore.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/defaults/openapi.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/defaults/transaction-manager.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/defaults/trustDefault.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/README.md create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/cors.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-db2.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-derby.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-postgresql.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2-cloud/bulkdata.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2/bulkdata.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jvm.options create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jwtRS.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/disabled/postgres/bulkdata.xml create mode 100644 fhir-server-webapp/src/main/liberty/config/configDropins/overrides/.empty create mode 100644 fhir-server-webapp/src/main/liberty/config/resources/security/fhirKeyStore.p12 create mode 100644 fhir-server-webapp/src/main/liberty/config/resources/security/fhirTrustStore.p12 create mode 100644 fhir-server-webapp/src/main/liberty/config/resources/security/kafka.client.keystore.p12 create mode 100644 fhir-server-webapp/src/main/liberty/config/resources/security/kafka.client.truststore.p12 create mode 100644 fhir-server-webapp/src/main/liberty/config/server.env create mode 100644 fhir-server-webapp/src/main/liberty/config/server.xml diff --git a/.gitignore b/.gitignore index 2c4dab1fde2..5644f0046d9 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,9 @@ *.iml .idea/ +# VS Code +.vscode/ + # Mac OS X .DS_Store diff --git a/fhir-parent/pom.xml b/fhir-parent/pom.xml index 18f412a95bc..1fc749c2e0f 100644 --- a/fhir-parent/pom.xml +++ b/fhir-parent/pom.xml @@ -756,6 +756,11 @@ + + io.openliberty.tools + liberty-maven-plugin + 3.4.0 + com.spotify dockerfile-maven-plugin diff --git a/fhir-server-webapp/pom.xml b/fhir-server-webapp/pom.xml index d37e9d4c3ee..f0a2ced5ce6 100644 --- a/fhir-server-webapp/pom.xml +++ b/fhir-server-webapp/pom.xml @@ -87,9 +87,16 @@ jakarta.servlet-api provided + + org.apache.derby + derby + ${derby.version} + test + + ${fhir.server.war.name} maven-war-plugin @@ -97,6 +104,35 @@ ${fhir.server.war.name} + + io.openliberty.tools + liberty-maven-plugin + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.1.2 + + + copy-derby-dependency + package + + copy-dependencies + + + derby + ${project.build.directory}/liberty/wlp/usr/shared/lib/derby/ + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.json b/fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.json new file mode 100644 index 00000000000..23e3adda7db --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.json @@ -0,0 +1,9 @@ +{ + "resourceType": "Bundle", + "id": "searchParams", + "meta": { + "lastUpdated": "2018-12-27T22:37:54.724+11:00" + }, + "type": "collection", + "entry": [] +} diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.md b/fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.md new file mode 100644 index 00000000000..5c06f076d93 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/extension-search-parameters.md @@ -0,0 +1,52 @@ +Modify the Bundle to add your Search Parameter definitions. + +An example as follows: + +{ + "resourceType": "Bundle", + "id": "searchParams", + "meta": { + "lastUpdated": "2019-07-12T22:37:54.724+11:00" + }, + "type": "collection", + "entry": [{ + "fullUrl": "http://ibm.com/fhir/SearchParameter/Patient-favorite-color", + "resource": { + "resourceType": "SearchParameter", + "id": "Patient-favorite-color", + "url": "http://ibm.com/fhir/SearchParameter/Patient-favorite-color", + "version": "4.0.0", + "name": "favorite-color", + "status": "draft", + "experimental": false, + "date": "2018-12-27T22:37:54+11:00", + "publisher": "IBM FHIR Server Test", + "contact": [{ + "telecom": [{ + "system": "url", + "value": "http://ibm.com/fhir" + }] + }, + { + "telecom": [{ + "system": "url", + "value": "http://ibm.com/fhir" + }] + }], + "description": "the patient's favorite color", + "code": "favorite-color", + "base": ["Patient"], + "type": "string", + "xpathUsage": "normal", + "xpath": "f:Patient/f:extension[@url='http://ibm.com/fhir/extension/Patient/favorite-color']/f:valueString", + "expression": "Patient.extension.where(url='http://ibm.com/fhir/extension/Patient/favorite-color').valueString", + "multipleOr": true, + "multipleAnd": true, + "modifier": [] + } + }] +} + + + +FHIR® is the registered trademark of HL7 and is used with the permission of HL7. \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-cicd.json b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-cicd.json new file mode 100644 index 00000000000..45a2485bb3e --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-cicd.json @@ -0,0 +1,146 @@ +{ + "__comment": "FHIR Server configuration", + "fhirServer": { + "core": { + "tenantIdHeaderName": "X-FHIR-TENANT-ID", + "datastoreIdHeaderName": "X-FHIR-DSID", + "checkReferenceTypes": true, + "conditionalDeleteMaxNumber": 10, + "serverRegistryResourceProviderEnabled": true, + "disabledOperations": "" + }, + "security": { + "cors": true, + "basic": { + "enabled": true + }, + "certificates": { + "enabled": true + }, + "oauth": { + "enabled": false, + "regUrl": "https://:9443/oauth2/endpoint/oauth2-provider/registration", + "authUrl": "https://:9443/oauth2/endpoint/oauth2-provider/authorize", + "tokenUrl": "https://:9443/oauth2/endpoint/oauth2-provider/token", + "smart": { + "enabled": false, + "scopes": ["openid", + "profile", + "fhirUser", + "launch/patient", + "patient/*.*", + "offline_access"], + "capabilities": ["sso-openid-connect", + "launch-standalone", + "client-public", + "client-confidential-symmetric", + "permission-offline", + "context-standalone-patient", + "permission-patient"] + } + } + }, + "notifications": { + "common": { + "__comment_includeResourceTypes": ["QuestionnaireResponse", + "CarePlan", + "MedicationAdministration", + "Device", + "DeviceComponent", + "DeviceMetric", + "MedicationOrder", + "Observation"] + }, + "websocket": { + "__comment": "only enable this for single-tenant, single-server deployments", + "enabled": false + }, + "kafka": { + "enabled": false, + "topicName": "fhirNotifications", + "connectionProperties": { + "group.id": "securing-kafka-group", + "bootstrap.servers": "localhost:9093", + "security.protocol": "SSL", + "ssl.truststore.location": "resources/security/kafka.client.truststore.p12", + "ssl.truststore.password": "change-password", + "ssl.keystore.location": "resources/security/kafka.client.keystore.p12", + "ssl.keystore.password": "change-password", + "ssl.key.password": "change-password", + "ssl.truststore.type": "PKCS12", + "ssl.keystore.type": "PKCS12", + "acks": "all", + "retries": "60", + "request.timeout.ms": "10000", + "max.block.ms": "60000", + "max.in.flight.requests.per.connection": "5" + } + }, + "nats": { + "enabled": false, + "cluster": "nats-streaming", + "channel": "fhirNotifications", + "clientId": "fhir-server", + "servers": "nats://nats-node1:4222,nats://nats-node2:4222,nats://nats-node3:4222", + "useTLS": false, + "truststoreLocation": "resources/security/nats.client.truststore.jks", + "truststorePassword": "change-password", + "keystoreLocation": "resources/security/nats.client.keystore.jks", + "keystorePassword": "change-password" + } + }, + "audit": { + "serviceClassName": "com.ibm.fhir.audit.impl.KafkaService", + "serviceProperties": { + "load": "config", + "mapper": "cadf", + "auditTopic": "FHIR_AUDIT", + "geoCity": "Hamil", + "geoState": "Texas", + "geoCounty": "USA", + "kafka": { + "bootstrap.servers": "kafka-1:19092,kafka-2:29092", + "security.protocol": "SSL", + "ssl.protocol": "TLSv1.2", + "ssl.enabled.protocols": "TLSv1.2", + "ssl.endpoint.identification.algorithm": "", + "ssl.keystore.filename": "/config/config/default/kafka.producer.keystore.jks", + "ssl.key.credentials": "/config/config/default/producer_sslkey_creds", + "ssl.keystore.location": "/config/config/default/kafka.producer.keystore.jks", + "ssl.truststore.location": "/config/config/default/kafka.producer.truststore.jks", + "ssl.client.auth": "requested", + "ssl.keystore.credentials": "/config/config/default/producer_keystore_creds", + "ssl.keystore.password": "change-password", + "security.inter.broker.protocol": "SSL", + "ssl.key.password": "change-password", + "ssl.truststore.password": "change-password", + "ssl.truststore.filename": "/config/config/default/kafka.producer.truststore.jks", + "ssl.truststore.credentials": "/config/config/default/producer_truststore_creds" + } + } + }, + "persistence": { + "factoryClassname": "com.ibm.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory", + "common": { + "__comment": "Configuration properties common to all persistence layer implementations", + "updateCreateEnabled": true + }, + "jdbc": { + "__comment": "Configuration properties for the JDBC persistence implementation", + "enableCodeSystemsCache": true, + "enableParameterNamesCache": true, + "enableResourceTypesCache": true + }, + "datasources": { + "default": { + "jndiName": "jdbc/bootstrap_default_default", + "type": "derby", + "currentSchema": "APP" + } + } + }, + "bulkdata": { + "enabled": false + } + } +} diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-config.json b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-config.json new file mode 100644 index 00000000000..7957a084744 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-config.json @@ -0,0 +1,137 @@ +{ + "__comment": "FHIR Server configuration", + "fhirServer": { + "core": { + "tenantIdHeaderName": "X-FHIR-TENANT-ID", + "datastoreIdHeaderName": "X-FHIR-DSID", + "checkReferenceTypes": true, + "conditionalDeleteMaxNumber": 10, + "serverRegistryResourceProviderEnabled": true, + "disabledOperations": "" + }, + "security": { + "cors": true, + "basic": { + "enabled": true + }, + "certificates": { + "enabled": true + }, + "oauth": { + "enabled": false, + "regUrl": "https://:9443/oauth2/endpoint/oauth2-provider/registration", + "authUrl": "https://:9443/oauth2/endpoint/oauth2-provider/authorize", + "tokenUrl": "https://:9443/oauth2/endpoint/oauth2-provider/token", + "smart": { + "enabled": false, + "scopes": ["openid", "profile", "fhirUser", "launch/patient", "patient/*.*", "offline_access"], + "capabilities": [ + "sso-openid-connect", + "launch-standalone", + "client-public", + "client-confidential-symmetric", + "permission-offline", + "context-standalone-patient", + "permission-patient" + ] + } + } + }, + "notifications": { + "common": { + "__comment_includeResourceTypes": [ + "QuestionnaireResponse", + "CarePlan", + "MedicationAdministration", + "Device", + "DeviceComponent", + "DeviceMetric", + "MedicationOrder", + "Observation" + ] + }, + "websocket": { + "__comment": "only enable this for single-tenant, single-server deployments", + "enabled": false + }, + "kafka": { + "enabled": false, + "topicName": "fhirNotifications", + "connectionProperties": { + "group.id": "securing-kafka-group", + "bootstrap.servers": "localhost:9093", + "security.protocol": "SSL", + "ssl.truststore.location": "resources/security/kafka.client.truststore.p12", + "ssl.truststore.password": "change-password", + "ssl.keystore.location": "resources/security/kafka.client.keystore.p12", + "ssl.keystore.password": "change-password", + "ssl.key.password": "change-password", + "ssl.truststore.type": "PKCS12", + "ssl.keystore.type": "PKCS12", + "acks": "all", + "retries": "60", + "request.timeout.ms": "10000", + "max.block.ms": "60000", + "max.in.flight.requests.per.connection": "5" + } + }, + "nats": { + "enabled": false, + "cluster": "nats-streaming", + "channel": "fhirNotifications", + "clientId": "fhir-server", + "servers": "nats://nats-node1:4222,nats://nats-node2:4222,nats://nats-node3:4222", + "useTLS": false, + "truststoreLocation": "resources/security/nats.client.truststore.jks", + "truststorePassword": "change-password", + "keystoreLocation": "resources/security/nats.client.keystore.jks", + "keystorePassword": "change-password" + } + }, + "audit": { + "serviceClassName" : "com.ibm.fhir.audit.impl.KafkaService", + "serviceProperties": { + "load": "config", + "mapper": "cadf", + "auditTopic": "FHIR_AUDIT", + "geoCity": "Dallas", + "geoState": "TX", + "geoCounty": "US", + "kafka" : { + "sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"apiKeyCanGoHere\";", + "bootstrap.servers": "broker-1:9093,broker-2:9093", + "sasl.mechanism": "PLAIN", + "security.protocol": "SASL_SSL", + "ssl.protocol": "TLSv1.2", + "ssl.enabled.protocols": "TLSv1.2", + "ssl.endpoint.identification.algorithm": "HTTPS" + }, + "kafkaServers": "broker-1:9093,broker-2:9093", + "kafkaApiKey": "apiKeyCanGoHere" + } + }, + "persistence": { + "factoryClassname": "com.ibm.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory", + "common": { + "__comment": "Configuration properties common to all persistence layer implementations", + "updateCreateEnabled": true + }, + "jdbc": { + "__comment": "Configuration properties for the JDBC persistence implementation", + "enableCodeSystemsCache": true, + "enableParameterNamesCache": true, + "enableResourceTypesCache": true + }, + "datasources": { + "default": { + "jndiName": "jdbc/bootstrap_default_default", + "type": "derby", + "currentSchema": "APP" + } + } + }, + "bulkdata": { + "enabled": false + } + } +} diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-environment.json b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-environment.json new file mode 100644 index 00000000000..6422b1f997b --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-audit-environment.json @@ -0,0 +1,124 @@ +{ + "__comment": "FHIR Server configuration", + "fhirServer": { + "core": { + "tenantIdHeaderName": "X-FHIR-TENANT-ID", + "datastoreIdHeaderName": "X-FHIR-DSID", + "checkReferenceTypes": true, + "conditionalDeleteMaxNumber": 10, + "serverRegistryResourceProviderEnabled": true, + "disabledOperations": "" + }, + "security": { + "cors": true, + "basic": { + "enabled": true + }, + "certificates": { + "enabled": true + }, + "oauth": { + "enabled": false, + "regUrl": "https://:9443/oauth2/endpoint/oauth2-provider/registration", + "authUrl": "https://:9443/oauth2/endpoint/oauth2-provider/authorize", + "tokenUrl": "https://:9443/oauth2/endpoint/oauth2-provider/token", + "smart": { + "enabled": false, + "scopes": ["openid", "profile", "fhirUser", "launch/patient", "patient/*.*", "offline_access"], + "capabilities": [ + "sso-openid-connect", + "launch-standalone", + "client-public", + "client-confidential-symmetric", + "permission-offline", + "context-standalone-patient", + "permission-patient" + ] + } + } + }, + "notifications": { + "common": { + "__comment_includeResourceTypes": [ + "QuestionnaireResponse", + "CarePlan", + "MedicationAdministration", + "Device", + "DeviceComponent", + "DeviceMetric", + "MedicationOrder", + "Observation" + ] + }, + "websocket": { + "__comment": "only enable this for single-tenant, single-server deployments", + "enabled": false + }, + "kafka": { + "enabled": false, + "topicName": "fhirNotifications", + "connectionProperties": { + "group.id": "securing-kafka-group", + "bootstrap.servers": "localhost:9093", + "security.protocol": "SSL", + "ssl.truststore.location": "resources/security/kafka.client.truststore.p12", + "ssl.truststore.password": "change-password", + "ssl.keystore.location": "resources/security/kafka.client.keystore.p12", + "ssl.keystore.password": "change-password", + "ssl.key.password": "change-password", + "ssl.truststore.type": "PKCS12", + "ssl.keystore.type": "PKCS12", + "acks": "all", + "retries": "60", + "request.timeout.ms": "10000", + "max.block.ms": "60000", + "max.in.flight.requests.per.connection": "5" + } + }, + "nats": { + "enabled": false, + "cluster": "nats-streaming", + "channel": "fhirNotifications", + "clientId": "fhir-server", + "servers": "nats://nats-node1:4222,nats://nats-node2:4222,nats://nats-node3:4222", + "useTLS": false, + "truststoreLocation": "resources/security/nats.client.truststore.jks", + "truststorePassword": "change-password", + "keystoreLocation": "resources/security/nats.client.keystore.jks", + "keystorePassword": "change-password" + } + }, + "audit": { + "serviceClassName" : "com.ibm.fhir.audit.impl.KafkaService", + "serviceProperties" : { + "auditTopic": "FHIR_AUDIT", + "geoCity": "Dallas", + "geoState": "TX", + "geoCounty": "US" + } + }, + "persistence": { + "factoryClassname": "com.ibm.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory", + "common": { + "__comment": "Configuration properties common to all persistence layer implementations", + "updateCreateEnabled": true + }, + "jdbc": { + "__comment": "Configuration properties for the JDBC persistence implementation", + "enableCodeSystemsCache": true, + "enableParameterNamesCache": true, + "enableResourceTypesCache": true + }, + "datasources": { + "default": { + "jndiName": "jdbc/bootstrap_default_default", + "type": "derby", + "currentSchema": "APP" + } + } + }, + "bulkdata": { + "enabled": false + } + } +} diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-db2.json b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-db2.json new file mode 100644 index 00000000000..f2073c54cc0 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-db2.json @@ -0,0 +1,203 @@ +{ + "__comment": "FHIR Server configuration", + "fhirServer": { + "core": { + "tenantIdHeaderName": "X-FHIR-TENANT-ID", + "datastoreIdHeaderName": "X-FHIR-DSID", + "originalRequestUriHeaderName": "X-FHIR-FORWARDED-URL", + "checkReferenceTypes": true, + "conditionalDeleteMaxNumber": 10, + "capabilityStatementCacheTimeout": 60, + "serverRegistryResourceProviderEnabled": true, + "disabledOperations": "" + }, + "security": { + "cors": true, + "basic": { + "enabled": true + }, + "certificates": { + "enabled": true + }, + "oauth": { + "enabled": false, + "regUrl": "https://:9443/oauth2/endpoint/oauth2-provider/registration", + "authUrl": "https://:9443/oauth2/endpoint/oauth2-provider/authorize", + "tokenUrl": "https://:9443/oauth2/endpoint/oauth2-provider/token", + "smart": { + "enabled": false, + "scopes": ["openid", "profile", "fhirUser", "launch/patient", "patient/*.*", "offline_access"], + "capabilities": [ + "sso-openid-connect", + "launch-standalone", + "client-public", + "client-confidential-symmetric", + "permission-offline", + "context-standalone-patient", + "permission-patient" + ] + } + } + }, + "notifications": { + "common": { + "__comment_includeResourceTypes": [ + "QuestionnaireResponse", + "CarePlan", + "MedicationAdministration", + "Device", + "DeviceComponent", + "DeviceMetric", + "MedicationOrder", + "Observation" + ] + }, + "websocket": { + "enabled": true + }, + "kafka": { + "enabled": false, + "topicName": "fhirNotifications", + "connectionProperties": { + "group.id": "securing-kafka-group", + "bootstrap.servers": "localhost:9093", + "security.protocol": "SSL", + "ssl.truststore.location": "resources/security/kafka.client.truststore.p12", + "ssl.truststore.password": "change-password", + "ssl.keystore.location": "resources/security/kafka.client.keystore.p12", + "ssl.keystore.password": "change-password", + "ssl.key.password": "change-password", + "ssl.truststore.type": "PKCS12", + "ssl.keystore.type": "PKCS12", + "acks": "all", + "retries": "60", + "request.timeout.ms": "10000", + "max.block.ms": "60000", + "max.in.flight.requests.per.connection": "5" + } + }, + "nats": { + "enabled": true, + "cluster": "nats-streaming", + "channel": "fhirNotifications", + "clientId": "fhir-server", + "servers": "nats://nats-node1:4222,nats://nats-node2:4222,nats://nats-node3:4222", + "useTLS": false, + "truststoreLocation": "resources/security/nats.client.truststore.jks", + "truststorePassword": "change-password", + "keystoreLocation": "resources/security/nats.client.keystore.jks", + "keystorePassword": "change-password" + } + }, + "audit": { + "serviceClassName" : "com.ibm.fhir.audit.impl.NopService", + "serviceProperties" : { + } + }, + "persistence": { + "factoryClassname": "com.ibm.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory", + "common": { + "__comment": "Configuration properties common to all persistence layer implementations", + "updateCreateEnabled": true + }, + "jdbc": { + "__comment": "Configuration properties for the JDBC persistence implementation", + "enableCodeSystemsCache": true, + "enableParameterNamesCache": true, + "enableResourceTypesCache": true + }, + "datasources": { + "default": { + "type": "db2", + "currentSchema": "fhirdata", + "tenantKey": "", + "hints" : { + "search.reopt": "ONCE" + } + } + } + }, + "bulkdata": { + "enabled": true, + "core": { + "api": { + "url": "https://localhost:9443/ibm/api/batch", + "user": "fhiradmin", + "password": "change-password", + "truststore": "resources/security/fhirTrustStore.p12", + "truststorePassword": "change-password", + "trustAll": true + }, + "cos" : { + "partUploadTriggerSizeMB": 10, + "objectSizeThresholdMB": 200, + "objectResourceCountThreshold": 200000, + "useServerTruststore": true + }, + "file" : { + "writeTriggerSizeMB": 1, + "sizeThresholdMB": 200, + "resourceCountThreshold": 200000 + }, + "pageSize": 100, + "batchIdEncryptionKey": "change-password", + "maxPartitions": 3, + "maxInputs": 5 + }, + "storageProviders": { + "default" : { + "type": "file", + "_type": "ibm-cos|aws-s3|file|https|azure-blob", + "validBaseUrls": [], + "fileBase": "/output/bulkdata", + "enableParquet": false, + "disableBaseUrlValidation": true, + "disableOperationOutcomes": true, + "duplicationCheck": false, + "validateResources": false + }, + "minio" : { + "type": "aws-s3", + "bucketName": "fhirbulkdata", + "location": "us", + "endpointInternal": "https://minio:9000", + "endpointExternal": "https://localhost:9000", + "auth" : { + "type": "hmac", + "accessKeyId": "minio", + "secretAccessKey": "change-password" + }, + "enableParquet": false, + "disableBaseUrlValidation": true, + "disableOperationOutcomes": true, + "duplicationCheck": false, + "validateResources": false, + "create": false, + "presigned": true + }, + "azure" : { + "type": "azure-blob", + "_type": "ibm-cos|aws-s3|file|https|azure-blob", + "bucketName": "fhirbulkdata", + "auth" : { + "type": "connection", + "connection": "DefaultEndpointsProtocol=https;AccountName=XYZ;AccountKey=XYZKEY;EndpointSuffix=core.windows.net" + }, + "disableOperationOutcomes": true, + "duplicationCheck": false, + "validateResources": false, + "create": false + } + } + }, + "operations": { + "erase": { + "enabled": true, + "allowedRoles": [ + "FHIROperationAdmin", + "FHIRUsers" + ] + } + } + } +} diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-notifications-cicd.json b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-notifications-cicd.json new file mode 100644 index 00000000000..6fa67308d4e --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-notifications-cicd.json @@ -0,0 +1,156 @@ +{ + "__comment": "FHIR Server configuration", + "fhirServer": { + "core": { + "tenantIdHeaderName": "X-FHIR-TENANT-ID", + "datastoreIdHeaderName": "X-FHIR-DSID", + "checkReferenceTypes": true, + "conditionalDeleteMaxNumber": 10, + "serverRegistryResourceProviderEnabled": true, + "disabledOperations": "" + }, + "security": { + "cors": true, + "basic": { + "enabled": true + }, + "certificates": { + "enabled": true + }, + "oauth": { + "enabled": false, + "regUrl": "https://:9443/oauth2/endpoint/oauth2-provider/registration", + "authUrl": "https://:9443/oauth2/endpoint/oauth2-provider/authorize", + "tokenUrl": "https://:9443/oauth2/endpoint/oauth2-provider/token", + "smart": { + "enabled": false, + "scopes": ["openid", + "profile", + "fhirUser", + "launch/patient", + "patient/*.*", + "offline_access"], + "capabilities": ["sso-openid-connect", + "launch-standalone", + "client-public", + "client-confidential-symmetric", + "permission-offline", + "context-standalone-patient", + "permission-patient"] + } + } + }, + "notifications": { + "common": { + "includeResourceTypes": [ + "Patiennt", + "QuestionnaireResponse", + "CarePlan", + "MedicationAdministration", + "Device", + "DeviceComponent", + "DeviceMetric", + "MedicationOrder", + "Observation"] + }, + "websocket": { + "__comment": "only enable this for single-tenant, single-server deployments", + "enabled": false + }, + "kafka": { + "enabled": true, + "topicName": "FHIR_NOTIFICATIONS", + "connectionProperties": { + "group.id": "securing-kafka-group", + "bootstrap.servers": "kafka-1:19092,kafka-2:29092", + "security.protocol": "SSL", + "ssl.protocol": "TLSv1.2", + "ssl.enabled.protocols": "TLSv1.2", + "ssl.endpoint.identification.algorithm": "", + "ssl.keystore.filename": "/config/config/default/kafka.producer.keystore.jks", + "ssl.key.credentials": "/config/config/default/producer_sslkey_creds", + "ssl.keystore.location": "/config/config/default/kafka.producer.keystore.jks", + "ssl.truststore.location": "/config/config/default/kafka.producer.truststore.jks", + "ssl.client.auth": "requested", + "ssl.keystore.credentials": "/config/config/default/producer_keystore_creds", + "ssl.keystore.password": "change-password", + "security.inter.broker.protocol": "SSL", + "ssl.key.password": "change-password", + "ssl.truststore.password": "change-password", + "ssl.truststore.filename": "/config/config/default/kafka.producer.truststore.jks", + "ssl.truststore.credentials": "/config/config/default/producer_truststore_creds", + "acks": "all", + "retries": "60", + "request.timeout.ms": "10000", + "max.block.ms": "60000", + "max.in.flight.requests.per.connection": "5" + } + }, + "nats": { + "enabled": false, + "cluster": "nats-streaming", + "channel": "fhirNotifications", + "clientId": "fhir-server", + "servers": "nats://nats-node1:4222,nats://nats-node2:4222,nats://nats-node3:4222", + "useTLS": false, + "truststoreLocation": "resources/security/nats.client.truststore.jks", + "truststorePassword": "change-password", + "keystoreLocation": "resources/security/nats.client.keystore.jks", + "keystorePassword": "change-password" + } + }, + "audit": { + "serviceClassName": "com.ibm.fhir.audit.impl.NopService", + "serviceProperties": { + "load": "config", + "mapper": "cadf", + "auditTopic": "FHIR_AUDIT", + "geoCity": "Hamil", + "geoState": "Texas", + "geoCounty": "USA", + "kafka": { + "bootstrap.servers": "kafka-1:19092,kafka-2:29092", + "security.protocol": "SSL", + "ssl.protocol": "TLSv1.2", + "ssl.enabled.protocols": "TLSv1.2", + "ssl.endpoint.identification.algorithm": "", + "ssl.keystore.filename": "/config/config/default/kafka.producer.keystore.jks", + "ssl.key.credentials": "/config/config/default/producer_sslkey_creds", + "ssl.keystore.location": "/config/config/default/kafka.producer.keystore.jks", + "ssl.truststore.location": "/config/config/default/kafka.producer.truststore.jks", + "ssl.client.auth": "requested", + "ssl.keystore.credentials": "/config/config/default/producer_keystore_creds", + "ssl.keystore.password": "change-password", + "security.inter.broker.protocol": "SSL", + "ssl.key.password": "change-password", + "ssl.truststore.password": "change-password", + "ssl.truststore.filename": "/config/config/default/kafka.producer.truststore.jks", + "ssl.truststore.credentials": "/config/config/default/producer_truststore_creds" + } + } + }, + "persistence": { + "factoryClassname": "com.ibm.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory", + "common": { + "__comment": "Configuration properties common to all persistence layer implementations", + "updateCreateEnabled": true + }, + "jdbc": { + "__comment": "Configuration properties for the JDBC persistence implementation", + "enableCodeSystemsCache": true, + "enableParameterNamesCache": true, + "enableResourceTypesCache": true + }, + "datasources": { + "default": { + "jndiName": "jdbc/bootstrap_default_default", + "type": "derby", + "currentSchema": "APP" + } + } + }, + "bulkdata": { + "enabled": false + } + } +} diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-postgresql.json b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-postgresql.json new file mode 100644 index 00000000000..a60f91cd9d8 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config-postgresql.json @@ -0,0 +1,82 @@ +{ + "__comment": "FHIR Server configuration", + "fhirServer": { + "core": { + "tenantIdHeaderName": "X-FHIR-TENANT-ID", + "datastoreIdHeaderName": "X-FHIR-DSID", + "originalRequestUriHeaderName": "X-FHIR-FORWARDED-URL", + "checkReferenceTypes": true, + "conditionalDeleteMaxNumber": 10, + "serverRegistryResourceProviderEnabled": true, + "disabledOperations": "" + }, + "security": { + "cors": true, + "basic": { + "enabled": true + }, + "certificates": { + "enabled": true + }, + "oauth": { + "enabled": false, + "regUrl": "https://:9443/oauth2/endpoint/oauth2-provider/registration", + "authUrl": "https://:9443/oauth2/endpoint/oauth2-provider/authorize", + "tokenUrl": "https://:9443/oauth2/endpoint/oauth2-provider/token", + "smart": { + "enabled": false, + "scopes": ["openid", "profile", "fhirUser", "launch/patient", "patient/*.*", "offline_access"], + "capabilities": [ + "sso-openid-connect", + "launch-standalone", + "client-public", + "client-confidential-symmetric", + "permission-offline", + "context-standalone-patient", + "permission-patient" + ] + } + } + }, + "audit": { + "serviceClassName" : "com.ibm.fhir.audit.impl.NopService", + "serviceProperties" : { + } + }, + "persistence": { + "factoryClassname": "com.ibm.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory", + "common": { + "__comment": "Configuration properties common to all persistence layer implementations", + "updateCreateEnabled": true + }, + "jdbc": { + "__comment": "Configuration properties for the JDBC persistence implementation", + "enableCodeSystemsCache": true, + "enableParameterNamesCache": true, + "enableResourceTypesCache": true + }, + "datasources": { + "default": { + "type": "postgresql", + "currentSchema": "fhirdata", + "searchOptimizerOptions": { + "from_collapse_limit": 12, + "join_collapse_limit": 12 + } + } + } + }, + "bulkdata": { + "enabled": false + }, + "operations": { + "erase": { + "enabled": true, + "allowedRoles": [ + "FHIROperationAdmin", + "FHIRUsers" + ] + } + } + } +} diff --git a/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config.json b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config.json new file mode 100644 index 00000000000..e08fe80beeb --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/config/default/fhir-server-config.json @@ -0,0 +1,208 @@ +{ + "__comment": "FHIR Server configuration", + "fhirServer": { + "core": { + "tenantIdHeaderName": "X-FHIR-TENANT-ID", + "datastoreIdHeaderName": "X-FHIR-DSID", + "originalRequestUriHeaderName": "X-FHIR-FORWARDED-URL", + "checkReferenceTypes": true, + "conditionalDeleteMaxNumber": 10, + "serverRegistryResourceProviderEnabled": true, + "disabledOperations": "" + }, + "search": { + "useStoredCompartmentParam": true + }, + "security": { + "cors": true, + "basic": { + "enabled": true + }, + "certificates": { + "enabled": true + }, + "oauth": { + "enabled": false, + "regUrl": "https://:9443/oauth2/endpoint/oauth2-provider/registration", + "authUrl": "https://:9443/oauth2/endpoint/oauth2-provider/authorize", + "tokenUrl": "https://:9443/oauth2/endpoint/oauth2-provider/token", + "smart": { + "enabled": false, + "scopes": ["openid", "profile", "fhirUser", "launch/patient", "patient/*.*", "offline_access"], + "capabilities": [ + "sso-openid-connect", + "launch-standalone", + "client-public", + "client-confidential-symmetric", + "permission-offline", + "context-standalone-patient", + "permission-patient" + ] + } + } + }, + "notifications": { + "common": { + "__comment_includeResourceTypes": [ + "QuestionnaireResponse", + "CarePlan", + "MedicationAdministration", + "Device", + "DeviceComponent", + "DeviceMetric", + "MedicationOrder", + "Observation" + ] + }, + "websocket": { + "__comment": "only enable this for single-tenant, single-server deployments", + "enabled": false + }, + "kafka": { + "enabled": false, + "topicName": "fhirNotifications", + "connectionProperties": { + "group.id": "securing-kafka-group", + "bootstrap.servers": "localhost:9093", + "security.protocol": "SSL", + "ssl.truststore.location": "resources/security/kafka.client.truststore.p12", + "ssl.truststore.password": "change-password", + "ssl.keystore.location": "resources/security/kafka.client.keystore.p12", + "ssl.keystore.password": "change-password", + "ssl.key.password": "change-password", + "ssl.truststore.type": "PKCS12", + "ssl.keystore.type": "PKCS12", + "acks": "all", + "retries": "60", + "request.timeout.ms": "10000", + "max.block.ms": "60000", + "max.in.flight.requests.per.connection": "5" + } + }, + "nats": { + "enabled": false, + "cluster": "nats-streaming", + "channel": "fhirNotifications", + "clientId": "fhir-server", + "servers": "nats://nats-node1:4222,nats://nats-node2:4222,nats://nats-node3:4222", + "useTLS": false, + "truststoreLocation": "resources/security/nats.client.truststore.jks", + "truststorePassword": "change-password", + "keystoreLocation": "resources/security/nats.client.keystore.jks", + "keystorePassword": "change-password" + } + }, + "audit": { + "serviceClassName" : "com.ibm.fhir.audit.impl.NopService", + "serviceProperties" : { + } + }, + "persistence": { + "factoryClassname": "com.ibm.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory", + "common": { + "__comment": "Configuration properties common to all persistence layer implementations", + "updateCreateEnabled": true + }, + "jdbc": { + "__comment": "Configuration properties for the JDBC persistence implementation", + "enableCodeSystemsCache": true, + "enableParameterNamesCache": true, + "enableResourceTypesCache": true + }, + "datasources": { + "default": { + "jndiName": "jdbc/bootstrap_default_default", + "type": "derby", + "currentSchema": "APP" + }, + "_db2sample": { + "type": "db2", + "tenantKey": "", + "currentSchema": "fhirdata", + "hints" : { + "search.reopt": "ONCE" + } + }, + "_pgsample": { + "type": "postgresql", + "currentSchema": "fhirdata", + "searchOptimizerOptions": { + "from_collapse_limit": 12, + "join_collapse_limit": 12 + } + } + } + }, + "bulkdata": { + "enabled": true, + "core": { + "api": { + "url": "https://localhost:9443/ibm/api/batch", + "user": "fhiradmin", + "password": "change-password", + "truststore": "resources/security/fhirTrustStore.p12", + "truststorePassword": "change-password", + "trustAll": true + }, + "cos" : { + "partUploadTriggerSizeMB": 10, + "objectSizeThresholdMB": 200, + "objectResourceCountThreshold": 200000, + "useServerTruststore": true, + "presignedExpiry": 86400 + }, + "file" : { + "writeTriggerSizeMB": 1, + "sizeThresholdMB": 200, + "resourceCountThreshold": 200000 + }, + "pageSize": 100, + "batchIdEncryptionKey": "change-password", + "maxPartitions": 3, + "maxInputs": 5, + "maxChunkReadTime": "90000", + "systemExportImpl": "fast", + "defaultExportProvider": "default", + "defaultImportProvider": "default" + }, + "storageProviders": { + "default" : { + "type": "file", + "_type": "ibm-cos|aws-s3|file|https|azure-blob", + "validBaseUrls": [], + "fileBase": "/output/bulkdata", + "bucketName": "fhir-performance", + "location": "us", + "endpointInternal": "https://s3.us-east.cloud-object-storage.appdomain.cloud", + "endpointExternal": "https://s3.us-east.cloud-object-storage.appdomain.cloud", + "auth" : { + "type": "hmac", + "accessKeyId": "key", + "secretAccessKey": "secret" + }, + "_iam_auth" : { + "type": "iam", + "iamApiKey": "apiKey", + "iamResourceInstanceId": "resourceId" + }, + "enableParquet": false, + "disableBaseUrlValidation": true, + "disableOperationOutcomes": true, + "duplicationCheck": false, + "validateResources": false, + "create": false, + "presigned": true + } + } + }, + "operations": { + "erase": { + "enabled": true, + "allowedRoles": [ + "FHIROperationAdmin", + "FHIRUsers" + ] + } + } + } +} diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml new file mode 100644 index 00000000000..2fa1e548062 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml @@ -0,0 +1,40 @@ + + + + batch-1.0 + batchManagement-1.0 + jdbc-4.1 + servlet-4.0 + transportSecurity-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml new file mode 100644 index 00000000000..3571c4c7aff --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/keystore.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/keystore.xml new file mode 100644 index 00000000000..e3f265ce8df --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/keystore.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/openapi.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/openapi.xml new file mode 100644 index 00000000000..0ed602121de --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/openapi.xml @@ -0,0 +1,9 @@ + + + mpOpenAPI-2.0 + + + + + + \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/transaction-manager.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/transaction-manager.xml new file mode 100644 index 00000000000..310e0889d41 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/transaction-manager.xml @@ -0,0 +1,7 @@ + + + jdbc-4.1 + + + + \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/trustDefault.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/trustDefault.xml new file mode 100644 index 00000000000..40d2eeef69c --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/trustDefault.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/README.md b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/README.md new file mode 100644 index 00000000000..b3cff423560 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/README.md @@ -0,0 +1,13 @@ +This readme applies to all files in this folder: + +# Datasources used for server integration tests + +``` +datasource-db2.xml +datasource-derby.xml +datasource-postgresql.xml +``` + +These files are copied to the overrides folder and renamed to datasource.xml. + +Only one of these datasource definition files should be copied into the target Liberty configDropins/overrides folder. If more than one of these is present at the same time it will break the Liberty configuration because the datasource ids and JNDI location are common among the files. \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/cors.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/cors.xml new file mode 100644 index 00000000000..078dd720ad4 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/cors.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-db2.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-db2.xml new file mode 100644 index 00000000000..fa317fb413e --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-db2.xml @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-derby.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-derby.xml new file mode 100644 index 00000000000..a365dc543d0 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-derby.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-postgresql.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-postgresql.xml new file mode 100644 index 00000000000..55e4e0c1aed --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/datasource-postgresql.xml @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2-cloud/bulkdata.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2-cloud/bulkdata.xml new file mode 100644 index 00000000000..501254d9612 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2-cloud/bulkdata.xml @@ -0,0 +1,55 @@ + + + + batch-1.0 + batchManagement-1.0 + jdbc-4.1 + servlet-4.0 + transportSecurity-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2/bulkdata.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2/bulkdata.xml new file mode 100644 index 00000000000..cb7ecf7bddc --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/db2/bulkdata.xml @@ -0,0 +1,58 @@ + + + + batch-1.0 + batchManagement-1.0 + jdbc-4.1 + servlet-4.0 + transportSecurity-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jvm.options b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jvm.options new file mode 100644 index 00000000000..53cd8148142 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jvm.options @@ -0,0 +1,7 @@ +# Reduced heap size for constrained environments + +# Initial heap size (same as max so no reallocations will occur) +-Xms3072M + +# Maximum heap size +-Xmx3072M \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jwtRS.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jwtRS.xml new file mode 100644 index 00000000000..ab521345842 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/jwtRS.xml @@ -0,0 +1,31 @@ + + + + mpJwt-1.1 + + + + + + + + + + + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/postgres/bulkdata.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/postgres/bulkdata.xml new file mode 100644 index 00000000000..60a74d2e59e --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/disabled/postgres/bulkdata.xml @@ -0,0 +1,54 @@ + + + + batch-1.0 + batchManagement-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/overrides/.empty b/fhir-server-webapp/src/main/liberty/config/configDropins/overrides/.empty new file mode 100644 index 00000000000..e69de29bb2d diff --git a/fhir-server-webapp/src/main/liberty/config/resources/security/fhirKeyStore.p12 b/fhir-server-webapp/src/main/liberty/config/resources/security/fhirKeyStore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..718148f9444d1ef3e5f00fbea6f4174ce4abe5d8 GIT binary patch literal 6868 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 literal 0 HcmV?d00001 diff --git a/fhir-server-webapp/src/main/liberty/config/resources/security/kafka.client.truststore.p12 b/fhir-server-webapp/src/main/liberty/config/resources/security/kafka.client.truststore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..a680e8e1b2d38536329b8608d2fc4578049888e6 GIT binary patch literal 2904 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 Cw_#`i literal 0 HcmV?d00001 diff --git a/fhir-server-webapp/src/main/liberty/config/server.env b/fhir-server-webapp/src/main/liberty/config/server.env new file mode 100644 index 00000000000..ee2c923f826 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/server.env @@ -0,0 +1 @@ +TZ=UTC \ No newline at end of file diff --git a/fhir-server-webapp/src/main/liberty/config/server.xml b/fhir-server-webapp/src/main/liberty/config/server.xml new file mode 100644 index 00000000000..d2bc1701ba5 --- /dev/null +++ b/fhir-server-webapp/src/main/liberty/config/server.xml @@ -0,0 +1,119 @@ + + + + + transportSecurity-1.0 + appSecurity-2.0 + jaxrs-2.1 + servlet-4.0 + jsonp-1.1 + + jdbc-4.1 + websocket-1.1 + localConnector-1.0 + + mpJwt-1.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +