Clarify delete operation

One thing that has been a point of confusion for users is Vault's
response when deleting a key that does not actually exist in the system.
For example, consider:

    $ vault delete secret/foo
    Success! Deleted 'secret/foo'

This message is misleading if the secret does not exist, especially if
the same command is run twice in a row.

Obviously the reason for this is clear - returning an error if a secret
does not exist would reveal the existence of a secret (the same reason
everything on S3 is a 403 or why GitHub repos 404 instead of 403 if you
do not have permission to view them).

I think we can make the UX a little bit better by adding just a few
words to the output:

    $ vault delete secret/foo
    Success! Deleted 'secret/foo' if it existed

This makes it clear that the operation was only performed if the secret
existed, but it does not reveal any more information.
This commit is contained in:
Seth Vargo 2016-04-14 10:38:10 +01:00
parent d273a051c7
commit f170066c19
No known key found for this signature in database
GPG Key ID: 905A90C2949E8787
2 changed files with 2 additions and 2 deletions

View File

@ -41,7 +41,7 @@ func (c *DeleteCommand) Run(args []string) int {
return 1
}
c.Ui.Output(fmt.Sprintf("Success! Deleted '%s'", path))
c.Ui.Output(fmt.Sprintf("Success! Deleted '%s' if it existed", path))
return 0
}

View File

@ -110,7 +110,7 @@ and delete it. We can do this with `vault delete`:
```
$ vault delete secret/hello
Success! Deleted 'secret/hello'
Success! Deleted 'secret/hello' if it existed
```
## Next