Automatic Provenance Injection
Often times Provenance resource is required for the purpose of providing authenticity, trust, and reproducibility. What would happen when the required Provenance wasn't in the repository? How would you address the need for a proven record of transmission? This is when this feature comes into play.
The Provenance injection allows the injection of a Provenance resource into the request response and serves as a record of transmission for the client. This injection does not require a previous existence of Provenance data in the repository. The configurable built-in Smile CDR interceptor injects transient/non-persisted Provenance resource into a response at request time. Here are the three configurable conditions on when the Provenance will be injected.
[base]/[type]/$everything
GET [base]/[type]?_id=<#>&_revinclude=Provenance:target
Below is a diagram illustrating how the Provenance resource is injected for the $everything operation. The ?_revinclude=Provenance:target is also being injected in the same matter as illustrated below.
The interceptor will dynamically populate the following data:
The interceptor will also populate the following if it is configured.
Profile
property. This is optional.Agent Type
property with the pipe-delimited value. This is optional.Agent Who
property.
This is required when the interceptor is enabled. The accepted reference value is an Organization, e.g. Organization/123.