FHIR
FHIR copied to clipboard
Test payload offloading with azurite as part of github action CI
Is your feature request related to a problem? Please describe. Today we have no end-to-end test coverage for the payload-offload feature with azure-blob
Describe the solution you'd like As part of our CI:
- spin up an azurite container
- configure a fhir server instance with payload offload enabled
- run the full suite for end-to-end tests
Describe alternatives you've considered
Acceptance Criteria
- make sure it runs as part of CI
Additional context Just like https://github.com/ibm/fhir/issues/3239 but for azure-blob
I don't think that payload offloading is actually happening because the configuration in fhir-server-config-postgresql-azurite.json
specifies the standard persistence factory:
"factoryClassname": "org.linuxforhealth.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory",
For offloading, the persistence factory needs to be:
"factoryClassname": "org.linuxforhealth.fhir.persistence.blob.FHIRPersistenceJDBCBlobFactory",
Confirmed that we are now using an azurite payload configuration in one of the integration tests:
[8/24/22, 10:31:43:227 UTC] 00000028 FHIRRestServl I Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/ActivityDefinition]
[8/24/22, 10:31:43:231 UTC] 0000003b FHIRRestServl I Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/AdverseEvent]
[8/24/22, 10:31:43:247 UTC] 00000037 FHIRRestServl I Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/AllergyIntolerance]
[8/24/22, 10:31:43:256 UTC] 0000002b FHIRRestServl I Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/ActivityDefinition]
[8/24/22, 10:31:44:625 UTC] 00000037 JacksonVersio I com.azure.core.util.logging.ClientLogger info Package versions: jackson-annotations=2.13.3, jackson-core=2.13.3, jackson-databind=2.13.3, jackson-dataformat-xml=2.13.3, jackson-datatype-jsr310=2.13.2, azure-core=1.29.1, Troubleshooting version conflicts: https://aka.ms/azsdk/java/dependency/troubleshoot
The above log shows that The Azure client service is being initialized as the first request to hit the persistence layer is processed. This indicates that payload offloading has been configured and is in use. The subsequent integration tests exercise all the read/write activities to show this is working as expected.