Merge branch 'master' into rel_7_3_tracking
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
FROM docker.io/library/maven:3.9.4-eclipse-temurin-17 AS build-hapi
|
||||
FROM docker.io/library/maven:3.9.7-eclipse-temurin-17 AS build-hapi
|
||||
WORKDIR /tmp/hapi-fhir-jpaserver-starter
|
||||
|
||||
ARG OPENTELEMETRY_JAVA_AGENT_VERSION=1.31.0
|
||||
ARG OPENTELEMETRY_JAVA_AGENT_VERSION=1.33.3
|
||||
RUN curl -LSsO https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OPENTELEMETRY_JAVA_AGENT_VERSION}/opentelemetry-javaagent.jar
|
||||
|
||||
COPY pom.xml .
|
||||
@@ -18,7 +18,7 @@ RUN mkdir /app && cp /tmp/hapi-fhir-jpaserver-starter/target/ROOT.war /app/main.
|
||||
|
||||
########### bitnami tomcat version is suitable for debugging and comes with a shell
|
||||
########### it can be built using eg. `docker build --target tomcat .`
|
||||
FROM bitnami/tomcat:9.0 AS tomcat
|
||||
FROM bitnami/tomcat:10.1 AS tomcat
|
||||
|
||||
RUN rm -rf /opt/bitnami/tomcat/webapps/ROOT && \
|
||||
mkdir -p /opt/bitnami/hapi/data/hapi/lucenefiles && \
|
||||
@@ -36,7 +36,7 @@ COPY --from=build-hapi --chown=1001:1001 /tmp/hapi-fhir-jpaserver-starter/opente
|
||||
ENV ALLOW_EMPTY_PASSWORD=yes
|
||||
|
||||
########### distroless brings focus on security and runs on plain spring boot - this is the default image
|
||||
FROM gcr.io/distroless/java17-debian11:nonroot AS default
|
||||
FROM gcr.io/distroless/java17-debian12:nonroot AS default
|
||||
# 65532 is the nonroot user's uid
|
||||
# used here instead of the name to allow Kubernetes to easily detect that the container
|
||||
# is running as a non-root (uid != 0) user.
|
||||
|
||||
12
README.md
12
README.md
@@ -13,7 +13,7 @@ In order to use this sample, you should have:
|
||||
- [This project](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) checked out. You may wish to create a GitHub Fork of the project and check that out instead so that you can customize the project and save the results to GitHub.
|
||||
|
||||
### and either
|
||||
- Oracle Java (JDK) installed: Minimum JDK8 or newer.
|
||||
- Oracle Java (JDK) installed: Minimum JDK17 or newer.
|
||||
- Apache Maven build tool (newest version)
|
||||
|
||||
### or
|
||||
@@ -102,7 +102,7 @@ spring:
|
||||
driverClassName: org.postgresql.Driver
|
||||
jpa:
|
||||
properties:
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgresDialect
|
||||
hibernate.search.enabled: false
|
||||
```
|
||||
|
||||
@@ -155,7 +155,7 @@ spring:
|
||||
driverClassName: org.postgresql.Driver
|
||||
jpa:
|
||||
properties:
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgresDialect
|
||||
hibernate.search.enabled: false
|
||||
hapi:
|
||||
fhir:
|
||||
@@ -244,7 +244,7 @@ Server will then be accessible at http://localhost:8080/ and eg. http://localhos
|
||||
|
||||
### Using Spring Boot
|
||||
```bash
|
||||
mvn clean package spring-boot:repackage -Pboot && java -jar target/ROOT.war
|
||||
mvn clean package spring-boot:repackage -DskipTests=true -Pboot && java -jar target/ROOT.war
|
||||
```
|
||||
Server will then be accessible at http://localhost:8080/ and eg. http://localhost:8080/fhir/metadata. Remember to adjust your overlay configuration in the application.yaml to the following:
|
||||
|
||||
@@ -312,7 +312,7 @@ spring:
|
||||
driverClassName: org.postgresql.Driver
|
||||
jpa:
|
||||
properties:
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgresDialect
|
||||
hibernate.search.enabled: false
|
||||
|
||||
# Then comment all hibernate.search.backend.*
|
||||
@@ -430,7 +430,7 @@ spring:
|
||||
driverClassName: org.postgresql.Driver
|
||||
jpa:
|
||||
properties:
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgresDialect
|
||||
hibernate.search.enabled: false
|
||||
|
||||
# Then comment all hibernate.search.backend.*
|
||||
|
||||
@@ -10,8 +10,8 @@ dependencies:
|
||||
version: 14.3.1
|
||||
repository: oci://registry-1.docker.io/bitnamicharts
|
||||
condition: postgresql.enabled
|
||||
appVersion: 7.0.3
|
||||
version: 0.16.0
|
||||
appVersion: 7.2.0
|
||||
version: 0.17.0
|
||||
annotations:
|
||||
artifacthub.io/license: Apache-2.0
|
||||
artifacthub.io/containsSecurityUpdates: "false"
|
||||
@@ -24,7 +24,7 @@ annotations:
|
||||
# When using the list of objects option the valid supported kinds are
|
||||
# added, changed, deprecated, removed, fixed, and security.
|
||||
- kind: changed
|
||||
description: updated starter image to v7.0.3
|
||||
description: updated starter image to v7.2.0
|
||||
- kind: changed
|
||||
description: updated curlimages/curl to 8.6.0
|
||||
- kind: changed
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# HAPI FHIR JPA Server Starter Helm Chart
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
This helm chart will help you install the HAPI FHIR JPA Server in a Kubernetes environment.
|
||||
|
||||
@@ -36,7 +36,7 @@ helm install hapi-fhir-jpaserver hapifhir/hapi-fhir-jpaserver
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | image pullPolicy to use |
|
||||
| image.registry | string | `"docker.io"` | registry where the HAPI FHIR server image is hosted |
|
||||
| image.repository | string | `"hapiproject/hapi"` | the path inside the repository |
|
||||
| image.tag | string | `"v7.0.3@sha256:73ff82fec42e5cbb7e66338d47af09ba91c140e98beeaee41a5459572d5ae1ce"` | the image tag. As of v5.7.0, this is the `distroless` flavor by default, add `-tomcat` to use the Tomcat-based image. |
|
||||
| image.tag | string | `"v7.2.0@sha256:9bcafa8342b572eee248cb7c48c496863d352bbd0347e1d98ea238d09620e89b"` | the image tag. As of v5.7.0, this is the `distroless` flavor by default, add `-tomcat` to use the Tomcat-based image. |
|
||||
| imagePullSecrets | list | `[]` | image pull secrets to use when pulling the image |
|
||||
| ingress.annotations | object | `{}` | provide any additional annotations which may be required. Evaluated as a template. |
|
||||
| ingress.enabled | bool | `false` | whether to create an Ingress to expose the FHIR server HTTP endpoint |
|
||||
|
||||
@@ -7,7 +7,7 @@ image:
|
||||
# -- the path inside the repository
|
||||
repository: hapiproject/hapi
|
||||
# -- the image tag. As of v5.7.0, this is the `distroless` flavor by default, add `-tomcat` to use the Tomcat-based image.
|
||||
tag: "v7.0.3@sha256:73ff82fec42e5cbb7e66338d47af09ba91c140e98beeaee41a5459572d5ae1ce"
|
||||
tag: "v7.2.0@sha256:9bcafa8342b572eee248cb7c48c496863d352bbd0347e1d98ea238d09620e89b"
|
||||
# -- image pullPolicy to use
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
|
||||
@@ -4,10 +4,15 @@ services:
|
||||
build: .
|
||||
container_name: hapi-fhir-jpaserver-start
|
||||
restart: on-failure
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL: "jdbc:postgresql://hapi-fhir-postgres:5432/hapi"
|
||||
SPRING_DATASOURCE_USERNAME: "admin"
|
||||
SPRING_DATASOURCE_PASSWORD: "admin"
|
||||
SPRING_DATASOURCE_DRIVERCLASSNAME: "org.postgresql.Driver"
|
||||
ports:
|
||||
- "8080:8080"
|
||||
hapi-fhir-postgres:
|
||||
image: postgres:13-alpine
|
||||
image: postgres:14-alpine
|
||||
container_name: hapi-fhir-postgres
|
||||
restart: always
|
||||
environment:
|
||||
|
||||
32
pom.xml
32
pom.xml
@@ -21,7 +21,7 @@
|
||||
<packaging>war</packaging>
|
||||
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
<java.version>17</java.version>
|
||||
</properties>
|
||||
|
||||
<prerequisites>
|
||||
@@ -77,13 +77,13 @@
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-base</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<!-- This dependency includes the EmailSenderImpl we will be using instead of standard javamail.-->
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-jpaserver-subscription</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.zaxxer</groupId>
|
||||
@@ -96,7 +96,7 @@
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-jpaserver-base</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework</groupId>
|
||||
@@ -112,13 +112,13 @@
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-storage-cr</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<!-- This dependency includes the JPA MDM Server -->
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-jpaserver-mdm</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
@@ -128,13 +128,13 @@
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-server-cds-hooks</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<!-- This dependency includes the OpenAPI Server -->
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-server-openapi</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.yaml</groupId>
|
||||
@@ -146,21 +146,21 @@
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
<type>war</type>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
<classifier>classes</classifier>
|
||||
</dependency>
|
||||
<!-- This dependency is used to include the IPS Base Implementation -->
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-jpaserver-ips</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- HAPI-FHIR uses Logback for logging support. The logback library is included automatically by Maven as a part of the hapi-fhir-base dependency, but you also need to include a logging library. Logback
|
||||
@@ -261,7 +261,7 @@
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-jpaserver-test-utilities</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
@@ -300,7 +300,7 @@
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-test-utilities</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${project.parent.version}</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
@@ -393,7 +393,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.1.2</version>
|
||||
<version>3.2.5</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
@@ -429,9 +429,9 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.11.0</version>
|
||||
<version>3.13.0</version>
|
||||
<configuration>
|
||||
<release>11</release>
|
||||
<release>${java.version}</release>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ public class AppProperties {
|
||||
private Boolean allow_multiple_delete = false;
|
||||
private Boolean allow_override_default_search_params = true;
|
||||
private Boolean auto_create_placeholder_reference_targets = false;
|
||||
private Boolean mass_ingestion_mode_enabled = false;
|
||||
private final Set<String> auto_version_reference_at_paths = new HashSet<>();
|
||||
private Boolean language_search_parameter_enabled = false;
|
||||
private Boolean dao_scheduling_enabled = true;
|
||||
@@ -324,6 +325,14 @@ public Cors getCors() {
|
||||
this.allow_override_default_search_params = allow_override_default_search_params;
|
||||
}
|
||||
|
||||
public Boolean getMass_ingestion_mode_enabled() {
|
||||
return mass_ingestion_mode_enabled;
|
||||
}
|
||||
|
||||
public void setMass_ingestion_mode_enabled(Boolean mass_ingestion_mode_enabled) {
|
||||
this.mass_ingestion_mode_enabled = mass_ingestion_mode_enabled;
|
||||
}
|
||||
|
||||
public Boolean getAuto_create_placeholder_reference_targets() {
|
||||
return auto_create_placeholder_reference_targets;
|
||||
}
|
||||
|
||||
@@ -135,6 +135,8 @@ public class FhirServerConfigCommon {
|
||||
: StorageSettings.IndexEnabledEnum.DISABLED);
|
||||
jpaStorageSettings.setAutoCreatePlaceholderReferenceTargets(
|
||||
appProperties.getAuto_create_placeholder_reference_targets());
|
||||
jpaStorageSettings.setMassIngestionMode(
|
||||
appProperties.getMass_ingestion_mode_enabled());
|
||||
jpaStorageSettings.setAutoVersionReferenceAtPaths(appProperties.getAuto_version_reference_at_paths());
|
||||
jpaStorageSettings.setEnforceReferentialIntegrityOnWrite(
|
||||
appProperties.getEnforce_referential_integrity_on_write());
|
||||
|
||||
@@ -6,10 +6,26 @@ server:
|
||||
#Adds the option to go to eg. http://localhost:8080/actuator/health for seeing the running configuration
|
||||
#see https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: "health,prometheus"
|
||||
endpoint:
|
||||
endpoints:
|
||||
enabled-by-default: false
|
||||
web:
|
||||
exposure:
|
||||
include: health,prometheus
|
||||
health:
|
||||
enabled: true
|
||||
probes:
|
||||
enabled: true
|
||||
livenessState:
|
||||
enabled: true
|
||||
readinessState:
|
||||
enabled: true
|
||||
prometheus:
|
||||
enabled: true
|
||||
metrics:
|
||||
export:
|
||||
enabled: true
|
||||
|
||||
spring:
|
||||
main:
|
||||
allow-circular-references: true
|
||||
@@ -36,7 +52,7 @@ spring:
|
||||
|
||||
#Hibernate dialect is automatically detected except Postgres and H2.
|
||||
#If using H2, then supply the value of ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect
|
||||
#If using postgres, then supply the value of ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
|
||||
#If using postgres, then supply the value of ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgresDialect
|
||||
hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect
|
||||
# hibernate.hbm2ddl.auto: update
|
||||
# hibernate.jdbc.batch_size: 20
|
||||
@@ -46,7 +62,7 @@ spring:
|
||||
# hibernate.cache.use_minimal_puts: false
|
||||
|
||||
### These settings will enable fulltext search with lucene or elastic
|
||||
hibernate.search.enabled: true
|
||||
hibernate.search.enabled: false
|
||||
### lucene parameters
|
||||
# hibernate.search.backend.type: lucene
|
||||
# hibernate.search.backend.analysis.configurer: ca.uhn.fhir.jpa.search.HapiHSearchAnalysisConfigurers$HapiLuceneAnalysisConfigurer
|
||||
@@ -116,6 +132,7 @@ hapi:
|
||||
# allow_multiple_delete: true
|
||||
# allow_override_default_search_params: true
|
||||
# auto_create_placeholder_reference_targets: false
|
||||
# mass_ingestion_mode_enabled: false
|
||||
### tells the server to automatically append the current version of the target resource to references at these paths
|
||||
# auto_version_reference_at_paths: Device.patient, Device.location, Device.parent, DeviceMetric.parent, DeviceMetric.source, Observation.device, Observation.subject
|
||||
# ips_enabled: false
|
||||
|
||||
Reference in New Issue
Block a user