Versioned Key/Value in Consul KV

Hi I’m seeing in Secrets Engine, we can keep track version whenever we make a change. I want to ask:
Is it possible to enable Versioned Key/Value in Consul KV? or do we have any way to keep track version change in Consul KV?
e.g I have a key/value:
hello:world (v1)
hello:hello (v2)
any api or cli or the way to check which value of hello in v1 and in v2
I understand that I might not be explaining perfectly, so feel free to ask any questions. If there is already a way to do it with consul alone or any solutions, please let me know

Hi @ryan_th,

This feature request has come up a few times over the years and is/was previously being tracked in the following GitHub issue.

As mentioned in the most recent comment on that issue, KV versioning is not a feature that we plan on supporting in Consul.

The reason is that Consul is a service networking platform that primarily provides feaures related to network connectivity such as service discovery and service mesh.

Consul’s KV store is meant to provide a simple KV store for application configuration, but is not intended to be a full featured KV datastore (such as DynamoDB) and thus will by nature lack certain features (such as versioning) that might be found in other KV stores. (This is also documented on

If you require versioning functionality with Consul as your KV store, I would encourage you to evaluate whether you could satisfy this functionality by using a third-party community tools like git2consul-go.

Thank you @blake for advising.