Tag retention
According to the FHIR rules on updating resources, by default when a resource is updated, any tags and security labels are carried forward even if they are not explicitly listed in the new version.
For example, suppose a resource is created by a client, and in that resource a tag "foo" is listed in Resource.meta.tag. Then, an update is performed by a client but this update does not contain a value in Resource.meta.
According to the FHIR rules, in this case the tag is copied to the new version of the resource even though it was not explicitly requested.
If a client wishes to override this behavior, they may do so using the X-Meta-Snapshot-Mode header. This header indicates that Tags and/or Security Labels and/or Profile Declarations should be treated as snapshots, meaning that any values not already present should be removed.
The value is a comma-separated list containing the metadata components that should be treated in snapshot mode:
- TAG—Resource tags
- PROFILE—Resource profile declarations
- SECURITY_LABEL—Security Labels.
Example: Tag retention—Metadata components using snapshot mode
![Example: Tag retention—Metadata components using snapshot mode Example: Tag retention—Metadata components using snapshot mode](img/patch_tagretention_example.png)
Parent topic: Updating data