diff --git a/ui/app/adapters/secret.js b/ui/app/adapters/secret.js index d056dc58ab..7510580a41 100644 --- a/ui/app/adapters/secret.js +++ b/ui/app/adapters/secret.js @@ -7,7 +7,7 @@ export default ApplicationAdapter.extend({ headers: computed(function() { return { - 'X-Vault-Kv-Client': 'v1', + 'X-Vault-Kv-Client': 'v2', }; }), diff --git a/ui/app/controllers/vault/cluster/settings/mount-secret-backend.js b/ui/app/controllers/vault/cluster/settings/mount-secret-backend.js index b43c8666df..64d454ba04 100644 --- a/ui/app/controllers/vault/cluster/settings/mount-secret-backend.js +++ b/ui/app/controllers/vault/cluster/settings/mount-secret-backend.js @@ -34,7 +34,7 @@ export default Ember.Controller.extend({ showConfig: false, local: false, sealWrap: false, - versioned: true, + version: 2, selection: computed('selectedType', function() { return this.get('mountTypes').findBy('value', this.get('selectedType')); @@ -54,7 +54,7 @@ export default Ember.Controller.extend({ local: false, showConfig: false, sealWrap: false, - versioned: true, + version: 2, }); }, @@ -86,7 +86,7 @@ export default Ember.Controller.extend({ local, max_lease_ttl, sealWrap, - versioned, + version, } = this.getProperties( 'selectedPath', 'selectedType', @@ -96,7 +96,7 @@ export default Ember.Controller.extend({ 'local', 'max_lease_ttl', 'sealWrap', - 'versioned' + 'version' ); const currentModel = this.get('model'); if (currentModel && currentModel.rollbackAttributes) { @@ -118,9 +118,9 @@ export default Ember.Controller.extend({ }; } - if (type === 'kv' && versioned) { + if (type === 'kv') { attrs.options = { - versioned: 'true', + version, }; } diff --git a/ui/app/models/mount-options.js b/ui/app/models/mount-options.js index 49bffe2ff0..d40c18f9b0 100644 --- a/ui/app/models/mount-options.js +++ b/ui/app/models/mount-options.js @@ -2,5 +2,5 @@ import attr from 'ember-data/attr'; import Fragment from 'ember-data-model-fragments/fragment'; export default Fragment.extend({ - versioned: attr('string'), + version: attr('number'), }); diff --git a/ui/app/models/secret-engine.js b/ui/app/models/secret-engine.js index 3a1a2d25a5..3e0a57858d 100644 --- a/ui/app/models/secret-engine.js +++ b/ui/app/models/secret-engine.js @@ -20,7 +20,6 @@ export default DS.Model.extend({ options: fragment('mount-options'), local: attr('boolean'), sealWrap: attr('boolean'), - isVersioned: computed.alias('options.versioned'), shouldIncludeInList: computed('type', function() { return !LIST_EXCLUDED_BACKENDS.includes(this.get('type')); diff --git a/ui/app/routes/vault/cluster/secrets/backend.js b/ui/app/routes/vault/cluster/secrets/backend.js index 58b73d607e..2cdd61554a 100644 --- a/ui/app/routes/vault/cluster/secrets/backend.js +++ b/ui/app/routes/vault/cluster/secrets/backend.js @@ -7,9 +7,9 @@ export default Ember.Route.extend({ const { backend } = this.paramsFor(this.routeName); const backendModel = this.store.peekRecord('secret-engine', backend); const type = backendModel && backendModel.get('type'); - if (type === 'kv' && backendModel.get('isVersioned')) { + if (type === 'kv' && backendModel.get('options.version') === 2) { this.get('flashMessages').stickyInfo( - `"${backend}" is a versioned kv secrets engine. The Vault UI does not currently support the additional versioning features. All actions taken through the UI in this engine will operate on the most recent version of a secret.` + `"${backend}" is a newer version of the KV backend. The Vault UI does not currently support the additional versioning features. All actions taken through the UI in this engine will operate on the most recent version of a secret.` ); } diff --git a/ui/app/templates/vault/cluster/secrets/backend/list.hbs b/ui/app/templates/vault/cluster/secrets/backend/list.hbs index b746f7bd0a..95d44336d2 100644 --- a/ui/app/templates/vault/cluster/secrets/backend/list.hbs +++ b/ui/app/templates/vault/cluster/secrets/backend/list.hbs @@ -11,8 +11,12 @@ {{backend}} {{or options.displayName (capitalize backendType)}} - {{#if backendModel.isVersioned}}(Versioned){{/if}} + {{#if (eq backendModel.options.version 2)}} + + Version 2 + + {{/if}}
diff --git a/ui/app/templates/vault/cluster/secrets/backends.hbs b/ui/app/templates/vault/cluster/secrets/backends.hbs index 8b427b03b8..90e483709f 100644 --- a/ui/app/templates/vault/cluster/secrets/backends.hbs +++ b/ui/app/templates/vault/cluster/secrets/backends.hbs @@ -37,12 +37,14 @@ {{backend.type}}: {{backend.config.plugin_name}} {{else}} {{backend.type}} - {{#if backend.isVersioned}} - (versioned) - {{/if}} {{/if}} + + {{#if (eq backend.options.version 2)}} + v2 + {{/if}} + {{backend.accessor}} diff --git a/ui/app/templates/vault/cluster/settings/mount-secret-backend.hbs b/ui/app/templates/vault/cluster/settings/mount-secret-backend.hbs index 24fa1296a3..8f904c77ef 100644 --- a/ui/app/templates/vault/cluster/settings/mount-secret-backend.hbs +++ b/ui/app/templates/vault/cluster/settings/mount-secret-backend.hbs @@ -50,15 +50,28 @@
{{#if (eq selectedType "kv")}}
-
- {{input type="checkbox" id="versioned" name="versioned" checked=versioned}} - -

- The KV Secrets engine can operate in versioned or non-versioned mode. Non-versioned may be upgraded to versioned later, but the opposite is not true. -

+ +
+
+ +
+

+ The KV Secrets engine can operate in different modes. Version 1 is the original generic secrets engine the allows for storing of static key/value pairs. Version 2 added more features including data versioning, TTLs, and check and set. +

{{/if}}