Plugins available for Vonk

Infrastructural plugins

Name:

Scheduler

Configuration:

Vonk.Core.Quartz.QuartzConfiguration

License token:

http://fire.ly/vonk/plugins/infra

Order:

10

Description:

Registers a scheduler that can run jobs periodically. You can use this yourself, but with care (you don’t want jobs slowing down the server):

  • Implement a Quartz.IJob, let’s say with class MyJob {…}
  • Have the Quartz.IScheduler injected
  • Call IScheduler.StartJob<MyJob>(TimeSpan runInterval, CancellationToken cancellationToken)
Name:Maintenance
Configuration:Vonk.Core.Infra.MaintenanceConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:20
Description:Periodically cleans the indexed values for deleted or superceded resources from the database.
Name:License
Configuration:Vonk.Core.Licensing.LicenseConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:120
Description:Registers the LicenseService that checks for a valid license. Without this plugin Vonk does not work.
Name:Serialization
Configuration:Vonk.Core.Serialization.SerializationConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:130
Description:Registers an implementation for the ISerializationService and ISerializationSupport interfaces and actual serializers and parsers for JSON and XML.
Name:Pluggability
Configuration:Vonk.Core.Pluggability.PluggabilityConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:150
Description:Registers services to dynamically build the IModelService using registered IModelContributor implementations.
Name:Http to Vonk
Configuration:Vonk.Core.Context.Http.HttpToVonkConfiguration
License token:http://fire.ly/vonk/plugins/http
Order:1110
Description:Builds an IVonkContext out of the HttpContext. You can only access the IVonkContext in the pipeline from plugins that have a higher order.
Name:Vonk to Http
Configuration:Vonk.Core.Context.Http.VonkToHttpConfiguration
License token:http://fire.ly/vonk/plugins/http
Order:1120
Description:Translates the response in the IVonkContext to a response on the HttpContext. It honors the value of the prefer header if present. It also adds the VonkExceptionMiddleware to the pipeline as a last resort for catching exceptions.
Name:Formatter
Configuration:Vonk.Core.Context.Format.FormatConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:1130
Description:Registers an implementation of IFormatter that can write the IVonkContext.Response.Payload to the response body in the requested format. Does not add a processor to the pipeline.
Name:Long running tasks
Configuration:Vonk.Core.Infra.LongRunning.LongRunningConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:1170
Description:If Vonk processes a task that could lead to inconsistent output, all other requests are rejected by this plugin. Long running tasks are e.g. the Import of Conformance Resources and Re-indexing for new or changed SearchParameters.
Name:Compartments
Configuration:Vonk.Core.Context.Features.CompartmentsConfiguration
License token:http://fire.ly/vonk/plugins/search
Order:1210
Description:Recognizes a compartment in a compartment search on system or type level (see Search). It is added as a feature of type ICompartment to the IVonkContext.Features collection, to be used by Search later on. This ICompartment feature will limit all queries to within the specified compartment.
Name:Supported Interactions
Configuration:Vonk.Core.Context.Guards.SupportedInteractionsConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:1220
Description:Blocks interactions that are not listed as supported.
Options:SupportedInteractions, see Enable or disable interactions.
Name:Size Limits
Configuration:Vonk.Core.Context.Guards.SizeLimitsConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:1225
Description:Rejects bodies that are too large and bundles with too many entries.
Options:SizeLimits, see Protect against large input
Name:Url mapping
Configuration:Vonk.Core.Context.UrlMapping.UrlMappingConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:1230
Description:In a resource in the request, urls pointing to this instance of Vonk are made relative. In a resource in the response, relative urls are made absolute, by adding the base url of the server. This way the server can be addressed in multiple ways (e.g. http://intranet.acme.com/fhir and https://fhir.acme.com) and still provide correct absolute urls.
Name:Default Shapes
Configuration:Vonk.Core.Context.Guards.DefaultShapesConfiguration
License token:http://fire.ly/vonk/plugins/infra
Order:4110
Description:If no sort order is given for a search, _lastUpdated:asc is added. If no count is given for a search, _count=<default count> is added.
Options:BundleOptions.DefaultCount, see Search and History.

Support for different FHIR versions

Name:FHIR R3
Configuration:Vonk.Fhir.R3.FhirR3Configuration
License token:http://fire.ly/vonk/plugins/fhirr3
Order:100
Description:Registers services to support FHIR STU3 (or R3).
Name:FHIR R3 Specification
Configuration:Vonk.Fhir.R3.FhirR3SpecificationConfiguration
License token:http://fire.ly/vonk/plugins/fhirr3
Order:112
Description:Registers an Hl7.Fhir.Specification.IStructureDefinitionSummaryProvider for FHIR STU3 (or R3).
Name:FHIR R4
Configuration:Vonk.Fhir.R4.FhirR4Configuration
License token:http://fire.ly/vonk/plugins/fhirr4
Order:101
Description:Registers services to support FHIR R4.
Name:FHIR R4 Specification
Configuration:Vonk.Fhir.R4.FhirR4SpecificationConfiguration
License token:http://fire.ly/vonk/plugins/fhirr4
Order:112
Description:Registers an Hl7.Fhir.Specification.IStructureDefinitionSummaryProvider for FHIR R4.

FHIR RESTful interactions

Name:Read
Configuration:Vonk.Core.Operations.Crud.ReadConfiguration
License token:http://fire.ly/vonk/plugins/read
Order:4410
Description:Implements FHIR instance read. It will return the Resource that matches the id and the FHIR version. If a Resource with matching id is found with another FHIR version you are notified.
Name:Create
Configuration:Vonk.Core.Operations.Crud.CreateConfiguration
License token:http://fire.ly/vonk/plugins/create
Order:4420
Description:Implements FHIR type create.
Name:Update
Configuration:Vonk.Core.Operations.Crud.UpdateConfiguration
License token:http://fire.ly/vonk/plugins/update
Order:4430
Description:Implements FHIR instance update, with support for ‘upsert’: creating a Resource with a pre-assigned id. Note that id’s must be unique across FHIR versions.
Name:Patch
Configuration:Vonk.Core.Operations.Crud.FhirPatchConfiguration
License token:http://fire.ly/vonk/plugins/update
Order:4433
Description:Implements FHIR instance patch, as specified by FHIR Patch.
Name:Delete
Configuration:Vonk.Core.Operations.Crud.DeleteConfiguration
License token:http://fire.ly/vonk/plugins/delete
Order:4440
Description:Implements FHIR instance delete. Since id’s in Vonk must be unique across FHIR versions, the delete is issued on the provided id, regardless of the FHIR version.
Name:Index
Configuration:Vonk.Core.Repository.RepositoryIndexSupportConfiguration
License token:http://fire.ly/vonk/plugins/index
Order:141
Description:Extracts values matching Searchparameters from resources, so they can be searched on.
Name:Include
Configuration:Vonk.Core.Operations.Search.IncludeConfiguration
License token:http://fire.ly/vonk/plugins/include
Order:4210
Description:Implements _include and _revinclude. This acts on the result bundle of a search. Therefore it also works out of the box for Facade implementations, provided that the Facade implements support for the reference Searchparameters that are used in the _(rev)include.
Name:Elements
Configuration:Vonk.Core.Context.Elements.ElementsConfiguration
License token:http://fire.ly/vonk/plugins/search
Order:1240
Description:Applies the _elements parameter to the Resource that is in the response (single resource or bundle).
Name:Summary
Configuration:Vonk.Core.Context.Elements.SummaryConfiguration
License token:http://fire.ly/vonk/plugins/search
Order:1240
Description:Applies the _summary parameter to the Resource that is in the response (single resource or bundle).
Name:History
Configuration:Vonk.Core.Operations.History.HistoryConfiguration
License token:http://fire.ly/vonk/plugins/history
Order:4610
Description:Implements _history on system, type and instance level.
Options:BundleOptions, see Search and History
Name:Version Read
Configuration:Vonk.Core.Operations.History.VersionReadConfiguration
License token:http://fire.ly/vonk/plugins/history
Order:4620
Description:Implements reading a specific version of a resource (<base>/Patient/123/_history/v3).
Name:Capability
Configuration:Vonk.Core.Operations.Capability.CapabilityConfiguration
License token:http://fire.ly/vonk/plugins/capability
Order:4120
Description:Provides the CapabilityStatement on the <base>/metadata endpoint. The CapabilityStatement is tailored to the FHIR version of the request. The CapabilityStatement is built dynamically by visiting all the registered implementations of ICapabilityStatementContributor, see Capabilities.
Name:Conditional Create
Configuration:Vonk.Core.Operations.ConditionalCrud.ConditionalCreateConfiguration
License token:http://fire.ly/vonk/plugins/conditionalcreate
Order:4510
Description:Implements FHIR conditional create.
Name:Conditional Update
Configuration:Vonk.Core.Operations.ConditionalCrud.ConditionalUpdateConfiguration
License token:http://fire.ly/vonk/plugins/conditionalupdate
Order:4520
Description:Implements FHIR conditional update.
Name:Conditional Delete
Configuration:Vonk.Core.Operations.ConditionalCrud.ConditionalDeleteConfiguration
License token:http://fire.ly/vonk/plugins/conditionaldelete
Order:4530
Description:Implements FHIR conditional delete.
Options:FhirCapabilities.ConditionalDeleteOptions, see FHIR Capabilities
Name:Validation
Configuration:Vonk.Core.Operations.Validation.ValidationConfiguration
License token:http://fire.ly/vonk/plugins/validation
Order:4000
Description:Implements FHIR $validate on type and instance level for POST: POST <base>/Patient/$validate or POST <base>/Patient/123/$validate.
Name:Instance Validation
Configuration:Vonk.Core.Operations.Validation.InstanceValidationConfiguration
License token:http://fire.ly/vonk/plugins/validation
Order:4840
Description:Implements FHIR $validate on instance level for GET: GET <base>/Patient/123/$validate
Name:Structural Validation
Configuration:Vonk.Core.Operations.Validation.StructuralValidationConfiguration
License token:http://fire.ly/vonk/plugins/validation
Order:1227
Description:Validates the structure of resources sent to Vonk (is it valid FHIR JSON or XML?).
Name:Prevalidation
Configuration:Vonk.Core.Operations.Validation.PreValidationConfiguration
License token:http://fire.ly/vonk/plugins/validation
Order:4320
Description:Validates resources sent to Vonk against their stated profile compliance (in Resource.meta.profile). The strictness of the validation is controlled by the options.
Options:Validation, see Validation
Name:Profile filter
Configuration:Vonk.Core.Operations.Validation.ProfileFilterConfiguration
License token:http://fire.ly/vonk/plugins/validation
Order:4310
Description:Blocks resources that do not conform to a list of profiles.
Options:Validation.AllowedProfiles, see Validation
Name:Meta
Configuration:Vonk.Core.Operations.MetaOperation.MetaConfiguration
License token:http://fire.ly/vonk/plugins/meta
Order:5180
Description:Implements FHIR $meta on instance level.
Name:Meta Add
Configuration:Vonk.Core.Operations.MetaOperation.MetaAddConfiguration
License token:http://fire.ly/vonk/plugins/meta
Order:5190
Description:Implements FHIR $meta-add on instance level.
Name:Meta Delete
Configuration:Vonk.Core.Operations.MetaOperation.MetaDeleteConfiguration
License token:http://fire.ly/vonk/plugins/meta
Order:5195
Description:Implements FHIR $meta-delete on instance level.
Name:Snapshot Generation
Configuration:Vonk.Core.Operations.SnapshotGeneration.SnapshotGenerationConfiguration
License token:http://fire.ly/vonk/plugins/snapshotgeneration
Order:4850
Description:Implements FHIR $snapshot on a type level: POST <base>/administration/StructureDefinition/$snapshot.
Name:Batch
Configuration:Vonk.Core.Operations.Transaction.FhirBatchConfiguration
License token:http://fire.ly/vonk/plugins/batch
Order:3110
Description:Processes a batch Bundle by sending each entry through the rest of the processing pipeline and gathering the results.
Options:SizeLimits, see Protect against large input
Name:

Transaction

Configuration:

Vonk.Core.Operations.Transaction.FhirTransactionConfiguration

License token:

http://fire.ly/vonk/plugins/transaction

Order:

3120

Description:

Process a transaction Bundle by sending each entry through the rest of the processing pipeline and gathering the results. Different from Batch, Transaction succeeds or fails as a whole. Transaction requires an implementation of Vonk.Core.Repository.IRepoTransactionService for transaction support by the underlying repository. The SQL Server and SQLite implementations provides a real one, whereas the MongoDb provides a simulated implementation, to allow you to experiment with transactions on MongoDb.

Options:

Terminology

The Terminology plugins are currently only implemented for FHIR STU3.

Name:CodeSystem Lookup
Configuration:Vonk.Plugins.Terminology.CodeSystemLookupConfiguration
License token:http://fire.ly/vonk/plugins/terminology
Order:5110
Description:Implements FHIR $lookup on type level requests: POST <base>/administration/CodeSystem/$lookup or GET <base>/administration/CodeSystem/$lookup?...
Name:CodeSystem Compose on Type
Configuration:Vonk.Plugins.Terminology.CodeSystemComposeTypeConfiguration
License token:http://fire.ly/vonk/plugins/terminology
Order:5170
Description:Implements FHIR $compose on type level requests: POST <base>/administration/CodeSystem/$compose
Name:CodeSystem Compose on Instance
Configuration:Vonk.Plugins.Terminology.CodeSystemComposeInstanceConfiguration
License token:http://fire.ly/vonk/plugins/terminology
Order:5160
Description:Implements FHIR $compose on instance level requests: POST <base>/administration/CodeSystem/[id]/$compose or GET <base>/administration/CodeSystem/[id]/$compose?...
Name:ValueSet Validate Code on Type
Configuration:Vonk.Plugins.Terminology.ValueSetValidateCodeTypeConfiguration
License token:http://fire.ly/vonk/plugins/terminology
Order:5130
Description:Implements FHIR $validate-code on type level requests: POST <base>/administration/ValueSet/$validate-code
Name:ValueSet Validate Code on Instance
Configuration:Vonk.Plugins.Terminology.ValueSetValidateCodeInstanceConfiguration
License token:http://fire.ly/vonk/plugins/terminology
Order:5120
Description:Implements FHIR $validate-code on instance level requests: GET <base>/administration/ValueSet/[id]/$validate-code?... and POST <base>/administration/ValueSet/[id]/$validate-code
Name:ValueSet Expand on Instance
Configuration:Vonk.Plugins.Terminology.ValueSetExpandCodeInstanceConfiguration
License token:http://fire.ly/vonk/plugins/terminology
Order:5140
Description:Implements FHIR $expand on instance level requests: GET <base>/administration/ValueSet/[id]/$expand?... and POST <base>/administration/ValueSet/[id]/$expand
Name:ValueSet Expand on Type
Configuration:Vonk.Plugins.Terminology.ValueSetExpandCodeTypeConfiguration
License token:http://fire.ly/vonk/plugins/terminology
Order:5150
Description:Implements FHIR $expand on type level requests: POST <base>/administration/ValueSet/$expand

SMART on FHIR

Name:SMART on FHIR
Configuration:Vonk.Smart.SmartConfiguration.SmartConfiguration
License token:http://fire.ly/vonk/plugins/smartonfhir
Order:2000
Description:Implements SMART on FHIR authentication and authorization, see Access control and SMART.

Subscriptions

Name:Subscriptions
Configuration:Vonk.Subscriptions.SubscriptionConfiguration.SubscriptionConfiguration
License token:http://fire.ly/vonk/plugins/subscriptions
Order:3200
Description:Implements the FHIR Subscriptions framework, see Subscriptions.

Auditing

Name:Username log
Configuration:Vonk.Plugin.Audit.UsernameLoggingConfiguration
License token:http://fire.ly/vonk/plugins/audit
Order:2010
Description:Makes the user id and name from the JWT token (if present) available for logging. See Auditing for more info.
Name:Audit logging for transactions
Configuration:Vonk.Plugin.Audit.AuditTransactionConfiguration
License token:http://fire.ly/vonk/plugins/audit
Order:3100
Description:Logs requests and responses for transactions to a file. See Auditing for more info.
Name:Audit log
Configuration:Vonk.Plugin.Audit.AuditConfiguration
License token:http://fire.ly/vonk/plugins/audit
Order:3150
Description:Logs requests and responses to a file. See Auditing for more info.
Name:AuditEvent logging for transactions
Configuration:Vonk.Plugin.Audit.AuditEventTransactionConfiguration
License token:http://fire.ly/vonk/plugins/audit
Order:3160
Description:Logs requests and responses for transactions to a file. See Auditing for more info.
Name:AuditEvent logging
Configuration:Vonk.Plugin.Audit.AuditEventConfiguration
License token:http://fire.ly/vonk/plugins/audit
Order:3170
Description:Logs requests and responses to a file. See Auditing for more info.

Demo UI

Name:Demo UI
Configuration:Vonk.UI.Demo.DemoUIConfiguration.DemoUIConfiguration
License token:http://fire.ly/vonk/plugins/demoui
Order:800
Description:Provides the landing page that you see when you request the base url from a browser. If you want to provide your own landing page, replace this plugin with your own. There is an example of that, see Vonk FHIR Plugin example - Create a new landing page.

Documents

Name:Document generation
Configuration:Vonk.Plugins.DocumentOperation.DocumentOperationConfiguration
License token:http://fire.ly/vonk/plugins/document
Order:4900
Description:Implements FHIR $document : POST <base>/Composition/$document or GET <base>/Composition/[id]/$document
Code:GitHub
Name:Document signing
Configuration:Vonk.Plugins.SignatureService.SignatureConfiguration
License token:http://fire.ly/vonk/plugins/signature
Order:4899
Description:Signs a document generated by $document.

Conversion

Name:Format conversion
Configuration:Vonk.Plugins.ConvertOperation.ConvertOperationConfiguration
License token:http://fire.ly/vonk/plugins/convert
Order:4600
Description:Implements FHIR $convert : POST <base>/$convert to convert between JSON and XML representation.

Binary

Name:

Binary wrapper (Encode)

Configuration:

Vonk.Plugins.BinaryWrapper.BinaryEncodeConfiguration

License token:

http://fire.ly/vonk/plugins/binarywrapper

Order:

1112

Description:

Wraps an incoming binary format in a Binary resource for further processing by the pipeline.

Settings:
"Vonk.Plugin.BinaryWrapper":{
   "RestrictToMimeTypes": ["application/pdf", "text/plain", "image/png", "image/jpeg"]
},
Name:

Binary wrapper (Decode)

Configuration:

Vonk.Plugins.BinaryWrapper.BinaryDecodeConfiguration

License token:

http://fire.ly/vonk/plugins/binarywrapper

Order:

1122

Description:

Implements GET <base>/Binary/<id>, retrieve back the Binary resource in its native format.

Transformation and mapping

Name:FHIR Mapper (Transform)
Configuration:Vonk.Plugins.Transform.TransformConfiguration
License token:http://fire.ly/vonk/plugins/mapping
Order:4560
Description:Implements FHIR $transform : POST <base>/administration/StructureMap/[id]/$transform. See Welcome to the FHIR Mapper documentation.
Name:FHIR Mapper (Convert)
Configuration:Vonk.Plugin.MappingToStructureMap.MappingToStructureMapConfiguration
License token:http://fire.ly/vonk/plugins/mapping
Order:4550
Description:Implements FHIR $convert : POST <base>/$convert to convert between FHIR Mapping Language and its StructureMap representation.

Repository implementations

Name:Memory Repository
Configuration:Vonk.Repository.MemoryConfiguration
license token:http://fire.ly/vonk/plugins/repository/memory
Order:210
Description:Implements a repository in working memory that fully supports all of the capabilities of Vonk. This implementation is mainly used for unittesting.
Name:Memory Administration Repository
Configuration:Vonk.Repository.MemoryAdministrationConfiguration
license token:http://fire.ly/vonk/plugins/repository/memory
Order:211
Description:Implements a repository in working memory for the Administration API. This implementation is mainly used for unittesting.
Name:MongoDb Repository
Configuration:Vonk.Repository.MongoDbConfiguration
license token:http://fire.ly/vonk/plugins/repository/mongo-db
Order:230
Description:Implements a repository in MongoDb that fully supports all of the capabilities of Vonk, except Transactions.
Name:MongoDb Administration Repository
Configuration:Vonk.Repository.MemoryAdministrationConfiguration
license token:http://fire.ly/vonk/plugins/repository/mongo-db
Order:231
Description:Implements a repository in MongoDb for the Administration API.
Name:SQLite Repository
Configuration:Vonk.Repository.SqliteConfiguration
license token:http://fire.ly/vonk/plugins/repository/sqlite
Order:240
Description:Implements a repository in SQLite that fully supports all of the capabilities of Vonk.
Name:SQLite Administration Repository
Configuration:Vonk.Repository.SqliteAdministrationConfiguration
license token:http://fire.ly/vonk/plugins/repository/sqlite
Order:241
Description:Implements a repository in SQLite for the Administration API.
Name:SQL Server Repository
Configuration:Vonk.Repository.SqlConfiguration
license token:http://fire.ly/vonk/plugins/repository/sql-server
Order:220
Description:Implements a repository in SQL Server that fully supports all of the capabilities of Vonk.
Name:SQL Server Administration Repository
Configuration:Vonk.Repository.SqlAdministrationConfiguration
license token:http://fire.ly/vonk/plugins/repository/sql-server
Order:221
Description:Implements a repository in SQL Server for the Administration API.

Administration API

Name:Administration API
Configuration:Vonk.Administration.Api.AdministrationOperationConfiguration
license token:http://fire.ly/vonk/plugins/administration
Order:1160
Description:Sets up a sequence of plugins for the Administration API. Administration API is different from general plugins since it branches off of the regular processing pipeline and sets up a second pipeline for the /administration endpoint.
Name:Fhir STU3 Administration services
Configuration:Vonk.Administration.FhirR3.RepositoryConfigurationR3
license token:http://fire.ly/vonk/plugins/administration/fhirr3
Order:4310
Description:Implements support services to work with FHIR STU3 conformance resources in the Administration API.
Name:Fhir R4 Administration services
Configuration:Vonk.Administration.FhirR4.RepositoryConfigurationR4
license token:http://fire.ly/vonk/plugins/administration/fhirr4
Order:4310
Description:Implements support services to work with FHIR R4 conformance resources in the Administration API.