Skip to content

v1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Jun 12:55
e4d6c34

vkv v1.0.0

First stable release of vkv. This release adds full secret version history support, makes the machine-readable export formats flat and re-importable, and modernizes the toolchain:

carbon-13

✨ Highlights

  • --all-versions — export every version of a KVv2 secret. vkv export --all-versions now returns the full version history (not just the latest), supported by the base, json and yaml formats. Each version shows its creation time, status (created / deleted / destroyed) and the secret's custom metadata
  • Creation time in the default tree. The base output now shows when each secret's current version was created, next to the version marker: admin [v=1] (created 5 minutes ago).
  • Colorized tree output. Path elements are now bold, version/age annotations are cyan, and metadata is dimmed. Colors are automatically disabled when output is piped or redirected, so scripting is unaffected.

⚠️ Breaking changes

  • yaml / json export now uses flat, full secret-path keys (no engine root, no nested indentation):
# before                  # after
secret/:                  admin:
  admin:                    user: password
    user: password        sub/demo:
  sub/:                     user: admin
    demo:
      user: admin
  • If you parse vkv export -f yaml|json output downstream, update your consumers. vkv import reads both the new flat format and the legacy nested format, so export | import round-trips cleanly.
  • yaml / json always export real (unmasked) values — these formsumption and re-import.
  • --merge-paths is now a no-op for yaml/json (they're already flat); it still applies to the template format.
  • Go 1.25.0 is now required to build from source.

🧹 Improvements & maintenance

  • Updated dependencies to their latest compatible versions (vaufang, fatih/color, testcontainers-go, golangci-lint, …).
  • Refreshed documentation and examples (export, import, quickstart, sops, and the CLI reference) to match the new output.

📝 Notes

  • vkv import writes secret data only — it does not restore version history or custom metadata. Use vkv export --all-versions or snapshots to capture full history.

Changelog

New Features

Bug fixes

Dependency updates

  • 0aea68d: feat(deps): bump alpine from 3.22 to 3.23 (@dependabot[bot])
  • 4dfdf1a: feat(deps): bump github.com/charmbracelet/fang from 0.3.0 to 0.4.0 (@dependabot[bot])
  • 349da44: feat(deps): bump github.com/charmbracelet/fang from 0.4.0 to 0.4.1 (@dependabot[bot])
  • 5dc7c58: feat(deps): bump github.com/charmbracelet/fang from 0.4.1 to 0.4.2 (@dependabot[bot])
  • dc76d1c: feat(deps): bump github.com/charmbracelet/fang from 0.4.2 to 0.4.3 (@dependabot[bot])
  • 1520158: feat(deps): bump github.com/daixiang0/gci from 0.13.6 to 0.13.7 (@dependabot[bot])
  • f8a72fd: feat(deps): bump github.com/daixiang0/gci from 0.13.7 to 0.14.0 (@dependabot[bot])
  • e080361: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • d14edd8: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • 2478982: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • 1a63950: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • cf43bc8: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • 71e3cc3: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • b1dad2e: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • f7ce00a: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • 4334d78: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • f5494cc: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • 92fe387: feat(deps): bump github.com/golangci/golangci-lint/v2 (@dependabot[bot])
  • 05d1a00: feat(deps): bump github.com/hashicorp/vault/api from 1.20.0 to 1.21.0 (@dependabot[bot])
  • 8882d37: feat(deps): bump github.com/hashicorp/vault/api from 1.21.0 to 1.22.0 (@dependabot[bot])
  • 44dca04: feat(deps): bump github.com/mark3labs/mcp-go from 0.36.0 to 0.37.0 (@dependabot[bot])
  • 8aa1cfe: feat(deps): bump github.com/mark3labs/mcp-go from 0.37.0 to 0.38.0 (@dependabot[bot])
  • d613c2b: feat(deps): bump github.com/mark3labs/mcp-go from 0.38.0 to 0.39.1 (@dependabot[bot])
  • 52f230e: feat(deps): bump github.com/mark3labs/mcp-go from 0.39.1 to 0.41.0 (@dependabot[bot])
  • 45e0e45: feat(deps): bump github.com/mark3labs/mcp-go from 0.41.0 to 0.41.1 (@dependabot[bot])
  • 8143db0: feat(deps): bump github.com/mark3labs/mcp-go from 0.41.1 to 0.42.0 (@dependabot[bot])
  • 3f5d55f: feat(deps): bump github.com/mark3labs/mcp-go from 0.42.0 to 0.43.0 (@dependabot[bot])
  • f4fd3d3: feat(deps): bump github.com/mark3labs/mcp-go from 0.43.0 to 0.43.1 (@dependabot[bot])
  • 4171f67: feat(deps): bump github.com/mark3labs/mcp-go from 0.43.1 to 0.43.2 (@dependabot[bot])
  • ee3eab6: feat(deps): bump github.com/mark3labs/mcp-go from 0.43.2 to 0.44.0 (@dependabot[bot])
  • 9a1e59d: feat(deps): bump github.com/mark3labs/mcp-go from 0.44.0 to 0.44.1 (@dependabot[bot])
  • c57f0fc: feat(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 (@dependabot[bot])
  • 2cec9e2: feat(deps): bump github.com/spf13/cobra from 1.9.1 to 1.10.1 (@dependabot[bot])
  • 0f2d77a: feat(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (@dependabot[bot])
  • 91d6548: feat(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot])
  • a9fea14: feat(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot])
  • db27a52: feat(deps): bump github.com/testcontainers/testcontainers-go/modules/vault (@dependabot[bot])
  • 465d9f4: feat(deps): bump github.com/testcontainers/testcontainers-go/modules/vault (@dependabot[bot])
  • b270c66: feat(deps): bump github.com/testcontainers/testcontainers-go/modules/vault (@dependabot[bot])
  • 8a59d57: feat(deps): bump gotest.tools/gotestsum from 1.12.3 to 1.13.0 (@dependabot[bot])
  • 454ad3f: feat(deps): bump mvdan.cc/gofumpt from 0.8.0 to 0.9.0 (@dependabot[bot])
  • bc7f158: feat(deps): bump mvdan.cc/gofumpt from 0.9.0 to 0.9.1 (@dependabot[bot])
  • d52ed31: feat(deps): bump mvdan.cc/gofumpt from 0.9.1 to 0.9.2 (@dependabot[bot])