# Versioned Key/Value in Consul KV

**URL:** <https://discuss.hashicorp.com/t/versioned-key-value-in-consul-kv/37390>\
**Category:** Consul\
**Created:** [March 22, 2022, 2:00pm UTC](https://discuss.hashicorp.com/t/versioned-key-value-in-consul-kv/37390 "2022-03-22T14:00:09Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ryan\_th](https://sea2.discourse-cdn.com/hashicorp/user_avatar/discuss.hashicorp.com/ryan_th/32/26875_2.png) [@ryan\_th](https://discuss.hashicorp.com/u/ryan_th)\
**Post date:** [March 22, 2022, 2:00pm UTC](https://discuss.hashicorp.com/t/versioned-key-value-in-consul-kv/37390/1 "2022-03-22T14:00:09Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![blake](https://sea2.discourse-cdn.com/hashicorp/user_avatar/discuss.hashicorp.com/blake/32/27620_2.png) [@blake](https://discuss.hashicorp.com/u/blake)\
**Post date:** [March 23, 2022, 5:39am UTC](https://discuss.hashicorp.com/t/versioned-key-value-in-consul-kv/37390/2 "2022-03-23T05:39:17Z")

</div>

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.

> <https://github.com/hashicorp/consul/issues/1761>
>
> We would like to have a key-value update history if thats possible. We use the k…ey-value store a lot for updating our parameters.yml files over all the instances (its a symfony configuration file). And there are a lot of squads making the update. It could be that something goes wrong and we need to revert the last change.
> 
> We can off course build our own wrapper around the api which stores changes itself but it might be a nice feature for consul.

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 [https://www.consul.io/docs/dynamic-app-config/kv](https://www.consul.io/docs/dynamic-app-config/kv)).

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](https://www.consul.io/docs/download-tools) like [git2consul-go](https://github.com/KohlsTechnology/git2consul-go).

---

<div class="post-metadata">

**Author:** ![ryan\_th](https://sea2.discourse-cdn.com/hashicorp/user_avatar/discuss.hashicorp.com/ryan_th/32/26875_2.png) [@ryan\_th](https://discuss.hashicorp.com/u/ryan_th)\
**Post date:** [June 13, 2022, 2:22pm UTC](https://discuss.hashicorp.com/t/versioned-key-value-in-consul-kv/37390/3 "2022-06-13T14:22:12Z")

</div>

Thank you @blake for advising.
