Release notes Vonk

Release 1.1.0

Attention

New security issues have been identified by Microsoft. See the Security notifications for Vonk for details.

Attention

The setting for the location of the license file has moved. It was in the top level setting LicenseFile. It still has the same name, but it has moved into the section License. See License for details.

Attention

This version of Vonk is upgraded to the Hl7.Fhir.API version 1.1.1. Plugin- and Facade builders will transitively get this dependency through the Vonk.Core package.

Database

No changes have been made to any of the database implementations.

Feature

  1. Vonk will count the number of requests that it processes. See License for settings on that. Because of this change, the LicenseFile setting has moved from the top level to under License.
  2. The plugin folder (Configuring the Vonk Pipeline) may now contain subfolders. Plugins will be read from all underlying folders.
  3. Vonk supports If-Match on update. See Managing Resource Contention in the specification for details.
  4. Plugins may return non-FHIR content. See Returning non-FHIR content from a plugin.
  5. This feature may also be used for Custom Authentication.
  6. A Template for a plugin is added to the documentation.
  7. A documentation page on performance is added: Performance of Vonk FHIR Server.
  8. Upgrade of the Hl7.Fhir.API library to 1.1. See the API releasenotes for 1.1.0 (DSTU2, STU3) (beta - final version to be released 20190128).

Fix

  1. Transaction: forward references from one resource to another in a Transaction were not correctly resolved.
  2. When you set ValidateIncomingResources to true, Vonk no longer accepts resources with extensions that are unknown to it. This is now also reflected in the CapabilityStatement.acceptUnknown.
  3. The links in a bundle response (Bundle.link) were relative links. Now they are absolute links.
  4. HTTP 500 instead of an OO was returned when trying to update a subscription with an invalid request status.
  5. If an error is found in a SearchParameter in the Administration database, Vonk logs the (canonical) url of that SearchParameter for easier reference.
  6. Transaction: Response bundle contained versioned fullUrls. We changed that to unversioned urls.
  7. Bundles: Response bundles with an OperationOutcome contained a versioned fullUrl for the entry containing the OperationOutcome. We changed that to an unversioned url.
  8. Deleting a resource from the Administration API that does not exist would lead to an internal server error.

Supported Plugins

  1. Several fixes have been done on the Document plugin.

Release 1.0.0

Yes! Vonk version 1.0 is out. It is also the first version that is released withouth the -beta postfix. It has been very stable from the very first version, and now we think it is time to make that formal.

Release 1.0.0 is functionally identical to 0.7.4.0. But we optimized the deployment process for Yellow Button - Vonk for your Simplifier project and Docker in general. The contents of the core specification are now preloaded in the SQLite administration database, so your first startup experience is a lot faster.

Release 0.7.4.0

Database

  1. The index definitions for SQL Server have been updated for improved performance. This should be handled automatically when you start Vonk 0.7.4 and have AutoUpdateDatabase enabled.

