Old Firely Server release notes (v2.x and earlier)

Release 2.2.0


  1. SQL Server: the index tables have their clustered index on their link to the resources. SQL script ‘20190919000000_Cluster_Indexes_On_EntryId.sql’ (found in the /data folder of the Vonk distribution) must be applied to existing Vonk SQL databases (both to the admin and to the data repositories) to make this change.


    Vonk 2.2.0 (using SQL server) will not start unless this script has been applied to the databases. Please note that running the script can take considerable time, especially for large databases.


  1. When running Vonk in IIS, it now profits from the in-process hosting model that ASP.NET Core offers.

  2. Further improved concurrent throughput for SQL Server.


  1. On errors in a transaction, Vonk would not point out the entry if it had no fullUrl. Improved this message by using the resource type and id (if present) instead.

  2. _include gave a 500 response code if a resource contains absolute references.

Release 2.1.0


  1. SQL Server: Improved concurrent throughput.


  1. Upgrade to HL7.Fhir.Net API 1.3, see the Older SDK release notes.

  2. Vonk calls UseIISIntegration for better integration with IIS (if present).


  1. Transactions: references to other resources in the transaction were not updated if the resource being referenced was in the transaction as an update (PUT). (this error was introduced in 2.0.0).

Release 2.0.1 hotfix


  1. Supported Interactions were not checked for custom operations. In the appsettings.json the custom operations, like $meta, were ignored. This has been fixed now.

Release 2.0.0 final

This is the final release of version 2.0.0, so the -beta is off. If you directly upgrade from version 1.1, please also review all the 2.0.0-beta and -beta2 release notes below.


We upgraded the version of .NET Core used to 2.2. Please get the latest 2.2.x runtime from the .NET download site. The update was needed for several security patches and speed improvements.


The structure of the Validation section in the settings has changed. See Validating incoming resources for details.


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


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


  1. When you created a StructureDefinition for a new resource type on /administration, the corresponding endpoint was not enabled.

  2. Vonk does not update references in a transaction when a conditional create is used for an existing resource.

  3. Paths in PipelineOptions would interfere if one was the prefix of the other.

  4. Indexing a HumanName with no values but just extensions failed.

  5. The selflink in a bundle did not contain the sort parameters. In this version the selflink always contains a sort and a count parameter, even if they were not in the request and the default values have been applied.

  6. The import of conformance resources from specification.zip yielded warnings on .sch files.

  7. Errors introduced in the 2.0.0-beta versions:

    1. Syntax errors in the XML or JSON payload yielded an exception, now they are reported with an OperationOutcome upon parsing.

    2. $expand and other terminology operations caused a NullReference exception.

    3. _element did not include the mandatory elements.


  1. Vonk supports Custom Resources. See Custom Resources.

  2. Operation Meta operations - $meta, $meta-add, $meta-delete is now supported, to quickly get the tags, security labels and profiles of a resource.

  3. /metadata, retrieving the CapabilityStatement performs a lot better (just the initial call for a specific Accept-Type takes a bit longer).

  4. Validation can be controlled more detailed. Choose the strictness of parsing independent of the level of validation. With this, the settings section ‘Validation’ has also changed. See Validating incoming resources.

Plugin and Facade API

  1. We upgraded the embedded Fhir.Net API to version 1.2, see the Older SDK release notes.

  2. Together with the upgrade to .NET Core 2.2, several libraries were updated as well. Most notably Microsoft.EntityFrameworkCore.*, to 2.2.3.

Release 2.0.0-beta2


  • Fixed RelationalQuery in Vonk.Facade.Relational, so Vonk.Facade.Starter can be used again.

Release 2.0.0-beta

We have refactored Vonk internally to accommodate future changes. There are only minor functional changes to the FHIR Server. Facade and Plugin builders must be aware of a few interface changes, most notably to the IResource interface.

This release is a beta release because of the many internal changes, and because we expect to include a few more in the final release. Have a go with it in your test environment to see whether you encounter any trouble. We also encourage you to build your plugin and/or facade against it to prepare for code changes upon the final release.

