open-vault/command/kv.go
VAL 2113ae1021
Mount flag syntax to mitigate confusion from KV-v2 path discrepancies (#14807)
* Add explanation to help text and flag usage text

* KV get with new mount flag

* Clearer naming

* KV Put, Patch, Metadata Get + corresponding tests

* KV Delete, Destroy, Rollback, Undelete, MetadataDelete, MetadataPatch, MetadataPut

* Update KV-v2 docs to use mount flag syntax

* Add changelog

* Run make fmt

* Clarify deprecation message in help string

* Address style comments
2022-04-06 13:58:06 -07:00

59 lines
1.3 KiB
Go

package command
import (
"strings"
"github.com/mitchellh/cli"
)
var _ cli.Command = (*KVCommand)(nil)
type KVCommand struct {
*BaseCommand
}
func (c *KVCommand) Synopsis() string {
return "Interact with Vault's Key-Value storage"
}
func (c *KVCommand) Help() string {
helpText := `
Usage: vault kv <subcommand> [options] [args]
This command has subcommands for interacting with Vault's key-value
store. Here are some simple examples, and more detailed examples are
available in the subcommands or the documentation.
Create or update the key named "foo" in the "secret" mount with the value
"bar=baz":
$ vault kv put -mount=secret foo bar=baz
Read this value back:
$ vault kv get -mount=secret foo
Get metadata for the key:
$ vault kv metadata get -mount=secret foo
Get a specific version of the key:
$ vault kv get -mount=secret -version=1 foo
The deprecated path-like syntax can also be used, but this should be avoided
for KV v2, as the fact that it is not actually the full API path to
the secret (secret/data/foo) can cause confusion:
$ vault kv get secret/foo
Please see the individual subcommand help for detailed usage information.
`
return strings.TrimSpace(helpText)
}
func (c *KVCommand) Run(args []string) int {
return cli.RunResultHelp
}