Fix

  1. Posting a resource with an invalid content-type to the regular FHIR endpoint should result in HTTP 415 and not HTTP 400.
  2. Warning ‘End method “PocoResourceVisitor.VisitByType”, could not cast entity to PocoResource.’ in the log was incorrect.
  3. When running Administration API on SQLite and Vonk on SQL Server, update or delete would fail.
  4. Handle quantity with very low precision (e.g. ‘3 times per year’ - 3|http://unitsofmeasure.org|/a).
  5. POST to <vonk_base>/Administration/* with another Content-Type than application/json or application/xml results in HTTP 500.

Feature

  1. Support forward references in a Transaction bundle. Previously Vonk would only process references back to resources higher up in the bundle.
  2. Performance of Validation and Snapshot Generation has improved by approximately 10 times…
  3. … and correctness has improved as well.
  4. Administration API also support the NamingSystem resource.

Release 0.7.3.0

Fix

  1. Search on /administration/Subscription was broken
  2. Neater termination of the Subscription evaluation process upon Vonk shutdown
  3. A Bundle of type batch is now rejected if it contains internal references.
  4. Urls in the narrative (href and src) are also updated to the actual location on the server.
  5. A system wide search on compartment returns 403, explaining that that is too costly.

Release 0.7.2.1

Fix

  1. Delete on /administration was broken.

Release 0.7.2.0

Database

  1. Fixes 2 and 3 require a reindex for specific searchparameters, if these parameters are relevant to you.

Features and fixes

  1. Fix: Reject a search containing a modifier that is incorrect or not supported.
  2. Fix: The definition for searchparameter Encounter.length was unclear. We added the correct definition from FHIR R4 to the errata.zip, so it works for STU3 as well. If this is relevant for you, you may want to reindex for this searchparameter. See Rebuild the search index for specific searchparameters, just for ‘Encounter.length’.
  3. Fix: Error “Unable to index for element of type ‘base64Binary’”. This type of element is now correctly indexed. One known searchparameter that encounters this type is Device.udi-carrier. If this is relevant to you, you may want to reindex for this searchparameter. See Rebuild the search index for specific searchparameters, just for ‘Device.udi-carrier’.
  4. Fix: Validation would fail on references between contained resources. See also fix #423 in the release notes for the FHIR API.
  5. Fix: E-tag was missing from the response on a delete interaction.
  6. Fix: An invalid mimetype in the _format parameter (like _format=application/foobar) returned response code 400 instead of 415.
  7. Fix: If a subscription errors upon execution, not only set the status to error, but also state the reason in Subscription.error for the user to inspect.
  8. Fix: Search on /Observation?value-string:missing=false did not work. As did the missing modifier on other searchparameters on value[x] elements.
  9. Feature: After /administration/importResources (see Load Conformance Resources on demand), return an OperationOutcome detailing the results of the operation.
  10. Feature: Upon usage of a wrong value for _summary, state the possible, correct values in the OperationOutcome.
  11. Feature: Allow for multiple deletes with a Conditional Delete, see Create, read, update, delete.
  12. Feature: The version of Vonk is included in the log file, at startup.
  13. Configuration: Add Vonk.Smart to the PipelineOptions by default, so the user only needs to set the SmartAuthorizationOptions.Enabled to true.
  14. Upgrade: We upgraded to the latest C# driver for MongoDb (from 2.4.4 to 2.7.0).

Release 0.7.1.1

Fix

Spinning up a Docker container would crash the container because there was no data directory for SQlite (the default repository). This has been solved now: Vonk will create the data directory when it does not exist.

Release 0.7.1.0

Attention

Fix nr. 8 requires a reindex/searchparameters with include=Resource._id,Resource._lastUpdated,Resource._tag. Please review Re-indexing for new or changed SearchParameters on how to perform a reindex and the cautions that go with it. Also note the changes to reindexing in fix nr. 1.

Database

  1. We added support for SQLite! See Using SQLite for details.
  2. We also made SQLite the default setting for both the main Vonk database and the Vonk Administration API.
  3. With the introduction of SQLite we advise running the Administration API on SQLite. In the future we will probably deprecate running the Administration API on any of the other databases.
  4. Support for CosmosDB is expanded, though there are a few limitations.

Facade

  1. If you rejected the value for the _id searchparameter in your repository, Vonk would report an InternalServerError. Now it reports the actual message of your ArgumentException.

Features and fixes

  1. We sped up Re-indexing for new or changed SearchParameters. The request will be responded to immediately, while Vonk starts the actual reindex asynchronously and with many threads in parallel. Users are guarded against unreliable results by blocking other requests for the duration of the reindex. Reindexing is still not to be taken lightly. It is a very heavy operation that may take very long to complete. See Re-indexing for new or changed SearchParameters for details.
  2. A really large bundle could lead Vonk (or more specifically: the validator in Vonk) to a StackOverflow. You can now set limits to the size of incoming data to avoid this.
  3. Reindexing is supported on CosmosDB, but it is less optimized than on MongoDB.
  4. Using _include or _revinclude would yield an OperationOutcome if there are no search results to include anything on. Fixed that to return 404 as it should.
  5. Using the :not modifier could return false positives.
  6. A batch or transaction with an entry having a value for IfModifiedSince would fail.
  7. History could not be retrieved for a deleted resource. Now it can.
  8. Reindex would ignore the generic searchparameters defined on Resource (_id, _lastUpdated, _tag). Because id and lastUpdated are also stored apart from the search index, this was really only a problem for _tag. If you rely on the _tag searchparameter you need to reindex just for the searchparameter ``Resource._tag``.
  9. Vonk logs its configuration at startup. See Log of your configuration for details.

Release 0.7.0.0

Database

  1. Indexes on the SQL Server repository were updated to improve performance. They will automatically be applied with AutoUpdateDatabase.

Facade

  1. Release 0.7.0.0 is compatible again with Facade solutions built on the packages with versions 0.6.2, with a few minor changes. Please review the Vonk.Facade.Starter project for an example of the necessary adjustments. All the differences can be seen in this file comparison.
  2. Fix: The SMART authorization failed when you don’t support all the resourcetypes. It will now take into account the limited set of supported resourcetypes.
  3. Fix: Vonk.Facade.Relational.RelationalQueryFactory would lose a _count argument.
  4. Documentation: We added documentation on how to implement Create, Update and Delete in a facade on a relational database. See Enable changes to the repository. This is also added to the example Facade solution on GitHub.

Features and fixes

  1. Feature: Vonk FHIR Components has been released. You can now add libraries with your own components through configuration.
  2. Feature: Through Vonk FHIR Components you can replace the landing page with one in your own style. We provided an example on how to do that.
  3. Feature: You can now start Vonk from within another directory than the Vonk binaries directory, e.g. c:\programs>dotnet .\vonk\vonk.server.dll.
  4. Feature: You can configure the maximum number of entries allowed in a Batch or Transaction, to avoid overloading Vonk. See Batch and transaction.
  5. Upgrade: We upgraded the FHIR .NET API to version 0.96.0, see their release notes for details. Mainly #599 affects Vonk, since it provides the next…
  6. Fix: Under very high load the FhirPath engine would have concurrency errors. The FhirPath engine is used to extract the search parameters from the resources. This has been fixed.
  7. Fix: Search on a frequently used tag took far too long on a SQL Server repository.
  8. Fix: The Patient.deceased search parameter from the specification had an error in its FhirPath expression. We put a corrected version in the errata.zip.
  9. Fix: Several composite search parameters on Observation are defined incorrectly in the specification, as is reported in GForge issue #16001. Until the specification itself is corrected, we provide corrections in the errata.zip.
  10. Fix: Relative references in a resource that start with a forward slash (like /Patient/123) could not be searched on.
  11. Fix: System wide search within a compartment looked for the pattern <base>/Patient/123/?_tag=bla. Corrected this to <base>/Patient/123/*?_tag=bla
  12. Fix: When loading Simplifier resources, Vonk can now limit this to the changes since the previous import, because the Simplifier FHIR endpoint supports _lastUpdated.
  13. Fix: Conformance resources are always loaded into the Administration API when running on a Memory repository. Or actually, always if there are no StructureDefinitions in the Administration database. To enable this change, imported files are no longer moved to the AdministrationOptions.ImportedDirectory.
  14. Fix: Re-indexing for new or changed SearchParameters would stop if a resource was encountered that could not properly be indexed. It will now continue working and report any errors afterwards in an OperationOutcome.
  15. Fix: The terms and privacy statement on the default landing page have been updated.
  16. Fix: When searching on a search parameter of type date, with an argument precision to the minute (but not seconds), Vonk would reject the argument. It is now accepted.
  17. Fix: DateTime fields are always normalized to UTC before they are stored. This was already the case on MongoDb, and we harmonized SQL and Memory to do the same. There is no need to reindex for this change.
  18. Fix: When you use accents or Chinese characters in the url for a search, Vonk gives an error.
  19. Fix: A reverse chained search on MongoDb sometimes failed with an Internal Server Error.