MCPcopy Index your code
hub / github.com/FalcoSuessgott/vkv

github.com/FalcoSuessgott/vkv @v1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0 ↗ · + Follow
281 symbols 1,074 edges 78 files 131 documented · 47%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

vkv

drawing

drawing drawing drawing drawing drawing

vkv is a little CLI tool written in Go, which enables you to list, compare, import, document, backup & encrypt secrets from a HashiCorp Vault KV engine:

img

drawing

Checkout the Docs to learn more about vkv

Quickstart

# Installation. For MacOS: "brew install falcosuessgott/tap/vkv"
version=$(curl https://api.github.com/repos/falcosuessgott/vkv/releases/latest -s | jq .name -r)
curl -OL "https://github.com/FalcoSuessgott/vkv/releases/download/${version}/vkv_$(uname)_$(uname -m).tar.gz"
tar xzf vkv_$(uname)_$(uname -m).tar.gz
chmod u+x vkv
./vkv version

# set required env vars
> export VAULT_ADDR=https://vault-server:8200
> export VAULT_TOKEN=<your-vault-token>

# verify connection
> vault status
Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false
Total Shares    1
Threshold       1
Version         1.12.1
Build Date      2022-10-27T12:32:05Z
Storage Type    inmem
Cluster Name    vault-cluster-ffd05212
Cluster ID      42ef92d5-eb21-0cb5-dd0b-804dac04e505
HA Enabled      false

# list secrets recursively from a KV engine
> vkv export --path <path>
secret/ [desc=key/value secret storage] [type=kv2] # engine description & type
├── admin [v=1] (created 5 minutes ago) [key=value] # version, age & metadata, every secret is a hyperlink to Vaults UI
│   └── sub=********
├── demo [v=1] (created 5 minutes ago)
│   └── foo=***
└── sub
    ├── demo [v=1] (created 5 minutes ago)
    │   ├── demo=***********
    │   ├── password=*******
    │   └── user=*****
    └── sub2
        └── demo [v=2] (created 5 minutes ago) [admin=false key=value]
            ├── foo=***
            ├── password=********
            └── user=****

Extension points exported contracts — how you extend this code

Printer (Interface)
Printer prints the entities (for now ns, engines and KV secrets). [3 implementers]
pkg/printer/printer.go
Option (FuncType)
Option list of available options for modifying the output.
pkg/printer/namespace/namespace_printer.go
Option (FuncType)
Option list of available options for modifying the output.
pkg/printer/engine/engine_printer.go
Option (FuncType)
Option list of available options for modifying the output.
pkg/printer/secret/secret_printer.go

Core symbols most depended-on inside this repo

String
called by 25
pkg/vault/capability.go
NormalizePath
called by 23
pkg/utils/utils.go
Out
called by 21
pkg/printer/printer.go
ToFormat
called by 21
pkg/printer/secret/secret_printer.go
WriteSecrets
called by 19
pkg/vault/kv.go
ToMapStringInterface
called by 19
pkg/utils/utils.go
EnableKV2Engine
called by 14
pkg/vault/engine.go
SortMapKeys
called by 13
pkg/utils/utils.go

Shape

Method 125
Function 124
Struct 20
TypeAlias 8
FuncType 3
Interface 1

Languages

Go100%

Modules by API surface

pkg/utils/utils.go22 symbols
pkg/printer/secret/secret_printer.go20 symbols
pkg/utils/utils_test.go19 symbols
pkg/printer/engine/engine_printer.go11 symbols
pkg/printer/secret/all_versions.go10 symbols
pkg/printer/namespace/namespace_printer.go10 symbols
pkg/vault/version.go9 symbols
pkg/vault/kv.go9 symbols
cmd/import.go9 symbols
pkg/vault/engine.go8 symbols
cmd/server.go8 symbols
pkg/vault/namespaces.go6 symbols

For agents

$ claude mcp add vkv \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page