You can still access the latest final release (1.1.0):

  • Binaries: through the Simplifier downloads page, choose ‘List previous versions’.

  • Docker: docker pull simplifier/vonk:1.1.0

  • NuGet: <PackageReference Include="Vonk.Core" Version="1.1.0" />


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


  1. The $validate operation processes the profile parameter.

  2. If an update brings a resource ‘back to life’, Vonk returns status code 201 (previously it returned 200).

  3. On an initial Administration Import of specification.zip, Vonk found an error in valueset.xml. This file was fixed in the specification.zip that comes with Fhir.NET API 1.1.2.

  4. Transaction: references within the transaction are automatically changed to the id’s the referenced resources get from Vonk when processing the transaction. This did not happen for references inside extensions. It does now.

  5. Administration Import: an Internal Server Error could be triggered with a zip file with nested directories in it.

    • NB: Directories in your zip are still not supported because of Fhir.NET API issue #883, but Vonk will not error on it anymore.

  6. Search: The entry.fullUrl for an OperationOutcome in a Search bundle had a relative url.

  7. Search: Processed _elements and _summary arguments were not reported in the selflink of the bundle (or any of the paging links).

  8. Search: The selflink will include a _count parameter, even if it was not part of the request and hence the default value for _count from the BundleOptions was applied.

  9. Search on :exact with an escaped comma (e.g. /Patient?name:exact=value1\,value2) was executed as a choice. Now the escape is recognized, and the argument processed as one term.


  1. Upgraded Fhir.NET API to version 1.1.2, see the Older SDK release notes.

  2. The Vonk Administration API now allows for StructureMap and GraphDefinition resources to be loaded.

  3. The opening page of Vonk (and the only UI part of it) is updated. It no longer contains links that you can only execute with Postman, and it has a button that shows you the CapabilityStatement.

  4. We published our custom operations on Simplifier! And integrated those links into the CapabilityStatement.

  5. You can now access older versions of the Vonk binaries through the Simplifier downloads. (This was already possible for the Docker images and NuGet packages through their respective hubs).

  6. Vonk.IdentityServer.Test and Vonk.Facade.Starter have been integrated into the Continuous Integration system.

  7. In JSON, the order of the output has changed:

    1. If id and/or meta elements were added by Vonk (on a create or update), they will appear at the end of the resource.

