Vaku
Vaku is a CLI and Go API that add useful functions on top of Hashicorp Vault.
Installation
Use go get
to install the latest version of the API and CLI. This command will install the vaku
executable
and the latest version of the Vault API.
go get -u github.com/Lingrino/vaku
Next, import vaku in your project like so:
import "github.com/Lingrino/vaku/vaku"
CLI
CLI Summary
The Vaku CLI provides many of the API functions on the command line. You can use it to copy, move,
search, and more on Vault folders or paths. Unlike the Vaku API, the CLI does not provide write or
update commands because of the highly structured data that it expects as input.
CLI Documentation
Vaku CLI documentation is best read on the command line using either vaku help [cmd]
or vaku [cmd] --help
.
Full documentation generated by cobra is also available in the docs folder
API
API Summary
The Vaku API provides a simple interface for interfacing with both versions of the Vault Key/Value backend. In
addition, the API adds path and folder level functions not fouund in the official vault API such as FolderCopy()
,
FolderSearch()
, and FolderWrite
.
API Documentation
The API is well documented and can be read on godoc. Please use
the godoc documentation for all reference and example information.
Contributing
Suggestions and contributions of all kinds are welcome! If there is functionality you would like to see in Vaku
please open an issue or pull request and I will be sure to address it.
Command Reference
- Path List
- Path Read
- Path Write (API only)
- Path Delete
- Path Destroy (v2 mounts only)
- Path Copy
- Path Move
- Path Update (API only)
- Path Search
- Folder List
- Folder Read
- Folder Write (API only)
- Folder Delete
- Folder Destroy (v2 mounts only)
- Folder Copy
- Folder Move
- Folder Search
- Folder Map (CLI Only)
Planned Functionality
Here is a list of all known and planned work.
- CLI tests
- CLI on homebrew
- CLI support for concurrency flag
- Path/Folder
diff
function
- Add timeouts to background workers
- Make background workers more generic
Running Tests
Tests are meant to be run side by side with a real Vault server docker image. This
creates an external dependency for the tests but makes it much simpler to test different
Vault versions and key/value mounts. With docker and docker-compose installed tests
can be run with a simple make test
. CircleCI will also build all commits and report
status on all PRs.