From d7d17b3ff380f3e1d9fd70156f9f8091f15e002e Mon Sep 17 00:00:00 2001 From: Alexander Kiel Date: Tue, 25 Oct 2022 18:59:52 +0200 Subject: [PATCH 1/3] Update Dependencies --- .github/workflows/build.yml | 12 ++++++------ deps.edn | 4 ++-- modules/anomaly/deps.edn | 2 +- modules/async/deps.edn | 2 +- modules/byte-buffer/deps.edn | 4 ++-- modules/byte-string/deps.edn | 2 +- modules/cassandra/deps.edn | 2 +- modules/coll/deps.edn | 2 +- modules/cql/deps.edn | 2 +- modules/db-resource-store-cassandra/deps.edn | 2 +- modules/db-resource-store/deps.edn | 2 +- modules/db-tx-log-kafka/deps.edn | 2 +- modules/db-tx-log/deps.edn | 2 +- modules/db/deps.edn | 2 +- modules/executor/deps.edn | 2 +- modules/extern-terminology-service/deps.edn | 2 +- modules/fhir-client/deps.edn | 2 +- modules/fhir-path/deps.edn | 2 +- modules/fhir-structure/deps.edn | 2 +- modules/http-client/deps.edn | 2 +- modules/interaction/deps.edn | 2 +- modules/jepsen/deps.edn | 2 +- modules/kv/deps.edn | 2 +- modules/luid/deps.edn | 2 +- modules/metrics/deps.edn | 2 +- modules/openid-auth/deps.edn | 2 +- modules/operation-measure-evaluate-measure/deps.edn | 2 +- modules/page-store-cassandra/deps.edn | 2 +- modules/page-store/deps.edn | 2 +- modules/rest-api/deps.edn | 2 +- modules/rest-util/deps.edn | 2 +- modules/rocksdb/deps.edn | 4 ++-- modules/scheduler/deps.edn | 2 +- modules/server/deps.edn | 2 +- modules/thread-pool-executor-collector/deps.edn | 2 +- 35 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3218afce3..dbd606a52 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -85,7 +85,7 @@ jobs: - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: - cli: '1.11.1.1165' + cli: '1.11.1.1182' - name: Check out Git repository uses: actions/checkout@v3 @@ -116,7 +116,7 @@ jobs: - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: - cli: '1.11.1.1165' + cli: '1.11.1.1182' - name: Check out Git repository uses: actions/checkout@v3 @@ -158,7 +158,7 @@ jobs: - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: - cli: '1.11.1.1165' + cli: '1.11.1.1182' - name: Check out Git repository uses: actions/checkout@v3 @@ -186,7 +186,7 @@ jobs: - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: - cli: '1.11.1.1165' + cli: '1.11.1.1182' - name: Check out Git repository uses: actions/checkout@v3 @@ -615,7 +615,7 @@ jobs: - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: - cli: '1.11.1.1165' + cli: '1.11.1.1182' - name: Check out Git repository uses: actions/checkout@v3 @@ -950,7 +950,7 @@ jobs: - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: - cli: '1.11.1.1165' + cli: '1.11.1.1182' - name: Check out Git repository uses: actions/checkout@v3 diff --git a/deps.edn b/deps.edn index 1a3e29dcf..5062185f9 100644 --- a/deps.edn +++ b/deps.edn @@ -66,7 +66,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} @@ -80,7 +80,7 @@ :outdated {:replace-deps {com.github.liquidz/antq - {:mvn/version "2.1.932"} + {:mvn/version "2.1.939"} org.slf4j/slf4j-nop {:mvn/version "2.0.3"}} diff --git a/modules/anomaly/deps.edn b/modules/anomaly/deps.edn index f6a758cd4..0bf318019 100644 --- a/modules/anomaly/deps.edn +++ b/modules/anomaly/deps.edn @@ -16,7 +16,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/async/deps.edn b/modules/async/deps.edn index f643e0bd9..03cb78c30 100644 --- a/modules/async/deps.edn +++ b/modules/async/deps.edn @@ -19,7 +19,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/byte-buffer/deps.edn b/modules/byte-buffer/deps.edn index 155f9fba1..55a52523e 100644 --- a/modules/byte-buffer/deps.edn +++ b/modules/byte-buffer/deps.edn @@ -1,6 +1,6 @@ {:deps {com.google.protobuf/protobuf-java - {:mvn/version "3.21.7"}} + {:mvn/version "3.21.8"}} :aliases {:test @@ -13,6 +13,6 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]}}} diff --git a/modules/byte-string/deps.edn b/modules/byte-string/deps.edn index 8c6433720..4f745571e 100644 --- a/modules/byte-string/deps.edn +++ b/modules/byte-string/deps.edn @@ -5,7 +5,7 @@ {:mvn/version "31.1-jre"} com.google.protobuf/protobuf-java - {:mvn/version "3.21.7"} + {:mvn/version "3.21.8"} com.fasterxml.jackson.core/jackson-databind {:mvn/version "2.13.4.2"}}} diff --git a/modules/cassandra/deps.edn b/modules/cassandra/deps.edn index 4f1a53c1a..4db3a2bf1 100644 --- a/modules/cassandra/deps.edn +++ b/modules/cassandra/deps.edn @@ -27,7 +27,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/coll/deps.edn b/modules/coll/deps.edn index a7b3e14ab..2af1d55af 100644 --- a/modules/coll/deps.edn +++ b/modules/coll/deps.edn @@ -8,7 +8,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/cql/deps.edn b/modules/cql/deps.edn index 76abb158e..4afb4d6b7 100644 --- a/modules/cql/deps.edn +++ b/modules/cql/deps.edn @@ -42,7 +42,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/db-resource-store-cassandra/deps.edn b/modules/db-resource-store-cassandra/deps.edn index 27763a9da..b8decc17d 100644 --- a/modules/db-resource-store-cassandra/deps.edn +++ b/modules/db-resource-store-cassandra/deps.edn @@ -25,7 +25,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/db-resource-store/deps.edn b/modules/db-resource-store/deps.edn index fa9bbd129..28b69b97d 100644 --- a/modules/db-resource-store/deps.edn +++ b/modules/db-resource-store/deps.edn @@ -34,7 +34,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/db-tx-log-kafka/deps.edn b/modules/db-tx-log-kafka/deps.edn index cc3ea9a6e..fae37f62f 100644 --- a/modules/db-tx-log-kafka/deps.edn +++ b/modules/db-tx-log-kafka/deps.edn @@ -28,7 +28,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/db-tx-log/deps.edn b/modules/db-tx-log/deps.edn index 13b19c714..5d43ccc9b 100644 --- a/modules/db-tx-log/deps.edn +++ b/modules/db-tx-log/deps.edn @@ -22,7 +22,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/db/deps.edn b/modules/db/deps.edn index 9f817b9e0..5af2bc981 100644 --- a/modules/db/deps.edn +++ b/modules/db/deps.edn @@ -52,7 +52,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/executor/deps.edn b/modules/executor/deps.edn index 3110a2f5c..f533e4541 100644 --- a/modules/executor/deps.edn +++ b/modules/executor/deps.edn @@ -9,7 +9,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/extern-terminology-service/deps.edn b/modules/extern-terminology-service/deps.edn index 6e3da4f8f..cf710f865 100644 --- a/modules/extern-terminology-service/deps.edn +++ b/modules/extern-terminology-service/deps.edn @@ -22,7 +22,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/fhir-client/deps.edn b/modules/fhir-client/deps.edn index 2c112c48a..ed5f6a402 100644 --- a/modules/fhir-client/deps.edn +++ b/modules/fhir-client/deps.edn @@ -31,7 +31,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/fhir-path/deps.edn b/modules/fhir-path/deps.edn index 5c4cdebf7..7ce97700f 100644 --- a/modules/fhir-path/deps.edn +++ b/modules/fhir-path/deps.edn @@ -19,7 +19,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/fhir-structure/deps.edn b/modules/fhir-structure/deps.edn index 07d7bc36b..bea67f21c 100644 --- a/modules/fhir-structure/deps.edn +++ b/modules/fhir-structure/deps.edn @@ -49,7 +49,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/http-client/deps.edn b/modules/http-client/deps.edn index 688ee5d14..9301a2ee0 100644 --- a/modules/http-client/deps.edn +++ b/modules/http-client/deps.edn @@ -27,7 +27,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/interaction/deps.edn b/modules/interaction/deps.edn index 88e8e6f89..4cb13eccd 100644 --- a/modules/interaction/deps.edn +++ b/modules/interaction/deps.edn @@ -28,7 +28,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/jepsen/deps.edn b/modules/jepsen/deps.edn index 58c6414b8..0d1328bdf 100644 --- a/modules/jepsen/deps.edn +++ b/modules/jepsen/deps.edn @@ -12,7 +12,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/kv/deps.edn b/modules/kv/deps.edn index 5906be934..178d73575 100644 --- a/modules/kv/deps.edn +++ b/modules/kv/deps.edn @@ -19,7 +19,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/luid/deps.edn b/modules/luid/deps.edn index 24acbd1ed..af7e3b8e0 100644 --- a/modules/luid/deps.edn +++ b/modules/luid/deps.edn @@ -16,7 +16,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/metrics/deps.edn b/modules/metrics/deps.edn index e342ad396..114e6fc17 100644 --- a/modules/metrics/deps.edn +++ b/modules/metrics/deps.edn @@ -19,7 +19,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/openid-auth/deps.edn b/modules/openid-auth/deps.edn index 578e964a8..ad3001226 100644 --- a/modules/openid-auth/deps.edn +++ b/modules/openid-auth/deps.edn @@ -25,7 +25,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/operation-measure-evaluate-measure/deps.edn b/modules/operation-measure-evaluate-measure/deps.edn index b977bf8f4..2b3a8c035 100644 --- a/modules/operation-measure-evaluate-measure/deps.edn +++ b/modules/operation-measure-evaluate-measure/deps.edn @@ -34,7 +34,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/page-store-cassandra/deps.edn b/modules/page-store-cassandra/deps.edn index 09b762d35..34afece7f 100644 --- a/modules/page-store-cassandra/deps.edn +++ b/modules/page-store-cassandra/deps.edn @@ -25,7 +25,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/page-store/deps.edn b/modules/page-store/deps.edn index f2bc2ca1f..21e23d42d 100644 --- a/modules/page-store/deps.edn +++ b/modules/page-store/deps.edn @@ -27,7 +27,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/rest-api/deps.edn b/modules/rest-api/deps.edn index 9f84938f2..f5f2e0a58 100644 --- a/modules/rest-api/deps.edn +++ b/modules/rest-api/deps.edn @@ -33,7 +33,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/rest-util/deps.edn b/modules/rest-util/deps.edn index 86b1faaab..2ff2fe1bb 100644 --- a/modules/rest-util/deps.edn +++ b/modules/rest-util/deps.edn @@ -32,7 +32,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/rocksdb/deps.edn b/modules/rocksdb/deps.edn index 6dfc71dda..a67b74e1a 100644 --- a/modules/rocksdb/deps.edn +++ b/modules/rocksdb/deps.edn @@ -9,7 +9,7 @@ {:local/root "../module-base"} org.rocksdb/rocksdbjni - {:mvn/version "7.6.0"}} + {:mvn/version "7.7.3"}} :aliases {:test @@ -22,7 +22,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/scheduler/deps.edn b/modules/scheduler/deps.edn index af329531b..901aa08f6 100644 --- a/modules/scheduler/deps.edn +++ b/modules/scheduler/deps.edn @@ -13,7 +13,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/server/deps.edn b/modules/server/deps.edn index 0ee881d51..a6e5a8433 100644 --- a/modules/server/deps.edn +++ b/modules/server/deps.edn @@ -30,7 +30,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} diff --git a/modules/thread-pool-executor-collector/deps.edn b/modules/thread-pool-executor-collector/deps.edn index 998a0d483..c2cd29b1a 100644 --- a/modules/thread-pool-executor-collector/deps.edn +++ b/modules/thread-pool-executor-collector/deps.edn @@ -16,7 +16,7 @@ :kaocha {:extra-deps {lambdaisland/kaocha - {:mvn/version "1.70.1086"}} + {:mvn/version "1.71.1119"}} :main-opts ["-m" "kaocha.runner"]} From da5f1038e2d430642c69ebf8fb462a205ec80ac6 Mon Sep 17 00:00:00 2001 From: Alexander Kiel Date: Tue, 25 Oct 2022 18:46:12 +0200 Subject: [PATCH 2/3] Fix Storage of Bundles with References Before, references inside Bundles were tried to resolve during transactions. That required resources to exists that were referenced inside Bundles. But Bundles should be stored "as-is", opaque without resolving any references in them. This fix, changes the function blaze.fhir.spec.type/references to not look inside Bundle entries. The integration test "bundle-with-references-test" was added to try to issue a transaction that stores a transaction bundle with a reference in it. --- .../bundle-with-references/bundle.json | 30 ++++++++++++ .github/workflows/build.yml | 31 +++++++++++++ .../src/blaze/fhir/spec/type.clj | 4 +- .../test/blaze/fhir/spec/generators.clj | 9 ++++ .../test/blaze/fhir/spec/type_test.clj | 4 +- .../test/blaze/fhir/spec_test.clj | 39 ++++++++++++++++ .../test/blaze/interaction/create_test.clj | 46 ++++++++++++++++++- 7 files changed, 157 insertions(+), 6 deletions(-) create mode 100644 .github/test-data/bundle-with-references/bundle.json diff --git a/.github/test-data/bundle-with-references/bundle.json b/.github/test-data/bundle-with-references/bundle.json new file mode 100644 index 000000000..ce33ae0fe --- /dev/null +++ b/.github/test-data/bundle-with-references/bundle.json @@ -0,0 +1,30 @@ +{ + "resourceType": "Bundle", + "type": "transaction", + "entry": [ + { + "resource": { + "resourceType": "Bundle", + "type": "transaction", + "entry": [ + { + "resource": { + "resourceType": "Condition", + "subject": { + "reference": "Patient/db03f428-4fea-4006-bb90-aeaa7c6e9d1d" + } + }, + "request": { + "method": "POST", + "url": "Condition" + } + } + ] + }, + "request": { + "method": "POST", + "url": "Bundle" + } + } + ] +} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3218afce3..379e1e22e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -601,6 +601,37 @@ jobs: - name: Test Include run: .github/scripts/include-without-referential-integrity.sh + # Test that a transaction can create a transaction bundle with references that will be taken "as-is" and not tried to + # resolve to existing resources + bundle-with-references-test: + needs: build + runs-on: ubuntu-20.04 + + steps: + - name: Check out Git repository + uses: actions/checkout@v3 + + - name: Install Blazectl + run: .github/scripts/install-blazectl.sh + + - name: Download Blaze Image + uses: actions/download-artifact@v3 + with: + name: blaze-image + path: /tmp + + - name: Load Blaze Image + run: docker load --input /tmp/blaze.tar + + - name: Run Blaze + run: docker run --rm -d -e JAVA_TOOL_OPTIONS=-Xmx1g -p 8080:8080 blaze:latest + + - name: Wait for Blaze + run: .github/scripts/wait-for-url.sh http://localhost:8080/health + + - name: Load Data + run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/bundle-with-references + jepsen-test: needs: build runs-on: ubuntu-20.04 diff --git a/modules/fhir-structure/src/blaze/fhir/spec/type.clj b/modules/fhir-structure/src/blaze/fhir/spec/type.clj index 19dc7360a..fffddb10f 100644 --- a/modules/fhir-structure/src/blaze/fhir/spec/type.clj +++ b/modules/fhir-structure/src/blaze/fhir/spec/type.clj @@ -1103,7 +1103,9 @@ (p/-hash-into (k m) sink)) (sort (keys m)))) (-references [m] - (transduce (mapcat p/-references) conj [] (vals m)))) + ;; Bundle entries have no references, because Bundles itself are stored "as-is" + (when-not (identical? :fhir.Bundle/entry (p/-type m)) + (transduce (mapcat p/-references) conj [] (vals m))))) (declare attachment) diff --git a/modules/fhir-structure/test/blaze/fhir/spec/generators.clj b/modules/fhir-structure/test/blaze/fhir/spec/generators.clj index 4e06d67cf..cfafa5724 100644 --- a/modules/fhir-structure/test/blaze/fhir/spec/generators.clj +++ b/modules/fhir-structure/test/blaze/fhir/spec/generators.clj @@ -482,3 +482,12 @@ (->> (gen/tuple category) (to-map [:category]) (fhir-type :fhir/AllergyIntolerance))) + + +(defn bundle-entry + [& {:keys [id extension resource] + :or {id (gen/return nil) + extension (extensions)}}] + (->> (gen/tuple id extension resource) + (to-map [:id :extension :resource]) + (fhir-type :fhir.Bundle/entry))) diff --git a/modules/fhir-structure/test/blaze/fhir/spec/type_test.clj b/modules/fhir-structure/test/blaze/fhir/spec/type_test.clj index 433dc0b1e..41ec16691 100644 --- a/modules/fhir-structure/test/blaze/fhir/spec/type_test.clj +++ b/modules/fhir-structure/test/blaze/fhir/spec/type_test.clj @@ -109,9 +109,7 @@ (is (= "0" (murmur3 nil)))) (testing "references" - (are [x refs] (= refs (type/references x)) - nil - nil)))) + (is (nil? (type/references nil)))))) (deftest Object-test diff --git a/modules/fhir-structure/test/blaze/fhir/spec_test.clj b/modules/fhir-structure/test/blaze/fhir/spec_test.clj index 0d4c9eab9..50f0817f3 100644 --- a/modules/fhir-structure/test/blaze/fhir/spec_test.clj +++ b/modules/fhir-structure/test/blaze/fhir/spec_test.clj @@ -4206,6 +4206,45 @@ {:score 1.1M})))) +(deftest bundle-entry-reference-test + (testing "transforming" + (testing "JSON" + (satisfies-prop 100 + (prop/for-all [x (fg/bundle-entry {:resource (fg/patient)})] + (= (->> x + fhir-spec/unform-json + fhir-spec/parse-json + (s2/conform :fhir.json.Bundle/entry)) + x)))) + + (testing "XML" + (satisfies-prop 100 + (prop/for-all [x (fg/bundle-entry {:resource (fg/patient)})] + (= (->> x + (s2/unform :fhir.xml.Bundle/entry) + (s2/conform :fhir.xml.Bundle/entry)) + x)))) + + (testing "CBOR" + (satisfies-prop 100 + (prop/for-all [x (fg/bundle-entry {:resource (fg/patient)})] + (= (->> x + fhir-spec/unform-cbor + fhir-spec/parse-cbor + (s2/conform :fhir.cbor.Bundle/entry)) + x))))) + + (testing "references" + (satisfies-prop 10 + (prop/for-all [x (fg/bundle-entry + {:resource + (fg/observation + {:subject + (fg/reference + {:reference (gen/return "Patient/0")})})})] + (empty? (type/references x)))))) + + ;; ---- Resources ------------------------------------------------------------- diff --git a/modules/interaction/test/blaze/interaction/create_test.clj b/modules/interaction/test/blaze/interaction/create_test.clj index 4c01b07de..bad7c0156 100644 --- a/modules/interaction/test/blaze/interaction/create_test.clj +++ b/modules/interaction/test/blaze/interaction/create_test.clj @@ -46,7 +46,8 @@ (def router (reitit/router [["/Patient" {:name :Patient/type}] - ["/Observation" {:name :Observation/type}]] + ["/Observation" {:name :Observation/type}] + ["/Bundle" {:name :Bundle/type}]] {:syntax :bracket})) @@ -115,6 +116,10 @@ (reitit/map->Match {:data {:fhir.resource/type "Observation"}})) +(def bundle-match + (reitit/map->Match {:data {:fhir.resource/type "Bundle"}})) + + (deftest handler-test (testing "errors on" (testing "missing body" @@ -391,4 +396,41 @@ :id := "AAAAAAAAAAAAAAAA" [:meta :versionId] := #fhir/id"1" [:meta :lastUpdated] := Instant/EPOCH - [:subject :reference] := "Patient/0"))))) + [:subject :reference] := "Patient/0")))) + + (testing "with a Bundle with references" + (with-handler [handler] + [] + (let [{:keys [status headers body]} + @(handler + {::reitit/match bundle-match + :body {:fhir/type :fhir/Bundle + :type #fhir/code"collection" + :entry + [{:fhir/type :fhir.Bundle/entry + :resource + {:fhir/type :fhir/Observation + :subject #fhir/Reference{:reference "Patient/0"}} + :request + {:fhir/type :fhir.Bundle.entry/request + :method #fhir/code"POST" + :url #fhir/uri"Observation"}}]}})] + + (is (= 201 status)) + + (testing "Location header" + (is (= (str base-url "/Bundle/AAAAAAAAAAAAAAAA/_history/1") + (get headers "Location")))) + + (testing "Transaction time in Last-Modified header" + (is (= "Thu, 1 Jan 1970 00:00:00 GMT" (get headers "Last-Modified")))) + + (testing "Version in ETag header" + ;; 1 is the T of the transaction of the resource creation + (is (= "W/\"1\"" (get headers "ETag")))) + + (given body + :fhir/type := :fhir/Bundle + :id := "AAAAAAAAAAAAAAAA" + [:meta :versionId] := #fhir/id"1" + [:meta :lastUpdated] := Instant/EPOCH))))) From 8629c95dba0478f1e21446a8921e9f66a5ebc51f Mon Sep 17 00:00:00 2001 From: Alexander Kiel Date: Tue, 25 Oct 2022 20:01:06 +0200 Subject: [PATCH 3/3] Release v0.18.2 --- CHANGELOG.md | 12 ++++++++++++ README.md | 4 ++-- docs/deployment/docker-deployment.md | 4 ++-- docs/deployment/manual-deployment.md | 12 ++++++------ modules/rest-api/src/blaze/rest_api/capabilities.clj | 2 +- perf-test/gatling/pom.xml | 2 +- pom.xml | 2 +- src/blaze/system.clj | 2 +- 8 files changed, 26 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28b6ea932..4168f16d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## v0.18.2 + +### Bugfixes + +* Fix Storage of Bundles with References ([#822](https://github.com/samply/blaze/pull/822)) + +### Security + +* Update Dependencies ([#824](https://github.com/samply/blaze/pull/824)) + +The full changelog can be found [here](https://github.com/samply/blaze/milestone/53?closed=1). + ## v0.18.1 ### Security diff --git a/README.md b/README.md index d54cb6905..c00ec89ce 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The goal of this project is to provide a FHIR® Store with an internal CQL Evalu Blaze passes all [Touchstone FHIR 4.0.1 Basic Tests][12] and almost all [CQL Tests][3]. Please refer to the [Conformance](docs/conformance.md) section and report any issues you encounter during evaluation. -Latest release: [v0.18.1][5] +Latest release: [v0.18.2][5] ## Quick Start @@ -73,7 +73,7 @@ Unless required by applicable law or agreed to in writing, software distributed [3]: [4]: -[5]: +[5]: [6]: [7]: [8]: diff --git a/docs/deployment/docker-deployment.md b/docs/deployment/docker-deployment.md index 684a0af12..61e784096 100644 --- a/docs/deployment/docker-deployment.md +++ b/docs/deployment/docker-deployment.md @@ -27,7 +27,7 @@ Blaze should log something like this: 2021-06-27T11:02:37.834Z ee086ef908c1 main INFO [blaze.core:64] - JVM version: 16.0.2 2021-06-27T11:02:37.834Z ee086ef908c1 main INFO [blaze.core:65] - Maximum available memory: 1738 MiB 2021-06-27T11:02:37.835Z ee086ef908c1 main INFO [blaze.core:66] - Number of available processors: 8 -2021-06-27T11:02:37.836Z ee086ef908c1 main INFO [blaze.core:67] - Successfully started Blaze version 0.18.1 in 8.2 seconds +2021-06-27T11:02:37.836Z ee086ef908c1 main INFO [blaze.core:67] - Successfully started Blaze version 0.18.2 in 8.2 seconds ``` In order to test connectivity, query the health endpoint: @@ -47,7 +47,7 @@ that should return: ```json { "name": "Blaze", - "version": "0.18.1" + "version": "0.18.2" } ``` diff --git a/docs/deployment/manual-deployment.md b/docs/deployment/manual-deployment.md index e20e30172..9861e3807 100644 --- a/docs/deployment/manual-deployment.md +++ b/docs/deployment/manual-deployment.md @@ -2,12 +2,12 @@ The installation works under Windows, Linux and macOS. The only dependency is an installed OpenJDK 11 or 17 with 17 recommended. Blaze is tested with [Eclipse Temurin][1]. -Blaze runs on the JVM and comes as single JAR file. Download the most recent version [here](https://github.com/samply/blaze/releases/tag/v0.18.1). Look for `blaze-0.18.1-standalone.jar`. +Blaze runs on the JVM and comes as single JAR file. Download the most recent version [here](https://github.com/samply/blaze/releases/tag/v0.18.2). Look for `blaze-0.18.2-standalone.jar`. After the download, you can start blaze with the following command (Linux, macOS): ```sh -java -jar blaze-0.18.1-standalone.jar -m blaze.core +java -jar blaze-0.18.2-standalone.jar -m blaze.core ``` Blaze will run with an in-memory, volatile database for testing and demo purposes. @@ -17,14 +17,14 @@ Blaze can be run with durable storage by setting the environment variables `STOR Under Linux/macOS: ```sh -STORAGE=standalone java -jar blaze-0.18.1-standalone.jar -m blaze.core +STORAGE=standalone java -jar blaze-0.18.2-standalone.jar -m blaze.core ``` Under Windows, you need to set the Environment variables in the PowerShell before starting Blaze: ```powershell $Env:STORAGE="standalone" -java -jar blaze-0.18.1-standalone.jar -m blaze.core +java -jar blaze-0.18.2-standalone.jar -m blaze.core ``` This will create three directories called `index`, `transaction` and `resource` inside the current working directory, one for each database part used. @@ -42,7 +42,7 @@ The output should look like this: 2021-06-27T11:02:37.834Z ee086ef908c1 main INFO [blaze.core:64] - JVM version: 16.0.2 2021-06-27T11:02:37.834Z ee086ef908c1 main INFO [blaze.core:65] - Maximum available memory: 1738 MiB 2021-06-27T11:02:37.835Z ee086ef908c1 main INFO [blaze.core:66] - Number of available processors: 8 -2021-06-27T11:02:37.836Z ee086ef908c1 main INFO [blaze.core:67] - Successfully started Blaze version 0.18.1 in 8.2 seconds +2021-06-27T11:02:37.836Z ee086ef908c1 main INFO [blaze.core:67] - Successfully started Blaze version 0.18.2 in 8.2 seconds ``` In order to test connectivity, query the health endpoint: @@ -62,7 +62,7 @@ that should return: ```json { "name": "Blaze", - "version": "0.18.1" + "version": "0.18.2" } ``` diff --git a/modules/rest-api/src/blaze/rest_api/capabilities.clj b/modules/rest-api/src/blaze/rest_api/capabilities.clj index 6cc64aca1..0756e17e4 100644 --- a/modules/rest-api/src/blaze/rest_api/capabilities.clj +++ b/modules/rest-api/src/blaze/rest_api/capabilities.clj @@ -117,7 +117,7 @@ :copyright #fhir/markdown"Copyright 2019 - 2022 The Samply Community\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." :kind #fhir/code"instance" - :date #fhir/dateTime"2022-10-14" + :date #fhir/dateTime"2022-10-25" :software {:name "Blaze" :version version} diff --git a/perf-test/gatling/pom.xml b/perf-test/gatling/pom.xml index e77011a45..a14483768 100644 --- a/perf-test/gatling/pom.xml +++ b/perf-test/gatling/pom.xml @@ -5,7 +5,7 @@ samply.blaze gatling - 0.18.1 + 0.18.2 1.8 diff --git a/pom.xml b/pom.xml index 771e8b95f..7b2090864 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 samply blaze - 0.18.1 + 0.18.2 blaze A FHIR Store with internal, fast CQL Evaluation Engine diff --git a/src/blaze/system.clj b/src/blaze/system.clj index cef6da4ec..f54eaf226 100644 --- a/src/blaze/system.clj +++ b/src/blaze/system.clj @@ -85,7 +85,7 @@ (def ^:private root-config - {:blaze/version "0.18.1" + {:blaze/version "0.18.2" :blaze/clock {}