Plugin and Facade API

  1. IResource interface and related classes have had several changes. If you encounter problems with adapting your code, please contact us.

    • It derives from the ISourceNode interface from the Fhir.NET API.

    • Change and Currency are properties that were only relevant in the repository domain, and not in the rest of the pipeline. They have been deprecated. You can access the values still with resource.GetChangeIndicator() and resource.GetCurrencyIndicator(). This is implemented with Annotations on the ISourceNode. All of Vonk’s own implementations retain those annotations, but if the relevant annotation is somehow missing, default values are returned (ResourceChange.NotSet resp. ResourceCurrency.Current).

    • The Navigator property is obsolete. The type of it (IElementNavigator) is obsolete in the Fhir.NET API. To run FhirPath you provide type information and run the FhirPath over an ITypedElement:

      //Have IStructureDefinitionSummaryProvider _schemaProvider injected in the constructor.
      var typed = resource.ToTypedElement(_schemaProvider);
      var matchingElements = typed.Select('your-fhirpath-expression');
    • Id, Version and LastUpdated can no longer be set directly on the IResource instance. IResource has become immutable (just like ISourceNode). The alternatives are:

      var resourceWithNewId = resource.SetId("newId");
      var resourceWithNewVersion = resource.SetVersion("newVersion");
      var resourceWithNewLastUpdated = resource.SetLastUpdated(DateTimeOffset.UtcNow);
    • Because the IChangeRepository is responsible for creating new id’s and versions, we also included extensions methods on it to update all three fields at once:

      var updatedResource = changeRepository.EnsureMeta(resource, KeepExisting.Id / Version / LastUpdated);
      var updatedResource = changeRepository.FreshMeta(resource); //replaces all three
  2. The PocoResource class is obsolete. To go from a POCO (like an instance of the Patient class) to an IResource, use the ToIResource() extension method found in Vonk.Fhir.R3.

  3. The PocoResourceVisitor class is obsolete. Visiting can more effectively be done on an ITypedElement:

    //Have IStructureDefinitionSummaryProvider _schemaProvider injected in the constructor.
    var typed = resource.ToTypedElement(_schemaProvider);
    typed.Visit((depth, element) => {//do what you want with element});
  4. SearchOptions has changed:

    • Properties Count and Offset have been removed.

    • Instead, use _count and _skip arguments in the IArgumentCollection provided to the SearchRepository.Search method if you need to.

  5. We have created a template for a plugin on GitHub. Fetch it for a quick start of your plugin.

Release 1.1.0


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


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.


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.


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


  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 Firely Server 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. A Template for a plugin is added to the documentation.

  6. A documentation page on performance is added.

  7. Upgrade of the Hl7.Fhir.API library to 1.1. See the Older SDK release notes.


  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 without 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 But we optimized the deployment process for Firely Server 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.



  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.


  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.


  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.



  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.



  1. Delete on /administration was broken.



  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 Older SDK release notes.

  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, patch, 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).



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.



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.


  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 Firely Server 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.


  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.



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


  1. Release 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 resource types. It will now take into account the limited set of supported resource types.

  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 Plugins has been released. You can now add libraries with your own plugins through configuration.

  2. Feature: Through Vonk FHIR Plugins you can replace the landing page with one in your own style.

  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.

  5. Upgrade: We upgraded the FHIR .NET API to version 0.96.0, see the Older SDK 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.



This version changes the way conformance resources are loaded from zip files and/or directories at startup. They are no longer loaded only in memory, but are added to the Administration API’s database. You will notice a delay at first startup, when Vonk is loading these resources into the database. See Feature #1 below.


2018-06-07: We updated the Database actions for, you should always perform a reindex, see right below.


  1. Feature 2, 4 and 14 below require a reindex/all, both for MongoDB and SQL Server.


  1. Release is not released on NuGet, so the latest NuGet packages have version 0.6.2-beta. Keep an eye on it for the next release…

Features and fixes

  1. Feature: Run Vonk from you Simplifier project! See Use Firely Server with your Simplifier artifacts for details.

  2. Feature: Vonk supports Microsoft Azure CosmosDB. This required a few small changes to the MongoDB implementation (the share the drivers), so please reindex your MongoDB database: reindex/all.

  3. Feature: Configuration to restrict support for ResourceTypes, SearchParameters and CompartmentDefinitions, see Restrict supported resources and SearchParameters.

  4. Feature: Errata.zip: collection of corrected search parameters (e.g. that had a faulty expression in the FHIR Core specification), see Errata to the specification

  5. Upgrade: FHIR .NET API 0.95.0 (see the Older SDK release notes)

  6. Fix: a search on _id:missing=true was not processed correctly.

  7. Fix: better distinction of reasons to reject updates (error codes 400 vs. 422, see RESTful API specification

  8. Fix: recognize _format=text/xml and return xml (instead of the default json)

  9. Fix: handling of the :not modifier in token searches (include resource that don’t have a value at all).

  10. Fix: handling of the :not modifier in searches with choice arguments

  11. Fix: fullUrl in return bundles cannot be version specific.

  12. Fix: evaluate _count=0 correctly (it was ignored).

  13. Fix: correct error message on an invalid _include (now Vonk tells you which resource types are considered for evaluating the used searchparameter).

  14. Fix: indexing of Observation.combo-value-quantity failed for UCUM code for Celsius. This fix requires a reindex/all on this searchparameter.

  15. Fix: total count in history bundle.

  16. Fix: on vonk.fire.ly we disabled validating all input, so you can now create or update resources also if the relevant profiles are not loaded (this was necessary for Crucible, since it references US Core profiles, that are not present by default).

  17. Fix: timeout of Azure Web App on first startup of Vonk - Vonk’s first startup takes some time due to import of the specification (see Default Conformance Resources). Since Azure Web Apps are allowed a startup time of about 3 minutes, it failed if the web app was on a low level service plan. Vonk will now no longer await this import. It will finish startup quickly, but until the import is finished it will return a 423 ‘Locked’ upon every request.

  18. Fix: improved logging on the import of conformance resources at startup (see Import of Conformance Resources).



This version changes the way conformance resources are loaded from zip files and/or directories at startup. They are no longer loaded only in memory, but are added to the Administration API’s database. You will notice a delay at first startup, when Vonk is loading these resources into the database. See Feature #1 below.


  1. Fix #9 below requires a reindex/all.


  1. Release is not released on NuGet, so the latest NuGet packages have version 0.6.2-beta. This release is targeted towards the Administration API and Terminology services, both of which are not (yet) available in Facade implementations. We are working on making the features of the Administration API available to Facade implementers in an easy way.

Features and fixes

  1. Feature: Make all loaded conformance resources available through the Administration API.


    • Only SearchParameter and CompartmentDefinition resources could be loaded from ZIP files and directories;

    • And those could not be read from the Administration API.


    • The same set of (conformance) resource types can be read from all sources (ZIP, directory, Simplifier);

    • They are all loaded into the Administration database and can be read and updated through the Administration API.

    Refer to Managing Conformance Resources for details.

  2. Feature: Experimental support for Terminology services operations $validate-code, $expand, $lookup, $compose.

  3. Feature: Support for Compartment Search.

  4. Feature: Track timing of major dependencies in Azure Application Insights.

  5. Feature: Log settings can be overridden in 4 levels, just as the appsettings. The logsettings.json file will not be overwritten anymore by a Vonk distribution.

  6. Fix: The check for allowed profiles is no longer applied to the Administration API. Previously setting AllowedProfiles to e.g. [http://mycompany.org/fhir/StructureDefinition/mycompany-patient] would prohibit you to actually create or update the related StructureDefinition in the Administration API.

  7. Fix: When posting any other resourcetype than the supported conformance resources to the Administration API, Vonk now returns a 501 (Not Implemented).

  8. Fix: Support search on Token with only a system (e.g. <base>/Observation?code=http://loinc.org|)

  9. Fix: Support search on Token with a fixed system, e.g. <base>/Patient?gender=http://hl7.org/fhir/codesystem-administrative-gender.html|female. This fix requires a reindex/all.

  10. Fix: Reindex could fail when a Reference Searchparameter has no targets.

  11. Fix: Vonk works as Data Server on ClinFHIR, with help of David Hay.

  12. Fix: Clearer error messages in the log on configuration errors.

  13. Fix: Loading conformance resources from disk in Docker.


  1. We added documentation on using IIS or NGINX as reverse proxies for Vonk.

  2. We added documentation on running Vonk on Azure Web App Services.



The loading of appsettings is more flexible. After installing a new version you can simply paste your previous appsettings.json in the Vonk directory. Vonk’s default settings are now in appsettings.default.json. see Firely Server settings for details.


No changes

Features and fixes

  1. Feature: Conditional References in Transactions are resolved.

  2. Feature: More flexible support for different serializers (preparing for ndjson in Bulkdata)

  3. Feature: Improved handling on missing settings or errors in the Firely Server settings.

  4. Feature: Improved logging, including Dependency Tracking on Azure Application Insights, see Application Insights

  5. Feature: SearchParameter and CompartmentDefinition are now also imported from Simplifier, so both Simplifier import and the Administration API support the same set of conformance resources: StructureDefinition, SearchParameter, CompartmentDefinition, ValueSet and CodeSystem. See Conformance resources.

  6. Feature: Loading of appsettings is more flexible, see Firely Server settings.

  7. Feature: Added documentation on running Vonk behind IIS or NGINX: Deploy Firely Server on a reverse proxy.

  8. Performance: Improvement in speed of validation, especially relevant if you are Validating incoming resources.

  9. Fix: If you try to load a SearchParameter (see Load Conformance Resources from disk) that cannot be parsed correctly, Vonk puts an error about that in the log.

  10. Fix: Results from _include and _revinclude are now marked with searchmode: Include (was incorrectly set to ‘Match’ before)

  11. Fix: _format as one of the parameters in a POST Search is correctly evaluated.

  12. Fix: No more errors in the log about a Session being closed before the request has finished (“Error closing the session. System.OperationCanceledException: The operation was canceled.”)

  13. Fix: Subscription.status is evaluated correctly upon create or update on the Administration API

  14. Fix: Token search with only a system is supported (Observation.code=somesystem|)

  15. Fix: On validation errors like ‘Cannot resolve reference Organization/Organization-example26”’ are now suppressed since the validator is set not to follow these references.

  16. Fix: New Firely logo in SVG format - looks better

  17. Fix: Creating resources with duplicate canonical url’s on the Administration API is prohibited, see Managing Conformance Resources.

  18. Fix: If a Compartment filter is used on a parameter that is not implemented, Vonk will return an error, see Tokens and Compartments.


Name change from Furore to Firely




  1. The MongoDB implementation got a new index. It will be created automatically upon startup.

Features and fixes

  1. Feature: Access control based on SMART on FHIR.

  2. Feature: Vonk can also load CompartmentDefinition resources. See Managing Conformance Resources for instructions.

  3. Feature: ValueSet and CodeSystem resources can be loaded into the administration endpoint, and loaded from Simplifier. See Managing Conformance Resources for instructions.

  4. Feature: Be lenient on trailing slashes in the url.

  5. Feature: OperationOutcome is now at the top of a Bundle result. For human readers this is easier to spot any errors or warnings.

  6. Fix: In the settings for SQL Server it was possible to specify the name of the Schema to use for the Vonk tables. That was actually not evaluated, so we removed the option for it. It is fixed to ‘vonk’.

  7. Fix: The OperationOutcome of the Reset operation could state both an error and overall success.

  8. Fix: If you did not set the CertificatePassword in the appsettings, Vonk would report a warning even if the password was not needed.

  9. Fix: Loading conformance resources in the SQL Server implementation could lead to an error.

  10. Fix: Clearer error messages if the body of the request is mandatory but empty.

  11. Fix: Clearer error message if the Content-Type is missing.

  12. Fix: GET on [base]/ would return the UI regardless of the Accept header. Now if you specify a FHIR mimetype in the Accept header, it will return the result of a system wide search.

  13. Fix: In rare circumstances a duplicate logical id could be created.

  14. Fix: GET [base]/metadata would return status code 200 (OK). But it should return a 400 and an OperationOutcome stating that ‘metadata’ is not a supported resource type.


  1. We consolidated documentation on loading conformance resources into Managing Conformance Resources.



Configuration setting SearchOptions is renamed to BundleOptions.

Features and fixes

  1. Fix: When you specify LoadAtStartup in the ResourceLoaderOptions, an warning was displayed: “WRN No server base configured, skipping resource loading.”

  2. Fix: Conditional create that matches an existing resource returned that resource instead of an OperationOutcome.

  3. Fix: _has, _type and _count were in the CapabilityStatement twice.

  4. Fix: _elements would affect the stored resource in the Memory implementation.

  5. Fix: Getting a resource with an invalid id (with special characters or over 64 characters) now returns a 404 instead of 501.

  6. Feature: Re-indexing for new or changed SearchParameters now also re-indexes the Administration API database.

  7. Fix: modifier :above for parameter type Url now works on the MongoDB implementation.

  8. Fix: Vonk would search through inaccessible directories for the specification.zip.

  9. Fix: Subscription could not be posted if ‘Database’ was not one of the SearchParametersImportOptions.

  10. Fix: _(rev)include=* is not supported but was not reported as such.

  11. Fix: In a searchresult bundle, the references to other resources are now made absolute, referring to the Vonk server itself.

  12. Fix: BundleOptions (previously: SearchOptions) settings were not evaluated.

  13. Fix: Different responses for invalid resources when you change ValidateIncomingResources setting (400 vs. 501)

  14. Fix: Better reporting of errors when there are invalid modifiers in the search.

  15. Fix: Creating a resource that would not fit MongoDB’s document size resulted in an inappropriate error.

  16. Fix: There was no default sort order in the search, resulting in warnings from the SQL implementation. Added default sort on _lastUpdated (desc).

  17. Fix: Preliminary disposal of LocalTerminology server by the Validator.


  1. Fix: _include/_revinclude on searchresults having contained resources triggered a NotImplementedException.



We released the Facade libraries on NuGet along with getting started documentation.

No features have been added to the Vonk FHIR Server.



  1. Long URI’s for token and uri types are now supported, but that required a change of the SQL Server database structure. If you have AutoUpdateDatabase enabled (see Using SQL server), Vonk will automatically apply the changes. As always, perform a backup first if you have production data in the database.

  2. To prevent duplicate resources in the database we have provided a unique index on the Entry table. This update does include a migration. It can happen that that during updating of your database it cannot apply the unique index, because there are duplicate keys in your database (which is not good). Our advise is to empty your database first (with <vonk-endpoint>/administration/reset, then update Vonk with this new version and then run Vonk with AutoUpdateDatabase=true (for the normal and the administration databases).

    If you run on production and encounter this problem, please contact our support.

Features and fixes

  1. Feature: POST on _search is now supported

  2. Fix: Status code of <vonk-endpoint>/administration/preload has changed when zero resources are added. The status code is now 200 instead of 201.

  3. Fix: OPTIONS operation returns now the capability statement with status code 200.

  4. Fix: A search operation with a wrong syntax will now respond with status code 400 and an OperationOutcome. For example GET <vonk-endpoint>/Patient?birthdate<1974 will respond with status code 400.

  5. Fix: A status code 501 could occur together with an OperationOutcome stating that the operation was successful. Not anymore.

  6. Fix: An OperationOutcome stating success did not contain any issue element, which is nog valid. Solved.

  7. Improvement: In the configuration on Load Conformance Resources from simplifier.net the section ArtifactResolutionOptions has changed to ResourceLoaderOptions and a new option has been introduced under that section named LoadAtStartup which, if set to true, will attempt to load the specified resource sets when you start Vonk

  8. Improvement: the Memory implementation now also supports SimulateTransactions

  9. Improvement: the option SimulateTransactions in the configuration defaults to false now

  10. Feature: You can now add SearchParameters at runtime by POSTing them to the Administration API. You need to apply Re-indexing for new or changed SearchParameters to evaluate them on existing resources.

  11. Fix: The batch operation with search entries now detects the correct interaction.

  12. Fix: ETag header is not sent anymore if it is not relevant.

  13. Fix: Searching on a String SearchParameter in a MongoDB implementation could unexpectedly broaden to other string parameters.

  14. Fix: If Reference.reference is empty in a Resource, it is no longer filled with Vonks base address.

  15. Feature: Search operation now supports _summary.

  16. Fix: Paging is enabled for the history interaction.

  17. Fix: Conditional updates won’t create duplicate resources anymore when performing this action in parallel.

  18. Fix: Indexing of CodeableConcept has been enhanced.

  19. Fix: Search on reference works now also for an absolute reference.

  20. Fix: Long uri’s (larger than are 128 characters) are now supported for Token and Uri SearchParameters.

  21. Improvement: The configuration of IP addresses in Limited access has changed. The format is no longer a comma-separated string but a proper JSON array of strings.



  1. Long URL’s for absolute references are now supported, but that required a change of the SQL Server database structure. If you have AutoUpdateDatabase enabled, Vonk will automatically apply the changes. As always, perform a backup first if you have production data in the database.

  2. Datetime elements have a new serialization format in MongoDB. After installing this version, you will see warnings about indexes on these fields. Please perform Re-indexing for new or changed SearchParameters, for all parameters with <vonk-endpoint>/administration/reindex/all. After the operation is complete, restart Vonk and the indexes will be created without errors.

Features and fixes

  1. Fix: SearchParameters with a hyphen (‘-’, e.g. general-practitioner) were not recognized in (reverse) chains.

  2. Fix: CapabilityStatement is more complete, including (rev)includes and support for generic parameters besides the SearchParameters (like _count). Also the SearchParameters now have their canonical url and a description.

  3. Improvement: Preloading resources gives more informative warning messages.

  4. Fix: Re-indexing for new or changed SearchParameters did not handle contained resources correctly. If you have used this feature on the 0.3.3 version, please apply it again with <vonk-endpoint>/administration/reindex/all to correct any errors.

  5. Improvement: Loading resources from Simplifier now also works for the Memory implementation.

  6. Improvements on Validation - $validate:

    • profile parameter can also be supplied on the url

    • if validation is successful, an OperationOutcome is still returned

    • it always returns 200, and not 422 if the resource could not be parsed

  7. Feature: support for Conditional Read, honouring if-modified-since and if-none-match headers.

  8. Fix: Allow for url’s longer than 128 characters in Reference components.

  9. Fix: Allow for an id in a resource on a Create interaction (and ignore that id).

  10. Fix: Allow for an id in a resource on a Conditional Update interaction (and ignore that id).

  11. Fix: Include Last-Modified header on Capability interaction.

  12. Fix: Format Last-Modified header in httpdate format.

  13. Fix: Include version in bundle.entry.fullUrl on the History interaction.

  14. Fix: Update _sort syntax from DSTU2 to STU3. Note: _sort is still only implemented for _lastUpdated, mainly for the History interaction.

  15. Improvement: If the request comes from a browser, the response is sent with a Content-Type of application/xml, to allow the browser to render it natively. Note that most browsers only render the narrative if they receive xml.



We upgraded to .NET Core 2.0. For this release you have to install .NET Core Runtime 2.0, that you can download from dot.net.


The options for enabling and configuring HTTPS have moved. They are now in appsettings.json, under ‘Hosting’:
"Hosting": {
  "HttpPort": 4080,
  "HttpsPort": 4081, // Enable this to use https
  "CertificateFile": "<your-certificate-file>.pfx", //Relevant when HttpsPort is present
  "CertificatePassword" : "<cert-pass>" // Relevant when HttpsPort is present

This means you have to adjust your environment variables for CertificateFile and CertificatePassword (if you had set them) to:


The setting ‘UseHttps’ is gone, in favour of Hosting:HttpsPort.


There are no changes to the database structure.

Features and fixes

  1. Feature: Subscription is more heavily checked on create and update. If all checks pass, status is set to active. If not, the Subscription is not stored, and Vonk returns an OperationOutcome with the errors.

    • Criteria must all be supported

    • Endpoint must be absolute and a correct url

    • Enddate is in the future

    • Payload mimetype is supported

  2. Feature: use _elements on Search

  3. Feature: load profiles from your Simplifier project at startup.

  4. Feature: Content-Length header is populated.

  5. Fix: PUT or POST on /metadata returned 200 OK, but now returns 405 Method not allowed.

  6. Fix: Sometimes an error message would appear twice in an OperationOutcome.

  7. Fix: _summary is not yet implemented, but was not reported as ‘not supported’ in the OperationOutcome. Now it is. (Soon we will actually implement _summary.)

  8. Fix: If-None-Exist header was also processed on an update, where it is only defined for a create.

  9. Fix: Set Bundle.entry.search.mode to ‘outcome’ for an OperationOutcome in the search results.

  10. UI: Display software version on homepage.


  1. Fix: _include and _revinclude could include too many resources.


  1. IP address restricted access to Administration API functions.

  2. Fix on Subscriptions:

    1. Accept only Subscriptions with a channel of type rest-hook and the payload (if present) has a valid mimetype.

    2. Set them from requested to active if they are accepted.


  1. Database changes

If you have professional support, please consult us on the best way to upgrade your database.

  1. The schema for the SQL Database has changed. It also requires re-indexing all resources.

  2. The (implicit) schema for the documents in the MongoDb database has changed.

  3. The Administration API requires a separate database (SQL) or collection (MongoDb).

  1. New features:

  1. Custom Search Parameters

  2. Support for Subscriptions with rest-hook channel

  3. Preload resources from a zip.

  4. Reset database

  5. Conditional create / update / delete

  6. Support for the prefer header

  7. Validation on update / create (can be turned on/off)

  8. Restrict creates/updated to specific profiles.

  9. Configure supported interactions (turn certain interactions on/off)

  1. New search features:

  1. _has

  2. _type (search on system level)

  3. _list

  4. _revinclude

  1. Enhancements

  1. :exact: Correctly search case (in)sensitive when the :exact modifier is (not) used on string parameters.

  2. Enhanced reporting of errors and warnings in the OperationOutcome.

  3. Custom profiles / StructureDefinitions separated in the Administration API (instead of in the regular database).

  4. Full FHIRPath support for Search Parameters.

  5. Fixed date searches on dates without seconds and timezone

  6. Fixed evaluation of modifier :missing

  7. Correct total number of results in search result bundle.

  8. Fix paging links in search result bundle

  9. Better support for mimetypes.

  1. DevOps:

  1. New Firely Server Administration API

  2. Enabled logging of the SQL statements issued by Vonk (see Log settings)

  3. Migrations for SQL Server (auto create database schema, also for the Administration API)

  1. Performance

  1. Added indexes to MongoDb and SQL Server implementations.